module Feldspar.Compiler.Imperative.Semantics where
data InitSemInf
data PrettyPrintSemanticInfo
data IsRestrict = Restrict | NoRestrict
deriving (Show,Eq)
data IsDefaultArraySize = DefaultArraySize | NoDefaultArraySize
deriving (Show,Eq)
class (
Show(ProcedureInfo t), Eq(ProcedureInfo t),
Show(BlockInfo t), Eq(BlockInfo t),
Show(ProgramInfo t), Eq(ProgramInfo t),
Show(EmptyInfo t), Eq(EmptyInfo t),
Show(PrimitiveInfo t), Eq(PrimitiveInfo t),
Show(SequenceInfo t), Eq(SequenceInfo t),
Show(BranchInfo t), Eq(BranchInfo t),
Show(SequentialLoopInfo t), Eq(SequentialLoopInfo t),
Show(ParallelLoopInfo t), Eq(ParallelLoopInfo t),
Show(FormalParameterInfo t), Eq(FormalParameterInfo t),
Show(LocalDeclarationInfo t), Eq(LocalDeclarationInfo t),
Show(ExpressionInfo t), Eq(ExpressionInfo t),
Show(ConstantInfo t), Eq(ConstantInfo t),
Show(FunctionCallInfo t), Eq(FunctionCallInfo t),
Show(LeftValueInfo t), Eq(LeftValueInfo t),
Show(ArrayElemReferenceInfo t), Eq(ArrayElemReferenceInfo t),
Show(InstructionInfo t), Eq(InstructionInfo t),
Show(AssignmentInfo t), Eq(AssignmentInfo t),
Show(ProcedureCallInfo t), Eq(ProcedureCallInfo t),
Show(ActualParameterInfo t), Eq(ActualParameterInfo t),
Show(IntConstantInfo t), Eq(IntConstantInfo t),
Show(FloatConstantInfo t), Eq(FloatConstantInfo t),
Show(BoolConstantInfo t), Eq(BoolConstantInfo t),
Show(ArrayConstantInfo t), Eq(ArrayConstantInfo t),
Show(VariableInfo t), Eq(VariableInfo t)
) => SemanticInfo t where
type ProcedureInfo t
type BlockInfo t
type ProgramInfo t
type EmptyInfo t
type PrimitiveInfo t
type SequenceInfo t
type BranchInfo t
type SequentialLoopInfo t
type ParallelLoopInfo t
type FormalParameterInfo t
type LocalDeclarationInfo t
type ExpressionInfo t
type ConstantInfo t
type FunctionCallInfo t
type LeftValueInfo t
type ArrayElemReferenceInfo t
type InstructionInfo t
type AssignmentInfo t
type ProcedureCallInfo t
type ActualParameterInfo t
type IntConstantInfo t
type FloatConstantInfo t
type BoolConstantInfo t
type ArrayConstantInfo t
type VariableInfo t
instance SemanticInfo () where
type ProcedureInfo () = ()
type BlockInfo () = ()
type ProgramInfo () = ()
type EmptyInfo () = ()
type PrimitiveInfo () = ()
type SequenceInfo () = ()
type BranchInfo () = ()
type SequentialLoopInfo () = ()
type ParallelLoopInfo () = ()
type FormalParameterInfo () = ()
type LocalDeclarationInfo () = ()
type ExpressionInfo () = ()
type ConstantInfo () = ()
type FunctionCallInfo () = ()
type LeftValueInfo () = ()
type ArrayElemReferenceInfo () = ()
type InstructionInfo () = ()
type AssignmentInfo () = ()
type ProcedureCallInfo () = ()
type ActualParameterInfo () = ()
type IntConstantInfo () = ()
type FloatConstantInfo () = ()
type BoolConstantInfo () = ()
type ArrayConstantInfo () = ()
type VariableInfo () = ()
instance SemanticInfo InitSemInf where
type ProcedureInfo InitSemInf = ()
type BlockInfo InitSemInf = ()
type ProgramInfo InitSemInf = ()
type EmptyInfo InitSemInf = ()
type PrimitiveInfo InitSemInf = Bool
type SequenceInfo InitSemInf = ()
type BranchInfo InitSemInf = ()
type SequentialLoopInfo InitSemInf = ()
type ParallelLoopInfo InitSemInf = ()
type FormalParameterInfo InitSemInf = ()
type LocalDeclarationInfo InitSemInf = ()
type ExpressionInfo InitSemInf = ()
type ConstantInfo InitSemInf = ()
type FunctionCallInfo InitSemInf = ()
type LeftValueInfo InitSemInf = ()
type ArrayElemReferenceInfo InitSemInf = ()
type InstructionInfo InitSemInf = ()
type AssignmentInfo InitSemInf = ()
type ProcedureCallInfo InitSemInf = ()
type ActualParameterInfo InitSemInf = ()
type IntConstantInfo InitSemInf = ()
type FloatConstantInfo InitSemInf = ()
type BoolConstantInfo InitSemInf = ()
type ArrayConstantInfo InitSemInf = ()
type VariableInfo InitSemInf = ()
instance SemanticInfo PrettyPrintSemanticInfo where
type ProcedureInfo PrettyPrintSemanticInfo = ()
type BlockInfo PrettyPrintSemanticInfo = ()
type ProgramInfo PrettyPrintSemanticInfo = ()
type EmptyInfo PrettyPrintSemanticInfo = ()
type PrimitiveInfo PrettyPrintSemanticInfo = ()
type SequenceInfo PrettyPrintSemanticInfo = ()
type BranchInfo PrettyPrintSemanticInfo = ()
type SequentialLoopInfo PrettyPrintSemanticInfo = ()
type ParallelLoopInfo PrettyPrintSemanticInfo = ()
type FormalParameterInfo PrettyPrintSemanticInfo = IsRestrict
type LocalDeclarationInfo PrettyPrintSemanticInfo = ()
type ExpressionInfo PrettyPrintSemanticInfo = ()
type ConstantInfo PrettyPrintSemanticInfo = ()
type FunctionCallInfo PrettyPrintSemanticInfo = ()
type LeftValueInfo PrettyPrintSemanticInfo = ()
type ArrayElemReferenceInfo PrettyPrintSemanticInfo = ()
type InstructionInfo PrettyPrintSemanticInfo = ()
type AssignmentInfo PrettyPrintSemanticInfo = ()
type ProcedureCallInfo PrettyPrintSemanticInfo = ()
type ActualParameterInfo PrettyPrintSemanticInfo = ()
type IntConstantInfo PrettyPrintSemanticInfo = ()
type FloatConstantInfo PrettyPrintSemanticInfo = ()
type BoolConstantInfo PrettyPrintSemanticInfo = ()
type ArrayConstantInfo PrettyPrintSemanticInfo = ()
type VariableInfo PrettyPrintSemanticInfo = ()