Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
GOOL.Drasil
Description
re-export smart constructors for external code writing
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 #
type CSStateVar a = CS (a (StateVar a)) Source #
type Initializers r = [(SVariable r, SValue r)] Source #
class (ProgramSym r, VectorType r, VectorDecl r, VectorThunk r, VectorExpression r, ThunkAssign r, AssignStatement r, DeclStatement r, IOStatement r, StringStatement 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, InternalValueExp r, GetSet r, List r, StatePattern r, ObserverPattern r, StrategyPattern r, TypeElim r, VariableElim r) => OOProg r Source #
class FileSym r => ProgramSym r where Source #
class PermanenceSym r where Source #
Associated Types
type Permanence r Source #
bodyStatements :: BodySym r => [MSStatement r] -> MSBody r Source #
class StatementSym r => BlockSym r where Source #
Methods
block :: [MSStatement r] -> MSBlock r Source #
class (VariableSym r, StatementSym 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 #
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) => DeclStatement r where Source #
Methods
varDec :: SVariable r -> MSStatement r Source #
varDecDef :: SVariable r -> SValue r -> MSStatement r Source #
listDec :: Integer -> SVariable r -> MSStatement r Source #
listDecDef :: SVariable r -> [SValue r] -> MSStatement r Source #
arrayDec :: Integer -> SVariable r -> MSStatement r Source #
arrayDecDef :: SVariable r -> [SValue r] -> MSStatement r Source #
objDecDef :: SVariable r -> SValue r -> MSStatement r Source #
objDecNew :: SVariable r -> [SValue r] -> MSStatement r Source #
extObjDecNew :: Library -> SVariable r -> [SValue r] -> MSStatement r Source #
constDecDef :: SVariable r -> SValue r -> MSStatement r Source #
funcDecDef :: SVariable r -> [SVariable r] -> MSBody r -> MSStatement r Source #
objDecNewNoParams :: DeclStatement r => SVariable r -> MSStatement r Source #
extObjDecNewNoParams :: DeclStatement r => Library -> SVariable 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 #
Methods
inOutCall :: InOutCall r Source #
selfInOutCall :: InOutCall r Source #
extInOutCall :: Library -> InOutCall r Source #
class StatementSym r => CommentStatement r where Source #
Methods
comment :: Comment -> MSStatement r Source #
initState :: (DeclStatement r, Literal r) => Label -> Label -> MSStatement r Source #
changeState :: (AssignStatement r, Literal r) => Label -> Label -> MSStatement r Source #
initObserverList :: DeclStatement r => VSType r -> [SValue r] -> MSStatement r Source #
addObserver :: (StatementSym r, VariableValue r, List r) => SValue r -> 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 #
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 #
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 #
staticVar :: Label -> VSType r -> SVariable r Source #
constant :: Label -> VSType r -> SVariable r Source #
extVar :: Library -> Label -> VSType r -> SVariable r Source #
classVar :: VSType r -> SVariable r -> SVariable r Source #
extClassVar :: VSType r -> SVariable r -> SVariable r Source #
objVar :: SVariable r -> SVariable r -> SVariable r Source #
objVarSelf :: SVariable r -> SVariable r Source #
class VariableSym r => VariableElim r where Source #
Methods
variableName :: r (Variable r) -> String Source #
variableType :: r (Variable r) -> r (Type r) Source #
class (VariableSym r, ValueSym r) => VariableValue r where 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 #
Methods
inlineIf :: SValue r -> SValue r -> SValue r -> SValue r Source #
funcAppMixedArgs :: MixedCall r Source #
selfFuncAppMixedArgs :: MixedCall r Source #
extFuncAppMixedArgs :: Library -> MixedCall r Source #
libFuncAppMixedArgs :: Library -> MixedCall r Source #
newObjMixedArgs :: MixedCtorCall r Source #
extNewObjMixedArgs :: Library -> MixedCtorCall r Source #
libNewObjMixedArgs :: Library -> MixedCtorCall r Source #
funcApp :: ValueExpression r => PosCall r Source #
funcAppNamedArgs :: ValueExpression r => Label -> VSType r -> NamedArgs r -> SValue r Source #
selfFuncApp :: ValueExpression r => PosCall r Source #
extFuncApp :: ValueExpression r => Library -> PosCall r Source #
libFuncApp :: ValueExpression r => Library -> PosCall r Source #
newObj :: ValueExpression r => PosCtorCall r Source #
extNewObj :: ValueExpression r => Library -> PosCtorCall r Source #
libNewObj :: ValueExpression r => Library -> PosCtorCall r Source #
objMethodCallMixedArgs :: InternalValueExp r => VSType r -> SValue r -> Label -> [SValue r] -> NamedArgs r -> SValue r Source #
class ValueSym r => FunctionSym r where Source #
($.) :: FunctionSym r => SValue r -> VSFunction r -> SValue r infixl 9 Source #
selfAccess :: (VariableValue r, FunctionSym r) => VSFunction r -> SValue r Source #
class (ValueSym r, VariableSym r) => GetSet r where Source #
listSlice :: InternalList r => SVariable r -> SValue r -> Maybe (SValue r) -> Maybe (SValue r) -> Maybe (SValue r) -> MSBlock r Source #
listIndexExists :: (List r, Comparison r) => SValue r -> SValue r -> SValue r Source #
class BodySym r => StatePattern r where Source #
Methods
checkState :: Label -> [(SValue r, MSBody r)] -> MSBody r -> MSStatement r Source #
class (StatementSym r, FunctionSym r) => ObserverPattern r where Source #
Methods
notifyObservers :: VSFunction r -> VSType r -> MSStatement r Source #
class (BodySym r, VariableSym r) => StrategyPattern r where 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, ScopeSym r, PermanenceSym r) => MethodSym r where Source #
Methods
method :: Label -> r (Scope r) -> r (Permanence r) -> VSType r -> [MSParameter r] -> MSBody r -> SMethod r Source #
getMethod :: SVariable r -> SMethod r Source #
setMethod :: SVariable r -> SMethod r Source #
constructor :: [MSParameter r] -> Initializers r -> MSBody r -> SMethod r Source #
docMain :: MSBody r -> SMethod r Source #
function :: Label -> r (Scope 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 #
inOutMethod :: Label -> r (Scope r) -> r (Permanence r) -> InOutFunc r Source #
docInOutMethod :: Label -> r (Scope r) -> r (Permanence r) -> DocInOutFunc r Source #
inOutFunc :: Label -> r (Scope r) -> InOutFunc r Source #
docInOutFunc :: Label -> r (Scope r) -> DocInOutFunc r Source #
privMethod :: MethodSym r => Label -> VSType r -> [MSParameter r] -> MSBody r -> SMethod r Source #
initializer :: MethodSym r => [MSParameter r] -> Initializers r -> SMethod r Source #
nonInitConstructor :: MethodSym r => [MSParameter r] -> MSBody r -> SMethod r Source #
class (ScopeSym r, PermanenceSym r, VariableSym r) => StateVarSym r where Source #
Methods
stateVar :: r (Scope r) -> r (Permanence r) -> SVariable r -> CSStateVar r Source #
stateVarDef :: r (Scope r) -> r (Permanence r) -> SVariable r -> SValue r -> CSStateVar r Source #
constVar :: r (Scope r) -> SVariable r -> SValue r -> CSStateVar r Source #
privDVar :: StateVarSym r => SVariable r -> CSStateVar r Source #
pubDVar :: StateVarSym r => SVariable r -> CSStateVar r Source #
pubSVar :: StateVarSym r => SVariable r -> CSStateVar r Source #
class (MethodSym r, StateVarSym r) => ClassSym r where Source #
Methods
buildClass :: Maybe Label -> [CSStateVar r] -> [SMethod r] -> SClass r Source #
extraClass :: Label -> Maybe Label -> [CSStateVar r] -> [SMethod r] -> SClass r Source #
implementingClass :: Label -> [Label] -> [CSStateVar r] -> [SMethod r] -> SClass r Source #
Constructors
Boolean | |
Integer | |
Float | |
Double | |
Char | |
String | |
InFile | |
OutFile | |
List CodeType | |
Array CodeType | |
Object ClassName | |
Func [CodeType] CodeType | |
Void |
Instances
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 #
cppVersion :: String Source #