diff options
| author | 2022-08-14 07:25:40 +0200 | |
|---|---|---|
| committer | 2022-08-14 07:25:53 +0200 | |
| commit | f0def28d9aeeb7f1f9b3d8880a34a05ec59d80ed (patch) | |
| tree | 72b4f9776a8bc1964d32b3db2e8bf2d78120ad57 /bootstrap/parse.c | |
| parent | 4a656bf19a45e0b3f553f9c518e7e842cc6cbf51 (diff) | |
multiline comment and stuff
Diffstat (limited to 'bootstrap/parse.c')
| -rw-r--r-- | bootstrap/parse.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bootstrap/parse.c b/bootstrap/parse.c index be32985..8707709 100644 --- a/bootstrap/parse.c +++ b/bootstrap/parse.c @@ -394,6 +394,18 @@ lex(struct parser *P) { tok.t = '#FIL'; } else if (!strcmp(s, "#LINE")) { tok.t = '#LIN'; + } else if (!strcmp(s, "#!")) { + if (chr(P) != '{') fatal(P, P->tokspan, "expected '{' after '#!'"); + int bal = 1; + while (bal != 0) { + switch (lex(P).t) { + case '{': ++bal; break; + case '}': --bal; break; + case TKeof: fatal(P, tok.span, "unterminated comment"); + } + } + return lex(P); + } else { fatal(P, P->tokspan, "invalid #keyword"); } |