diff --git a/SMILEBASIC/parser.d b/SMILEBASIC/parser.d index 3335f98..05bba9d 100644 --- a/SMILEBASIC/parser.d +++ b/SMILEBASIC/parser.d @@ -1702,17 +1702,16 @@ class Parser } token = lex.front(); bool constexpr; - Expression op__ = op; if (op.item1.type == NodeType.Constant && op.item2.type == NodeType.Constant) { double result; if (constcalc((cast(Constant)op.item1).value, (cast(Constant)op.item2).value, op.operator, result)) { - op__ = new Constant(Value(result), lex.location); + auto l = new Constant(Value(result), lex.location); constexpr = true; if(order != getOPRank(token.type)) - return op__; - op = new BinaryOperator(op__, lex.location); + return l; + op = new BinaryOperator(l, lex.location); continue; } } @@ -1720,7 +1719,7 @@ class Parser write(tt, " "); if(order == getOPRank(token.type)) { - BinaryOperator op2 = new BinaryOperator(op__, lex.location); + BinaryOperator op2 = new BinaryOperator(op, lex.location); op.item1 = op2; } version(none)stdout.flush(); diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index 7919417..75ab5a0 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -1257,12 +1257,12 @@ class PetitComputer auto token = lex.front(); if(token.type == otya.smilebasic.token.TokenType.Iden && token.value.stringValue == "RUN") { - lex.popFront(); - token = lex.front(); - int slot; bool empty = lex.empty(); + int slot; if(!empty) { + lex.popFront(); + token = lex.front(); if(token.type != otya.smilebasic.token.TokenType.Integer) { printConsole("Illegal function call", "\n");