| www.delorie.com/gnu/docs/bison/bison_61.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The %union declaration specifies the entire collection of possible
data types for semantic values. The keyword %union is followed by a
pair of braces containing the same thing that goes inside a union in
C.
For example:
%union {
double val;
symrec *tptr;
}
|
This says that the two alternative types are double and symrec
*. They are given names val and tptr; these names are used
in the %token and %type declarations to pick one of the types
for a terminal or nonterminal symbol (see section Nonterminal Symbols).
As an extension to POSIX, a tag is allowed after the
union. For example:
%union value {
double val;
symrec *tptr;
}
|
specifies the union tag value, so the corresponding C type is
union value. If you do not specify a tag, it defaults to
YYSTYPE.
Note that, unlike making a union declaration in C, you need not write
a semicolon after the closing brace.
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |