From 2c1bf9bd68c361a55ef0130f269a674a4e87996e Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 25 Nov 2008 21:58:06 +0100 Subject: [PATCH] Use b4_parser_tables_define in Java. * data/java.m4 (b4_typed_parser_table): Rename as... (b4_typed_parser_table_define): this, for consistency. Accept a comment as $4. Move $2 into yy*_. (b4_integral_parser_table): Rename as... (b4_integral_parser_table_define): this. * data/lalr1.java: Adjust all uses. Use b4_parser_tables_define instead of generation by hand. --- ChangeLog | 12 ++++++++++++ data/java.m4 | 20 +++++++++++--------- data/lalr1.java | 47 ++++++++--------------------------------------- 3 files changed, 31 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index c3fa7334..4cb86fd7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2008-11-26 Akim Demaille + + Use b4_parser_tables_define in Java. + * data/java.m4 (b4_typed_parser_table): Rename as... + (b4_typed_parser_table_define): this, for consistency. + Accept a comment as $4. + Move $2 into yy*_. + (b4_integral_parser_table): Rename as... + (b4_integral_parser_table_define): this. + * data/lalr1.java: Adjust all uses. + Use b4_parser_tables_define instead of generation by hand. + 2008-11-26 Akim Demaille Prepare the convergence bw C style and Java table generation. diff --git a/data/java.m4 b/data/java.m4 index 9872505a..4b33728a 100644 --- a/data/java.m4 +++ b/data/java.m4 @@ -117,11 +117,13 @@ m4_define([b4_int_type_for], m4_define([b4_null], [null]) -# b4_typed_parser_table(TYPE, NAME, DATA) -# --------------------------------------- -m4_define([b4_typed_parser_table], -[[private static final ]$1[ $2[] = $2init(); - private static final ]$1[[] $2init() +# b4_typed_parser_table_define(TYPE, NAME, DATA, COMMENT) +# ------------------------------------------------------- +m4_define([b4_typed_parser_table_define], +[m4_ifval([$4], [b4_comment([$4]) + ])dnl +[private static final ]$1[ yy$2_[] = yy$2_init(); + private static final ]$1[[] yy$2_init() { return new ]$1[[] { @@ -130,10 +132,10 @@ m4_define([b4_typed_parser_table], }]]) -# b4_integral_parser_table(NAME, DATA) -#------------------------------------- -m4_define([b4_integral_parser_table], -[b4_typed_parser_table([b4_int_type_for([$2])], [$1], [$2])]) +# b4_integral_parser_table_define(NAME, DATA, COMMENT) +#----------------------------------------------------- +m4_define([b4_integral_parser_table_define], +[b4_typed_parser_table_define([b4_int_type_for([$2])], [$1], [$2], [$3])]) ## ------------------------- ## diff --git a/data/lalr1.java b/data/lalr1.java index 3d17e461..ea956548 100644 --- a/data/lalr1.java +++ b/data/lalr1.java @@ -759,51 +759,20 @@ m4_popdef([b4_at_dollar])])dnl 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])[ + ]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) @@ -826,7 +795,7 @@ m4_popdef([b4_at_dollar])])dnl } /* 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) { -- 2.47.2