From 5f7cbd46cf7153b18f57fb8aaa59cd3136639208 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Thu, 15 Aug 2019 01:01:19 +0200 Subject: Added string merging --- src/runMain/kotlin/Syntax.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/runMain/kotlin/Syntax.kt') 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>>): 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>) { + 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 -- cgit v1.2.3