Package it.unive.lisa.symbolic.value
Class ValueExpression
- java.lang.Object
-
- it.unive.lisa.symbolic.SymbolicExpression
-
- it.unive.lisa.symbolic.value.ValueExpression
-
- All Implemented Interfaces:
ScopedObject<SymbolicExpression>
- Direct Known Subclasses:
BinaryExpression
,Constant
,Identifier
,PushAny
,PushInv
,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 nestedHeapExpression
must be rewritten by aHeapDomain
.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ValueExpression(Type staticType, CodeLocation location)
Builds the heap expression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueExpression
removeNegations()
Yields the same value expression removing any negation, namely theLogicalNegation
operator, preserving its semantics, if possible.-
Methods inherited from class it.unive.lisa.symbolic.SymbolicExpression
accept, equals, getCodeLocation, getStaticType, hashCode, mightNeedRewriting, popScope, pushScope, toString
-
-
-
-
Constructor Detail
-
ValueExpression
protected ValueExpression(Type staticType, CodeLocation location)
Builds the heap expression.- Parameters:
staticType
- the static type 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 theLogicalNegation
operator, preserving its semantics, if possible.- Returns:
- the same value expression removing any negation, preserving its semantics
-
-