Node:Union Decl, Next:, Previous:Precedence Decl, Up:Declarations



The Collection of Value Types

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 Nonterminal Symbols).

Note that, unlike making a union declaration in C, you do not write a semicolon after the closing brace.