From a0b204fadd0ff2dae410e7b9e089de55cf1a4c47 Mon Sep 17 00:00:00 2001 From: "Chloe M." Date: Sat, 23 May 2026 14:36:55 +0000 Subject: core: parser: Add parser-side nom function Signed-off-by: Chloe M. --- core/parser.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/parser.c b/core/parser.c index 58a1bc5..4779803 100644 --- a/core/parser.c +++ b/core/parser.c @@ -58,6 +58,28 @@ static const char *toktab[] = { [TT_U64] = qtok("u64") }; +static int +parser_nom(struct cescal_state *state, struct token *res) +{ + struct token tok; + + if (state == NULL || res == NULL) { + errno = EINVAL; + return -1; + } + + if (lexer_nom(state, &tok) < 0) { + return -1; + } + + if (tokbuf_push(&state->tokbuf, &tok) < 0) { + return -1; + } + + *res = tok; + return 0; +} + int parser_parse(struct cescal_state *state) { @@ -68,7 +90,7 @@ parser_parse(struct cescal_state *state) return -1; } - while (lexer_nom(state, &tok) == 0) { + while (parser_nom(state, &tok) == 0) { cc_trace("got token %s\n", tokstr(&tok)); } -- cgit v1.2.3