File: polymorphic.yo

package info (click to toggle)
bisonc%2B%2B 6.09.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,984 kB
  • sloc: cpp: 9,375; ansic: 1,505; fortran: 1,134; makefile: 1,062; sh: 526; yacc: 84; lex: 60
file content (21 lines) | stat: -rw-r--r-- 909 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    Syntax: bf(%polymorphic) tt(polymorphic-specification(s))

The tt(%polymorphic) directive is used to define a polymorphic semantic value
class, offering a (preferred) alternative to (traditional) tt(union) types.

Refer to section ref(POLYMORPHIC) for a detailed description of the
specification, characteristics, and use of polymorphic semantic values.

As a quick reference: to define multiple semantic values using a polymorphic
semantic value class offering either an tt(int), a tt(std::string) or a
tt(std::vector<double>) specify:
                verb(
    %polymorphic INT: int; STRING: std::string; 
                 VECT: std::vector<double>
                )
    and use tt(%type) specifications (cf. section ref(TYPE)) to associate
(non-)terminals with specific semantic value types.

tt(%stype, %union) and tt(%polymorphic) are mutually exclusive: only one
of these directives can be used.