| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Drasil.Shared.LanguageRenderer.CommonPseudoOO
Description
Implementations defined here are valid in some, but not all, language renderers
Synopsis
- int :: Monad r => VS (r TypeData)
- constructor :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> [MS (r param)] -> Initializers r var val -> MS (r bod) -> MS (r mthd)
- doxFunc :: (BlockCommentSym r, RenderMethod r mthd) => String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd)
- doxClass :: (BlockCommentSym r, RenderClass r cls stvr mthd vis) => String -> CS (r cls) -> CS (r cls)
- doxMod :: (BlockCommentSym r, RenderFile r file mod) => String -> String -> String -> [String] -> String -> FS (r file) -> FS (r file)
- modDoc' :: ModuleDocRenderer
- functionDoc :: FuncDocRenderer
- extVar :: VariableSym r var typ => Library -> Label -> VS (r typ) -> VS (r var)
- classVarAccess :: (InternalVarElim r var, RenderVariable r var TypeData, UnRepr r TypeData, VariableElim r var TypeData) => (Doc -> Doc -> Doc) -> VS (r TypeData) -> VS (r var) -> VS (r var)
- indexOf :: (TypeSym r typ, IndexTranslator r val, OOFunctionSym r val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val)
- contains :: (TypeSym r typ, OOFunctionSym r val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val)
- containsInt :: (TypeSym r typ, Comparison r val, OOFunctionSym r val typ) => Label -> Label -> VS (r val) -> VS (r val) -> VS (r val)
- discardFileLine :: forall {k} r (typ :: k) (var :: k) (val :: k) (stmt :: k). (TypeSym r typ, InternalValueExp r var val typ, ValueStatement r stmt val) => Label -> VS (r val) -> MS (r stmt)
- intClass :: (MethodElim r mthd, Monad r, StateVarElim r stvr, VisibilityElim r vis) => (Label -> Doc -> Doc -> Doc -> Doc -> Doc) -> Label -> r vis -> r ParentSpec -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Doc)
- funcType :: TypeSym r typ => [VS (r typ)] -> VS (r typ) -> VS (r typ)
- buildModule :: forall {k} r (cls :: k) (mthd :: k) (mod :: k). (ClassElim r cls, MethodElim r mthd, RenderMod r mod) => Label -> FS Doc -> FS Doc -> FS Doc -> [MS (r mthd)] -> [CS (r cls)] -> FS (r mod)
- arrayType :: (TypeElim r TypeData, Monad r, UnRepr r TypeData) => VS (r TypeData) -> VS (r TypeData)
- pi :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ) => VS (r val)
- printSt :: forall {k} r (stmt :: k) (val :: k). (RenderStatement r stmt, ValueElim r val) => VS (r val) -> VS (r val) -> MS (r stmt)
- arrayDec :: (TypeSym r TypeData, ScopeElim r ScopeData, UnRepr r TypeData, InternalVarElim r var, RenderStatement r stmt, ValueElim r val, VariableElim r var TypeData) => VS (r val) -> VS (r var) -> r ScopeData -> MS (r stmt)
- arrayDecDef :: 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) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt)
- openFileA :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, TypeSym r typ, Literal r val typ) => (VS (r val) -> VS (r typ) -> VS (r val) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt)
- forEach :: (BodyElim r bod, InternalVarElim r var, RenderStatement r stmt, UnRepr r TypeData, ValueElim r val, VariableElim r var TypeData) => Doc -> Doc -> Doc -> Doc -> VS (r var) -> VS (r val) -> MS (r bod) -> MS (r stmt)
- docMain :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => MS (r bod) -> MS (r mthd)
- mainFunction :: (AttachmentSym r attch, TypeSym r TypeData, VariableSym r var TypeData, MethodTypeSym r TypeData, OORenderMethod r mthd attch vis param bod TypeData, ParameterSym r param var, UnRepr r TypeData, Monad r, VisibilitySym r vis) => VS (r TypeData) -> Label -> MS (r bod) -> MS (r mthd)
- buildModule' :: (OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ, UnRepr r Doc) => Label -> (String -> r Doc) -> [Label] -> [MS (r mthd)] -> [CS (r cls)] -> FS (r mod)
- call' :: forall {k} r (var :: k) (val :: k) (typ :: k). (InternalVarElim r var, RenderValue r var val typ, ValueElim r val) => String -> Maybe Library -> Maybe Doc -> MixedCall r var val typ
- listSizeFunc :: (TypeSym r typ, OOFunctionSym r val typ) => VS (r FuncData)
- listAccessFunc' :: (ValueSym r val typ, OOFunctionSym r val typ, TypeElim r typ) => Label -> VS (r typ) -> VS (r val) -> VS (r FuncData)
- string :: Monad r => VS (r TypeData)
- docInOutFunc :: (BlockCommentSym r, RenderMethod r mthd) => ([VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd)) -> String -> [(String, VS (r var))] -> [(String, VS (r var))] -> [(String, VS (r var))] -> MS (r bod) -> MS (r mthd)
- bindingError :: String -> String
- extFuncAppMixedArgs :: ValueExpression r var val binder typ => Library -> MixedCall r var val typ
- notNull :: forall {k} r (val :: k) (typ :: k) (var :: k). (ValueSym r val typ, Comparison r val, VariableSym r var typ, VariableValue r var val) => String -> VS (r val) -> VS (r val)
- listDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt)
- destructorError :: String -> String
- stateVarDef :: (OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ, Monad r) => r vis -> r attch -> VS (r var) -> VS (r val) -> CS (r Doc)
- constVar :: (CommonRenderSym r mthd vis param bod block stmt var scope val binder typ, Monad r) => Doc -> r vis -> VS (r var) -> VS (r val) -> CS (r Doc)
- litArray :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => (Doc -> Doc) -> VS (r typ) -> [VS (r val)] -> VS (r val)
- litSet :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => (Doc -> Doc) -> (Doc -> Doc) -> VS (r typ) -> [VS (r val)] -> VS (r val)
- litSetFunc :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => String -> VS (r typ) -> [VS (r val)] -> VS (r val)
- extraClass :: (RenderClass r cls stvr mthd vis, VisibilitySym r vis) => Label -> Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r cls)
- listAccessFunc :: forall {k} r (val :: k). ValueElim r val => r val -> Doc
- doubleRender :: String
- double :: Monad r => VS (r TypeData)
- openFileR :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, AssignStatement r stmt var val) => (VS (r val) -> VS (r typ) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt)
- openFileW :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, TypeSym r typ, Literal r val typ) => (VS (r val) -> VS (r typ) -> VS (r val) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt)
- stateVar :: (Monad r, OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ) => r vis -> r attch -> VS (r var) -> CS (r Doc)
- self :: forall {k} r (typ :: k) (var :: k). (OOTypeSym r typ, RenderVariable r var typ) => VS (r var)
- multiAssign :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, AssignStatement r stmt var val, InternalVarElim r var, RenderValue r var val typ, RenderVariable r var typ, ValueElim r val) => (Doc -> Doc) -> [VS (r var)] -> [VS (r val)] -> MS (r stmt)
- multiReturn :: forall {k} r (typ :: k) (bod :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, ControlStatement r bod stmt var val, RenderValue r var val typ, ValueElim r val) => (Doc -> Doc) -> [VS (r val)] -> MS (r stmt)
- listDec :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> MS (r stmt)
- funcDecDef :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var ScopeData val binder typ => VS (r var) -> r ScopeData -> [VS (r var)] -> MS (r bod) -> MS (r stmt)
- inOutCall :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, InternalAssignStmt r stmt var val, ValueStatement r stmt val, VariableValue r var val) => (Label -> VS (r typ) -> [VS (r val)] -> VS (r val)) -> Label -> [VS (r val)] -> [VS (r var)] -> [VS (r var)] -> MS (r stmt)
- forLoopError :: String -> String
- mainBody :: (BodyElim r bod, RenderMethod r mthd) => MS (r bod) -> MS (r mthd)
- inOutFunc :: forall {k} r (var :: k) (val :: k) (param :: k) (typ :: k) (scope :: k) (bod :: k) (stmt :: k) (block :: k) (mthd :: k). (VariableValue r var val, ParameterSym r param var, TypeSym r typ, ScopeSym r scope, DeclStatement r bod stmt var scope val, BlockSym r block stmt, BodySym r bod block, VariableElim r var typ, RenderBody r bod, RenderType r typ, InternalControlStmt r stmt val) => (VS (r typ) -> [MS (r param)] -> MS (r bod) -> MS (r mthd)) -> [VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd)
- docInOutFunc' :: (BlockCommentSym r, RenderMethod r mthd) => FuncDocRenderer -> ([VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd)) -> String -> [(String, VS (r var))] -> [(String, VS (r var))] -> [(String, VS (r var))] -> MS (r bod) -> MS (r mthd)
- bool :: TypeSym r typ => VS (r typ)
- floatRender :: String
- float :: Monad r => VS (r TypeData)
- stringRender' :: String
- string' :: Monad r => VS (r TypeData)
- inherit :: Monad r => Maybe Label -> r ParentSpec
- implements :: Monad r => [Label] -> r ParentSpec
- listSize :: List r val => VS (r val) -> VS (r val)
- listSet :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, ValueSym r val typ, IndexTranslator r val, RenderVariable r var typ, ValueElim r val) => VS (r val) -> VS (r val) -> VS (r val) -> MS (r stmt)
- setDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt)
- setDec :: 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)
- intToIndex :: forall {k} r (val :: k). VS (r val) -> VS (r val)
- indexToInt :: forall {k} r (val :: k). VS (r val) -> VS (r val)
- intToIndex' :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, Literal r val typ, NumericExpression r val, RenderValue r var val typ, ValueElim r val) => VS (r val) -> VS (r val)
- indexToInt' :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, Literal r val typ, NumericExpression r val, RenderValue r var val typ, ValueElim r val) => VS (r val) -> VS (r val)
- varDecDef :: DeclStatement r bod stmt var scope val => VS (r var) -> r scope -> VS (r val) -> MS (r stmt)
- openFileR' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val)
- openFileW' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val)
- openFileA' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val)
- argExists :: forall {k} r (val :: k) (typ :: k). (Literal r val typ, CommandLineArgs r val, Comparison r val, List r val) => Integer -> VS (r val)
- global :: Monad r => r ScopeData
- setMethodCall :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, ValueSym r val typ, InternalValueExp r var val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val)
Documentation
constructor :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => Label -> [MS (r param)] -> Initializers r var val -> MS (r bod) -> MS (r mthd) Source #
doxFunc :: (BlockCommentSym r, RenderMethod r mthd) => String -> [String] -> Maybe String -> MS (r mthd) -> MS (r mthd) Source #
doxClass :: (BlockCommentSym r, RenderClass r cls stvr mthd vis) => String -> CS (r cls) -> CS (r cls) Source #
doxMod :: (BlockCommentSym r, RenderFile r file mod) => String -> String -> String -> [String] -> String -> FS (r file) -> FS (r file) Source #
modDoc' :: ModuleDocRenderer Source #
Generates Markdown/DocC style module doc comment. Useful for Swift, which follows DocC, Julia, which uses Markdown, and any other language that doesn't have Support for a document generator.
functionDoc :: FuncDocRenderer Source #
Generates Markdown/DocC style function doc comment.
extVar :: VariableSym r var typ => Library -> Label -> VS (r typ) -> VS (r var) Source #
An instance- or module-level variable from an external library.
Given library Lib, variable name v, and variable type t,
it performs the necessary imports and creates v
classVarAccess :: (InternalVarElim r var, RenderVariable r var TypeData, UnRepr r TypeData, VariableElim r var TypeData) => (Doc -> Doc -> Doc) -> VS (r TypeData) -> VS (r var) -> VS (r var) Source #
indexOf :: (TypeSym r typ, IndexTranslator r val, OOFunctionSym r val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val) Source #
contains :: (TypeSym r typ, OOFunctionSym r val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val) Source #
containsInt :: (TypeSym r typ, Comparison r val, OOFunctionSym r val typ) => Label -> Label -> VS (r val) -> VS (r val) -> VS (r val) Source #
discardFileLine :: forall {k} r (typ :: k) (var :: k) (val :: k) (stmt :: k). (TypeSym r typ, InternalValueExp r var val typ, ValueStatement r stmt val) => Label -> VS (r val) -> MS (r stmt) Source #
intClass :: (MethodElim r mthd, Monad r, StateVarElim r stvr, VisibilityElim r vis) => (Label -> Doc -> Doc -> Doc -> Doc -> Doc) -> Label -> r vis -> r ParentSpec -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r Doc) Source #
An internal function for creating a class. Parameters: render function, class name, scope, parent, class variables, constructor(s), methods
buildModule :: forall {k} r (cls :: k) (mthd :: k) (mod :: k). (ClassElim r cls, MethodElim r mthd, RenderMod r mod) => Label -> FS Doc -> FS Doc -> FS Doc -> [MS (r mthd)] -> [CS (r cls)] -> FS (r mod) Source #
arrayType :: (TypeElim r TypeData, Monad r, UnRepr r TypeData) => VS (r TypeData) -> VS (r TypeData) Source #
pi :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ) => VS (r val) Source #
printSt :: forall {k} r (stmt :: k) (val :: k). (RenderStatement r stmt, ValueElim r val) => VS (r val) -> VS (r val) -> MS (r stmt) Source #
arrayDec :: (TypeSym r TypeData, ScopeElim r ScopeData, UnRepr r TypeData, InternalVarElim r var, RenderStatement r stmt, ValueElim r val, VariableElim r var TypeData) => VS (r val) -> VS (r var) -> r ScopeData -> MS (r stmt) Source #
arrayDecDef :: 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) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #
openFileA :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, TypeSym r typ, Literal r val typ) => (VS (r val) -> VS (r typ) -> VS (r val) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt) Source #
forEach :: (BodyElim r bod, InternalVarElim r var, RenderStatement r stmt, UnRepr r TypeData, ValueElim r val, VariableElim r var TypeData) => Doc -> Doc -> Doc -> Doc -> VS (r var) -> VS (r val) -> MS (r bod) -> MS (r stmt) Source #
docMain :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ => MS (r bod) -> MS (r mthd) Source #
mainFunction :: (AttachmentSym r attch, TypeSym r TypeData, VariableSym r var TypeData, MethodTypeSym r TypeData, OORenderMethod r mthd attch vis param bod TypeData, ParameterSym r param var, UnRepr r TypeData, Monad r, VisibilitySym r vis) => VS (r TypeData) -> Label -> MS (r bod) -> MS (r mthd) Source #
buildModule' :: (OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ, UnRepr r Doc) => Label -> (String -> r Doc) -> [Label] -> [MS (r mthd)] -> [CS (r cls)] -> FS (r mod) Source #
Used by the language renderers to build the module. n is the module name inc is the include is is the import statements ms is the class methods cs is the classes
call' :: forall {k} r (var :: k) (val :: k) (typ :: k). (InternalVarElim r var, RenderValue r var val typ, ValueElim r val) => String -> Maybe Library -> Maybe Doc -> MixedCall r var val typ Source #
First parameter is language name, rest similar to call from RendererClassesCommon
listSizeFunc :: (TypeSym r typ, OOFunctionSym r val typ) => VS (r FuncData) Source #
listAccessFunc' :: (ValueSym r val typ, OOFunctionSym r val typ, TypeElim r typ) => Label -> VS (r typ) -> VS (r val) -> VS (r FuncData) Source #
docInOutFunc :: (BlockCommentSym r, RenderMethod r mthd) => ([VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd)) -> String -> [(String, VS (r var))] -> [(String, VS (r var))] -> [(String, VS (r var))] -> MS (r bod) -> MS (r mthd) Source #
bindingError :: String -> String Source #
extFuncAppMixedArgs :: ValueExpression r var val binder typ => Library -> MixedCall r var val typ Source #
notNull :: forall {k} r (val :: k) (typ :: k) (var :: k). (ValueSym r val typ, Comparison r val, VariableSym r var typ, VariableValue r var val) => String -> VS (r val) -> VS (r val) Source #
listDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #
destructorError :: String -> String Source #
stateVarDef :: (OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ, Monad r) => r vis -> r attch -> VS (r var) -> VS (r val) -> CS (r Doc) Source #
constVar :: (CommonRenderSym r mthd vis param bod block stmt var scope val binder typ, Monad r) => Doc -> r vis -> VS (r var) -> VS (r val) -> CS (r Doc) Source #
litArray :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => (Doc -> Doc) -> VS (r typ) -> [VS (r val)] -> VS (r val) Source #
litSet :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => (Doc -> Doc) -> (Doc -> Doc) -> VS (r typ) -> [VS (r val)] -> VS (r val) Source #
litSetFunc :: forall {k} r (var :: k) (val :: k) (typ :: k). (RenderValue r var val typ, TypeSym r typ, ValueElim r val) => String -> VS (r typ) -> [VS (r val)] -> VS (r val) Source #
extraClass :: (RenderClass r cls stvr mthd vis, VisibilitySym r vis) => Label -> Maybe Label -> [CSStateVar r stvr] -> [MS (r mthd)] -> [MS (r mthd)] -> CS (r cls) Source #
listAccessFunc :: forall {k} r (val :: k). ValueElim r val => r val -> Doc Source #
openFileR :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, AssignStatement r stmt var val) => (VS (r val) -> VS (r typ) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt) Source #
openFileW :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, TypeSym r typ, Literal r val typ) => (VS (r val) -> VS (r typ) -> VS (r val) -> VS (r val)) -> VS (r var) -> VS (r val) -> MS (r stmt) Source #
stateVar :: (Monad r, OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var scope val binder typ) => r vis -> r attch -> VS (r var) -> CS (r Doc) Source #
self :: forall {k} r (typ :: k) (var :: k). (OOTypeSym r typ, RenderVariable r var typ) => VS (r var) Source #
multiAssign :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, AssignStatement r stmt var val, InternalVarElim r var, RenderValue r var val typ, RenderVariable r var typ, ValueElim r val) => (Doc -> Doc) -> [VS (r var)] -> [VS (r val)] -> MS (r stmt) Source #
multiReturn :: forall {k} r (typ :: k) (bod :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, ControlStatement r bod stmt var val, RenderValue r var val typ, ValueElim r val) => (Doc -> Doc) -> [VS (r val)] -> MS (r stmt) Source #
listDec :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> MS (r stmt) Source #
funcDecDef :: OORenderSym r file mod cls stvr mthd attch vis param bod block stmt var ScopeData val binder typ => VS (r var) -> r ScopeData -> [VS (r var)] -> MS (r bod) -> MS (r stmt) Source #
inOutCall :: forall {k} r (typ :: k) (stmt :: k) (var :: k) (val :: k). (TypeSym r typ, InternalAssignStmt r stmt var val, ValueStatement r stmt val, VariableValue r var val) => (Label -> VS (r typ) -> [VS (r val)] -> VS (r val)) -> Label -> [VS (r val)] -> [VS (r var)] -> [VS (r var)] -> MS (r stmt) Source #
forLoopError :: String -> String Source #
inOutFunc :: forall {k} r (var :: k) (val :: k) (param :: k) (typ :: k) (scope :: k) (bod :: k) (stmt :: k) (block :: k) (mthd :: k). (VariableValue r var val, ParameterSym r param var, TypeSym r typ, ScopeSym r scope, DeclStatement r bod stmt var scope val, BlockSym r block stmt, BodySym r bod block, VariableElim r var typ, RenderBody r bod, RenderType r typ, InternalControlStmt r stmt val) => (VS (r typ) -> [MS (r param)] -> MS (r bod) -> MS (r mthd)) -> [VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd) Source #
docInOutFunc' :: (BlockCommentSym r, RenderMethod r mthd) => FuncDocRenderer -> ([VS (r var)] -> [VS (r var)] -> [VS (r var)] -> MS (r bod) -> MS (r mthd)) -> String -> [(String, VS (r var))] -> [(String, VS (r var))] -> [(String, VS (r var))] -> MS (r bod) -> MS (r mthd) Source #
floatRender :: String Source #
implements :: Monad r => [Label] -> r ParentSpec Source #
listSize :: List r val => VS (r val) -> VS (r val) Source #
Finds the size of a list. Arguments are: List
listSet :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, ValueSym r val typ, IndexTranslator r val, RenderVariable r var typ, ValueElim r val) => VS (r val) -> VS (r val) -> VS (r val) -> MS (r stmt) Source #
setDecDef :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (DeclStatement r bod stmt var scope val, TypeSym r typ, Literal r val typ, VariableElim r var typ) => VS (r var) -> r scope -> [VS (r val)] -> MS (r stmt) Source #
setDec :: 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 #
intToIndex :: forall {k} r (val :: k). VS (r val) -> VS (r val) Source #
Convert an integer to an index in a 0-indexed language Since GOOL is 0-indexed, no adjustments need be made
indexToInt :: forall {k} r (val :: k). VS (r val) -> VS (r val) Source #
Convert an index to an integer in a 0-indexed language Since GOOL is 0-indexed, no adjustments need be made
intToIndex' :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, Literal r val typ, NumericExpression r val, RenderValue r var val typ, ValueElim r val) => VS (r val) -> VS (r val) Source #
Convert an integer to an index in a 1-indexed language Since GOOL is 0-indexed, we need to add 1
indexToInt' :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, Literal r val typ, NumericExpression r val, RenderValue r var val typ, ValueElim r val) => VS (r val) -> VS (r val) Source #
Convert an index to an integer in a 1-indexed language Since GOOL is 0-indexed, we need to subtract 1
varDecDef :: DeclStatement r bod stmt var scope val => VS (r var) -> r scope -> VS (r val) -> MS (r stmt) Source #
Declare a variable and give it a value.
Not for use with arrays; use arrayDecDef instead.
openFileR' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val) Source #
openFileW' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val) Source #
openFileA' :: forall {k} r (typ :: k) (val :: k) (var :: k) (binder :: k). (TypeSym r typ, Literal r val typ, ValueExpression r var val binder typ) => VS (r val) -> VS (r val) Source #
argExists :: forall {k} r (val :: k) (typ :: k). (Literal r val typ, CommandLineArgs r val, Comparison r val, List r val) => Integer -> VS (r val) Source #
setMethodCall :: forall {k} r (typ :: k) (val :: k) (var :: k). (TypeSym r typ, ValueSym r val typ, InternalValueExp r var val typ) => Label -> VS (r val) -> VS (r val) -> VS (r val) Source #