packages feed

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)