diff options
| author | peter <peter@pmikkelsen.com> | 2026-09-02 20:15:39 +0000 |
|---|---|---|
| committer | peter <peter@pmikkelsen.com> | 2026-09-02 20:15:39 +0000 |
| commit | 2c5efa29b3db7598a551487d727c35d2e2529342 (patch) | |
| tree | e53cbe407c22b4b8ee8dd95a30b9ff480d360db3 /src | |
| parent | fa85b6ad25cbf4d98d80082e44921fc351533204 (diff) | |
Support comments
FossilOrigin-Name: 6d017126fbc93e45a53af2857cce78133b4714cd1a41d7bc0114c1bbaae2ec07
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/aplwc_internal.h | 3 | ||||
| -rw-r--r-- | src/lib/module.c | 1 | ||||
| -rw-r--r-- | src/lib/syntax.c | 18 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/lib/aplwc_internal.h b/src/lib/aplwc_internal.h index 5c6f1dc..0a52bb1 100644 --- a/src/lib/aplwc_internal.h +++ b/src/lib/aplwc_internal.h @@ -77,7 +77,8 @@ enum token_tag { TOKEN_TAG_RIGHT_PAREN, TOKEN_TAG_IBEAM, TOKEN_TAG_QUAD, - TOKEN_TAG_UNKNOWN_SYM + TOKEN_TAG_UNKNOWN_SYM, + TOKEN_TAG_COMMENT }; struct token { diff --git a/src/lib/module.c b/src/lib/module.c index d14b822..32b693c 100644 --- a/src/lib/module.c +++ b/src/lib/module.c @@ -45,6 +45,7 @@ static int read_decl(struct aplwc_module *module, size_t offset) { switch(module->tokens->tokens[offset].tag){ + case TOKEN_TAG_COMMENT: case TOKEN_TAG_NEWLINE: return 0; case TOKEN_TAG_KEYWORD: diff --git a/src/lib/syntax.c b/src/lib/syntax.c index d20c058..6e08d1b 100644 --- a/src/lib/syntax.c +++ b/src/lib/syntax.c @@ -190,6 +190,23 @@ text(struct scan_state *state, struct token *token) return 1; } +static int +comment(struct scan_state *state, struct token *token) +{ + uint32_t c; + + c = peek(state); + if(c != 0x235D) + return 0; + + do + c = advance(state); + while(c != '\n'); + + token->tag = TOKEN_TAG_COMMENT; + return 1; +} + static enum aplwc_rc next_token(struct scan_state *state, struct token *token) { @@ -199,6 +216,7 @@ next_token(struct scan_state *state, struct token *token) keyword, number, text, + comment, single_sym /* Must be last */ }; |