diff --git a/src/backends/lalr.c b/src/backends/lalr.c index 66fe42c7aefd202b8f47b959c262e78cc9a9c0c8..aad47d4dc4084ed426a911dc5cd0d19a0311a2ff 100644 --- a/src/backends/lalr.c +++ b/src/backends/lalr.c @@ -836,15 +836,17 @@ void pprint_lraction(FILE *f, const HCFGrammar *g, const HLRAction *action) if(action->type == HLR_SHIFT) { fprintf(f, "s%lu", action->nextstate); } else { + fputs("r(", f); + h_pprint_symbol(f, g, action->production.lhs); + fputs(" -> ", f); #ifdef NDEBUG // if we can't print the production, at least print its length - fprintf(f, "r[%lu]", action->production.length); + fprintf(f, "[%lu]", action->production.length); #else - fputs("r(", f); HCFSequence seq = {action->production.rhs}; h_pprint_sequence(f, g, &seq); - fputc(')', f); #endif + fputc(')', f); } }