* src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do

with yyltype/YYLTYPE.  This allows inclusion of the generated
header within the parser if the compiler, such as GGC, accepts
multiple equivalent #defines.
This commit is contained in:
Akim Demaille
2001-11-05 09:12:38 +00:00
parent ea57e0a3c4
commit d61c57b70c
6 changed files with 34 additions and 18 deletions

View File

@@ -34,7 +34,7 @@ File: bison.info, Node: Top, Next: Introduction, Up: (dir)
Bison
*****
This manual documents version 1.30a of Bison, updated 4 November
This manual documents version 1.30a of Bison, updated 5 November
2001.
* Menu:

View File

@@ -855,11 +855,12 @@ The C declarations section (@pxref{C Declarations, ,The C Declarations Section})
preprocessor directives.
The @code{#define} directive defines the macro @code{YYSTYPE}, thus
specifying the C data type for semantic values of both tokens and groupings
(@pxref{Value Type, ,Data Types of Semantic Values}). The Bison parser will use whatever type
@code{YYSTYPE} is defined as; if you don't define it, @code{int} is the
default. Because we specify @code{double}, each token and each expression
has an associated value, which is a floating point number.
specifying the C data type for semantic values of both tokens and
groupings (@pxref{Value Type, ,Data Types of Semantic Values}). The
Bison parser will use whatever type @code{YYSTYPE} is defined as; if you
don't define it, @code{int} is the default. Because we specify
@code{double}, each token and each expression has an associated value,
which is a floating point number.
The @code{#include} directive is used to declare the exponentiation
function @code{pow}.
@@ -1066,10 +1067,11 @@ token type is an identifier, that identifier is defined by Bison as a C
macro whose definition is the appropriate number. In this example,
therefore, @code{NUM} becomes a macro for @code{yylex} to use.
The semantic value of the token (if it has one) is stored into the global
variable @code{yylval}, which is where the Bison parser will look for it.
(The C data type of @code{yylval} is @code{YYSTYPE}, which was defined
at the beginning of the grammar; @pxref{Rpcalc Decls, ,Declarations for @code{rpcalc}}.)
The semantic value of the token (if it has one) is stored into the
global variable @code{yylval}, which is where the Bison parser will look
for it. (The C data type of @code{yylval} is @code{YYSTYPE}, which was
defined at the beginning of the grammar; @pxref{Rpcalc Decls,
,Declarations for @code{rpcalc}}.)
A token type code of zero is returned if the end-of-file is encountered.
(Bison recognizes any nonpositive value as indicating the end of the
@@ -2374,7 +2376,8 @@ the numbers associated with @var{x} and @var{y}.
In a simple program it may be sufficient to use the same data type for
the semantic values of all language constructs. This was true in the
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish Notation Calculator}).
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish
Notation Calculator}).
Bison's default is to use type @code{int} for all semantic values. To
specify some other type, define @code{YYSTYPE} as a macro, like this:

View File

@@ -1,4 +1,4 @@
@set UPDATED 4 November 2001
@set UPDATED 5 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30a
@set VERSION 1.30a

View File

@@ -1,4 +1,4 @@
@set UPDATED 4 November 2001
@set UPDATED 5 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30a
@set VERSION 1.30a