drasil-gool-0.1.1.0: A framework for code and document generation for scientific software - GOOL SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.Shared.LanguageRenderer.LanguagePolymorphic

Description

Implementations defined here are valid for any language renderer.

Synopsis

Documentation

fileFromData :: ModuleElim r => (FilePath -> r Module -> r File) -> FilePath -> FS (r Module) -> FS (r File) Source #

multiBody :: (BodyElim r, Monad r) => [MS (r Body)] -> MS (r Doc) Source #

block :: (Monad r, RenderStatement r smt, StatementElim r smt) => [MS (r smt)] -> MS (r Doc) Source #

multiBlock :: (BlockElim r, Monad r) => [MS (r Block)] -> MS (r Doc) Source #

classVarAccessCheck :: InternalVarElim r => r Variable -> r Variable Source #

To be used in classVarAccess implementations. Throws an error if the variable is not class-level since classVarAccess is for accessing class-level variables from a class

litChar :: (RenderValue r, TypeSym r) => (Doc -> Doc) -> Char -> SValue r Source #

call :: (InternalVarElim r, RenderValue r, ValueElim r) => Doc -> Maybe Library -> Maybe Doc -> MixedCall r Source #

First parameter is separator between name and value for named arguments, rest similar to call from RendererClasses

lambda :: (BinderElim r, RenderValue r, ValueSym r) => ([r BinderD] -> r Value -> Doc) -> [VSBinder r] -> SValue r -> SValue r Source #

stmt :: (RenderStatement r smt, StatementElim r smt) => MS (r smt) -> MS (r smt) Source #

loopStmt :: (RenderStatement r smt, StatementElim r smt) => MS (r smt) -> MS (r smt) Source #

emptyStmt :: RenderStatement r smt => MS (r smt) Source #

print :: (InternalIOStmt r smt, SharedStatement r smt, TypeElim r) => Bool -> Maybe (SValue r) -> SValue r -> SValue r -> MS (r smt) Source #

closeFile :: (InternalValueExp r, StatementSym r smt) => Label -> SValue r -> MS (r smt) Source #

returnStmt :: (RenderStatement r smt, ValueElim r) => Terminator -> SValue r -> MS (r smt) Source #

valStmt :: (RenderStatement r smt, ValueElim r) => Terminator -> SValue r -> MS (r smt) Source #

comment :: RenderStatement r smt => Doc -> Label -> MS (r smt) Source #

throw :: (Literal r, RenderStatement r smt) => (r Value -> Doc) -> Terminator -> Label -> MS (r smt) Source #

ifCond :: (BodyElim r, RenderStatement r smt, ValueElim r) => (Doc -> Doc) -> Doc -> OptionalSpace -> Doc -> Doc -> Doc -> [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt) Source #

tryCatch :: RenderStatement r smt => (r Body -> r Body -> Doc) -> MS (r Body) -> MS (r Body) -> MS (r smt) Source #

method :: OORenderMethod r vis md att => Label -> r vis -> r att -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #

getMethod :: OORenderSym r vis smt md svr att => SVariable r -> MS (r md) Source #

setMethod :: OORenderSym r vis smt md svr att => SVariable r -> MS (r md) Source #

function :: (AttachmentSym r att, OORenderMethod r vis md att) => Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #

docFuncRepr :: RenderMethod r md => FuncDocRenderer -> String -> [String] -> [String] -> MS (r md) -> MS (r md) Source #

docFunc :: RenderMethod r md => FuncDocRenderer -> String -> [String] -> Maybe String -> MS (r md) -> MS (r md) Source #

buildClass :: (RenderClass r vis md svr, VisibilitySym r vis) => Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class) Source #

implementingClass :: (RenderClass r vis md svr, VisibilitySym r vis) => Label -> [Label] -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class) Source #

docClass :: RenderClass r vis md svr => ClassDocRenderer -> String -> CS (r Class) -> CS (r Class) Source #

modFromData :: Label -> (Doc -> r Module) -> FS Doc -> FS (r Module) Source #

fileDoc :: (BlockElim r, RenderMod r, RenderFile r) => String -> (r Module -> r Block) -> r Block -> FS (r Module) -> FS (r File) Source #

docMod :: RenderFile r => ModuleDocRenderer -> String -> String -> String -> [String] -> String -> FS (r File) -> FS (r File) Source #

Generates a file for a documented module. mdr is a function that takes description, author, and module name and returns a doc comment e is the file extension d is the description (I think) a is a list of authors dt is the date fl is the file

newtype OptionalSpace Source #

Constructors

OSpace 

Fields