packages feed

uuagc-0.9.38.6: src-derived/ExecutionPlan.hs


-- UUAGC 0.9.38.2 (ExecutionPlan.ag)
module ExecutionPlan where
{-# LINE 2 "ExecutionPlan.ag" #-}

-- VisitSyntax.ag imports
import Patterns    (Pattern(..),Patterns)
import Expression  (Expression(..))
import CommonTypes

import qualified Data.Set as Set
{-# LINE 14 "../src-derived/ExecutionPlan.hs" #-}
-- EChild ------------------------------------------------------
{-
   alternatives:
      alternative EChild:
         child name           : {Identifier}
         child tp             : {Type}
         child virtual        : {Maybe (Maybe Type)}
-}
data EChild  = EChild (Identifier) (Type) ((Maybe (Maybe Type))) 
-- EChildren ---------------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : EChild 
         child tl             : EChildren 
      alternative Nil:
-}
type EChildren  = [EChild ]
-- ENonterminal ------------------------------------------------
{-
   alternatives:
      alternative ENonterminal:
         child nt             : {NontermIdent}
         child params         : {[Identifier]}
         child initial        : {StateIdentifier}
         child initialv       : {Maybe VisitIdentifier}
         child prods          : EProductions 
-}
data ENonterminal  = ENonterminal (NontermIdent) (([Identifier])) (StateIdentifier) ((Maybe VisitIdentifier)) (EProductions ) 
-- ENonterminals -----------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : ENonterminal 
         child tl             : ENonterminals 
      alternative Nil:
-}
type ENonterminals  = [ENonterminal ]
-- EProduction -------------------------------------------------
{-
   alternatives:
      alternative EProduction:
         child con            : {ConstructorIdent}
         child rules          : ERules 
         child children       : EChildren 
         child visits         : Visits 
-}
data EProduction  = EProduction (ConstructorIdent) (ERules ) (EChildren ) (Visits ) 
-- EProductions ------------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : EProduction 
         child tl             : EProductions 
      alternative Nil:
-}
type EProductions  = [EProduction ]
-- ERule -------------------------------------------------------
{-
   alternatives:
      alternative ERule:
         child name           : {Identifier}
         child pattern        : {Pattern}
         child rhs            : {Expression}
         child owrt           : {Bool}
         child origin         : {String}
         child explicit       : {Bool}
-}
data ERule  = ERule (Identifier) (Pattern) (Expression) (Bool) (String) (Bool) 
-- ERules ------------------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : ERule 
         child tl             : ERules 
      alternative Nil:
-}
type ERules  = [ERule ]
-- ExecutionPlan -----------------------------------------------
{-
   alternatives:
      alternative ExecutionPlan:
         child nonts          : ENonterminals 
         child typeSyns       : {TypeSyns}
         child wrappers       : {Set.Set NontermIdent}
-}
data ExecutionPlan  = ExecutionPlan (ENonterminals ) (TypeSyns) ((Set.Set NontermIdent)) 
-- Visit -------------------------------------------------------
{-
   alternatives:
      alternative Visit:
         child ident          : {VisitIdentifier}
         child from           : {StateIdentifier}
         child to             : {StateIdentifier}
         child inh            : {Set.Set Identifier}
         child syn            : {Set.Set Identifier}
         child steps          : VisitSteps 
-}
data Visit  = Visit (VisitIdentifier) (StateIdentifier) (StateIdentifier) ((Set.Set Identifier)) ((Set.Set Identifier)) (VisitSteps ) 
-- VisitStep ---------------------------------------------------
{-
   alternatives:
      alternative ChildIntro:
         child child          : {Identifier}
      alternative ChildVisit:
         child child          : {Identifier}
         child nonterm        : {NontermIdent}
         child visit          : {VisitIdentifier}
      alternative Sem:
         child name           : {Identifier}
      alternative Sim:
         child steps          : VisitSteps 
-}
data VisitStep  = ChildIntro (Identifier) 
                | ChildVisit (Identifier) (NontermIdent) (VisitIdentifier) 
                | Sem (Identifier) 
                | Sim (VisitSteps ) 
-- VisitSteps --------------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : VisitStep 
         child tl             : VisitSteps 
      alternative Nil:
-}
type VisitSteps  = [VisitStep ]
-- Visits ------------------------------------------------------
{-
   alternatives:
      alternative Cons:
         child hd             : Visit 
         child tl             : Visits 
      alternative Nil:
-}
type Visits  = [Visit ]