imports { import UU.Scanner.Position (Pos) import Patterns (Pattern) import Expression (Expression) import CommonTypes import Macro --marcos } TYPE Elems = [Elem] TYPE Alts = [Alt] TYPE Fields = [Field] TYPE SemAlts = [SemAlt] TYPE SemDefs = [SemDef] DATA AG | AG elems : Elems DATA Elem | Data pos : {Pos} contype : {ConstructorType} ctx : {ClassContext} names : NontSet params : {[Identifier]} attrs : Attrs alts : Alts ext : {Bool} | Type pos : {Pos} ctx : {ClassContext} name : {NontermIdent} params : {[Identifier]} type : {ComplexType} | Attr pos : {Pos} ctx : {ClassContext} names : NontSet quants : {[String]} attrs : Attrs | Sem pos : {Pos} ctx : {ClassContext} names : NontSet attrs : Attrs quants : {[String]} alts : SemAlts | Txt pos : {Pos} kind : {BlockKind} mbNt : {Maybe NontermIdent} lines : {[String]} | Set pos : {Pos} name : {NontermIdent} merge : Bool set : NontSet | Deriving pos : {Pos} set : NontSet classes : {[NontermIdent]} | Wrapper pos : {Pos} set : NontSet | Nocatas pos : {Pos} set : NontSet | Pragma pos : {Pos} names: {[NontermIdent]} | Module pos : {Pos} name : {String} -- name of the haskell module exports : {String} -- exports of the haskell module imports : {String} -- imports to replicate to generated haskell modules DATA Attrs | Attrs pos : {Pos} inh,chn,syn : {AttrNames} DATA Alt | Alt pos : {Pos} names : ConstructorSet tyvars : {[Identifier]} fields : Fields macro : MaybeMacro --marcos: macro extension DATA Field | FChild name : Identifier tp : Type | FCtx tps : {[Type]} DATA SemAlt | SemAlt pos : {Pos} constructorSet : ConstructorSet rules : SemDefs DATA SemDef | Def pos : Pos mbName : {Maybe Identifier} pattern: Pattern rhs : {Expression} owrt : {Bool} pure : Bool eager : Bool | TypeDef pos : {Pos} ident : {Identifier} tp : Type | UniqueDef ident : {Identifier} ref : {Identifier} | AugmentDef ident : {Identifier} rhs : {Expression} | AroundDef ident : {Identifier} rhs : {Expression} | MergeDef target : {Identifier} nt : {Identifier} sources : {[Identifier]} rhs : {Expression} | SemPragma names : {[NontermIdent]} | AttrOrderBefore before : {[Occurrence]} after : {[Occurrence]} DATA ConstructorSet | CName name : {ConstructorIdent} | CUnion set1,set2 : ConstructorSet | CDifference set1,set2 : ConstructorSet | CAll DATA NontSet | NamedSet name : {NontermIdent} | All | Union set1,set2 : NontSet | Intersect set1,set2 : NontSet | Difference set1,set2 : NontSet | Path from,to : {NontermIdent}