+#define YYERROR goto yyerrorlab
+
+#if YYERROR_VERBOSE
+
+/* Return YYSTR after stripping away unnecessary quotes and
+ backslashes, so that it's suitable for yyerror. The heuristic is
+ that double-quoting is unnecessary unless the string contains an
+ apostrophe, a comma, or backslash (other than backslash-backslash).
+ YYSTR is taken from yytname. */
+std::string
+yy::]b4_parser_class_name[::yytnamerr_ (const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ std::string yyr = "";
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ yyr += *yyp;
+ break;
+
+ case '"':
+ return yyr;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ return yystr;
+}
+
+#endif
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+void
+yy::]b4_parser_class_name[::yysymprint_ (int yytype,
+ const semantic_type* yyvaluep, const location_type* yylocationp)
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+ (void) yylocationp;
+ /* Backward compatibility, but should be removed eventually. */
+ std::ostream& cdebug_ = *yycdebug_;
+ (void) cdebug_;
+
+ *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm")
+ << ' ' << yytname_[yytype] << " ("
+ << *yylocationp << ": ";
+ switch (yytype)
+ {
+]m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl
+[ default:
+ break;
+ }
+ *yycdebug_ << ')';
+}
+#endif /* ! YYDEBUG */
+
+void
+yy::]b4_parser_class_name[::yydestruct_ (const char* yymsg,
+ int yytype, semantic_type* yyvaluep, location_type* yylocationp)
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yymsg;
+ (void) yyvaluep;
+ (void) yylocationp;
+
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+]m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))[
+ default:
+ break;
+ }
+}
+
+void
+yy::]b4_parser_class_name[::yypop_ (unsigned int n)
+{
+ yystate_stack_.pop (n);
+ yysemantic_stack_.pop (n);
+ yylocation_stack_.pop (n);
+}
+
+std::ostream&
+yy::]b4_parser_class_name[::debug_stream () const
+{
+ return *yycdebug_;
+}
+
+void
+yy::]b4_parser_class_name[::set_debug_stream (std::ostream& o)
+{
+ yycdebug_ = &o;
+}
+
+
+yy::]b4_parser_class_name[::debug_level_type
+yy::]b4_parser_class_name[::debug_level () const
+{
+ return yydebug_;
+}
+
+void
+yy::]b4_parser_class_name[::set_debug_level (debug_level_type l)
+{
+ yydebug_ = l;
+}