From 1b6f768f9d76f466e25e7ef7a824f8381167ae0b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 14 Dec 2020 10:08:10 +0900 Subject: [PATCH] basic: fixing some unary mishaps on parser --- assets/basic.js | 2 +- assets/tbas/parser_wip.js | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/assets/basic.js b/assets/basic.js index 85816b4..8ebda94 100644 --- a/assets/basic.js +++ b/assets/basic.js @@ -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; diff --git a/assets/tbas/parser_wip.js b/assets/tbas/parser_wip.js index 98b4d1c..9c2d1c3 100644 --- a/assets/tbas/parser_wip.js +++ b/assets/tbas/parser_wip.js @@ -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,