- complain_at (location, _("rule given for %s, which is a token"), lhs->tag);
+ complain_at (loc, _("rule given for %s, which is a token"), lhs->tag);
+}
+
+
+/*----------------------------------------------------------------------.
+| A symbol should be used if it has a destructor, or if it is a |
+| mid-rule symbol (i.e., the generated LHS replacing a mid-rule |
+| action) that was assigned to, as in "exp: { $$ = 1; } { $$ = $1; }". |
+`----------------------------------------------------------------------*/
+
+static bool
+symbol_should_be_used (symbol_list const *s)
+{
+ return (s->sym->destructor
+ || (s->midrule && s->midrule->used));