Package it.unive.lisa.imp.expressions
Class IMPArrayAccess
- java.lang.Object
-
- it.unive.lisa.program.cfg.statement.Statement
-
- it.unive.lisa.program.cfg.statement.Expression
-
- it.unive.lisa.program.cfg.statement.call.Call
-
- it.unive.lisa.program.cfg.statement.call.NativeCall
-
- it.unive.lisa.program.cfg.statement.call.BinaryNativeCall
-
- it.unive.lisa.imp.expressions.IMPArrayAccess
-
- All Implemented Interfaces:
it.unive.lisa.program.cfg.ProgramPoint,it.unive.lisa.program.CodeElement,it.unive.lisa.util.datastructures.graph.Node<it.unive.lisa.program.cfg.statement.Statement,it.unive.lisa.program.cfg.edge.Edge,it.unive.lisa.program.cfg.CFG>,java.lang.Comparable<it.unive.lisa.program.cfg.statement.Statement>
public class IMPArrayAccess extends it.unive.lisa.program.cfg.statement.call.BinaryNativeCallAn expression modeling the array element access operation (array[index]). The type of this expression is the one of the resolved array element.
-
-
Constructor Summary
Constructors Constructor Description IMPArrayAccess(it.unive.lisa.program.cfg.CFG cfg, java.lang.String sourceFile, int line, int col, it.unive.lisa.program.cfg.statement.Expression container, it.unive.lisa.program.cfg.statement.Expression location)Builds the array access.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <A extends it.unive.lisa.analysis.AbstractState<A,H,V>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>>
it.unive.lisa.analysis.AnalysisState<A,H,V>binarySemantics(it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, it.unive.lisa.interprocedural.InterproceduralAnalysis<A,H,V> interprocedural, it.unive.lisa.analysis.AnalysisState<A,H,V> leftState, it.unive.lisa.symbolic.SymbolicExpression left, it.unive.lisa.analysis.AnalysisState<A,H,V> rightState, it.unive.lisa.symbolic.SymbolicExpression right)-
Methods inherited from class it.unive.lisa.program.cfg.statement.call.BinaryNativeCall
callSemantics
-
Methods inherited from class it.unive.lisa.program.cfg.statement.call.NativeCall
equals, getConstructName, hashCode, toString
-
Methods inherited from class it.unive.lisa.program.cfg.statement.call.Call
accept, getParameters, semantics, setOffset
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Expression
getDynamicType, getMetaVariables, getParentStatement, getRootStatement, getRuntimeTypes, getStaticType, setParentStatement, setRuntimeTypes
-
-
-
-
Constructor Detail
-
IMPArrayAccess
public IMPArrayAccess(it.unive.lisa.program.cfg.CFG cfg, java.lang.String sourceFile, int line, int col, it.unive.lisa.program.cfg.statement.Expression container, it.unive.lisa.program.cfg.statement.Expression location)Builds the array access.- Parameters:
cfg- theCFGwhere this operation liessourceFile- the source file name where this operation is definedline- the line number where this operation is definedcol- the column where this operation is definedcontainer- the expression representing the array reference that will receive the accesslocation- the expression representing the accessed element
-
-
Method Detail
-
binarySemantics
protected <A extends it.unive.lisa.analysis.AbstractState<A,H,V>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>> it.unive.lisa.analysis.AnalysisState<A,H,V> binarySemantics(it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, it.unive.lisa.interprocedural.InterproceduralAnalysis<A,H,V> interprocedural, it.unive.lisa.analysis.AnalysisState<A,H,V> leftState, it.unive.lisa.symbolic.SymbolicExpression left, it.unive.lisa.analysis.AnalysisState<A,H,V> rightState, it.unive.lisa.symbolic.SymbolicExpression right) throws it.unive.lisa.analysis.SemanticException- Specified by:
binarySemanticsin classit.unive.lisa.program.cfg.statement.call.BinaryNativeCall- Throws:
it.unive.lisa.analysis.SemanticException
-
-