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

Drasil.GOOL.InterfaceGOOL

Synopsis

Documentation

type GSProgram (a :: k -> Type) (prg :: k) = GS (a prg) Source #

type Class = Doc Source #

type CSStateVar (r :: k -> Type) (stvr :: k) = CS (r stvr) Source #

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

class (UnRepr r TypeData, Argument r, BodySym r bod block, BlockSym r block stmt, CommandLineArgs r, Literal r, MathConstant r, VariableValue r, VariableSym r, TypeSym r, OOTypeSym r, OOVariableSym r, SelfSym r, BooleanExpression r, Comparison r, NumericExpression r, ValueSym r, InternalValueExp r, ValueExpression r, OOValueExpression r, IndexTranslator r, Array r, List r, ListStatement r stmt, Reference r, Set r, FunctionSym r, OOFunctionSym r, ParameterSym r, ScopeSym r, BinderSym r, InternalList r block, MethodSym r vis mthd bod, OOMethodSym r vis mthd attch bod, AttachmentSym r attch, VisibilitySym r vis, StateVarSym r vis stvr attch, ClassSym r mthd stvr, TypeElim r, VariableElim r, EmptyStatement r stmt, MultiStatement r stmt, ValueStatement r stmt, CommentStatement r stmt, DeclStatement r stmt bod, OODeclStatement r stmt, AssignStatement r stmt, FuncAppStatement r stmt, OOFuncAppStatement r stmt, ControlStatement r stmt bod, StringStatement r stmt, PrintConsole r stmt, ReadConsole r stmt, FileHandling r stmt, PrintFile r stmt, ReadFile r stmt, ModuleSym r mod mthd, FileSym r file mod, ProgramSym r prg file) => OOProg (r :: Type -> Type) vis stmt mthd stvr attch prg file mod bod block Source #

Wrapper typeclass that bundles everything essential for generating an object-oriented program.

class ProgramSym (r :: k -> Type) (prg :: k) (file :: k) | r -> prg file where Source #

Class for representing a program. Usually ProgData is used for the representation.

Methods

prog :: Label -> Label -> [FS (r file)] -> GSProgram r prg Source #

Given program name, program purpose, and list of files, Generates a representation of a program.

Instances

Instances details
ProgramSym CodeInfoOO GOOLState () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ProgramSym CSharpCode ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ProgramSym CppSrcCode ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ProgramSym JavaCode ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ProgramSym PythonCode ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ProgramSym SwiftCode ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ProgramSym r prg file => ProgramSym (LoggingFor r :: Type -> Type) (prg :: Type) (file :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

prog :: Label -> Label -> [FS (LoggingFor r file)] -> GSProgram (LoggingFor r) prg Source #

Pair p => ProgramSym (p CppSrcCode CppHdrCode :: Type -> Type) ProgData FileData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class FileSym (r :: k -> Type) (file :: k) (mod :: k) | r -> file mod where Source #

Class for representing a file.

Methods

fileDoc :: FS (r mod) -> FS (r file) Source #

Given a module, generates a representation of a file. (Implicit assumption: exactly one module per file)

docMod :: String -> String -> [String] -> String -> FS (r file) -> FS (r file) Source #

Given module description, watermark, list of author names, date as a String, and file to comment, creates a documented module (i.e. module with a header comment)

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

fileDoc :: FS (CodeInfoOO ()) -> FS (CodeInfoOO ()) Source #

docMod :: String -> String -> [String] -> String -> FS (CodeInfoOO ()) -> FS (CodeInfoOO ()) Source #

FileSym CSharpCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

FileSym CppHdrCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileSym CppSrcCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

FileSym JavaCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

FileSym PythonCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

FileSym SwiftCode FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

FileSym r file mod => FileSym (LoggingFor r :: Type -> Type) (file :: Type) (mod :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

fileDoc :: FS (LoggingFor r mod) -> FS (LoggingFor r file) Source #

docMod :: String -> String -> [String] -> String -> FS (LoggingFor r file) -> FS (LoggingFor r file) Source #

Pair p => FileSym (p CppSrcCode CppHdrCode :: Type -> Type) FileData ModData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Class for representing a module.

Methods

buildModule :: Label -> [Label] -> [MS (r mthd)] -> [CS (r Class)] -> FS (r mod) Source #

Given module name, list of import names, list of module functions, and list of module classes, generates a representation of a module.

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

Methods

buildModule :: Label -> [Label] -> [MS (CodeInfoOO ())] -> [CS (CodeInfoOO Class)] -> FS (CodeInfoOO ()) Source #

ModuleSym CSharpCode ModData MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ModuleSym JavaCode ModData MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ModuleSym PythonCode ModData MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ModuleSym SwiftCode ModData MethodData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ModuleSym r mod mthd => ModuleSym (LoggingFor r) mod mthd Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

buildModule :: Label -> [Label] -> [MS (LoggingFor r mthd)] -> [CS (LoggingFor r Class)] -> FS (LoggingFor r mod) Source #

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

Class for representing an OO class.

Methods

buildClass :: Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class) Source #

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

extraClass :: Label -> Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class) Source #

Creates an extra class, i.e. with a different name than the module name. Inputs: class name, the rest are the same as buildClass.

implementingClass :: Label -> [Label] -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Class) Source #

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

docClass :: String -> CS (r Class) -> CS (r Class) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

ClassSym CSharpCode MethodData StateVar Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ClassSym JavaCode MethodData StateVar Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ClassSym PythonCode MethodData StateVar Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ClassSym SwiftCode MethodData StateVar Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

ClassSym r mthd stvr => ClassSym (LoggingFor r) mthd stvr Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

buildClass :: Maybe Label -> [CSStateVar (LoggingFor r) stvr] -> [MS (LoggingFor r mthd)] -> [MS (LoggingFor r mthd)] -> CS (LoggingFor r Class) Source #

extraClass :: Label -> Maybe Label -> [CSStateVar (LoggingFor r) stvr] -> [MS (LoggingFor r mthd)] -> [MS (LoggingFor r mthd)] -> CS (LoggingFor r Class) Source #

implementingClass :: Label -> [Label] -> [CSStateVar (LoggingFor r) stvr] -> [MS (LoggingFor r mthd)] -> [MS (LoggingFor r mthd)] -> CS (LoggingFor r Class) Source #

docClass :: String -> CS (LoggingFor r Class) -> CS (LoggingFor r Class) Source #

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

Methods

obj :: ClassName -> VS (r TypeData) Source #

Instances

Instances details
OOTypeSym CodeInfoOO Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOTypeSym CSharpCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOTypeSym CppHdrCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOTypeSym CppSrcCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOTypeSym JavaCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOTypeSym PythonCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOTypeSym SwiftCode Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

A class-level variable, separate from its class (i.e. v, not v)

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

A class-level constant, separate from its class (i.e. v, not v)

classVarAccess :: VS (r TypeData) -> SVariable r -> SVariable r Source #

Given a class C and a class-level variable v, creates v

extClassVarAccess :: VS (r TypeData) -> SVariable r -> SVariable r Source #

Given a class C from an external module and a class-level variable v, performs any necessary imports and creates v

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

Given an instance i and an instance-level variable v, creates `i.v`

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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

instanceVarSelf :: (OOVariableSym r, SelfSym r, VariableValue r) => SVariable r -> SVariable r Source #

Given a variable v, creates `self.v`

class OOValueExpression (r :: Type -> Type) 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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

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

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

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

Instances

Instances details
OODeclStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OODeclStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OODeclStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OODeclStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OODeclStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OODeclStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OODeclStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

(DeclStatement (LoggingFor r) stmt bod, OODeclStatement r stmt) => OODeclStatement (LoggingFor r) stmt Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

selfInOutCall :: InOutCall r stmt Source #

Instances

Instances details
OOFuncAppStatement CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

OOFuncAppStatement CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOFuncAppStatement CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOFuncAppStatement CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

OOFuncAppStatement JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOFuncAppStatement PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOFuncAppStatement SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

class GetSet (r :: Type -> Type) 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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

A class for representing method calls, both instance- and class-level

Methods

objMethodCallMixedArgs' :: Label -> VS (r TypeData) -> 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.

classMethodCallMixedArgs' :: Label -> VS (r TypeData) -> VS (r TypeData) -> [SValue r] -> NamedArgs r -> SValue r Source #

Generic function for calling a class method. Takes the function name, the return type, the class type, 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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

objMethodCall :: InternalValueExp r => VS (r TypeData) -> 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 => VS (r TypeData) -> SValue r -> Label -> NamedArgs r -> SValue r Source #

Calling a method with named arguments.

objMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #

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

objMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> SValue r Source #

Calling a method with no parameters.

classMethodCall :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> SValue r Source #

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

classMethodCallNamedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> NamedArgs r -> SValue r Source #

Calling a class method with named arguments.

classMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #

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

classMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> SValue r Source #

Calling a class method with no parameters.

class OOMethodSym (r :: Type -> Type) vis mthd attch bod | r -> vis mthd attch bod where Source #

Methods

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

getMethod :: SVariable r -> MS (r mthd) Source #

setMethod :: SVariable r -> MS (r mthd) Source #

constructor :: [MS (r ParamData)] -> Initializers r -> MS (r bod) -> MS (r mthd) Source #

inOutMethod :: Label -> r vis -> r attch -> InOutFunc r mthd bod Source #

docInOutMethod :: Label -> r vis -> r attch -> DocInOutFunc r mthd bod Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

OOMethodSym CSharpCode Doc MethodData Doc Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

OOMethodSym JavaCode Doc MethodData Doc Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

OOMethodSym PythonCode Doc MethodData AttachmentData Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

OOMethodSym SwiftCode Doc MethodData Doc Body Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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

getMethod :: SVariable (LoggingFor r) -> MS (LoggingFor r mthd) Source #

setMethod :: SVariable (LoggingFor r) -> MS (LoggingFor r mthd) Source #

constructor :: [MS (LoggingFor r ParamData)] -> Initializers (LoggingFor r) -> MS (LoggingFor r bod) -> MS (LoggingFor r mthd) Source #

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

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

privMethod :: (OOMethodSym r vis mthd attch bod, AttachmentSym r attch, VisibilitySym r vis) => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #

pubMethod :: (OOMethodSym r vis mthd attch bod, AttachmentSym r attch, VisibilitySym r vis) => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #

initializer :: (OOMethodSym r vis mthd attch bod, BodySym r bod block) => [MS (r ParamData)] -> Initializers r -> MS (r mthd) Source #

nonInitConstructor :: OOMethodSym r vis mthd attch bod => [MS (r ParamData)] -> MS (r bod) -> MS (r mthd) Source #

class StateVarSym (r :: Type -> Type) vis stvr attch | r -> vis stvr attch where Source #

Class for representing class variables, both instance- and class-level. Used when creating a class, to hold extra information about Attachment and Visibility. Usually Doc is used for the representation.

Methods

stateVar :: r vis -> r attch -> SVariable r -> CSStateVar r stvr Source #

Given a visibility, attachment, and variable, represent the declaration of a state variable with no initial value.

stateVarDef :: r vis -> r attch -> SVariable r -> SValue r -> CSStateVar r stvr Source #

Given a visibility, attachment, variable, and initial value, represent the declaration of a state variable with the given initial value.

constVar :: r vis -> SVariable r -> SValue r -> CSStateVar r stvr Source #

Given a visibility, variable, and value, represent the declaration of a state constant with the given value.

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

StateVarSym CSharpCode Doc StateVar Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StateVarSym JavaCode Doc Doc Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StateVarSym PythonCode Doc Doc AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StateVarSym SwiftCode Doc Doc Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

StateVarSym CppHdrCode (Doc, VisibilityTag) StateVarData AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StateVarSym CppSrcCode (Doc, VisibilityTag) StateVarData AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StateVarSym r vis stvr attch => StateVarSym (LoggingFor r) vis stvr attch Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => StateVarSym (p CppSrcCode CppHdrCode) (Doc, VisibilityTag) StateVarData AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

privDVar :: (AttachmentSym r attch, VisibilitySym r vis, StateVarSym r vis stvr attch) => SVariable r -> CSStateVar r stvr Source #

pubDVar :: (AttachmentSym r attch, VisibilitySym r vis, StateVarSym r vis stvr attch) => SVariable r -> CSStateVar r stvr Source #

pubSVar :: (AttachmentSym r attch, VisibilitySym r vis, StateVarSym r vis stvr attch) => SVariable r -> CSStateVar r stvr Source #

class AttachmentSym (r :: k -> Type) (attch :: k) | r -> attch where Source #

Used to differentiate whether a member is attached to the class or the instance

Methods

classLevel :: r attch Source #

instanceLevel :: r attch Source #

Instances

Instances details
AttachmentSym CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

AttachmentSym CSharpCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

AttachmentSym CppHdrCode AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AttachmentSym CppSrcCode AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

AttachmentSym JavaCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

AttachmentSym PythonCode AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

AttachmentSym SwiftCode Doc Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

AttachmentSym r attch => AttachmentSym (LoggingFor r :: Type -> Type) (attch :: Type) Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Pair p => AttachmentSym (p CppSrcCode CppHdrCode :: Type -> Type) AttachmentData Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

Methods

func :: Label -> VS (r TypeData) -> [SValue r] -> VS (r FuncData) Source #

objAccess :: SValue r -> VS (r FuncData) -> 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

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

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

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

Methods

notifyObservers :: VS (r FuncData) -> VS (r TypeData) -> MS (r stmt) Source #

Instances

Instances details
ObserverPattern CodeInfoOO () Source # 
Instance details

Defined in Drasil.GOOL.CodeInfoOO

ObserverPattern CSharpCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

ObserverPattern CppHdrCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ObserverPattern CppSrcCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

ObserverPattern JavaCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

ObserverPattern PythonCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

ObserverPattern SwiftCode (Doc, Terminator) Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

initObserverList :: (VariableSym r, DeclStatement r stmt bod) => VS (r TypeData) -> [SValue r] -> r ScopeData -> MS (r stmt) Source #

addObserver :: (VariableSym r, VariableValue r, ValueSym r, List r, ListStatement r stmt) => SValue r -> MS (r stmt) Source #

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

Methods

runStrategy :: Label -> [(Label, MS (r bod))] -> Maybe (SValue r) -> Maybe (SVariable r) -> MS (r block) Source #

Instances

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

Defined in Drasil.GOOL.CodeInfoOO

StrategyPattern CSharpCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer

StrategyPattern CppHdrCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StrategyPattern CppSrcCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer

StrategyPattern JavaCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer

StrategyPattern PythonCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer

StrategyPattern SwiftCode Body Block Source # 
Instance details

Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer

StrategyPattern r bod block => StrategyPattern (LoggingFor r) bod block Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

runStrategy :: Label -> [(Label, MS (LoggingFor r bod))] -> Maybe (SValue (LoggingFor r)) -> Maybe (SVariable (LoggingFor r)) -> MS (LoggingFor r block) Source #

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

Defined in Drasil.GOOL.LanguageRenderer.CppRenderer