diff options
Diffstat (limited to 'demos/generate-parser.c')
-rw-r--r-- | demos/generate-parser.c | 25 |
1 files changed, 25 insertions, 0 deletions
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 <stdio.h> +#include <dlfcn.h> + +#include <parts/table.h> + +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; +} |