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

Drasil.Shared.LanguageRenderer.CLike

Description

Implementations for C-like renderers are defined here.

Documentation

notOp :: Monad r => VSOp r Source #

andOp :: Monad r => VSOp r Source #

orOp :: Monad r => VSOp r Source #

self :: forall {k} r (typ :: k) (var :: k). (OOTypeSym r typ, RenderVariable r var typ) => VS (r var) Source #

litTrue :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ) => VS (r val) Source #

litFalse :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ) => VS (r val) Source #

litFloat :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ) => Float -> VS (r val) Source #

inlineIf :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, ValueElim r val, ValueSym r val typ) => VS (r val) -> VS (r val) -> VS (r val) -> VS (r val) Source #

libFuncAppMixedArgs :: forall {k} r (var :: k) (val :: k) (binder :: k) (typ :: k). ValueExpression r var val binder typ => Library -> MixedCall r var val typ Source #

libNewObjMixedArgs :: forall {k} r (var :: k) (val :: k) (typ :: k). OOValueExpression r var val typ => Library -> MixedCtorCall r var val typ Source #

listSize :: forall {k} r (typ :: k) (var :: k) (val :: k). (TypeSym r typ, InternalValueExp r var val typ) => String -> VS (r val) -> VS (r val) Source #

listSize' :: forall {k} r (typ :: k) (var :: k) (val :: k). (TypeSym r typ, VariableSym r var typ, OOVariableSym r var val typ, VariableValue r var val) => String -> VS (r val) -> VS (r val) Source #

increment :: forall {k} r (var :: k) (stmt :: k) (val :: k). (InternalVarElim r var, RenderStatement r stmt, ValueElim r val) => VS (r var) -> VS (r val) -> MS (r stmt) Source #

increment1 :: forall {k} r (var :: k) (stmt :: k). (InternalVarElim r var, RenderStatement r stmt) => VS (r var) -> MS (r stmt) Source #

decrement1 :: forall {k} r (var :: k) (stmt :: k). (InternalVarElim r var, RenderStatement r stmt) => VS (r var) -> MS (r stmt) Source #

varDec :: (InternalVarElim r var, PermElim r attch, RenderStatement r stmt, ScopeElim r ScopeData, UnRepr r TypeData, TypeElim r TypeData, VariableElim r var TypeData) => r attch -> r attch -> Doc -> VS (r var) -> r ScopeData -> MS (r stmt) Source #

varDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k). (DeclStatement r bod stmt var scope val, RenderStatement r stmt, StatementElim r stmt, ValueElim r val) => Terminator -> VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #

setDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k). (DeclStatement r bod stmt var scope val, RenderStatement r stmt, StatementElim r stmt, ValueElim r val) => Terminator -> VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #

listDec :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k). (DeclStatement r bod stmt var scope val, RenderStatement r stmt, StatementElim r stmt) => (r val -> Doc) -> VS (r val) -> VS (r var) -> r scope -> MS (r stmt) Source #

extObjDecNew :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, OOValueExpression r var val typ, VariableElim r var typ) => Library -> VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #

switch :: forall {k} r (bod :: k) (stmt :: k) (val :: k). (BodyElim r bod, RenderStatement r stmt, StatementElim r stmt, ValueElim r val) => (Doc -> Doc) -> MS (r stmt) -> VS (r val) -> [(VS (r val), MS (r bod))] -> MS (r bod) -> MS (r stmt) Source #

for :: forall {k} r (bod :: k) (stmt :: k) (val :: k). (BodyElim r bod, RenderStatement r stmt, StatementElim r stmt, ValueElim r val) => Doc -> Doc -> MS (r stmt) -> VS (r val) -> MS (r stmt) -> MS (r bod) -> MS (r stmt) Source #

while :: forall {k} r (bod :: k) (stmt :: k) (val :: k). (BodyElim r bod, RenderStatement r stmt, ValueElim r val) => (Doc -> Doc) -> Doc -> Doc -> VS (r val) -> MS (r bod) -> MS (r stmt) Source #