aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin Borner2019-08-15 01:01:19 +0200
committerMarvin Borner2019-08-15 01:01:19 +0200
commit5f7cbd46cf7153b18f57fb8aaa59cd3136639208 (patch)
tree08076d8010a23d5f805643bd75f37ff9a9f977d4
parent0627e0ac4bd237f0d7d256f1cfe863440b318f55 (diff)
Added string merging
-rw-r--r--src/runMain/kotlin/Syntax.kt15
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