Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: api/rascal/type/extracted
Source used for this grammar: Jurgen J. Vinju, Type
, 2009–2013 [Explore]
Symbol
, Production
, Attr
, Exception
), 0 root (—), 1 top (Exception
), 0 bottom (—).[int]
, [bool]
, [real]
, [rat]
, [str]
, [num]
, [node]
, [void]
, [value]
, [loc]
, [datetime]
, [label]
, [set]
, [rel]
, [lrel]
, [tuple]
, [list]
, [map]
, [bag]
, [adt]
, [cons]
2, [alias]
, [func]
2, [var-func]
, [reified]
, [parameter]
, [choice]
, [tag]
, [typeCastException]
.⟨name⟩
5, ⟨symbol⟩
5, ⟨symbols⟩
5, ⟨from⟩
2, ⟨to⟩
2, ⟨parameters⟩
5, ⟨adt⟩
, ⟨aliased⟩
, ⟨ret⟩
2, ⟨varArg⟩
, ⟨bound⟩
, ⟨def⟩
3, ⟨kwTypes⟩
2, ⟨kwDefaults⟩
2, ⟨attributes⟩
2, ⟨alternatives⟩
, ⟨tag⟩
.Symbol ::= [int]::ε [bool]::ε [real]::ε [rat]::ε [str]::ε [num]::ε [node]::ε [void]::ε [value]::ε [loc]::ε [datetime]::ε
Symbol ::= [label]::string ⟨symbol⟩:Symbol⟨name⟩:
Symbol ::= [set]::⟨symbol⟩:Symbol [rel]::⟨symbols⟩:Symbol [lrel]::⟨symbols⟩:Symbol [tuple]::⟨symbols⟩:Symbol [list]::⟨symbol⟩:Symbol [map]:: ⟨from⟩:Symbol ⟨to⟩:Symbol [bag]::⟨symbol⟩:Symbol [adt]:: ⟨name⟩:string ⟨parameters⟩:Symbol [cons]:: ⟨adt⟩:Symbol ⟨name⟩:string ⟨parameters⟩:Symbol [alias]:: ⟨name⟩:string ⟨parameters⟩:Symbol ⟨aliased⟩:Symbol [func]:: ⟨ret⟩:Symbol ⟨parameters⟩:Symbol [var-func]:: ⟨ret⟩:Symbol ⟨parameters⟩:Symbol ⟨varArg⟩:Symbol [reified]::⟨symbol⟩:Symbol
Symbol ::= [parameter]::string ⟨bound⟩:Symbol⟨name⟩:
Production ::= [cons]::Symbol ⟨symbols⟩:Symbol ⟨kwTypes⟩:Symbol ⟨kwDefaults⟩: ⟨attributes⟩: string string αAttr [func]:: ⟨def⟩:Symbol ⟨symbols⟩:Symbol ⟨kwTypes⟩:Symbol ⟨kwDefaults⟩: ⟨attributes⟩: string string αAttr [choice]:: ⟨def⟩:Symbol ⟨alternatives⟩:Production⟨def⟩:
Attr ::=
[tag]::⟨tag⟩:α
Exception ::= [typeCastException]::Symbol ⟨to⟩:φ⟨from⟩: