]> git.saurik.com Git - bison.git/blobdiff - data/lalr1.java
tests: use $PERL instead of perl
[bison.git] / data / lalr1.java
index 76460ead074e25963475bae63a253e701156e26e..d1410a10cf806b6598d71e90c44bc1d38a1e22a5 100644 (file)
@@ -1,6 +1,6 @@
 # Java skeleton for Bison -*- autoconf -*-
 
 # Java skeleton for Bison -*- autoconf -*-
 
-# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@ m4_ifval(m4_defn([b4_symbol_destructors]),
 m4_divert_push(0)dnl
 @output(b4_parser_file_name@)@
 b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java],
 m4_divert_push(0)dnl
 @output(b4_parser_file_name@)@
 b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java],
-             [2007, 2008, 2009, 2010])
+             [2007-2012])
 
 b4_percent_define_ifdef([package], [package b4_percent_define_get([package]);
 ])[/* First part of user declarations.  */
 
 b4_percent_define_ifdef([package], [package b4_percent_define_get([package]);
 ])[/* First part of user declarations.  */
@@ -102,7 +102,7 @@ b4_token_enums(b4_tokens)
   private ]b4_location_type[ yylloc (YYStack rhs, int n)
   {
     if (n > 0)
   private ]b4_location_type[ yylloc (YYStack rhs, int n)
   {
     if (n > 0)
-      return new ]b4_location_type[ (rhs.locationAt (1).begin, rhs.locationAt (n).end);
+      return new ]b4_location_type[ (rhs.locationAt (n-1).begin, rhs.locationAt (0).end);
     else
       return new ]b4_location_type[ (rhs.locationAt (0).end);
   }]])[
     else
       return new ]b4_location_type[ (rhs.locationAt (0).end);
   }]])[
@@ -255,14 +255,14 @@ b4_lexer_if([[
     }
 
     public final void pop () {
     }
 
     public final void pop () {
-      height--;
+      pop (1);
     }
 
     public final void pop (int num) {
       // Avoid memory leaks... garbage collection is a white lie!
       if (num > 0) {
     }
 
     public final void pop (int num) {
       // Avoid memory leaks... garbage collection is a white lie!
       if (num > 0) {
-       java.util.Arrays.fill (valueStack, height - num + 1, height, null);
-        ]b4_locations_if([[java.util.Arrays.fill (locStack, height - num + 1, height, null);]])[
+       java.util.Arrays.fill (valueStack, height - num + 1, height + 1, null);
+        ]b4_locations_if([[java.util.Arrays.fill (locStack, height - num + 1, height + 1, null);]])[
       }
       height -= num;
     }
       }
       height -= num;
     }
@@ -284,7 +284,7 @@ b4_lexer_if([[
     {
       out.print ("Stack now");
 
     {
       out.print ("Stack now");
 
-      for (int i = 0; i < height; i++)
+      for (int i = 0; i <= height; i++)
         {
          out.print (' ');
          out.print (stateStack[i]);
         {
          out.print (' ');
          out.print (stateStack[i]);
@@ -454,18 +454,14 @@ b4_lexer_if([[
     /// Semantic value of the lookahead.
     b4_yystype[ yylval = null;
 
     /// Semantic value of the lookahead.
     b4_yystype[ yylval = null;
 
-    int yyresult;
-
     yycdebug ("Starting parse\n");
     yyerrstatus_ = 0;
 
 ]m4_ifdef([b4_initial_action], [
     yycdebug ("Starting parse\n");
     yyerrstatus_ = 0;
 
 ]m4_ifdef([b4_initial_action], [
-m4_pushdef([b4_at_dollar],     [yylloc])dnl
-m4_pushdef([b4_dollar_dollar], [yylval])dnl
-    /* User initialization code.  */
-    b4_user_initial_action
-m4_popdef([b4_dollar_dollar])dnl
-m4_popdef([b4_at_dollar])])dnl
+b4_dollar_pushdef([yylval], [], [yylloc])dnl
+/* User initialization code.  */
+b4_user_initial_action
+b4_dollar_popdef])[]dnl
 
   [  /* Initialize the stack.  */
     yystack.push (yystate, yylval]b4_locations_if([, yylloc])[);
 
   [  /* Initialize the stack.  */
     yystack.push (yystate, yylval]b4_locations_if([, yylloc])[);
@@ -644,7 +640,7 @@ m4_popdef([b4_at_dollar])])dnl
              }
 
            /* Pop the current state because it cannot handle the error token.  */
              }
 
            /* Pop the current state because it cannot handle the error token.  */
-           if (yystack.height == 1)
+           if (yystack.height == 0)
              return false;
 
            ]b4_locations_if([yyerrloc = yystack.locationAt (0);])[
              return false;
 
            ]b4_locations_if([yyerrloc = yystack.locationAt (0);])[