]> git.saurik.com Git - bison.git/blobdiff - data/lalr1.cc
(yy::]b4_parser_class_name[::parse): Port
[bison.git] / data / lalr1.cc
index 746054beba489ef0c2f903396aa783431e46ca93..eef5a13c3b4cae58121e07de529f09f197093dd3 100644 (file)
@@ -16,8 +16,8 @@ m4_divert(-1)
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307  USA
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301  USA
 
 ## ---------------- ##
 ## Default values.  ##
@@ -115,7 +115,7 @@ m4_divert(0)dnl
 m4_if(b4_defines_flag, 0, [],
 [@output @output_header_name@
 b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
-             [2002, 2003, 2004])[
+             [2002, 2003, 2004, 2005])[
 /* FIXME: This is wrong, we want computed header guards.
    I don't know why the macros are missing now. :( */
 #ifndef PARSER_HEADER_H
@@ -408,7 +408,7 @@ namespace yy
 ])dnl
 @output @output_parser_name@
 b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
-             [2002, 2003, 2004])
+             [2002, 2003, 2004, 2005])
 m4_if(b4_prefix[], [yy], [],
 [
 // Take the name prefix into account.
@@ -544,6 +544,8 @@ yy::]b4_parser_class_name[::set_debug_level (debug_level_type l)
 int
 yy::]b4_parser_class_name[::parse ()
 {
+  int yyresult_;
+
   YYCDEBUG << "Starting parse" << std::endl;
 
   yynerrs_ = 0;
@@ -679,6 +681,7 @@ yyreduce:
   switch (yyn_)
     {
       ]b4_actions[
+      default: break;
     }
 
 ]/* Line __line__ of lalr1.cc.  */
@@ -812,14 +815,18 @@ yyerrlab1:
 
   /* Accept.  */
 yyacceptlab:
-  return 0;
+  yyresult_ = 0;
+  goto yyreturn;
 
   /* Abort.  */
 yyabortlab:
-  /* Free the lookahead. */
-  yydestruct_ ("Error: discarding lookahead", yyilooka_, &yylval, &yylloc);
-  yylooka_ = yyempty_;
-  return 1;
+  yyresult_ = 1;
+  goto yyreturn;
+
+yyreturn:
+  if (yylooka_ != yyeof_ && yylooka_ != yyempty_)
+    yydestruct_ ("Error: discarding lookahead", yyilooka_, &yylval, &yylloc);
+  return yyresult_;
 }
 
 void
@@ -1050,7 +1057,7 @@ const yy::]b4_parser_class_name[::token_number_type yy::]b4_parser_class_name[::
 ]b4_epilogue
 dnl
 @output stack.hh
-b4_copyright([stack handling for Bison C++ parsers], [2002, 2003, 2004])[
+b4_copyright([stack handling for Bison C++ parsers], [2002, 2003, 2004, 2005])[
 
 #ifndef BISON_STACK_HH
 # define BISON_STACK_HH
@@ -1149,7 +1156,7 @@ namespace yy
 #endif // not BISON_STACK_HH]
 dnl
 @output position.hh
-b4_copyright([Position class for Bison C++ parsers], [2002, 2003, 2004])[
+b4_copyright([Position class for Bison C++ parsers], [2002, 2003, 2004, 2005])[
 
 /**
  ** \file position.hh
@@ -1262,7 +1269,7 @@ namespace yy
 }
 #endif // not BISON_POSITION_HH]
 @output location.hh
-b4_copyright([Location class for Bison C++ parsers], [2002, 2003, 2004])[
+b4_copyright([Location class for Bison C++ parsers], [2002, 2003, 2004, 2005])[
 
 /**
  ** \file location.hh