uuagc-0.9.5: src-derived/CodeSyntax.hs
-- UUAGC 0.9.5 (CodeSyntax.ag)
module CodeSyntax where
import Patterns
import CommonTypes
import Data.Map(Map)
import Data.Set(Set)
-- CAlternative ------------------------------------------------
{-
alternatives:
alternative CAlternative:
child con : {Constructor}
child visits : CVisits
child children : {[(Name,Type,Bool)]}
child terminals : {[Name]}
-}
data CAlternative = CAlternative (Constructor) (CVisits) ([(Name,Type,Bool)]) ([Name])
-- CAlternatives -----------------------------------------------
{-
alternatives:
alternative Cons:
child hd : CAlternative
child tl : CAlternatives
alternative Nil:
-}
type CAlternatives = [CAlternative]
-- CGrammar ----------------------------------------------------
{-
alternatives:
alternative CGrammar:
child typeSyns : {TypeSyns}
child derivings : {Derivings}
child wrappers : {Set Nonterminal}
child prods : CProductions
child pragmas : {PragmaMap}
-}
data CGrammar = CGrammar (TypeSyns) (Derivings) (Set Nonterminal) (CProductions) (PragmaMap)
-- CInterface --------------------------------------------------
{-
alternatives:
alternative CInterface:
child seg : CSegments
-}
data CInterface = CInterface (CSegments)
-- CProduction -------------------------------------------------
{-
alternatives:
alternative CProduction:
child nt : {Nonterminal}
child inh : {Attributes}
child syn : {Attributes}
child alts : CAlternatives
child inter : CInterface
-}
data CProduction = CProduction (Nonterminal) (Attributes) (Attributes) (CAlternatives) (CInterface)
-- CProductions ------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : CProduction
child tl : CProductions
alternative Nil:
-}
type CProductions = [CProduction]
-- CRule -------------------------------------------------------
{-
alternatives:
alternative CChildVisit:
child name : {Name}
child nt : {Nonterminal}
child nr : {Int}
child inh : {Attributes}
child syn : {Attributes}
child isLast : {Bool}
alternative CRule:
child name : {Name}
child isIn : {Bool}
child hasCode : {Bool}
child nt : {Nonterminal}
child con : {Constructor}
child field : {Name}
child childnt : {Maybe Nonterminal}
child tp : {Maybe Type}
child pattern : {Pattern}
child rhs : {[String]}
child defines : {Map Int (Name,Name,Maybe Type)}
child owrt : {Bool}
child origin : {String}
child uses : {Set (Name, Name)}
-}
data CRule = CChildVisit (Name) (Nonterminal) (Int) (Attributes) (Attributes) (Bool)
| CRule (Name) (Bool) (Bool) (Nonterminal) (Constructor) (Name) (Maybe Nonterminal) (Maybe Type) (Pattern) ([String]) (Map Int (Name,Name,Maybe Type)) (Bool) (String) (Set (Name, Name))
-- CSegment ----------------------------------------------------
{-
alternatives:
alternative CSegment:
child inh : {Attributes}
child syn : {Attributes}
-}
data CSegment = CSegment (Attributes) (Attributes)
-- CSegments ---------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : CSegment
child tl : CSegments
alternative Nil:
-}
type CSegments = [CSegment]
-- CVisit ------------------------------------------------------
{-
alternatives:
alternative CVisit:
child inh : {Attributes}
child syn : {Attributes}
child vss : Sequence
child intra : Sequence
child ordered : {Bool}
-}
data CVisit = CVisit (Attributes) (Attributes) (Sequence) (Sequence) (Bool)
-- CVisits -----------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : CVisit
child tl : CVisits
alternative Nil:
-}
type CVisits = [CVisit]
-- Sequence ----------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : CRule
child tl : Sequence
alternative Nil:
-}
type Sequence = [CRule]