diff options
author | David Phillips <david@sighup.nz> | 2018-08-06 01:21:33 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2018-08-06 01:21:39 +1200 |
commit | 740cd4abc6b44716a1af72b8982fe98cba668b03 (patch) | |
tree | d9614f47aa010def953e3f509becb8143b1a6fd4 | |
parent | 82475e2d3c98c482dba8cffec6686f0681f8ebd8 (diff) | |
download | hence-740cd4abc6b44716a1af72b8982fe98cba668b03.tar.xz |
Add lexer support for comment lines
-rw-r--r-- | lex.c | 10 | ||||
-rw-r--r-- | test/invalid-hence/empty-10.hence | 6 | ||||
-rw-r--r-- | test/invalid-hence/empty-10.hence.expected | 1 |
3 files changed, 14 insertions, 3 deletions
@@ -164,14 +164,14 @@ lex_alphanum(void) { } static struct token -lex_eol(void) { +lex_eol(char eolchar) { struct token t; t.type = TOK_EOL; t.loc = get_current_loc(); t.span = 1; - expect('\n'); + expect(eolchar); return t; } @@ -208,7 +208,11 @@ lex_line(void) { break; case '\r': case '\n': - add_token(lex_eol()); + add_token(lex_eol(buf[column_number])); + break; + case '#': + add_token(lex_eol(buf[column_number])); + return 0; break; default: /* perform more broad checks */ diff --git a/test/invalid-hence/empty-10.hence b/test/invalid-hence/empty-10.hence new file mode 100644 index 0000000..7a0896d --- /dev/null +++ b/test/invalid-hence/empty-10.hence @@ -0,0 +1,6 @@ +# +# foo + # foo # foo + #foo asdf + #foo +#foo diff --git a/test/invalid-hence/empty-10.hence.expected b/test/invalid-hence/empty-10.hence.expected new file mode 100644 index 0000000..738f19c --- /dev/null +++ b/test/invalid-hence/empty-10.hence.expected @@ -0,0 +1 @@ +invalid-hence/empty-10.hence: Error: Expected module declaration, got end of file |