gnu.expr

Class ClassExp

Implemented Interfaces:
org.xml.sax.Locator, Named, Printable, SourceLocator
Known Direct Subclasses:
ObjectExp

public class ClassExp
extends LambdaExp

Field Summary

LambdaExp
clinitMethod
An artificial method named "$clinit$" for evaluating static initializations.
LambdaExp
initMethod
An artificial method named "$finit$" for evaluating non-static initializations.
Expression[]
supers
List of base classes and implemented interfaces.

Fields inherited from class gnu.expr.LambdaExp

NEXT_AVAIL_FLAG, NO_FIELD, OVERLOADABLE_FIELD, SEQUENCE_RESULT, body, closureEnvField, defaultArgs, firstChild, keywords, max_args, min_args, nameDecl, nextSibling, returnContinuation, returnType, staticLinkField

Fields inherited from class gnu.expr.ScopeExp

frameSize, id, outer

Fields inherited from class gnu.expr.Expression

NEXT_AVAIL_FLAG, flags, noExpressions

Constructor Summary

ClassExp()
ClassExp(boolean simple)

Method Summary

ClassType
compile(Compilation comp)
void
compile(Compilation comp, Target target)
void
compilePushClass(Compilation comp, Target target)
Field
compileSetField(Compilation comp)
void
declareParts(Compilation comp)
protected ClassType
getCompiledClassType(Compilation comp)
Return the ClassType of the Procedure this is being compiled into.
String
getJavaName()
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
setClassName(Compilation comp)
void
setSimple(boolean value)
void
setTypes(Compilation comp)
static String
slotToMethodName(String prefix, String sname)
Mangle a "slot" name to a get- or set- method name.
protected Expression
walk(ExpWalker walker)
protected void
walkChildren(ExpWalker walker)

Methods inherited from class gnu.expr.LambdaExp

allocChildClasses, allocFrame, apply, capture, compile, compileBody, compileEnd, compileSetField, declareClosureEnv, declareThis, generateApplyMethods, getCallConvention, getCaller, getCanCall, getCanRead, getCompiledClassType, getExpClassName, getHeapFrameType, getImportsLexVars, getInlineOnly, getMainMethod, getMethod, getNeedsClosureEnv, getNeedsStaticLink, getOwningLambda, getProperty, getReturnType, getType, incomingArgs, inline, isClassGenerated, isClassMethod, isHandlingTailCalls, isModuleBody, loadHeapFrame, mustCompile, outerLambda, outerLambdaNotInline, print, restArgType, setCanCall, setCanRead, setClassMethod, setExceptions, setImportsLexVars, setImportsLexVars, setInlineOnly, setNeedsStaticLink, setNeedsStaticLink, setProperty, setReturnType, setType, toString, variable_args, walk, walkChildren, walkChildrenOnly, walkProperties

Methods inherited from class gnu.expr.ScopeExp

add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, currentLambda, currentModule, duplicateDeclarationError, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nesting, popScope, remove, remove, replaceFollowing, setIndexes, toString, walk

Methods inherited from class gnu.expr.Expression

apply, apply0, compile, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, getType, inline, isStableSourceLocation, makeWhile, match0, mustCompile, print, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, side_effects, toString, valueIfConstant, walk, walkChildren

Methods inherited from class gnu.mapping.Procedure0

apply0, apply1, apply2, apply3, apply4, applyN, numArgs

Methods inherited from class gnu.mapping.Procedure

apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString

Methods inherited from class gnu.mapping.PropertySet

getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol

Field Details

clinitMethod

public LambdaExp clinitMethod
An artificial method named "$clinit$" for evaluating static initializations.

initMethod

public LambdaExp initMethod
An artificial method named "$finit$" for evaluating non-static initializations. All constructors need to call this.

supers

public Expression[] supers
List of base classes and implemented interfaces.

Constructor Details

ClassExp

public ClassExp()

ClassExp

public ClassExp(boolean simple)

Method Details

compile

public ClassType compile(Compilation comp)

compile

public void compile(Compilation comp,
                    Target target)
Overrides:
compile in interface LambdaExp

compilePushClass

public void compilePushClass(Compilation comp,
                             Target target)

compileSetField

public Field compileSetField(Compilation comp)
Overrides:
compileSetField in interface LambdaExp

declareParts

public void declareParts(Compilation comp)

getCompiledClassType

protected ClassType getCompiledClassType(Compilation comp)
Return the ClassType of the Procedure this is being compiled into.
Overrides:
getCompiledClassType in interface LambdaExp

getJavaName

public String getJavaName()

isMakingClassPair

public boolean isMakingClassPair()
True if we should make a pair of an interface and a class.

isSimple

public boolean isSimple()

mustCompile

protected boolean mustCompile()
Overrides:
mustCompile in interface LambdaExp

print

public void print(OutPort out)
Overrides:
print in interface LambdaExp

setClassName

public void setClassName(Compilation comp)

setSimple

public void setSimple(boolean value)

setTypes

public void setTypes(Compilation comp)

slotToMethodName

public static String slotToMethodName(String prefix,
                                      String sname)
Mangle a "slot" name to a get- or set- method name.
Parameters:
prefix - either "get" or "set"
sname - a "slot" (property) name. This is mangled if needed.

walk

protected Expression walk(ExpWalker walker)
Overrides:
walk in interface LambdaExp

walkChildren

protected void walkChildren(ExpWalker walker)
Overrides:
walkChildren in interface LambdaExp