Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
ISO Modula-2 Abstract Syntax Tree definitions
Synopsis
- data Language = Language
- data Declaration (full :: Bool) λ l (f' :: * -> *) (f :: * -> *) where
- ConstantDeclaration :: IdentDef l -> f (ConstExpression l l f' f') -> Declaration x λ l f' f
- TypeDeclaration :: IdentDef l -> f (Type l l f' f') -> Declaration x λ l f' f
- OpaqueTypeDeclaration :: IdentDef l -> Declaration False λ l f' f
- VariableDeclaration :: IdentList l -> f (Type l l f' f') -> Declaration x λ l f' f
- AddressedVariableDeclaration :: f (AddressedIdent l l f' f') -> ZipList (f (AddressedIdent l l f' f')) -> f (Type l l f' f') -> Declaration True λ l f' f
- ProcedureDeclaration :: f (ProcedureHeading l l f' f') -> f (Block l l f' f') -> Declaration True λ l f' f
- ProcedureDefinition :: f (ProcedureHeading l l f' f') -> Declaration False λ l f' f
- ForwardProcedureDeclaration :: f (ProcedureHeading l l f' f') -> Declaration True λ l f' f
- ModuleDeclaration :: Ident -> Maybe (f (Priority l l f' f')) -> [Import l] -> Maybe (Export l) -> f (Block l l f' f') -> Declaration True λ l f' f
- data AddressedIdent λ l f' f
- = AddressedIdent Ident (f (ConstExpression l l f' f'))
- | UnaddressedIdent Ident
- data Type λ l f' f
- = TypeReference (QualIdent l)
- | ArrayType (ZipList (f (Type l l f' f'))) (f (Type l l f' f'))
- | EnumerationType (IdentList l)
- | SubrangeType (Maybe (QualIdent l)) (f (ConstExpression l l f' f')) (f (ConstExpression l l f' f'))
- | SetType (f (Type l l f' f'))
- | PackedSetType (f (Type l l f' f'))
- | RecordType (ZipList (f (FieldList l l f' f')))
- | PointerType (f (Type l l f' f'))
- | ProcedureType (Maybe (f (FormalParameters l l f' f')))
- data Expression λ l f' f
- = Relation RelOp (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Positive (f (Expression l l f' f'))
- | Negative (f (Expression l l f' f'))
- | Add (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Subtract (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Or (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Multiply (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Divide (f (Expression l l f' f')) (f (Expression l l f' f'))
- | IntegerDivide (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Modulo (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Remainder (f (Expression l l f' f')) (f (Expression l l f' f'))
- | And (f (Expression l l f' f')) (f (Expression l l f' f'))
- | Array (Maybe (QualIdent l)) [f (Item l l f' f')]
- | Record (Maybe (QualIdent l)) [f (Expression l l f' f')]
- | Set (Maybe (QualIdent l)) (ZipList (f (Element l l f' f')))
- | Read (f (Designator l l f' f'))
- | FunctionCall (f (Designator l l f' f')) (ZipList (f (Expression l l f' f')))
- | Not (f (Expression l l f' f'))
- | Literal (f (Value l l f' f'))
- data Item λ l f' f
- = Single (f (Expression l l f' f'))
- | Repeated (f (Expression l l f' f')) (f (ConstExpression l l f' f'))
- data Variant λ l f' f
- = Variant (f (CaseLabels l l f' f')) (ZipList (f (CaseLabels l l f' f'))) (ZipList (f (FieldList l l f' f')))
- | EmptyVariant
- data Block λ l f' f
- = Block (ZipList (f (Declaration l l f' f'))) (Maybe (f (StatementSequence l l f' f')))
- | ExceptionHandlingBlock (ZipList (f (Declaration l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) (Maybe (f (StatementSequence l l f' f')))
- data Statement λ l f' f
- = EmptyStatement
- | Assignment (f (Designator l l f' f')) (f (Expression l l f' f'))
- | ProcedureCall (f (Designator l l f' f')) (Maybe (ZipList (f (Expression l l f' f'))))
- | If (f (ConditionalBranch l l f' f')) (ZipList (f (ConditionalBranch l l f' f'))) (Maybe (f (StatementSequence l l f' f')))
- | CaseStatement (f (Expression l l f' f')) (ZipList (f (Case l l f' f'))) (Maybe (f (StatementSequence l l f' f')))
- | While (f (Expression l l f' f')) (f (StatementSequence l l f' f'))
- | Repeat (f (StatementSequence l l f' f')) (f (Expression l l f' f'))
- | For Ident (f (Expression l l f' f')) (f (Expression l l f' f')) (Maybe (f (Expression l l f' f'))) (f (StatementSequence l l f' f'))
- | Loop (f (StatementSequence l l f' f'))
- | With (f (Designator l l f' f')) (f (StatementSequence l l f' f'))
- | Exit
- | Return (Maybe (f (Expression l l f' f')))
- | RetryStatement
Documentation
Data type representing the Modula-2 language, as specified by the ISO standard.
Instances
data Declaration (full :: Bool) λ l (f' :: * -> *) (f :: * -> *) where Source #
ConstantDeclaration :: IdentDef l -> f (ConstExpression l l f' f') -> Declaration x λ l f' f | |
TypeDeclaration :: IdentDef l -> f (Type l l f' f') -> Declaration x λ l f' f | |
OpaqueTypeDeclaration :: IdentDef l -> Declaration False λ l f' f | |
VariableDeclaration :: IdentList l -> f (Type l l f' f') -> Declaration x λ l f' f | |
AddressedVariableDeclaration :: f (AddressedIdent l l f' f') -> ZipList (f (AddressedIdent l l f' f')) -> f (Type l l f' f') -> Declaration True λ l f' f | |
ProcedureDeclaration :: f (ProcedureHeading l l f' f') -> f (Block l l f' f') -> Declaration True λ l f' f | |
ProcedureDefinition :: f (ProcedureHeading l l f' f') -> Declaration False λ l f' f | |
ForwardProcedureDeclaration :: f (ProcedureHeading l l f' f') -> Declaration True λ l f' f | |
ModuleDeclaration :: Ident -> Maybe (f (Priority l l f' f')) -> [Import l] -> Maybe (Export l) -> f (Block l l f' f') -> Declaration True λ l f' f |
Instances
data AddressedIdent λ l f' f Source #
AddressedIdent Ident (f (ConstExpression l l f' f')) | |
UnaddressedIdent Ident |
Instances
TypeReference (QualIdent l) | |
ArrayType (ZipList (f (Type l l f' f'))) (f (Type l l f' f')) | |
EnumerationType (IdentList l) | |
SubrangeType (Maybe (QualIdent l)) (f (ConstExpression l l f' f')) (f (ConstExpression l l f' f')) | |
SetType (f (Type l l f' f')) | |
PackedSetType (f (Type l l f' f')) | |
RecordType (ZipList (f (FieldList l l f' f'))) | |
PointerType (f (Type l l f' f')) | |
ProcedureType (Maybe (f (FormalParameters l l f' f'))) |
Instances
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, Foldable t (Type l l), Foldable t (Type l l), Foldable t (ConstExpression l l), Foldable t (ConstExpression l l), Foldable t (Type l l), Foldable t (Type l l), Foldable t (FieldList l l), Foldable t (Type l l), Foldable t (FormalParameters l l)) => Foldable t (Type λ l) Source # | |
(Transformation t, Functor t (Type l l), Functor t (Type l l), Functor t (ConstExpression l l), Functor t (ConstExpression l l), Functor t (Type l l), Functor t (Type l l), Functor t (FieldList l l), Functor t (Type l l), Functor t (FormalParameters l l)) => Functor t (Type λ l) Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, Traversable t (Type l l), Traversable t (Type l l), Traversable t (ConstExpression l l), Traversable t (ConstExpression l l), Traversable t (Type l l), Traversable t (Type l l), Traversable t (FieldList l l), Traversable t (Type l l), Traversable t (FormalParameters l l)) => Traversable t (Type λ l) Source # | |
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, At t (Type l l f' f'), At t (Type l l f' f'), At t (ConstExpression l l f' f'), At t (ConstExpression l l f' f'), At t (Type l l f' f'), At t (Type l l f' f'), At t (FieldList l l f' f'), At t (Type l l f' f'), At t (FormalParameters l l f' f')) => Foldable t (Type λ l f') Source # | |
(Transformation t, At t (Type l l f' f'), At t (Type l l f' f'), At t (ConstExpression l l f' f'), At t (ConstExpression l l f' f'), At t (Type l l f' f'), At t (Type l l f' f'), At t (FieldList l l f' f'), At t (Type l l f' f'), At t (FormalParameters l l f' f')) => Functor t (Type λ l f') Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, At t (Type l l f' f'), At t (Type l l f' f'), At t (ConstExpression l l f' f'), At t (ConstExpression l l f' f'), At t (Type l l f' f'), At t (Type l l f' f'), At t (FieldList l l f' f'), At t (Type l l f' f'), At t (FormalParameters l l f' f')) => Traversable t (Type λ l f') Source # | |
Apply (Type λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST (<*>) :: forall (p :: k -> Type0) (q :: k -> Type0). Type λ l f' (p ~> q) -> Type λ l f' p -> Type λ l f' q # liftA2 :: (forall (a :: k). p a -> q a -> r a) -> Type λ l f' p -> Type λ l f' q -> Type λ l f' r # liftA3 :: (forall (a :: k). p a -> q a -> r a -> s a) -> Type λ l f' p -> Type λ l f' q -> Type λ l f' r -> Type λ l f' s # | |
Foldable (Type λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Functor (Type λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Traversable (Type λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
(Typeable λ, Typeable l, Typeable f, Typeable f', Data (QualIdent l), Data (IdentList l), Data (f (Type l l f' f')), Data (f (ConstExpression l l f' f')), Data (f (FormalParameters l l f' f')), Data (f (FieldList l l f' f'))) => Data (Type λ l f' f) Source # | |
Defined in Language.Modula2.ISO.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type λ l f' f -> c (Type λ l f' f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Type λ l f' f) # toConstr :: Type λ l f' f -> Constr # dataTypeOf :: Type λ l f' f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Type λ l f' f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Type λ l f' f)) # gmapT :: (forall b. Data b => b -> b) -> Type λ l f' f -> Type λ l f' f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type λ l f' f -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type λ l f' f -> r # gmapQ :: (forall d. Data d => d -> u) -> Type λ l f' f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type λ l f' f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type λ l f' f -> m (Type λ l f' f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type λ l f' f -> m (Type λ l f' f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type λ l f' f -> m (Type λ l f' f) # | |
(Show (QualIdent l), Show (IdentList l), Show (f (Type l l f' f')), Show (f (ConstExpression l l f' f')), Show (f (FormalParameters l l f' f')), Show (f (FieldList l l f' f'))) => Show (Type λ l f' f) Source # | |
(Pretty (IdentDef l), Pretty (FormalParameters l l Identity Identity), Pretty (FieldList l l Identity Identity), Pretty (ConstExpression l l Identity Identity), Pretty (Type l l Identity Identity), Pretty (BaseType l)) => Pretty (Type Language l Identity Identity) Source # | |
type Atts (Inherited ConstantFold) (Type λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder | |
type Atts (Synthesized ConstantFold) (Type λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder |
data Expression λ l f' f Source #
Relation RelOp (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Positive (f (Expression l l f' f')) | |
Negative (f (Expression l l f' f')) | |
Add (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Subtract (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Or (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Multiply (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Divide (f (Expression l l f' f')) (f (Expression l l f' f')) | |
IntegerDivide (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Modulo (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Remainder (f (Expression l l f' f')) (f (Expression l l f' f')) | |
And (f (Expression l l f' f')) (f (Expression l l f' f')) | |
Array (Maybe (QualIdent l)) [f (Item l l f' f')] | |
Record (Maybe (QualIdent l)) [f (Expression l l f' f')] | |
Set (Maybe (QualIdent l)) (ZipList (f (Element l l f' f'))) | |
Read (f (Designator l l f' f')) | |
FunctionCall (f (Designator l l f' f')) (ZipList (f (Expression l l f' f'))) | |
Not (f (Expression l l f' f')) | |
Literal (f (Value l l f' f')) |
Instances
Single (f (Expression l l f' f')) | |
Repeated (f (Expression l l f' f')) (f (ConstExpression l l f' f')) |
Instances
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, Foldable t (Expression l l), Foldable t (Expression l l), Foldable t (ConstExpression l l)) => Foldable t (Item λ l) Source # | |
(Transformation t, Functor t (Expression l l), Functor t (Expression l l), Functor t (ConstExpression l l)) => Functor t (Item λ l) Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, Traversable t (Expression l l), Traversable t (Expression l l), Traversable t (ConstExpression l l)) => Traversable t (Item λ l) Source # | |
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, At t (Expression l l f' f'), At t (Expression l l f' f'), At t (ConstExpression l l f' f')) => Foldable t (Item λ l f') Source # | |
(Transformation t, At t (Expression l l f' f'), At t (Expression l l f' f'), At t (ConstExpression l l f' f')) => Functor t (Item λ l f') Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, At t (Expression l l f' f'), At t (Expression l l f' f'), At t (ConstExpression l l f' f')) => Traversable t (Item λ l f') Source # | |
Apply (Item λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST (<*>) :: forall (p :: k -> Type) (q :: k -> Type). Item λ l f' (p ~> q) -> Item λ l f' p -> Item λ l f' q # liftA2 :: (forall (a :: k). p a -> q a -> r a) -> Item λ l f' p -> Item λ l f' q -> Item λ l f' r # liftA3 :: (forall (a :: k). p a -> q a -> r a -> s a) -> Item λ l f' p -> Item λ l f' q -> Item λ l f' r -> Item λ l f' s # | |
Foldable (Item λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Functor (Item λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Traversable (Item λ l f' :: (Type -> Type) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
(Typeable λ, Typeable l, Typeable f, Typeable f', Data (f (Expression l l f' f')), Data (f (Expression l l f' f'))) => Data (Item λ l f' f) Source # | |
Defined in Language.Modula2.ISO.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Item λ l f' f -> c (Item λ l f' f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Item λ l f' f) # toConstr :: Item λ l f' f -> Constr # dataTypeOf :: Item λ l f' f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Item λ l f' f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Item λ l f' f)) # gmapT :: (forall b. Data b => b -> b) -> Item λ l f' f -> Item λ l f' f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Item λ l f' f -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Item λ l f' f -> r # gmapQ :: (forall d. Data d => d -> u) -> Item λ l f' f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Item λ l f' f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Item λ l f' f -> m (Item λ l f' f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Item λ l f' f -> m (Item λ l f' f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Item λ l f' f -> m (Item λ l f' f) # | |
Show (f (Expression l l f' f')) => Show (Item λ l f' f) Source # | |
Eq (f (Expression l l f' f')) => Eq (Item λ l f' f) Source # | |
Pretty (Expression l l Identity Identity) => Pretty (Item Language l Identity Identity) Source # | |
type Atts (Inherited ConstantFold) (Item λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder | |
type Atts (Synthesized ConstantFold) (Item λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder |
data Variant λ l f' f Source #
Variant (f (CaseLabels l l f' f')) (ZipList (f (CaseLabels l l f' f'))) (ZipList (f (FieldList l l f' f'))) | |
EmptyVariant |
Instances
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, Foldable t (CaseLabels l l), Foldable t (CaseLabels l l), Foldable t (FieldList l l)) => Foldable t (Variant λ l) Source # | |
(Transformation t, Functor t (CaseLabels l l), Functor t (CaseLabels l l), Functor t (FieldList l l)) => Functor t (Variant λ l) Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, Traversable t (CaseLabels l l), Traversable t (CaseLabels l l), Traversable t (FieldList l l)) => Traversable t (Variant λ l) Source # | |
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, At t (CaseLabels l l f' f'), At t (CaseLabels l l f' f'), At t (FieldList l l f' f')) => Foldable t (Variant λ l f') Source # | |
(Transformation t, At t (CaseLabels l l f' f'), At t (CaseLabels l l f' f'), At t (FieldList l l f' f')) => Functor t (Variant λ l f') Source # | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, At t (CaseLabels l l f' f'), At t (CaseLabels l l f' f'), At t (FieldList l l f' f')) => Traversable t (Variant λ l f') Source # | |
Apply (Variant λ l f' :: (Type -> TYPE LiftedRep) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST (<*>) :: forall (p :: k -> Type) (q :: k -> Type). Variant λ l f' (p ~> q) -> Variant λ l f' p -> Variant λ l f' q # liftA2 :: (forall (a :: k). p a -> q a -> r a) -> Variant λ l f' p -> Variant λ l f' q -> Variant λ l f' r # liftA3 :: (forall (a :: k). p a -> q a -> r a -> s a) -> Variant λ l f' p -> Variant λ l f' q -> Variant λ l f' r -> Variant λ l f' s # | |
Foldable (Variant λ l f' :: (Type -> TYPE LiftedRep) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Functor (Variant λ l f' :: (Type -> TYPE LiftedRep) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
Traversable (Variant λ l f' :: (Type -> TYPE LiftedRep) -> Type) Source # | |
Defined in Language.Modula2.ISO.AST | |
(Typeable λ, Typeable l, Typeable f, Typeable f', Data (f (CaseLabels l l f' f')), Data (f (FieldList l l f' f'))) => Data (Variant λ l f' f) Source # | |
Defined in Language.Modula2.ISO.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Variant λ l f' f -> c (Variant λ l f' f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Variant λ l f' f) # toConstr :: Variant λ l f' f -> Constr # dataTypeOf :: Variant λ l f' f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Variant λ l f' f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Variant λ l f' f)) # gmapT :: (forall b. Data b => b -> b) -> Variant λ l f' f -> Variant λ l f' f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Variant λ l f' f -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Variant λ l f' f -> r # gmapQ :: (forall d. Data d => d -> u) -> Variant λ l f' f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Variant λ l f' f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Variant λ l f' f -> m (Variant λ l f' f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Variant λ l f' f -> m (Variant λ l f' f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Variant λ l f' f -> m (Variant λ l f' f) # | |
(Show (f (CaseLabels l l f' f')), Show (f (FieldList l l f' f'))) => Show (Variant λ l f' f) Source # | |
(Pretty (CaseLabels l l Identity Identity), Pretty (FieldList l l Identity Identity)) => Pretty (Variant λ l Identity Identity) Source # | |
type Atts (Inherited ConstantFold) (Variant λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder | |
type Atts (Synthesized ConstantFold) (Variant λ l _1 _2) Source # | |
Defined in Language.Modula2.ISO.ConstantFolder |
Block (ZipList (f (Declaration l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) | |
ExceptionHandlingBlock (ZipList (f (Declaration l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) |
Instances
data Statement λ l f' f Source #
EmptyStatement | |
Assignment (f (Designator l l f' f')) (f (Expression l l f' f')) | |
ProcedureCall (f (Designator l l f' f')) (Maybe (ZipList (f (Expression l l f' f')))) | |
If (f (ConditionalBranch l l f' f')) (ZipList (f (ConditionalBranch l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) | |
CaseStatement (f (Expression l l f' f')) (ZipList (f (Case l l f' f'))) (Maybe (f (StatementSequence l l f' f'))) | |
While (f (Expression l l f' f')) (f (StatementSequence l l f' f')) | |
Repeat (f (StatementSequence l l f' f')) (f (Expression l l f' f')) | |
For Ident (f (Expression l l f' f')) (f (Expression l l f' f')) (Maybe (f (Expression l l f' f'))) (f (StatementSequence l l f' f')) | |
Loop (f (StatementSequence l l f' f')) | |
With (f (Designator l l f' f')) (f (StatementSequence l l f' f')) | |
Exit | |
Return (Maybe (f (Expression l l f' f'))) | |
RetryStatement |