glr2.cc: fork glr.cc to a c++ version

This is a fork of glr.cc to be c++-first instead of a wrapper around
glr.c.

* data/skeletons/glr2.cc: New.
* data/skeletons/bison.m4, data/skeletons/c++.m4: Adjust.
* data/skeletons/c.m4 (b4_user_args_no_comma): New.
* src/reader.c (grammar_rule_check_and_complete): glr2.cc is C++.
* tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
* tests/input.at, tests/local.at, tests/regression.at, tests/scanner.at,
* tests/synclines.at, tests/types.at: Also check glr2.cc.
This commit is contained in:
Valentin Tolmer
2020-07-01 11:02:36 +02:00
committed by Akim Demaille
parent a1b7fef045
commit ef09bf065a
17 changed files with 3344 additions and 11 deletions

View File

@@ -402,7 +402,7 @@ b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated.
# b4_glr_cc_if([IF-TRUE], [IF-FALSE])
# -----------------------------------
m4_define([b4_glr_cc_if],
[m4_if(b4_skeleton, ["glr.cc"], $@)])
[m4_if(m4_bregexp(b4_skeleton, [^"glr2?.cc"$]), [0], $@)])
## --------- ##

View File

@@ -109,7 +109,6 @@ b4_percent_define_default([[api.filename.type]], [[const std::string]])
# Make it a warning for those who used betas of Bison 3.0.
b4_percent_define_default([[api.namespace]], m4_defn([b4_prefix]))
b4_percent_define_default([[global_tokens_and_yystype]], [[false]])
b4_percent_define_default([[define_location_comparison]],
[m4_if(b4_percent_define_get([[filename_type]]),
[std::string], [[true]], [[false]])])

View File

@@ -127,7 +127,12 @@ m4_define([b4_lex],
# b4_user_args
# ------------
m4_define([b4_user_args],
[m4_ifset([b4_parse_param], [, b4_args(b4_parse_param)])])
[m4_ifset([b4_parse_param], [, b4_user_args_no_comma])])
# b4_user_args_no_comma
# ------------
m4_define([b4_user_args_no_comma],
[m4_ifset([b4_parse_param], [b4_args(b4_parse_param)])])
# b4_user_formals

3306
data/skeletons/glr2.cc Normal file

File diff suppressed because it is too large Load Diff