Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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 import' :: CSharpCode (Import CSharpCode) -> Doc Source # | |
ImportElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer import' :: CppHdrCode (Import CppHdrCode) -> Doc Source # | |
ImportElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer import' :: CppSrcCode (Import CppSrcCode) -> Doc Source # | |
ImportElim JavaCode Source # | |
ImportElim JuliaCode Source # | |
ImportElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer import' :: PythonCode (Import PythonCode) -> Doc Source # | |
ImportElim SwiftCode Source # | |
Pair p => ImportElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer 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 multiBody :: [MSBody CSharpCode] -> MSBody CSharpCode Source # | |
RenderBody CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer multiBody :: [MSBody CppHdrCode] -> MSBody CppHdrCode Source # | |
RenderBody CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer multiBody :: [MSBody CppSrcCode] -> MSBody CppSrcCode Source # | |
RenderBody JavaCode Source # | |
RenderBody JuliaCode Source # | |
RenderBody PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer multiBody :: [MSBody PythonCode] -> MSBody PythonCode Source # | |
RenderBody SwiftCode Source # | |
Pair p => RenderBody (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer 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 body :: CSharpCode (Body CSharpCode) -> Doc Source # | |
BodyElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer body :: CppHdrCode (Body CppHdrCode) -> Doc Source # | |
BodyElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer body :: CppSrcCode (Body CppSrcCode) -> Doc Source # | |
BodyElim JavaCode Source # | |
BodyElim JuliaCode Source # | |
BodyElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer body :: PythonCode (Body PythonCode) -> Doc Source # | |
BodyElim SwiftCode Source # | |
Pair p => BodyElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer body :: p CppSrcCode CppHdrCode (Body (p CppSrcCode CppHdrCode)) -> Doc Source # |
class RenderBlock r where Source #
multiBlock :: [MSBlock r] -> MSBlock r Source #
Instances
class BlockElim r where Source #
Instances
BlockElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer block :: CSharpCode (Block CSharpCode) -> Doc Source # | |
BlockElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer block :: CppHdrCode (Block CppHdrCode) -> Doc Source # | |
BlockElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer block :: CppSrcCode (Block CppSrcCode) -> Doc Source # | |
BlockElim JavaCode Source # | |
BlockElim JuliaCode Source # | |
BlockElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer block :: PythonCode (Block PythonCode) -> Doc Source # | |
BlockElim SwiftCode Source # | |
Pair p => BlockElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.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 Drasil.GOOL.LanguageRenderer.CSharpRenderer type' :: CSharpCode (Type CSharpCode) -> Doc Source # | |
InternalTypeElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer type' :: CppHdrCode (Type CppHdrCode) -> Doc Source # | |
InternalTypeElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer type' :: CppSrcCode (Type CppSrcCode) -> Doc Source # | |
InternalTypeElim JavaCode Source # | |
InternalTypeElim JuliaCode Source # | |
InternalTypeElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer type' :: PythonCode (Type PythonCode) -> Doc Source # | |
InternalTypeElim SwiftCode Source # | |
Pair p => InternalTypeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.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 -> Maybe Integer -> VSType r -> Doc -> SValue r Source #
Instances
class ValueElim r where Source #
Instances
class InternalListFunc r where Source #
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 #
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 #
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 RenderVisibility r where Source #
visibilityFromData :: VisibilityTag -> Doc -> r (Visibility r) Source #
Instances
class VisibilityElim r where Source #
visibility :: r (Visibility r) -> Doc Source #
Instances
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 #
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 #
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 method :: CSharpCode (Method CSharpCode) -> Doc Source # | |
MethodElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer method :: CppHdrCode (Method CppHdrCode) -> Doc Source # | |
MethodElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer method :: CppSrcCode (Method CppSrcCode) -> Doc Source # | |
MethodElim JavaCode Source # | |
MethodElim JuliaCode Source # | |
MethodElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer method :: PythonCode (Method PythonCode) -> Doc Source # | |
MethodElim SwiftCode Source # | |
Pair p => MethodElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer method :: p CppSrcCode CppHdrCode (Method (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 #
Converts a list of strings into a block comment
Instances
class BlockCommentElim r where Source #
blockComment' :: r (BlockComment r) -> Doc Source #
Instances
class ScopeElim r where Source #
Instances
ScopeElim CSharpCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CSharpRenderer scopeData :: CSharpCode (Scope CSharpCode) -> ScopeData Source # | |
ScopeElim CppHdrCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer scopeData :: CppHdrCode (Scope CppHdrCode) -> ScopeData Source # | |
ScopeElim CppSrcCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer scopeData :: CppSrcCode (Scope CppSrcCode) -> ScopeData Source # | |
ScopeElim JavaCode Source # | |
ScopeElim JuliaCode Source # | |
ScopeElim PythonCode Source # | |
Defined in Drasil.GOOL.LanguageRenderer.PythonRenderer scopeData :: PythonCode (Scope PythonCode) -> ScopeData Source # | |
ScopeElim SwiftCode Source # | |
Pair p => ScopeElim (p CppSrcCode CppHdrCode) Source # | |
Defined in Drasil.GOOL.LanguageRenderer.CppRenderer scopeData :: p CppSrcCode CppHdrCode (Scope (p CppSrcCode CppHdrCode)) -> ScopeData Source # |