drasil-code-0.1.9.0: A framework for code and document generation for scientific software - Code SubPackage
Safe HaskellNone
LanguageGHC2024

Language.Drasil.Code.Imperative.Import

Synopsis

Documentation

codeType :: HasSpace c => c -> GenState CodeType Source #

Gets a chunk's CodeType, by checking which CodeType the user has chosen to match the chunk's Space to.

spaceCodeType :: Space -> GenState CodeType Source #

Gets the CodeType for a Space, based on the user's choice.

publicFunc :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> VS (r typ) -> Description -> [ParameterChunk] -> Maybe Description -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a public function.

publicFuncProc :: forall {k} r (typ :: k) (val :: k) (var :: k) (param :: k) (vis :: k) (scope :: k) (stmt :: k) (bod :: k) (block :: k) (mthd :: k). (TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, ParameterSym r param var, VisibilitySym r vis, ScopeSym r scope, MultiStatement r stmt, DeclStatement r bod stmt var scope val, FileHandling r stmt var val, PrintFile r stmt val, BlockSym r block stmt, BodySym r bod block, MethodSym r mthd vis param bod var typ, VariableElim r var typ) => Label -> VS (r typ) -> Description -> [ParameterChunk] -> Maybe Description -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a public function.

privateMethod :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> VS (r typ) -> Description -> [ParameterChunk] -> Maybe Description -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a private method.

privateFuncProc :: forall {k} r (typ :: k) (val :: k) (var :: k) (param :: k) (vis :: k) (scope :: k) (stmt :: k) (bod :: k) (block :: k) (mthd :: k). (TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, ParameterSym r param var, VisibilitySym r vis, ScopeSym r scope, MultiStatement r stmt, DeclStatement r bod stmt var scope val, FileHandling r stmt var val, PrintFile r stmt val, BlockSym r block stmt, BodySym r bod block, MethodSym r mthd vis param bod var typ, VariableElim r var typ) => Label -> VS (r typ) -> Description -> [ParameterChunk] -> Maybe Description -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a private function.

publicInOutFunc :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> Description -> [CodeVarChunk] -> [CodeVarChunk] -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a public function, defined by its inputs and outputs.

publicInOutFuncProc :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (typ :: k) (val :: k) (var :: k) (vis :: k) (scope :: k) (mthd :: k) (param :: k). (BlockSym r block stmt, BodySym r bod block, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, VisibilitySym r vis, ScopeSym r scope, MultiStatement r stmt, DeclStatement r bod stmt var scope val, FileHandling r stmt var val, PrintFile r stmt val, MethodSym r mthd vis param bod var typ, VariableElim r var typ) => Label -> Description -> [CodeVarChunk] -> [CodeVarChunk] -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a public function, defined by its inputs and outputs.

privateInOutMethod :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> Description -> [CodeVarChunk] -> [CodeVarChunk] -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a private method, defined by its inputs and outputs.

privateInOutFuncProc :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (typ :: k) (val :: k) (var :: k) (vis :: k) (scope :: k) (mthd :: k) (param :: k). (BlockSym r block stmt, BodySym r bod block, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, VisibilitySym r vis, ScopeSym r scope, MultiStatement r stmt, DeclStatement r bod stmt var scope val, FileHandling r stmt var val, PrintFile r stmt val, MethodSym r mthd vis param bod var typ, VariableElim r var typ) => Label -> Description -> [CodeVarChunk] -> [CodeVarChunk] -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a private function, defined by its inputs and outputs.

genConstructor :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> Description -> [ParameterChunk] -> [MS (r block)] -> GenState (MS (r mthd)) Source #

Generates a constructor.

mkVar :: forall {k} r (typ :: k) (var :: k) (val :: k). (TypeSym r typ, OOTypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, SelfSym r var, VariableElim r var typ, VariableValue r var val) => CodeVarChunk -> GenState (VS (r var)) Source #

Generates a GOOL Variable for a variable represented by a CodeVarChunk.

mkVarProc :: forall {k} r (typ :: k) (var :: k). (TypeSym r typ, VariableSym r var typ) => CodeVarChunk -> GenState (VS (r var)) Source #

Generates a GOOL Variable for a variable represented by a CodeVarChunk.

mkVal :: forall {k} r (val :: k) (typ :: k) (var :: k) (binder :: k). (ValueSym r val typ, Argument r val, Literal r val typ, MathConstant r val, TypeSym r typ, OOTypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, VariableValue r var val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, SelfSym r var, InternalValueExp r var val typ, OOValueExpression r var val typ, List r val, Reference r val, Set r val, TypeElim r typ, VariableElim r var typ) => CodeVarChunk -> GenState (VS (r val)) Source #

Generates a GOOL Value for a variable represented by a CodeVarChunk.

mkValProc :: forall {k} r (val :: k) (typ :: k) (var :: k) (binder :: k). (NativeVector r val typ, TypeSym r typ, ValueSym r val typ, Literal r val typ, MathConstant r val, VariableSym r var typ, VariableValue r var val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, Argument r val, List r val, Reference r val, Set r val, TypeElim r typ) => CodeVarChunk -> GenState (VS (r val)) Source #

Generates a GOOL Value for a variable represented by a CodeVarChunk.

convExpr :: forall {k} r (val :: k) (typ :: k) (var :: k) (binder :: k). (ValueSym r val typ, Argument r val, MathConstant r val, TypeSym r typ, OOTypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, VariableValue r var val, Literal r val typ, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, SelfSym r var, InternalValueExp r var val typ, OOValueExpression r var val typ, List r val, Reference r val, Set r val, TypeElim r typ, VariableElim r var typ) => CodeExpr -> GenState (VS (r val)) Source #

Converts an Expr to a GOOL Value.

convExprProc :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, ValueSym r val typ, Literal r val typ, MathConstant r val, VariableSym r var typ, VariableValue r var val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, Argument r val, NativeVector r val typ, Reference r val, Set r val, List r val, TypeElim r typ) => CodeExpr -> GenState (VS (r val)) Source #

Converts an Expr to a GOOL Value.

convStmt :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (val :: k) (typ :: k) (var :: k) (binder :: k) (scope :: k). (BlockSym r block stmt, BodySym r bod block, ValueSym r val typ, Argument r val, MathConstant r val, TypeSym r typ, OOTypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, VariableValue r var val, Literal r val typ, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, SelfSym r var, InternalValueExp r var val typ, OOValueExpression r var val typ, Array r var val, List r val, ListStatement r stmt val, Reference r val, Set r val, ScopeSym r scope, MultiStatement r stmt, ValueStatement r stmt val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, DeclStatement r bod stmt var scope val, TypeElim r typ, VariableElim r var typ) => FuncStmt -> GenState (MS (r stmt)) Source #

Converts a FuncStmt to a GOOL Statement.

convStmtProc :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (typ :: k) (val :: k) (scope :: k) (var :: k) (binder :: k). (BlockSym r block stmt, BodySym r bod block, TypeSym r typ, ValueSym r val typ, Literal r val typ, MathConstant r val, ScopeSym r scope, VariableSym r var typ, VariableValue r var val, BooleanExpression r val, NumericExpression r val, ValueExpression r var val binder typ, Comparison r val, Argument r val, Array r var val, List r val, ListStatement r stmt val, NativeVector r val typ, Reference r val, Set r val, MultiStatement r stmt, ValueStatement r stmt val, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, TypeElim r typ, VariableElim r var typ) => FuncStmt -> GenState (MS (r stmt)) Source #

Converts a FuncStmt to a GOOL Statement.

genModDef :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Mod -> GenState (FS (r file)) Source #

Converts a Mod to GOOL.

genModDefProc :: (NativeVector r val typ, MathConstant r val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, VariableValue r var val, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, StringStatement r stmt var val, FileHandling r stmt var val, ReadFile r stmt var val, PrintFile r stmt val, Argument r val, Array r var val, List r val, Reference r val, Set r val, ProcProg r prg file mod mthd vis param bod block stmt var scope val binder typ, TypeElim r typ) => Mod -> GenState (FS (r file)) Source #

Converts a Mod to GOOL.

genModFuncs :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Mod -> [GenState (MS (r mthd))] Source #

Converts a Mod's functions to GOOL.

genModFuncsProc :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (typ :: k) (val :: k) (var :: k) (binder :: k) (param :: k) (vis :: k) (scope :: k) (mthd :: k). (BlockSym r block stmt, BodySym r bod block, TypeSym r typ, ValueSym r val typ, Literal r val typ, NativeVector r val typ, MathConstant r val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, VariableSym r var typ, VariableValue r var val, ParameterSym r param var, VisibilitySym r vis, ScopeSym r scope, MultiStatement r stmt, ValueStatement r stmt val, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, StringStatement r stmt var val, FileHandling r stmt var val, ReadFile r stmt var val, PrintFile r stmt val, Argument r val, Array r var val, List r val, ListStatement r stmt val, Reference r val, MethodSym r mthd vis param bod var typ, Set r val, TypeElim r typ, VariableElim r var typ) => Mod -> [GenState (MS (r mthd))] Source #

Converts a Mod's functions to GOOL.

genModClasses :: OOProg r prg file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Mod -> [GenState (CS (r cls))] Source #

Converts a Mod's classes to GOOL.

readData :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (val :: k) (typ :: k) (var :: k) (binder :: k) (scope :: k). (BlockSym r block stmt, BodySym r bod block, ValueSym r val typ, Argument r val, Literal r val typ, MathConstant r val, BooleanExpression r val, Comparison r val, NumericExpression r val, SelfSym r var, TypeSym r typ, OOTypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, VariableValue r var val, InternalValueExp r var val typ, ValueExpression r var val binder typ, OOValueExpression r var val typ, List r val, ListStatement r stmt val, Reference r val, Set r val, ScopeSym r scope, DeclStatement r bod stmt var scope val, OODeclStatement r stmt var scope val, ControlStatement r bod stmt var val, StringStatement r stmt var val, FileHandling r stmt var val, ReadFile r stmt var val, TypeElim r typ, VariableElim r var typ) => DataDesc -> GenState [MS (r block)] Source #

Read from a data description into an 'MS block' of 'MS Statement's.

readDataProc :: forall {k} r (block :: k) (stmt :: k) (bod :: k) (typ :: k) (val :: k) (var :: k) (binder :: k) (scope :: k). (BlockSym r block stmt, BodySym r bod block, TypeSym r typ, ValueSym r val typ, Literal r val typ, NativeVector r val typ, MathConstant r val, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, VariableSym r var typ, VariableValue r var val, ScopeSym r scope, DeclStatement r bod stmt var scope val, ControlStatement r bod stmt var val, StringStatement r stmt var val, FileHandling r stmt var val, ReadFile r stmt var val, Argument r val, List r val, ListStatement r stmt val, Reference r val, Set r val, TypeElim r typ) => DataDesc -> GenState [MS (r block)] Source #

Read from a data description into an 'MS block' of 'MS Statement's.