Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
class (FileSym r, AssignStatement r, DeclStatement r, IOStatement r, StringStatement r, FuncAppStatement r, CommentStatement r, ControlStatement 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, InternalList r, VectorExpression r, StatePattern r, ObserverPattern r, StrategyPattern r, TypeElim r, VariableElim r, RenderBlock r, BlockElim r, RenderBody r, BodyElim r, RenderClass r, ClassElim r, RenderFile r, InternalGetSet r, InternalListFunc r, RenderFunction r, FunctionElim r, RenderMethod r, MethodElim r, RenderMod r, ModuleElim r, OpElim r, RenderParam r, ParamElim r, PermElim r, RenderScope r, ScopeElim r, InternalAssignStmt r, InternalIOStmt r, InternalControlStmt r, RenderStatement r, StatementElim r, StateVarElim r, RenderType r, InternalTypeElim r, RenderValue r, ValueElim r, RenderVariable r, InternalVarElim r, ImportSym r, ImportElim r, UnaryOpSym r, BinaryOpSym r, BlockCommentElim r) => RenderSym r Source #
Instances
RenderSym CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer | |
RenderSym CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer | |
RenderSym CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer | |
RenderSym JavaCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.JavaRenderer | |
RenderSym PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer | |
RenderSym SwiftCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.SwiftRenderer | |
Pair p => RenderSym (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer |
class BlockCommentSym r => RenderFile r where Source #
top :: r (Module r) -> r (Block r) Source #
bottom :: r (Block r) Source #
commentedMod :: SFile r -> FS (r (BlockComment r)) -> SFile r Source #
Instances
class ImportSym r where Source #
Instances
class ImportElim r where Source #
Instances
ImportElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer import' :: CSharpCode (Import CSharpCode) -> Doc Source # | |
ImportElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer import' :: CppHdrCode (Import CppHdrCode) -> Doc Source # | |
ImportElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer import' :: CppSrcCode (Import CppSrcCode) -> Doc Source # | |
ImportElim JavaCode Source # | |
ImportElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer import' :: PythonCode (Import PythonCode) -> Doc Source # | |
ImportElim SwiftCode Source # | |
Pair p => ImportElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer import' :: p CppSrcCode CppHdrCode (Import (p CppSrcCode CppHdrCode)) -> Doc Source # |
class PermElim r where Source #
perm :: r (Permanence r) -> Doc Source #
binding :: r (Permanence r) -> Binding Source #
Instances
class RenderBody r where Source #
Instances
RenderBody CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer multiBody :: [MSBody CSharpCode] -> MSBody CSharpCode Source # | |
RenderBody CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBody :: [MSBody CppHdrCode] -> MSBody CppHdrCode Source # | |
RenderBody CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBody :: [MSBody CppSrcCode] -> MSBody CppSrcCode Source # | |
RenderBody JavaCode Source # | |
RenderBody PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer multiBody :: [MSBody PythonCode] -> MSBody PythonCode Source # | |
RenderBody SwiftCode Source # | |
Pair p => RenderBody (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBody :: [MSBody (p CppSrcCode CppHdrCode)] -> MSBody (p CppSrcCode CppHdrCode) Source # |
class BodyElim r where Source #
Instances
BodyElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer body :: CSharpCode (Body CSharpCode) -> Doc Source # | |
BodyElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer body :: CppHdrCode (Body CppHdrCode) -> Doc Source # | |
BodyElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer body :: CppSrcCode (Body CppSrcCode) -> Doc Source # | |
BodyElim JavaCode Source # | |
BodyElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer body :: PythonCode (Body PythonCode) -> Doc Source # | |
BodyElim SwiftCode Source # | |
Pair p => BodyElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer body :: p CppSrcCode CppHdrCode (Body (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderBlock r where Source #
multiBlock :: [MSBlock r] -> MSBlock r Source #
Instances
RenderBlock CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer multiBlock :: [MSBlock CSharpCode] -> MSBlock CSharpCode Source # | |
RenderBlock CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBlock :: [MSBlock CppHdrCode] -> MSBlock CppHdrCode Source # | |
RenderBlock CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBlock :: [MSBlock CppSrcCode] -> MSBlock CppSrcCode Source # | |
RenderBlock JavaCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.JavaRenderer | |
RenderBlock PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer multiBlock :: [MSBlock PythonCode] -> MSBlock PythonCode Source # | |
RenderBlock SwiftCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.SwiftRenderer | |
Pair p => RenderBlock (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer multiBlock :: [MSBlock (p CppSrcCode CppHdrCode)] -> MSBlock (p CppSrcCode CppHdrCode) Source # |
class BlockElim r where Source #
Instances
BlockElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer block :: CSharpCode (Block CSharpCode) -> Doc Source # | |
BlockElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer block :: CppHdrCode (Block CppHdrCode) -> Doc Source # | |
BlockElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer block :: CppSrcCode (Block CppSrcCode) -> Doc Source # | |
BlockElim JavaCode Source # | |
BlockElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer block :: PythonCode (Block PythonCode) -> Doc Source # | |
BlockElim SwiftCode Source # | |
Pair p => BlockElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer block :: p CppSrcCode CppHdrCode (Block (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderType r where Source #
multiType :: [VSType r] -> VSType r Source #
typeFromData :: CodeType -> String -> Doc -> VSType r Source #
Instances
class InternalTypeElim r where Source #
Instances
InternalTypeElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer type' :: CSharpCode (Type CSharpCode) -> Doc Source # | |
InternalTypeElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer type' :: CppHdrCode (Type CppHdrCode) -> Doc Source # | |
InternalTypeElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer type' :: CppSrcCode (Type CppSrcCode) -> Doc Source # | |
InternalTypeElim JavaCode Source # | |
InternalTypeElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer type' :: PythonCode (Type PythonCode) -> Doc Source # | |
InternalTypeElim SwiftCode Source # | |
Pair p => InternalTypeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer type' :: p CppSrcCode CppHdrCode (Type (p CppSrcCode CppHdrCode)) -> Doc Source # |
class UnaryOpSym r where Source #
Instances
class BinaryOpSym r where Source #
notEqualOp :: VSBinOp r Source #
greaterOp :: VSBinOp r Source #
greaterEqualOp :: VSBinOp r Source #
lessEqualOp :: VSBinOp r Source #
divideOp :: VSBinOp r Source #
Instances
uOp :: r (UnaryOp r) -> Doc Source #
bOp :: r (BinaryOp r) -> Doc Source #
Instances
class RenderVariable r where Source #
Instances
class InternalVarElim r where Source #
Instances
class RenderValue r where Source #
inputFunc :: SValue r Source #
printFunc :: SValue r Source #
printLnFunc :: SValue r Source #
printFileFunc :: SValue r -> SValue r Source #
printFileLnFunc :: SValue r -> SValue r Source #
cast :: VSType r -> SValue r -> SValue r Source #
call :: Maybe Library -> Maybe Doc -> MixedCall r Source #
Very generic internal function for generating calls, to reduce repeated code throughout generators. Parameters are: maybe name of external module, maybe Doc for object variable (including separator between object and function) for method calls.
valFromData :: Maybe Int -> VSType r -> Doc -> SValue r Source #
Instances
class ValueElim r where Source #
Instances
class InternalGetSet r where Source #
getFunc :: SVariable r -> VSFunction r Source #
setFunc :: VSType r -> SVariable r -> SValue r -> VSFunction r Source #
Instances
InternalGetSet CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer | |
InternalGetSet CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer | |
InternalGetSet CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer | |
InternalGetSet JavaCode Source # | |
InternalGetSet PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer | |
InternalGetSet SwiftCode Source # | |
Pair p => InternalGetSet (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer getFunc :: SVariable (p CppSrcCode CppHdrCode) -> VSFunction (p CppSrcCode CppHdrCode) Source # setFunc :: VSType (p CppSrcCode CppHdrCode) -> SVariable (p CppSrcCode CppHdrCode) -> SValue (p CppSrcCode CppHdrCode) -> VSFunction (p CppSrcCode CppHdrCode) Source # |
class InternalListFunc r where Source #
listSizeFunc :: VSFunction r Source #
listAddFunc :: SValue r -> SValue r -> SValue r -> VSFunction r Source #
listAppendFunc :: SValue r -> VSFunction r Source #
listAccessFunc :: VSType r -> SValue r -> VSFunction r Source #
listSetFunc :: SValue r -> SValue r -> SValue r -> VSFunction r Source #
Instances
class RenderFunction r where Source #
funcFromData :: Doc -> VSType r -> VSFunction r Source #
Instances
class FunctionElim r where Source #
Instances
class InternalAssignStmt r where Source #
multiAssign :: [SVariable r] -> [SValue r] -> MSStatement r Source #
Instances
class InternalIOStmt r where Source #
Instances
class InternalControlStmt r where Source #
multiReturn :: [SValue r] -> MSStatement r Source #
Instances
class RenderStatement r where Source #
stmt :: MSStatement r -> MSStatement r Source #
loopStmt :: MSStatement r -> MSStatement r Source #
emptyStmt :: MSStatement r Source #
stmtFromData :: Doc -> Terminator -> MSStatement r Source #
Instances
class StatementElim r where Source #
statement :: r (Statement r) -> Doc Source #
statementTerm :: r (Statement r) -> Terminator Source #
Instances
class RenderScope r where Source #
Instances
class ScopeElim r where Source #
Instances
ScopeElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer scope :: CSharpCode (Scope CSharpCode) -> Doc Source # | |
ScopeElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer scope :: CppHdrCode (Scope CppHdrCode) -> Doc Source # | |
ScopeElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer scope :: CppSrcCode (Scope CppSrcCode) -> Doc Source # | |
ScopeElim JavaCode Source # | |
ScopeElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer scope :: PythonCode (Scope PythonCode) -> Doc Source # | |
ScopeElim SwiftCode Source # | |
Pair p => ScopeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer scope :: p CppSrcCode CppHdrCode (Scope (p CppSrcCode CppHdrCode)) -> Doc Source # |
type MSMthdType a = MS (a (MethodType a)) Source #
class TypeSym r => MethodTypeSym r where Source #
type MethodType r Source #
mType :: VSType r -> MSMthdType r Source #
construct :: Label -> MSMthdType r Source #
Instances
class RenderParam r where Source #
paramFromData :: SVariable r -> Doc -> MSParameter r Source #
Instances
class ParamElim r where Source #
parameterName :: r (Parameter r) -> Label Source #
parameterType :: r (Parameter r) -> r (Type r) Source #
Instances
class (MethodTypeSym r, BlockCommentSym r) => RenderMethod r where Source #
intMethod :: Bool -> Label -> r (Scope r) -> r (Permanence r) -> MSMthdType r -> [MSParameter r] -> MSBody r -> SMethod r Source #
intFunc :: Bool -> Label -> r (Scope r) -> r (Permanence r) -> MSMthdType r -> [MSParameter r] -> MSBody r -> SMethod r Source #
commentedFunc :: MS (r (BlockComment r)) -> SMethod r -> SMethod r Source #
destructor :: [CSStateVar r] -> SMethod r Source #
Instances
class MethodElim r where Source #
Instances
MethodElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer method :: CSharpCode (Method CSharpCode) -> Doc Source # | |
MethodElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer method :: CppHdrCode (Method CppHdrCode) -> Doc Source # | |
MethodElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer method :: CppSrcCode (Method CppSrcCode) -> Doc Source # | |
MethodElim JavaCode Source # | |
MethodElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer method :: PythonCode (Method PythonCode) -> Doc Source # | |
MethodElim SwiftCode Source # | |
Pair p => MethodElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer method :: p CppSrcCode CppHdrCode (Method (p CppSrcCode CppHdrCode)) -> Doc Source # |
class StateVarElim r where Source #
Instances
StateVarElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer stateVar :: CSharpCode (StateVar CSharpCode) -> Doc Source # | |
StateVarElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer stateVar :: CppHdrCode (StateVar CppHdrCode) -> Doc Source # | |
StateVarElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer stateVar :: CppSrcCode (StateVar CppSrcCode) -> Doc Source # | |
StateVarElim JavaCode Source # | |
StateVarElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer stateVar :: PythonCode (StateVar PythonCode) -> Doc Source # | |
StateVarElim SwiftCode Source # | |
Pair p => StateVarElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer stateVar :: p CppSrcCode CppHdrCode (StateVar (p CppSrcCode CppHdrCode)) -> Doc Source # |
type ParentSpec = Doc Source #
class BlockCommentSym r => RenderClass r where Source #
intClass :: Label -> r (Scope r) -> r ParentSpec -> [CSStateVar r] -> [SMethod r] -> SClass r Source #
inherit :: Maybe Label -> r ParentSpec Source #
implements :: [Label] -> r ParentSpec Source #
commentedClass :: CS (r (BlockComment r)) -> SClass r -> SClass r Source #
Instances
class ClassElim r where Source #
Instances
ClassElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer class' :: CSharpCode (Class CSharpCode) -> Doc Source # | |
ClassElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer class' :: CppHdrCode (Class CppHdrCode) -> Doc Source # | |
ClassElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer class' :: CppSrcCode (Class CppSrcCode) -> Doc Source # | |
ClassElim JavaCode Source # | |
ClassElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer class' :: PythonCode (Class PythonCode) -> Doc Source # | |
ClassElim SwiftCode Source # | |
Pair p => ClassElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer class' :: p CppSrcCode CppHdrCode (Class (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderMod r where Source #
modFromData :: String -> FS Doc -> FSModule r Source #
updateModuleDoc :: (Doc -> Doc) -> r (Module r) -> r (Module r) Source #
Instances
class ModuleElim r where Source #
Instances
ModuleElim CSharpCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CSharpRenderer module' :: CSharpCode (Module CSharpCode) -> Doc Source # | |
ModuleElim CppHdrCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer module' :: CppHdrCode (Module CppHdrCode) -> Doc Source # | |
ModuleElim CppSrcCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer module' :: CppSrcCode (Module CppSrcCode) -> Doc Source # | |
ModuleElim JavaCode Source # | |
ModuleElim PythonCode Source # | |
Defined in GOOL.Drasil.LanguageRenderer.PythonRenderer module' :: PythonCode (Module PythonCode) -> Doc Source # | |
ModuleElim SwiftCode Source # | |
Pair p => ModuleElim (p CppSrcCode CppHdrCode) Source # | |
Defined in GOOL.Drasil.LanguageRenderer.CppRenderer module' :: p CppSrcCode CppHdrCode (Module (p CppSrcCode CppHdrCode)) -> Doc Source # |
class BlockCommentSym r where Source #
type BlockComment r Source #
blockComment :: [String] -> r (BlockComment r) Source #
docComment :: State a [String] -> State a (r (BlockComment r)) Source #
Instances
class BlockCommentElim r where Source #
blockComment' :: r (BlockComment r) -> Doc Source #