| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Drasil.GOOL
Description
re-export smart constructors for external code writing
Synopsis
- type Label = String
- type GSProgram a prg = GS (a prg)
- type File = FileData
- type Body = Doc
- type Block = Doc
- type CS = State ClassState
- type FS = State FileState
- type MS = State MethodState
- type VS = State ValueState
- type SVariable a = VS (a Variable)
- type SValue a = VS (a Value)
- type CSStateVar r svr = CS (r svr)
- type Class = Doc
- type Module = ModData
- type NamedArgs r = [(SVariable r, SValue r)]
- type Initializers r = [(SVariable r, SValue r)]
- class (UnRepr r TypeData, SharedStatement r smt, FunctionSym r, InternalList r, VariableValue r, IndexTranslator r, TypeElim r, VariableElim r, MethodSym r vis smt md, ScopeSym r, BinderSym r) => SharedProg r vis smt md
- class (Array r, AssignStatement r smt, Argument r, BooleanExpression r, CommandLineArgs r, CommentStatement r smt, Comparison r, ControlStatement r smt, DeclStatement r smt, FuncAppStatement r smt, IOStatement r smt, List r smt, Literal r, MathConstant r, NumericExpression r, ParameterSym r, Reference r, Set r, StringStatement r smt, ValueExpression r, VariableValue r) => SharedStatement r smt
- class (SharedProg r vis smt md, OOStatement r smt, ProgramSym r vis smt md svr att prg, ObserverPattern r smt, StrategyPattern r smt) => OOProg r vis smt md svr att prg
- class (SharedStatement r smt, GetSet r, InternalValueExp r, OOFuncAppStatement r smt, OOVariableValue r, OODeclStatement r smt, OOFuncAppStatement r smt, OOFunctionSym r, OOValueExpression r) => OOStatement r smt
- class FileSym r vis smt md svr att => ProgramSym r vis smt md svr att prg | r -> prg where
- class ModuleSym r vis smt md svr att => FileSym r vis smt md svr att where
- class AttachmentSym r att | r -> att where
- classLevel :: r att
- instanceLevel :: r att
- class BlockSym r smt => BodySym r smt where
- bodyStatements :: BodySym r smt => [MS (r smt)] -> MS (r Body)
- oneLiner :: BodySym r smt => MS (r smt) -> MS (r Body)
- class StatementSym r smt => BlockSym r smt where
- class TypeSym r where
- bool :: VS (r TypeData)
- int :: VS (r TypeData)
- float :: VS (r TypeData)
- double :: VS (r TypeData)
- char :: VS (r TypeData)
- string :: VS (r TypeData)
- infile :: VS (r TypeData)
- outfile :: VS (r TypeData)
- referenceType :: VS (r TypeData) -> VS (r TypeData)
- listType :: VS (r TypeData) -> VS (r TypeData)
- setType :: VS (r TypeData) -> VS (r TypeData)
- arrayType :: VS (r TypeData) -> VS (r TypeData)
- innerType :: VS (r TypeData) -> VS (r TypeData)
- funcType :: [VS (r TypeData)] -> VS (r TypeData) -> VS (r TypeData)
- void :: VS (r TypeData)
- class TypeSym r => OOTypeSym r where
- class TypeSym r => BinderSym r where
- class ValueSym r => StatementSym r smt | r -> smt where
- class (VariableSym r, StatementSym r smt) => AssignStatement r smt where
- (&=) :: AssignStatement r smt => SVariable r -> SValue r -> MS (r smt)
- class (VariableSym r, StatementSym r smt, ScopeSym r) => DeclStatement r smt where
- varDec :: SVariable r -> r ScopeData -> MS (r smt)
- varDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt)
- listDec :: Integer -> SVariable r -> r ScopeData -> MS (r smt)
- listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r smt)
- setDec :: SVariable r -> r ScopeData -> MS (r smt)
- setDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt)
- arrayDec :: Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r smt)
- arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r smt)
- constDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt)
- funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MS (r Body) -> MS (r smt)
- class (DeclStatement r smt, OOVariableSym r) => OODeclStatement r smt where
- objDecNewNoParams :: OODeclStatement r smt => SVariable r -> r ScopeData -> MS (r smt)
- extObjDecNewNoParams :: OODeclStatement r smt => Library -> SVariable r -> r ScopeData -> MS (r smt)
- class (VariableSym r, StatementSym r smt) => IOStatement r smt where
- print :: SValue r -> MS (r smt)
- printLn :: SValue r -> MS (r smt)
- printStr :: String -> MS (r smt)
- printStrLn :: String -> MS (r smt)
- printFile :: SValue r -> SValue r -> MS (r smt)
- printFileLn :: SValue r -> SValue r -> MS (r smt)
- printFileStr :: SValue r -> String -> MS (r smt)
- printFileStrLn :: SValue r -> String -> MS (r smt)
- getInput :: SVariable r -> MS (r smt)
- discardInput :: MS (r smt)
- getFileInput :: SValue r -> SVariable r -> MS (r smt)
- discardFileInput :: SValue r -> MS (r smt)
- openFileR :: SVariable r -> SValue r -> MS (r smt)
- openFileW :: SVariable r -> SValue r -> MS (r smt)
- openFileA :: SVariable r -> SValue r -> MS (r smt)
- closeFile :: SValue r -> MS (r smt)
- getFileInputLine :: SValue r -> SVariable r -> MS (r smt)
- discardFileLine :: SValue r -> MS (r smt)
- getFileInputAll :: SValue r -> SVariable r -> MS (r smt)
- class (VariableSym r, StatementSym r smt) => StringStatement r smt where
- stringSplit :: Char -> SVariable r -> SValue r -> MS (r smt)
- stringListVals :: [SVariable r] -> SValue r -> MS (r smt)
- stringListLists :: [SVariable r] -> SValue r -> MS (r smt)
- class (VariableSym r, StatementSym r smt) => FuncAppStatement r smt where
- inOutCall :: InOutCall r smt
- extInOutCall :: Library -> InOutCall r smt
- class (FuncAppStatement r smt, OOVariableSym r) => OOFuncAppStatement r smt where
- selfInOutCall :: InOutCall r smt
- class StatementSym r smt => CommentStatement r smt where
- initObserverList :: DeclStatement r smt => VS (r TypeData) -> [SValue r] -> r ScopeData -> MS (r smt)
- addObserver :: (OOVariableValue r, List r smt) => SValue r -> MS (r smt)
- class (BodySym r smt, VariableSym r) => ControlStatement r smt where
- break :: MS (r smt)
- continue :: MS (r smt)
- returnStmt :: SValue r -> MS (r smt)
- throw :: Label -> MS (r smt)
- ifCond :: [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt)
- switch :: SValue r -> [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt)
- ifExists :: SValue r -> MS (r Body) -> MS (r Body) -> MS (r smt)
- for :: MS (r smt) -> SValue r -> MS (r smt) -> MS (r Body) -> MS (r smt)
- forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MS (r Body) -> MS (r smt)
- forEach :: SVariable r -> SValue r -> MS (r Body) -> MS (r smt)
- while :: SValue r -> MS (r Body) -> MS (r smt)
- tryCatch :: MS (r Body) -> MS (r Body) -> MS (r smt)
- assert :: SValue r -> SValue r -> MS (r smt)
- ifNoElse :: ControlStatement r smt => [(SValue r, MS (r Body))] -> MS (r smt)
- switchAsIf :: (ControlStatement r smt, Comparison r) => SValue r -> [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt)
- class TypeSym r => VariableSym r where
- class ScopeSym r where
- data ScopeData
- class (VariableSym r, OOTypeSym r) => OOVariableSym r where
- class OOVariableSym r => SelfSym r where
- instanceVarSelf :: (SelfSym r, VariableValue r) => SVariable r -> SVariable r
- class VariableSym r => VariableElim r where
- variableName :: r Variable -> String
- variableType :: r Variable -> r TypeData
- ($->) :: OOVariableSym r => SValue r -> SVariable r -> SVariable r
- listOf :: VariableSym r => Label -> VS (r TypeData) -> SVariable r
- listVar :: VariableSym r => Label -> VS (r TypeData) -> 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 :: VS (r TypeData) -> [SValue r] -> SValue r
- litList :: VS (r TypeData) -> [SValue r] -> SValue r
- litSet :: VS (r TypeData) -> [SValue r] -> SValue r
- class ValueSym r => MathConstant r where
- class (VariableSym r, ValueSym r) => VariableValue r where
- class (VariableValue r, OOVariableSym r, SelfSym r) => OOVariableValue r
- 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
- class (ValueExpression r, OOVariableSym r, OOValueSym r) => OOValueExpression r where
- newObjMixedArgs :: MixedCtorCall r
- extNewObjMixedArgs :: Library -> MixedCtorCall r
- libNewObjMixedArgs :: Library -> MixedCtorCall r
- funcApp :: ValueExpression r => PosCall r
- funcAppNamedArgs :: ValueExpression r => Label -> VS (r TypeData) -> NamedArgs r -> SValue r
- selfMethodCall :: (InternalValueExp r, VariableValue r, SelfSym r) => PosCall r
- extFuncApp :: ValueExpression r => Library -> PosCall r
- libFuncApp :: ValueExpression r => Library -> PosCall r
- newObj :: OOValueExpression r => PosCtorCall r
- extNewObj :: OOValueExpression r => Library -> PosCtorCall r
- libNewObj :: OOValueExpression r => Library -> PosCtorCall r
- exists :: ValueExpression r => SValue r -> SValue r
- objMethodCall :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> [SValue r] -> SValue r
- objMethodCallNamedArgs :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> NamedArgs r -> SValue r
- objMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> [SValue r] -> NamedArgs r -> SValue r
- objMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> SValue r
- classMethodCall :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> SValue r
- classMethodCallNamedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> NamedArgs r -> SValue r
- classMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> NamedArgs r -> SValue r
- classMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> SValue r
- class ValueSym r => FunctionSym r
- class FunctionSym r => OOFunctionSym r where
- ($.) :: OOFunctionSym r => SValue r -> VS (r FuncData) -> SValue r
- selfAccess :: (OOVariableValue r, OOFunctionSym r) => VS (r FuncData) -> SValue r
- class (ValueSym r, VariableSym r) => GetSet r where
- class (TypeSym r, ValueSym r) => Reference r where
- class IndexTranslator r => Array r where
- class (IndexTranslator r, StatementSym r smt) => List r smt where
- class ValueSym r => Set r where
- listSlice :: InternalList r => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MS (r Block)
- listIndexExists :: (List r smt, Comparison r) => SValue r -> SValue r -> SValue r
- at :: List r smt => SValue r -> SValue r -> SValue r
- class (StatementSym r smt, OOFunctionSym r) => ObserverPattern r smt where
- class (BodySym r smt, VariableSym r) => StrategyPattern r smt where
- class VisibilitySym r vis | r -> vis where
- class VariableSym r => ParameterSym r where
- class (BodySym r smt, ParameterSym r, VisibilitySym r vis) => MethodSym r vis smt md | r -> md where
- docMain :: MS (r Body) -> MS (r md)
- function :: Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- mainFunction :: MS (r Body) -> MS (r md)
- docFunc :: String -> [String] -> Maybe String -> MS (r md) -> MS (r md)
- inOutFunc :: Label -> r vis -> InOutFunc r md
- docInOutFunc :: Label -> r vis -> DocInOutFunc r md
- class (MethodSym r vis smt md, AttachmentSym r att) => OOMethodSym r vis smt md att where
- method :: Label -> r vis -> r att -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- getMethod :: SVariable r -> MS (r md)
- setMethod :: SVariable r -> MS (r md)
- constructor :: [MS (r ParamData)] -> Initializers r -> MS (r Body) -> MS (r md)
- inOutMethod :: Label -> r vis -> r att -> InOutFunc r md
- docInOutMethod :: Label -> r vis -> r att -> DocInOutFunc r md
- privMethod :: OOMethodSym r vis smt md att => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- pubMethod :: OOMethodSym r vis smt md att => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- initializer :: OOMethodSym r vis smt md att => [MS (r ParamData)] -> Initializers r -> MS (r md)
- nonInitConstructor :: OOMethodSym r vis smt md att => [MS (r ParamData)] -> MS (r Body) -> MS (r md)
- class (VisibilitySym r vis, AttachmentSym r att, VariableSym r) => StateVarSym r vis svr att | r -> svr where
- stateVar :: r vis -> r att -> SVariable r -> CSStateVar r svr
- stateVarDef :: r vis -> r att -> SVariable r -> SValue r -> CSStateVar r svr
- constVar :: r vis -> SVariable r -> SValue r -> CSStateVar r svr
- privDVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr
- pubDVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr
- pubSVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr
- class (OOMethodSym r vis smt md att, StateVarSym r vis svr att) => ClassSym r vis smt md svr att where
- buildClass :: Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class)
- extraClass :: Label -> Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class)
- implementingClass :: Label -> [Label] -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class)
- docClass :: String -> CS (r Class) -> CS (r Class)
- class ClassSym r vis smt md svr att => ModuleSym r vis smt md svr att where
- convType :: TypeSym r => CodeType -> VS (r TypeData)
- convTypeOO :: OOTypeSym r => CodeType -> VS (r TypeData)
- data ProgData
- data FileData
- data ModData
- data TypeData
- data VisibilityTag
- data ParamData
- 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 :: CodeInfoOO a -> a
- unPC :: PythonCode a -> a
- unJC :: JavaCode a -> a
- unCSC :: CSharpCode a -> a
- unCPPC :: CppCode CppSrcCode CppHdrCode a -> a
- unSC :: SwiftCode a -> a
- pyName :: String
- pyVersion :: String
- jName :: String
- jVersion :: String
- csName :: String
- csVersion :: String
- cppName :: String
- cppVersion :: String
- swiftName :: String
- swiftVersion :: String
- newtype LoggingFor (r :: Type -> Type) a = LC {
- unLC :: r a
- class TypeSym r => TypeElim r where
- getCodeType :: r TypeData -> CodeType
- getTypeString :: UnRepr r TypeData => r TypeData -> String
Documentation
type CSStateVar r svr = CS (r svr) Source #
type Initializers r = [(SVariable r, SValue r)] Source #
class (UnRepr r TypeData, SharedStatement r smt, FunctionSym r, InternalList r, VariableValue r, IndexTranslator r, TypeElim r, VariableElim r, MethodSym r vis smt md, ScopeSym r, BinderSym r) => SharedProg r vis smt md Source #
Instances
class (Array r, AssignStatement r smt, Argument r, BooleanExpression r, CommandLineArgs r, CommentStatement r smt, Comparison r, ControlStatement r smt, DeclStatement r smt, FuncAppStatement r smt, IOStatement r smt, List r smt, Literal r, MathConstant r, NumericExpression r, ParameterSym r, Reference r, Set r, StringStatement r smt, ValueExpression r, VariableValue r) => SharedStatement r smt Source #
Instances
class (SharedProg r vis smt md, OOStatement r smt, ProgramSym r vis smt md svr att prg, ObserverPattern r smt, StrategyPattern r smt) => OOProg r vis smt md svr att prg Source #
Instances
| OOProg CodeInfoOO () () () () () GOOLState Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| OOProg CSharpCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| OOProg JavaCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer | |
| OOProg PythonCode Doc (Doc, Terminator) MethodData StateVar AttachmentData ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| OOProg SwiftCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer | |
| OOProg r vis smt md svr att prg => OOProg (LoggingFor r) vis smt md svr att prg Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor | |
class (SharedStatement r smt, GetSet r, InternalValueExp r, OOFuncAppStatement r smt, OOVariableValue r, OODeclStatement r smt, OOFuncAppStatement r smt, OOFunctionSym r, OOValueExpression r) => OOStatement r smt Source #
Instances
| OOStatement CodeInfoOO () Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| OOStatement CSharpCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| OOStatement CppHdrCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| OOStatement CppSrcCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| OOStatement JavaCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer | |
| OOStatement PythonCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| OOStatement SwiftCode (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer | |
| (OOStatement r smt, VariableElim r) => OOStatement (LoggingFor r) smt Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor | |
| Pair p => OOStatement (p CppSrcCode CppHdrCode) (Doc, Terminator) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
class FileSym r vis smt md svr att => ProgramSym r vis smt md svr att prg | r -> prg where Source #
Instances
| ProgramSym CodeInfoOO () () () () () GOOLState Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| ProgramSym CSharpCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| ProgramSym JavaCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
| ProgramSym PythonCode Doc (Doc, Terminator) MethodData StateVar AttachmentData ProgData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| ProgramSym SwiftCode Doc (Doc, Terminator) MethodData StateVar Doc ProgData Source # | |
| ProgramSym r vis smt md svr att prg => ProgramSym (LoggingFor r) vis smt md svr att prg Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods prog :: Label -> Label -> [FS (LoggingFor r File)] -> GSProgram (LoggingFor r) prg Source # | |
class ModuleSym r vis smt md svr att => FileSym r vis smt md svr att where Source #
Methods
fileDoc :: FS (r Module) -> FS (r File) Source #
docMod :: String -> String -> [String] -> String -> FS (r File) -> FS (r File) Source #
Instances
| FileSym CodeInfoOO () () () () () Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| FileSym CSharpCode Doc (Doc, Terminator) MethodData StateVar Doc Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| FileSym JavaCode Doc (Doc, Terminator) MethodData StateVar Doc Source # | |
| FileSym PythonCode Doc (Doc, Terminator) MethodData StateVar AttachmentData Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| FileSym SwiftCode Doc (Doc, Terminator) MethodData StateVar Doc Source # | |
| FileSym r vis smt md svr att => FileSym (LoggingFor r) vis smt md svr att Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor | |
class AttachmentSym r att | r -> att where Source #
Used to differentiate whether a member is attached to the class or the instance
Instances
class BlockSym r smt => BodySym r smt where Source #
Instances
class StatementSym r smt => BlockSym r smt where Source #
Instances
class TypeSym r where Source #
Methods
bool :: VS (r TypeData) Source #
int :: VS (r TypeData) Source #
float :: VS (r TypeData) Source #
double :: VS (r TypeData) Source #
char :: VS (r TypeData) Source #
string :: VS (r TypeData) Source #
infile :: VS (r TypeData) Source #
outfile :: VS (r TypeData) Source #
referenceType :: VS (r TypeData) -> VS (r TypeData) Source #
listType :: VS (r TypeData) -> VS (r TypeData) Source #
setType :: VS (r TypeData) -> VS (r TypeData) Source #
arrayType :: VS (r TypeData) -> VS (r TypeData) Source #
innerType :: VS (r TypeData) -> VS (r TypeData) Source #
funcType :: [VS (r TypeData)] -> VS (r TypeData) -> VS (r TypeData) Source #
Instances
class TypeSym r => OOTypeSym r where Source #
Instances
| OOTypeSym CodeInfoOO Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| OOTypeSym CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| OOTypeSym CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| OOTypeSym CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| OOTypeSym JavaCode Source # | |
| OOTypeSym PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| OOTypeSym SwiftCode Source # | |
| OOTypeSym r => OOTypeSym (LoggingFor r) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor | |
| Pair p => OOTypeSym (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods obj :: ClassName -> VS (p CppSrcCode CppHdrCode TypeData) Source # | |
class TypeSym r => BinderSym r where Source #
Instances
class ValueSym r => StatementSym r smt | r -> smt where Source #
Instances
class (VariableSym r, StatementSym r smt) => AssignStatement r smt where Source #
Methods
(&-=) :: SVariable r -> SValue r -> MS (r smt) infixl 1 Source #
(&+=) :: SVariable r -> SValue r -> MS (r smt) infixl 1 Source #
(&++) :: SVariable r -> MS (r smt) infixl 8 Source #
Instances
class (VariableSym r, StatementSym r smt, ScopeSym r) => DeclStatement r smt where Source #
Methods
varDec :: SVariable r -> r ScopeData -> MS (r smt) Source #
Declare a variable without giving it a value.
Not for use with arrays; use arrayDec instead.
varDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt) Source #
Declare a variable and give it a value.
Not for use with arrays; use arrayDecDef instead.
listDec :: Integer -> SVariable r -> r ScopeData -> MS (r smt) Source #
listDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r smt) Source #
setDec :: SVariable r -> r ScopeData -> MS (r smt) Source #
setDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt) Source #
arrayDec :: Integer -> SValue r -> SVariable r -> r ScopeData -> MS (r smt) Source #
arrayDecDef :: SVariable r -> r ScopeData -> [SValue r] -> MS (r smt) Source #
constDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt) Source #
funcDecDef :: SVariable r -> r ScopeData -> [SVariable r] -> MS (r Body) -> MS (r smt) Source #
Instances
class (DeclStatement r smt, OOVariableSym r) => OODeclStatement r smt where Source #
Methods
objDecDef :: SVariable r -> r ScopeData -> SValue r -> MS (r smt) Source #
objDecNew :: SVariable r -> r ScopeData -> [SValue r] -> MS (r smt) Source #
extObjDecNew :: Library -> SVariable r -> r ScopeData -> [SValue r] -> MS (r smt) Source #
Instances
objDecNewNoParams :: OODeclStatement r smt => SVariable r -> r ScopeData -> MS (r smt) Source #
extObjDecNewNoParams :: OODeclStatement r smt => Library -> SVariable r -> r ScopeData -> MS (r smt) Source #
class (VariableSym r, StatementSym r smt) => IOStatement r smt where Source #
Methods
print :: SValue r -> MS (r smt) Source #
printLn :: SValue r -> MS (r smt) Source #
printStr :: String -> MS (r smt) Source #
printStrLn :: String -> MS (r smt) Source #
printFile :: SValue r -> SValue r -> MS (r smt) Source #
printFileLn :: SValue r -> SValue r -> MS (r smt) Source #
printFileStr :: SValue r -> String -> MS (r smt) Source #
printFileStrLn :: SValue r -> String -> MS (r smt) Source #
getInput :: SVariable r -> MS (r smt) Source #
discardInput :: MS (r smt) Source #
getFileInput :: SValue r -> SVariable r -> MS (r smt) Source #
discardFileInput :: SValue r -> MS (r smt) Source #
openFileR :: SVariable r -> SValue r -> MS (r smt) Source #
openFileW :: SVariable r -> SValue r -> MS (r smt) Source #
openFileA :: SVariable r -> SValue r -> MS (r smt) Source #
closeFile :: SValue r -> MS (r smt) Source #
getFileInputLine :: SValue r -> SVariable r -> MS (r smt) Source #
discardFileLine :: SValue r -> MS (r smt) Source #
getFileInputAll :: SValue r -> SVariable r -> MS (r smt) Source #
Instances
class (VariableSym r, StatementSym r smt) => StringStatement r smt where Source #
Methods
stringSplit :: Char -> SVariable r -> SValue r -> MS (r smt) Source #
stringListVals :: [SVariable r] -> SValue r -> MS (r smt) Source #
stringListLists :: [SVariable r] -> SValue r -> MS (r smt) Source #
Instances
class (VariableSym r, StatementSym r smt) => FuncAppStatement r smt where Source #
Instances
class (FuncAppStatement r smt, OOVariableSym r) => OOFuncAppStatement r smt where Source #
Methods
selfInOutCall :: InOutCall r smt Source #
Instances
class StatementSym r smt => CommentStatement r smt where Source #
Instances
initObserverList :: DeclStatement r smt => VS (r TypeData) -> [SValue r] -> r ScopeData -> MS (r smt) Source #
addObserver :: (OOVariableValue r, List r smt) => SValue r -> MS (r smt) Source #
class (BodySym r smt, VariableSym r) => ControlStatement r smt where Source #
Methods
continue :: MS (r smt) Source #
returnStmt :: SValue r -> MS (r smt) Source #
throw :: Label -> MS (r smt) Source #
ifCond :: [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt) 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, MS (r Body))] -> MS (r Body) -> MS (r smt) Source #
ifExists :: SValue r -> MS (r Body) -> MS (r Body) -> MS (r smt) Source #
for :: MS (r smt) -> SValue r -> MS (r smt) -> MS (r Body) -> MS (r smt) Source #
forRange :: SVariable r -> SValue r -> SValue r -> SValue r -> MS (r Body) -> MS (r smt) Source #
forEach :: SVariable r -> SValue r -> MS (r Body) -> MS (r smt) Source #
while :: SValue r -> MS (r Body) -> MS (r smt) Source #
tryCatch :: MS (r Body) -> MS (r Body) -> MS (r smt) Source #
Instances
switchAsIf :: (ControlStatement r smt, Comparison r) => SValue r -> [(SValue r, MS (r Body))] -> MS (r Body) -> MS (r smt) Source #
class TypeSym r => VariableSym r where Source #
Methods
var :: Label -> VS (r TypeData) -> SVariable r Source #
An instance- or function-level variable, separate from its instance (i.e. v, not `o.v`)
constant :: Label -> VS (r TypeData) -> SVariable r Source #
An instance- or function-level constant, separate from its instance (i.e. v, not `o.v`)
extVar :: Library -> Label -> VS (r TypeData) -> 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
class ScopeSym r where Source #
Instances
| ScopeSym CodeInfoOO Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| ScopeSym CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| ScopeSym CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| ScopeSym CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| ScopeSym JavaCode Source # | |
| ScopeSym PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| ScopeSym SwiftCode Source # | |
| ScopeSym JuliaCode Source # | |
| ScopeSym MatlabCode Source # | |
Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer | |
| ScopeSym r => ScopeSym (LoggingFor r) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods global :: LoggingFor r ScopeData Source # mainFn :: LoggingFor r ScopeData Source # local :: LoggingFor r ScopeData Source # | |
| Pair p => ScopeSym (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods global :: p CppSrcCode CppHdrCode ScopeData Source # | |
class (VariableSym r, OOTypeSym r) => OOVariableSym r where Source #
Methods
classVar :: Label -> VS (r TypeData) -> SVariable r Source #
A class-level variable, separate from its class (i.e. v, not v)
classConst :: Label -> VS (r TypeData) -> SVariable r Source #
A class-level constant, separate from its class (i.e. v, not v)
classVarAccess :: VS (r TypeData) -> SVariable r -> SVariable r Source #
Given a class C and a class-level variable v, creates v
extClassVarAccess :: VS (r TypeData) -> SVariable r -> SVariable r Source #
Given a class C from an external module and a class-level variable v,
performs any necessary imports and creates v
instanceVarAccess :: SValue r -> SVariable r -> SVariable r Source #
Given an instance i and an instance-level variable v, creates `i.v`
Instances
class OOVariableSym r => SelfSym r where Source #
Instances
| SelfSym CodeInfoOO Source # | |
Defined in Drasil.GOOL.CodeInfoOO Methods | |
| SelfSym CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods | |
| SelfSym CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods | |
| SelfSym CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods | |
| SelfSym JavaCode Source # | |
| SelfSym PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods | |
| SelfSym SwiftCode Source # | |
| SelfSym r => SelfSym (LoggingFor r) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor Methods self :: SVariable (LoggingFor r) Source # | |
| Pair p => SelfSym (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods self :: SVariable (p CppSrcCode CppHdrCode) Source # | |
instanceVarSelf :: (SelfSym r, VariableValue r) => SVariable r -> SVariable r Source #
Given a variable v, creates `self.v`
class VariableSym r => VariableElim r where Source #
Methods
variableName :: r Variable -> String Source #
variableType :: r Variable -> r TypeData Source #
Instances
class TypeSym r => ValueSym r where Source #
Instances
class ValueSym r => Argument r where Source #
Methods
pointerArg :: SValue r -> SValue r Source #
Instances
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 :: VS (r TypeData) -> [SValue r] -> SValue r Source #
litList :: VS (r TypeData) -> [SValue r] -> SValue r Source #
litSet :: VS (r TypeData) -> [SValue r] -> SValue r Source #
Instances
class ValueSym r => MathConstant r where Source #
Instances
class (VariableSym r, ValueSym r) => VariableValue r where Source #
Instances
class (VariableValue r, OOVariableSym r, SelfSym r) => OOVariableValue r Source #
Instances
class ValueSym r => CommandLineArgs r where Source #
Instances
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 #
Instances
class ValueSym r => BooleanExpression r where Source #
Methods
(?!) :: SValue r -> SValue r infixr 6 Source #
Instances
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 #
Instances
class (VariableSym r, ValueSym r) => ValueExpression r where Source #
Methods
inlineIf :: SValue r -> SValue r -> SValue r -> SValue r Source #
funcAppMixedArgs :: MixedCall r Source #
extFuncAppMixedArgs :: Library -> MixedCall r Source #
libFuncAppMixedArgs :: Library -> MixedCall r Source #
Instances
class (ValueExpression r, OOVariableSym r, OOValueSym r) => OOValueExpression r where Source #
Methods
newObjMixedArgs :: MixedCtorCall r Source #
extNewObjMixedArgs :: Library -> MixedCtorCall r Source #
libNewObjMixedArgs :: Library -> MixedCtorCall r Source #
Instances
funcApp :: ValueExpression r => PosCall r Source #
funcAppNamedArgs :: ValueExpression r => Label -> VS (r TypeData) -> NamedArgs r -> SValue r Source #
selfMethodCall :: (InternalValueExp r, VariableValue r, SelfSym r) => PosCall r Source #
extFuncApp :: ValueExpression r => Library -> PosCall r Source #
libFuncApp :: ValueExpression r => Library -> PosCall r Source #
newObj :: OOValueExpression r => PosCtorCall r Source #
extNewObj :: OOValueExpression r => Library -> PosCtorCall r Source #
libNewObj :: OOValueExpression r => Library -> PosCtorCall r Source #
objMethodCall :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> [SValue r] -> SValue r Source #
Calling a method. t is the return type of the method, o is the object, f is the method name, and ps is a list of positional arguments.
objMethodCallNamedArgs :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> NamedArgs r -> SValue r Source #
Calling a method with named arguments.
objMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #
Calling a method with a mix of positional and named arguments.
objMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> SValue r -> Label -> SValue r Source #
Calling a method with no parameters.
classMethodCall :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> SValue r Source #
Calling a class method. t is the return type of the method, c is the class, f is the method name, and ps is a list of positional arguments.
classMethodCallNamedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> NamedArgs r -> SValue r Source #
Calling a class method with named arguments.
classMethodCallMixedArgs :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #
Calling a class method with a mix of positional and named arguments.
classMethodCallNoParams :: InternalValueExp r => VS (r TypeData) -> VS (r TypeData) -> Label -> SValue r Source #
Calling a class method with no parameters.
class ValueSym r => FunctionSym r Source #
Instances
| FunctionSym CodeInfoOO Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| FunctionSym CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer | |
| FunctionSym CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| FunctionSym CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
| FunctionSym JavaCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.JavaRenderer | |
| FunctionSym PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer | |
| FunctionSym SwiftCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.SwiftRenderer | |
| FunctionSym JuliaCode Source # | |
Defined in Drasil.GProc.LanguageRenderer.JuliaRenderer | |
| FunctionSym MatlabCode Source # | |
Defined in Drasil.GProc.LanguageRenderer.MatlabRenderer | |
| FunctionSym r => FunctionSym (LoggingFor r) Source # | |
Defined in Drasil.Shared.LanguageRenderer.LoggingFor | |
| Pair p => FunctionSym (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer | |
class FunctionSym r => OOFunctionSym r where Source #
Methods
func :: Label -> VS (r TypeData) -> [SValue r] -> VS (r FuncData) Source #
objAccess :: SValue r -> VS (r FuncData) -> SValue r Source #
Instances
selfAccess :: (OOVariableValue r, OOFunctionSym r) => VS (r FuncData) -> SValue r Source #
class (ValueSym r, VariableSym r) => GetSet r where Source #
Methods
get :: SValue r -> SVariable r -> SValue r Source #
set :: SValue r -> SVariable r -> SValue r -> SValue r Source #
Instances
class (TypeSym r, ValueSym r) => Reference r where Source #
Methods
makeRef :: SValue r -> SValue r Source #
Given a value, convert it to a reference to that value
maybeDeref :: SValue r -> SValue r Source #
Given a value that may be a reference type, apply any necessary dereference operation.
Instances
class IndexTranslator r => Array r where Source #
Methods
arrayElem :: SValue r -> SValue 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
class (IndexTranslator r, StatementSym r smt) => List r smt where Source #
Methods
listSize :: SValue r -> SValue r Source #
listAdd :: SValue r -> SValue r -> SValue r -> MS (r smt) Source #
Inserts a value into a list. Arguments are: List, Index, Value
listAppend :: SValue r -> SValue r -> MS (r smt) 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 -> MS (r smt) 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
Instances
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
Instances
listSlice :: InternalList r => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MS (r Block) 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 smt, Comparison r) => SValue r -> SValue r -> SValue r Source #
class (StatementSym r smt, OOFunctionSym r) => ObserverPattern r smt where Source #
Instances
class (BodySym r smt, VariableSym r) => StrategyPattern r smt where Source #
Methods
runStrategy :: Label -> [(Label, MS (r Body))] -> Maybe (SValue r) -> Maybe (SVariable r) -> MS (r Block) Source #
Instances
class VisibilitySym r vis | r -> vis where Source #
Instances
class VariableSym r => ParameterSym r where Source #
Instances
class (BodySym r smt, ParameterSym r, VisibilitySym r vis) => MethodSym r vis smt md | r -> md where Source #
Methods
docMain :: MS (r Body) -> MS (r md) Source #
function :: Label -> r vis -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #
mainFunction :: MS (r Body) -> MS (r md) Source #
docFunc :: String -> [String] -> Maybe String -> MS (r md) -> MS (r md) Source #
inOutFunc :: Label -> r vis -> InOutFunc r md Source #
docInOutFunc :: Label -> r vis -> DocInOutFunc r md Source #
Instances
class (MethodSym r vis smt md, AttachmentSym r att) => OOMethodSym r vis smt md att where Source #
Methods
method :: Label -> r vis -> r att -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #
getMethod :: SVariable r -> MS (r md) Source #
setMethod :: SVariable r -> MS (r md) Source #
constructor :: [MS (r ParamData)] -> Initializers r -> MS (r Body) -> MS (r md) Source #
inOutMethod :: Label -> r vis -> r att -> InOutFunc r md Source #
docInOutMethod :: Label -> r vis -> r att -> DocInOutFunc r md Source #
Instances
privMethod :: OOMethodSym r vis smt md att => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #
pubMethod :: OOMethodSym r vis smt md att => Label -> VS (r TypeData) -> [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #
initializer :: OOMethodSym r vis smt md att => [MS (r ParamData)] -> Initializers r -> MS (r md) Source #
nonInitConstructor :: OOMethodSym r vis smt md att => [MS (r ParamData)] -> MS (r Body) -> MS (r md) Source #
class (VisibilitySym r vis, AttachmentSym r att, VariableSym r) => StateVarSym r vis svr att | r -> svr where Source #
Methods
stateVar :: r vis -> r att -> SVariable r -> CSStateVar r svr Source #
stateVarDef :: r vis -> r att -> SVariable r -> SValue r -> CSStateVar r svr Source #
constVar :: r vis -> SVariable r -> SValue r -> CSStateVar r svr Source #
Instances
privDVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr Source #
pubDVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr Source #
pubSVar :: StateVarSym r vis svr att => SVariable r -> CSStateVar r svr Source #
class (OOMethodSym r vis smt md att, StateVarSym r vis svr att) => ClassSym r vis smt md svr att where Source #
Methods
buildClass :: Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class) Source #
Main external method for creating a class. Inputs: parent class, variables, constructor(s), methods
extraClass :: Label -> Maybe Label -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class) Source #
Creates an extra class. Inputs: class name, the rest are the same as buildClass.
implementingClass :: Label -> [Label] -> [CSStateVar r svr] -> [MS (r md)] -> [MS (r md)] -> CS (r Class) Source #
Creates a class implementing interfaces. Inputs: class name, interface names, variables, constructor(s), methods
Instances
class ClassSym r vis smt md svr att => ModuleSym r vis smt md svr att where Source #
Instances
Instances
data VisibilityTag Source #
Instances
Constructors
| Boolean | |
| Integer | |
| Float | |
| Double | |
| Char | |
| String | |
| InFile | |
| OutFile | |
| Reference CodeType | |
| List CodeType | |
| Set CodeType | |
| Array CodeType | |
| Object ClassName | |
| Func [CodeType] CodeType | |
| Void |
Constructors
| GS | |
Fields
| |
Instances
| OOProg CodeInfoOO () () () () () GOOLState Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
| ProgramSym CodeInfoOO () () () () () GOOLState Source # | |
Defined in Drasil.GOOL.CodeInfoOO | |
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 #
unCI :: CodeInfoOO a -> a Source #
unPC :: PythonCode a -> a Source #
unCSC :: CSharpCode a -> a Source #
unCPPC :: CppCode CppSrcCode CppHdrCode a -> a Source #
cppVersion :: String Source #
newtype LoggingFor (r :: Type -> Type) a Source #
Instances
class TypeSym r => TypeElim r where Source #
Methods
getCodeType :: r TypeData -> CodeType Source #