Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Drasil.GOOL.RendererClassesCommon
Documentation
class (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, List r, InternalList r, VectorExpression r, TypeElim r, VariableElim r, RenderBlock r, BlockElim r, RenderBody r, BodyElim r, InternalListFunc r, RenderFunction r, FunctionElim r, OpElim r, RenderParam r, ParamElim r, RenderVisibility r, VisibilityElim r, InternalAssignStmt r, InternalIOStmt r, InternalControlStmt r, RenderStatement r, StatementElim r, RenderType r, InternalTypeElim r, RenderValue r, ValueElim r, RenderVariable r, InternalVarElim r, ImportSym r, ImportElim r, UnaryOpSym r, BinaryOpSym r, BlockCommentSym r, BlockCommentElim r, ValueExpression r, RenderMethod r, MethodElim r, ParameterSym r, ScopeElim r) => CommonRenderSym r Source #
Instances
class ImportSym r where Source #
Instances
class ImportElim r where Source #
Instances
ImportElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods import' :: CSharpCode (Import CSharpCode) -> Doc Source # | |
ImportElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods import' :: CppHdrCode (Import CppHdrCode) -> Doc Source # | |
ImportElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods import' :: CppSrcCode (Import CppSrcCode) -> Doc Source # | |
ImportElim JavaCode Source # | |
ImportElim JuliaCode Source # | |
ImportElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods import' :: PythonCode (Import PythonCode) -> Doc Source # | |
ImportElim SwiftCode Source # | |
Pair p => ImportElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods import' :: p CppSrcCode CppHdrCode (Import (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderBody r where Source #
Instances
RenderBody CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods multiBody :: [MSBody CSharpCode] -> MSBody CSharpCode Source # | |
RenderBody CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods multiBody :: [MSBody CppHdrCode] -> MSBody CppHdrCode Source # | |
RenderBody CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods multiBody :: [MSBody CppSrcCode] -> MSBody CppSrcCode Source # | |
RenderBody JavaCode Source # | |
RenderBody JuliaCode Source # | |
RenderBody PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods multiBody :: [MSBody PythonCode] -> MSBody PythonCode Source # | |
RenderBody SwiftCode Source # | |
Pair p => RenderBody (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods multiBody :: [MSBody (p CppSrcCode CppHdrCode)] -> MSBody (p CppSrcCode CppHdrCode) Source # |
class BodyElim r where Source #
Instances
BodyElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods body :: CSharpCode (Body CSharpCode) -> Doc Source # | |
BodyElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods body :: CppHdrCode (Body CppHdrCode) -> Doc Source # | |
BodyElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods body :: CppSrcCode (Body CppSrcCode) -> Doc Source # | |
BodyElim JavaCode Source # | |
BodyElim JuliaCode Source # | |
BodyElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods body :: PythonCode (Body PythonCode) -> Doc Source # | |
BodyElim SwiftCode Source # | |
Pair p => BodyElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods body :: p CppSrcCode CppHdrCode (Body (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderBlock r where Source #
Methods
multiBlock :: [MSBlock r] -> MSBlock r Source #
Instances
class BlockElim r where Source #
Instances
BlockElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods block :: CSharpCode (Block CSharpCode) -> Doc Source # | |
BlockElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods block :: CppHdrCode (Block CppHdrCode) -> Doc Source # | |
BlockElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods block :: CppSrcCode (Block CppSrcCode) -> Doc Source # | |
BlockElim JavaCode Source # | |
BlockElim JuliaCode Source # | |
BlockElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods block :: PythonCode (Block PythonCode) -> Doc Source # | |
BlockElim SwiftCode Source # | |
Pair p => BlockElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods block :: p CppSrcCode CppHdrCode (Block (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderType r where Source #
Methods
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 Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods type' :: CSharpCode (Type CSharpCode) -> Doc Source # | |
InternalTypeElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods type' :: CppHdrCode (Type CppHdrCode) -> Doc Source # | |
InternalTypeElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods type' :: CppSrcCode (Type CppSrcCode) -> Doc Source # | |
InternalTypeElim JavaCode Source # | |
InternalTypeElim JuliaCode Source # | |
InternalTypeElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods type' :: PythonCode (Type PythonCode) -> Doc Source # | |
InternalTypeElim SwiftCode Source # | |
Pair p => InternalTypeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods type' :: p CppSrcCode CppHdrCode (Type (p CppSrcCode CppHdrCode)) -> Doc Source # |
class UnaryOpSym r where Source #
Methods
Instances
class BinaryOpSym r where Source #
Methods
notEqualOp :: VSBinOp r Source #
greaterOp :: VSBinOp r Source #
greaterEqualOp :: VSBinOp r Source #
lessEqualOp :: VSBinOp r Source #
divideOp :: VSBinOp r Source #
Instances
Methods
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 #
Methods
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 -> Maybe Integer -> VSType r -> Doc -> SValue r Source #
Instances
class ValueElim r where Source #
Methods
valuePrec :: r (Value r) -> Maybe Int Source #
Instances
class InternalListFunc r where Source #
Methods
listSizeFunc :: SValue r -> VSFunction r Source #
List
listAddFunc :: SValue r -> SValue r -> SValue r -> VSFunction r Source #
List, Index, Value
listAppendFunc :: SValue r -> SValue r -> VSFunction r Source #
List, Value
listAccessFunc :: VSType r -> SValue r -> VSFunction r Source #
List, Index
listSetFunc :: SValue r -> SValue r -> SValue r -> VSFunction r Source #
List, Index, Value
Instances
class RenderFunction r where Source #
Methods
funcFromData :: Doc -> VSType r -> VSFunction r Source #
Instances
class FunctionElim r where Source #
Methods
functionType :: r (Function r) -> r (Type r) Source #
Instances
class InternalAssignStmt r where Source #
Methods
multiAssign :: [SVariable r] -> [SValue r] -> MSStatement r Source #
Instances
class InternalIOStmt r where Source #
Instances
class InternalControlStmt r where Source #
Methods
multiReturn :: [SValue r] -> MSStatement r Source #
Instances
class RenderStatement r where Source #
Methods
stmt :: MSStatement r -> MSStatement r Source #
loopStmt :: MSStatement r -> MSStatement r Source #
stmtFromData :: Doc -> Terminator -> MSStatement r Source #
Instances
class StatementElim r where Source #
Methods
statement :: r (Statement r) -> Doc Source #
statementTerm :: r (Statement r) -> Terminator Source #
Instances
class RenderVisibility r where Source #
Methods
visibilityFromData :: VisibilityTag -> Doc -> r (Visibility r) Source #
Instances
class VisibilityElim r where Source #
Methods
visibility :: r (Visibility r) -> Doc Source #
Instances
type MSMthdType a = MS (a (MethodType a)) Source #
class TypeSym r => MethodTypeSym r where Source #
Associated Types
type MethodType r Source #
Methods
mType :: VSType r -> MSMthdType r Source #
Instances
class RenderParam r where Source #
Methods
paramFromData :: SVariable r -> Doc -> MSParameter r Source #
Instances
class ParamElim r where Source #
Methods
parameterName :: r (Parameter r) -> Label Source #
parameterType :: r (Parameter r) -> r (Type r) Source #
Instances
class (MethodTypeSym r, BlockCommentSym r) => RenderMethod r where Source #
Methods
commentedFunc :: MS (r (BlockComment r)) -> SMethod r -> SMethod r Source #
Takes a BlockComment and a method and generates a function.
mthdFromData :: VisibilityTag -> Doc -> SMethod r Source #
Instances
class MethodElim r where Source #
Instances
MethodElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods method :: CSharpCode (Method CSharpCode) -> Doc Source # | |
MethodElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods method :: CppHdrCode (Method CppHdrCode) -> Doc Source # | |
MethodElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods method :: CppSrcCode (Method CppSrcCode) -> Doc Source # | |
MethodElim JavaCode Source # | |
MethodElim JuliaCode Source # | |
MethodElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods method :: PythonCode (Method PythonCode) -> Doc Source # | |
MethodElim SwiftCode Source # | |
Pair p => MethodElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods method :: p CppSrcCode CppHdrCode (Method (p CppSrcCode CppHdrCode)) -> Doc Source # |
class BlockCommentSym r where Source #
Associated Types
type BlockComment r Source #
Methods
blockComment :: [String] -> r (BlockComment r) Source #
docComment :: State a [String] -> State a (r (BlockComment r)) Source #
Converts a list of strings into a block comment
Instances
class BlockCommentElim r where Source #
Methods
blockComment' :: r (BlockComment r) -> Doc Source #
Instances
class ScopeElim r where Source #
Instances
ScopeElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer Methods scopeData :: CSharpCode (Scope CSharpCode) -> ScopeData Source # | |
ScopeElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods scopeData :: CppHdrCode (Scope CppHdrCode) -> ScopeData Source # | |
ScopeElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods scopeData :: CppSrcCode (Scope CppSrcCode) -> ScopeData Source # | |
ScopeElim JavaCode Source # | |
ScopeElim JuliaCode Source # | |
ScopeElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer Methods scopeData :: PythonCode (Scope PythonCode) -> ScopeData Source # | |
ScopeElim SwiftCode Source # | |
Pair p => ScopeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer Methods scopeData :: p CppSrcCode CppHdrCode (Scope (p CppSrcCode CppHdrCode)) -> ScopeData Source # |