drasil-gool-0.1.1.0: A framework for code and document generation for scientific software - GOOL SubPackage
Safe HaskellNone
LanguageGHC2024

Drasil.Shared.RendererClassesCommon

Documentation

class (BodySym r bod block, BlockSym r block stmt, AssignStatement r stmt var val, ScopeSym r scope, DeclStatement r bod stmt var scope val, StringStatement r stmt var val, FuncAppStatement r stmt var val, CommentStatement r stmt, ControlStatement r bod stmt var val, Argument r val, Literal r val typ, MathConstant r val, ValueSym r val typ, VariableSym r var typ, VariableValue r var val, CommandLineArgs r val, NumericExpression r val, BooleanExpression r val, Comparison r val, IndexTranslator r val, List r val, ListStatement r stmt val, InternalList r block var val, VariableElim r var typ, BinderElim r binder typ, RenderBlock r block, BlockElim r block, RenderBody r bod, BodyElim r bod, InternalListFunc r val typ, RenderFunction r typ, FunctionElim r typ, OpElim r, RenderParam r param var, ParamElim r param typ, RenderVisibility r vis, VisibilityElim r vis, InternalAssignStmt r stmt var val, InternalIOStmt r stmt val, InternalControlStmt r stmt val, RenderStatement r stmt, StatementElim r stmt, RenderType r typ, RenderValue r var val typ, ValueElim r val, RenderVariable r var typ, InternalVarElim r var, InternalBinderElim r binder, ImportSym r, UnaryOpSym r, BinaryOpSym r, BlockCommentSym r, BlockCommentElim r, ValueExpression r var val binder typ, TypeSym r typ, MethodTypeSym r typ, RenderMethod r mthd, MethodElim r mthd, ParameterSym r param var, ScopeElim r scope) => CommonRenderSym (r :: Type -> Type) mthd vis param bod block stmt var scope val binder typ Source #

class ImportSym (r :: Type -> Type) where Source #

Instances

Instances details
ImportSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ImportSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ImportSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ImportSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ImportSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ImportSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ImportSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ImportSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => ImportSym (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderBody (r :: k -> Type) (bod :: k) | r -> bod where Source #

Methods

multiBody :: [MS (r bod)] -> MS (r bod) Source #

Instances

Instances details
RenderBody CSharpCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderBody CppHdrCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderBody CppSrcCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderBody JavaCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderBody PythonCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderBody SwiftCode Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderBody JuliaCode Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderBody MatlabCode Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderBody (p CppSrcCode CppHdrCode :: Type -> Type) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class BodyElim (r :: k -> Type) (bod :: k) | r -> bod where Source #

Methods

body :: r bod -> Doc Source #

class RenderBlock (r :: k -> Type) (block :: k) | r -> block where Source #

Methods

multiBlock :: [MS (r block)] -> MS (r block) Source #

Instances

Instances details
RenderBlock CSharpCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderBlock CppHdrCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderBlock CppSrcCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderBlock JavaCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderBlock PythonCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderBlock SwiftCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderBlock JuliaCode Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderBlock MatlabCode Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderBlock (p CppSrcCode CppHdrCode :: Type -> Type) Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class BlockElim (r :: k -> Type) (block :: k) | r -> block where Source #

Methods

block :: r block -> Doc Source #

class RenderType (r :: k -> Type) (typ :: k) | r -> typ where Source #

Methods

multiType :: [VS (r typ)] -> VS (r typ) Source #

Instances

Instances details
RenderType CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderType CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderType CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderType JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderType PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderType SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderType JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderType MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderType (p CppSrcCode CppHdrCode :: Type -> Type) TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

type VSUnOp (a :: Type -> Type) = VS (a OpData) Source #

class UnaryOpSym (r :: Type -> Type) where Source #

Instances

Instances details
UnaryOpSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

UnaryOpSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

UnaryOpSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

UnaryOpSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

UnaryOpSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

UnaryOpSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

UnaryOpSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

UnaryOpSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => UnaryOpSym (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

type VSBinOp (a :: Type -> Type) = VS (a OpData) Source #

class BinaryOpSym (r :: Type -> Type) where Source #

Instances

Instances details
BinaryOpSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BinaryOpSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinaryOpSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinaryOpSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BinaryOpSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BinaryOpSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BinaryOpSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BinaryOpSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => BinaryOpSym (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class OpElim (r :: Type -> Type) where Source #

Instances

Instances details
OpElim CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OpElim CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OpElim CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OpElim JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OpElim PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OpElim SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

OpElim JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

OpElim MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => OpElim (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderVariable (r :: k -> Type) (var :: k) (typ :: k) | r -> var typ where Source #

Methods

varFromData :: AttachmentTag -> String -> VS (r typ) -> Doc -> VS (r var) Source #

Instances

Instances details
RenderVariable CSharpCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderVariable CppHdrCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderVariable CppSrcCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderVariable JavaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderVariable PythonCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderVariable SwiftCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderVariable JuliaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderVariable MatlabCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderVariable (p CppSrcCode CppHdrCode :: Type -> Type) Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalVarElim (r :: k -> Type) (var :: k) | r -> var where Source #

Methods

variableBind :: r var -> AttachmentTag Source #

variable :: r var -> Doc Source #

Instances

Instances details
InternalVarElim CSharpCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalVarElim CppHdrCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalVarElim CppSrcCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalVarElim JavaCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalVarElim PythonCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalVarElim SwiftCode Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalVarElim JuliaCode Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalVarElim MatlabCode Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalVarElim (p CppSrcCode CppHdrCode :: Type -> Type) Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalBinderElim (r :: k -> Type) (binder :: k) where Source #

Methods

binderElim :: r binder -> Doc Source #

Instances

Instances details
InternalBinderElim CSharpCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalBinderElim CppHdrCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalBinderElim CppSrcCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalBinderElim JavaCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalBinderElim PythonCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalBinderElim SwiftCode BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalBinderElim JuliaCode BinderD Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalBinderElim MatlabCode BinderD Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalBinderElim (p CppSrcCode CppHdrCode :: Type -> Type) BinderD Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderValue (r :: k -> Type) (var :: k) (val :: k) (typ :: k) | r -> var val typ where Source #

Methods

inputFunc :: VS (r val) Source #

printFunc :: VS (r val) Source #

printLnFunc :: VS (r val) Source #

printFileFunc :: VS (r val) -> VS (r val) Source #

printFileLnFunc :: VS (r val) -> VS (r val) Source #

cast :: VS (r typ) -> VS (r val) -> VS (r val) Source #

call :: Maybe Library -> Maybe Doc -> MixedCall r var val typ Source #

Very generic internal function for generating calls, to reduce repeated code throughout generators. Parameters are: maybe name of external module, maybe Doc for object variable (including separator between object and function) for method calls.

valFromData :: Maybe Int -> Maybe Integer -> VS (r typ) -> Doc -> VS (r val) Source #

Instances

Instances details
RenderValue CSharpCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderValue CppHdrCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderValue CppSrcCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderValue JavaCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderValue PythonCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderValue SwiftCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderValue JuliaCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderValue MatlabCode Variable Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderValue (p CppSrcCode CppHdrCode :: Type -> Type) Variable Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueElim (r :: k -> Type) (val :: k) | r -> val where Source #

Methods

valuePrec :: r val -> Maybe Int Source #

valueInt :: r val -> Maybe Integer Source #

value :: r val -> Doc Source #

Instances

Instances details
ValueElim CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueElim CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueElim CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueElim JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueElim PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueElim SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueElim JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueElim MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => ValueElim (p CppSrcCode CppHdrCode :: Type -> Type) Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalListFunc (r :: Type -> Type) val typ | r -> val typ where Source #

Methods

listAccessFunc :: VS (r typ) -> VS (r val) -> VS (r FuncData) Source #

List, Index

Instances

Instances details
InternalListFunc CSharpCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalListFunc CppHdrCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalListFunc CppSrcCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalListFunc JavaCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalListFunc PythonCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalListFunc SwiftCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalListFunc JuliaCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalListFunc MatlabCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalListFunc (p CppSrcCode CppHdrCode) Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderFunction (r :: Type -> Type) typ | r -> typ where Source #

Methods

funcFromData :: Doc -> VS (r typ) -> VS (r FuncData) Source #

Instances

Instances details
RenderFunction CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderFunction CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderFunction CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderFunction JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderFunction PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderFunction SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderFunction JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderFunction MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderFunction (p CppSrcCode CppHdrCode) TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class FunctionElim (r :: Type -> Type) typ | r -> typ where Source #

Methods

functionType :: r FuncData -> r typ Source #

function :: r FuncData -> Doc Source #

Instances

Instances details
FunctionElim CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FunctionElim CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FunctionElim CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FunctionElim JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FunctionElim PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FunctionElim SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FunctionElim JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

FunctionElim MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => FunctionElim (p CppSrcCode CppHdrCode) TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalAssignStmt (r :: k -> Type) (stmt :: k) (var :: k) (val :: k) | r -> stmt var val where Source #

Methods

multiAssign :: [VS (r var)] -> [VS (r val)] -> MS (r stmt) Source #

Instances

Instances details
InternalAssignStmt CSharpCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalAssignStmt CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalAssignStmt CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalAssignStmt JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalAssignStmt PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalAssignStmt SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalAssignStmt JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalAssignStmt MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalAssignStmt (p CppSrcCode CppHdrCode :: Type -> Type) Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalIOStmt (r :: k -> Type) (stmt :: k) (val :: k) | r -> stmt val where Source #

Methods

printSt :: Bool -> Maybe (VS (r val)) -> VS (r val) -> VS (r val) -> MS (r stmt) Source #

Instances

Instances details
InternalIOStmt CSharpCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalIOStmt CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalIOStmt CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalIOStmt JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalIOStmt PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalIOStmt SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalIOStmt JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalIOStmt MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalIOStmt (p CppSrcCode CppHdrCode :: Type -> Type) Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class InternalControlStmt (r :: k -> Type) (stmt :: k) (val :: k) | r -> stmt val where Source #

Methods

multiReturn :: [VS (r val)] -> MS (r stmt) Source #

Instances

Instances details
InternalControlStmt CSharpCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalControlStmt CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalControlStmt CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalControlStmt JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalControlStmt PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalControlStmt SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalControlStmt JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalControlStmt MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => InternalControlStmt (p CppSrcCode CppHdrCode :: Type -> Type) Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderStatement (r :: k -> Type) (stmt :: k) | r -> stmt where Source #

Methods

stmt :: MS (r stmt) -> MS (r stmt) Source #

loopStmt :: MS (r stmt) -> MS (r stmt) Source #

stmtFromData :: Doc -> Terminator -> MS (r stmt) Source #

Instances

Instances details
RenderStatement CSharpCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderStatement CppHdrCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderStatement CppSrcCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderStatement JavaCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderStatement PythonCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderStatement SwiftCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderStatement JuliaCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderStatement MatlabCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderStatement (p CppSrcCode CppHdrCode :: Type -> Type) Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class StatementElim (r :: k -> Type) (stmt :: k) | r -> stmt where Source #

Methods

statement :: r stmt -> Doc Source #

statementTerm :: r stmt -> Terminator Source #

Instances

Instances details
StatementElim CSharpCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StatementElim CppHdrCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StatementElim CppSrcCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StatementElim JavaCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StatementElim PythonCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StatementElim SwiftCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

StatementElim JuliaCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

StatementElim MatlabCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => StatementElim (p CppSrcCode CppHdrCode :: Type -> Type) Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderVisibility (r :: k -> Type) (vis :: k) | r -> vis where Source #

Instances

Instances details
RenderVisibility CSharpCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderVisibility JavaCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderVisibility PythonCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderVisibility SwiftCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderVisibility JuliaCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderVisibility MatlabCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

RenderVisibility CppHdrCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderVisibility CppSrcCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Pair p => RenderVisibility (p CppSrcCode CppHdrCode :: Type -> Type) (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VisibilityElim (r :: k -> Type) (vis :: k) | r -> vis where Source #

Methods

visibility :: r vis -> Doc Source #

Instances

Instances details
VisibilityElim CSharpCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VisibilityElim JavaCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VisibilityElim PythonCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VisibilityElim SwiftCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VisibilityElim JuliaCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VisibilityElim MatlabCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VisibilityElim CppHdrCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VisibilityElim CppSrcCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Pair p => VisibilityElim (p CppSrcCode CppHdrCode :: Type -> Type) (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class MethodTypeSym (r :: k -> Type) (typ :: k) | r -> typ where Source #

Methods

mType :: VS (r typ) -> MS (r typ) Source #

Instances

Instances details
MethodTypeSym CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MethodTypeSym CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MethodTypeSym CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MethodTypeSym JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MethodTypeSym PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MethodTypeSym SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MethodTypeSym JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MethodTypeSym MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => MethodTypeSym (p CppSrcCode CppHdrCode :: Type -> Type) TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderParam (r :: k -> Type) (param :: k) (var :: k) | r -> param var where Source #

Methods

paramFromData :: VS (r var) -> Doc -> MS (r param) Source #

Instances

Instances details
RenderParam CSharpCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderParam CppHdrCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderParam CppSrcCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

RenderParam JavaCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderParam PythonCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderParam SwiftCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderParam JuliaCode ParamData Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderParam MatlabCode ParamData Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => RenderParam (p CppSrcCode CppHdrCode :: Type -> Type) ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ParamElim (r :: k -> Type) (param :: k) (typ :: k) | r -> param typ where Source #

Methods

parameterName :: r param -> Label Source #

parameterType :: r param -> r typ Source #

parameter :: r param -> Doc Source #

Instances

Instances details
ParamElim CSharpCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ParamElim CppHdrCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParamElim CppSrcCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParamElim JavaCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ParamElim PythonCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ParamElim SwiftCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ParamElim JuliaCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ParamElim MatlabCode ParamData TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => ParamElim (p CppSrcCode CppHdrCode :: Type -> Type) ParamData TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class RenderMethod (r :: Type -> Type) mthd | r -> mthd where Source #

Methods

commentedFunc :: MS (r Doc) -> MS (r mthd) -> MS (r mthd) Source #

Takes a BlockComment and a method and generates a function.

mthdFromData :: VisibilityTag -> Doc -> MS (r mthd) Source #

Instances

Instances details
RenderMethod CSharpCode MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

RenderMethod JavaCode MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

RenderMethod PythonCode MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

RenderMethod SwiftCode MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

RenderMethod JuliaCode MethodData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

RenderMethod MatlabCode MethodData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

class BlockCommentSym (r :: Type -> Type) where Source #

Methods

blockComment :: [String] -> r Doc Source #

docComment :: State a [String] -> State a (r Doc) Source #

Converts a list of strings into a block comment

Instances

Instances details
BlockCommentSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BlockCommentSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockCommentSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockCommentSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BlockCommentSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BlockCommentSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BlockCommentSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BlockCommentSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => BlockCommentSym (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class BlockCommentElim (r :: Type -> Type) where Source #

Methods

blockComment' :: r Doc -> Doc Source #

Instances

Instances details
BlockCommentElim CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BlockCommentElim CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockCommentElim CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockCommentElim JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BlockCommentElim PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BlockCommentElim SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BlockCommentElim JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BlockCommentElim MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => BlockCommentElim (p CppSrcCode CppHdrCode) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ScopeElim (r :: Type -> Type) scope | r -> scope where Source #

Methods

scopeData :: r scope -> scope Source #

Instances

Instances details
ScopeElim CSharpCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ScopeElim CppHdrCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeElim CppSrcCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeElim JavaCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ScopeElim PythonCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ScopeElim SwiftCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ScopeElim JuliaCode ScopeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ScopeElim MatlabCode ScopeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Pair p => ScopeElim (p CppSrcCode CppHdrCode) ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer