gnu.expr

Class ReferenceExp

Implemented Interfaces:
Named, Printable
Known Direct Subclasses:
ThisExp

public class ReferenceExp
extends AccessExp

This class represents a variable reference (an identifier).

Field Summary

static int
CREATE_FIELD_REFERENCE
Create a FieldLocation referencing the binding.
static int
DONT_DEREFERENCE
static int
PREFER_BINDING2
static int
PROCEDURE_NAME

Fields inherited from class gnu.expr.Expression

NEXT_AVAIL_FLAG, flags, noExpressions

Constructor Summary

ReferenceExp(Object symbol)
ReferenceExp(Object symbol, Declaration binding)
ReferenceExp(Declaration binding)

Method Summary

void
compile(Compilation comp, Target target)
Object
eval(Environment env)
boolean
getDontDereference()
Type
getType()
Return the Type used to represent the values of this Expression.
boolean
isProcedureName()
True if this identifier appears in "function call position".
void
print(OutPort ps)
void
setDontDereference(boolean setting)
void
setProcedureName(boolean setting)
Note if this identifier appears in "function call position".
String
toString()
protected Expression
walk(ExpWalker walker)

Methods inherited from class gnu.expr.AccessExp

contextDecl, getBinding, getName, getSymbol, setBinding, setContextDecl, string_name

Methods inherited from class gnu.expr.Expression

apply, apply0, compile, compile, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumn, getFile, getFlag, getFlags, getLine, getType, makeWhile, match0, print, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, 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, getName, getProperty, getSetter, getSymbol, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, name, numArgs, removeProperty, set0, set1, setN, setName, setProperty, setProperty, setSetter, setSymbol, toString

Field Details

CREATE_FIELD_REFERENCE

public static final int CREATE_FIELD_REFERENCE
Create a FieldLocation referencing the binding.
Field Value:
8

DONT_DEREFERENCE

public static final int DONT_DEREFERENCE
Field Value:
1

PREFER_BINDING2

public static final int PREFER_BINDING2
Field Value:
4

PROCEDURE_NAME

public static final int PROCEDURE_NAME
Field Value:
2

Constructor Details

ReferenceExp

public ReferenceExp(Object symbol)

ReferenceExp

public ReferenceExp(Object symbol,
                    Declaration binding)

ReferenceExp

public ReferenceExp(Declaration binding)

Method Details

compile

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

eval

public Object eval(Environment env)
Overrides:
eval in interface Expression

getDontDereference

public final boolean getDontDereference()

getType

public Type getType()
Return the Type used to represent the values of this Expression.
Overrides:
getType in interface Expression

isProcedureName

public final boolean isProcedureName()
True if this identifier appears in "function call position". If so, it should be interpreted as a function name, which makes a difference for languages (like Common Lisp) that have two name spaces.

print

public void print(OutPort ps)
Overrides:
print in interface Expression

setDontDereference

public final void setDontDereference(boolean setting)

setProcedureName

public final void setProcedureName(boolean setting)
Note if this identifier appears in "function call position".

toString

public String toString()
Overrides:
toString in interface Procedure

walk

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