+
+ /* Check that %empty => empty rule. */
+ if (r->percent_empty_loc.start.file
+ && r->next && r->next->content.sym)
+ complain (&r->percent_empty_loc, complaint,
+ _("%%empty on non-empty rule"));
+
+ /* See comments in grammar_current_rule_prec_set for how POSIX
+ mandates this complaint. It's only for identifiers, so skip
+ it for char literals and strings, which are always tokens. */
+ if (r->ruleprec
+ && r->ruleprec->tag[0] != '\'' && r->ruleprec->tag[0] != '"'
+ && r->ruleprec->status != declared && !r->ruleprec->prec)
+ complain (&r->location, Wother,
+ _("token for %%prec is not defined: %s"), r->ruleprec->tag);