ivory-0.1.0.0: Safe embedded C programming.

Safe HaskellNone

Ivory.Language.Module

Synopsis

Documentation

visAcc :: Visible -> a -> Visible aSource

Add an element to the public/private list, depending on visibility

incl :: Def a -> ModuleDefSource

Include a defintion in the module.

inclHeader :: String -> ModuleDefSource

Add a dependency on an external header.

depend :: Module -> ModuleDefSource

Add a dependency on another module.

defStruct :: forall sym. (IvoryStruct sym, SingI sym) => Proxy sym -> ModuleDefSource

Include the definition of a structure in the module.

defStringType :: forall str. IvoryString str => Proxy str -> ModuleDefSource

Include the definition of a string type's structure.

defMemArea :: IvoryArea area => MemArea area -> ModuleDefSource

Include the definition of a memory area.

defConstMemArea :: IvoryArea area => ConstMemArea area -> ModuleDefSource

Include the definition of a constant memory area.

sourceDep :: FilePath -> ModuleDefSource

Depend on an existing (object language) source file which should be copied to the user build tree as part of code generation

package :: String -> ModuleDef -> ModuleSource

Package the module up. Default visibility is public.

private :: ModuleDef -> ModuleDefSource

Start a block of definitions that should not be put in the header.

public :: ModuleDef -> ModuleDefSource

Start a block of definitions should be put in the header. This is the default, and this function is just included to complement private.