mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
For associating token numbers with token names for "yacc.c", don't use
#define statements unless `--yacc' is specified; always use enum yytokentype. Most important discussions start at: <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>, <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>, and <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>. * NEWS (2.3+): Mention. * data/c.m4 (b4_yacc_if): New. (b4_token_enums_defines): Use b4_yacc_if to decide whether to add the token #define's. * doc/bison.texinfo (Bison Options): Describe the effect of `--yacc' on token name definitions. * src/getargs.c (usage): Capitalize `Yacc' in English. * src/output.c (prepare): Define b4_yacc_flag. * tests/regression.at (Early token definitions): Test that tokens names are defined before the pre-prologue not just before the post-prologue. Remove this test case and copy to... (Early token definitions with --yacc): ... this to test #define's. (Early token definitions without --yacc): ... and this to test enums.
This commit is contained in:
@@ -6830,9 +6830,12 @@ different diagnostics to be generated, and may change behavior in
|
||||
other minor ways. Most importantly, imitate Yacc's output
|
||||
file name conventions, so that the parser output file is called
|
||||
@file{y.tab.c}, and the other outputs are called @file{y.output} and
|
||||
@file{y.tab.h}. Thus, the following shell script can substitute
|
||||
for Yacc, and the Bison distribution contains such a script for
|
||||
compatibility with @acronym{POSIX}:
|
||||
@file{y.tab.h}.
|
||||
Also, if generating an @acronym{LALR}(1) parser in C, generate @code{#define}
|
||||
statements in addition to an @code{enum} to associate token numbers with token
|
||||
names.
|
||||
Thus, the following shell script can substitute for Yacc, and the Bison
|
||||
distribution contains such a script for compatibility with @acronym{POSIX}:
|
||||
|
||||
@example
|
||||
#! /bin/sh
|
||||
|
||||
Reference in New Issue
Block a user