drasil-gool-0.1.1.0: A framework for code and document generation for scientific software - GOOL SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.GProc

Description

re-export smart constructors for external code writing

Synopsis

Documentation

type GSProgram a = GS (a (Program a)) Source #

type SFile a = FS (a (File a)) Source #

type MSBody a = MS (a (Body a)) Source #

type MSBlock a = MS (a (Block a)) Source #

type VSType a = VS (a TypeData) Source #

type SVariable a = VS (a (Variable a)) Source #

type SValue a = VS (a (Value a)) Source #

type VSFunction a = VS (a (Function a)) Source #

type MSStatement a = MS (a (Statement a)) Source #

type MSParameter a = MS (a (Parameter a)) Source #

type SMethod a = MS (a (Method a)) Source #

type FSModule a = FS (a (Module a)) Source #

type NamedArgs r = [(SVariable r, SValue r)] Source #

class (SharedProg r, ProgramSym r) => ProcProg r Source #

Instances

Instances details
ProcProg lang => ProcProg (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class FileSym r => ProgramSym r where Source #

Associated Types

type Program r Source #

Methods

prog :: Label -> Label -> [SFile r] -> GSProgram r Source #

Instances

Instances details
ProgramSym lang => ProgramSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Program (LoggingFor lang) Source #

Methods

prog :: Label -> Label -> [SFile (LoggingFor lang)] -> GSProgram (LoggingFor lang) Source #

class ModuleSym r => FileSym r where Source #

Associated Types

type File r Source #

Methods

fileDoc :: FSModule r -> SFile r Source #

docMod :: String -> String -> [String] -> String -> SFile r -> SFile r Source #

Instances

Instances details
FileSym lang => FileSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type File (LoggingFor lang) Source #

Methods

fileDoc :: FSModule (LoggingFor lang) -> SFile (LoggingFor lang) Source #

docMod :: String -> String -> [String] -> String -> SFile (LoggingFor lang) -> SFile (LoggingFor lang) Source #

class BlockSym r => BodySym r where Source #

Associated Types

type Body r Source #

Methods

body :: [MSBlock r] -> MSBody r Source #

addComments :: Label -> MSBody r -> MSBody r Source #

Instances

Instances details
BodySym lang => BodySym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Body (LoggingFor lang) Source #

class StatementSym r => BlockSym r where Source #

Associated Types

type Block r Source #

Methods

block :: [MSStatement r] -> MSBlock r Source #

Instances

Instances details
BlockSym lang => BlockSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Block (LoggingFor lang) Source #

Methods

block :: [MSStatement (LoggingFor lang)] -> MSBlock (LoggingFor lang) Source #

class TypeSym r where Source #

class TypeSym r => BinderSym r where Source #

Methods

binder :: Label -> VSType r -> VSBinder r Source #

Instances

Instances details
BinderSym lang => BinderSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

binder :: Label -> VSType (LoggingFor lang) -> VSBinder (LoggingFor lang) Source #

class ValueSym r => StatementSym r where Source #

Associated Types

type Statement r Source #

Instances

Instances details
StatementSym lang => StatementSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Statement (LoggingFor lang) Source #

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

class (VariableSym r, StatementSym r, ScopeSym r) => DeclStatement r where Source #

Methods

varDec :: SVariable r -> r ScopeData -> MSStatement r Source #

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

varDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #

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

listDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r Source #

listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r Source #

setDec :: SVariable r -> r ScopeData -> MSStatement r Source #

setDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #

arrayDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r Source #

arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r Source #

constDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #

funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MSBody r -> MSStatement r Source #

class (VariableSym r, StatementSym r) => IOStatement r where Source #

Instances

Instances details
SharedProg lang => IOStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

print :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printLn :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printStr :: String -> MSStatement (LoggingFor lang) Source #

printStrLn :: String -> MSStatement (LoggingFor lang) Source #

printFile :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printFileLn :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printFileStr :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang) Source #

printFileStrLn :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang) Source #

getInput :: SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardInput :: MSStatement (LoggingFor lang) Source #

getFileInput :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardFileInput :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileR :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileW :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileA :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

closeFile :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

getFileInputLine :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardFileLine :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

getFileInputAll :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

class (VariableSym r, StatementSym r) => FuncAppStatement r where Source #

Methods

inOutCall :: InOutCall r Source #

extInOutCall :: Library -> InOutCall r Source #

Instances

Instances details
FuncAppStatement lang => FuncAppStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inOutCall :: InOutCall (LoggingFor lang) Source #

extInOutCall :: Library -> InOutCall (LoggingFor lang) Source #

class StatementSym r => CommentStatement r where Source #

Instances

Instances details
CommentStatement lang => CommentStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class (BodySym r, VariableSym r) => ControlStatement r where Source #

Methods

break :: MSStatement r Source #

continue :: MSStatement r Source #

returnStmt :: SValue r -> MSStatement r Source #

throw :: Label -> MSStatement r Source #

ifCond :: [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #

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

switch :: SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #

ifExists :: SValue r -> MSBody r -> MSBody r -> MSStatement r Source #

for :: MSStatement r -> SValue r -> MSStatement r -> MSBody r -> MSStatement r Source #

forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MSBody r -> MSStatement r Source #

forEach :: SVariable r -> SValue r -> MSBody r -> MSStatement r Source #

while :: SValue r -> MSBody r -> MSStatement r Source #

tryCatch :: MSBody r -> MSBody r -> MSStatement r Source #

assert :: SValue r -> SValue r -> MSStatement r Source #

Instances

Instances details
ControlStatement lang => ControlStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class TypeSym r => VariableSym r where Source #

Associated Types

type Variable r Source #

Methods

var :: Label -> VSType r -> SVariable r Source #

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

constant :: Label -> VSType r -> SVariable r Source #

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

extVar :: Library -> Label -> VSType r -> SVariable r Source #

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

Instances

Instances details
VariableSym lang => VariableSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Variable (LoggingFor lang) Source #

Methods

var :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

constant :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

extVar :: Library -> Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

class ScopeSym r where Source #

Instances

Instances details
ScopeSym lang => ScopeSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class VariableSym r => VariableElim r where Source #

Methods

variableName :: r (Variable r) -> String Source #

variableType :: r (Variable r) -> r TypeData Source #

Instances

Instances details
VariableElim lang => VariableElim (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class TypeSym r => ValueSym r where Source #

Associated Types

type Value r Source #

Methods

valueType :: r (Value r) -> r TypeData Source #

Instances

Instances details
ValueSym lang => ValueSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Value (LoggingFor lang) Source #

Methods

valueType :: LoggingFor lang (Value (LoggingFor lang)) -> LoggingFor lang TypeData Source #

class ValueSym r => Argument r where Source #

Methods

pointerArg :: SValue r -> SValue r Source #

Instances

Instances details
Argument lang => Argument (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pointerArg :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

class ValueSym r => MathConstant r where Source #

Methods

pi :: SValue r Source #

Instances

Instances details
MathConstant lang => MathConstant (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pi :: SValue (LoggingFor lang) Source #

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

Methods

valueOf :: SVariable r -> SValue r Source #

Instances

Instances details
VariableValue lang => VariableValue (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

valueOf :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) Source #

class ValueSym r => NumericExpression r where Source #

Methods

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

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

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

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

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

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

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

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

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

log :: SValue r -> SValue r Source #

ln :: SValue r -> SValue r Source #

exp :: SValue r -> SValue r Source #

sin :: SValue r -> SValue r Source #

cos :: SValue r -> SValue r Source #

tan :: SValue r -> SValue r Source #

csc :: SValue r -> SValue r Source #

sec :: SValue r -> SValue r Source #

cot :: SValue r -> SValue r Source #

arcsin :: SValue r -> SValue r Source #

arccos :: SValue r -> SValue r Source #

arctan :: SValue r -> SValue r Source #

floor :: SValue r -> SValue r Source #

ceil :: SValue r -> SValue r Source #

Instances

Instances details
NumericExpression lang => NumericExpression (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class ValueSym r => BooleanExpression r where Source #

Methods

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

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

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

Instances

Instances details
BooleanExpression lang => BooleanExpression (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(?!) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

(?&&) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

(?||) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

class ValueSym r => Comparison r where Source #

Methods

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

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

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

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

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

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

Instances

Instances details
Comparison lang => Comparison (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Methods

inlineIf :: SValue r -> SValue r -> SValue r -> SValue r Source #

funcAppMixedArgs :: MixedCall r Source #

extFuncAppMixedArgs :: Library -> MixedCall r Source #

libFuncAppMixedArgs :: Library -> MixedCall r Source #

lambda :: [VSBinder r] -> SValue r -> SValue r Source #

notNull :: SValue r -> SValue r Source #

Instances

Instances details
ValueExpression lang => ValueExpression (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inlineIf :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

funcAppMixedArgs :: MixedCall (LoggingFor lang) Source #

extFuncAppMixedArgs :: Library -> MixedCall (LoggingFor lang) Source #

libFuncAppMixedArgs :: Library -> MixedCall (LoggingFor lang) Source #

lambda :: [VSBinder (LoggingFor lang)] -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

notNull :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

funcApp :: ValueExpression r => PosCall r Source #

extFuncApp :: ValueExpression r => Library -> PosCall r Source #

libFuncApp :: ValueExpression r => Library -> PosCall r Source #

class ValueSym r => FunctionSym r Source #

Associated Types

type Function r Source #

Instances

Instances details
FunctionSym lang => FunctionSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Function (LoggingFor lang) Source #

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

Methods

makeRef :: SValue r -> SValue r Source #

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

maybeDeref :: SValue r -> SValue r Source #

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

Instances

Instances details
Reference lang => Reference (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class IndexTranslator r => Array r where Source #

Methods

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

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

arrayLength :: SValue r -> SValue r Source #

Given an array, return its length

arrayCopy :: SValue r -> SValue r Source #

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

Instances

Instances details
Array lang => Array (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class IndexTranslator r => List r where Source #

Methods

listSize :: SValue r -> SValue r Source #

listAdd :: SValue r -> SValue r -> SValue r -> MSStatement r Source #

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

listAppend :: SValue r -> SValue r -> MSStatement r Source #

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

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

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

listSet :: SValue r -> SValue r -> SValue r -> MSStatement r Source #

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

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

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

Instances

Instances details
List lang => List (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

class ValueSym r => Set r where Source #

Methods

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

Checks membership Arguments are: Set, Value

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

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

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

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

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

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

Instances

Instances details
Set lang => Set (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

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

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

class VisibilitySym r where Source #

Associated Types

type Visibility r Source #

Instances

Instances details
VisibilitySym lang => VisibilitySym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Visibility (LoggingFor lang) Source #

class VariableSym r => ParameterSym r where Source #

Associated Types

type Parameter r Source #

Instances

Instances details
ParameterSym lang => ParameterSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Parameter (LoggingFor lang) Source #

class (BodySym r, ParameterSym r, VisibilitySym r) => MethodSym r where Source #

Associated Types

type Method r Source #

Methods

docMain :: MSBody r -> SMethod r Source #

function :: Label -> r (Visibility r) -> VSType r -> [MSParameter r] -> MSBody r -> SMethod r Source #

mainFunction :: MSBody r -> SMethod r Source #

docFunc :: String -> [String] -> Maybe String -> SMethod r -> SMethod r Source #

inOutFunc :: Label -> r (Visibility r) -> InOutFunc r Source #

docInOutFunc :: Label -> r (Visibility r) -> DocInOutFunc r Source #

Instances

Instances details
MethodSym lang => MethodSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Method (LoggingFor lang) Source #

class MethodSym r => ModuleSym r where Source #

Associated Types

type Module r Source #

Methods

buildModule :: Label -> [Label] -> [SMethod r] -> FSModule r Source #

Instances

Instances details
ModuleSym lang => ModuleSym (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Module (LoggingFor lang) Source #

Methods

buildModule :: Label -> [Label] -> [SMethod (LoggingFor lang)] -> FSModule (LoggingFor lang) Source #

data VisibilityTag Source #

Constructors

Pub 
Priv 

Instances

Instances details
Eq VisibilityTag Source # 
Instance details

Defined in Drasil.Shared.AST

data CodeType Source #

Instances

Instances details
Show CodeType Source # 
Instance details

Defined in Drasil.Shared.CodeType

Eq CodeType Source # 
Instance details

Defined in Drasil.Shared.CodeType

data GOOLState Source #

Constructors

GS 

Fields

lensMStoVS :: Lens' MethodState ValueState Source #

onStateValue :: (a -> b) -> State s a -> State s b Source #

onCodeList :: Monad m => ([a] -> b) -> [m a] -> m b Source #

unCI :: CodeInfoProc a -> a Source #

unJLC :: JuliaCode a -> a Source #

unMLC :: MatlabCode a -> a Source #

newtype LoggingFor (lang :: Type -> Type) a Source #

Constructors

LC 

Fields

Instances

Instances details
Applicative lang => Applicative (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pure :: a -> LoggingFor lang a #

(<*>) :: LoggingFor lang (a -> b) -> LoggingFor lang a -> LoggingFor lang b #

liftA2 :: (a -> b -> c) -> LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang c #

(*>) :: LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b #

(<*) :: LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang a #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

fmap :: (a -> b) -> LoggingFor lang a -> LoggingFor lang b #

(<$) :: a -> LoggingFor lang b -> LoggingFor lang a #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(>>=) :: LoggingFor lang a -> (a -> LoggingFor lang b) -> LoggingFor lang b #

(>>) :: LoggingFor lang a -> LoggingFor lang b -> LoggingFor lang b #

return :: a -> LoggingFor lang a #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Attachment (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Class (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type File (LoggingFor lang) Source #

Methods

fileDoc :: FSModule (LoggingFor lang) -> SFile (LoggingFor lang) Source #

docMod :: String -> String -> [String] -> String -> SFile (LoggingFor lang) -> SFile (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

get :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> SValue (LoggingFor lang) Source #

set :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Module (LoggingFor lang) Source #

Methods

buildModule :: Label -> [Label] -> [SMethod (LoggingFor lang)] -> [SClass (LoggingFor lang)] -> FSModule (LoggingFor lang) Source #

(DeclStatement (LoggingFor lang), OODeclStatement lang) => OODeclStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

selfInOutCall :: InOutCall (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

obj :: ClassName -> VSType (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

newObjMixedArgs :: MixedCtorCall (LoggingFor lang) Source #

extNewObjMixedArgs :: Library -> MixedCtorCall (LoggingFor lang) Source #

libNewObjMixedArgs :: Library -> MixedCtorCall (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Program (LoggingFor lang) Source #

Methods

prog :: Label -> Label -> [SFile (LoggingFor lang)] -> GSProgram (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

self :: SVariable (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type StateVar (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

runStrategy :: Label -> [(Label, MSBody (LoggingFor lang))] -> Maybe (SValue (LoggingFor lang)) -> Maybe (SVariable (LoggingFor lang)) -> MSBlock (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type File (LoggingFor lang) Source #

Methods

fileDoc :: FSModule (LoggingFor lang) -> SFile (LoggingFor lang) Source #

docMod :: String -> String -> [String] -> String -> SFile (LoggingFor lang) -> SFile (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Module (LoggingFor lang) Source #

Methods

buildModule :: Label -> [Label] -> [SMethod (LoggingFor lang)] -> FSModule (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Program (LoggingFor lang) Source #

Methods

prog :: Label -> Label -> [SFile (LoggingFor lang)] -> GSProgram (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pointerArg :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

SharedProg lang => AssignStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

binder :: Label -> VSType (LoggingFor lang) -> VSBinder (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Block (LoggingFor lang) Source #

Methods

block :: [MSStatement (LoggingFor lang)] -> MSBlock (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Body (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

(?!) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

(?&&) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

(?||) :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

SharedProg lang => DeclStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inOutCall :: InOutCall (LoggingFor lang) Source #

extInOutCall :: Library -> InOutCall (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Function (LoggingFor lang) Source #

SharedProg lang => IOStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

print :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printLn :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printStr :: String -> MSStatement (LoggingFor lang) Source #

printStrLn :: String -> MSStatement (LoggingFor lang) Source #

printFile :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printFileLn :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

printFileStr :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang) Source #

printFileStrLn :: SValue (LoggingFor lang) -> String -> MSStatement (LoggingFor lang) Source #

getInput :: SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardInput :: MSStatement (LoggingFor lang) Source #

getFileInput :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardFileInput :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileR :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileW :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

openFileA :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

closeFile :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

getFileInputLine :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

discardFileLine :: SValue (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

getFileInputAll :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> MSStatement (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

pi :: SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Method (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Parameter (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Statement (LoggingFor lang) Source #

SharedProg lang => StringStatement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

inlineIf :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

funcAppMixedArgs :: MixedCall (LoggingFor lang) Source #

extFuncAppMixedArgs :: Library -> MixedCall (LoggingFor lang) Source #

libFuncAppMixedArgs :: Library -> MixedCall (LoggingFor lang) Source #

lambda :: [VSBinder (LoggingFor lang)] -> SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

notNull :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Value (LoggingFor lang) Source #

Methods

valueType :: LoggingFor lang (Value (LoggingFor lang)) -> LoggingFor lang TypeData Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Variable (LoggingFor lang) Source #

Methods

var :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

constant :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

extVar :: Library -> Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

valueOf :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) Source #

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Associated Types

type Visibility (LoggingFor lang) Source #

type Attachment (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Attachment (LoggingFor lang) = Attachment lang
type Class (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Class (LoggingFor lang) = Class lang
type File (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type File (LoggingFor lang) = File lang
type Module (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Module (LoggingFor lang) = Module lang
type Program (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Program (LoggingFor lang) = Program lang
type StateVar (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type StateVar (LoggingFor lang) = StateVar lang
type File (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type File (LoggingFor lang) = File lang
type Module (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Module (LoggingFor lang) = Module lang
type Program (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Program (LoggingFor lang) = Program lang
type Block (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Block (LoggingFor lang) = Block lang
type Body (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Body (LoggingFor lang) = Body lang
type Function (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Function (LoggingFor lang) = Function lang
type Method (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Method (LoggingFor lang) = Method lang
type Parameter (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Parameter (LoggingFor lang) = Parameter lang
type Statement (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Statement (LoggingFor lang) = Statement lang
type Value (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Value (LoggingFor lang) = Value lang
type Variable (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Variable (LoggingFor lang) = Variable lang
type Visibility (LoggingFor lang) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

type Visibility (LoggingFor lang) = Visibility lang

getCodeType :: UnRepr r TypeData => r TypeData -> CodeType Source #

A helper function for extracting the CodeType from an `r TypeData`

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

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