[orx-expression-evaluator] Fix for antlr-kotlin 0.1.2
This commit is contained in:
@@ -87,11 +87,11 @@ internal class ExpressionListener(
|
|||||||
val right = doubleStack.pop()
|
val right = doubleStack.pop()
|
||||||
val left = doubleStack.pop()
|
val left = doubleStack.pop()
|
||||||
val result = when (val operator = ctx.operator?.type) {
|
val result = when (val operator = ctx.operator?.type) {
|
||||||
KeyLangLexer.Tokens.PLUS.id -> left + right
|
KeyLangLexer.Tokens.PLUS -> left + right
|
||||||
KeyLangParser.Tokens.MINUS.id -> left - right
|
KeyLangParser.Tokens.MINUS -> left - right
|
||||||
KeyLangParser.Tokens.ASTERISK.id -> left * right
|
KeyLangParser.Tokens.ASTERISK -> left * right
|
||||||
KeyLangParser.Tokens.DIVISION.id -> left / right
|
KeyLangParser.Tokens.DIVISION -> left / right
|
||||||
KeyLangParser.Tokens.PERCENTAGE.id -> mod(left, right)
|
KeyLangParser.Tokens.PERCENTAGE -> mod(left, right)
|
||||||
else -> error("operator '$operator' not implemented")
|
else -> error("operator '$operator' not implemented")
|
||||||
}
|
}
|
||||||
doubleStack.push(result)
|
doubleStack.push(result)
|
||||||
@@ -106,10 +106,10 @@ internal class ExpressionListener(
|
|||||||
val left = doubleStack.pop()
|
val left = doubleStack.pop()
|
||||||
val right = doubleStack.pop()
|
val right = doubleStack.pop()
|
||||||
val result = when (val operator = ctx.operator?.type) {
|
val result = when (val operator = ctx.operator?.type) {
|
||||||
KeyLangParser.Tokens.PLUS.id -> left + right
|
KeyLangParser.Tokens.PLUS -> left + right
|
||||||
KeyLangParser.Tokens.MINUS.id -> right - left
|
KeyLangParser.Tokens.MINUS -> right - left
|
||||||
KeyLangParser.Tokens.ASTERISK.id -> left * right
|
KeyLangParser.Tokens.ASTERISK -> left * right
|
||||||
KeyLangParser.Tokens.DIVISION.id -> left / right
|
KeyLangParser.Tokens.DIVISION -> left / right
|
||||||
else -> error("operator '$operator' not implemented")
|
else -> error("operator '$operator' not implemented")
|
||||||
}
|
}
|
||||||
doubleStack.push(result)
|
doubleStack.push(result)
|
||||||
@@ -248,13 +248,13 @@ internal class ExpressionListener(
|
|||||||
|
|
||||||
override fun visitTerminal(node: TerminalNode) {
|
override fun visitTerminal(node: TerminalNode) {
|
||||||
val type = node.symbol?.type
|
val type = node.symbol?.type
|
||||||
if (type == KeyLangParser.Tokens.INTLIT.id) {
|
if (type == KeyLangParser.Tokens.INTLIT) {
|
||||||
doubleStack.push(node.text.toDouble())
|
doubleStack.push(node.text.toDouble())
|
||||||
}
|
}
|
||||||
if (type == KeyLangParser.Tokens.DECLIT.id) {
|
if (type == KeyLangParser.Tokens.DECLIT) {
|
||||||
doubleStack.push(node.text.toDouble())
|
doubleStack.push(node.text.toDouble())
|
||||||
}
|
}
|
||||||
if (type == KeyLangParser.Tokens.ID.id) {
|
if (type == KeyLangParser.Tokens.ID) {
|
||||||
val name = node.text.replace("`", "")
|
val name = node.text.replace("`", "")
|
||||||
@Suppress("DIVISION_BY_ZERO")
|
@Suppress("DIVISION_BY_ZERO")
|
||||||
when (val idType = idTypeStack.pop()) {
|
when (val idType = idTypeStack.pop()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user