gnu.expr
Class ClassExp

java.lang.Object
  extended by gnu.mapping.Procedure
      extended by gnu.mapping.Procedure0
          extended by gnu.expr.Expression
              extended by gnu.expr.ScopeExp
                  extended by gnu.expr.LambdaExp
                      extended by gnu.expr.ClassExp
All Implemented Interfaces:
Named, Printable
Direct Known 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
body, closureEnvField, defaultArgs, fileFunctionName, firstChild, keywords, max_args, min_args, nameDecl, NEXT_AVAIL_FLAG, nextSibling, NO_FIELD, returnContinuation, returnType, SEQUENCE_RESULT, staticLinkField
 
Fields inherited from class gnu.expr.ScopeExp
id, outer
 
Fields inherited from class gnu.expr.Expression
flags, noExpressions
 
Constructor Summary
ClassExp()
           
 
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.
 java.lang.String getJavaName()
           
 Type getType()
          Return the Type used to represent the values of this Expression.
 boolean isMakingClassPair()
          True if we should make a pair of an interface and a class.
 boolean isSimple()
           
 void print(OutPort out)
           
 void setMakingClassPair(boolean val)
           
 void setSimple(boolean value)
           
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  Expression walk(ExpWalker walker)
           
protected  void walkChildren(ExpWalker walker)
           
 
Methods inherited from class gnu.expr.LambdaExp
allocChildClasses, allocFrame, capture, compileBody, compileEnd, declareClosureEnv, declareThis, 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, setExceptions, setImportsLexVars, setImportsLexVars, setInlineOnly, setNeedsStaticLink, setNeedsStaticLink, setProperty, setReturnType, setType, toString, variable_args, walkChildrenOnly, walkProperties
 
Methods inherited from class gnu.expr.ScopeExp
add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, currentLambda, currentModule, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nesting, popScope, remove, remove, replaceFollowing
 
Methods inherited from class gnu.expr.Expression
apply, apply0, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumn, getFile, getFlag, getFlags, getLine, makeWhile, match0, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine
 
Methods inherited from class gnu.mapping.Procedure0
apply1, apply2, apply3, apply4, applyN, numArgs
 
Methods inherited from class gnu.mapping.Procedure
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getName, getSetter, getSymbol, match1, match2, match3, match4, matchN, maxArgs, minArgs, name, removeProperty, set0, set1, setN, setName, setProperty, setSetter, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

supers

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


initMethod

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


clinitMethod

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

Constructor Detail

ClassExp

public ClassExp()
Method Detail

isSimple

public boolean isSimple()

setSimple

public void setSimple(boolean value)

setMakingClassPair

public void setMakingClassPair(boolean val)

isMakingClassPair

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


compile

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

compilePushClass

public void compilePushClass(Compilation comp,
                             Target target)

getJavaName

public java.lang.String getJavaName()

getCompiledClassType

protected ClassType getCompiledClassType(Compilation comp)
Description copied from class: LambdaExp
Return the ClassType of the Procedure this is being compiled into.

Overrides:
getCompiledClassType in class LambdaExp

getType

public Type getType()
Description copied from class: Expression
Return the Type used to represent the values of this Expression.

Overrides:
getType in class LambdaExp

declareParts

public void declareParts(Compilation comp)

compile

public ClassType compile(Compilation comp)

walk

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

walkChildren

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

print

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

compileSetField

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

slotToMethodName

public static java.lang.String slotToMethodName(java.lang.String prefix,
                                                java.lang.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.