Class Subtraction
- 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.BinaryExpression
-
- it.unive.lisa.program.cfg.statement.numeric.Subtraction
-
- All Implemented Interfaces:
it.unive.lisa.program.cfg.ProgramPoint
,it.unive.lisa.program.CodeElement
,it.unive.lisa.util.datastructures.graph.code.CodeNode<it.unive.lisa.program.cfg.CFG,it.unive.lisa.program.cfg.statement.Statement,it.unive.lisa.program.cfg.edge.Edge>
,it.unive.lisa.util.datastructures.graph.Node<it.unive.lisa.program.cfg.CFG,it.unive.lisa.program.cfg.statement.Statement,it.unive.lisa.program.cfg.edge.Edge>
,java.lang.Comparable<it.unive.lisa.program.cfg.statement.Statement>
public class Subtraction extends it.unive.lisa.program.cfg.statement.BinaryExpression
An expression modeling the subtraction operation (-
). Both operands' types must be instances ofNumericType
. The type of this expression is the common numerical type of its operands, according to the type inference.
-
-
Constructor Summary
Constructors Constructor Description Subtraction(it.unive.lisa.program.cfg.CFG cfg, it.unive.lisa.program.cfg.CodeLocation location, it.unive.lisa.program.cfg.statement.Expression left, it.unive.lisa.program.cfg.statement.Expression right)
Builds the subtraction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
compareSameClassAndParams(it.unive.lisa.program.cfg.statement.Statement o)
<A extends it.unive.lisa.analysis.AbstractState<A>>
it.unive.lisa.analysis.AnalysisState<A>fwdBinarySemantics(it.unive.lisa.interprocedural.InterproceduralAnalysis<A> interprocedural, it.unive.lisa.analysis.AnalysisState<A> state, it.unive.lisa.symbolic.SymbolicExpression left, it.unive.lisa.symbolic.SymbolicExpression right, it.unive.lisa.analysis.StatementStore<A> expressions)
-
Methods inherited from class it.unive.lisa.program.cfg.statement.BinaryExpression
backwardSemanticsAux, bwdBinarySemantics, forwardSemanticsAux, getLeft, getRight
-
Methods inherited from class it.unive.lisa.program.cfg.statement.NaryExpression
accept, backwardSemantics, compareSameClass, equals, forwardSemantics, getConstructName, getOrder, getStatementEvaluatedAfter, getStatementEvaluatedBefore, getSubExpressions, hashCode, 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, getEvaluationSuccessor, getLocation, stopsExecution, throwsError
-
-
-
-
Constructor Detail
-
Subtraction
public Subtraction(it.unive.lisa.program.cfg.CFG cfg, it.unive.lisa.program.cfg.CodeLocation location, it.unive.lisa.program.cfg.statement.Expression left, it.unive.lisa.program.cfg.statement.Expression right)
Builds the subtraction.- Parameters:
cfg
- theCFG
where this operation lieslocation
- the location where this literal is definedleft
- the left-hand side of this operationright
- the right-hand side of this operation
-
-
Method Detail
-
compareSameClassAndParams
protected int compareSameClassAndParams(it.unive.lisa.program.cfg.statement.Statement o)
- Specified by:
compareSameClassAndParams
in classit.unive.lisa.program.cfg.statement.NaryExpression
-
fwdBinarySemantics
public <A extends it.unive.lisa.analysis.AbstractState<A>> it.unive.lisa.analysis.AnalysisState<A> fwdBinarySemantics(it.unive.lisa.interprocedural.InterproceduralAnalysis<A> interprocedural, it.unive.lisa.analysis.AnalysisState<A> state, it.unive.lisa.symbolic.SymbolicExpression left, it.unive.lisa.symbolic.SymbolicExpression right, it.unive.lisa.analysis.StatementStore<A> expressions) throws it.unive.lisa.analysis.SemanticException
- Specified by:
fwdBinarySemantics
in classit.unive.lisa.program.cfg.statement.BinaryExpression
- Throws:
it.unive.lisa.analysis.SemanticException
-
-