Files
bison/tests
Akim Demaille 9acc9d2aee c++: issue a compile-time warning when #define YYSTYPE is used
Using #define YYSTYPE has always been strongly discouraged in C++.
Macros are dangerous and can result in subtle bugs.
https://lists.gnu.org/r/bug-bison/2020-12/msg00007.html

Maybe some people are currently using #define YYSTYPE.  Instead of
dropping support right now, first issue a warning.  Bison can "see" if
YYDEBUG is defined (it could even be on the command line), only the
compiler knows.  Unfortunately `#warning` is non-portable, and
actually GCC even dies on it when `-pedantic` is enabled.  So we need
to use `#pragma message`.  We must make it conditional as some
compilers might not support it, but it doesn't matter if only _some_
compilers emit the warning: it should be enough to catch the attention
of the developers.

* data/skeletons/c++.m4: Issue a warning when the user defined
YYSTYPE.
* tests/actions.at: Don't #define YYSTYPE.
* tests/headers.at (Several parsers): Ignore the YYSTYPE in the
warning.
2021-02-01 05:54:06 +01:00
..
2021-01-30 14:32:00 +01:00
2021-01-29 13:48:43 -08:00
2021-01-29 13:48:43 -08:00
2021-01-30 08:49:22 +01:00
2021-01-30 14:32:00 +01:00
2021-01-29 13:48:43 -08:00
2021-01-29 13:48:43 -08:00
2021-01-29 13:48:43 -08:00
2021-01-16 16:11:17 +01:00
2021-01-29 13:48:43 -08:00
2021-01-29 13:48:43 -08:00
2021-01-30 14:32:00 +01:00
2021-01-30 08:49:22 +01:00
2021-01-30 14:32:00 +01:00
2019-11-03 10:32:22 +01:00
2021-01-29 13:48:43 -08:00

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