次: Actions, 前: Value Type, 上: Semantics
多くのプログラムでは、異なる種類のトークンとグループに対して、
異なるデータ型が必要です。
たとえば、数値定数はint
型やlong
型を必要とし、
文字列定数はchar *
型を必要とし、
識別子は記号表の項目へのポインタを必要とするでしょう。
同一の構文解析器内で、意味値に対して2つ以上のデータ型を使うには、 次の2項目が必要です。
%union
で、考えられるデータ型全体の集合を指定します
(see The Collection of Value Types)。
%token
を使います
(see Token Type Names)。
グループ化に対する型の指定には、Bison宣言の%type
を使います
(see Nonterminal Symbols)。