| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Drasil.Shared.LanguageRenderer.LanguagePolymorphic
Description
Implementations defined here are valid for any language renderer.
Synopsis
- fileFromData :: forall {k} r (mod :: k) (file :: k). ModuleElim r mod => (FilePath -> r mod -> r file) -> FilePath -> FS (r mod) -> FS (r file)
- multiBody :: (BodyElim r bod, Monad r) => [MS (r bod)] -> MS (r Doc)
- block :: (Monad r, RenderStatement r stmt, StatementElim r stmt) => [MS (r stmt)] -> MS (r Doc)
- multiBlock :: (BlockElim r block, 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 :: forall {k} r (stmt :: k). (RenderStatement r stmt, StatementElim r stmt) => MS (r stmt) -> MS (r stmt)
- loopStmt :: forall {k} r (stmt :: k). (RenderStatement r stmt, StatementElim r stmt) => MS (r stmt) -> MS (r stmt)
- emptyStmt :: forall {k} r (stmt :: k). RenderStatement r stmt => MS (r stmt)
- assign :: (InternalVarElim r, RenderStatement r stmt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r stmt)
- subAssign :: (InternalVarElim r, RenderStatement r stmt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r stmt)
- objDecNew :: (DeclStatement r stmt bod, OOValueExpression r, VariableElim r) => SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt)
- print :: (BlockSym r block stmt, BodySym r bod block, MultiStatement r stmt, PrintConsole r stmt, PrintFile r stmt, DeclStatement r stmt bod, AssignStatement r stmt, ControlStatement r stmt bod, Literal r, NumericExpression r, Comparison r, VariableValue r, List r, TypeElim r, InternalIOStmt r stmt) => Bool -> Maybe (SValue r) -> SValue r -> SValue r -> MS (r stmt)
- closeFile :: (InternalValueExp r, ValueStatement r stmt) => Label -> SValue r -> MS (r stmt)
- returnStmt :: (RenderStatement r stmt, ValueElim r) => Terminator -> SValue r -> MS (r stmt)
- valStmt :: (RenderStatement r stmt, ValueElim r) => Terminator -> SValue r -> MS (r stmt)
- comment :: forall {k} r (stmt :: k). RenderStatement r stmt => Doc -> Label -> MS (r stmt)
- throw :: (Literal r, RenderStatement r stmt) => (r Value -> Doc) -> Terminator -> Label -> MS (r stmt)
- ifCond :: (BodyElim r bod, RenderStatement r stmt, ValueElim r) => (Doc -> Doc) -> Doc -> OptionalSpace -> Doc -> Doc -> Doc -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt)
- tryCatch :: forall {k} r (stmt :: k) (bod :: k). RenderStatement r stmt => (r bod -> r bod -> Doc) -> MS (r bod) -> MS (r bod) -> MS (r stmt)
- construct :: Monad r => Label -> MS (r TypeData)
- param :: (RenderParam r, VariableElim r) => (r Variable -> Doc) -> SVariable r -> MS (r ParamData)
- method :: OORenderMethod r vis mthd attch bod => Label -> r vis -> r attch -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd)
- getMethod :: OORenderSym r vis stmt mthd stvr attch file mod bod block => SVariable r -> MS (r mthd)
- setMethod :: OORenderSym r vis stmt mthd stvr attch file mod bod block => SVariable r -> MS (r mthd)
- initStmts :: (VariableValue r, SelfSym r, AssignStatement r stmt, BlockSym r block stmt, BodySym r bod block) => Initializers r -> MS (r bod)
- function :: (AttachmentSym r attch, OORenderMethod r vis mthd attch bod) => Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd)
- docFuncRepr :: RenderMethod r mthd => FuncDocRenderer -> String -> [String] -> [String] -> MS (r mthd) -> MS (r mthd)
- docFunc :: RenderMethod r mthd => FuncDocRenderer -> String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd)
- buildClass :: (RenderClass r vis mthd stvr, VisibilitySym r vis) => Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class)
- implementingClass :: (RenderClass r vis mthd stvr, VisibilitySym r vis) => Label -> [Label] -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class)
- docClass :: RenderClass r vis mthd stvr => 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 :: forall {k} r (mod :: k). Label -> (Doc -> r mod) -> FS Doc -> FS (r mod)
- fileDoc :: (BlockElim r block, RenderMod r mod, RenderFile r file mod) => String -> (r mod -> r block) -> r block -> FS (r mod) -> FS (r file)
- docMod :: RenderFile r file mod => 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 :: forall {k} r (mod :: k) (file :: k). ModuleElim r mod => (FilePath -> r mod -> r file) -> FilePath -> FS (r mod) -> FS (r file) Source #
block :: (Monad r, RenderStatement r stmt, StatementElim r stmt) => [MS (r stmt)] -> 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 :: forall {k} r (stmt :: k). (RenderStatement r stmt, StatementElim r stmt) => MS (r stmt) -> MS (r stmt) Source #
loopStmt :: forall {k} r (stmt :: k). (RenderStatement r stmt, StatementElim r stmt) => MS (r stmt) -> MS (r stmt) Source #
emptyStmt :: forall {k} r (stmt :: k). RenderStatement r stmt => MS (r stmt) Source #
assign :: (InternalVarElim r, RenderStatement r stmt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r stmt) Source #
subAssign :: (InternalVarElim r, RenderStatement r stmt, ValueElim r) => Terminator -> SVariable r -> SValue r -> MS (r stmt) Source #
objDecNew :: (DeclStatement r stmt bod, OOValueExpression r, VariableElim r) => SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt) Source #
print :: (BlockSym r block stmt, BodySym r bod block, MultiStatement r stmt, PrintConsole r stmt, PrintFile r stmt, DeclStatement r stmt bod, AssignStatement r stmt, ControlStatement r stmt bod, Literal r, NumericExpression r, Comparison r, VariableValue r, List r, TypeElim r, InternalIOStmt r stmt) => Bool -> Maybe (SValue r) -> SValue r -> SValue r -> MS (r stmt) Source #
closeFile :: (InternalValueExp r, ValueStatement r stmt) => Label -> SValue r -> MS (r stmt) Source #
returnStmt :: (RenderStatement r stmt, ValueElim r) => Terminator -> SValue r -> MS (r stmt) Source #
valStmt :: (RenderStatement r stmt, ValueElim r) => Terminator -> SValue r -> MS (r stmt) Source #
throw :: (Literal r, RenderStatement r stmt) => (r Value -> Doc) -> Terminator -> Label -> MS (r stmt) Source #
ifCond :: (BodyElim r bod, RenderStatement r stmt, ValueElim r) => (Doc -> Doc) -> Doc -> OptionalSpace -> Doc -> Doc -> Doc -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #
tryCatch :: forall {k} r (stmt :: k) (bod :: k). RenderStatement r stmt => (r bod -> r bod -> Doc) -> MS (r bod) -> MS (r bod) -> MS (r stmt) Source #
param :: (RenderParam r, VariableElim r) => (r Variable -> Doc) -> SVariable r -> MS (r ParamData) Source #
method :: OORenderMethod r vis mthd attch bod => Label -> r vis -> r attch -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #
getMethod :: OORenderSym r vis stmt mthd stvr attch file mod bod block => SVariable r -> MS (r mthd) Source #
setMethod :: OORenderSym r vis stmt mthd stvr attch file mod bod block => SVariable r -> MS (r mthd) Source #
initStmts :: (VariableValue r, SelfSym r, AssignStatement r stmt, BlockSym r block stmt, BodySym r bod block) => Initializers r -> MS (r bod) Source #
function :: (AttachmentSym r attch, OORenderMethod r vis mthd attch bod) => Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #
docFuncRepr :: RenderMethod r mthd => FuncDocRenderer -> String -> [String] -> [String] -> MS (r mthd) -> MS (r mthd) Source #
docFunc :: RenderMethod r mthd => FuncDocRenderer -> String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd) Source #
buildClass :: (RenderClass r vis mthd stvr, VisibilitySym r vis) => Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class) Source #
implementingClass :: (RenderClass r vis mthd stvr, VisibilitySym r vis) => Label -> [Label] -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class) Source #
docClass :: RenderClass r vis mthd stvr => 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 block, RenderMod r mod, RenderFile r file mod) => String -> (r mod -> r block) -> r block -> FS (r mod) -> FS (r file) Source #
docMod :: RenderFile r file mod => 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 #