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

Drasil.GProc.InterfaceProc

Synopsis

Documentation

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

class (UnRepr r TypeData, BodySym r bod block, BlockSym r block stmt, ValueSym r val typ, VariableSym r var typ, VariableValue r var val, ScopeSym r scope, BinderSym r binder typ, InternalList r block var val, VisibilitySym r vis, MethodSym r mthd vis param bod var typ, TypeSym r typ, TypeElim r typ, VariableElim r var typ, IndexTranslator r val, Array r var val, EmptyStatement r stmt, MultiStatement r stmt, ValueStatement r stmt val, AssignStatement r stmt var val, Argument r val, BooleanExpression r val, CommandLineArgs r val, CommentStatement r stmt, Comparison r val, ControlStatement r bod stmt var val, DeclStatement r bod stmt var scope val, FuncAppStatement r stmt var val, PrintConsole r stmt val, ReadConsole r stmt var, FileHandling r stmt var val, PrintFile r stmt val, ReadFile r stmt var val, List r val, ListStatement r stmt val, Literal r val typ, MathConstant r val, NumericExpression r val, ParameterSym r param var, Reference r val, Set r val, StringStatement r stmt var val, ValueExpression r var val binder typ, VariableValue r var val, ModuleSym r mod mthd, FileSym r file mod, ProgramSym r prg file) => ProcProg (r :: Type -> Type) prg file mod mthd vis param bod block stmt var scope val binder typ Source #

Wrapper typeclass that bundles everything essential for generating a procedural program.

Instances

Instances details
ProcProg JuliaCode ProgData FileData ModData MethodData Doc ParamData Body Block Statement Variable ScopeData Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ProcProg MatlabCode ProgData FileData ModData MethodData Doc ParamData Body Block Statement Variable ScopeData Value BinderD TypeData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ProcProg r prg file mod mthd vis param bod block stmt var scope val binder typ => ProcProg (LoggingFor r) prg file mod mthd vis param bod block stmt var scope val binder typ Source # 
Instance details

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

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.

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)

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

Class for representing a module.

Methods

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

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

Instances

Instances details
ModuleSym JuliaCode ModData MethodData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ModuleSym MatlabCode ModData MethodData Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

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

Defined in Drasil.Shared.LanguageRenderer.LoggingFor

Methods

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