X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/7eb8a0bcca2b3897f4a2045cd36250191d4e6aa0..ad5feac4e2cd16569d8586f2eac6a9efeeadc038:/data/glr.cc diff --git a/data/glr.cc b/data/glr.cc index 2f164c74..12f629a4 100644 --- a/data/glr.cc +++ b/data/glr.cc @@ -1,22 +1,21 @@ -*- C -*- # C++ GLR skeleton for Bison -# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, +# Inc. -# This program is free software; you can redistribute it and/or modify +# 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 -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. - +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. - +# # 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 USA +# along with this program. If not, see . # This skeleton produces a C++ class that encapsulates a C glr parser. @@ -57,12 +56,10 @@ b4_defines_if([], m4_include(b4_pkgdatadir/[c++.m4]) m4_include(b4_pkgdatadir/[location.cc]) -b4_check_percent_define_variables([[global_tokens_and_yystype]], - [[parser_class_name]], - [[location_type]], - [[filename_type]], - [[b4_namespace]], - [[b4_define_location_comparison]]) +m4_define([b4_parser_class_name], + [b4_percent_define_get([[parser_class_name]])]) +m4_define([b4_namespace], + [b4_percent_define_get([[namespace]])]) # Save the parse parameters. m4_define([b4_parse_param_orig], m4_defn([b4_parse_param])) @@ -232,9 +229,7 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C++], #ifndef PARSER_HEADER_H # define PARSER_HEADER_H -]m4_ifdef([b4_percent_code_requires], -[[/* Copy the %code "requires" blocks. */ -]b4_user_code([b4_percent_code_requires])])[ +]b4_percent_code_get([[requires]])[ #include #include @@ -284,8 +279,9 @@ namespace ]b4_namespace[ #ifndef YYSTYPE ]m4_ifdef([b4_stype], [ union semantic_type + { b4_user_stype - ;], + };], [m4_if(b4_tag_seen_flag, 0, [[ typedef int semantic_type;]], [[ typedef YYSTYPE semantic_type;]])])[ @@ -293,7 +289,7 @@ b4_user_stype typedef YYSTYPE semantic_type; #endif /// Symbol locations. - typedef ]b4_location_type[ location_type; + typedef ]b4_percent_define_get([[location_type]])[ location_type; /// Tokens. struct token { @@ -368,7 +364,7 @@ b4_user_stype }; ]dnl Redirections for glr.c. -m4_ifset([b4_global_tokens_and_yystype], +b4_percent_define_flag_if([[global_tokens_and_yystype]], [b4_token_defines(b4_tokens)]) [ #ifndef YYSTYPE @@ -380,9 +376,7 @@ m4_ifset([b4_global_tokens_and_yystype], } -]m4_ifdef([b4_percent_code_provides], -[[/* Copy the %code "provides" blocks. */ -]b4_user_code([b4_percent_code_provides])])[]dnl +]b4_percent_code_get([[provides]])[]dnl [#endif /* ! defined PARSER_HEADER_H */] m4_divert_pop(0)