public abstract class AbstractExpression extends java.lang.Object implements Expression
Modifier and Type | Field and Description |
---|---|
private InferredJavaType |
inferredJavaType |
private BytecodeLoc |
loc |
Constructor and Description |
---|
AbstractExpression(BytecodeLoc loc,
InferredJavaType inferredJavaType) |
Modifier and Type | Method and Description |
---|---|
void |
addLoc(HasByteCodeLoc loc) |
boolean |
canPushDownInto() |
boolean |
canThrow(ExceptionCheck caught) |
void |
collectTypeUsages(TypeUsageCollector collector) |
Dumper |
dump(Dumper d) |
abstract Dumper |
dumpInner(Dumper d) |
Dumper |
dumpWithOuterPrecedence(Dumper d,
Precedence outerP,
Troolean isLhs) |
abstract boolean |
equals(java.lang.Object o) |
Literal |
getComputedLiteral(java.util.Map<LValue,Literal> display) |
InferredJavaType |
getInferredJavaType() |
BytecodeLoc |
getLoc() |
abstract Precedence |
getPrecedence() |
boolean |
isSimple() |
boolean |
isValidStatement() |
Expression |
outerDeepClone(CloneHelper cloneHelper) |
Expression |
pushDown(Expression toPush,
Expression parent) |
java.lang.String |
toString() |
<T> T |
visit(ExpressionVisitor<T> visitor) |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
applyExpressionRewriter, applyReverseExpressionRewriter, collectUsedLValues, equivalentUnder, replaceSingleUsageLValues
deepClone
getCombinedLoc
private BytecodeLoc loc
private final InferredJavaType inferredJavaType
public AbstractExpression(BytecodeLoc loc, InferredJavaType inferredJavaType)
public void addLoc(HasByteCodeLoc loc)
addLoc
in interface HasByteCodeLoc
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages
in interface TypeUsageCollectable
public BytecodeLoc getLoc()
getLoc
in interface HasByteCodeLoc
public boolean canPushDownInto()
canPushDownInto
in interface Expression
public boolean isSimple()
isSimple
in interface Expression
public Expression pushDown(Expression toPush, Expression parent)
pushDown
in interface Expression
public InferredJavaType getInferredJavaType()
getInferredJavaType
in interface Expression
public Expression outerDeepClone(CloneHelper cloneHelper)
outerDeepClone
in interface DeepCloneable<Expression>
public final java.lang.String toString()
toString
in class java.lang.Object
public boolean canThrow(ExceptionCheck caught)
canThrow
in interface Expression
public abstract boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public Literal getComputedLiteral(java.util.Map<LValue,Literal> display)
getComputedLiteral
in interface Expression
public boolean isValidStatement()
isValidStatement
in interface Expression
public final Dumper dump(Dumper d)
dump
in interface Expression
dump
in interface Dumpable
public abstract Precedence getPrecedence()
getPrecedence
in interface DumpableWithPrecedence
public <T> T visit(ExpressionVisitor<T> visitor)
visit
in interface Expression
public final Dumper dumpWithOuterPrecedence(Dumper d, Precedence outerP, Troolean isLhs)
dumpWithOuterPrecedence
in interface DumpableWithPrecedence