| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Drasil.Shared.LanguageRenderer.LanguagePolymorphic
Description
Implementations defined here are valid for any language renderer.
Synopsis
- fileFromData :: ModuleElim r => (FilePath -> r Module -> r File) -> FilePath -> FS (r Module) -> FS (r File)
- multiBody :: (BodyElim r, Monad r) => [MS (r Body)] -> MS (r Doc)
- block :: (Monad r, RenderStatement r smt, StatementElim r smt) => [MS (r smt)] -> MS (r Doc)
- multiBlock :: (BlockElim r, Monad r) => [MS (r Block)] -> MS (r Doc)
- obj :: Monad r => ClassName -> VS (r TypeData)
- negateOp :: Monad r => VSOp r
- csc :: (Literal r, NumericExpression r, TypeElim r) => SValue r -> SValue r
- sec :: (Literal r, NumericExpression r, TypeElim r) => SValue r -> SValue r
- cot :: (Literal r, NumericExpression r, TypeElim r) => SValue r -> SValue r
- equalOp :: Monad r => VSOp r
- notEqualOp :: Monad r => VSOp r
- greaterOp :: Monad r => VSOp r
- greaterEqualOp :: Monad r => VSOp r
- lessOp :: Monad r => VSOp r
- lessEqualOp :: Monad r => VSOp r
- plusOp :: Monad r => VSOp r
- minusOp :: Monad r => VSOp r
- multOp :: Monad r => VSOp r
- divideOp :: Monad r => VSOp r
- moduloOp :: Monad r => VSOp r
- var :: RenderVariable r => Label -> VS (r TypeData) -> SVariable r
- classVar :: RenderVariable r => Label -> VS (r TypeData) -> SVariable r
- instanceVarAccess :: (InternalVarElim r, RenderVariable r, ValueElim r, VariableElim r) => SValue r -> SVariable r -> SVariable r
- classVarAccessCheck :: InternalVarElim r => r Variable -> r Variable
- arrayElem :: (IndexTranslator r, RenderVariable r, ValueElim r) => SValue r -> SValue r -> SVariable r
- local :: Monad r => r ScopeData
- litChar :: (RenderValue r, TypeSym r) => (Doc -> Doc) -> Char -> SValue r
- litDouble :: (RenderValue r, TypeSym r) => Double -> SValue r
- litInt :: (RenderValue r, TypeSym r) => Integer -> SValue r
- litString :: (RenderValue r, TypeSym r) => String -> SValue r
- valueOf :: (InternalVarElim r, RenderValue r, VariableElim r) => SVariable r -> SValue r
- arg :: (RenderValue r, TypeSym r, ValueElim r) => SValue r -> SValue r -> SValue r
- argsList :: (RenderValue r, TypeSym r) => String -> SValue r
- call :: (InternalVarElim r, RenderValue r, ValueElim r) => Doc -> Maybe Library -> Maybe Doc -> MixedCall r
- funcAppMixedArgs :: RenderValue r => MixedCall r
- newObjMixedArgs :: (RenderValue r, UnRepr r TypeData) => String -> MixedCtorCall r
- lambda :: (BinderElim r, RenderValue r, ValueSym r) => ([r BinderD] -> r Value -> Doc) -> [VSBinder r] -> SValue r -> SValue r
- objAccess :: (FunctionElim r, RenderValue r, ValueElim r) => SValue r -> VS (r FuncData) -> SValue r
- objMethodCall :: (RenderValue r, ValueElim r) => Label -> VS (r TypeData) -> SValue r -> [SValue r] -> NamedArgs r -> SValue r
- func :: (RenderFunction r, ValueElim r, ValueExpression r) => Label -> VS (r TypeData) -> [SValue r] -> VS (r FuncData)
- get :: (InternalGetSet r, OOFunctionSym r) => SValue r -> SVariable r -> SValue r
- set :: (InternalGetSet r, OOFunctionSym r) => SValue r -> SVariable r -> SValue r -> SValue r
- listAccess :: (IndexTranslator r, InternalListFunc r, FunctionElim r, RenderFunction r, RenderValue r, TypeElim r, ValueElim r) => SValue r -> SValue r -> SValue r
- getFunc :: (OOFunctionSym r, VariableElim r) => SVariable r -> VS (r FuncData)
- setFunc :: (OOFunctionSym r, VariableElim r) => VS (r TypeData) -> SVariable r -> SValue r -> VS (r FuncData)
- stmt :: (RenderStatement r smt, StatementElim r smt) => MS (r smt) -> MS (r smt)
- loopStmt :: (RenderStatement r smt, StatementElim r smt) => MS (r smt) -> MS (r smt)
- emptyStmt :: RenderStatement r smt => MS (r smt)
- assign :: (InternalVarElim r, RenderStatement r smt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r smt)
- subAssign :: (InternalVarElim r, RenderStatement r smt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r smt)
- objDecNew :: (DeclStatement r smt, OOValueExpression r, VariableElim r) => SVariable r -> r ScopeData -> [SValue r] -> MS (r smt)
- print :: (InternalIOStmt r smt, SharedStatement r smt, TypeElim r) => Bool -> Maybe (SValue r) -> SValue r -> SValue r -> MS (r smt)
- closeFile :: (InternalValueExp r, StatementSym r smt) => Label -> SValue r -> MS (r smt)
- returnStmt :: (RenderStatement r smt, ValueElim r) => Terminator -> SValue r -> MS (r smt)
- valStmt :: (RenderStatement r smt, ValueElim r) => Terminator -> SValue r -> MS (r smt)
- comment :: RenderStatement r smt => Doc -> Label -> MS (r smt)
- throw :: (Literal r, RenderStatement r smt) => (r Value -> Doc) -> Terminator -> Label -> MS (r smt)
- 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)
- tryCatch :: RenderStatement r smt => (r Body -> r Body -> Doc) -> MS (r Body) -> MS (r Body) -> MS (r smt)
- construct :: Monad r => Label -> MS (r TypeData)
- param :: (RenderParam r, VariableElim r) => (r Variable -> Doc) -> SVariable r -> MS (r ParamData)
- method :: OORenderMethod r vis md att => Label -> r vis -> r att -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- getMethod :: OORenderSym r vis smt md svr att => SVariable r -> MS (r md)
- setMethod :: OORenderSym r vis smt md svr att => SVariable r -> MS (r md)
- initStmts :: OOStatement r smt => Initializers r -> MS (r Body)
- function :: (AttachmentSym r att, OORenderMethod r vis md att) => Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- docFuncRepr :: RenderMethod r md => FuncDocRenderer -> String -> [String] -> [String] -> MS (r md) -> MS (r md)
- docFunc :: RenderMethod r md => FuncDocRenderer -> String -> [String] -> Maybe String -> MS (r md) -> MS (r md)
- buildClass :: (RenderClass r vis md svr, VisibilitySym r vis) => Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class)
- implementingClass :: (RenderClass r vis md svr, VisibilitySym r vis) => Label -> [Label] -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class)
- docClass :: RenderClass r vis md svr => ClassDocRenderer -> String -> CS (r Class) -> CS (r Class)
- commentedClass :: (BlockCommentElim r, ClassElim r, Monad r) => CS (r Doc) -> CS (r Class) -> CS (r Doc)
- modFromData :: Label -> (Doc -> r Module) -> FS Doc -> FS (r Module)
- fileDoc :: (BlockElim r, RenderMod r, RenderFile r) => String -> (r Module -> r Block) -> r Block -> FS (r Module) -> FS (r File)
- docMod :: RenderFile r => ModuleDocRenderer -> String -> String -> String -> [String] -> String -> FS (r File) -> FS (r File)
- newtype OptionalSpace = OSpace {}
- defaultOptSpace :: OptionalSpace
- smartAdd :: (Literal r, NumericExpression r, RenderValue r, ValueElim r) => SValue r -> SValue r -> SValue r
- smartSub :: (Literal r, NumericExpression r, RenderValue r, ValueElim r) => SValue r -> SValue r -> SValue r
Documentation
fileFromData :: ModuleElim r => (FilePath -> r Module -> r File) -> FilePath -> FS (r Module) -> FS (r File) Source #
block :: (Monad r, RenderStatement r smt, StatementElim r smt) => [MS (r smt)] -> MS (r Doc) Source #
notEqualOp :: Monad r => VSOp r Source #
greaterEqualOp :: Monad r => VSOp r Source #
lessEqualOp :: Monad r => VSOp r Source #
instanceVarAccess :: (InternalVarElim r, RenderVariable r, ValueElim r, VariableElim r) => SValue r -> SVariable r -> SVariable r 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
arrayElem :: (IndexTranslator r, RenderVariable r, ValueElim r) => SValue r -> SValue r -> SVariable r Source #
valueOf :: (InternalVarElim r, RenderValue r, VariableElim r) => SVariable r -> 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
funcAppMixedArgs :: RenderValue r => MixedCall r Source #
newObjMixedArgs :: (RenderValue r, UnRepr r TypeData) => String -> MixedCtorCall r Source #
lambda :: (BinderElim r, RenderValue r, ValueSym r) => ([r BinderD] -> r Value -> Doc) -> [VSBinder r] -> SValue r -> SValue r Source #
objAccess :: (FunctionElim r, RenderValue r, ValueElim r) => SValue r -> VS (r FuncData) -> SValue r Source #
objMethodCall :: (RenderValue r, ValueElim r) => Label -> VS (r TypeData) -> SValue r -> [SValue r] -> NamedArgs r -> SValue r Source #
func :: (RenderFunction r, ValueElim r, ValueExpression r) => Label -> VS (r TypeData) -> [SValue r] -> VS (r FuncData) Source #
get :: (InternalGetSet r, OOFunctionSym r) => SValue r -> SVariable r -> SValue r Source #
set :: (InternalGetSet r, OOFunctionSym r) => SValue r -> SVariable r -> SValue r -> SValue r Source #
listAccess :: (IndexTranslator r, InternalListFunc r, FunctionElim r, RenderFunction r, RenderValue r, TypeElim r, ValueElim r) => SValue r -> SValue r -> SValue r Source #
getFunc :: (OOFunctionSym r, VariableElim r) => SVariable r -> VS (r FuncData) Source #
setFunc :: (OOFunctionSym r, VariableElim r) => VS (r TypeData) -> SVariable r -> SValue r -> VS (r FuncData) 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 #
assign :: (InternalVarElim r, RenderStatement r smt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r smt) Source #
subAssign :: (InternalVarElim r, RenderStatement r smt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r smt) Source #
objDecNew :: (DeclStatement r smt, OOValueExpression r, VariableElim r) => SVariable r -> r ScopeData -> [SValue r] -> 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 #
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 #
param :: (RenderParam r, VariableElim r) => (r Variable -> Doc) -> SVariable r -> MS (r ParamData) 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 #
initStmts :: OOStatement r smt => Initializers r -> MS (r Body) 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 #
commentedClass :: (BlockCommentElim r, ClassElim r, Monad r) => CS (r Doc) -> CS (r Class) -> CS (r Doc) 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
smartAdd :: (Literal r, NumericExpression r, RenderValue r, ValueElim r) => SValue r -> SValue r -> SValue r Source #
smartSub :: (Literal r, NumericExpression r, RenderValue r, ValueElim r) => SValue r -> SValue r -> SValue r Source #