uuagc-0.9.23: src-derived/ConcreteSyntax.hs
-- UUAGC 0.9.22 (ConcreteSyntax.ag)
module ConcreteSyntax where
{-# LINE 2 "ConcreteSyntax.ag" #-}
import UU.Scanner.Position (Pos)
import Patterns (Pattern)
import Expression (Expression)
import CommonTypes
{-# LINE 12 "../src-derived/ConcreteSyntax.hs" #-}
-- AG ----------------------------------------------------------
{-
alternatives:
alternative AG:
child elems : Elems
-}
data AG = AG (Elems )
-- Alt ---------------------------------------------------------
{-
alternatives:
alternative Alt:
child pos : {Pos}
child names : ConstructorSet
child fields : {Fields}
-}
data Alt = Alt (Pos) (ConstructorSet ) (Fields)
-- Alts --------------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : Alt
child tl : Alts
alternative Nil:
-}
type Alts = [Alt ]
-- Attrs -------------------------------------------------------
{-
alternatives:
alternative Attrs:
child pos : {Pos}
child inh : {AttrNames}
child chn : {AttrNames}
child syn : {AttrNames}
-}
data Attrs = Attrs (Pos) (AttrNames) (AttrNames) (AttrNames)
-- ConstructorSet ----------------------------------------------
{-
alternatives:
alternative CAll:
alternative CDifference:
child set1 : ConstructorSet
child set2 : ConstructorSet
alternative CName:
child name : {ConstructorIdent}
alternative CUnion:
child set1 : ConstructorSet
child set2 : ConstructorSet
-}
data ConstructorSet = CAll
| CDifference (ConstructorSet ) (ConstructorSet )
| CName (ConstructorIdent)
| CUnion (ConstructorSet ) (ConstructorSet )
-- Elem --------------------------------------------------------
{-
alternatives:
alternative Attr:
child pos : {Pos}
child ctx : {ClassContext}
child names : NontSet
child attrs : Attrs
alternative Data:
child pos : {Pos}
child ctx : {ClassContext}
child names : NontSet
child params : {[Identifier]}
child attrs : Attrs
child alts : Alts
child ext : {Bool}
alternative Deriving:
child pos : {Pos}
child set : NontSet
child classes : {[NontermIdent]}
alternative Module:
child pos : {Pos}
child name : {String}
child exports : {String}
child imports : {String}
alternative Pragma:
child pos : {Pos}
child names : {[NontermIdent]}
alternative Sem:
child pos : {Pos}
child ctx : {ClassContext}
child names : NontSet
child attrs : Attrs
child alts : SemAlts
alternative Set:
child pos : {Pos}
child name : {NontermIdent}
child set : NontSet
alternative Txt:
child pos : {Pos}
child name : {Identifier}
child mbNt : {Maybe NontermIdent}
child lines : {[String]}
alternative Type:
child pos : {Pos}
child ctx : {ClassContext}
child name : {NontermIdent}
child params : {[Identifier]}
child type : {ComplexType}
alternative Wrapper:
child pos : {Pos}
child set : NontSet
-}
data Elem = Attr (Pos) (ClassContext) (NontSet ) (Attrs )
| Data (Pos) (ClassContext) (NontSet ) (([Identifier])) (Attrs ) (Alts ) (Bool)
| Deriving (Pos) (NontSet ) (([NontermIdent]))
| Module (Pos) (String) (String) (String)
| Pragma (Pos) (([NontermIdent]))
| Sem (Pos) (ClassContext) (NontSet ) (Attrs ) (SemAlts )
| Set (Pos) (NontermIdent) (NontSet )
| Txt (Pos) (Identifier) ((Maybe NontermIdent)) (([String]))
| Type (Pos) (ClassContext) (NontermIdent) (([Identifier])) (ComplexType)
| Wrapper (Pos) (NontSet )
-- Elems -------------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : Elem
child tl : Elems
alternative Nil:
-}
type Elems = [Elem ]
-- NontSet -----------------------------------------------------
{-
alternatives:
alternative All:
alternative Difference:
child set1 : NontSet
child set2 : NontSet
alternative Intersect:
child set1 : NontSet
child set2 : NontSet
alternative NamedSet:
child name : {NontermIdent}
alternative Path:
child from : {NontermIdent}
child to : {NontermIdent}
alternative Union:
child set1 : NontSet
child set2 : NontSet
-}
data NontSet = All
| Difference (NontSet ) (NontSet )
| Intersect (NontSet ) (NontSet )
| NamedSet (NontermIdent)
| Path (NontermIdent) (NontermIdent)
| Union (NontSet ) (NontSet )
-- SemAlt ------------------------------------------------------
{-
alternatives:
alternative SemAlt:
child pos : {Pos}
child constructorSet : ConstructorSet
child rules : SemDefs
-}
data SemAlt = SemAlt (Pos) (ConstructorSet ) (SemDefs )
-- SemAlts -----------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : SemAlt
child tl : SemAlts
alternative Nil:
-}
type SemAlts = [SemAlt ]
-- SemDef ------------------------------------------------------
{-
alternatives:
alternative AroundDef:
child ident : {Identifier}
child rhs : {Expression}
alternative AttrOrderBefore:
child before : {[Occurrence]}
child after : {[Occurrence]}
alternative AugmentDef:
child ident : {Identifier}
child rhs : {Expression}
alternative Def:
child pos : {Pos}
child mbName : {Maybe Identifier}
child pattern : {Pattern}
child rhs : {Expression}
child owrt : {Bool}
alternative SemPragma:
child names : {[NontermIdent]}
alternative TypeDef:
child ident : {Identifier}
child tp : {Type}
alternative UniqueDef:
child ident : {Identifier}
child ref : {Identifier}
-}
data SemDef = AroundDef (Identifier) (Expression)
| AttrOrderBefore (([Occurrence])) (([Occurrence]))
| AugmentDef (Identifier) (Expression)
| Def (Pos) ((Maybe Identifier)) (Pattern) (Expression) (Bool)
| SemPragma (([NontermIdent]))
| TypeDef (Identifier) (Type)
| UniqueDef (Identifier) (Identifier)
-- SemDefs -----------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : SemDef
child tl : SemDefs
alternative Nil:
-}
type SemDefs = [SemDef ]