1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Syntax: bf(%type) tt(<type> symbol-list)
To associate (non-)terminals with specific semantic value types
the bf(%type) directive is used.
When tt(%polymorphic) is used to specify multiple semantic value types,
(non-)terminals can be associated with one of the semantic value types
specified with the tt(%polymorphic) directive.
When tt(%union) is used to specify multiple semantic value types,
(non-)terminals can be associated with one of the tt(union) fields specified
with the tt(%union) directive.
With this directive, tt(symbol-list) defines of one or more blank or comma
delimited grammatical symbols (i.e., terminal and/or nonterminal symbols);
tt(type) is either a polymorphic type-identifier or a field name defined in
the tt(%union) specification. The specified nonterminal(s) are automatically
associated with the indicate semantic type. The pointed arrows are part of the
type specification.
When the semantic value type of a terminal symbol is defined the
em(lexical scanner) rather than the parser's actions must assign the
appropriate semantic value to link(d_val_)(DVAL) just prior to returning the
token. To associate terminal symbols with semantic values, terminal symbols
can also be specified in a tt(%type) directive.
|