Class Literal
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
-
- org.benf.cfr.reader.bytecode.analysis.parse.expression.Literal
-
- All Implemented Interfaces:
HasByteCodeLoc
,Expression
,DeepCloneable<Expression>
,ComparableUnderEC
,Dumpable
,DumpableWithPrecedence
,TypeUsageCollectable
- Direct Known Subclasses:
LiteralHex
public class Literal extends AbstractExpression
-
-
Field Summary
Fields Modifier and Type Field Description static Literal
DOUBLE_MINUS_ONE
static Literal
DOUBLE_ONE
static Literal
DOUBLE_ZERO
static Literal
FALSE
static Literal
FLOAT_MINUS_ONE
static Literal
FLOAT_ONE
static Literal
FLOAT_ZERO
static Literal
INT_ONE
static Literal
INT_ZERO
private static Literal
LONG_ONE
static Literal
MINUS_ONE
static Literal
NULL
static Literal
TRUE
protected TypedLiteral
value
-
Constructor Summary
Constructors Constructor Description Literal(TypedLiteral value)
-
Method Summary
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
addLoc, canPushDownInto, dump, dumpWithOuterPrecedence, getInferredJavaType, getLoc, isValidStatement, outerDeepClone, pushDown, toString
-
-
-
-
Field Detail
-
FALSE
public static final Literal FALSE
-
TRUE
public static final Literal TRUE
-
MINUS_ONE
public static final Literal MINUS_ONE
-
NULL
public static final Literal NULL
-
INT_ZERO
public static final Literal INT_ZERO
-
INT_ONE
public static final Literal INT_ONE
-
LONG_ONE
private static final Literal LONG_ONE
-
DOUBLE_ZERO
public static final Literal DOUBLE_ZERO
-
DOUBLE_ONE
public static final Literal DOUBLE_ONE
-
DOUBLE_MINUS_ONE
public static final Literal DOUBLE_MINUS_ONE
-
FLOAT_ZERO
public static final Literal FLOAT_ZERO
-
FLOAT_ONE
public static final Literal FLOAT_ONE
-
FLOAT_MINUS_ONE
public static final Literal FLOAT_MINUS_ONE
-
value
protected final TypedLiteral value
-
-
Constructor Detail
-
Literal
public Literal(TypedLiteral value)
-
-
Method Detail
-
getCombinedLoc
public BytecodeLoc getCombinedLoc()
-
getLiteralOrNull
public static Expression getLiteralOrNull(RawJavaType rawCastType, InferredJavaType inferredCastType, int intValue)
-
getPrecedence
public Precedence getPrecedence()
- Specified by:
getPrecedence
in interfaceDumpableWithPrecedence
- Specified by:
getPrecedence
in classAbstractExpression
-
dumpInner
public Dumper dumpInner(Dumper d)
- Specified by:
dumpInner
in classAbstractExpression
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
- Overrides:
collectTypeUsages
in classAbstractExpression
-
isSimple
public boolean isSimple()
- Specified by:
isSimple
in interfaceExpression
- Overrides:
isSimple
in classAbstractExpression
-
deepClone
public Expression deepClone(CloneHelper cloneHelper)
-
replaceSingleUsageLValues
public Expression replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)
-
applyExpressionRewriter
public Expression applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
-
applyReverseExpressionRewriter
public Expression applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
-
visit
public <T> T visit(ExpressionVisitor<T> visitor)
- Specified by:
visit
in interfaceExpression
- Overrides:
visit
in classAbstractExpression
-
collectUsedLValues
public void collectUsedLValues(LValueUsageCollector lValueUsageCollector)
-
appropriatelyCasted
public Expression appropriatelyCasted(InferredJavaType expected)
-
getValue
public TypedLiteral getValue()
-
canThrow
public boolean canThrow(ExceptionCheck caught)
- Specified by:
canThrow
in interfaceExpression
- Overrides:
canThrow
in classAbstractExpression
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in classAbstractExpression
-
equivalentUnder
public boolean equivalentUnder(java.lang.Object o, EquivalenceConstraint constraint)
-
getComputedLiteral
public Literal getComputedLiteral(java.util.Map<LValue,Literal> display)
- Specified by:
getComputedLiteral
in interfaceExpression
- Overrides:
getComputedLiteral
in classAbstractExpression
-
equalsAnyOne
public static boolean equalsAnyOne(Expression expression)
-
-