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

Drasil.Shared.InterfaceCommon

Synopsis

Documentation

type Body = Doc Source #

type Block = Doc Source #

type VSBinder (a :: Type -> Type) = VS (a BinderD) Source #

type SVariable (a :: Type -> Type) = VS (a Variable) Source #

type SValue (a :: Type -> Type) = VS (a Value) Source #

type NamedArgs (r :: Type -> Type) = [(SVariable r, SValue r)] Source #

type MixedCall (r :: Type -> Type) = Label -> VS (r TypeData) -> [SValue r] -> NamedArgs r -> SValue r Source #

type MixedCtorCall (r :: Type -> Type) = VS (r TypeData) -> [SValue r] -> NamedArgs r -> SValue r Source #

type PosCall (r :: Type -> Type) = Label -> VS (r TypeData) -> [SValue r] -> SValue r Source #

type PosCtorCall (r :: Type -> Type) = VS (r TypeData) -> [SValue r] -> SValue r Source #

type InOutCall (r :: Type -> Type) stmt = Label -> [SValue r] -> [SVariable r] -> [SVariable r] -> MS (r stmt) Source #

type InOutFunc (r :: Type -> Type) mthd bod = [SVariable r] -> [SVariable r] -> [SVariable r] -> MS (r bod) -> MS (r mthd) Source #

type DocInOutFunc (r :: Type -> Type) mthd bod = String -> [(String, SVariable r)] -> [(String, SVariable r)] -> [(String, SVariable r)] -> MS (r bod) -> MS (r mthd) Source #

class UnRepr (repr :: Type -> Type) contents where Source #

Methods

unRepr :: repr contents -> contents Source #

Instances

Instances details
UnRepr CodeInfoOO contents Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

unRepr :: CodeInfoOO contents -> contents Source #

UnRepr CSharpCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Methods

unRepr :: CSharpCode contents -> contents Source #

UnRepr CppHdrCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

unRepr :: CppHdrCode contents -> contents Source #

UnRepr CppSrcCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

unRepr :: CppSrcCode contents -> contents Source #

UnRepr JavaCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Methods

unRepr :: JavaCode contents -> contents Source #

UnRepr PythonCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Methods

unRepr :: PythonCode contents -> contents Source #

UnRepr SwiftCode contents Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Methods

unRepr :: SwiftCode contents -> contents Source #

UnRepr JuliaCode inner Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Methods

unRepr :: JuliaCode inner -> inner Source #

UnRepr MatlabCode inner Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Methods

unRepr :: MatlabCode inner -> inner Source #

UnRepr r contents => UnRepr (LoggingFor r) contents Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

unRepr :: LoggingFor r contents -> contents Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

unRepr :: p CppSrcCode CppHdrCode contents -> contents Source #

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

Class for representing a Body, which is basically a lexical scope of code. Examples include a function body, the branch(es) of an `if`-statement, etc.

Methods

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

Given a list of blocks, create a Body of them.

addComments :: Label -> MS (r bod) -> MS (r bod) Source #

Given a comment and a body, add the comment as a header for the body.

Instances

Instances details
BodySym CodeInfoOO () () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

body :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ()) Source #

addComments :: Label -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

BodySym CSharpCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BodySym CppHdrCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BodySym CppSrcCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BodySym JavaCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BodySym PythonCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BodySym SwiftCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BodySym JuliaCode Body Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BodySym MatlabCode Body Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BodySym r bod block => BodySym (LoggingFor r :: Type -> Type) (bod :: Type) (block :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

body :: [MS (LoggingFor r block)] -> MS (LoggingFor r bod) Source #

addComments :: Label -> MS (LoggingFor r bod) -> MS (LoggingFor r bod) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

bodyStatements :: forall {k} r (block :: k) (stmt :: k) (bod :: k). (BlockSym r block stmt, BodySym r bod block) => [MS (r stmt)] -> MS (r bod) Source #

oneLiner :: forall {k} r (block :: k) (stmt :: k) (bod :: k). (BlockSym r block stmt, BodySym r bod block) => MS (r stmt) -> MS (r bod) Source #

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

Class for representing a block of code. A block is a series of statements grouped together, not for use by the compiler/interpreter but to improve readability of the generated code. See the bottom of page 2 of Brook's GOOL paper from 2020 for more details.

Methods

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

Instances

Instances details
BlockSym CodeInfoOO () () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

block :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ()) Source #

BlockSym CSharpCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BlockSym CppHdrCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockSym CppSrcCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockSym JavaCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BlockSym PythonCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BlockSym SwiftCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BlockSym JuliaCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BlockSym MatlabCode Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BlockSym r block stmt => BlockSym (LoggingFor r :: Type -> Type) (block :: Type) (stmt :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

Pair p => BlockSym (p CppSrcCode CppHdrCode :: Type -> Type) Block (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Class for representing a type.

Instances

Instances details
TypeSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

TypeSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

TypeSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

TypeSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

TypeSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

TypeSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

TypeSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

TypeSym r => TypeSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class TypeSym r => TypeElim (r :: Type -> Type) where Source #

Instances

Instances details
TypeElim CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

TypeElim CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

TypeElim CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeElim CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeElim JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

TypeElim PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

TypeElim SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

TypeElim JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

TypeElim MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

TypeElim r => TypeElim (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

getTypeString :: UnRepr r TypeData => r TypeData -> String Source #

A helper function for extracting the String representation from an `r TypeData`

class TypeSym r => VariableSym (r :: Type -> Type) where Source #

Class for representing variables.

Methods

var :: Label -> VS (r TypeData) -> SVariable r Source #

An instance- or function-level variable, separate from its instance (i.e. v, not `o.v`)

constant :: Label -> VS (r TypeData) -> SVariable r Source #

An instance- or function-level constant, separate from its instance (i.e. v, not `o.v`)

extVar :: Library -> Label -> VS (r TypeData) -> SVariable r Source #

An instance- or module-level variable from an external library. Given library Lib, variable name v, and variable type t, it performs the necessary imports and creates v

Instances

Instances details
VariableSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

VariableSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableSym r => VariableSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Class for representing the lexical scope of a variable. Currently only differentiates global and local, allowing individual renderers to define which of them the main function is.

Instances

Instances details
ScopeSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ScopeSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ScopeSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ScopeSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ScopeSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ScopeSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ScopeSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ScopeSym r => ScopeSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => VariableElim (r :: Type -> Type) where Source #

Instances

Instances details
VariableElim CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

VariableElim CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableElim CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableElim CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableElim JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableElim PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableElim SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableElim JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableElim MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableElim r => VariableElim (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class TypeSym r => ValueSym (r :: Type -> Type) where Source #

Class for representing a value.

Methods

valueType :: r Value -> r TypeData Source #

Instances

Instances details
ValueSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ValueSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ValueSym r => ValueSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => Argument (r :: Type -> Type) where Source #

Methods

pointerArg :: SValue r -> SValue r Source #

Instances

Instances details
Argument CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Argument CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Argument CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Argument CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Argument JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Argument PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Argument SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Argument JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Argument MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Argument r => Argument (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => Literal (r :: Type -> Type) where Source #

Instances

Instances details
Literal CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Literal CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Literal CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Literal CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Literal JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Literal PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Literal SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Literal JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Literal MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Literal r => Literal (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => MathConstant (r :: Type -> Type) where Source #

Methods

pi :: SValue r Source #

Instances

Instances details
MathConstant CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

MathConstant CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MathConstant CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MathConstant CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MathConstant JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MathConstant PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MathConstant SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MathConstant JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MathConstant MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

MathConstant r => MathConstant (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pi :: SValue (LoggingFor r) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (VariableSym r, ValueSym r) => VariableValue (r :: Type -> Type) where Source #

Methods

valueOf :: SVariable r -> SValue r Source #

Instances

Instances details
VariableValue CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

VariableValue CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableValue CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableValue CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableValue JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableValue PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableValue SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableValue JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableValue MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableValue r => VariableValue (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => CommandLineArgs (r :: Type -> Type) where Source #

Instances

Instances details
CommandLineArgs CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

CommandLineArgs CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

CommandLineArgs CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommandLineArgs CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommandLineArgs JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

CommandLineArgs PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

CommandLineArgs SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

CommandLineArgs JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

CommandLineArgs MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

CommandLineArgs r => CommandLineArgs (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => NumericExpression (r :: Type -> Type) where Source #

Methods

(#~) :: SValue r -> SValue r infixl 8 Source #

(#/^) :: SValue r -> SValue r infixl 7 Source #

(#|) :: SValue r -> SValue r infixl 7 Source #

(#+) :: SValue r -> SValue r -> SValue r infixl 5 Source #

(#-) :: SValue r -> SValue r -> SValue r infixl 5 Source #

(#*) :: SValue r -> SValue r -> SValue r infixl 6 Source #

(#/) :: SValue r -> SValue r -> SValue r infixl 6 Source #

(#%) :: SValue r -> SValue r -> SValue r infixl 6 Source #

(#^) :: SValue r -> SValue r -> SValue r infixl 7 Source #

log :: SValue r -> SValue r Source #

ln :: SValue r -> SValue r Source #

exp :: SValue r -> SValue r Source #

sin :: SValue r -> SValue r Source #

cos :: SValue r -> SValue r Source #

tan :: SValue r -> SValue r Source #

csc :: SValue r -> SValue r Source #

sec :: SValue r -> SValue r Source #

cot :: SValue r -> SValue r Source #

arcsin :: SValue r -> SValue r Source #

arccos :: SValue r -> SValue r Source #

arctan :: SValue r -> SValue r Source #

floor :: SValue r -> SValue r Source #

ceil :: SValue r -> SValue r Source #

Instances

Instances details
NumericExpression CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

NumericExpression CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

NumericExpression CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

NumericExpression CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

NumericExpression JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

NumericExpression PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

NumericExpression SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

NumericExpression JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

NumericExpression MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

NumericExpression r => NumericExpression (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(#~) :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#/^) :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#|) :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#+) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#-) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#*) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#/) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#%) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

(#^) :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

log :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

ln :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

exp :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

sin :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

cos :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

tan :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

csc :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

sec :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

cot :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

arcsin :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

arccos :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

arctan :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

floor :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

ceil :: SValue (LoggingFor r) -> SValue (LoggingFor r) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

(#~) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#/^) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#|) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#+) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#-) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#*) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#/) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#%) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

(#^) :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

log :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

ln :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

exp :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

sin :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

cos :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

tan :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

csc :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

sec :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

cot :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

arcsin :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

arccos :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

arctan :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

floor :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

ceil :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) Source #

class ValueSym r => BooleanExpression (r :: Type -> Type) where Source #

Methods

(?!) :: SValue r -> SValue r infixr 6 Source #

(?&&) :: SValue r -> SValue r -> SValue r infixl 2 Source #

(?||) :: SValue r -> SValue r -> SValue r infixl 1 Source #

Instances

Instances details
BooleanExpression CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

BooleanExpression CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BooleanExpression CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BooleanExpression CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BooleanExpression JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BooleanExpression PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BooleanExpression SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BooleanExpression JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BooleanExpression MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BooleanExpression r => BooleanExpression (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => Comparison (r :: Type -> Type) where Source #

Methods

(?<) :: SValue r -> SValue r -> SValue r infixl 4 Source #

(?<=) :: SValue r -> SValue r -> SValue r infixl 4 Source #

(?>) :: SValue r -> SValue r -> SValue r infixl 4 Source #

(?>=) :: SValue r -> SValue r -> SValue r infixl 4 Source #

(?==) :: SValue r -> SValue r -> SValue r infixl 3 Source #

(?!=) :: SValue r -> SValue r -> SValue r infixl 3 Source #

Instances

Instances details
Comparison CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Comparison CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Comparison CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Comparison CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Comparison JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Comparison PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Comparison SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Comparison JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Comparison MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Comparison r => Comparison (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (VariableSym r, ValueSym r) => ValueExpression (r :: Type -> Type) where Source #

A class for representing values that can include expressions

Instances

Instances details
ValueExpression CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ValueExpression CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueExpression CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueExpression CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueExpression JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueExpression PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueExpression SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueExpression JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueExpression MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ValueExpression r => ValueExpression (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => IndexTranslator (r :: Type -> Type) where Source #

Helper class for representing the conversion between integers and array indices. GOOL is 0-indexed, so languages like Julia that are not 0-indexed need to convert between integers and indices.

Methods

intToIndex :: SValue r -> SValue r Source #

Does any necessary conversions from GOOL's zero-indexed assumptions to the target language's assumptions

indexToInt :: SValue r -> SValue r Source #

Does any necessary conversions from the target language's indexing assumptions assumptions to GOOL's zero-indexed assumptions

Instances

Instances details
IndexTranslator CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

IndexTranslator CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

IndexTranslator CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

IndexTranslator CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

IndexTranslator JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

IndexTranslator PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

IndexTranslator SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

IndexTranslator JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

IndexTranslator MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

IndexTranslator r => IndexTranslator (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (TypeSym r, ValueSym r) => Reference (r :: Type -> Type) where Source #

A class for representing references. By "reference" we basically mean "C++ pointer" or "OCaml reference".

Methods

makeRef :: SValue r -> SValue r Source #

Given a value, convert it to a reference to that value

maybeDeref :: SValue r -> SValue r Source #

Given a value that may be a reference type, apply any necessary dereference operation.

Instances

Instances details
Reference CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Reference CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Reference CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Reference CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Reference JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Reference PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Reference SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Reference JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Reference MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Reference r => Reference (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class IndexTranslator r => Array (r :: Type -> Type) where Source #

Methods

arrayElem :: SValue r -> SValue r -> SVariable r Source #

Given array a and index i, creates `a[i]`

arrayLength :: SValue r -> SValue r Source #

Given an array, return its length

arrayCopy :: SValue r -> SValue r Source #

Given a source array, create a (shallow) copy of it

Instances

Instances details
Array CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Array CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Array CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Array CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Array JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Array PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Array SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Array JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Array MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Array r => Array (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class IndexTranslator r => List (r :: Type -> Type) where Source #

Methods

listSize :: SValue r -> SValue r Source #

Finds the size of a list. Arguments are: List

listAccess :: SValue r -> SValue r -> SValue r Source #

Gets the value of an index of a list. Arguments are: List, Index

indexOf :: SValue r -> SValue r -> SValue r Source #

Finds the index of the first occurrence of a value in a list. Arguments are: List, Value

Instances

Instances details
List CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

List CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

List CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

List CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

List JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

List PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

List SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

List JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

List MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

List r => List (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Inserts a value into a list. Arguments are: List, Index, Value

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

Appens a value to a list. Arguments are: List, Value

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

Sets the value of an index of a list. Arguments are: List, Index, Value

Instances

Instances details
ListStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ListStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ListStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ListStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ListStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ListStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ListStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ListStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ListStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ListStatement r stmt => ListStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => ListStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => Set (r :: Type -> Type) where Source #

Methods

contains :: SValue r -> SValue r -> SValue r Source #

Checks membership Arguments are: Set, Value

setAdd :: SValue r -> SValue r -> SValue r Source #

Inserts a value into a set Arguments are: Set, Value

setRemove :: SValue r -> SValue r -> SValue r Source #

Removes a value from a set Arguments are: Set, Value

setUnion :: SValue r -> SValue r -> SValue r Source #

Removes a value from a set Arguments are: Set, Set

Instances

Instances details
Set CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Set CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Set CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Set CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Set JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Set PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Set SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Set JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Set MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Set r => Set (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (IndexTranslator r, Literal r) => NativeVector (r :: Type -> Type) where Source #

Vector operations for languages with native vector support (e.g. MATLAB, Julia). Expression-based: every operation takes and returns SValues, so operations compose like math (e.g. vecAdd (vecScale s a) b). Vectors have their own vecType and litVec so callers don't depend on how vectors are represented; these default to listType and litList.

Minimal complete definition

vecScale, vecAdd, vecIndex, vecDot, vecMag, vecUnit

Methods

vecType :: VS (r TypeData) -> VS (r TypeData) Source #

The type of a vector with the given element type. Defaults to listType; a language may override it to use a distinct vector representation.

litVec :: VS (r TypeData) -> [SValue r] -> SValue r Source #

A vector literal with the given element type and elements. Defaults to litList.

vecScale :: SValue r -> SValue r -> SValue r Source #

Scales a vector by a scalar. Arguments are: Scalar, Vector

vecAdd :: SValue r -> SValue r -> SValue r Source #

Adds two vectors elementwise. Arguments are: Vector, Vector

vecIndex :: SValue r -> SValue r -> SValue r Source #

Gets the element of a vector at an index. Arguments are: Vector, Index

vecDot :: SValue r -> SValue r -> SValue r Source #

Dot product of two vectors (returns a scalar). Arguments are: Vector, Vector

vecMag :: SValue r -> SValue r Source #

Euclidean norm (magnitude) of a vector (returns a scalar). Argument is: Vector

vecUnit :: SValue r -> SValue r Source #

Unit vector in the direction of a vector (returns a vector). Argument is: Vector

Instances

Instances details
NativeVector JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

NativeVector MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

NativeVector lang => NativeVector (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class ValueSym r => InternalList (r :: Type -> Type) block | r -> block where Source #

Methods

listSlice' :: Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> SVariable r -> SValue r -> MS (r block) Source #

Instances

Instances details
InternalList CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

InternalList CSharpCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalList CppHdrCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalList CppSrcCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalList JavaCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalList PythonCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalList SwiftCode Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalList JuliaCode Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalList MatlabCode Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

InternalList r block => InternalList (LoggingFor r) block Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

listSlice :: InternalList r block => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MS (r block) Source #

Creates a slice of a list and assigns it to a variable. Arguments are: Variable to assign List to read from (optional) Start index inclusive. (if Nothing, then list start if step > 0, list end if step < 0) (optional) End index exclusive. (if Nothing, then list end if step > 0, list start if step > 0) (optional) Step (if Nothing, then defaults to 1)

at :: List r => SValue r -> SValue r -> SValue r Source #

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

Methods

emptyStmt :: MS (r stmt) Source #

Empty statement

Instances

Instances details
EmptyStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

emptyStmt :: MS (CodeInfoOO ()) Source #

EmptyStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

EmptyStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

EmptyStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

EmptyStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

EmptyStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

EmptyStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

EmptyStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

EmptyStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

EmptyStatement r stmt => EmptyStatement (LoggingFor r :: Type -> Type) (stmt :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

emptyStmt :: MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

multi :: [MS (r stmt)] -> MS (r stmt) Source #

Consolidates a list of statements into a single statement

Instances

Instances details
MultiStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

multi :: [MS (CodeInfoOO ())] -> MS (CodeInfoOO ()) Source #

MultiStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MultiStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MultiStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MultiStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MultiStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MultiStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MultiStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MultiStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

MultiStatement r stmt => MultiStatement (LoggingFor r :: Type -> Type) (stmt :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

multi :: [MS (LoggingFor r stmt)] -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Converts a value to statement

Instances

Instances details
ValueStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ValueStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ValueStatement r stmt => ValueStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

valStmt :: SValue (LoggingFor r) -> MS (LoggingFor r stmt) Source #

Pair p => ValueStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => AssignStatement (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

(&-=) :: SVariable r -> SValue r -> MS (r stmt) infixl 1 Source #

(&+=) :: SVariable r -> SValue r -> MS (r stmt) infixl 1 Source #

(&++) :: SVariable r -> MS (r stmt) infixl 8 Source #

(&--) :: SVariable r -> MS (r stmt) infixl 8 Source #

assign :: SVariable r -> SValue r -> MS (r stmt) Source #

Instances

Instances details
AssignStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

AssignStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

AssignStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AssignStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AssignStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

AssignStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

AssignStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

AssignStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

AssignStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, AssignStatement r stmt, FileHandling r stmt, PrintFile r stmt, VariableValue r, VariableElim r, Literal r) => AssignStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => AssignStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

(&=) :: AssignStatement r stmt => SVariable r -> SValue r -> MS (r stmt) infixr 1 Source #

class (VariableSym r, ScopeSym r) => DeclStatement (r :: Type -> Type) stmt bod | r -> stmt bod where Source #

Methods

varDec :: SVariable r -> r ScopeData -> MS (r stmt) Source #

Declare a variable without giving it a value. Not for use with arrays; use arrayDec instead.

varDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r stmt) Source #

Declare a variable and give it a value. Not for use with arrays; use arrayDecDef instead.

listDec :: Integer -> SVariable r -> r ScopeData -> MS (r stmt) Source #

Given the size of the list, the variable to store the list in, and the scope of the variable, declare a list of the given size.

listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt) Source #

setDec :: SVariable r -> r ScopeData -> MS (r stmt) Source #

setDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r stmt) Source #

arrayDec :: Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r stmt) Source #

Given the size of the aray, the default value to fill the array with, the variable to store the array in, and the scope of the variable, declare an array of the given size.

arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r stmt) Source #

constDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r stmt) Source #

funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MS (r bod) -> MS (r stmt) Source #

Instances

Instances details
DeclStatement CodeInfoOO () () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

DeclStatement CSharpCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

DeclStatement CppHdrCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

DeclStatement CppSrcCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

DeclStatement JavaCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

DeclStatement PythonCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

DeclStatement SwiftCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

DeclStatement JuliaCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

DeclStatement MatlabCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, DeclStatement r stmt bod, FileHandling r stmt, PrintFile r stmt, VariableValue r, VariableElim r, Literal r) => DeclStatement (LoggingFor r) stmt bod Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => DeclStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

varDec :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

varDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

listDec :: Integer -> SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

listDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> [SValue (p CppSrcCode CppHdrCode)] -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

setDec :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

setDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

arrayDec :: Integer -> SValue (p CppSrcCode CppHdrCode) -> SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

arrayDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> [SValue (p CppSrcCode CppHdrCode)] -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

constDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

funcDecDef :: SVariable (p CppSrcCode CppHdrCode) -> p CppSrcCode CppHdrCode ScopeData -> [SVariable (p CppSrcCode CppHdrCode)] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

class VariableSym r => PrintConsole (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

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

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

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

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

Instances

Instances details
PrintConsole CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

PrintConsole CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

PrintConsole CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintConsole CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintConsole JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

PrintConsole PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

PrintConsole SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

PrintConsole JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

PrintConsole MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

PrintConsole r stmt => PrintConsole (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => PrintConsole (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => ReadConsole (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

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

discardInput :: MS (r stmt) Source #

Instances

Instances details
ReadConsole CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ReadConsole CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ReadConsole CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadConsole CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadConsole JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ReadConsole PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ReadConsole SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ReadConsole JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ReadConsole MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, FileHandling r stmt, PrintFile r stmt, ReadConsole r stmt, VariableValue r, VariableElim r, Literal r) => ReadConsole (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => ReadConsole (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => FileHandling (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

openFileR :: SVariable r -> SValue r -> MS (r stmt) Source #

openFileW :: SVariable r -> SValue r -> MS (r stmt) Source #

openFileA :: SVariable r -> SValue r -> MS (r stmt) Source #

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

Instances

Instances details
FileHandling CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

FileHandling CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FileHandling CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileHandling CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileHandling JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FileHandling PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FileHandling SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FileHandling JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

FileHandling MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

FileHandling r stmt => FileHandling (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => FileHandling (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => PrintFile (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

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

Given the file handle and value to print, print the value to the file.

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

printFileStr :: SValue r -> String -> MS (r stmt) Source #

printFileStrLn :: SValue r -> String -> MS (r stmt) Source #

Instances

Instances details
PrintFile CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

PrintFile CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

PrintFile CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintFile CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintFile JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

PrintFile PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

PrintFile SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

PrintFile JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

PrintFile MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

PrintFile r stmt => PrintFile (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => PrintFile (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => ReadFile (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

getFileInput :: SValue r -> SVariable r -> MS (r stmt) Source #

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

getFileInputLine :: SValue r -> SVariable r -> MS (r stmt) Source #

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

getFileInputAll :: SValue r -> SVariable r -> MS (r stmt) Source #

Instances

Instances details
ReadFile CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ReadFile CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ReadFile CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadFile CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadFile JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ReadFile PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ReadFile SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ReadFile JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ReadFile MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, FileHandling r stmt, PrintFile r stmt, ReadFile r stmt, VariableValue r, VariableElim r, Literal r) => ReadFile (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => ReadFile (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => StringStatement (r :: Type -> Type) stmt | r -> stmt where Source #

Methods

stringSplit :: Char -> SVariable r -> SValue r -> MS (r stmt) Source #

Given a char to split on, variable to store result in, and string to split, generates a statement splitting the string into a list of strings delimited by the char.

stringListVals :: [SVariable r] -> SValue r -> MS (r stmt) Source #

stringListLists :: [SVariable r] -> SValue r -> MS (r stmt) Source #

Given a list of variables and a value containing a list of strings, assign the ith element of the list of strings into the ith variable

Instances

Instances details
StringStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

StringStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StringStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StringStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StringStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StringStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StringStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

StringStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

StringStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, StringStatement r stmt, FileHandling r stmt, PrintFile r stmt, VariableValue r, VariableElim r, Literal r) => StringStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => StringStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => FuncAppStatement (r :: Type -> Type) stmt | r -> stmt where Source #

Instances

Instances details
FuncAppStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

FuncAppStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FuncAppStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FuncAppStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FuncAppStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FuncAppStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FuncAppStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FuncAppStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

FuncAppStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

FuncAppStatement r stmt => FuncAppStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => FuncAppStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Instances

Instances details
CommentStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

comment :: String -> MS (CodeInfoOO ()) Source #

CommentStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

CommentStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommentStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommentStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

CommentStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

CommentStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

CommentStatement JuliaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

CommentStatement MatlabCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

CommentStatement r stmt => CommentStatement (LoggingFor r :: Type -> Type) (stmt :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

comment :: String -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => ControlStatement (r :: Type -> Type) stmt bod | r -> stmt bod where Source #

Methods

break :: MS (r stmt) Source #

continue :: MS (r stmt) Source #

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

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

ifCond :: [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #

String of if-else statements. Arguments: List of predicates and bodies (if this then that), Body for else branch

switch :: SValue r -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #

ifExists :: SValue r -> MS (r bod) -> MS (r bod) -> MS (r stmt) Source #

for :: MS (r stmt) -> SValue r -> MS (r stmt) -> MS (r bod) -> MS (r stmt) Source #

forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MS (r bod) -> MS (r stmt) Source #

forEach :: SVariable r -> SValue r -> MS (r bod) -> MS (r stmt) Source #

while :: SValue r -> MS (r bod) -> MS (r stmt) Source #

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

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

Instances

Instances details
ControlStatement CodeInfoOO () () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ControlStatement CSharpCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ControlStatement CppHdrCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ControlStatement CppSrcCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ControlStatement JavaCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ControlStatement PythonCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ControlStatement SwiftCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ControlStatement JuliaCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ControlStatement MatlabCode (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ControlStatement r stmt bod => ControlStatement (LoggingFor r) stmt bod Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

break :: MS (LoggingFor r stmt) Source #

continue :: MS (LoggingFor r stmt) Source #

returnStmt :: SValue (LoggingFor r) -> MS (LoggingFor r stmt) Source #

throw :: Label -> MS (LoggingFor r stmt) Source #

ifCond :: [(SValue (LoggingFor r), MS (LoggingFor r bod))] -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

switch :: SValue (LoggingFor r) -> [(SValue (LoggingFor r), MS (LoggingFor r bod))] -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

ifExists :: SValue (LoggingFor r) -> MS (LoggingFor r bod) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

for :: MS (LoggingFor r stmt) -> SValue (LoggingFor r) -> MS (LoggingFor r stmt) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

forRange :: SVariable (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) -> SValue (LoggingFor r) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

forEach :: SVariable (LoggingFor r) -> SValue (LoggingFor r) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

while :: SValue (LoggingFor r) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

tryCatch :: MS (LoggingFor r bod) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

assert :: SValue (LoggingFor r) -> SValue (LoggingFor r) -> MS (LoggingFor r stmt) Source #

Pair p => ControlStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

break :: MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

continue :: MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

returnStmt :: SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

throw :: Label -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

ifCond :: [(SValue (p CppSrcCode CppHdrCode), MS (p CppSrcCode CppHdrCode Body))] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

switch :: SValue (p CppSrcCode CppHdrCode) -> [(SValue (p CppSrcCode CppHdrCode), MS (p CppSrcCode CppHdrCode Body))] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

ifExists :: SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

for :: MS (p CppSrcCode CppHdrCode (Doc, Terminator)) -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

forRange :: SVariable (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

forEach :: SVariable (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

while :: SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

tryCatch :: MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

assert :: SValue (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> MS (p CppSrcCode CppHdrCode (Doc, Terminator)) Source #

ifNoElse :: (BodySym r bod block, ControlStatement r stmt bod) => [(SValue r, MS (r bod))] -> MS (r stmt) Source #

switchAsIf :: (ControlStatement r stmt bod, Comparison r) => SValue r -> [(SValue r, MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #

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

A class for representing Visibility, of a class member, i.e. whether it is public or private.

Methods

private :: r vis Source #

public :: r vis Source #

Instances

Instances details
VisibilitySym CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

VisibilitySym CSharpCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VisibilitySym JavaCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VisibilitySym PythonCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VisibilitySym SwiftCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VisibilitySym JuliaCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VisibilitySym MatlabCode Doc Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VisibilitySym CppHdrCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VisibilitySym CppSrcCode (Doc, VisibilityTag) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VisibilitySym r vis => VisibilitySym (LoggingFor r :: Type -> Type) (vis :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class VariableSym r => ParameterSym (r :: Type -> Type) where Source #

A class for representing function/method parameters.

Methods

param :: SVariable r -> MS (r ParamData) Source #

pointerParam :: SVariable r -> MS (r ParamData) Source #

A parameter that is an "alias" type, e.g. a C++ reference. This is a minor hack, to get around us not having/wanting "alias types" in GOOL.

Instances

Instances details
ParameterSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ParameterSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ParameterSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParameterSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParameterSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ParameterSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ParameterSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ParameterSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ParameterSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ParameterSym r => ParameterSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (ParameterSym r, VisibilitySym r vis) => MethodSym (r :: Type -> Type) vis mthd bod | r -> mthd bod where Source #

A class for representing functions/methods. Usually MethodData is used for the representation.

Methods

docMain :: MS (r bod) -> MS (r mthd) Source #

function :: Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #

mainFunction :: MS (r bod) -> MS (r mthd) Source #

docFunc :: String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd) Source #

inOutFunc :: Label -> r vis -> InOutFunc r mthd bod Source #

docInOutFunc :: Label -> r vis -> DocInOutFunc r mthd bod Source #

Instances

Instances details
MethodSym CodeInfoOO () () () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

MethodSym CSharpCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MethodSym JavaCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MethodSym PythonCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MethodSym SwiftCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MethodSym JuliaCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MethodSym MatlabCode Doc MethodData Body Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

MethodSym r vis mthd bod => MethodSym (LoggingFor r) vis mthd bod Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

docMain :: MS (LoggingFor r bod) -> MS (LoggingFor r mthd) Source #

function :: Label -> LoggingFor r vis -> VS (LoggingFor r TypeData) -> [MS (LoggingFor r ParamData)] -> MS (LoggingFor r bod) -> MS (LoggingFor r mthd) Source #

mainFunction :: MS (LoggingFor r bod) -> MS (LoggingFor r mthd) Source #

docFunc :: String -> [String] -> Maybe String -> MS (LoggingFor r mthd) -> MS (LoggingFor r mthd) Source #

inOutFunc :: Label -> LoggingFor r vis -> InOutFunc (LoggingFor r) mthd bod Source #

docInOutFunc :: Label -> LoggingFor r vis -> DocInOutFunc (LoggingFor r) mthd bod Source #

class TypeSym r => BinderSym (r :: Type -> Type) where Source #

A class for representing a binder, i.e. the binding of a variable name to a type, scope, etc. As of July 2026, integration of this typeclass is still WIP, blocked by issues with our variable map.

Methods

binder :: Label -> VS (r TypeData) -> VSBinder r Source #

Instances

Instances details
BinderSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

BinderSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BinderSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BinderSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BinderSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BinderSym JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BinderSym MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BinderSym r => BinderSym (LoggingFor r) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class BinderSym r => BinderElim (r :: Type -> Type) where Source #

Instances

Instances details
BinderElim CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BinderElim CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderElim CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderElim JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BinderElim PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BinderElim SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BinderElim JuliaCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BinderElim MatlabCode Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer