Ignore comments (using semicolons) in lexer
Easier to do it here than at the parser.
This commit is contained in:
16
asm/lexer.c
16
asm/lexer.c
@@ -110,6 +110,22 @@ token_stream_t tokenise_buffer(buffer_t *buffer)
|
|||||||
// Clean whitespace
|
// Clean whitespace
|
||||||
for (; space_left(buffer) > 0 && (isspace(c) || c == '\0');
|
for (; space_left(buffer) > 0 && (isspace(c) || c == '\0');
|
||||||
++buffer->used, c = buffer->data[buffer->used])
|
++buffer->used, c = buffer->data[buffer->used])
|
||||||
|
{
|
||||||
|
++column;
|
||||||
|
if (c == '\n')
|
||||||
|
{
|
||||||
|
column = 0;
|
||||||
|
++line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
++column;
|
||||||
|
is_token = false;
|
||||||
|
}
|
||||||
|
else if (c == ';')
|
||||||
|
{
|
||||||
|
// Stop lexing till next line
|
||||||
|
for (; space_left(buffer) > 0 && c != '\n';
|
||||||
|
++buffer->used, c = buffer->data[buffer->used])
|
||||||
continue;
|
continue;
|
||||||
column = 0;
|
column = 0;
|
||||||
++line;
|
++line;
|
||||||
|
|||||||
Reference in New Issue
Block a user