packages feed

SableCC2Hs-0.0.0.2: 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 (Maybe 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 (Maybe Expression) (Maybe 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 ] (Maybe Substitution)
    | IfElsifSubstitution !Predicate !Substitution
    | SelectSubstitution !Predicate !Substitution [ Substitution ] (Maybe Substitution)
    | SelectWhenSubstitution !Predicate !Substitution
    | CaseSubstitution !Expression [ Expression ] !Substitution [ Substitution ] (Maybe 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)