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 NamedArgs (r :: k -> Type) (var :: k) (val :: k) = [(VS (r var), VS (r val))] Source #

type MixedCall (r :: k -> Type) (var :: k) (val :: k) (typ :: k) = Label -> VS (r typ) -> [VS (r val)] -> NamedArgs r var val -> VS (r val) Source #

type MixedCtorCall (r :: k -> Type) (var :: k) (val :: k) (typ :: k) = VS (r typ) -> [VS (r val)] -> NamedArgs r var val -> VS (r val) Source #

type PosCall (r :: k -> Type) (val :: k) (typ :: k) = Label -> VS (r typ) -> [VS (r val)] -> VS (r val) Source #

type PosCtorCall (r :: k -> Type) (val :: k) (typ :: k) = VS (r typ) -> [VS (r val)] -> VS (r val) Source #

type InOutCall (r :: k -> Type) (stmt :: k) (var :: k) (val :: k) = Label -> [VS (r val)] -> [VS (r var)] -> [VS (r var)] -> MS (r stmt) Source #

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

type DocInOutFunc (r :: k -> Type) (mthd :: k) (bod :: k) (var :: k) = String -> [(String, VS (r var))] -> [(String, VS (r var))] -> [(String, VS (r var))] -> 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 Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BlockSym CppHdrCode Block Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockSym CppSrcCode Block Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BlockSym JavaCode Block Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BlockSym PythonCode Block Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BlockSym SwiftCode Block Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BlockSym JuliaCode Block Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BlockSym MatlabCode Block Statement 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 Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Class for representing a type.

Methods

bool :: VS (r typ) Source #

int :: VS (r typ) Source #

float :: VS (r typ) Source #

double :: VS (r typ) Source #

char :: VS (r typ) Source #

string :: VS (r typ) Source #

infile :: VS (r typ) Source #

outfile :: VS (r typ) Source #

referenceType :: VS (r typ) -> VS (r typ) Source #

listType :: VS (r typ) -> VS (r typ) Source #

setType :: VS (r typ) -> VS (r typ) Source #

arrayType :: VS (r typ) -> VS (r typ) Source #

innerType :: VS (r typ) -> VS (r typ) Source #

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

void :: VS (r typ) Source #

Instances

Instances details
TypeSym CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

TypeSym CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

TypeSym CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeSym CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeSym JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

TypeSym PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

TypeSym SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

TypeSym JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

TypeSym MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

TypeSym r typ => TypeSym (LoggingFor r :: Type -> Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

bool :: VS (LoggingFor r typ) Source #

int :: VS (LoggingFor r typ) Source #

float :: VS (LoggingFor r typ) Source #

double :: VS (LoggingFor r typ) Source #

char :: VS (LoggingFor r typ) Source #

string :: VS (LoggingFor r typ) Source #

infile :: VS (LoggingFor r typ) Source #

outfile :: VS (LoggingFor r typ) Source #

referenceType :: VS (LoggingFor r typ) -> VS (LoggingFor r typ) Source #

listType :: VS (LoggingFor r typ) -> VS (LoggingFor r typ) Source #

setType :: VS (LoggingFor r typ) -> VS (LoggingFor r typ) Source #

arrayType :: VS (LoggingFor r typ) -> VS (LoggingFor r typ) Source #

innerType :: VS (LoggingFor r typ) -> VS (LoggingFor r typ) Source #

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

void :: VS (LoggingFor r typ) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

getCodeType :: r typ -> CodeType Source #

Instances

Instances details
TypeElim CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

TypeElim CSharpCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

TypeElim CppHdrCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeElim CppSrcCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

TypeElim JavaCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

TypeElim PythonCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

TypeElim SwiftCode TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

TypeElim JuliaCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

TypeElim MatlabCode TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

TypeElim r typ => TypeElim (LoggingFor r :: Type -> Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => TypeElim (p CppSrcCode CppHdrCode :: Type -> Type) TypeData 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 typ`

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

Class for representing variables.

Methods

var :: Label -> VS (r typ) -> VS (r var) Source #

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

constant :: Label -> VS (r typ) -> VS (r var) Source #

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

extVar :: Library -> Label -> VS (r typ) -> VS (r var) 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

Methods

var :: Label -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

constant :: Label -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

extVar :: Library -> Label -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

VariableSym CSharpCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableSym CppHdrCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableSym CppSrcCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableSym JavaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableSym PythonCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableSym SwiftCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableSym JuliaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableSym MatlabCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableSym r var typ => VariableSym (LoggingFor r :: Type -> Type) (var :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

var :: Label -> VS (LoggingFor r typ) -> VS (LoggingFor r var) Source #

constant :: Label -> VS (LoggingFor r typ) -> VS (LoggingFor r var) Source #

extVar :: Library -> Label -> VS (LoggingFor r typ) -> VS (LoggingFor r var) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ScopeSym (r :: k -> Type) (scope :: k) | r -> scope 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.

Methods

global :: r scope Source #

mainFn :: r scope Source #

local :: r scope Source #

Instances

Instances details
ScopeSym CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ScopeSym CSharpCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ScopeSym CppHdrCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeSym CppSrcCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ScopeSym JavaCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ScopeSym PythonCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ScopeSym SwiftCode ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ScopeSym JuliaCode ScopeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ScopeSym MatlabCode ScopeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ScopeSym r scope => ScopeSym (LoggingFor r :: Type -> Type) (scope :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

global :: LoggingFor r scope Source #

mainFn :: LoggingFor r scope Source #

local :: LoggingFor r scope Source #

Pair p => ScopeSym (p CppSrcCode CppHdrCode :: Type -> Type) ScopeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

convScope :: forall {k} r (scope :: k). ScopeSym r scope => ScopeData -> r scope Source #

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

Methods

variableName :: r var -> String Source #

variableType :: r var -> r typ Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

VariableElim CSharpCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableElim CppHdrCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableElim CppSrcCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableElim JavaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableElim PythonCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableElim SwiftCode Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableElim JuliaCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableElim MatlabCode Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableElim r var typ => VariableElim (LoggingFor r :: Type -> Type) (var :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

listOf :: forall {k} r (typ :: k) (var :: k). (TypeSym r typ, VariableSym r var typ) => Label -> VS (r typ) -> VS (r var) Source #

listVar :: forall {k} r (typ :: k) (var :: k). (TypeSym r typ, VariableSym r var typ) => Label -> VS (r typ) -> VS (r var) Source #

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

Class for representing a value.

Methods

valueType :: r val -> r typ Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

ValueSym CSharpCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueSym CppHdrCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueSym CppSrcCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueSym JavaCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueSym PythonCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueSym SwiftCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueSym JuliaCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueSym MatlabCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ValueSym r val typ => ValueSym (LoggingFor r :: Type -> Type) (val :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

valueType :: LoggingFor r val -> LoggingFor r typ Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Instances

Instances details
Argument CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

pointerArg :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

Argument CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Argument CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Argument CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Argument JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Argument PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Argument SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Argument JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Argument MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Argument r val => Argument (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pointerArg :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

litTrue :: VS (r val) Source #

litFalse :: VS (r val) Source #

litChar :: Char -> VS (r val) Source #

litDouble :: Double -> VS (r val) Source #

litFloat :: Float -> VS (r val) Source #

litInt :: Integer -> VS (r val) Source #

litString :: String -> VS (r val) Source #

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

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

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

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Literal CSharpCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Literal CppHdrCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Literal CppSrcCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Literal JavaCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Literal PythonCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Literal SwiftCode Value TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Literal JuliaCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Literal MatlabCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Literal r val typ => Literal (LoggingFor r :: Type -> Type) (val :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

litTrue :: VS (LoggingFor r val) Source #

litFalse :: VS (LoggingFor r val) Source #

litChar :: Char -> VS (LoggingFor r val) Source #

litDouble :: Double -> VS (LoggingFor r val) Source #

litFloat :: Float -> VS (LoggingFor r val) Source #

litInt :: Integer -> VS (LoggingFor r val) Source #

litString :: String -> VS (LoggingFor r val) Source #

litArray :: VS (LoggingFor r typ) -> [VS (LoggingFor r val)] -> VS (LoggingFor r val) Source #

litList :: VS (LoggingFor r typ) -> [VS (LoggingFor r val)] -> VS (LoggingFor r val) Source #

litSet :: VS (LoggingFor r typ) -> [VS (LoggingFor r val)] -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

litZero :: forall {k} r (val :: k) (typ :: k). (Literal r val typ, TypeElim r typ) => VS (r typ) -> VS (r val) Source #

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

Methods

pi :: VS (r val) Source #

Instances

Instances details
MathConstant CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

pi :: VS (CodeInfoOO ()) Source #

MathConstant CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MathConstant CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MathConstant CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MathConstant JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Methods

pi :: VS (JavaCode Value) Source #

MathConstant PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MathConstant SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Methods

pi :: VS (SwiftCode Value) Source #

MathConstant JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Methods

pi :: VS (JuliaCode Value) Source #

MathConstant MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

MathConstant r val => MathConstant (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pi :: VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

valueOf :: VS (r var) -> VS (r val) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

valueOf :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

VariableValue CSharpCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

VariableValue CppHdrCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableValue CppSrcCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

VariableValue JavaCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

VariableValue PythonCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

VariableValue SwiftCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

VariableValue JuliaCode Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

VariableValue MatlabCode Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

VariableValue r var val => VariableValue (LoggingFor r :: Type -> Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

valueOf :: VS (LoggingFor r var) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

arg :: Integer -> VS (r val) Source #

argsList :: VS (r val) Source #

argExists :: Integer -> VS (r val) Source #

Instances

Instances details
CommandLineArgs CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

CommandLineArgs CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

CommandLineArgs CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommandLineArgs CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommandLineArgs JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

CommandLineArgs PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

CommandLineArgs SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

CommandLineArgs JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

CommandLineArgs MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

CommandLineArgs r val => CommandLineArgs (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

(#~) :: VS (r val) -> VS (r val) infixl 8 Source #

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

(#|) :: VS (r val) -> VS (r val) infixl 7 Source #

(#+) :: VS (r val) -> VS (r val) -> VS (r val) infixl 5 Source #

(#-) :: VS (r val) -> VS (r val) -> VS (r val) infixl 5 Source #

(#*) :: VS (r val) -> VS (r val) -> VS (r val) infixl 6 Source #

(#/) :: VS (r val) -> VS (r val) -> VS (r val) infixl 6 Source #

(#%) :: VS (r val) -> VS (r val) -> VS (r val) infixl 6 Source #

(#^) :: VS (r val) -> VS (r val) -> VS (r val) infixl 7 Source #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Instances

Instances details
NumericExpression CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

NumericExpression CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Methods

(#~) :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#/^) :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#|) :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#+) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#-) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#*) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#/) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#%) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

(#^) :: VS (CSharpCode Value) -> VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

log :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

ln :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

exp :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

sin :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

cos :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

tan :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

csc :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

sec :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

cot :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

arcsin :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

arccos :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

arctan :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

floor :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

ceil :: VS (CSharpCode Value) -> VS (CSharpCode Value) Source #

NumericExpression CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

(#~) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#/^) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#|) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#+) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#-) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#*) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#/) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#%) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

(#^) :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

log :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

ln :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

exp :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

sin :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

cos :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

tan :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

csc :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

sec :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

cot :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

arcsin :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

arccos :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

arctan :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

floor :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

ceil :: VS (CppHdrCode Value) -> VS (CppHdrCode Value) Source #

NumericExpression CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

(#~) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#/^) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#|) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#+) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#-) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#*) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#/) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#%) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

(#^) :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

log :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

ln :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

exp :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

sin :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

cos :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

tan :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

csc :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

sec :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

cot :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

arcsin :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

arccos :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

arctan :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

floor :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

ceil :: VS (CppSrcCode Value) -> VS (CppSrcCode Value) Source #

NumericExpression JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

NumericExpression PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Methods

(#~) :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#/^) :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#|) :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#+) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#-) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#*) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#/) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#%) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

(#^) :: VS (PythonCode Value) -> VS (PythonCode Value) -> VS (PythonCode Value) Source #

log :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

ln :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

exp :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

sin :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

cos :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

tan :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

csc :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

sec :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

cot :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

arcsin :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

arccos :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

arctan :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

floor :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

ceil :: VS (PythonCode Value) -> VS (PythonCode Value) Source #

NumericExpression SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Methods

(#~) :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#/^) :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#|) :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#+) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#-) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#*) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#/) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#%) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

(#^) :: VS (SwiftCode Value) -> VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

log :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

ln :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

exp :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

sin :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

cos :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

tan :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

csc :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

sec :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

cot :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

arcsin :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

arccos :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

arctan :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

floor :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

ceil :: VS (SwiftCode Value) -> VS (SwiftCode Value) Source #

NumericExpression JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Methods

(#~) :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#/^) :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#|) :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#+) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#-) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#*) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#/) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#%) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

(#^) :: VS (JuliaCode Value) -> VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

log :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

ln :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

exp :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

sin :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

cos :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

tan :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

csc :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

sec :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

cot :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

arcsin :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

arccos :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

arctan :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

floor :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

ceil :: VS (JuliaCode Value) -> VS (JuliaCode Value) Source #

NumericExpression MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Methods

(#~) :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#/^) :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#|) :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#+) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#-) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#*) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#/) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#%) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

(#^) :: VS (MatlabCode Value) -> VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

log :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

ln :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

exp :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

sin :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

cos :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

tan :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

csc :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

sec :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

cot :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

arcsin :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

arccos :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

arctan :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

floor :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

ceil :: VS (MatlabCode Value) -> VS (MatlabCode Value) Source #

NumericExpression r val => NumericExpression (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(#~) :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#/^) :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#|) :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#+) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

(#*) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#/) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#%) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(#^) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

log :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

ln :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

exp :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

sin :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

cos :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

tan :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

csc :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

sec :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

cot :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

arcsin :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

arccos :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

arctan :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

floor :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

ceil :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

(#~) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

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

(#|) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#+) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#-) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#*) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#/) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#%) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

(#^) :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

log :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

ln :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

exp :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

sin :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

cos :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

tan :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

csc :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

sec :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

cot :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

arcsin :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

arccos :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

arctan :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

floor :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

ceil :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) Source #

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

Methods

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

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

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

Instances

Instances details
BooleanExpression CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

(?!) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?&&) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?||) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

BooleanExpression CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BooleanExpression CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BooleanExpression CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BooleanExpression JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BooleanExpression PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BooleanExpression SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BooleanExpression JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BooleanExpression MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BooleanExpression r val => BooleanExpression (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(?!) :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?&&) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?||) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

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

(?>) :: VS (r val) -> VS (r val) -> VS (r val) infixl 4 Source #

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

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

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

Instances

Instances details
Comparison CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Methods

(?<) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?<=) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?>) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?>=) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?==) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

(?!=) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

Comparison CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Comparison CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Comparison CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Comparison JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Comparison PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Comparison SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Comparison JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Comparison MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Comparison r val => Comparison (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(?<) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?<=) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?>) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?>=) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?==) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

(?!=) :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

A class for representing values that can include expressions

Methods

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

funcAppMixedArgs :: MixedCall r var val typ Source #

extFuncAppMixedArgs :: Library -> MixedCall r var val typ Source #

libFuncAppMixedArgs :: Library -> MixedCall r var val typ Source #

lambda :: [VS (r binder)] -> VS (r val) -> VS (r val) Source #

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

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

ValueExpression CSharpCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueExpression CppHdrCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueExpression CppSrcCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueExpression JavaCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueExpression PythonCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueExpression SwiftCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueExpression JuliaCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueExpression MatlabCode Variable Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ValueExpression r var val binder typ => ValueExpression (LoggingFor r :: Type -> Type) (var :: Type) (val :: Type) (binder :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inlineIf :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

funcAppMixedArgs :: MixedCall (LoggingFor r) var val typ Source #

extFuncAppMixedArgs :: Library -> MixedCall (LoggingFor r) var val typ Source #

libFuncAppMixedArgs :: Library -> MixedCall (LoggingFor r) var val typ Source #

lambda :: [VS (LoggingFor r binder)] -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

notNull :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

funcApp :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => PosCall r val typ Source #

funcAppNamedArgs :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => Label -> VS (r typ) -> NamedArgs r var val -> VS (r val) Source #

extFuncApp :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => Library -> PosCall r val typ Source #

libFuncApp :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => Library -> PosCall r val typ Source #

exists :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => VS (r val) -> VS (r val) Source #

class IndexTranslator (r :: k -> Type) (val :: k) | r -> val 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 :: VS (r val) -> VS (r val) Source #

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

indexToInt :: VS (r val) -> VS (r val) 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 Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

IndexTranslator CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

IndexTranslator CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

IndexTranslator JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

IndexTranslator PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

IndexTranslator SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

IndexTranslator JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

IndexTranslator MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

IndexTranslator r val => IndexTranslator (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

intToIndex :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

indexToInt :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

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

Methods

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

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

maybeDeref :: VS (r val) -> VS (r val) 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 Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Reference CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Reference CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Reference JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Reference PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Reference SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Reference JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Reference MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Reference r val => Reference (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

makeRef :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

maybeDeref :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

arrayElem :: VS (r val) -> VS (r val) -> VS (r var) Source #

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

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

Given an array, return its length

arrayCopy :: VS (r val) -> VS (r val) 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 Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Array CppHdrCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Array CppSrcCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Array JavaCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Array PythonCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Array SwiftCode Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Array JuliaCode Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Array MatlabCode Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Array r var val => Array (LoggingFor r :: Type -> Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

arrayElem :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r var) Source #

arrayLength :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

arrayCopy :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Finds the size of a list. Arguments are: List

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

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

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

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

Instances

Instances details
List CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

List CSharpCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

List CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

List CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

List JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

List PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

List SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

List JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

List MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

List r val => List (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

listSize :: VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

listAccess :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

indexOf :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

listAdd :: VS (r val) -> VS (r val) -> VS (r val) -> MS (r stmt) Source #

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

listAppend :: VS (r val) -> VS (r val) -> MS (r stmt) Source #

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

listSet :: VS (r val) -> VS (r val) -> VS (r val) -> MS (r stmt) Source #

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

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

listAdd :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

listAppend :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

listSet :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

ListStatement CSharpCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ListStatement CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ListStatement CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ListStatement JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ListStatement PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ListStatement SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ListStatement JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ListStatement MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

listAdd :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

listAppend :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

listSet :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Checks membership Arguments are: Set, val

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

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

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

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

setUnion :: VS (r val) -> VS (r val) -> VS (r val) 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 Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Set CppHdrCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Set CppSrcCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Set JavaCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Set PythonCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Set SwiftCode Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Set JuliaCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

Set MatlabCode Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

Set r val => Set (LoggingFor r :: Type -> Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

contains :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

setAdd :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

setRemove :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

setUnion :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Vector operations for languages with native vector support (e.g. MATLAB, Julia). Expression-based: every operation takes and returns 'VS val's, 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.

Methods

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

The type of a vector with the given element type. For most languages it will be listType

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

A vector literal with the given element type and elements. For most languages it will be litList.

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

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

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

Adds two vectors elementwise. Arguments are: Vector, Vector

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

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

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

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

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

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

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

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

Instances

Instances details
NativeVector JuliaCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

NativeVector MatlabCode Value TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

NativeVector lang val typ => NativeVector (LoggingFor lang :: Type -> Type) (val :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

vecType :: VS (LoggingFor lang typ) -> VS (LoggingFor lang typ) Source #

litVec :: VS (LoggingFor lang typ) -> [VS (LoggingFor lang val)] -> VS (LoggingFor lang val) Source #

vecScale :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

vecAdd :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

vecIndex :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

vecDot :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

vecMag :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

vecUnit :: VS (LoggingFor lang val) -> VS (LoggingFor lang val) Source #

class InternalList (r :: k -> Type) (block :: k) (var :: k) (val :: k) | r -> block var val where Source #

Methods

listSlice' :: Maybe (VS (r val)) -> Maybe (VS (r val)) -> Maybe (VS (r val)) -> VS (r var) -> VS (r val) -> MS (r block) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

listSlice' :: Maybe (VS (CodeInfoOO ())) -> Maybe (VS (CodeInfoOO ())) -> Maybe (VS (CodeInfoOO ())) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

InternalList CSharpCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalList CppHdrCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalList CppSrcCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalList JavaCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalList PythonCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalList SwiftCode Block Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

InternalList JuliaCode Block Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

InternalList MatlabCode Block Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

InternalList r block var val => InternalList (LoggingFor r :: Type -> Type) (block :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

listSlice' :: Maybe (VS (LoggingFor r val)) -> Maybe (VS (LoggingFor r val)) -> Maybe (VS (LoggingFor r val)) -> VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r block) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

listSlice :: forall {k} r (block :: k) (var :: k) (val :: k). InternalList r block var val => VS (r var) -> VS (r val) -> Maybe (VS (r val)) -> Maybe (VS (r val)) -> Maybe (VS (r val)) -> 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)

listIndexExists :: forall {k} r (val :: k). (List r val, Comparison r val) => VS (r val) -> VS (r val) -> VS (r val) Source #

at :: forall {k} r (val :: k). List r val => VS (r val) -> VS (r val) -> VS (r val) 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 Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

EmptyStatement CppHdrCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

EmptyStatement CppSrcCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

EmptyStatement JavaCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

EmptyStatement PythonCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

EmptyStatement SwiftCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

EmptyStatement JuliaCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

EmptyStatement MatlabCode Statement 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) Statement 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 Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MultiStatement CppHdrCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MultiStatement CppSrcCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

MultiStatement JavaCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MultiStatement PythonCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MultiStatement SwiftCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MultiStatement JuliaCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MultiStatement MatlabCode Statement 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) Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

valStmt :: VS (r val) -> MS (r stmt) Source #

Converts a value to statement

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

valStmt :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

ValueStatement CSharpCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ValueStatement CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueStatement CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ValueStatement JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ValueStatement PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ValueStatement SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ValueStatement JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ValueStatement MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

(&-=) :: VS (r var) -> VS (r val) -> MS (r stmt) infixl 1 Source #

(&+=) :: VS (r var) -> VS (r val) -> MS (r stmt) infixl 1 Source #

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

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

assign :: VS (r var) -> VS (r val) -> MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

(&-=) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

(&+=) :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

(&++) :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

(&--) :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

assign :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

AssignStatement CSharpCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

AssignStatement CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AssignStatement CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AssignStatement JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

AssignStatement PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

AssignStatement SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

AssignStatement JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

AssignStatement MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, AssignStatement r stmt var val, FileHandling r stmt var val, PrintFile r stmt val, TypeSym r typ, VariableSym r var typ, VariableValue r var val, VariableElim r var typ, Literal r val typ) => AssignStatement (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(&-=) :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

(&+=) :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

(&++) :: VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

(&--) :: VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

assign :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

(&=) :: forall {k} r (stmt :: k) (var :: k) (val :: k). AssignStatement r stmt var val => VS (r var) -> VS (r val) -> MS (r stmt) infixr 1 Source #

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

Methods

varDec :: VS (r var) -> r scope -> MS (r stmt) Source #

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

varDecDef :: VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #

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

listDec :: Integer -> VS (r var) -> r scope -> 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 :: VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #

setDec :: VS (r var) -> r scope -> MS (r stmt) Source #

setDecDef :: VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #

arrayDec :: Integer -> VS (r val) -> VS (r var) -> r scope -> 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 :: VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #

constDecDef :: VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #

funcDecDef :: VS (r var) -> r scope -> [VS (r var)] -> MS (r bod) -> MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

DeclStatement CSharpCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

DeclStatement CppHdrCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

DeclStatement CppSrcCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

DeclStatement JavaCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

DeclStatement PythonCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

DeclStatement SwiftCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

DeclStatement JuliaCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

DeclStatement MatlabCode Body Statement Variable ScopeData Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, DeclStatement r bod stmt var scope val, FileHandling r stmt var val, PrintFile r stmt val, TypeSym r typ, VariableSym r var typ, VariableValue r var val, VariableElim r var typ, Literal r val typ) => DeclStatement (LoggingFor r :: Type -> Type) (bod :: Type) (stmt :: Type) (var :: Type) (scope :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

varDec :: VS (LoggingFor r var) -> LoggingFor r scope -> MS (LoggingFor r stmt) Source #

varDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

listDec :: Integer -> VS (LoggingFor r var) -> LoggingFor r scope -> MS (LoggingFor r stmt) Source #

listDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> [VS (LoggingFor r val)] -> MS (LoggingFor r stmt) Source #

setDec :: VS (LoggingFor r var) -> LoggingFor r scope -> MS (LoggingFor r stmt) Source #

setDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

arrayDec :: Integer -> VS (LoggingFor r val) -> VS (LoggingFor r var) -> LoggingFor r scope -> MS (LoggingFor r stmt) Source #

arrayDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> [VS (LoggingFor r val)] -> MS (LoggingFor r stmt) Source #

constDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

funcDecDef :: VS (LoggingFor r var) -> LoggingFor r scope -> [VS (LoggingFor r var)] -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

varDec :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode Statement) Source #

varDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) Source #

listDec :: Integer -> VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode Statement) Source #

listDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> [VS (p CppSrcCode CppHdrCode Value)] -> MS (p CppSrcCode CppHdrCode Statement) Source #

setDec :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode Statement) Source #

setDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) Source #

arrayDec :: Integer -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> MS (p CppSrcCode CppHdrCode Statement) Source #

arrayDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> [VS (p CppSrcCode CppHdrCode Value)] -> MS (p CppSrcCode CppHdrCode Statement) Source #

constDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) Source #

funcDecDef :: VS (p CppSrcCode CppHdrCode Variable) -> p CppSrcCode CppHdrCode ScopeData -> [VS (p CppSrcCode CppHdrCode Variable)] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

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

Methods

print :: VS (r val) -> MS (r stmt) Source #

printLn :: VS (r val) -> 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 Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

PrintConsole CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintConsole CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintConsole JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

PrintConsole PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

PrintConsole SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

PrintConsole JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

PrintConsole MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

print :: VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

printLn :: VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

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

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

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

getInput :: VS (r var) -> MS (r stmt) Source #

discardInput :: MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

ReadConsole CSharpCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ReadConsole CppHdrCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadConsole CppSrcCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadConsole JavaCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ReadConsole PythonCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ReadConsole SwiftCode Statement Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ReadConsole JuliaCode Statement Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ReadConsole MatlabCode Statement Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, FileHandling r stmt var val, PrintFile r stmt val, ReadConsole r stmt var, TypeSym r typ, VariableSym r var typ, VariableValue r var val, VariableElim r var typ, Literal r val typ) => ReadConsole (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

getInput :: VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

discardInput :: MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

openFileR :: VS (r var) -> VS (r val) -> MS (r stmt) Source #

openFileW :: VS (r var) -> VS (r val) -> MS (r stmt) Source #

openFileA :: VS (r var) -> VS (r val) -> MS (r stmt) Source #

closeFile :: VS (r val) -> MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

FileHandling CSharpCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FileHandling CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileHandling CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileHandling JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FileHandling PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FileHandling SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FileHandling JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

FileHandling MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

FileHandling r stmt var val => FileHandling (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

openFileR :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

openFileW :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

openFileA :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

closeFile :: VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

printFile :: VS (r val) -> VS (r val) -> MS (r stmt) Source #

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

printFileLn :: VS (r val) -> VS (r val) -> MS (r stmt) Source #

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

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

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

PrintFile CSharpCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

PrintFile CppHdrCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintFile CppSrcCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

PrintFile JavaCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

PrintFile PythonCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

PrintFile SwiftCode Statement Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

PrintFile JuliaCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

PrintFile MatlabCode Statement Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

printFile :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

printFileLn :: VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

printFileStr :: VS (LoggingFor r val) -> String -> MS (LoggingFor r stmt) Source #

printFileStrLn :: VS (LoggingFor r val) -> String -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

getFileInput :: VS (r val) -> VS (r var) -> MS (r stmt) Source #

discardFileInput :: VS (r val) -> MS (r stmt) Source #

getFileInputLine :: VS (r val) -> VS (r var) -> MS (r stmt) Source #

discardFileLine :: VS (r val) -> MS (r stmt) Source #

getFileInputAll :: VS (r val) -> VS (r var) -> MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

ReadFile CSharpCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ReadFile CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadFile CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ReadFile JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ReadFile PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ReadFile SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ReadFile JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ReadFile MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, FileHandling r stmt var val, PrintFile r stmt val, ReadFile r stmt var val, TypeSym r typ, VariableSym r var typ, VariableValue r var val, VariableElim r var typ, Literal r val typ) => ReadFile (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

getFileInput :: VS (LoggingFor r val) -> VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

discardFileInput :: VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

getFileInputLine :: VS (LoggingFor r val) -> VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

discardFileLine :: VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

getFileInputAll :: VS (LoggingFor r val) -> VS (LoggingFor r var) -> MS (LoggingFor r stmt) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

stringSplit :: Char -> VS (r var) -> VS (r val) -> 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 :: [VS (r var)] -> VS (r val) -> MS (r stmt) Source #

stringListLists :: [VS (r var)] -> VS (r val) -> 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 Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StringStatement CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StringStatement CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StringStatement JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StringStatement PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StringStatement SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

StringStatement JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

StringStatement MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

(MultiStatement r stmt, StringStatement r stmt var val, FileHandling r stmt var val, PrintFile r stmt val, TypeSym r typ, VariableSym r var typ, VariableValue r var val, VariableElim r var typ, Literal r val typ) => StringStatement (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

stringSplit :: Char -> VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r stmt) Source #

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

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

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

inOutCall :: InOutCall r stmt var val Source #

extInOutCall :: Library -> InOutCall r stmt var val Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

FuncAppStatement CSharpCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FuncAppStatement CppHdrCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FuncAppStatement CppSrcCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FuncAppStatement JavaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FuncAppStatement PythonCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FuncAppStatement SwiftCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FuncAppStatement JuliaCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

FuncAppStatement MatlabCode Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

FuncAppStatement r stmt var val => FuncAppStatement (LoggingFor r :: Type -> Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inOutCall :: InOutCall (LoggingFor r) stmt var val Source #

extInOutCall :: Library -> InOutCall (LoggingFor r) stmt var val Source #

Pair p => FuncAppStatement (p CppSrcCode CppHdrCode :: Type -> Type) Statement Variable Value 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 Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

CommentStatement CppHdrCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommentStatement CppSrcCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

CommentStatement JavaCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

CommentStatement PythonCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

CommentStatement SwiftCode Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

CommentStatement JuliaCode Statement Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

CommentStatement MatlabCode Statement 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) Statement Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

break :: MS (r stmt) Source #

continue :: MS (r stmt) Source #

returnStmt :: VS (r val) -> MS (r stmt) Source #

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

ifCond :: [(VS (r val), 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 :: VS (r val) -> [(VS (r val), MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #

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

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

forRange :: VS (r var) -> VS (r val) -> VS (r val) -> VS (r val) -> MS (r bod) -> MS (r stmt) Source #

forEach :: VS (r var) -> VS (r val) -> MS (r bod) -> MS (r stmt) Source #

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

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

assert :: VS (r val) -> VS (r val) -> MS (r stmt) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

break :: MS (CodeInfoOO ()) Source #

continue :: MS (CodeInfoOO ()) Source #

returnStmt :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

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

ifCond :: [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))] -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

switch :: VS (CodeInfoOO ()) -> [(VS (CodeInfoOO ()), MS (CodeInfoOO ()))] -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

ifExists :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

for :: MS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

forRange :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

forEach :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

while :: VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

tryCatch :: MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

assert :: VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) -> MS (CodeInfoOO ()) Source #

ControlStatement CSharpCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ControlStatement CppHdrCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ControlStatement CppSrcCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ControlStatement JavaCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ControlStatement PythonCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ControlStatement SwiftCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ControlStatement JuliaCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ControlStatement MatlabCode Body Statement Variable Value Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ControlStatement r bod stmt var val => ControlStatement (LoggingFor r :: Type -> Type) (bod :: Type) (stmt :: Type) (var :: Type) (val :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

break :: MS (LoggingFor r stmt) Source #

continue :: MS (LoggingFor r stmt) Source #

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

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

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

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

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

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

forRange :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> VS (LoggingFor r val) -> VS (LoggingFor r val) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

forEach :: VS (LoggingFor r var) -> VS (LoggingFor r val) -> MS (LoggingFor r bod) -> MS (LoggingFor r stmt) Source #

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

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

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

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Methods

break :: MS (p CppSrcCode CppHdrCode Statement) Source #

continue :: MS (p CppSrcCode CppHdrCode Statement) Source #

returnStmt :: VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) Source #

throw :: Label -> MS (p CppSrcCode CppHdrCode Statement) Source #

ifCond :: [(VS (p CppSrcCode CppHdrCode Value), MS (p CppSrcCode CppHdrCode Body))] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

switch :: VS (p CppSrcCode CppHdrCode Value) -> [(VS (p CppSrcCode CppHdrCode Value), MS (p CppSrcCode CppHdrCode Body))] -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

ifExists :: VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

for :: MS (p CppSrcCode CppHdrCode Statement) -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

forRange :: VS (p CppSrcCode CppHdrCode Variable) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

forEach :: VS (p CppSrcCode CppHdrCode Variable) -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

while :: VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

tryCatch :: MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Body) -> MS (p CppSrcCode CppHdrCode Statement) Source #

assert :: VS (p CppSrcCode CppHdrCode Value) -> VS (p CppSrcCode CppHdrCode Value) -> MS (p CppSrcCode CppHdrCode Statement) Source #

ifNoElse :: forall {k} r (bod :: k) (block :: k) (stmt :: k) (var :: k) (val :: k). (BodySym r bod block, ControlStatement r bod stmt var val) => [(VS (r val), MS (r bod))] -> MS (r stmt) Source #

switchAsIf :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (val :: k). (ControlStatement r bod stmt var val, Comparison r val) => VS (r val) -> [(VS (r val), 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 ParameterSym (r :: k -> Type) (param :: k) (var :: k) | r -> param var where Source #

A class for representing function/method parameters.

Methods

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

pointerParam :: VS (r var) -> MS (r param) 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 ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ParameterSym CppHdrCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParameterSym CppSrcCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ParameterSym JavaCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ParameterSym PythonCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ParameterSym SwiftCode ParamData Variable Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ParameterSym JuliaCode ParamData Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ParameterSym MatlabCode ParamData Variable Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ParameterSym r param var => ParameterSym (LoggingFor r :: Type -> Type) (param :: Type) (var :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

pointerParam :: VS (LoggingFor r var) -> MS (LoggingFor r param) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class MethodSym (r :: k -> Type) (mthd :: k) (vis :: k) (param :: k) (bod :: k) (var :: k) (typ :: k) | r -> mthd vis param bod var typ 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 typ) -> [MS (r param)] -> 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 var Source #

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

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

MethodSym CSharpCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

MethodSym JavaCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

MethodSym PythonCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

MethodSym SwiftCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

MethodSym JuliaCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

MethodSym MatlabCode MethodData Doc ParamData Body Variable TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

MethodSym r mthd vis param bod var typ => MethodSym (LoggingFor r :: Type -> Type) (mthd :: Type) (vis :: Type) (param :: Type) (bod :: Type) (var :: Type) (typ :: Type) 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 typ) -> [MS (LoggingFor r param)] -> 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 var Source #

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

class BinderSym (r :: k -> Type) (binder :: k) (typ :: k) | r -> binder typ 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 typ) -> VS (r binder) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

binder :: Label -> VS (CodeInfoOO ()) -> VS (CodeInfoOO ()) Source #

BinderSym CSharpCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BinderSym CppHdrCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderSym CppSrcCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderSym JavaCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BinderSym PythonCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BinderSym SwiftCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BinderSym JuliaCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BinderSym MatlabCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

BinderSym r binder typ => BinderSym (LoggingFor r :: Type -> Type) (binder :: Type) (typ :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

binder :: Label -> VS (LoggingFor r typ) -> VS (LoggingFor r binder) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

binderName :: r binder -> String Source #

binderType :: r binder -> r typ Source #

Instances

Instances details
BinderElim CSharpCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

BinderElim CppHdrCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderElim CppSrcCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

BinderElim JavaCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

BinderElim PythonCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

BinderElim SwiftCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

BinderElim JuliaCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

BinderElim MatlabCode BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

convType :: forall {k} r (typ :: k). TypeSym r typ => CodeType -> VS (r typ) Source #