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  | 
