From f2bef76fb369d4c9c3e53dca60eb78b75bb02d97 Mon Sep 17 00:00:00 2001 From: kartofen Date: Thu, 3 Jul 2025 19:11:36 +0300 Subject: working more or less parser generator (no semantic action, so pretty much useless --- demos/sample-files/parser-skeleton.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 demos/sample-files/parser-skeleton.c (limited to 'demos/sample-files/parser-skeleton.c') diff --git a/demos/sample-files/parser-skeleton.c b/demos/sample-files/parser-skeleton.c new file mode 100644 index 0000000..facbc1b --- /dev/null +++ b/demos/sample-files/parser-skeleton.c @@ -0,0 +1,30 @@ +#include +#include + +#include "lr-parser.c" +#include "bin/generated.c" + +#include "parts/toklist.h" + +enum symbol { + PLUS = 0, + MINUS, + LPAREN, + RPAREN, + N0, N1, + END_INPUT, + + EP, E, T, N, + SYMBOLS_END, +}; + +static symbol toklist[] = {N0, PLUS, N1, END_INPUT}; +static symbol *tok = toklist; + +symbol toklist_eat() { return *(tok++); } // unsafe +symbol toklist_peek() { return *tok; } // unsafe + +int main(void) +{ + return lr_parser(); +} -- cgit v1.2.3