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, FunctionSym r, VariableValue r, ScopeSym r, BinderSym r, InternalList r block, MethodSym r vis mthd bod, TypeElim r, VariableElim r, Array r, EmptyStatement r stmt, MultiStatement r stmt, ValueStatement r stmt, AssignStatement r stmt, Argument r, BooleanExpression r, CommandLineArgs r, CommentStatement r stmt, Comparison r, ControlStatement r stmt bod, DeclStatement r stmt bod, FuncAppStatement r stmt, PrintConsole r stmt, ReadConsole r stmt, FileHandling r stmt, PrintFile r stmt, ReadFile r stmt, List r, ListStatement r stmt, Literal r, MathConstant r, NumericExpression r, ParameterSym r, Reference r, Set r, StringStatement r stmt, ValueExpression r, VariableValue r, ModuleSym r mod mthd, FileSym r file mod, ProgramSym r prg file) => ProcProg (r :: Type -> Type) vis stmt mthd prg file mod bod block Source #

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

Instances

Instances details
ProcProg JuliaCode Doc (Doc, Terminator) MethodData ProgData FileData ModData Body Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer

ProcProg MatlabCode Doc (Doc, Terminator) MethodData ProgData FileData ModData Body Block Source # 
Instance details

Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer

ProcProg r vis stmt mthd prg file mod bod block => ProcProg (LoggingFor r) vis stmt mthd prg file mod bod block 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 #