| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Oberon.AST
Description
Oberon Abstract Syntax Tree definitions
Documentation
Constructors
| Module Ident [Import] [Declaration f] (Maybe (StatementSequence f)) Ident |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f)), Data (f (Statement f))) => Data (Module f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Module f -> c (Module f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Module f) # toConstr :: Module f -> Constr # dataTypeOf :: Module f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Module f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Module f)) # gmapT :: (forall b. Data b => b -> b) -> Module f -> Module f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module f -> r # gmapQ :: (forall d. Data d => d -> u) -> Module f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Module f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Module f -> m (Module f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Module f -> m (Module f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Module f -> m (Module f) # | |
| (Show (f (Designator f)), Show (f (Expression f)), Show (f (Statement f))) => Show (Module f) Source # | |
| Pretty (Module Identity) # | |
data Declaration f Source #
Constructors
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f)), Data (f (Statement f))) => Data (Declaration f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Declaration f -> c (Declaration f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Declaration f) # toConstr :: Declaration f -> Constr # dataTypeOf :: Declaration f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Declaration f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Declaration f)) # gmapT :: (forall b. Data b => b -> b) -> Declaration f -> Declaration f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Declaration f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Declaration f -> r # gmapQ :: (forall d. Data d => d -> u) -> Declaration f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Declaration f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Declaration f -> m (Declaration f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Declaration f -> m (Declaration f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Declaration f -> m (Declaration f) # | |
| (Show (f (Designator f)), Show (f (Expression f)), Show (f (Statement f))) => Show (Declaration f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> Declaration f -> ShowS # show :: Declaration f -> String # showList :: [Declaration f] -> ShowS # | |
| Pretty (Declaration Identity) # | |
Defined in Language.Oberon.Pretty | |
Constructors
| IdentDef Ident AccessMode |
Instances
| Eq IdentDef Source # | |
| Data IdentDef Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IdentDef -> c IdentDef # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IdentDef # toConstr :: IdentDef -> Constr # dataTypeOf :: IdentDef -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IdentDef) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IdentDef) # gmapT :: (forall b. Data b => b -> b) -> IdentDef -> IdentDef # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IdentDef -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IdentDef -> r # gmapQ :: (forall d. Data d => d -> u) -> IdentDef -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentDef -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IdentDef -> m IdentDef # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IdentDef -> m IdentDef # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IdentDef -> m IdentDef # | |
| Ord IdentDef Source # | |
Defined in Language.Oberon.AST | |
| Show IdentDef Source # | |
| Pretty IdentDef # | |
Defined in Language.Oberon.Pretty | |
data AccessMode Source #
Constructors
| Exported | |
| ReadOnly | |
| PrivateOnly |
Instances
| Eq AccessMode Source # | |
Defined in Language.Oberon.AST | |
| Data AccessMode Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AccessMode -> c AccessMode # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AccessMode # toConstr :: AccessMode -> Constr # dataTypeOf :: AccessMode -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AccessMode) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AccessMode) # gmapT :: (forall b. Data b => b -> b) -> AccessMode -> AccessMode # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AccessMode -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AccessMode -> r # gmapQ :: (forall d. Data d => d -> u) -> AccessMode -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AccessMode -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AccessMode -> m AccessMode # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AccessMode -> m AccessMode # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AccessMode -> m AccessMode # | |
| Ord AccessMode Source # | |
Defined in Language.Oberon.AST Methods compare :: AccessMode -> AccessMode -> Ordering # (<) :: AccessMode -> AccessMode -> Bool # (<=) :: AccessMode -> AccessMode -> Bool # (>) :: AccessMode -> AccessMode -> Bool # (>=) :: AccessMode -> AccessMode -> Bool # max :: AccessMode -> AccessMode -> AccessMode # min :: AccessMode -> AccessMode -> AccessMode # | |
| Show AccessMode Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> AccessMode -> ShowS # show :: AccessMode -> String # showList :: [AccessMode] -> ShowS # | |
type ConstExpression = Expression Source #
data Expression f Source #
Constructors
| Relation RelOp (Expression f) (Expression f) | |
| Positive (Expression f) | |
| Negative (Expression f) | |
| Add (Expression f) (Expression f) | |
| Subtract (Expression f) (Expression f) | |
| Or (Expression f) (Expression f) | |
| Multiply (Expression f) (Expression f) | |
| Divide (Expression f) (Expression f) | |
| IntegerDivide (Expression f) (Expression f) | |
| Modulo (Expression f) (Expression f) | |
| And (Expression f) (Expression f) | |
| Integer Text | |
| Real Text | |
| CharConstant Char | |
| CharCode Int | |
| String Text | |
| Nil | |
| Set [Element f] | |
| Read (AmbDesignator f) | |
| FunctionCall (AmbDesignator f) (ActualParameters f) | |
| Not (Expression f) |
Instances
| (Typeable f, Data (f (Designator f))) => Data (Expression f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Expression f -> c (Expression f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Expression f) # toConstr :: Expression f -> Constr # dataTypeOf :: Expression f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Expression f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Expression f)) # gmapT :: (forall b. Data b => b -> b) -> Expression f -> Expression f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Expression f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Expression f -> r # gmapQ :: (forall d. Data d => d -> u) -> Expression f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Expression f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Expression f -> m (Expression f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Expression f -> m (Expression f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Expression f -> m (Expression f) # | |
| Show (f (Designator f)) => Show (Expression f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> Expression f -> ShowS # show :: Expression f -> String # showList :: [Expression f] -> ShowS # | |
| Pretty (Expression Identity) # | |
Defined in Language.Oberon.Pretty | |
Constructors
| Equal | |
| Unequal | |
| Less | |
| LessOrEqual | |
| Greater | |
| GreaterOrEqual | |
| In | |
| Is |
Instances
| Data RelOp Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RelOp -> c RelOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RelOp # dataTypeOf :: RelOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RelOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RelOp) # gmapT :: (forall b. Data b => b -> b) -> RelOp -> RelOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RelOp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RelOp -> r # gmapQ :: (forall d. Data d => d -> u) -> RelOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RelOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RelOp -> m RelOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RelOp -> m RelOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RelOp -> m RelOp # | |
| Show RelOp Source # | |
| Pretty RelOp # | |
Defined in Language.Oberon.Pretty | |
Constructors
| Element (Expression f) | |
| Range (Expression f) (Expression f) |
Instances
| (Typeable f, Data (f (Designator f))) => Data (Element f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Element f -> c (Element f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Element f) # toConstr :: Element f -> Constr # dataTypeOf :: Element f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Element f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Element f)) # gmapT :: (forall b. Data b => b -> b) -> Element f -> Element f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Element f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Element f -> r # gmapQ :: (forall d. Data d => d -> u) -> Element f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Element f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Element f -> m (Element f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Element f -> m (Element f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Element f -> m (Element f) # | |
| Show (f (Designator f)) => Show (Element f) Source # | |
| Pretty (Element Identity) # | |
type AmbDesignator f = f (Designator f) Source #
data Designator f Source #
Constructors
| Variable QualIdent | |
| Field (Designator f) Ident | |
| Index (Designator f) (NonEmpty (Expression f)) | |
| TypeGuard (Designator f) QualIdent | |
| Dereference (Designator f) |
Instances
| (Typeable f, Data (f (Designator f))) => Data (Designator f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Designator f -> c (Designator f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Designator f) # toConstr :: Designator f -> Constr # dataTypeOf :: Designator f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Designator f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Designator f)) # gmapT :: (forall b. Data b => b -> b) -> Designator f -> Designator f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Designator f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Designator f -> r # gmapQ :: (forall d. Data d => d -> u) -> Designator f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Designator f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Designator f -> m (Designator f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Designator f -> m (Designator f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Designator f -> m (Designator f) # | |
| Show (f (Designator f)) => Show (Designator f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> Designator f -> ShowS # show :: Designator f -> String # showList :: [Designator f] -> ShowS # | |
| Pretty (Designator Identity) # | |
Defined in Language.Oberon.Pretty | |
type ActualParameters f = [Expression f] Source #
Constructors
| TypeReference QualIdent | |
| ArrayType [f (ConstExpression f)] (Type f) | |
| RecordType (Maybe BaseType) (FieldListSequence f) | |
| PointerType (Type f) | |
| ProcedureType (Maybe (FormalParameters f)) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f))) => Data (Type f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type f -> c (Type f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Type f) # toConstr :: Type f -> Constr # dataTypeOf :: Type f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Type f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Type f)) # gmapT :: (forall b. Data b => b -> b) -> Type f -> Type f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type f -> r # gmapQ :: (forall d. Data d => d -> u) -> Type f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type f -> m (Type f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type f -> m (Type f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type f -> m (Type f) # | |
| (Show (f (Designator f)), Show (f (Expression f))) => Show (Type f) Source # | |
| Pretty (Type Identity) # | |
Constructors
| QualIdent Ident Ident | |
| NonQualIdent Ident |
Instances
| Eq QualIdent Source # | |
| Data QualIdent Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> QualIdent -> c QualIdent # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c QualIdent # toConstr :: QualIdent -> Constr # dataTypeOf :: QualIdent -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c QualIdent) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c QualIdent) # gmapT :: (forall b. Data b => b -> b) -> QualIdent -> QualIdent # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> QualIdent -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> QualIdent -> r # gmapQ :: (forall d. Data d => d -> u) -> QualIdent -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> QualIdent -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> QualIdent -> m QualIdent # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> QualIdent -> m QualIdent # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> QualIdent -> m QualIdent # | |
| Ord QualIdent Source # | |
| Show QualIdent Source # | |
| Pretty QualIdent # | |
Defined in Language.Oberon.Pretty | |
type FieldListSequence f = NonEmpty (FieldList f) Source #
Constructors
| FieldList IdentList (Type f) | |
| EmptyFieldList |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f))) => Data (FieldList f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FieldList f -> c (FieldList f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FieldList f) # toConstr :: FieldList f -> Constr # dataTypeOf :: FieldList f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FieldList f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FieldList f)) # gmapT :: (forall b. Data b => b -> b) -> FieldList f -> FieldList f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldList f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldList f -> r # gmapQ :: (forall d. Data d => d -> u) -> FieldList f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldList f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldList f -> m (FieldList f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldList f -> m (FieldList f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldList f -> m (FieldList f) # | |
| (Show (f (Designator f)), Show (f (Expression f))) => Show (FieldList f) Source # | |
| Pretty (FieldList Identity) # | |
data ProcedureHeading f Source #
Constructors
| ProcedureHeading (Maybe (Bool, Ident, Ident)) Bool IdentDef (Maybe (FormalParameters f)) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f))) => Data (ProcedureHeading f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProcedureHeading f -> c (ProcedureHeading f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProcedureHeading f) # toConstr :: ProcedureHeading f -> Constr # dataTypeOf :: ProcedureHeading f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProcedureHeading f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProcedureHeading f)) # gmapT :: (forall b. Data b => b -> b) -> ProcedureHeading f -> ProcedureHeading f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProcedureHeading f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProcedureHeading f -> r # gmapQ :: (forall d. Data d => d -> u) -> ProcedureHeading f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ProcedureHeading f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProcedureHeading f -> m (ProcedureHeading f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcedureHeading f -> m (ProcedureHeading f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcedureHeading f -> m (ProcedureHeading f) # | |
| (Show (f (Designator f)), Show (f (Expression f))) => Show (ProcedureHeading f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> ProcedureHeading f -> ShowS # show :: ProcedureHeading f -> String # showList :: [ProcedureHeading f] -> ShowS # | |
| Pretty (ProcedureHeading Identity) # | |
Defined in Language.Oberon.Pretty Methods pretty :: ProcedureHeading Identity -> Doc ann # prettyList :: [ProcedureHeading Identity] -> Doc ann # | |
data FormalParameters f Source #
Constructors
| FormalParameters [FPSection f] (Maybe QualIdent) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f))) => Data (FormalParameters f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FormalParameters f -> c (FormalParameters f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FormalParameters f) # toConstr :: FormalParameters f -> Constr # dataTypeOf :: FormalParameters f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FormalParameters f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FormalParameters f)) # gmapT :: (forall b. Data b => b -> b) -> FormalParameters f -> FormalParameters f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FormalParameters f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FormalParameters f -> r # gmapQ :: (forall d. Data d => d -> u) -> FormalParameters f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FormalParameters f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FormalParameters f -> m (FormalParameters f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FormalParameters f -> m (FormalParameters f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FormalParameters f -> m (FormalParameters f) # | |
| (Show (f (Designator f)), Show (f (Expression f))) => Show (FormalParameters f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> FormalParameters f -> ShowS # show :: FormalParameters f -> String # showList :: [FormalParameters f] -> ShowS # | |
| Pretty (FormalParameters Identity) # | |
Defined in Language.Oberon.Pretty Methods pretty :: FormalParameters Identity -> Doc ann # prettyList :: [FormalParameters Identity] -> Doc ann # | |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f))) => Data (FPSection f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FPSection f -> c (FPSection f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FPSection f) # toConstr :: FPSection f -> Constr # dataTypeOf :: FPSection f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FPSection f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FPSection f)) # gmapT :: (forall b. Data b => b -> b) -> FPSection f -> FPSection f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FPSection f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FPSection f -> r # gmapQ :: (forall d. Data d => d -> u) -> FPSection f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FPSection f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FPSection f -> m (FPSection f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FPSection f -> m (FPSection f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FPSection f -> m (FPSection f) # | |
| (Show (f (Designator f)), Show (f (Expression f))) => Show (FPSection f) Source # | |
| Pretty (FPSection Identity) # | |
data ProcedureBody f Source #
Constructors
| ProcedureBody [Declaration f] (Maybe (StatementSequence f)) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Expression f)), Data (f (Statement f))) => Data (ProcedureBody f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProcedureBody f -> c (ProcedureBody f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProcedureBody f) # toConstr :: ProcedureBody f -> Constr # dataTypeOf :: ProcedureBody f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProcedureBody f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProcedureBody f)) # gmapT :: (forall b. Data b => b -> b) -> ProcedureBody f -> ProcedureBody f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProcedureBody f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProcedureBody f -> r # gmapQ :: (forall d. Data d => d -> u) -> ProcedureBody f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ProcedureBody f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProcedureBody f -> m (ProcedureBody f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcedureBody f -> m (ProcedureBody f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcedureBody f -> m (ProcedureBody f) # | |
| (Show (f (Designator f)), Show (f (Expression f)), Show (f (Statement f))) => Show (ProcedureBody f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> ProcedureBody f -> ShowS # show :: ProcedureBody f -> String # showList :: [ProcedureBody f] -> ShowS # | |
| Pretty (ProcedureBody Identity) # | |
Defined in Language.Oberon.Pretty Methods pretty :: ProcedureBody Identity -> Doc ann # prettyList :: [ProcedureBody Identity] -> Doc ann # | |
type StatementSequence f = NonEmpty (f (Statement f)) Source #
Constructors
| EmptyStatement | |
| Assignment (AmbDesignator f) (Expression f) | |
| ProcedureCall (AmbDesignator f) (Maybe (ActualParameters f)) | |
| If (NonEmpty (Expression f, StatementSequence f)) (Maybe (StatementSequence f)) | |
| CaseStatement (Expression f) (NonEmpty (Case f)) (Maybe (StatementSequence f)) | |
| While (Expression f) (StatementSequence f) | |
| Repeat (StatementSequence f) (Expression f) | |
| For Ident (Expression f) (Expression f) (Maybe (Expression f)) (StatementSequence f) | |
| Loop (StatementSequence f) | |
| With (NonEmpty (WithAlternative f)) (Maybe (StatementSequence f)) | |
| Exit | |
| Return (Maybe (Expression f)) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Statement f))) => Data (Statement f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Statement f -> c (Statement f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Statement f) # toConstr :: Statement f -> Constr # dataTypeOf :: Statement f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Statement f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Statement f)) # gmapT :: (forall b. Data b => b -> b) -> Statement f -> Statement f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Statement f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Statement f -> r # gmapQ :: (forall d. Data d => d -> u) -> Statement f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Statement f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Statement f -> m (Statement f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement f -> m (Statement f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement f -> m (Statement f) # | |
| (Show (f (Designator f)), Show (f (Statement f))) => Show (Statement f) Source # | |
| Pretty (Statement Identity) # | |
data WithAlternative f Source #
Constructors
| WithAlternative QualIdent QualIdent (StatementSequence f) |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Statement f))) => Data (WithAlternative f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WithAlternative f -> c (WithAlternative f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WithAlternative f) # toConstr :: WithAlternative f -> Constr # dataTypeOf :: WithAlternative f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WithAlternative f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WithAlternative f)) # gmapT :: (forall b. Data b => b -> b) -> WithAlternative f -> WithAlternative f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WithAlternative f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WithAlternative f -> r # gmapQ :: (forall d. Data d => d -> u) -> WithAlternative f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> WithAlternative f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> WithAlternative f -> m (WithAlternative f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WithAlternative f -> m (WithAlternative f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WithAlternative f -> m (WithAlternative f) # | |
| (Show (f (Designator f)), Show (f (Statement f))) => Show (WithAlternative f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> WithAlternative f -> ShowS # show :: WithAlternative f -> String # showList :: [WithAlternative f] -> ShowS # | |
| Pretty (WithAlternative Identity) # | |
Defined in Language.Oberon.Pretty Methods pretty :: WithAlternative Identity -> Doc ann # prettyList :: [WithAlternative Identity] -> Doc ann # | |
Constructors
| Case (NonEmpty (CaseLabels f)) (StatementSequence f) | |
| EmptyCase |
Instances
| (Typeable f, Data (f (Designator f)), Data (f (Statement f))) => Data (Case f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Case f -> c (Case f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Case f) # toConstr :: Case f -> Constr # dataTypeOf :: Case f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Case f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Case f)) # gmapT :: (forall b. Data b => b -> b) -> Case f -> Case f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Case f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Case f -> r # gmapQ :: (forall d. Data d => d -> u) -> Case f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Case f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Case f -> m (Case f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Case f -> m (Case f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Case f -> m (Case f) # | |
| (Show (f (Designator f)), Show (f (Statement f))) => Show (Case f) Source # | |
| Pretty (Case Identity) # | |
data CaseLabels f Source #
Constructors
| SingleLabel (ConstExpression f) | |
| LabelRange (ConstExpression f) (ConstExpression f) |
Instances
| (Typeable f, Data (f (Designator f))) => Data (CaseLabels f) Source # | |
Defined in Language.Oberon.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CaseLabels f -> c (CaseLabels f) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CaseLabels f) # toConstr :: CaseLabels f -> Constr # dataTypeOf :: CaseLabels f -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CaseLabels f)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CaseLabels f)) # gmapT :: (forall b. Data b => b -> b) -> CaseLabels f -> CaseLabels f # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CaseLabels f -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CaseLabels f -> r # gmapQ :: (forall d. Data d => d -> u) -> CaseLabels f -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CaseLabels f -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CaseLabels f -> m (CaseLabels f) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CaseLabels f -> m (CaseLabels f) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CaseLabels f -> m (CaseLabels f) # | |
| Show (f (Designator f)) => Show (CaseLabels f) Source # | |
Defined in Language.Oberon.AST Methods showsPrec :: Int -> CaseLabels f -> ShowS # show :: CaseLabels f -> String # showList :: [CaseLabels f] -> ShowS # | |
| Pretty (CaseLabels Identity) # | |
Defined in Language.Oberon.Pretty | |