Safe Haskell | None |
---|
- class Annotation t s where
- type Label t s
- data Module t = Module {
- entities :: [Entity t]
- moduleLabel :: Label t Module
- data Entity t
- = StructDef {
- structName :: String
- structMembers :: [StructMember t]
- structLabel :: Label t Struct
- definitionLabel :: Label t Entity
- | TypeDef {
- actualType :: Type
- typeName :: String
- definitionLabel :: Label t Entity
- | ProcDef { }
- | ProcDecl { }
- = StructDef {
- data StructMember t = StructMember {}
- data Block t = Block {
- locals :: [Declaration t]
- blockBody :: Program t
- blockLabel :: Label t Block
- data Program t
- = Empty {
- emptyLabel :: Label t Empty
- programLabel :: Label t Program
- | Comment {
- isBlockComment :: Bool
- commentValue :: String
- commentLabel :: Label t Comment
- programLabel :: Label t Program
- | Assign {
- lhs :: Expression t
- rhs :: Expression t
- assignLabel :: Label t Assign
- programLabel :: Label t Program
- | ProcedureCall {
- procCallName :: String
- procCallParams :: [ActualParameter t]
- procCallLabel :: Label t ProcedureCall
- programLabel :: Label t Program
- | Sequence {
- sequenceProgs :: [Program t]
- sequenceLabel :: Label t Sequence
- programLabel :: Label t Program
- | Branch {
- branchCond :: Expression t
- thenBlock :: Block t
- elseBlock :: Block t
- branchLabel :: Label t Branch
- programLabel :: Label t Program
- | SeqLoop {
- sLoopCond :: Expression t
- sLoopCondCalc :: Block t
- sLoopBlock :: Block t
- sLoopLabel :: Label t SeqLoop
- programLabel :: Label t Program
- | ParLoop {
- pLoopCounter :: Variable t
- pLoopBound :: Expression t
- pLoopStep :: Int
- pLoopBlock :: Block t
- pLoopLabel :: Label t ParLoop
- programLabel :: Label t Program
- | BlockProgram {
- blockProgram :: Block t
- programLabel :: Label t Program
- = Empty {
- data ActualParameter t
- = In {
- inParam :: Expression t
- actParamLabel :: Label t ActualParameter
- | Out {
- outParam :: Expression t
- actParamLabel :: Label t ActualParameter
- | TypeParameter { }
- | FunParameter { }
- = In {
- data Declaration t = Declaration {
- declVar :: Variable t
- initVal :: Maybe (Expression t)
- declLabel :: Label t Declaration
- data Expression t
- = VarExpr {
- var :: Variable t
- exprLabel :: Label t Expression
- | ArrayElem {
- array :: Expression t
- arrayIndex :: Expression t
- arrayLabel :: Label t ArrayElem
- exprLabel :: Label t Expression
- | StructField {
- struct :: Expression t
- fieldName :: String
- structFieldLabel :: Label t StructField
- exprLabel :: Label t Expression
- | ConstExpr {
- constExpr :: Constant t
- exprLabel :: Label t Expression
- | FunctionCall {
- function :: Function
- funCallParams :: [Expression t]
- funCallLabel :: Label t FunctionCall
- exprLabel :: Label t Expression
- | Cast {
- castType :: Type
- castExpr :: Expression t
- castLabel :: Label t Cast
- exprLabel :: Label t Expression
- | SizeOf {
- sizeOf :: Either Type (Expression t)
- sizeOfLabel :: Label t SizeOf
- exprLabel :: Label t Expression
- = VarExpr {
- data Function = Function {
- funName :: String
- returnType :: Type
- funMode :: FunctionMode
- data Constant t
- = IntConst {
- intValue :: Integer
- intType :: Type
- intConstLabel :: Label t IntConst
- constLabel :: Label t Constant
- | FloatConst {
- floatValue :: Double
- floatConstLabel :: Label t FloatConst
- constLabel :: Label t Constant
- | BoolConst {
- boolValue :: Bool
- boolConstLabel :: Label t BoolConst
- constLabel :: Label t Constant
- | ComplexConst { }
- = IntConst {
- data Variable t = Variable {}
- data Length
- data Size
- data Signedness
- data Type
- data FunctionMode
- data VariableRole
- data Place
- data TypeParameterMode
- class HasType a where
- reprError :: forall a. ErrorClass -> String -> a
- data Struct t
- data ProcDef t
- data ProcDecl t
- data Empty t
- data Comment t
- data Assign t
- data ProcedureCall t
- data Spawn t
- data Run t
- data Sequence t
- data Branch t
- data SeqLoop t
- data ParLoop t
- data FunctionCall t
- data Cast t
- data SizeOf t
- data ArrayElem t
- data StructField t
- data LeftFunCall t
- data IntConst t
- data FloatConst t
- data BoolConst t
- data ArrayConst t
- data ComplexConst t
- class (Show (Label t Module), Show (Label t Entity), Show (Label t Struct), Show (Label t ProcDef), Show (Label t ProcDecl), Show (Label t StructMember), Show (Label t Block), Show (Label t Program), Show (Label t Empty), Show (Label t Comment), Show (Label t Assign), Show (Label t ProcedureCall), Show (Label t Spawn), Show (Label t Run), Show (Label t Sequence), Show (Label t Branch), Show (Label t SeqLoop), Show (Label t ParLoop), Show (Label t ActualParameter), Show (Label t Declaration), Show (Label t Expression), Show (Label t FunctionCall), Show (Label t Cast), Show (Label t SizeOf), Show (Label t ArrayElem), Show (Label t StructField), Show (Label t Constant), Show (Label t IntConst), Show (Label t FloatConst), Show (Label t BoolConst), Show (Label t ArrayConst), Show (Label t ComplexConst), Show (Label t Variable)) => ShowLabel t
- class (Eq (Label t Module), Eq (Label t Entity), Eq (Label t Struct), Eq (Label t ProcDef), Eq (Label t ProcDecl), Eq (Label t StructMember), Eq (Label t Block), Eq (Label t Program), Eq (Label t Empty), Eq (Label t Comment), Eq (Label t Assign), Eq (Label t ProcedureCall), Eq (Label t Spawn), Eq (Label t Run), Eq (Label t Sequence), Eq (Label t Branch), Eq (Label t SeqLoop), Eq (Label t ParLoop), Eq (Label t ActualParameter), Eq (Label t Declaration), Eq (Label t Expression), Eq (Label t FunctionCall), Eq (Label t Cast), Eq (Label t SizeOf), Eq (Label t StructField), Eq (Label t ArrayElem), Eq (Label t Constant), Eq (Label t IntConst), Eq (Label t FloatConst), Eq (Label t BoolConst), Eq (Label t ArrayConst), Eq (Label t ComplexConst), Eq (Label t Variable)) => EqLabel t
- class Labeled c where
Documentation
class Annotation t s Source
StructDef | |
| |
TypeDef | |
| |
ProcDef | |
ProcDecl | |
data StructMember t Source
Block | |
|
data ActualParameter t Source
In | |
| |
Out | |
| |
TypeParameter | |
FunParameter | |
|
data Declaration t Source
Declaration | |
|
data Expression t Source
VarExpr | |
| |
ArrayElem | |
| |
StructField | |
| |
ConstExpr | |
| |
FunctionCall | |
| |
Cast | |
| |
SizeOf | |
|
Function | |
|
IntConst | |
| |
FloatConst | |
| |
BoolConst | |
| |
ComplexConst | |
|
Eq ShowValue | |
Typeable1 Constant | |
Labeled Constant | |
(Transformable t Constant, Transformable1 t [] Constant, Conversion t Constant, Conversion t IntConst, Conversion t FloatConst, Conversion t BoolConst, Conversion t ArrayConst, Conversion t ComplexConst, Default (Up t)) => DefaultTransformable t Constant | |
Transformable DebugToC Constant | |
Annotation UnrollSemInf Constant | |
Annotation DebugToCSemanticInfo Constant | |
Transformable1 DebugToC [] Constant | |
EqLabel t => Eq (Constant t) | |
ShowLabel t => Show (Constant t) | |
ShowLabel t => HasType (Constant t) |
reprError :: forall a. ErrorClass -> String -> aSource
data ProcedureCall t Source
data FunctionCall t Source
data StructField t Source
data LeftFunCall t Source
data FloatConst t Source
data ArrayConst t Source
data ComplexConst t Source
class (Show (Label t Module), Show (Label t Entity), Show (Label t Struct), Show (Label t ProcDef), Show (Label t ProcDecl), Show (Label t StructMember), Show (Label t Block), Show (Label t Program), Show (Label t Empty), Show (Label t Comment), Show (Label t Assign), Show (Label t ProcedureCall), Show (Label t Spawn), Show (Label t Run), Show (Label t Sequence), Show (Label t Branch), Show (Label t SeqLoop), Show (Label t ParLoop), Show (Label t ActualParameter), Show (Label t Declaration), Show (Label t Expression), Show (Label t FunctionCall), Show (Label t Cast), Show (Label t SizeOf), Show (Label t ArrayElem), Show (Label t StructField), Show (Label t Constant), Show (Label t IntConst), Show (Label t FloatConst), Show (Label t BoolConst), Show (Label t ArrayConst), Show (Label t ComplexConst), Show (Label t Variable)) => ShowLabel t Source
(Show (Label t Module), Show (Label t Entity), Show (Label t Struct), Show (Label t ProcDef), Show (Label t ProcDecl), Show (Label t StructMember), Show (Label t Block), Show (Label t Program), Show (Label t Empty), Show (Label t Comment), Show (Label t Assign), Show (Label t ProcedureCall), Show (Label t Spawn), Show (Label t Run), Show (Label t Sequence), Show (Label t Branch), Show (Label t SeqLoop), Show (Label t ParLoop), Show (Label t ActualParameter), Show (Label t Declaration), Show (Label t Expression), Show (Label t FunctionCall), Show (Label t Cast), Show (Label t SizeOf), Show (Label t ArrayElem), Show (Label t StructField), Show (Label t Constant), Show (Label t IntConst), Show (Label t FloatConst), Show (Label t BoolConst), Show (Label t ArrayConst), Show (Label t ComplexConst), Show (Label t Variable)) => ShowLabel t |
class (Eq (Label t Module), Eq (Label t Entity), Eq (Label t Struct), Eq (Label t ProcDef), Eq (Label t ProcDecl), Eq (Label t StructMember), Eq (Label t Block), Eq (Label t Program), Eq (Label t Empty), Eq (Label t Comment), Eq (Label t Assign), Eq (Label t ProcedureCall), Eq (Label t Spawn), Eq (Label t Run), Eq (Label t Sequence), Eq (Label t Branch), Eq (Label t SeqLoop), Eq (Label t ParLoop), Eq (Label t ActualParameter), Eq (Label t Declaration), Eq (Label t Expression), Eq (Label t FunctionCall), Eq (Label t Cast), Eq (Label t SizeOf), Eq (Label t StructField), Eq (Label t ArrayElem), Eq (Label t Constant), Eq (Label t IntConst), Eq (Label t FloatConst), Eq (Label t BoolConst), Eq (Label t ArrayConst), Eq (Label t ComplexConst), Eq (Label t Variable)) => EqLabel t Source
(Eq (Label t Module), Eq (Label t Entity), Eq (Label t Struct), Eq (Label t ProcDef), Eq (Label t ProcDecl), Eq (Label t StructMember), Eq (Label t Block), Eq (Label t Program), Eq (Label t Empty), Eq (Label t Comment), Eq (Label t Assign), Eq (Label t ProcedureCall), Eq (Label t Spawn), Eq (Label t Run), Eq (Label t Sequence), Eq (Label t Branch), Eq (Label t SeqLoop), Eq (Label t ParLoop), Eq (Label t ActualParameter), Eq (Label t Declaration), Eq (Label t Expression), Eq (Label t FunctionCall), Eq (Label t Cast), Eq (Label t SizeOf), Eq (Label t StructField), Eq (Label t ArrayElem), Eq (Label t Constant), Eq (Label t IntConst), Eq (Label t FloatConst), Eq (Label t BoolConst), Eq (Label t ArrayConst), Eq (Label t ComplexConst), Eq (Label t Variable)) => EqLabel t |