diff options
author | Marvin Borner | 2019-08-15 01:01:19 +0200 |
---|---|---|
committer | Marvin Borner | 2019-08-15 01:01:19 +0200 |
commit | 5f7cbd46cf7153b18f57fb8aaa59cd3136639208 (patch) | |
tree | 08076d8010a23d5f805643bd75f37ff9a9f977d4 | |
parent | 0627e0ac4bd237f0d7d256f1cfe863440b318f55 (diff) |
Added string merging
-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 |