asil-1.2: src/SymViewAst.ag
--
-- A view on symbol tables
--
-- Table structure
DATA FileV | File
tables : TablesV
TYPE TablesV = [TableV]
DATA TableV | Table
classes : ClassesV
methods : MethodsV
-- Class structure
TYPE ClassesV = [ClassV]
DATA ClassV | Class
ref : ClassRef
nm : NmV
mbSuper : MbSuperV
itfs : ItfsV
dynTraits : TraitsV
staTraits : TraitsV
TYPE MbSuperV = MAYBE SuperV
DATA SuperV | Super
tp : TypeV
DATA TypeV | Type
isNull : Bool
nm : NmV
TYPE ItfsV = [ItfV]
DATA ItfV | Itf
tp : TypeV
TYPE TraitsV = [TraitV]
DATA TraitV
| Method nm : NmV sig : SigV
| Field nm : NmV tp : TypeV
| Other nm : NmV
-- Method signatures
TYPE MethodsV = [MethodV]
DATA MethodV | Method
mbNm : MbStrV
sig : SigV
DATA SigV | Sig
id : MethodRef
ret : TypeV
params : ParamsV
TYPE ParamsV = [ParamV]
DATA ParamV | Param
mbNm : MbStrV
tp : TypeV
-- Names
TYPE NmsV = [NmV]
TYPE MbNmV = MAYBE NmV
DATA NmV
| Qual id : NameRef ns : NsV nm : StrV -- fully qualified name
| Quals id : NameRef set : NsSetV nm : StrV -- name in multiple namespaces
| Other id : NameRef -- not an easily resolveable name
DATA NsV | Ns
id : NamespaceRef
nm : StrV
DATA NsSetV | Set
id : NamesetRef
spaces : NssV
TYPE NssV = [NsV]
TYPE MbStrV = MAYBE StrV
DATA StrV | Str
id : StringRef
val : String