Fixed issue #1 Scanner Bug where the start of comment would become part of an identifier or throw off number parsing.
This commit is contained in:
+5
-4
@@ -10,13 +10,13 @@ something_insance:
|
|||||||
load r1, unknown_symbol
|
load r1, unknown_symbol
|
||||||
load byte r1, r3
|
load byte r1, r3
|
||||||
load r1, 5
|
load r1, 5
|
||||||
.db fun_alright 0x70
|
.db fun_alright 0x70;does this break?
|
||||||
load r3, r4
|
load r3, r4
|
||||||
store byte r3, r5
|
store byte r3, r5
|
||||||
store r5, r7
|
store r5, r7
|
||||||
unknown_symbol:
|
unknown_symbol:;Does this work?
|
||||||
cmp r1, 5
|
cmp r1, 5;or one after the register?
|
||||||
cmp r1, r2
|
cmp r1, r2;This might work
|
||||||
and r1, r2
|
and r1, r2
|
||||||
add r4, r7
|
add r4, r7
|
||||||
inc r1 ;increment r1
|
inc r1 ;increment r1
|
||||||
@@ -25,3 +25,4 @@ pop r3
|
|||||||
jmp unknown_symbol
|
jmp unknown_symbol
|
||||||
jmp r4
|
jmp r4
|
||||||
jz unknown_symbol
|
jz unknown_symbol
|
||||||
|
;And a comment at the end
|
||||||
+2
-2
@@ -128,7 +128,7 @@ Token* ParseNumber(void) {
|
|||||||
if ((ahead >= 'a' && ahead <= 'f') || isdigit(ahead)) {
|
if ((ahead >= 'a' && ahead <= 'f') || isdigit(ahead)) {
|
||||||
AdvanceScanner(); //Consume the 'x'
|
AdvanceScanner(); //Consume the 'x'
|
||||||
|
|
||||||
while(!ScannerAtEnd() && PeekScanner() != '\n' && !IsWhiteSpace(PeekScanner())) {
|
while(!ScannerAtEnd() && PeekScanner() != '\n' && !IsWhiteSpace(PeekScanner()) && PeekScanner() != ';') {
|
||||||
if (isdigit(PeekScanner())) {
|
if (isdigit(PeekScanner())) {
|
||||||
AdvanceScanner();
|
AdvanceScanner();
|
||||||
continue;
|
continue;
|
||||||
@@ -243,7 +243,7 @@ Token* ParseString(void) {
|
|||||||
Token* ParseIdentifier(void) {
|
Token* ParseIdentifier(void) {
|
||||||
int start = Position;
|
int start = Position;
|
||||||
|
|
||||||
while(!ScannerAtEnd() && !IsPunctuation(PeekScanner()) && PeekScanner() != ' ' && PeekScanner() != '\n') {
|
while(!ScannerAtEnd() && !IsPunctuation(PeekScanner()) && PeekScanner() != ' ' && PeekScanner() != '\n' && PeekScanner() != ';') {
|
||||||
AdvanceScanner();
|
AdvanceScanner();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user