diff options
-rw-r--r-- | src/runMain/kotlin/Syntax.kt | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runMain/kotlin/Syntax.kt b/src/runMain/kotlin/Syntax.kt index ace7280..16304cc 100644 --- a/src/runMain/kotlin/Syntax.kt +++ b/src/runMain/kotlin/Syntax.kt @@ -3,8 +3,9 @@ class Syntax { * Checks and validates whether the code complies with the syntax/grammar rules */ fun check(statements: MutableList<MutableList<Pair<String, TokenType>>>): Boolean { - for (statement in statements) { + statements.forEachIndexed { i, statement -> removePadding(statement) + mergeStrings(statement) } return true } @@ -21,4 +22,16 @@ class Syntax { statement.removeAt(statement.size - 1) } } + + /** + * Merges classified strings to constants + */ + private fun mergeStrings(statement: MutableList<Pair<String, TokenType>>) { + var stringing = false + statement.forEachIndexed { i, token -> + if (token.second == TokenType.Classifier) + stringing = !stringing + if (stringing) statement[i] = token.first to TokenType.Constant + } + } }
\ No newline at end of file |