X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c4ddc0fb0b96ca5a4abaeaae5155bf72818453f7..2b008529edd233bac07a58d557869ae902be1818:/data/lalr1.java diff --git a/data/lalr1.java b/data/lalr1.java index 78953947..b89a4233 100644 --- a/data/lalr1.java +++ b/data/lalr1.java @@ -17,15 +17,20 @@ m4_include(b4_pkgdatadir/[java.m4]) -b4_defines_if([b4_fatal([%s: %%defines does not make sense in Java], [b4_skeleton])]) -m4_ifval(m4_defn([b4_symbol_destructors]), - [b4_fatal([%s: %%destructor does not make sense in Java], [b4_skeleton])], - []) +b4_defines_if([b4_fatal([%s: %%defines does not make sense in Java], + [b4_skeleton])]) + +m4_define([b4_symbol_no_destructor_assert], +[b4_symbol_if([$1], [has_destructor], + [b4_fatal([%s: %s: %%destructor does not make sense in Java], + [b4_skeleton], + [b4_symbol_action_location([$1], [destructor])])])]) +b4_symbol_foreach([b4_symbol_no_destructor_assert]) m4_divert_push(0)dnl @output(b4_parser_file_name@)@ b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java], - [2007, 2008]) + [2007, 2008]) b4_percent_define_ifdef([package], [package b4_percent_define_get([package]); ])[/* First part of user declarations. */ @@ -752,65 +757,27 @@ m4_popdef([b4_at_dollar])])dnl res.append (yytnamerr_ (yytname_[x])); } } - return res.toString (); + return res.toString (); } } ]])[ return "syntax error"; } - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ private static final ]b4_int_type_for([b4_pact])[ yypact_ninf_ = ]b4_pact_ninf[; - ]b4_integral_parser_table([yypact_], [b4_pact])[ - - /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ - ]b4_integral_parser_table([yydefact_], [b4_defact])[ - - /* YYPGOTO[NTERM-NUM]. */ - ]b4_integral_parser_table([yypgoto_], [b4_pgoto])[ - - /* YYDEFGOTO[NTERM-NUM]. */ - ]b4_integral_parser_table([yydefgoto_], [b4_defgoto])[ - - /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. */ private static final ]b4_int_type_for([b4_table])[ yytable_ninf_ = ]b4_table_ninf[; - ]b4_integral_parser_table([yytable_], [b4_table])[ - - /* YYCHECK. */ - ]b4_integral_parser_table([yycheck_], [b4_check])[ - /* STOS_[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ - ]b4_integral_parser_table([yystos_], [b4_stos])[ - - /* TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding - to YYLEX-NUM. */ - ]b4_integral_parser_table([yytoken_number_], [b4_toknum])[ - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ - ]b4_integral_parser_table([yyr1_], [b4_r1])[ - - /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ - ]b4_integral_parser_table([yyr2_], [b4_r2])[ + ]b4_parser_tables_define[ + ]b4_integral_parser_table_define([token_number], [b4_toknum], + [TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding + to YYLEX-NUM.])[ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at \a yyntokens_, nonterminals. */ - ]b4_typed_parser_table([String], [yytname_], [b4_tname])[ - - /* YYRHS -- A `-1'-separated list of the rules' RHS. */ - ]b4_integral_parser_table([yyrhs_], [b4_rhs])[ - - /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ - ]b4_integral_parser_table([yyprhs_], [b4_prhs])[ + ]b4_typed_parser_table_define([String], [tname], [b4_tname])[ - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ - ]b4_integral_parser_table([yyrline_], [b4_rline])[ + ]b4_integral_parser_table_define([rline], [b4_rline], + [YYRLINE[YYN] -- Source line where rule number YYN was defined.])[ // Report on the debug stream that the rule yyrule is going to be reduced. private void yy_reduce_print (int yyrule, YYStack yystack) @@ -827,13 +794,13 @@ m4_popdef([b4_at_dollar])])dnl /* The symbols being reduced. */ for (int yyi = 0; yyi < yynrhs; yyi++) yy_symbol_print (" $" + (yyi + 1) + " =", - yyrhs_[yyprhs_[yyrule] + yyi], + yystos_[yystack.stateAt(yyi + 1 - yynrhs)], ]b4_rhs_value(yynrhs, yyi + 1)b4_locations_if([, b4_rhs_location(yynrhs, yyi + 1)])[); } /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ - ]b4_integral_parser_table([yytranslate_table_], [b4_translate])[ + ]b4_integral_parser_table_define([translate_table], [b4_translate])[ private static final ]b4_int_type_for([b4_translate])[ yytranslate_ (int t) {