diff options
| author | Chloe M. <chloe@mirocom.org> | 2026-05-23 08:10:57 -0400 |
|---|---|---|
| committer | Chloe M. <chloe@mirocom.org> | 2026-05-23 08:13:45 -0400 |
| commit | 86645eb137a6d793ea095510ee08b8313c9d0cbe (patch) | |
| tree | 21d00a9414edad9d86d25fd64132501489295d16 /core | |
| parent | 3e3ccae003ad0990555d17590588672aedc428c4 (diff) | |
core: lexer: Add arrow token
Signed-off-by: Chloe M. <chloe@mirocom.org>
Diffstat (limited to 'core')
| -rw-r--r-- | core/lexer.c | 7 | ||||
| -rw-r--r-- | core/parser.c | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/core/lexer.c b/core/lexer.c index 26ab451..bc40542 100644 --- a/core/lexer.c +++ b/core/lexer.c @@ -240,6 +240,13 @@ lexer_nom(struct cescal_state *state, struct token *res) } return -1; + case '-': + res->c = c; + if (lexer_consume_single(state, true) == '>') { + res->type = TT_ARROW; + return 0; + } + return -1; default: if (lexer_scan_ident(state, c, res) == 0) { lexer_check_kw(state, res); diff --git a/core/parser.c b/core/parser.c index 3b3e91b..5d64bb7 100644 --- a/core/parser.c +++ b/core/parser.c @@ -37,6 +37,7 @@ static const char *toktab[] = { [TT_LPAREN] = qtok("("), [TT_RPAREN] = qtok(")"), [TT_COMMA] = qtok(","), + [TT_ARROW] = qtok("->"), [TT_RETURN] = qtok("return"), [TT_PUB] = qtok("pub"), [TT_PROC] = qtok("proc"), |
