mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Check in m4's output if there are sequences such as m4_foo or b4_foo, which are probably resulting from incorrect m4 processing. It actually already is useful: - it caught a leaking b4_lac_if leaking from glr.c, where LAC is not supported, hence b4_lac_if is not defined. - it also caught references to location.hh in position.hh when location.hh does not exist. - while making "Code injection" robust to these new warnings (it is its very purpose to let b4_canary pass unevaluated), I saw that it did not check lalr1.d, and when adding lalr1.d, it revealed it did underquote ocurrences of token value types. * src/scan-skel.l (macro): New abbreviation. Use it. * data/skeletons/glr.c: Don't use b4_lac_if, we don't have it. * data/skeletons/location.cc: Don't generate position.hh when we don't generate location.hh. * data/skeletons/d.m4 (b4_basic_symbol_constructor_define): Fix underquotation. * data/skeletons/bison.m4 (b4_canary): New. * tests/input.at (Code injection): Use it, and check lalr1.d too.
AT_BISON_OPTION_PUSHDEFS/AT_BISON_OPTION_POPDEFS
These two macros must be given the (main) directives so that they define a number of other macros to:
- what the language is (so what compiler tool chain to use, what definition of yylex/yyerror, etc.)
- what skeleton is used
Keywords
The following keywords are used to label tests (with AT_KEYWORDS(category)). Please follow them and avoid creating synonyms.
- action
- api.value.type
- c++: c++ language
- cex: counterexamples.
- d: d language
- deprec: deprecated features.
- diagnostics
- glr
- graph
- java
- lac
- %merge
- multistart
- push
- report: for automaton dumps
- %union
- variant
Calculator
The grammar features several special directives:
!!YYERROR!+YYACCEPT!-YYABORT!*YYNOMEM