diff options
author | Joel E. Denny <jdenny@ces.clemson.edu> | 2006-06-21 01:37:01 +0000 |
---|---|---|
committer | Joel E. Denny <jdenny@ces.clemson.edu> | 2006-06-21 01:37:01 +0000 |
commit | 9bc0dd679f19b79f7250d2b16563b590a3b032bb (patch) | |
tree | 6d90e565d72dc33550ce60a41eb70c21b69ee9a7 /src/reader.h | |
parent | 203b9274149813e3ad763f1b800c83dcff07237f (diff) | |
download | bison-9bc0dd679f19b79f7250d2b16563b590a3b032bb.tar.gz |
Don't put the pre-prologue in the header file. For the yacc.c code
file and the glr.c header and code files, move the pre-prologue before
the token definitions. Add new %before-definitions and
%after-definitions to declare code that will go in both the header file
and code file. Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
and
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
* NEWS (2.3+): Describe these changes.
* data/glr.c (b4_pre_prologue): Move from within to before...
(b4_shared_declarations): ... this.
Add new b4_before_definitions before b4_token_enums.
Add new b4_after_definitions at the end.
* data/glr.cc (b4_pre_prologue): Replace with...
(b4_before_definitions): ... this in the header file.
(b4_after_definitions): New near the end of the header file.
* data/lalr1.cc (b4_pre_prologue): Move from the header file to the
code file right before including the header file.
(b4_before_definitions): New in the previous position of
b4_pre_prologue in the header file.
(b4_after_definitions): New near the end of the header file.
* data/yacc.c: Clean up some m4 quoting especially in the header file.
(b4_token_enums_defines): In the code file, move to right before
YYSTYPE for consistency with the header file.
(b4_before_definitions): New right before b4_token_enums_defines in
both the header and code file.
(b4_after_definitions): New right after YYLTYPE and yylloc in both the
header and code file.
* doc/bison.texinfo (Prologue): Show use of %before-definitions instead
of prologues for %union dependencies.
(Bison Declaration Summary): In %defines description, mention the
effect of %before-definitions and %after-definitions on the header
file.
(Calc++ Parser): Forward declare driver in a %before-definitions rather
than in the pre-prologue so that make check succeeds.
(Bison Symbols): Add entries for %before-definitions and
%after-definitions.
* src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
%before-definitions.
(PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
(declaration): Parse those declarations and append to
b4_before_definitions and b4_after_definitions, respectively.
* src/reader.c (before_definitions, after_definitions): New bools to
track whether those declarations have been seen.
(prologue_augment): Add to the post-prologue if %union,
%before-definitions, or %after-definitions has been seen.
* src/reader.h (before_definitions, after_definitions): New extern's.
* src/scan-gram.l: Scan the new declarations.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
prologue block in a %before-definitions or a %after-definitions based
on whether the %union is declared.
* tests/regression.at (Early token definitions with --yacc, Early token
definitions without --yacc): Move tests for token definitions into the
post-prologue since token names are no longer defined in the
pre-prologue.
Diffstat (limited to 'src/reader.h')
-rw-r--r-- | src/reader.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/reader.h b/src/reader.h index ec289f2d..d49f8f67 100644 --- a/src/reader.h +++ b/src/reader.h @@ -58,8 +58,10 @@ void free_merger_functions (void); extern merger_list *merge_functions; -/* Was %union seen? */ +/* Was %union, %before-definitions, or %after-definitions seen? */ extern bool typed; +extern bool before_definitions; +extern bool after_definitions; /* Should rules have a default precedence? */ extern bool default_prec; |