diff --git a/data/skeletons/lalr1.java b/data/skeletons/lalr1.java index be2900ef..26508a8c 100644 --- a/data/skeletons/lalr1.java +++ b/data/skeletons/lalr1.java @@ -102,7 +102,7 @@ b4_output_begin([b4_parser_file_name])[ ]b4_user_pre_prologue[ ]b4_user_post_prologue[ import java.text.MessageFormat; -import java.util.Vector; +import java.util.ArrayList; ]b4_percent_code_get([[imports]])[ /** * A Bison parser, automatically generated from ]m4_bpatsubst(b4_file_name, [^"\(.*\)"$], [\1])[. @@ -268,7 +268,7 @@ import java.util.Vector; public ]b4_parser_class[(]b4_parse_param_decl([b4_lex_param_decl])[)]b4_maybe_throws([b4_init_throws])[ { ]b4_percent_code_get([[init]])[]b4_lac_if([[ - this.yylacStack = new Vector(); + this.yylacStack = new ArrayList(); this.yylacEstablished = false;]])[ this.yylexer = new YYLexer(]b4_lex_param_call[); ]b4_parse_param_cons[ @@ -282,7 +282,7 @@ import java.util.Vector; ]b4_lexer_if([[protected]], [[public]]) b4_parser_class[(]b4_parse_param_decl([[Lexer yylexer]])[)]b4_maybe_throws([b4_init_throws])[ { ]b4_percent_code_get([[init]])[]b4_lac_if([[ - this.yylacStack = new Vector(); + this.yylacStack = new ArrayList(); this.yylacEstablished = false;]])[ this.yylexer = yylexer; ]b4_parse_param_cons[ @@ -852,7 +852,7 @@ b4_dollar_popdef[]dnl this.yylen = 0; this.yystate = 0; this.yystack = new YYStack();]b4_lac_if([[ - this.yylacStack = new Vector(); + this.yylacStack = new ArrayList(); this.yylacEstablished = false;]])[ this.label = YYNEWSTATE; @@ -1021,7 +1021,7 @@ b4_dollar_popdef[]dnl { int topState = (yylacStack.isEmpty() ? yystack.stateAt(lacTop) - : yylacStack.lastElement()); + : yylacStack.get(yylacStack.size() - 1)); int yyrule = yypact_[topState]; if (yyPactValueIsDefault(yyrule) || (yyrule += yytoken.getCode()) < 0 || YYLAST_ < yyrule @@ -1056,7 +1056,10 @@ b4_dollar_popdef[]dnl // First pop from the LAC stack as many tokens as possible. int lacSize = yylacStack.size(); if (yylen < lacSize) { - yylacStack.setSize(lacSize - yylen); + // yylacStack.setSize(lacSize - yylen); + for (/* Nothing */; 0 < yylen; yylen -= 1) { + yylacStack.remove(yylacStack.size() - 1); + } yylen = 0; } else if (lacSize != 0) { yylacStack.clear(); @@ -1069,7 +1072,7 @@ b4_dollar_popdef[]dnl // Keep topState in sync with the updated stack. topState = (yylacStack.isEmpty() ? yystack.stateAt(lacTop) - : yylacStack.lastElement()); + : yylacStack.get(yylacStack.size() - 1)); // Push the resulting state of the reduction. int state = yyLRGotoState(topState, yyr1_[yyrule]); yycdebugNnl(" G" + state); @@ -1139,7 +1142,7 @@ b4_dollar_popdef[]dnl * yylacCheck. We just store it as a member of this class to hold * on to the memory and to avoid frequent reallocations. */ - Vector yylacStack; + ArrayList yylacStack; /** Whether an initial LAC context was established. */ boolean yylacEstablished; ]])[