mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-27 05:03:07 +00:00
Remove quotes from variables names in %define directives and from
qualifiers in %code directives, and restrict the characters that are allowed in them to M4-friendly ones. For %define, continue to support the quoted form as a deprecated feature. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00023.html>. * NEWS (2.3a+): Add entry for the change to %define. Update entry for %code. * doc/bison.texinfo (Prologue Alternatives): Update. (Bison Declaration Summary): In %defines entry, update mention of `%code requires' and `%code provides'. (C++ Location Values): Update %define uses. (Calc++ Parser Interface): Likewise. (Calc++ Parser): Likewise, and update `%code requires' uses. (Bison Symbols): Update %code documentation. * src/parse-gram.y (prologue_declaration): For %define variables, use `variable' instead of `STRING'. (grammar_declaration): For %code qualifiers, use `ID' instead of `STRING'. (variable): New nonterminal that takes an `ID' or a `STRING'. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update %code and %define uses. * tests/calc.at (_AT_DATA_CALC_Y): Update %define use. * tests/input.at (Reject unused %code qualifiers): Update %code uses. (%define errors): Update %define uses.
This commit is contained in:
@@ -178,7 +178,7 @@ m4_if([$1$2$3], $[1]$[2]$[3], [],
|
||||
# helping macros. So don't put any directly in the Bison file.
|
||||
AT_BISON_OPTION_PUSHDEFS([$5])
|
||||
AT_DATA_GRAMMAR([[input.y]],
|
||||
[[%code "requires" {
|
||||
[[%code requires {
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -196,8 +196,8 @@ m4_ifval([$6], [%union
|
||||
{
|
||||
int ival;
|
||||
}])
|
||||
AT_LALR1_CC_IF([%define "global_tokens_and_yystype"])
|
||||
m4_ifval([$6], [[%code "provides" {]], [[%code {]])
|
||||
AT_LALR1_CC_IF([%define global_tokens_and_yystype])
|
||||
m4_ifval([$6], [[%code provides {]], [[%code {]])
|
||||
AT_LALR1_CC_IF([typedef yy::location YYLTYPE;])
|
||||
[static int yylex (]AT_LEX_FORMALS[);
|
||||
]AT_LALR1_CC_IF([], [static void yyerror (const char *msg);])
|
||||
|
||||
Reference in New Issue
Block a user