From 5064a7ebce75a26d0405c92040f1a40187fcc7e3 Mon Sep 17 00:00:00 2001 From: kartofen Date: Wed, 2 Jul 2025 22:55:08 +0300 Subject: turn clr into lalr and first steps for generating a parser --- demos/generate-parser.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 demos/generate-parser.c (limited to 'demos/generate-parser.c') diff --git a/demos/generate-parser.c b/demos/generate-parser.c new file mode 100644 index 0000000..b0a769d --- /dev/null +++ b/demos/generate-parser.c @@ -0,0 +1,25 @@ +#include +#include + +#include + +struct action **table; +size_t table_states; +size_t total_symbols; + +int main(int argc, char **argv) +{ + if(argc != 2) return 1; + + void *handle = dlopen(argv[1], RTLD_LAZY); + if(!handle) { puts(dlerror()); return 1; } + + table = *(typeof(&table))dlsym(handle, "table"); + table_states = *(typeof(&table_states))dlsym(handle, "table_states"); + total_symbols = *(typeof(&total_symbols))dlsym(handle, "total_symbols"); + + table_print(); + + dlclose(handle); + return 0; +} -- cgit v1.2.3