X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/2b08bcebf082a2417ef5706b5ae0664ce844f16e..c826013fb38c98861ef0fc5d4dc3fb3fb4f555be:/data/lalr1.cc diff --git a/data/lalr1.cc b/data/lalr1.cc index 1a2777e9..7cb7db62 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -1,7 +1,6 @@ # C++ skeleton for Bison -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# Copyright (C) 2002-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 @@ -116,7 +115,7 @@ m4_popdef([b4_dollar_dollar])dnl m4_pushdef([b4_copyright_years], - [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009]) + [2002-2010]) m4_define([b4_parser_class_name], [b4_percent_define_get([[parser_class_name]])]) @@ -125,10 +124,10 @@ m4_define([b4_parser_class_name], b4_defines_if([], [b4_fatal([b4_skeleton[: using %%defines is mandatory]])]) -b4_locations_if( -[# Backward compatibility. -m4_define([b4_location_constructors]) -m4_include(b4_pkgdatadir/[location.cc])]) +b4_locations_if([b4_percent_define_ifdef([[location_type]], [], + [# Backward compatibility. + m4_define([b4_location_constructors]) + m4_include(b4_pkgdatadir/[location.cc])])]) m4_include(b4_pkgdatadir/[stack.hh]) b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])]) @@ -151,14 +150,12 @@ dnl FIXME: This is wrong, we want computed header guards. #include #include #include "stack.hh" +]b4_locations_if([b4_percent_define_ifdef([[location_type]], [], + [[#include "location.hh"]])])[ -]b4_namespace_open[ -]b4_locations_if([ class position; - class location;])[ -]b4_variant_if([b4_variant_define])[ -]b4_namespace_close[ - -]b4_locations_if([#include "location.hh"])[ +]b4_variant_if([b4_namespace_open +b4_variant_define +b4_namespace_close])[ /* Enabling traces. */ #ifndef YYDEBUG @@ -398,7 +395,7 @@ m4_if(b4_prefix, [yy], [], b4_percent_code_get[]dnl [#ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* FIXME: INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -690,7 +687,7 @@ b4_percent_code_get[]dnl symbol_type yyla;]b4_locations_if([[ /// The locations where the error started and ended. - stack_symbol_type yyerror_range[2];]])[ + stack_symbol_type yyerror_range[3];]])[ /// $$ and @@$. stack_symbol_type yylhs; @@ -867,7 +864,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param)));])[ } ]b4_locations_if([[ - yyerror_range[0].location = yyla.location;]])[ + yyerror_range[1].location = yyla.location;]])[ if (yyerrstatus_ == 3) { /* If just tried and failed to reuse lookahead token after an @@ -876,7 +873,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param)));])[ /* Return failure if at end of input. */ if (yyla.type == yyeof_) YYABORT; - else + else if (!yyempty) { yy_destroy_ ("Error: discarding", yyla); yyempty = true; @@ -898,7 +895,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param)));])[ code. */ if (false) goto yyerrorlab;]b4_locations_if([[ - yyerror_range[0].location = yystack_[yylen - 1].location;]])b4_variant_if([[ + yyerror_range[1].location = yystack_[yylen - 1].location;]])b4_variant_if([[ /* $$ was initialized before running the user action. */ yy_destroy_ ("Error: discarding", yylhs);]])[ /* Do not reclaim the symbols of the rule which action triggered @@ -932,14 +929,14 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param)));])[ if (yystack_.size () == 1) YYABORT; ]b4_locations_if([[ - yyerror_range[0].location = yystack_[0].location;]])[ + yyerror_range[1].location = yystack_[0].location;]])[ yy_destroy_ ("Error: popping", yystack_[0]); yypop_ (); YY_STACK_PRINT (); } ]b4_locations_if([[ - yyerror_range[1].location = yyla.location; - YYLLOC_DEFAULT (error_token.location, (yyerror_range - 1), 2);]])[ + yyerror_range[2].location = yyla.location; + YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);]])[ /* Shift the error token. */ error_token.state = yyn;