SableCC2Hs-0.0.0.1: haskell/SableAst.hs
-- generated Module ! DO NOT EDIT
{-# Language DeriveDataTypeable #-}
module SableAst where
import SableTokens
import Data.Data
--
data ParseUnit
= AbstractMachineParseUnit Machine MachineHeader [ MachineClause ]
| RefinementMachineParseUnit MachineHeader IdentifierLiteral [ MachineClause ]
| ImplementationMachineParseUnit MachineHeader IdentifierLiteral [ MachineClause ]
| DefinitionFileParseUnit MachineClause
| PredicateParseUnit Predicate
| ExpressionParseUnit Expression
| SubstitutionParseUnit Substitution
| MachineClauseParseUnit MachineClause
| EventBContextParseUnit IdentifierLiteral [ ContextClause ]
| EventBModelParseUnit IdentifierLiteral [ ModelClause ]
| OppatternParseUnit [ IdentifierLiteral ] [ Argpattern ]
deriving (Typeable,Data,Show)
--
data Argpattern
= UndefArgpattern
| DefArgpattern Expression
deriving (Typeable,Data,Show)
--
data Csppattern
= Csppattern Argtype Argpattern
deriving (Typeable,Data,Show)
--
data Argtype
= JoinArgtype
| InArgtype
| OutArgtype
deriving (Typeable,Data,Show)
--
data MachineHeader
= MachineHeader [ IdentifierLiteral ] [ Expression ]
deriving (Typeable,Data,Show)
--
data ContextClause
= ExtendsContextClause [ IdentifierLiteral ]
| SetsContextClause [ Set ]
| ConstantsContextClause [ Expression ]
| AxiomsContextClause [ Predicate ]
| TheoremsContextClause [ Predicate ]
deriving (Typeable,Data,Show)
--
data ModelClause
= RefinesModelClause IdentifierLiteral
| SeesModelClause [ IdentifierLiteral ]
| VariablesModelClause [ Expression ]
| InvariantModelClause [ Predicate ]
| TheoremsModelClause [ Predicate ]
| VariantModelClause Expression
| EventsModelClause [ Event ]
deriving (Typeable,Data,Show)
--
data MachineClause
= DefinitionsMachineClause [ Definition ]
| SeesMachineClause [ Expression ]
| PromotesMachineClause [ Expression ]
| UsesMachineClause [ Expression ]
| IncludesMachineClause [ MachineReference ]
| ExtendsMachineClause [ MachineReference ]
| ImportsMachineClause [ MachineReference ]
| SetsMachineClause [ Set ]
| VariablesMachineClause [ Expression ]
| ConcreteVariablesMachineClause [ Expression ]
| AbstractConstantsMachineClause [ Expression ]
| ConstantsMachineClause [ Expression ]
| PropertiesMachineClause Predicate
| ConstraintsMachineClause Predicate
| InitialisationMachineClause Substitution
| InvariantMachineClause Predicate
| AssertionsMachineClause [ Predicate ]
| ValuesMachineClause [ ValuesEntry ]
| LocalOperationsMachineClause [ Operation ]
| OperationsMachineClause [ Operation ]
deriving (Typeable,Data,Show)
--
data MachineReference
= MachineReference [ IdentifierLiteral ] [ Expression ]
deriving (Typeable,Data,Show)
--
data Definition
= PredicateDefinition DefLiteralPredicate [ Expression ] Predicate
| SubstitutionDefinition DefLiteralSubstitution [ Expression ] Substitution
| ExpressionDefinition IdentifierLiteral [ Expression ] Expression
| FileDefinition StringBody
deriving (Typeable,Data,Show)
--
data Set
= DeferredSet [ IdentifierLiteral ]
| EnumeratedSet [ IdentifierLiteral ] [ Expression ]
deriving (Typeable,Data,Show)
--
data ValuesEntry
= ValuesEntry [ IdentifierLiteral ] Expression
deriving (Typeable,Data,Show)
--
data Operation
= Operation [ Expression ] [ IdentifierLiteral ] [ Expression ] Substitution
deriving (Typeable,Data,Show)
--
data Event
= Event IdentifierLiteral Eventstatus [ IdentifierLiteral ] [ Expression ] [ Predicate ] [ Predicate ] [ Substitution ] [ Witness ]
deriving (Typeable,Data,Show)
--
data Witness
= Witness IdentifierLiteral Predicate
deriving (Typeable,Data,Show)
--
data Eventstatus
= OrdinaryEventstatus
| AnticipatedEventstatus
| ConvergentEventstatus
deriving (Typeable,Data,Show)
--
data Predicate
= ConjunctPredicate Predicate Predicate
| NegationPredicate Predicate
| DisjunctPredicate Predicate Predicate
| ImplicationPredicate Predicate Predicate
| EquivalencePredicate Predicate Predicate
| UniversalQuantificationPredicate [ Expression ] Predicate
| ExistentialQuantificationPredicate [ Expression ] Predicate
| EqualPredicate Expression Expression
| UnequalPredicate Expression Expression
| BelongPredicate Expression Expression
| NotBelongPredicate Expression Expression
| IncludePredicate Expression Expression
| IncludeStrictlyPredicate Expression Expression
| NotIncludePredicate Expression Expression
| NotIncludeStrictlyPredicate Expression Expression
| LessEqualPredicate Expression Expression
| LessPredicate Expression Expression
| GreaterEqualPredicate Expression Expression
| GreaterPredicate Expression Expression
| TruePredicate
| FalsePredicate
| FinitePredicate Expression
| PartitionPredicate Expression [ Expression ]
| DefinitionPredicate DefLiteralPredicate [ Expression ]
deriving (Typeable,Data,Show)
--
data Expression
= IdentifierExpression [ IdentifierLiteral ]
| PrimedIdentifierExpression [ IdentifierLiteral ] IntegerLiteral
| StringExpression StringBody
| TrueExpression
| FalseExpression
| IntegerExpression IntegerLiteral
| MaxIntExpression
| MinIntExpression
| EmptySetExpression
| IntegerSetExpression
| NaturalSetExpression
| Natural1SetExpression
| NatSetExpression
| Nat1SetExpression
| IntSetExpression
| BoolSetExpression
| StringSetExpression
| ConvertBoolExpression Predicate
| AddExpression Expression Expression
| MinusExpression Expression Expression
| MinusOrSetSubtractExpression Expression Expression
| UnaryExpression Expression
| MultiplicationExpression Expression Expression
| CartesianProductExpression Expression Expression
| MultOrCartExpression Expression Expression
| DivExpression Expression Expression
| ModuloExpression Expression Expression
| PowerOfExpression Expression Expression
| SuccessorExpression
| PredecessorExpression
| MaxExpression Expression
| MinExpression Expression
| CardExpression Expression
| GeneralSumExpression [ Expression ] Predicate Expression
| GeneralProductExpression [ Expression ] Predicate Expression
| CoupleExpression [ Expression ]
| ComprehensionSetExpression [ Expression ] Predicate
| ProverComprehensionSetExpression [ Expression ] Predicate
| EventBComprehensionSetExpression [ Expression ] Expression Predicate
| PowSubsetExpression Expression
| Pow1SubsetExpression Expression
| FinSubsetExpression Expression
| Fin1SubsetExpression Expression
| SetExtensionExpression [ Expression ]
| IntervalExpression Expression Expression
| UnionExpression Expression Expression
| IntersectionExpression Expression Expression
| SetSubtractionExpression Expression Expression
| GeneralUnionExpression Expression
| GeneralIntersectionExpression Expression
| QuantifiedUnionExpression [ Expression ] Predicate Expression
| QuantifiedIntersectionExpression [ Expression ] Predicate Expression
| RelationsExpression Expression Expression
| IdentityExpression Expression
| EventBIdentityExpression
| ReverseExpression Expression
| FirstProjectionExpression Expression Expression
| EventBFirstProjectionExpression Expression
| EventBFirstProjectionV2Expression
| SecondProjectionExpression Expression Expression
| EventBSecondProjectionExpression Expression
| EventBSecondProjectionV2Expression
| CompositionExpression Expression Expression
| RingExpression Expression Expression
| DirectProductExpression Expression Expression
| ParallelProductExpression Expression Expression
| IterationExpression Expression Expression
| ReflexiveClosureExpression Expression
| ClosureExpression Expression
| DomainExpression Expression
| RangeExpression Expression
| ImageExpression Expression Expression
| DomainRestrictionExpression Expression Expression
| DomainSubtractionExpression Expression Expression
| RangeRestrictionExpression Expression Expression
| RangeSubtractionExpression Expression Expression
| OverwriteExpression Expression Expression
| PartialFunctionExpression Expression Expression
| TotalFunctionExpression Expression Expression
| PartialInjectionExpression Expression Expression
| TotalInjectionExpression Expression Expression
| PartialSurjectionExpression Expression Expression
| TotalSurjectionExpression Expression Expression
| PartialBijectionExpression Expression Expression
| TotalBijectionExpression Expression Expression
| TotalRelationExpression Expression Expression
| SurjectionRelationExpression Expression Expression
| TotalSurjectionRelationExpression Expression Expression
| LambdaExpression [ Expression ] Predicate Expression
| TransFunctionExpression Expression
| TransRelationExpression Expression
| SeqExpression Expression
| Seq1Expression Expression
| IseqExpression Expression
| Iseq1Expression Expression
| PermExpression Expression
| EmptySequenceExpression
| SequenceExtensionExpression [ Expression ]
| SizeExpression Expression
| FirstExpression Expression
| LastExpression Expression
| FrontExpression Expression
| TailExpression Expression
| RevExpression Expression
| ConcatExpression Expression Expression
| InsertFrontExpression Expression Expression
| InsertTailExpression Expression Expression
| RestrictFrontExpression Expression Expression
| RestrictTailExpression Expression Expression
| GeneralConcatExpression Expression
| DefinitionExpression IdentifierLiteral [ Expression ]
| FunctionExpression Expression [ Expression ]
| TreeExpression Expression
| BtreeExpression Expression
| ConstExpression Expression Expression
| TopExpression Expression
| SonsExpression Expression
| PrefixExpression Expression
| PostfixExpression Expression
| SizetExpression Expression
| MirrorExpression Expression
| RankExpression Expression Expression
| FatherExpression Expression Expression
| SonExpression Expression Expression Expression
| SubtreeExpression Expression Expression
| ArityExpression Expression Expression
| BinExpression Expression Expression Expression
| LeftExpression Expression
| RightExpression Expression
| InfixExpression Expression
| StructExpression [ RecEntry ]
| RecExpression [ RecEntry ]
| RecordFieldExpression Expression Expression
deriving (Typeable,Data,Show)
--
data RecEntry
= RecEntry Expression Expression
deriving (Typeable,Data,Show)
--
data Substitution
= BlockSubstitution Substitution
| SkipSubstitution
| AssignSubstitution [ Expression ] [ Expression ]
| PreconditionSubstitution Predicate Substitution
| AssertionSubstitution Predicate Substitution
| ChoiceSubstitution [ Substitution ]
| ChoiceOrSubstitution Substitution
| IfSubstitution Predicate Substitution [ Substitution ] Substitution
| IfElsifSubstitution Predicate Substitution
| SelectSubstitution Predicate Substitution [ Substitution ] Substitution
| SelectWhenSubstitution Predicate Substitution
| CaseSubstitution Expression [ Expression ] Substitution [ Substitution ] Substitution
| CaseOrSubstitution [ Expression ] Substitution
| AnySubstitution [ Expression ] Predicate Substitution
| LetSubstitution [ Expression ] Predicate Substitution
| BecomesElementOfSubstitution [ Expression ] Expression
| BecomesSuchSubstitution [ Expression ] Predicate
| VarSubstitution [ Expression ] Substitution
| SequenceSubstitution [ Substitution ]
| FuncOpSubstitution Expression
| OpSubstitution Expression [ Expression ]
| OpWithReturnSubstitution [ Expression ] [ IdentifierLiteral ] [ Expression ]
| WhileSubstitution Predicate Substitution Predicate Expression
| ParallelSubstitution [ Substitution ]
| DefinitionSubstitution DefLiteralSubstitution [ Expression ]
deriving (Typeable,Data,Show)