feldspar-compiler-0.4.0.2: Compiler for the Feldspar language

Feldspar.Compiler.Compiler

# Documentation

data SomeCompilable

Constructors

forall a . Compilable a => SomeCompilable a |

Instances

Typeable SomeCompilable |

compileToC :: Compilable t => CompilationMode -> t -> OriginalFunctionSignature -> Options -> Int -> (String, (Int, Int))

compileToCWithInfos :: Compilable t => CompilationMode -> t -> OriginalFunctionSignature -> Options -> Int -> (Module DebugToCSemanticInfo, (String, (Int, Int)))

compileToCWithHeaders :: Compilable t => CompilationMode -> t -> OriginalFunctionSignature -> Options -> (String, (Int, Int))

compileToCWithHeaders_Infos :: Compilable t => CompilationMode -> t -> OriginalFunctionSignature -> Options -> (Module DebugToCSemanticInfo, (String, (Int, Int)))

standaloneCompile :: Compilable t => t -> FilePath -> FilePath -> OriginalFunctionSignature -> Options -> IO ()

data PrgType

Constructors

ForType |
AssignType |
IfType |
SwitchType |

getProgram :: (Int, Int) -> PrgType -> Module DebugToCSemanticInfo -> IO ()

compile :: Compilable t => t -> FilePath -> String -> Options -> IO ()

icompile :: Compilable t => t -> IO ()

icompile' :: Compilable t => t -> String -> Options -> IO ()

icompileWithInfos_ :: Compilable t => t -> String -> Options -> (Module DebugToCSemanticInfo, (String, (Int, Int)))

genIncludeLines :: [String] -> (String, Int)

genHeaders :: Options -> (String, Int)

pluginChain :: ExternalInfoCollection -> Module () -> Module ()

data ExternalInfoCollection

Constructors

ExternalInfoCollection |
Fields precompilationExternalInfo :: ExternalInfo Precompilation unrollExternalInfo :: ExternalInfo UnrollPlugin handlePrimitivesExternalInfo :: ExternalInfo HandlePrimitives typeDefinitionGeneratorExternalInfo :: ExternalInfo TypeDefinitionGenerator variableRoleAssignerExternalInfo :: ExternalInfo VariableRoleAssigner typeCorrectorExternalInfo :: ExternalInfo TypeCorrector

executePluginChain :: Compilable p => CompilationMode -> p -> OriginalFunctionSignature -> Options -> Module ()