Class Negation
- java.lang.Object
-
- it.unive.lisa.program.cfg.statement.Statement
-
- it.unive.lisa.program.cfg.statement.Expression
-
- it.unive.lisa.program.cfg.statement.NaryExpression
-
- it.unive.lisa.program.cfg.statement.UnaryExpression
-
- it.unive.lisa.program.cfg.statement.numeric.Negation
-
- All Implemented Interfaces:
ProgramPoint,CodeElement,CodeNode<CFG,Statement,Edge>,Node<CFG,Statement,Edge>,java.lang.Comparable<Statement>
public class Negation extends UnaryExpression
An expression modeling the numerical negation operation (-). The operand's type must be instance ofNumericType. The type of this expression is the same as the one of its operand.
-
-
Constructor Summary
Constructors Constructor Description Negation(CFG cfg, CodeLocation location, Expression expression)Builds the numerical negation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>>
AnalysisState<A,H,V,T>unarySemantics(InterproceduralAnalysis<A,H,V,T> interprocedural, AnalysisState<A,H,V,T> state, SymbolicExpression expr, StatementStore<A,H,V,T> expressions)Computes the semantics of the expression, after the semantics of the sub-expression has been computed.-
Methods inherited from class it.unive.lisa.program.cfg.statement.UnaryExpression
expressionSemantics, getSubExpression
-
Methods inherited from class it.unive.lisa.program.cfg.statement.NaryExpression
accept, equals, getConstructName, getOrder, getStatementEvaluatedBefore, getSubExpressions, hashCode, semantics, setOffset, toString
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Expression
getMetaVariables, getParentStatement, getRootStatement, getStaticType, setParentStatement
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Statement
compareTo, getCFG, getEvaluationPredecessor, getLocation, getOffset, stopsExecution, throwsError
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.program.cfg.ProgramPoint
getProgram
-
-
-
-
Constructor Detail
-
Negation
public Negation(CFG cfg, CodeLocation location, Expression expression)
Builds the numerical negation.- Parameters:
cfg- theCFGwhere this operation lieslocation- the location where this literal is definedexpression- the operand of this operation
-
-
Method Detail
-
unarySemantics
public <A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>> AnalysisState<A,H,V,T> unarySemantics(InterproceduralAnalysis<A,H,V,T> interprocedural, AnalysisState<A,H,V,T> state, SymbolicExpression expr, StatementStore<A,H,V,T> expressions) throws SemanticException
Description copied from class:UnaryExpressionComputes the semantics of the expression, after the semantics of the sub-expression has been computed. Meta variables from the sub-expression will be forgotten after this expression returns.- Specified by:
unarySemanticsin classUnaryExpression- Type Parameters:
A- the type ofAbstractStateH- the type of theHeapDomainV- the type of theValueDomainT- the type ofTypeDomain- Parameters:
interprocedural- the interprocedural analysis of the program to analyzestate- the state where the expression is to be evaluatedexpr- the symbolic expressions representing the computed value of the sub-expression of this expressionexpressions- the cache where analysis states of intermediate expressions are stored and that can be accessed to query for post-states of parameters expressions- Returns:
- the
AnalysisStaterepresenting the abstract result of the execution of this expression - Throws:
SemanticException- if something goes wrong during the computation
-
-