Class AbstractExpression
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
-
- All Implemented Interfaces:
HasByteCodeLoc,Expression,DeepCloneable<Expression>,ComparableUnderEC,Dumpable,DumpableWithPrecedence,TypeUsageCollectable
- Direct Known Subclasses:
AbstractAssignmentExpression,AbstractConstructorInvokation,AbstractFunctionInvokation,AbstractFunctionInvokationExplicit,AbstractNewArray,ArithmeticMonOperation,ArithmeticOperation,ArrayIndex,ArrayLength,BooleanExpression,BooleanOperation,CastExpression,CommentStatement.StatementExpression,ComparisonOperation,DynamicConstExpression,DynamicInvokation,InstanceOfExpression,InstanceOfExpressionDefining,LambdaExpression,LambdaExpressionFallback,LambdaExpressionNewArray,Literal,LValueExpression,MethodHandlePlaceholder,NewObject,NotOperation,StackValue,StructuredStatementExpression,SwitchExpression,TernaryExpression
public abstract class AbstractExpression extends java.lang.Object implements Expression
-
-
Field Summary
Fields Modifier and Type Field Description private InferredJavaTypeinferredJavaTypeprivate BytecodeLocloc
-
Constructor Summary
Constructors Constructor Description AbstractExpression(BytecodeLoc loc, InferredJavaType inferredJavaType)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddLoc(HasByteCodeLoc loc)booleancanPushDownInto()booleancanThrow(ExceptionCheck caught)voidcollectTypeUsages(TypeUsageCollector collector)Dumperdump(Dumper d)abstract DumperdumpInner(Dumper d)DumperdumpWithOuterPrecedence(Dumper d, Precedence outerP, Troolean isLhs)abstract booleanequals(java.lang.Object o)LiteralgetComputedLiteral(java.util.Map<LValue,Literal> display)InferredJavaTypegetInferredJavaType()BytecodeLocgetLoc()abstract PrecedencegetPrecedence()booleanisSimple()booleanisValidStatement()ExpressionouterDeepClone(CloneHelper cloneHelper)ExpressionpushDown(Expression toPush, Expression parent)java.lang.StringtoString()<T> Tvisit(ExpressionVisitor<T> visitor)-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.rewriters.DeepCloneable
deepClone
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.Expression
applyExpressionRewriter, applyReverseExpressionRewriter, collectUsedLValues, equivalentUnder, replaceSingleUsageLValues
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.loc.HasByteCodeLoc
getCombinedLoc
-
-
-
-
Field Detail
-
loc
private BytecodeLoc loc
-
inferredJavaType
private final InferredJavaType inferredJavaType
-
-
Constructor Detail
-
AbstractExpression
public AbstractExpression(BytecodeLoc loc, InferredJavaType inferredJavaType)
-
-
Method Detail
-
addLoc
public void addLoc(HasByteCodeLoc loc)
- Specified by:
addLocin interfaceHasByteCodeLoc
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsagesin interfaceTypeUsageCollectable
-
getLoc
public BytecodeLoc getLoc()
- Specified by:
getLocin interfaceHasByteCodeLoc
-
canPushDownInto
public boolean canPushDownInto()
- Specified by:
canPushDownIntoin interfaceExpression
-
isSimple
public boolean isSimple()
- Specified by:
isSimplein interfaceExpression
-
pushDown
public Expression pushDown(Expression toPush, Expression parent)
- Specified by:
pushDownin interfaceExpression
-
getInferredJavaType
public InferredJavaType getInferredJavaType()
- Specified by:
getInferredJavaTypein interfaceExpression
-
outerDeepClone
public Expression outerDeepClone(CloneHelper cloneHelper)
- Specified by:
outerDeepClonein interfaceDeepCloneable<Expression>
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
canThrow
public boolean canThrow(ExceptionCheck caught)
- Specified by:
canThrowin interfaceExpression
-
equals
public abstract boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
getComputedLiteral
public Literal getComputedLiteral(java.util.Map<LValue,Literal> display)
- Specified by:
getComputedLiteralin interfaceExpression
-
isValidStatement
public boolean isValidStatement()
- Specified by:
isValidStatementin interfaceExpression
-
dump
public final Dumper dump(Dumper d)
- Specified by:
dumpin interfaceDumpable- Specified by:
dumpin interfaceExpression
-
getPrecedence
public abstract Precedence getPrecedence()
- Specified by:
getPrecedencein interfaceDumpableWithPrecedence
-
visit
public <T> T visit(ExpressionVisitor<T> visitor)
- Specified by:
visitin interfaceExpression
-
dumpWithOuterPrecedence
public final Dumper dumpWithOuterPrecedence(Dumper d, Precedence outerP, Troolean isLhs)
- Specified by:
dumpWithOuterPrecedencein interfaceDumpableWithPrecedence
-
-