Modifier and Type | Field and Description |
---|---|
static int |
CLASS_SPECIFIED |
java.lang.String |
classNameSpecifier |
LambdaExp |
clinitMethod
An artificial method named
"$clinit$" for evaluating
static initializations. |
static int |
HAS_SUBCLASS |
LambdaExp |
initMethod
An artificial method named
"$finit$" for evaluating
non-static initializations. |
static int |
INTERFACE_SPECIFIED |
static int |
IS_ABSTRACT |
int |
superClassIndex
Index in supers array of class we extend, or -1.
|
Expression[] |
supers
List of base classes and implemented interfaces.
|
ATTEMPT_INLINE, body, closureEnvField, defaultArgs, firstChild, inlineHome, keywords, max_args, min_args, nameDecl, NEXT_AVAIL_FLAG, nextSibling, NO_FIELD, OVERLOADABLE_FIELD, returnContinuation, returnType, SEQUENCE_RESULT, staticLinkField
flags, noExpressions, VALIDATED
compilerKey, validateApplyKey
nameKey
Modifier and Type | Method and Description |
---|---|
Declaration |
addMethod(LambdaExp lexp,
java.lang.Object mname) |
void |
compile(Compilation comp,
Target target) |
ClassType |
compileMembers(Compilation comp) |
void |
compilePushClass(Compilation comp,
Target target) |
Field |
compileSetField(Compilation comp) |
void |
declareParts(Compilation comp) |
ClassType |
getClassType()
The ClassType generated for this class.
|
protected ClassType |
getCompiledClassType(Compilation comp)
Return the ClassType of the Procedure this is being compiled into.
|
Type |
getType()
The ClassType generated for this class.
|
boolean |
isAbstract() |
boolean |
isMakingClassPair()
True if we should make a pair of an interface and a class.
|
boolean |
isSimple() |
protected boolean |
mustCompile() |
void |
print(OutPort out) |
void |
setSimple(boolean value) |
void |
setTypes(Compilation comp) |
static java.lang.String |
slotToMethodName(java.lang.String prefix,
java.lang.String sname)
Mangle a "slot" name to a get- or set- method name.
|
protected <R,D> R |
visit(ExpVisitor<R,D> visitor,
D d) |
protected <R,D> void |
visitChildren(ExpVisitor<R,D> visitor,
D d) |
allocChildClasses, allocFrame, apply, capture, compileBody, compileEnd, declareClosureEnv, declareThis, generateApplyMethods, getCallConvention, getCaller, getCanCall, getCanRead, getExpClassName, getHeapFrameType, getImportsLexVars, getInlineOnly, getMainMethod, getMethod, getNeedsClosureEnv, getNeedsStaticLink, getOwningLambda, getProperty, getReturnType, incomingArgs, isClassGenerated, isClassMethod, isHandlingTailCalls, isModuleBody, loadHeapFrame, outerLambda, outerLambdaNotInline, restArgType, setCanCall, setCanRead, setClassMethod, setCoercedReturnType, setCoercedReturnValue, setExceptions, setImportsLexVars, setImportsLexVars, setInlineOnly, setNeedsStaticLink, setNeedsStaticLink, setProperty, setReturnType, setType, side_effects, toString, validateApply, variable_args, visitChildrenOnly, visitProperties
add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, countNonDynamicDecls, currentLambda, currentModule, duplicateDeclarationError, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nestedIn, nesting, popScope, remove, remove, replaceFollowing, setIndexes, topLevel
apply0, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, deepCopy, deepCopy, deepCopy, deepCopy, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, isSingleValue, isStableSourceLocation, makeWhile, match0, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, valueIfConstant
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation
getName, getSymbol, removeProperty, setName, setProperty, setSymbol
public static final int IS_ABSTRACT
public static final int INTERFACE_SPECIFIED
public static final int CLASS_SPECIFIED
public static final int HAS_SUBCLASS
public java.lang.String classNameSpecifier
public Expression[] supers
public int superClassIndex
public LambdaExp initMethod
"$finit$"
for evaluating
non-static initializations.
All constructors need to call this.public LambdaExp clinitMethod
"$clinit$"
for evaluating
static initializations.public boolean isSimple()
public void setSimple(boolean value)
public final boolean isAbstract()
isAbstract
in class LambdaExp
public boolean isMakingClassPair()
public Type getType()
getClassType
: The value of a ClassExp
(viewed as an expression) is a class/type object, so getType returns
the type of a type.public ClassType getClassType()
getClassType
in class LambdaExp
protected boolean mustCompile()
mustCompile
in class LambdaExp
public void compile(Compilation comp, Target target)
public void compilePushClass(Compilation comp, Target target)
protected ClassType getCompiledClassType(Compilation comp)
LambdaExp
getCompiledClassType
in class LambdaExp
public void setTypes(Compilation comp)
public void declareParts(Compilation comp)
public ClassType compileMembers(Compilation comp)
protected <R,D> R visit(ExpVisitor<R,D> visitor, D d)
protected <R,D> void visitChildren(ExpVisitor<R,D> visitor, D d)
visitChildren
in class LambdaExp
public Field compileSetField(Compilation comp)
compileSetField
in class LambdaExp
public static java.lang.String slotToMethodName(java.lang.String prefix, java.lang.String sname)
prefix
- either "get" or "set" or "add"sname
- a "slot" (property) name. This is mangled if needed.public Declaration addMethod(LambdaExp lexp, java.lang.Object mname)