basic: fixing some unary mishaps on parser

This commit is contained in:
minjaesong
2020-12-14 10:08:10 +09:00
parent 45b37d40b1
commit 1b6f768f9d
2 changed files with 10 additions and 2 deletions

View File

@@ -1706,7 +1706,7 @@ FUNCTION_CALL (type: function, value: PRINT or something)
// @returns BasicAST
bF._EquationIllegalTokens = ["IF","THEN","ELSE","DEFUN","ON"];
bF.isSemanticLiteral = function(token, state) {
return "]" == token || ")" == token ||
return undefined == token || "]" == token || ")" == token ||
"qot" == state || "num" == state || "bool" == state || "lit" == state;
}
bF.parserDoDebugPrint = true;

View File

@@ -660,7 +660,7 @@ bF._parseLit = function(lnum, tokens, states, recDepth, functionMode) {
bF._EquationIllegalTokens = ["IF","THEN","ELSE","DEFUN","ON"];
bF.isSemanticLiteral = function(token, state) {
return "]" == token || ")" == token ||
return undefined == token || "]" == token || ")" == token ||
"qot" == state || "num" == state || "bool" == state || "lit" == state;
}
@@ -756,6 +756,14 @@ let states8 = ["lit","num","op","num","op","num"];
let tokens9 = ["NEXT"];
let states9 = ["lit"];
// PRINT -3
let tokens10 = ["PRINT","-","3"];
let states10 = ["lit","op","num"];
// PRINT SPC(20-I);
let tokens11 = ["PRINT","SPC","(","20","-","I",")",";"];
let states11 = ["lit"],"lit","paren","num","op","lit","paren","sep"];
try {
let trees = bF._parseTokens(lnum,
tokens6,