gnu.expr

Class ClassExp

public class ClassExp extends LambdaExp

Field Summary
LambdaExpclinitMethod
An artificial method named {@code "$clinit$"} for evaluating static initializations.
LambdaExpinitMethod
An artificial method named {@code "$finit$"} for evaluating non-static initializations.
Expression[]supers
List of base classes and implemented interfaces.
Constructor Summary
ClassExp()
ClassExp(boolean simple)
Method Summary
voidcompile(Compilation comp, Target target)
ClassTypecompile(Compilation comp)
voidcompilePushClass(Compilation comp, Target target)
FieldcompileSetField(Compilation comp)
voiddeclareParts(Compilation comp)
protected ClassTypegetCompiledClassType(Compilation comp)
StringgetJavaName()
booleanisMakingClassPair()
True if we should make a pair of an interface and a class.
booleanisSimple()
protected booleanmustCompile()
voidprint(OutPort out)
voidsetClassName(Compilation comp)
voidsetSimple(boolean value)
voidsetTypes(Compilation comp)
static StringslotToMethodName(String prefix, String sname)
Mangle a "slot" name to a get- or set- method name.
protected Expressionwalk(ExpWalker walker)
protected voidwalkChildren(ExpWalker walker)

Field Detail

clinitMethod

public LambdaExp clinitMethod
An artificial method named {@code "$clinit$"} for evaluating static initializations.

initMethod

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

supers

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

Constructor Detail

ClassExp

public ClassExp()

ClassExp

public ClassExp(boolean simple)

Method Detail

compile

public void compile(Compilation comp, Target target)

compile

public ClassType compile(Compilation comp)

compilePushClass

public void compilePushClass(Compilation comp, Target target)

compileSetField

public Field compileSetField(Compilation comp)

declareParts

public void declareParts(Compilation comp)

getCompiledClassType

protected ClassType getCompiledClassType(Compilation comp)

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()

print

public void print(OutPort out)

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)

walkChildren

protected void walkChildren(ExpWalker walker)