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

Drasil.GOOL.InterfaceGOOL

Synopsis

Documentation

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

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

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

type SClass a = CS (a (Class a)) Source #

type CSStateVar a = CS (a (StateVar a)) Source #

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 CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type Program CodeInfoOO Source #

ProgramSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type Program CSharpCode Source #

ProgramSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Program CppSrcCode Source #

ProgramSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type Program JavaCode Source #

ProgramSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type Program PythonCode Source #

ProgramSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type Program SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Program (p CppSrcCode CppHdrCode) 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 -> SFile r -> SFile r Source #

Instances

Instances details
FileSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type File CodeInfoOO Source #

FileSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type File CSharpCode Source #

FileSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type File CppHdrCode Source #

FileSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type File CppSrcCode Source #

FileSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type File JavaCode Source #

FileSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type File PythonCode Source #

FileSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type File SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type File (p CppSrcCode CppHdrCode) Source #

class ClassSym r => ModuleSym r where Source #

Associated Types

type Module r Source #

Methods

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

Instances

Instances details
ModuleSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type Module CodeInfoOO Source #

ModuleSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type Module CSharpCode Source #

ModuleSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Module CppHdrCode Source #

ModuleSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Module CppSrcCode Source #

ModuleSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type Module JavaCode Source #

ModuleSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type Module PythonCode Source #

ModuleSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type Module SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Module (p CppSrcCode CppHdrCode) Source #

class (OOMethodSym r, StateVarSym r) => ClassSym r where Source #

Associated Types

type Class r Source #

Methods

buildClass :: Maybe Label -> [CSStateVar r] -> [SMethod r] -> [SMethod r] -> SClass r Source #

Main external method for creating a class. Inputs: parent class, variables, constructor(s), methods

extraClass :: Label -> Maybe Label -> [CSStateVar r] -> [SMethod r] -> [SMethod r] -> SClass r Source #

Creates an extra class. Inputs: class name, the rest are the same as buildClass.

implementingClass :: Label -> [Label] -> [CSStateVar r] -> [SMethod r] -> [SMethod r] -> SClass r Source #

Creates a class implementing interfaces. Inputs: class name, interface names, variables, constructor(s), methods

docClass :: String -> SClass r -> SClass r Source #

Instances

Instances details
ClassSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type Class CodeInfoOO Source #

ClassSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type Class CSharpCode Source #

ClassSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Class CppHdrCode Source #

ClassSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Class CppSrcCode Source #

ClassSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type Class JavaCode Source #

ClassSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type Class PythonCode Source #

ClassSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type Class SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Class (p CppSrcCode CppHdrCode) Source #

class (VariableSym r, OOTypeSym r) => OOVariableSym r where Source #

Instances

Instances details
OOVariableSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOVariableSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOVariableSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOVariableSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOVariableSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOVariableSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOVariableSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

($->) :: OOVariableSym r => SVariable r -> SVariable r -> SVariable r infixl 9 Source #

class (ValueExpression r, OOVariableSym r, OOValueSym r) => OOValueExpression r where Source #

Instances

Instances details
OOValueExpression CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOValueExpression CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOValueExpression CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOValueExpression CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOValueExpression JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOValueExpression PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOValueExpression SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (DeclStatement r, OOVariableSym r) => OODeclStatement r where Source #

Methods

objDecDef :: SVariable r -> r (Scope r) -> SValue r -> MSStatement r Source #

objDecNew :: SVariable r -> r (Scope r) -> [SValue r] -> MSStatement r Source #

extObjDecNew :: Library -> SVariable r -> r (Scope r) -> [SValue r] -> MSStatement r Source #

Instances

Instances details
OODeclStatement CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OODeclStatement CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OODeclStatement CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OODeclStatement CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OODeclStatement JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OODeclStatement PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OODeclStatement SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

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

Instances

Instances details
GetSet CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

GetSet CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

GetSet CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

GetSet CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

GetSet JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

GetSet PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

GetSet SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class ValueSym r => InternalValueExp r where Source #

Methods

objMethodCallMixedArgs' :: Label -> VSType r -> SValue r -> [SValue r] -> NamedArgs r -> SValue r Source #

Generic function for calling a method. Takes the function name, the return type, the object, a list of positional arguments, and a list of named arguments.

Instances

Instances details
InternalValueExp CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

InternalValueExp CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

InternalValueExp CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalValueExp CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

InternalValueExp JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

InternalValueExp PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

InternalValueExp SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

objMethodCall :: InternalValueExp r => VSType r -> SValue r -> Label -> [SValue r] -> SValue r Source #

Calling a method. t is the return type of the method, o is the object, f is the method name, and ps is a list of positional arguments.

objMethodCallNamedArgs :: InternalValueExp r => VSType r -> SValue r -> Label -> NamedArgs r -> SValue r Source #

Calling a method with named arguments.

objMethodCallMixedArgs :: InternalValueExp r => VSType r -> SValue r -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #

Calling a method with a mix of positional and named arguments.

objMethodCallNoParams :: InternalValueExp r => VSType r -> SValue r -> Label -> SValue r Source #

Calling a method with no parameters.

class (MethodSym r, PermanenceSym r) => OOMethodSym r where Source #

Instances

Instances details
OOMethodSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOMethodSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOMethodSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOMethodSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOMethodSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOMethodSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOMethodSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class (VisibilitySym r, PermanenceSym r, VariableSym r) => StateVarSym r where Source #

Associated Types

type StateVar r Source #

Instances

Instances details
StateVarSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type StateVar CodeInfoOO Source #

StateVarSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type StateVar CSharpCode Source #

StateVarSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type StateVar CppHdrCode Source #

StateVarSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type StateVar CppSrcCode Source #

StateVarSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type StateVar JavaCode Source #

StateVarSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type StateVar PythonCode Source #

StateVarSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type StateVar SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type StateVar (p CppSrcCode CppHdrCode) Source #

class PermanenceSym r where Source #

Associated Types

type Permanence r Source #

Instances

Instances details
PermanenceSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

Associated Types

type Permanence CodeInfoOO Source #

PermanenceSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

Associated Types

type Permanence CSharpCode Source #

PermanenceSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Permanence CppHdrCode Source #

PermanenceSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Permanence CppSrcCode Source #

PermanenceSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

Associated Types

type Permanence JavaCode Source #

PermanenceSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

Associated Types

type Permanence PythonCode Source #

PermanenceSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

Associated Types

type Permanence SwiftCode Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

Associated Types

type Permanence (p CppSrcCode CppHdrCode) Source #

class FunctionSym r => OOFunctionSym r where Source #

Methods

func :: Label -> VSType r -> [SValue r] -> VSFunction r Source #

objAccess :: SValue r -> VSFunction r -> SValue r Source #

Instances

Instances details
OOFunctionSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOFunctionSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOFunctionSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOFunctionSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOFunctionSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOFunctionSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOFunctionSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

($.) :: OOFunctionSym r => SValue r -> VSFunction r -> SValue r infixl 9 Source #

class (StatementSym r, OOFunctionSym r) => ObserverPattern r where Source #

Instances

Instances details
ObserverPattern CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ObserverPattern CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ObserverPattern CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ObserverPattern CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ObserverPattern JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ObserverPattern PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ObserverPattern SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

Instances

Instances details
StrategyPattern CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

StrategyPattern CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StrategyPattern CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StrategyPattern CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StrategyPattern JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StrategyPattern PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StrategyPattern SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer