diff --git a/src/compiler/build_tables/parse_table_builder.cc b/src/compiler/build_tables/parse_table_builder.cc index 8666ce1d..8f4b0fb1 100644 --- a/src/compiler/build_tables/parse_table_builder.cc +++ b/src/compiler/build_tables/parse_table_builder.cc @@ -161,7 +161,9 @@ class ParseTableBuilderImpl : public ParseTableBuilder { } for (size_t i = 0; i < grammar.external_tokens.size(); i++) { - parse_table.states[state_id].terminal_entries[Symbol::external(i)].actions.push_back(ParseAction::Recover()); + if (grammar.external_tokens[i].corresponding_internal_token == rules::NONE()) { + parse_table.states[state_id].terminal_entries[Symbol::external(i)].actions.push_back(ParseAction::Recover()); + } } parse_table.add_terminal_action(state_id, END_OF_INPUT(), ParseAction::Recover()); diff --git a/src/runtime/parser.c b/src/runtime/parser.c index 855d7138..367f9796 100644 --- a/src/runtime/parser.c +++ b/src/runtime/parser.c @@ -19,11 +19,10 @@ parser__log(self); \ } \ -#define LOG_STACK() \ - if (self->print_debugging_graphs) { \ - ts_stack_print_dot_graph(self->stack, self->language->symbol_names, \ - stderr); \ - fputs("\n\n", stderr); \ +#define LOG_STACK() \ + if (self->print_debugging_graphs) { \ + ts_stack_print_dot_graph(self->stack, self->language->symbol_names, stderr); \ + fputs("\n\n", stderr); \ } #define LOG_TREE() \