diff --git a/SMILEBASIC/TEST.txt b/SMILEBASIC/TEST.txt index 4092d13..417baa7 100644 --- a/SMILEBASIC/TEST.txt +++ b/SMILEBASIC/TEST.txt @@ -1,3 +1,4 @@ +'COMMENT' ASSERT__ 1, "TRUE" A$="A" ASSERT__ A$=="A", "A$==A" @@ -12,16 +13,16 @@ DEC A, 3 ASSERT__ A==1, "A==1" DEC A ASSERT__ A==0, "A==0" -INCTEST 0 +INCTEST 10 DEF INCTEST A INC A - ASSERT__ A==1, "A==1" + ASSERT__ A==11, "A==11" INC A, 3 - ASSERT__ A==4, "A==4" + ASSERT__ A==14, "A==14" DEC A, 3 - ASSERT__ A==1, "A==1" + ASSERT__ A==11, "A==11" DEC A - ASSERT__ A==0, "A==0" + ASSERT__ A==10, "A==10" END LOCATE 10, COLOR 1,15 diff --git a/SMILEBASIC/parser.d b/SMILEBASIC/parser.d index 032805e..bf72b57 100644 --- a/SMILEBASIC/parser.d +++ b/SMILEBASIC/parser.d @@ -88,6 +88,16 @@ class Lexical { wchar c = code[i]; if(c == ' ') continue; + if(c == '\'') + { + for(;i < code.length;i++) + { + c = code[i]; + if(table[cast(char)c] == TokenType.NewLine) break; + } + token = Token(TokenType.NewLine); + break; + } if(c.isDigit()) { int num; @@ -224,15 +234,15 @@ class Lexical if(token.type == TokenType.NewLine) { line++; - if(c == '\n') - { - //CRLF - if(i < code.length && code[i] == '\r') + if(c == '\n') { - i++; + //CRLF + if(i < code.length && code[i] == '\r') + { + i++; + } } } - } break; } index = i;