diff --git a/assets/basic.js b/assets/basic.js index ebd78da..6134b75 100644 --- a/assets/basic.js +++ b/assets/basic.js @@ -1612,7 +1612,9 @@ bF._recurseApplyAST = function(tree, action) { (* { word } = word is repeated 0 or more times *) (* [ word ] = word is optional (repeated 0 or 1 times) *) -line = linenumber , stmt , {":" , stmt} ; +line = + linenumber , stmt , {":" , stmt} + | linenumber , "REM" , ? basically anything ? ; linenumber = digits ; stmt = @@ -1731,6 +1733,7 @@ bF._parseTokens = function(lnum, tokens, states) { bF.parserPrintdbg2('Line ', lnum, tokens, states, 0); if (tokens.length !== states.length) throw lang.syntaxfehler(lnum); + if (tokens[0] == "REM" && states[0] != "qot") return; /*************************************************************************/ @@ -2703,9 +2706,15 @@ bF.run = function(args) { // RUN function oldnum = linenumber; let trees = programTrees[linenumber]; - trees.forEach((t,i) => { - linenumber = bF._executeAndGet(linenumber, t); - }); + + if (trees !== undefined) { + trees.forEach((t,i) => { + linenumber = bF._executeAndGet(linenumber, t); + }); + } + else { + linenumber += 1; + } } else { linenumber += 1; diff --git a/assets/gugu.bas b/assets/gugu.bas index 0be10aa..972f9b5 100644 --- a/assets/gugu.bas +++ b/assets/gugu.bas @@ -2,5 +2,5 @@ 20 FOR J = 1 TO 9 30 PRINT I; "*"; J; "="; I * J 40 NEXT -50 INPUT "Press Enter Key..."; A +50 INPUT "Press Enter Key..." 60 NEXT \ No newline at end of file diff --git a/assets/tbas/parser_wip.js b/assets/tbas/parser_wip.js index b11acfe..710cd46 100644 --- a/assets/tbas/parser_wip.js +++ b/assets/tbas/parser_wip.js @@ -27,6 +27,7 @@ bF._parseTokens = function(lnum, tokens, states) { bF.parserPrintdbg2('Line ', lnum, tokens, states, 0); if (tokens.length !== states.length) throw lang.syntaxfehler(lnum); + if (tokens[0].toUpperCase() == "REM" && states[0] != "qot") return; /*************************************************************************/ diff --git a/assets/tbas/syntax.txt b/assets/tbas/syntax.txt index 4848287..7d8e25a 100644 --- a/assets/tbas/syntax.txt +++ b/assets/tbas/syntax.txt @@ -2,7 +2,9 @@ (* { word } = word is repeated 0 or more times *) (* [ word ] = word is optional (repeated 0 or 1 times) *) -line = linenumber , stmt , {":" , stmt} ; +line = + linenumber , stmt , {":" , stmt} + | linenumber , "REM" , ? basically anything ? ; linenumber = digits ; stmt =