gnu.expr

Class ReferenceExp

public class ReferenceExp extends AccessExp

This class represents a variable reference (an identifier).
Field Summary
static intCREATE_FIELD_REFERENCE
Create a FieldLocation referencing the binding.
static intDONT_DEREFERENCE
static intPREFER_BINDING2
static intPROCEDURE_NAME
Constructor Summary
ReferenceExp(Object symbol)
ReferenceExp(Object symbol, Declaration binding)
ReferenceExp(Declaration binding)
Method Summary
voidapply(CallContext ctx)
voidcompile(Compilation comp, Target target)
booleangetDontDereference()
TypegetType()
Expressioninline(ApplyExp exp, InlineCalls walker, Declaration decl)
booleanisProcedureName()
True if this identifier appears in "function call position".
booleanisUnknown()
protected booleanmustCompile()
voidprint(OutPort ps)
voidsetDontDereference(boolean setting)
voidsetProcedureName(boolean setting)
Note if this identifier appears in "function call position".
booleanside_effects()
StringtoString()
protected Expressionwalk(ExpWalker walker)

Field Detail

CREATE_FIELD_REFERENCE

public static final int CREATE_FIELD_REFERENCE
Create a FieldLocation referencing the binding.

DONT_DEREFERENCE

public static final int DONT_DEREFERENCE

PREFER_BINDING2

public static final int PREFER_BINDING2

PROCEDURE_NAME

public static final int PROCEDURE_NAME

Constructor Detail

ReferenceExp

public ReferenceExp(Object symbol)

ReferenceExp

public ReferenceExp(Object symbol, Declaration binding)

ReferenceExp

public ReferenceExp(Declaration binding)

Method Detail

apply

public void apply(CallContext ctx)

compile

public void compile(Compilation comp, Target target)

getDontDereference

public final boolean getDontDereference()

getType

public Type getType()

inline

public Expression inline(ApplyExp exp, InlineCalls walker, Declaration decl)

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.

isUnknown

public final boolean isUnknown()

mustCompile

protected boolean mustCompile()

print

public void print(OutPort ps)

setDontDereference

public final void setDontDereference(boolean setting)

setProcedureName

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

side_effects

public boolean side_effects()

toString

public String toString()

walk

protected Expression walk(ExpWalker walker)