From 1d6f6e7c6a07832b3524871fdec86f5329736598 Mon Sep 17 00:00:00 2001 From: kartofen Date: Sun, 20 Jul 2025 13:02:56 +0300 Subject: fix precedence --- demos/generate-parser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'demos/generate-parser.c') diff --git a/demos/generate-parser.c b/demos/generate-parser.c index 48fa48c..9987265 100644 --- a/demos/generate-parser.c +++ b/demos/generate-parser.c @@ -137,7 +137,7 @@ int main(int argc, char **argv) set_stdout(add_extension(output_path, ".c")); printf("size_t total_symbols = %zu;\n", total_symbols); - printf("char **symbol_to_string = (char *([])){\n"); + printf("char **symbol_to_str = (char *([])){\n"); for(size_t i = 0; i < total_symbols; i++) printf("\"%s\", ", symbol_to_str[i]); printf("};\n"); printf("IMPLEMENT_FUNCPTR(int, symbol_is_valid, (symbol s)) {return s < total_symbols;}\n"); @@ -210,9 +210,9 @@ void precedence_tables_fill() for(size_t i = 0; i < nprecedence_defs; i++) for(size_t j = 0; j < precedence_defs[i].nlist; j++) if(precedence_defs[i].list[j] >= 0) - precedence_symbol[precedence_defs[i].list[j]] = PRECEDENCE_SET(precedence_defs[i].flag, i+1); + precedence_symbol[precedence_defs[i].list[j]] = PRECEDENCE_SET(precedence_defs[i].flag, nprecedence_defs-i); else - precedence_production[~precedence_defs[i].list[j]] = PRECEDENCE_SET(precedence_defs[i].flag, i+1); + precedence_production[~precedence_defs[i].list[j]] = PRECEDENCE_SET(precedence_defs[i].flag, nprecedence_defs-i); for(size_t i = 0; i < total_productions; i++) { if(precedence_production[i]) continue; -- cgit v1.2.3