uuagc-0.9.39.0: src-ag/ExecutionPlan.ag
imports
{
-- VisitSyntax.ag imports
import Patterns (Pattern(..),Patterns)
import Expression (Expression(..))
import CommonTypes
import qualified Data.Set as Set
}
DATA ExecutionPlan | ExecutionPlan nonts : ENonterminals
typeSyns : {TypeSyns}
wrappers : {Set.Set NontermIdent}
derivings : {Derivings}
TYPE ENonterminals = [ENonterminal]
TYPE EProductions = [EProduction]
TYPE ERules = [ERule]
TYPE EChildren = [EChild]
TYPE VisitSteps = [VisitStep]
TYPE Visits = [Visit]
DATA ENonterminal | ENonterminal nt : {NontermIdent}
params : {[Identifier]}
initial : {StateIdentifier}
initialv : {Maybe VisitIdentifier}
prods : EProductions
DATA EProduction | EProduction con : {ConstructorIdent}
rules : ERules
children : EChildren
visits : Visits
DATA EChild | EChild name : {Identifier}
tp : {Type}
virtual : {Maybe (Maybe Type)} -- first maybe: is child virtual, second maybe: did child already exist
DATA ERule | ERule name : {Identifier}
pattern : Pattern
rhs : Expression
owrt : {Bool}
origin : String -- just for documentation (and maybe errors)
explicit : Bool -- True if this rule defined in the source code
DATA Visit | Visit ident : {VisitIdentifier}
from : {StateIdentifier}
to : {StateIdentifier}
inh : {Set.Set Identifier}
syn : {Set.Set Identifier}
steps : VisitSteps
DATA VisitStep | Sem name : {Identifier}
| ChildVisit child : {Identifier}
nonterm : {NontermIdent}
visit : {VisitIdentifier}
| Sim steps : VisitSteps
| ChildIntro child : {Identifier}