Safe Haskell | None |
---|
- data SomeCompilable = forall a internal . Compilable a internal => SomeCompilable a
- type Position = (Int, Int)
- data SplitModuleDescriptor = SplitModuleDescriptor {}
- data CompToCCoreResult = CompToCCoreResult {}
- data SplitCompToCCoreResult = SplitCompToCCoreResult {}
- data IncludesNeeded
- = IncludesNeeded
- | NoIncludesNeeded { }
- moduleSplitter :: Module () -> SplitModuleDescriptor
- separateAndCompileToCCore :: Compilable t internal => (Module () -> [Module ()]) -> CompilationMode -> t -> IncludesNeeded -> OriginalFunctionSignature -> Options -> [(CompToCCoreResult, Module ())]
- moduleToCCore :: IncludesNeeded -> Options -> Module () -> CompToCCoreResult
- compileToCCore :: Compilable t internal => CompilationMode -> t -> Maybe String -> IncludesNeeded -> OriginalFunctionSignature -> Options -> SplitCompToCCoreResult
- genIncludeLinesCore :: [String] -> (String, Int)
- genIncludeLines :: Options -> Maybe String -> (String, Int)
- defaultOptions :: Options
- c99PlatformOptions :: Options
- tic64xPlatformOptions :: Options
- unrollOptions :: Options
- noPrimitiveInstructionHandling :: Options
- noMemoryInformation :: Options
- pluginChain :: ExternalInfoCollection -> Module () -> Module ()
- data ExternalInfoCollection = ExternalInfoCollection {
- precompilationExternalInfo :: ExternalInfo Precompilation
- unrollExternalInfo :: ExternalInfo UnrollPlugin
- primitivesExternalInfo :: ExternalInfo RulePlugin
- ruleExternalInfo :: ExternalInfo RulePlugin
- typeDefinitionGeneratorExternalInfo :: ExternalInfo TypeDefinitionGenerator
- variableRoleAssignerExternalInfo :: ExternalInfo VariableRoleAssigner
- typeCorrectorExternalInfo :: ExternalInfo TypeCorrector
- executePluginChain' :: Compilable c internal => CompilationMode -> c -> OriginalFunctionSignature -> Options -> Module ()
- executePluginChain :: Compilable c internal => CompilationMode -> c -> OriginalFunctionSignature -> Options -> SplitModuleDescriptor
Documentation
data SomeCompilable Source
forall a internal . Compilable a internal => SomeCompilable a |
data CompToCCoreResult Source
separateAndCompileToCCore :: Compilable t internal => (Module () -> [Module ()]) -> CompilationMode -> t -> IncludesNeeded -> OriginalFunctionSignature -> Options -> [(CompToCCoreResult, Module ())]Source
moduleToCCore :: IncludesNeeded -> Options -> Module () -> CompToCCoreResultSource
compileToCCore :: Compilable t internal => CompilationMode -> t -> Maybe String -> IncludesNeeded -> OriginalFunctionSignature -> Options -> SplitCompToCCoreResultSource
Compiler core This functionality should not be duplicated. Instead, everything should call this and only do a trivial interface adaptation.
genIncludeLinesCore :: [String] -> (String, Int)Source
defaultOptions :: OptionsSource
Predefined options
pluginChain :: ExternalInfoCollection -> Module () -> Module ()Source
Plugin system
data ExternalInfoCollection Source
executePluginChain' :: Compilable c internal => CompilationMode -> c -> OriginalFunctionSignature -> Options -> Module ()Source
executePluginChain :: Compilable c internal => CompilationMode -> c -> OriginalFunctionSignature -> Options -> SplitModuleDescriptorSource