| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Drasil.Shared.LanguageRenderer.Macros
Description
Language-polymorphic functions that are defined by GOOL code
Synopsis
- ifExists :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (val :: k) (binder :: k) (typ :: k). (ControlStatement r bod stmt var val, ValueExpression r var val binder typ) => VS (r val) -> MS (r bod) -> MS (r bod) -> MS (r stmt)
- decrement1 :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, Literal r val typ) => VS (r var) -> MS (r stmt)
- increment :: forall {k} r (stmt :: k) (var :: k) (val :: k). (AssignStatement r stmt var val, NumericExpression r val, VariableValue r var val) => VS (r var) -> VS (r val) -> MS (r stmt)
- increment1 :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, Literal r val typ) => VS (r var) -> MS (r stmt)
- runStrategy :: (EmptyStatement r stmt, AssignStatement r stmt var val, BodyElim r bod, Monad r, RenderStatement r stmt, StatementElim r stmt) => Label -> [(Label, MS (r bod))] -> Maybe (VS (r val)) -> Maybe (VS (r var)) -> MS (r Doc)
- listSlice :: (BodySym r bod block, BlockSym r block stmt, EmptyStatement r stmt, ScopeSym r ScopeData, DeclStatement r bod stmt var ScopeData val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, TypeSym r typ, Literal r val typ, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, VariableSym r var typ, VariableValue r var val, IndexTranslator r val, List r val, ListStatement r stmt val, ValueElim r val, VariableElim r var typ) => Maybe (VS (r val)) -> Maybe (VS (r val)) -> Maybe (VS (r val)) -> VS (r var) -> VS (r val) -> MS (r block)
- makeSetterVal :: forall {k} r (stmt :: k) (var :: k) (typ :: k) (bod :: k) (scope :: k) (val :: k) (binder :: k). (EmptyStatement r stmt, VariableSym r var typ, DeclStatement r bod stmt var scope val, TypeSym r typ, Comparison r val, IndexTranslator r val, Literal r val typ, ValueExpression r var val binder typ, VariableValue r var val) => Label -> VS (r val) -> Maybe Integer -> Maybe (VS (r val)) -> VS (r val) -> VS (r val) -> r scope -> (MS (r stmt), VS (r val))
- stringListVals :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (MultiStatement r stmt, AssignStatement r stmt var val, List r val, ValueSym r val typ, Literal r val typ, RenderValue r var val typ, TypeElim r typ, VariableElim r var typ) => [VS (r var)] -> VS (r val) -> MS (r stmt)
- stringListLists :: forall {k} r (bod :: k) (block :: k) (stmt :: k) (var :: k) (val :: k) (typ :: k). (BodySym r bod block, BlockSym r block stmt, ControlStatement r bod stmt var val, TypeSym r typ, ValueSym r val typ, Literal r val typ, NumericExpression r val, VariableSym r var typ, VariableValue r var val, List r val, ListStatement r stmt val, TypeElim r typ, VariableElim r var typ, RenderValue r var val typ) => [VS (r var)] -> VS (r val) -> MS (r stmt)
- forRange :: forall {k} r (scope :: k) (bod :: k) (stmt :: k) (var :: k) (val :: k). (ScopeSym r scope, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, Comparison r val, VariableValue r var val) => VS (r var) -> VS (r val) -> VS (r val) -> VS (r val) -> MS (r bod) -> MS (r stmt)
- notifyObservers :: (BodySym r bod block, BlockSym r block stmt, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, Comparison r val, List r val, ValueStatement r stmt val, ScopeSym r scope, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, OOFunctionSym r val typ) => VS (r FuncData) -> VS (r typ) -> MS (r stmt)
- notifyObservers' :: (BodySym r bod block, BlockSym r block stmt, ValueStatement r stmt val, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, List r val, ControlStatement r bod stmt var val, OOFunctionSym r val typ) => VS (r FuncData) -> VS (r typ) -> MS (r stmt)
- arrayDecAsList :: forall {k} r (bod :: k) (block :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (BodySym r bod block, BlockSym r block stmt, MultiStatement r stmt, DeclStatement r bod stmt var scope val, ControlStatement r bod stmt var val, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, ListStatement r stmt val, VariableElim r var typ) => Integer -> VS (r val) -> VS (r var) -> r scope -> MS (r stmt)
Documentation
ifExists :: forall {k} r (bod :: k) (stmt :: k) (var :: k) (val :: k) (binder :: k) (typ :: k). (ControlStatement r bod stmt var val, ValueExpression r var val binder typ) => VS (r val) -> MS (r bod) -> MS (r bod) -> MS (r stmt) Source #
decrement1 :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, Literal r val typ) => VS (r var) -> MS (r stmt) Source #
increment :: forall {k} r (stmt :: k) (var :: k) (val :: k). (AssignStatement r stmt var val, NumericExpression r val, VariableValue r var val) => VS (r var) -> VS (r val) -> MS (r stmt) Source #
increment1 :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (AssignStatement r stmt var val, Literal r val typ) => VS (r var) -> MS (r stmt) Source #
runStrategy :: (EmptyStatement r stmt, AssignStatement r stmt var val, BodyElim r bod, Monad r, RenderStatement r stmt, StatementElim r stmt) => Label -> [(Label, MS (r bod))] -> Maybe (VS (r val)) -> Maybe (VS (r var)) -> MS (r Doc) Source #
listSlice :: (BodySym r bod block, BlockSym r block stmt, EmptyStatement r stmt, ScopeSym r ScopeData, DeclStatement r bod stmt var ScopeData val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, TypeSym r typ, Literal r val typ, BooleanExpression r val, Comparison r val, NumericExpression r val, ValueExpression r var val binder typ, VariableSym r var typ, VariableValue r var val, IndexTranslator r val, List r val, ListStatement r stmt val, ValueElim r val, VariableElim r var typ) => Maybe (VS (r val)) -> Maybe (VS (r val)) -> Maybe (VS (r val)) -> VS (r var) -> VS (r val) -> MS (r block) Source #
makeSetterVal :: forall {k} r (stmt :: k) (var :: k) (typ :: k) (bod :: k) (scope :: k) (val :: k) (binder :: k). (EmptyStatement r stmt, VariableSym r var typ, DeclStatement r bod stmt var scope val, TypeSym r typ, Comparison r val, IndexTranslator r val, Literal r val typ, ValueExpression r var val binder typ, VariableValue r var val) => Label -> VS (r val) -> Maybe Integer -> Maybe (VS (r val)) -> VS (r val) -> VS (r val) -> r scope -> (MS (r stmt), VS (r val)) Source #
Gets the expression and code for setting bounds in a list slice Input: - String: var name for bound (to be created if necessary), - VS val: step value - Maybe Integer: literal value of step, if exists - Maybe VS val: given value of bound - VS val: value of bound if bound not given and step is positive - VS val: value of bound if bound not given and step is negative Output: (VS val): (setter, value) of bound
stringListVals :: forall {k} r (stmt :: k) (var :: k) (val :: k) (typ :: k). (MultiStatement r stmt, AssignStatement r stmt var val, List r val, ValueSym r val typ, Literal r val typ, RenderValue r var val typ, TypeElim r typ, VariableElim r var typ) => [VS (r var)] -> VS (r val) -> MS (r stmt) Source #
stringListLists :: forall {k} r (bod :: k) (block :: k) (stmt :: k) (var :: k) (val :: k) (typ :: k). (BodySym r bod block, BlockSym r block stmt, ControlStatement r bod stmt var val, TypeSym r typ, ValueSym r val typ, Literal r val typ, NumericExpression r val, VariableSym r var typ, VariableValue r var val, List r val, ListStatement r stmt val, TypeElim r typ, VariableElim r var typ, RenderValue r var val typ) => [VS (r var)] -> VS (r val) -> MS (r stmt) Source #
forRange :: forall {k} r (scope :: k) (bod :: k) (stmt :: k) (var :: k) (val :: k). (ScopeSym r scope, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, Comparison r val, VariableValue r var val) => VS (r var) -> VS (r val) -> VS (r val) -> VS (r val) -> MS (r bod) -> MS (r stmt) Source #
notifyObservers :: (BodySym r bod block, BlockSym r block stmt, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, Comparison r val, List r val, ValueStatement r stmt val, ScopeSym r scope, DeclStatement r bod stmt var scope val, AssignStatement r stmt var val, ControlStatement r bod stmt var val, OOFunctionSym r val typ) => VS (r FuncData) -> VS (r typ) -> MS (r stmt) Source #
notifyObservers' :: (BodySym r bod block, BlockSym r block stmt, ValueStatement r stmt val, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, List r val, ControlStatement r bod stmt var val, OOFunctionSym r val typ) => VS (r FuncData) -> VS (r typ) -> MS (r stmt) Source #
arrayDecAsList :: forall {k} r (bod :: k) (block :: k) (stmt :: k) (var :: k) (scope :: k) (val :: k) (typ :: k). (BodySym r bod block, BlockSym r block stmt, MultiStatement r stmt, DeclStatement r bod stmt var scope val, ControlStatement r bod stmt var val, TypeSym r typ, Literal r val typ, VariableSym r var typ, VariableValue r var val, ListStatement r stmt val, VariableElim r var typ) => Integer -> VS (r val) -> VS (r var) -> r scope -> MS (r stmt) Source #