Package it.unive.lisa.symbolic.value
Class ValueExpression
- java.lang.Object
-
- it.unive.lisa.symbolic.SymbolicExpression
-
- it.unive.lisa.symbolic.value.ValueExpression
-
- Direct Known Subclasses:
BinaryExpression,Constant,Identifier,PushAny,Skip,TernaryExpression,UnaryExpression
public abstract class ValueExpression extends SymbolicExpression
A symbolic expression that represents an operation on the program's state. For this expression to be evaluated from aValueDomain, all nestedHeapExpressionmust be rewritten by aHeapDomain.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedValueExpression(ExternalSet<Type> types, CodeLocation location)Builds the heap expression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueExpressionremoveNegations()Yields the same value expression removing any negation, namely theUnaryOperator.LOGICAL_NOToperator, preserving its semantics, if possible.-
Methods inherited from class it.unive.lisa.symbolic.SymbolicExpression
accept, equals, getCodeLocation, getDynamicType, getTypes, hashCode, popScope, pushScope, toString
-
-
-
-
Constructor Detail
-
ValueExpression
protected ValueExpression(ExternalSet<Type> types, CodeLocation location)
Builds the heap expression.- Parameters:
types- the runtime types of this expressionlocation- the code location of the statement that has generated this value expression
-
-
Method Detail
-
removeNegations
public ValueExpression removeNegations()
Yields the same value expression removing any negation, namely theUnaryOperator.LOGICAL_NOToperator, preserving its semantics, if possible.- Returns:
- the same value expression removing any negation, preserving its semantics
-
-