From 2c5efa29b3db7598a551487d727c35d2e2529342 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 2 Sep 2026 20:15:39 +0000 Subject: Support comments FossilOrigin-Name: 6d017126fbc93e45a53af2857cce78133b4714cd1a41d7bc0114c1bbaae2ec07 --- src/lib/aplwc_internal.h | 3 ++- src/lib/module.c | 1 + src/lib/syntax.c | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src') 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 */ }; -- cgit v1.2.3