gnu.expr
Class ThisExp

java.lang.Object
  extended by gnu.mapping.PropertySet
      extended by gnu.mapping.Procedure
          extended by gnu.mapping.Procedure0
              extended by gnu.expr.Expression
                  extended by gnu.expr.AccessExp
                      extended by gnu.expr.ReferenceExp
                          extended by gnu.expr.ThisExp
All Implemented Interfaces:
Named, Printable, SourceLocator, org.xml.sax.Locator

public class ThisExp
extends ReferenceExp

Evaluates to the "this" implicit variable. This is currently neither robust nor general. FIXME!


Field Summary
static java.lang.String THIS_NAME
          Non-interned name for implicit 'this' variable.
 
Fields inherited from class gnu.expr.ReferenceExp
CREATE_FIELD_REFERENCE, DONT_DEREFERENCE, PREFER_BINDING2, PROCEDURE_NAME
 
Fields inherited from class gnu.expr.Expression
flags, NEXT_AVAIL_FLAG, noExpressions
 
Constructor Summary
ThisExp()
           
ThisExp(ClassType type)
           
ThisExp(Declaration binding)
           
ThisExp(ScopeExp context)
           
 
Method Summary
 void apply(CallContext ctx)
          Evaluate the expression.
 void compile(Compilation comp, Target target)
           
 ScopeExp getContextScope()
           
 Type getType()
          Return the Type used to represent the values of this Expression.
 boolean isForContext()
          If this is being used to pass the context instance to a Macro.
static ThisExp makeGivingContext(ScopeExp context)
           
protected  Expression walk(ExpWalker walker)
           
 
Methods inherited from class gnu.expr.ReferenceExp
getDontDereference, inline, isProcedureName, isUnknown, mustCompile, print, setDontDereference, setProcedureName, side_effects, toString
 
Methods inherited from class gnu.expr.AccessExp
contextDecl, getBinding, getName, getSimpleName, getSymbol, setBinding, setContextDecl, string_name
 
Methods inherited from class gnu.expr.Expression
apply0, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, isStableSourceLocation, makeWhile, match0, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, valueIfConstant, walkChildren
 
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, getSetter, getSourceLocation, match1, match2, match3, match4, matchN, maxArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation
 
Methods inherited from class gnu.mapping.PropertySet
getProperty, removeProperty, setName, setProperty, setProperty, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

THIS_NAME

public static final java.lang.String THIS_NAME
Non-interned name for implicit 'this' variable.

Constructor Detail

ThisExp

public ThisExp()

ThisExp

public ThisExp(ScopeExp context)

ThisExp

public ThisExp(Declaration binding)

ThisExp

public ThisExp(ClassType type)
Method Detail

isForContext

public final boolean isForContext()
If this is being used to pass the context instance to a Macro.


apply

public void apply(CallContext ctx)
           throws java.lang.Throwable
Description copied from class: Expression
Evaluate the expression. This is named apply rather than eval so it is compatible with the full-tail-call calling convention, and we can stash an Expression in CallContext's proc field. FIXME - are we making use of this?

Overrides:
apply in class ReferenceExp
Throws:
java.lang.Throwable

getContextScope

public ScopeExp getContextScope()

makeGivingContext

public static ThisExp makeGivingContext(ScopeExp context)

compile

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

walk

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

getType

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

Overrides:
getType in class ReferenceExp