]> git.saurik.com Git - bison.git/blobdiff - data/lalr1.java
yysyntax_error: prepare for readability of next patches.
[bison.git] / data / lalr1.java
index 0ba03125a2c0326b0dd173d8d0531cb4f7e932a4..32462d7828631be8a053b8b14984d0470fda71ca 100644 (file)
@@ -1,6 +1,6 @@
 # Java skeleton for Bison -*- autoconf -*-
 
-# Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2008, 2009, 2010 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
@@ -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],
-             [2007, 2008, 2009])
+             [2007, 2008, 2009, 2010])
 
 b4_percent_define_ifdef([package], [package b4_percent_define_get([package]);
 ])[/* First part of user declarations.  */
@@ -308,12 +308,9 @@ b4_lexer_if([[
    * printing an error message.  */
   public static final int YYERROR = 2;
 
-  /**
-   * Returned by a Bison action in order to print an error message and start
-   * error recovery.  Formally deprecated in Bison 2.4.2's NEWS entry, where
-   * a plan to phase it out is discussed.  */
-  public static final int YYFAIL = 3;
-
+  // Internal return codes that are not supported for user semantic
+  // actions.
+  private static final int YYERRLAB = 3;
   private static final int YYNEWSTATE = 4;
   private static final int YYDEFAULT = 5;
   private static final int YYREDUCE = 6;
@@ -530,7 +527,7 @@ m4_popdef([b4_at_dollar])])dnl
         else if ((yyn = yytable_[yyn]) <= 0)
           {
            if (yy_table_value_is_error_ (yyn))
-             label = YYFAIL;
+             label = YYERRLAB;
            else
              {
                yyn = -yyn;
@@ -564,7 +561,7 @@ m4_popdef([b4_at_dollar])])dnl
       case YYDEFAULT:
         yyn = yydefact_[yystate];
         if (yyn == 0)
-          label = YYFAIL;
+          label = YYERRLAB;
         else
           label = YYREDUCE;
         break;
@@ -581,7 +578,7 @@ m4_popdef([b4_at_dollar])])dnl
       /*------------------------------------.
       | yyerrlab -- here on detecting error |
       `------------------------------------*/
-      case YYFAIL:
+      case YYERRLAB:
         /* If not already recovering from an error, report this error.  */
         if (yyerrstatus_ == 0)
           {
@@ -689,38 +686,39 @@ m4_popdef([b4_at_dollar])])dnl
         int yyn = yypact_[yystate];
         if (yypact_ninf_ < yyn && yyn <= yylast_)
           {
-           StringBuffer res;
-
-           /* Start YYX at -YYN if negative to avoid negative indexes in
-              YYCHECK.  In other words, skip the first -YYN actions for this
-              state because they are default actions.  */
-           int yyxbegin = yyn < 0 ? -yyn : 0;
-
-           /* Stay within bounds of both yycheck and yytname.  */
-           int yychecklim = yylast_ - yyn + 1;
-           int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
-           int count = 0;
-           for (int x = yyxbegin; x < yyxend; ++x)
-             if (yycheck_[x + yyn] == x && x != yyterror_
-                 && !yy_table_value_is_error_ (yytable_[x + yyn]))
-               ++count;
-
-           // FIXME: This method of building the message is not compatible
-           // with internationalization.
-           res = new StringBuffer ("syntax error, unexpected ");
-           res.append (yytnamerr_ (yytname_[tok]));
-           if (count < 5)
-             {
-               count = 0;
-               for (int x = yyxbegin; x < yyxend; ++x)
-                 if (yycheck_[x + yyn] == x && x != yyterror_
-                     && !yy_table_value_is_error_ (yytable_[x + yyn]))
-                   {
-                     res.append (count++ == 0 ? ", expecting " : " or ");
-                     res.append (yytnamerr_ (yytname_[x]));
-                   }
-             }
-           return res.toString ();
+            StringBuffer res;
+
+                /* Start YYX at -YYN if negative to avoid negative
+                   indexes in YYCHECK.  In other words, skip the first
+                   -YYN actions for this state because they are default
+                   actions.  */
+                int yyxbegin = yyn < 0 ? -yyn : 0;
+
+                /* Stay within bounds of both yycheck and yytname.  */
+                int yychecklim = yylast_ - yyn + 1;
+                int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
+                int count = 0;
+                for (int x = yyxbegin; x < yyxend; ++x)
+                  if (yycheck_[x + yyn] == x && x != yyterror_
+                      && !yy_table_value_is_error_ (yytable_[x + yyn]))
+                    ++count;
+
+            // FIXME: This method of building the message is not compatible
+            // with internationalization.
+            res = new StringBuffer ("syntax error, unexpected ");
+            res.append (yytnamerr_ (yytname_[tok]));
+                if (count < 5)
+                  {
+                    count = 0;
+                    for (int x = yyxbegin; x < yyxend; ++x)
+                      if (yycheck_[x + yyn] == x && x != yyterror_
+                          && !yy_table_value_is_error_ (yytable_[x + yyn]))
+                        {
+                          res.append (count++ == 0 ? ", expecting " : " or ");
+                          res.append (yytnamerr_ (yytname_[x]));
+                        }
+                  }
+            return res.toString ();
           }
       }