diff options
| author | LLLL Colonq <llll@colonq> | 2026-06-29 20:29:36 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-06-29 20:29:36 -0400 |
| commit | 8909986b89eaac74bb4cd8dc7019f96e4f650470 (patch) | |
| tree | de2865d7d7fffefddb38c7d36e556f67e305f6c1 /src/parser.c | |
| parent | 3324b894adfc06d88c65ea7cb70d98a446f733d5 (diff) | |
Initial annotations
Diffstat (limited to 'src/parser.c')
| -rw-r--r-- | src/parser.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/parser.c b/src/parser.c index 77b4172..002641e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -3,6 +3,8 @@ #include <lcq/pit/parser.h> #include <lcq/pit/runtime.h> +#include <stdio.h> + static pit_lex_token peek(pit_parser *st) { if (!st) return PIT_LEX_TOKEN_ERROR; return st->next.token; @@ -106,6 +108,14 @@ pit_value pit_parse(pit_runtime *rt, pit_parser *st, bool *eof) { ret = pit_cons(rt, *v, ret); } rt->scratch->next = scratch_reset; + if (pit_value_sort(ret) == PIT_VALUE_SORT_REF) { + fprintf(stderr, "adding annotation (%ld): ", pit_as_ref(rt, ret)); + pit_trace_(rt, "%s\n", ret); + pit_expr_annotations_push(rt->annotations, + pit_as_ref(rt, ret), + rt->source_line, rt->source_column + ); + } return ret; } case PIT_LEX_TOKEN_LSQUARE: { |
