From c4f53cfabe7efc987916d3a7a40e81cb85ae9193 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Thu, 15 Aug 2019 22:49:57 +0200 Subject: Added linenumber logging --- src/runMain/kotlin/Syntax.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/runMain/kotlin/Syntax.kt') diff --git a/src/runMain/kotlin/Syntax.kt b/src/runMain/kotlin/Syntax.kt index 938814d..8ba809c 100644 --- a/src/runMain/kotlin/Syntax.kt +++ b/src/runMain/kotlin/Syntax.kt @@ -13,16 +13,16 @@ class Syntax { statement.forEach { println("${it.content} ${it.type}") } statement.forEachIndexed { j, token -> if (statement.count { it.content == "(" } != statement.count { it.content == ")" }) - throw SyntaxError("Bracket", "Brackets are not even") + throw SyntaxError("Bracket", "Brackets are not even", token.lineNumber) when (token.type) { Keyword -> allowNext(statement, j, listOf(Bracket)) Function -> allowNext(statement, j, listOf(Bracket)) Constant -> allowNext(statement, j, listOf(Comparison, Arithmetic, Logical, Bracket)) - Assignment -> allowNext(statement, j, listOf(Constant, Function)) - Arithmetic -> allowNext(statement, j, listOf(Constant, Function)) - Comparison -> allowNext(statement, j, listOf(Constant, Function)) - Logical -> allowNext(statement, j, listOf(Constant, Function)) + Assignment -> allowNext(statement, j, listOf(Constant, Function, Variable)) + Arithmetic -> allowNext(statement, j, listOf(Constant, Function, Variable)) + Comparison -> allowNext(statement, j, listOf(Constant, Function, Variable)) + Logical -> allowNext(statement, j, listOf(Constant, Function, Variable)) Variable -> allowNext(statement, j, listOf(Assignment, Bracket, Arithmetic, Logical, Comparison)) Punctuation -> allowNext(statement, j, listOf(Constant)) Bracket -> allowNext(statement, j, listOf(Constant, Keyword, Logical, Assignment, Variable)) @@ -82,7 +82,7 @@ class Syntax { private fun allowNext(statement: MutableList, index: kotlin.Int, allowed: List) { if (statement.size > index + 1 && nextNonEmpty(statement, index).type !in allowed) { val token = nextNonEmpty(statement, index) - throw SyntaxError(token.type.toString(), token.content) + throw SyntaxError(token.type.toString(), token.content, token.lineNumber) } } -- cgit v1.2.3