X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/4a9cd8f24abba232b4a07ccdda4c6f109d27acac..423ca9b50e4321c078cc6fe7903b10ed4907d269:/src/reader.c diff --git a/src/reader.c b/src/reader.c index 107fe901..c456cbff 100644 --- a/src/reader.c +++ b/src/reader.c @@ -22,7 +22,6 @@ #include "system.h" #include -#include #include "complain.h" #include "conflicts.h" @@ -258,7 +257,7 @@ grammar_current_rule_begin (symbol *lhs, location loc, static bool symbol_should_be_used (symbol_list const *s, bool *midrule_warning) { - if (symbol_destructor_get (s->content.sym)->code) + if (symbol_code_props_get (s->content.sym, destructor)->code) return true; if ((s->midrule && s->midrule->action_props.is_value_used) || (s->midrule_parent_rule @@ -334,7 +333,7 @@ grammar_rule_check (const symbol_list *r) it for char literals and strings, which are always tokens. */ if (r->ruleprec && r->ruleprec->tag[0] != '\'' && r->ruleprec->tag[0] != '"' - && !r->ruleprec->declared && !r->ruleprec->prec) + && r->ruleprec->status != declared && !r->ruleprec->prec) warn_at (r->location, _("token for %%prec is not defined: %s"), r->ruleprec->tag); } @@ -471,6 +470,8 @@ grammar_current_rule_symbol_append (symbol *sym, location loc, p = grammar_symbol_append (sym, loc); if (name) assign_named_ref(p, name); + if (sym->status == undeclared || sym->status == used) + sym->status = needed; } /* Attach an ACTION to the current rule. */ @@ -639,7 +640,7 @@ prepare_percent_define_front_end_variables (void) default. */ muscle_percent_define_default ("lr.type", "lalr"); lr_type = muscle_percent_define_get ("lr.type"); - if (0 != strcmp (lr_type, "canonical-lr")) + if (STRNEQ (lr_type, "canonical-lr")) muscle_percent_define_default ("lr.default-reductions", "most"); else muscle_percent_define_default ("lr.default-reductions", "accepting");