]> git.saurik.com Git - bison.git/blobdiff - data/lalr1.cc
(Actions after errors): New test case.
[bison.git] / data / lalr1.cc
index b7b64c3ca7f190b4ee7416b0b439284f72832b1f..0dd1eb066fc98bc663492d23de1d0b73a3bb3867 100644 (file)
@@ -48,7 +48,7 @@ m4_define([b4_lhs_value],
 # Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
 # symbols on RHS.
 m4_define([b4_rhs_value],
-[semantic_stack_@<:@m4_eval([$1 - $2])@:>@m4_ifval([$3], [.$3])])
+[semantic_stack_@{m4_eval([$1 - $2])@}m4_ifval([$3], [.$3])])
 
 m4_define_default([b4_location_type], [Location])
 
@@ -64,28 +64,9 @@ m4_define([b4_lhs_location],
 # Expansion of @NUM, where the current rule has RULE-LENGTH symbols
 # on RHS.
 m4_define([b4_rhs_location],
-[location_stack_@<:@m4_eval([$1 - $2])@:>@])
+[location_stack_@{m4_eval([$1 - $2])@}])
 
 
-m4_define_default([b4_input_suffix], [.y])
-
-m4_define_default([b4_output_parser_suffix],
-[m4_translit(b4_input_suffix, [yY], [cC])])
-
-m4_define_default([b4_output_parser_name],
-[b4_output_prefix[]b4_output_infix[]b4_output_parser_suffix[]])
-
-
-m4_define_default([b4_output_header_suffix],
-[m4_translit(b4_input_suffix, [yY], [hH])])
-
-m4_define_default([b4_output_header_name],
-[b4_output_prefix[]b4_output_infix[]b4_output_header_suffix[]])
-
-m4_define_default([b4_header_guard],
-                  [m4_bpatsubst(m4_toupper([BISON_]b4_output_header_name),
-                                [[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]], [_])])
-
 m4_define([b4_inherit],
           [m4_ifdef([b4_root],
                    [: public b4_root
@@ -105,12 +86,14 @@ m4_define([b4_constructor],
                    [])])
 
 
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
 m4_divert(0)dnl
-#output "b4_output_header_name"
+@output @output_header_name@
 b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
              [2002])
-#ifndef b4_header_guard
-# define b4_header_guard
+#ifndef YYLSP_NEEDED
+# define YYLSP_NEEDED
 
 #include "stack.hh"
 #include "location.hh"
@@ -127,7 +110,7 @@ b4_token_defines(b4_tokens)
 b4_pre_prologue
 
 /* Line __line__ of __file__.  */
-#line __oline__ "__ofile__"
+b4_syncline([@oline@], [@ofile@])
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -141,10 +124,10 @@ b4_pre_prologue
 
 #ifndef YYSTYPE
 m4_ifdef([b4_stype],
-[#line b4_stype_line "b4_filename"
+[b4_syncline([b4_stype_line], [b4_filename])
 typedef union b4_stype yystype;
 /* Line __line__ of __file__.  */
-#line __oline__ "__ofile__"],
+b4_syncline([@oline@], [@ofile@])],
 [typedef int yystype;])
 # define YYSTYPE yystype
 #endif
@@ -153,7 +136,7 @@ typedef union b4_stype yystype;
 b4_post_prologue
 
 /* Line __line__ of __file__.  */
-#line __oline__  "__ofile__"
+b4_syncline([@oline@], [@ofile@])
 #ifndef YYLLOC_DEFAULT
 # define YYLLOC_DEFAULT(Current, Rhs, N) \
    Current.last_line = Rhs[[N]].last_line; \
@@ -289,7 +272,7 @@ namespace yy
     SemanticType value;
     LocationType location;
 
-    /* @$ and $$.  */
+    /* @@$ and $$.  */
     SemanticType yyval;
     LocationType yyloc;
 
@@ -298,13 +281,13 @@ namespace yy
   };
 }
 
-#endif /* not b4_header_guard */
+#endif /* ! defined YYLSP_NEEDED */
 dnl
-#output "b4_output_prefix[]b4_output_infix[].cc"
+@output @output_parser_name@
 b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
              [2002])
 
-#include "b4_output_header_name"
+#include @output_header_name@
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -461,7 +444,7 @@ yy::b4_parser_class_name::parse ()
     }
 
 /* Line __line__ of __file__.  */
-#line __oline__ "__ofile__"
+b4_syncline([@oline@], [@ofile@])
 
   state_stack_.pop (len_);
   semantic_stack_.pop (len_);
@@ -501,7 +484,7 @@ yy::b4_parser_class_name::parse ()
       n_ = pact_[[state_]];
       if (pact_ninf_ < n_ && n_ < last_)
        {
-         message = "parse error, unexpected ";
+         message = "syntax error, unexpected ";
          message += name_[[ilooka_]];
          {
            int count = 0;
@@ -522,7 +505,7 @@ yy::b4_parser_class_name::parse ()
        }
       else
 #endif
-       message = "parse error";
+       message = "syntax error";
       error_ ();
     }
   goto yyerrlab1;
@@ -779,7 +762,7 @@ const yy::b4_parser_class_name::TokenNumberType yy::b4_parser_class_name::undef_
 
 b4_epilogue
 dnl
-#output "stack.hh"
+@output stack.hh
 b4_copyright([2002])
 
 #ifndef BISON_STACK_HH
@@ -876,7 +859,7 @@ namespace yy
 
 #endif // not BISON_STACK_HH
 dnl
-#output "location.hh"
+@output location.hh
 b4_copyright([2002])
 
 #ifndef BISON_LOCATION_HH