| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Drasil.GProc
Description
re-export smart constructors for external code writing
Synopsis
- type Label = String
- type GSProgram a = GS (a (Program a))
- type SFile a = FS (a (File a))
- type MSBody a = MS (a (Body a))
- type MSBlock a = MS (a (Block a))
- type VSType a = VS (a TypeData)
- type SVariable a = VS (a (Variable a))
- type SValue a = VS (a (Value a))
- type VSFunction a = VS (a (Function a))
- type MSStatement a = MS (a (Statement a))
- type MSParameter a = MS (a (Parameter a))
- type SMethod a = MS (a (Method a))
- type FSModule a = FS (a (Module a))
- type NamedArgs r = [(SVariable r, SValue r)]
- class (UnRepr r TypeData, VectorType r, VectorDecl r, VectorThunk r, VectorExpression r, ThunkAssign r, AssignStatement r, DeclStatement r, IOStatement r, StringStatement r, FunctionSym r, FuncAppStatement r, CommentStatement r, ControlStatement r, InternalList r, Argument r, Literal r, MathConstant r, VariableValue r, CommandLineArgs r, NumericExpression r, BooleanExpression r, Comparison r, ValueExpression r, IndexTranslator r, Array r, List r, Set r, VariableElim r, MethodSym r, ScopeSym r, BinderSym r) => SharedProg r
- class (SharedProg r, ProgramSym r) => ProcProg r
- class FileSym r => ProgramSym r where
- class ModuleSym r => FileSym r where
- class BlockSym r => BodySym r where
- bodyStatements :: BodySym r => [MSStatement r] -> MSBody r
- oneLiner :: BodySym r => MSStatement r -> MSBody r
- class StatementSym r => BlockSym r where
- type Block r
- block :: [MSStatement r] -> MSBlock r
- class TypeSym r where
- bool :: VSType r
- int :: VSType r
- float :: VSType r
- double :: VSType r
- char :: VSType r
- string :: VSType r
- infile :: VSType r
- outfile :: VSType r
- listType :: VSType r -> VSType r
- setType :: VSType r -> VSType r
- arrayType :: VSType r -> VSType r
- listInnerType :: VSType r -> VSType r
- funcType :: [VSType r] -> VSType r -> VSType r
- void :: VSType r
- class TypeSym r => BinderSym r where
- class ThunkSym r where
- class TypeSym r => VectorType r where
- class DeclStatement r => VectorDecl r where
- vecDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r
- vecDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
- class (VariableSym r, ThunkSym r) => VectorThunk r where
- class (ThunkSym r, ValueSym r) => VectorExpression r where
- class (VariableSym r, ThunkSym r, StatementSym r) => ThunkAssign r where
- thunkAssign :: SVariable r -> VSThunk r -> MSStatement r
- class ValueSym r => StatementSym r where
- type Statement r
- valStmt :: SValue r -> MSStatement r
- emptyStmt :: MSStatement r
- multi :: [MSStatement r] -> MSStatement r
- class (VariableSym r, StatementSym r) => AssignStatement r where
- (&-=) :: SVariable r -> SValue r -> MSStatement r
- (&+=) :: SVariable r -> SValue r -> MSStatement r
- (&++) :: SVariable r -> MSStatement r
- (&--) :: SVariable r -> MSStatement r
- assign :: SVariable r -> SValue r -> MSStatement r
- (&=) :: AssignStatement r => SVariable r -> SValue r -> MSStatement r
- assignToListIndex :: (StatementSym r, VariableValue r, List r) => SVariable r -> SValue r -> SValue r -> MSStatement r
- class (VariableSym r, StatementSym r, ScopeSym r) => DeclStatement r where
- varDec :: SVariable r -> r ScopeData -> MSStatement r
- varDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r
- listDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r
- listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
- setDec :: SVariable r -> r ScopeData -> MSStatement r
- setDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r
- arrayDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r
- arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r
- constDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r
- funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MSBody r -> MSStatement r
- class (VariableSym r, StatementSym r) => IOStatement r where
- print :: SValue r -> MSStatement r
- printLn :: SValue r -> MSStatement r
- printStr :: String -> MSStatement r
- printStrLn :: String -> MSStatement r
- printFile :: SValue r -> SValue r -> MSStatement r
- printFileLn :: SValue r -> SValue r -> MSStatement r
- printFileStr :: SValue r -> String -> MSStatement r
- printFileStrLn :: SValue r -> String -> MSStatement r
- getInput :: SVariable r -> MSStatement r
- discardInput :: MSStatement r
- getFileInput :: SValue r -> SVariable r -> MSStatement r
- discardFileInput :: SValue r -> MSStatement r
- openFileR :: SVariable r -> SValue r -> MSStatement r
- openFileW :: SVariable r -> SValue r -> MSStatement r
- openFileA :: SVariable r -> SValue r -> MSStatement r
- closeFile :: SValue r -> MSStatement r
- getFileInputLine :: SValue r -> SVariable r -> MSStatement r
- discardFileLine :: SValue r -> MSStatement r
- getFileInputAll :: SValue r -> SVariable r -> MSStatement r
- class (VariableSym r, StatementSym r) => StringStatement r where
- stringSplit :: Char -> SVariable r -> SValue r -> MSStatement r
- stringListVals :: [SVariable r] -> SValue r -> MSStatement r
- stringListLists :: [SVariable r] -> SValue r -> MSStatement r
- class (VariableSym r, StatementSym r) => FuncAppStatement r where
- inOutCall :: InOutCall r
- extInOutCall :: Library -> InOutCall r
- class StatementSym r => CommentStatement r where
- comment :: String -> MSStatement r
- class (BodySym r, VariableSym r) => ControlStatement r where
- break :: MSStatement r
- continue :: MSStatement r
- returnStmt :: SValue r -> MSStatement r
- throw :: Label -> MSStatement r
- ifCond :: [(SValue r, MSBody r)] -> MSBody r -> MSStatement r
- switch :: SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r
- ifExists :: SValue r -> MSBody r -> MSBody r -> MSStatement r
- for :: MSStatement r -> SValue r -> MSStatement r -> MSBody r -> MSStatement r
- forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MSBody r -> MSStatement r
- forEach :: SVariable r -> SValue r -> MSBody r -> MSStatement r
- while :: SValue r -> MSBody r -> MSStatement r
- tryCatch :: MSBody r -> MSBody r -> MSStatement r
- assert :: SValue r -> SValue r -> MSStatement r
- ifNoElse :: ControlStatement r => [(SValue r, MSBody r)] -> MSStatement r
- switchAsIf :: (ControlStatement r, Comparison r) => SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r
- class TypeSym r => VariableSym r where
- class ScopeSym r where
- data ScopeData
- class VariableSym r => VariableElim r where
- variableName :: r (Variable r) -> String
- variableType :: r (Variable r) -> r TypeData
- listOf :: VariableSym r => Label -> VSType r -> SVariable r
- listVar :: VariableSym r => Label -> VSType r -> SVariable r
- class TypeSym r => ValueSym r where
- class ValueSym r => Argument r where
- pointerArg :: SValue r -> SValue r
- class ValueSym r => Literal r where
- litTrue :: SValue r
- litFalse :: SValue r
- litChar :: Char -> SValue r
- litDouble :: Double -> SValue r
- litFloat :: Float -> SValue r
- litInt :: Integer -> SValue r
- litString :: String -> SValue r
- litArray :: VSType r -> [SValue r] -> SValue r
- litList :: VSType r -> [SValue r] -> SValue r
- litSet :: VSType r -> [SValue r] -> SValue r
- class ValueSym r => MathConstant r where
- class (VariableSym r, ValueSym r) => VariableValue r where
- class ValueSym r => CommandLineArgs r where
- class ValueSym r => NumericExpression r where
- (#~) :: SValue r -> SValue r
- (#/^) :: SValue r -> SValue r
- (#|) :: SValue r -> SValue r
- (#+) :: SValue r -> SValue r -> SValue r
- (#-) :: SValue r -> SValue r -> SValue r
- (#*) :: SValue r -> SValue r -> SValue r
- (#/) :: SValue r -> SValue r -> SValue r
- (#%) :: SValue r -> SValue r -> SValue r
- (#^) :: SValue r -> SValue r -> SValue r
- log :: SValue r -> SValue r
- ln :: SValue r -> SValue r
- exp :: SValue r -> SValue r
- sin :: SValue r -> SValue r
- cos :: SValue r -> SValue r
- tan :: SValue r -> SValue r
- csc :: SValue r -> SValue r
- sec :: SValue r -> SValue r
- cot :: SValue r -> SValue r
- arcsin :: SValue r -> SValue r
- arccos :: SValue r -> SValue r
- arctan :: SValue r -> SValue r
- floor :: SValue r -> SValue r
- ceil :: SValue r -> SValue r
- class ValueSym r => BooleanExpression r where
- class ValueSym r => Comparison r where
- class (VariableSym r, ValueSym r) => ValueExpression r where
- inlineIf :: SValue r -> SValue r -> SValue r -> SValue r
- funcAppMixedArgs :: MixedCall r
- extFuncAppMixedArgs :: Library -> MixedCall r
- libFuncAppMixedArgs :: Library -> MixedCall r
- lambda :: [VSBinder r] -> SValue r -> SValue r
- notNull :: SValue r -> SValue r
- funcApp :: ValueExpression r => PosCall r
- funcAppNamedArgs :: ValueExpression r => Label -> VSType r -> NamedArgs r -> SValue r
- extFuncApp :: ValueExpression r => Library -> PosCall r
- libFuncApp :: ValueExpression r => Library -> PosCall r
- exists :: ValueExpression r => SValue r -> SValue r
- class ValueSym r => FunctionSym r where
- type Function r
- class IndexTranslator r => Array r where
- class IndexTranslator r => List r where
- class ValueSym r => Set r where
- listSlice :: InternalList r => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MSBlock r
- listIndexExists :: (List r, Comparison r) => SValue r -> SValue r -> SValue r
- at :: List r => SValue r -> SValue r -> SValue r
- class VisibilitySym r where
- type Visibility r
- private :: r (Visibility r)
- public :: r (Visibility r)
- class VariableSym r => ParameterSym r where
- type Parameter r
- param :: SVariable r -> MSParameter r
- pointerParam :: SVariable r -> MSParameter r
- class (BodySym r, ParameterSym r, VisibilitySym r) => MethodSym r where
- type Method r
- docMain :: MSBody r -> SMethod r
- function :: Label -> r (Visibility r) -> VSType r -> [MSParameter r] -> MSBody r -> SMethod r
- mainFunction :: MSBody r -> SMethod r
- docFunc :: String -> [String] -> Maybe String -> SMethod r -> SMethod r
- inOutFunc :: Label -> r (Visibility r) -> InOutFunc r
- docInOutFunc :: Label -> r (Visibility r) -> DocInOutFunc r
- class MethodSym r => ModuleSym r where
- convType :: TypeSym r => CodeType -> VSType r
- data ProgData
- data FileData
- data ModData
- data VisibilityTag
- data CodeType
- data GOOLState = GS {}
- lensMStoVS :: Lens' MethodState ValueState
- headers :: Lens' GOOLState [FilePath]
- sources :: Lens' GOOLState [FilePath]
- mainMod :: Lens' GOOLState (Maybe FilePath)
- initialState :: GOOLState
- onStateValue :: (a -> b) -> State s a -> State s b
- onCodeList :: Monad m => ([a] -> b) -> [m a] -> m b
- unCI :: CodeInfoProc a -> a
- unJLC :: JuliaCode a -> a
- jlName :: String
- jlVersion :: String
- newtype LoggingFor (lang :: Type -> Type) a = LC {
- unLC :: a
- getCodeType :: UnRepr r TypeData => r TypeData -> CodeType
- getTypeString :: UnRepr r TypeData => r TypeData -> String
Documentation
type VSFunction a = VS (a (Function a)) Source #
type MSStatement a = MS (a (Statement a)) Source #
type MSParameter a = MS (a (Parameter a)) Source #
class (UnRepr r TypeData, VectorType r, VectorDecl r, VectorThunk r, VectorExpression r, ThunkAssign r, AssignStatement r, DeclStatement r, IOStatement r, StringStatement r, FunctionSym r, FuncAppStatement r, CommentStatement r, ControlStatement r, InternalList r, Argument r, Literal r, MathConstant r, VariableValue r, CommandLineArgs r, NumericExpression r, BooleanExpression r, Comparison r, ValueExpression r, IndexTranslator r, Array r, List r, Set r, VariableElim r, MethodSym r, ScopeSym r, BinderSym r) => SharedProg r Source #
class (SharedProg r, ProgramSym r) => ProcProg r Source #
class FileSym r => ProgramSym r where Source #
bodyStatements :: BodySym r => [MSStatement r] -> MSBody r Source #
class StatementSym r => BlockSym r where Source #
Methods
block :: [MSStatement r] -> MSBlock r Source #
class TypeSym r where Source #
Methods
listType :: VSType r -> VSType r Source #
setType :: VSType r -> VSType r Source #
arrayType :: VSType r -> VSType r Source #
listInnerType :: VSType r -> VSType r Source #
Instances
| TypeSym (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods bool :: VSType (LoggingFor lang) Source # int :: VSType (LoggingFor lang) Source # float :: VSType (LoggingFor lang) Source # double :: VSType (LoggingFor lang) Source # char :: VSType (LoggingFor lang) Source # string :: VSType (LoggingFor lang) Source # infile :: VSType (LoggingFor lang) Source # outfile :: VSType (LoggingFor lang) Source # listType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang) Source # setType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang) Source # arrayType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang) Source # listInnerType :: VSType (LoggingFor lang) -> VSType (LoggingFor lang) Source # funcType :: [VSType (LoggingFor lang)] -> VSType (LoggingFor lang) -> VSType (LoggingFor lang) Source # void :: VSType (LoggingFor lang) Source # | |
class DeclStatement r => VectorDecl r where Source #
class (VariableSym r, ThunkSym r) => VectorThunk r where Source #
class (ThunkSym r, ValueSym r) => VectorExpression r where Source #
class (VariableSym r, ThunkSym r, StatementSym r) => ThunkAssign r where Source #
Methods
thunkAssign :: SVariable r -> VSThunk r -> MSStatement r Source #
class ValueSym r => StatementSym r where Source #
Methods
valStmt :: SValue r -> MSStatement r Source #
emptyStmt :: MSStatement r Source #
multi :: [MSStatement r] -> MSStatement r Source #
class (VariableSym r, StatementSym r) => AssignStatement r where Source #
(&=) :: AssignStatement r => SVariable r -> SValue r -> MSStatement r infixr 1 Source #
assignToListIndex :: (StatementSym r, VariableValue r, List r) => SVariable r -> SValue r -> SValue r -> MSStatement r Source #
class (VariableSym r, StatementSym r, ScopeSym r) => DeclStatement r where Source #
Methods
varDec :: SVariable r -> r ScopeData -> MSStatement r Source #
Declare a variable without giving it a value.
Not for use with arrays; use arrayDec instead.
varDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #
Declare a variable and give it a value.
Not for use with arrays; use arrayDecDef instead.
listDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r Source #
listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r Source #
setDec :: SVariable r -> r ScopeData -> MSStatement r Source #
setDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #
arrayDec :: Integer -> SVariable r -> r ScopeData -> MSStatement r Source #
arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MSStatement r Source #
constDecDef :: SVariable r -> r ScopeData -> SValue r -> MSStatement r Source #
funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MSBody r -> MSStatement r Source #
class (VariableSym r, StatementSym r) => IOStatement r where Source #
Methods
print :: SValue r -> MSStatement r Source #
printLn :: SValue r -> MSStatement r Source #
printStr :: String -> MSStatement r Source #
printStrLn :: String -> MSStatement r Source #
printFile :: SValue r -> SValue r -> MSStatement r Source #
printFileLn :: SValue r -> SValue r -> MSStatement r Source #
printFileStr :: SValue r -> String -> MSStatement r Source #
printFileStrLn :: SValue r -> String -> MSStatement r Source #
getInput :: SVariable r -> MSStatement r Source #
discardInput :: MSStatement r Source #
getFileInput :: SValue r -> SVariable r -> MSStatement r Source #
discardFileInput :: SValue r -> MSStatement r Source #
openFileR :: SVariable r -> SValue r -> MSStatement r Source #
openFileW :: SVariable r -> SValue r -> MSStatement r Source #
openFileA :: SVariable r -> SValue r -> MSStatement r Source #
closeFile :: SValue r -> MSStatement r Source #
getFileInputLine :: SValue r -> SVariable r -> MSStatement r Source #
discardFileLine :: SValue r -> MSStatement r Source #
getFileInputAll :: SValue r -> SVariable r -> MSStatement r Source #
class (VariableSym r, StatementSym r) => StringStatement r where Source #
Methods
stringSplit :: Char -> SVariable r -> SValue r -> MSStatement r Source #
stringListVals :: [SVariable r] -> SValue r -> MSStatement r Source #
stringListLists :: [SVariable r] -> SValue r -> MSStatement r Source #
class (VariableSym r, StatementSym r) => FuncAppStatement r where Source #
class StatementSym r => CommentStatement r where Source #
Methods
comment :: String -> MSStatement r Source #
class (BodySym r, VariableSym r) => ControlStatement r where Source #
Methods
break :: MSStatement r Source #
continue :: MSStatement r Source #
returnStmt :: SValue r -> MSStatement r Source #
throw :: Label -> MSStatement r Source #
ifCond :: [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #
String of if-else statements. Arguments: List of predicates and bodies (if this then that), Body for else branch
switch :: SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #
ifExists :: SValue r -> MSBody r -> MSBody r -> MSStatement r Source #
for :: MSStatement r -> SValue r -> MSStatement r -> MSBody r -> MSStatement r Source #
forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MSBody r -> MSStatement r Source #
forEach :: SVariable r -> SValue r -> MSBody r -> MSStatement r Source #
while :: SValue r -> MSBody r -> MSStatement r Source #
ifNoElse :: ControlStatement r => [(SValue r, MSBody r)] -> MSStatement r Source #
switchAsIf :: (ControlStatement r, Comparison r) => SValue r -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #
class TypeSym r => VariableSym r where Source #
Methods
var :: Label -> VSType r -> SVariable r Source #
An instance- or function-level variable, separate from its instance (i.e. v, not `o.v`)
constant :: Label -> VSType r -> SVariable r Source #
An instance- or function-level constant, separate from its instance (i.e. v, not `o.v`)
extVar :: Library -> Label -> VSType r -> SVariable r 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
Instances
| VariableSym (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Associated Types type Variable (LoggingFor lang) Source # Methods var :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source # constant :: Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source # extVar :: Library -> Label -> VSType (LoggingFor lang) -> SVariable (LoggingFor lang) Source # | |
class VariableSym r => VariableElim r where Source #
Methods
variableName :: r (Variable r) -> String Source #
variableType :: r (Variable r) -> r TypeData Source #
Instances
| VariableElim (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods variableName :: LoggingFor lang (Variable (LoggingFor lang)) -> String Source # variableType :: LoggingFor lang (Variable (LoggingFor lang)) -> LoggingFor lang TypeData Source # | |
class TypeSym r => ValueSym r where Source #
Instances
| ValueSym (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Associated Types type Value (LoggingFor lang) Source # Methods valueType :: LoggingFor lang (Value (LoggingFor lang)) -> LoggingFor lang TypeData Source # | |
class ValueSym r => Literal r where Source #
Methods
litChar :: Char -> SValue r Source #
litDouble :: Double -> SValue r Source #
litFloat :: Float -> SValue r Source #
litInt :: Integer -> SValue r Source #
litString :: String -> SValue r Source #
litArray :: VSType r -> [SValue r] -> SValue r Source #
Instances
| Literal (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods litTrue :: SValue (LoggingFor lang) Source # litFalse :: SValue (LoggingFor lang) Source # litChar :: Char -> SValue (LoggingFor lang) Source # litDouble :: Double -> SValue (LoggingFor lang) Source # litFloat :: Float -> SValue (LoggingFor lang) Source # litInt :: Integer -> SValue (LoggingFor lang) Source # litString :: String -> SValue (LoggingFor lang) Source # litArray :: VSType (LoggingFor lang) -> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang) Source # litList :: VSType (LoggingFor lang) -> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang) Source # litSet :: VSType (LoggingFor lang) -> [SValue (LoggingFor lang)] -> SValue (LoggingFor lang) Source # | |
class (VariableSym r, ValueSym r) => VariableValue r where Source #
Instances
| VariableValue (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods valueOf :: SVariable (LoggingFor lang) -> SValue (LoggingFor lang) Source # | |
class ValueSym r => CommandLineArgs r where Source #
class ValueSym r => NumericExpression r where Source #
Methods
(#~) :: SValue r -> SValue r infixl 8 Source #
(#/^) :: SValue r -> SValue r infixl 7 Source #
(#|) :: SValue r -> SValue r infixl 7 Source #
(#+) :: SValue r -> SValue r -> SValue r infixl 5 Source #
(#-) :: SValue r -> SValue r -> SValue r infixl 5 Source #
(#*) :: SValue r -> SValue r -> SValue r infixl 6 Source #
(#/) :: SValue r -> SValue r -> SValue r infixl 6 Source #
(#%) :: SValue r -> SValue r -> SValue r infixl 6 Source #
(#^) :: SValue r -> SValue r -> SValue r infixl 7 Source #
log :: SValue r -> SValue r Source #
ln :: SValue r -> SValue r Source #
exp :: SValue r -> SValue r Source #
sin :: SValue r -> SValue r Source #
cos :: SValue r -> SValue r Source #
tan :: SValue r -> SValue r Source #
csc :: SValue r -> SValue r Source #
sec :: SValue r -> SValue r Source #
cot :: SValue r -> SValue r Source #
arcsin :: SValue r -> SValue r Source #
arccos :: SValue r -> SValue r Source #
arctan :: SValue r -> SValue r Source #
class ValueSym r => BooleanExpression r where Source #
class ValueSym r => Comparison r where Source #
Methods
(?<) :: SValue r -> SValue r -> SValue r infixl 4 Source #
(?<=) :: SValue r -> SValue r -> SValue r infixl 4 Source #
(?>) :: SValue r -> SValue r -> SValue r infixl 4 Source #
(?>=) :: SValue r -> SValue r -> SValue r infixl 4 Source #
class (VariableSym r, ValueSym r) => ValueExpression r where Source #
funcApp :: ValueExpression r => PosCall r Source #
funcAppNamedArgs :: ValueExpression r => Label -> VSType r -> NamedArgs r -> SValue r Source #
extFuncApp :: ValueExpression r => Library -> PosCall r Source #
libFuncApp :: ValueExpression r => Library -> PosCall r Source #
class IndexTranslator r => Array r where Source #
Methods
arrayElem :: SValue r -> SVariable r -> SVariable r Source #
Given array a and index i, creates `a[i]`
arrayLength :: SValue r -> SValue r Source #
Given an array, return its length
arrayCopy :: SValue r -> SValue r Source #
Given a source array, create a (shallow) copy of it
Instances
| Array (LoggingFor lang) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods arrayElem :: SValue (LoggingFor lang) -> SVariable (LoggingFor lang) -> SVariable (LoggingFor lang) Source # arrayLength :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source # arrayCopy :: SValue (LoggingFor lang) -> SValue (LoggingFor lang) Source # | |
class IndexTranslator r => List r where Source #
Methods
listSize :: SValue r -> SValue r Source #
listAdd :: SValue r -> SValue r -> SValue r -> SValue r Source #
Inserts a value into a list. Arguments are: List, Index, Value
listAppend :: SValue r -> SValue r -> SValue r Source #
Appens a value to a list. Arguments are: List, Value
listAccess :: SValue r -> SValue r -> SValue r Source #
Gets the value of an index of a list. Arguments are: List, Index
listSet :: SValue r -> SValue r -> SValue r -> SValue r Source #
Sets the value of an index of a list. Arguments are: List, Index, Value
indexOf :: SValue r -> SValue r -> SValue r Source #
Finds the index of the first occurrence of a value in a list. Arguments are: List, Value
class ValueSym r => Set r where Source #
Methods
contains :: SValue r -> SValue r -> SValue r Source #
Checks membership Arguments are: Set, Value
setAdd :: SValue r -> SValue r -> SValue r Source #
Inserts a value into a set Arguments are: Set, Value
setRemove :: SValue r -> SValue r -> SValue r Source #
Removes a value from a set Arguments are: Set, Value
setUnion :: SValue r -> SValue r -> SValue r Source #
Removes a value from a set Arguments are: Set, Set
listSlice :: InternalList r => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MSBlock r Source #
Creates a slice of a list and assigns it to a variable. Arguments are: Variable to assign List to read from (optional) Start index inclusive. (if Nothing, then list start if step > 0, list end if step < 0) (optional) End index exclusive. (if Nothing, then list end if step > 0, list start if step > 0) (optional) Step (if Nothing, then defaults to 1)
listIndexExists :: (List r, Comparison r) => SValue r -> SValue r -> SValue r Source #
class VisibilitySym r where Source #
Associated Types
type Visibility r Source #
class VariableSym r => ParameterSym r where Source #
Methods
param :: SVariable r -> MSParameter r Source #
pointerParam :: SVariable r -> MSParameter r Source #
class (BodySym r, ParameterSym r, VisibilitySym r) => MethodSym r where Source #
Methods
docMain :: MSBody r -> SMethod r Source #
function :: Label -> r (Visibility r) -> VSType r -> [MSParameter r] -> MSBody r -> SMethod r Source #
mainFunction :: MSBody r -> SMethod r Source #
docFunc :: String -> [String] -> Maybe String -> SMethod r -> SMethod r Source #
inOutFunc :: Label -> r (Visibility r) -> InOutFunc r Source #
docInOutFunc :: Label -> r (Visibility r) -> DocInOutFunc r Source #
data VisibilityTag Source #
Instances
| Eq VisibilityTag Source # | |
Defined in Drasil.Shared.AST Methods (==) :: VisibilityTag -> VisibilityTag -> Bool # (/=) :: VisibilityTag -> VisibilityTag -> Bool # | |
Constructors
| Boolean | |
| Integer | |
| Float | |
| Double | |
| Char | |
| String | |
| InFile | |
| OutFile | |
| List CodeType | |
| Set CodeType | |
| Array CodeType | |
| Object ClassName | |
| Func [CodeType] CodeType | |
| Void |
lensMStoVS :: Lens' MethodState ValueState Source #
onStateValue :: (a -> b) -> State s a -> State s b Source #
onCodeList :: Monad m => ([a] -> b) -> [m a] -> m b Source #
newtype LoggingFor (lang :: Type -> Type) a Source #
Instances
getCodeType :: UnRepr r TypeData => r TypeData -> CodeType Source #
A helper function for extracting the CodeType from an `r TypeData`
getTypeString :: UnRepr r TypeData => r TypeData -> String Source #
A helper function for extracting the String representation from an `r TypeData`