| Modifier and Type | Field and Description |
|---|---|
static int |
ALLOCATE_ON_STACK_LAST |
static int |
DONT_DEREFERENCE |
static int |
PROCEDURE_NAME |
static int |
TYPE_NAME
Flag indicates a reference to a type name.
|
NEXT_AVAIL_FLAG, PREFER_BINDING2flags, noExpressions, type, VALIDATEDcompilerKey, compilerXKey, validateApplyKey, validateXApplyKeynameKey| Constructor and Description |
|---|
ReferenceExp(Declaration binding) |
ReferenceExp(java.lang.Object symbol) |
ReferenceExp(java.lang.Object symbol,
Declaration binding) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply(CallContext ctx)
Evaluate the expression.
|
protected Type |
calculateType() |
void |
compile(Compilation comp,
Target target) |
protected Expression |
deepCopy(IdentityHashTable mapper) |
boolean |
getDontDereference() |
boolean |
isProcedureName()
True if this identifier appears in "function call position".
|
boolean |
isSingleValue() |
boolean |
isUnknown() |
protected boolean |
mustCompile() |
void |
print(gnu.kawa.io.OutPort ps) |
void |
setDontDereference(boolean setting) |
void |
setProcedureName(boolean setting)
Note if this identifier appears in "function call position".
|
boolean |
side_effects()
True if evaluating may have side-effects.
|
java.lang.String |
toString() |
Expression |
validateApply(ApplyExp exp,
InlineCalls visitor,
Type required,
Declaration decl)
Apply inlining transformations on a given ApplyExp.
|
java.lang.Object |
valueIfConstant()
Return value if it is constant, or null if non-constant or unknown.
|
protected <R,D> R |
visit(ExpVisitor<R,D> visitor,
D d) |
contextDecl, getBinding, getName, getSimpleName, getSymbol, setBinding, setContextDecl, string_nameapply0, checkLiteralKeyword, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, deepCopy, deepCopy, deepCopy, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, getType, getTypeRaw, isStableSourceLocation, makeWhile, match0, maybeSetLine, neverReturns, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, setType, visitChildrenapply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocationgetProperty, removeProperty, setName, setProperty, setProperty, setSymbolpublic static final int DONT_DEREFERENCE
public static final int PROCEDURE_NAME
public static final int TYPE_NAME
public static final int ALLOCATE_ON_STACK_LAST
public ReferenceExp(java.lang.Object symbol)
public ReferenceExp(java.lang.Object symbol,
Declaration binding)
public ReferenceExp(Declaration binding)
public final boolean getDontDereference()
public final void setDontDereference(boolean setting)
public final boolean isUnknown()
public final boolean isProcedureName()
public final void setProcedureName(boolean setting)
protected boolean mustCompile()
mustCompile in class Expressionpublic final java.lang.Object valueIfConstant()
ExpressionvalueIfConstant in class Expressionpublic void apply(CallContext ctx) throws java.lang.Throwable
Expressionapply in class Expressionjava.lang.Throwablepublic void compile(Compilation comp, Target target)
compile in class Expressionprotected Expression deepCopy(IdentityHashTable mapper)
deepCopy in class Expressionprotected <R,D> R visit(ExpVisitor<R,D> visitor, D d)
visit in class Expressionpublic Expression validateApply(ApplyExp exp, InlineCalls visitor, Type required, Declaration decl)
ExpressionvalidateApply in class Expressionexp - an application whose function expression can be simplified
to this expression.visitor - the context for the current inlining passdecl - if non-null, a Declaration bound to this expression.public void print(gnu.kawa.io.OutPort ps)
print in class Expressionprotected Type calculateType()
calculateType in class Expressionpublic boolean isSingleValue()
isSingleValue in class Expressionpublic boolean side_effects()
Expressionside_effects in class Expressionpublic java.lang.String toString()
toString in class Expression