Class Addition

  • 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 Addition
    extends it.unive.lisa.program.cfg.statement.BinaryExpression
    An expression modeling the addition operation (+). Both operands' types must be instances of NumericType. The type of this expression is the common numerical type of its operands, according to the type inference.
    • Field Summary

      • Fields inherited from class it.unive.lisa.program.cfg.statement.Statement

        offset
    • Constructor Summary

      Constructors 
      Constructor Description
      Addition​(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 addition.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>>
      it.unive.lisa.analysis.AnalysisState<A,​H,​V,​T>
      binarySemantics​(it.unive.lisa.interprocedural.InterproceduralAnalysis<A,​H,​V,​T> interprocedural, it.unive.lisa.analysis.AnalysisState<A,​H,​V,​T> state, it.unive.lisa.symbolic.SymbolicExpression left, it.unive.lisa.symbolic.SymbolicExpression right, it.unive.lisa.analysis.StatementStore<A,​H,​V,​T> expressions)  
      • Methods inherited from class it.unive.lisa.program.cfg.statement.BinaryExpression

        expressionSemantics, getLeft, getRight
      • 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

      • Addition

        public Addition​(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 addition.
        Parameters:
        cfg - the CFG where this operation lies
        location - the location where this literal is defined
        left - the left-hand side of this operation
        right - the right-hand side of this operation
    • Method Detail

      • binarySemantics

        public <A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> it.unive.lisa.analysis.AnalysisState<A,​H,​V,​T> binarySemantics​(it.unive.lisa.interprocedural.InterproceduralAnalysis<A,​H,​V,​T> interprocedural,
                                                                                                                                                                                                                                                                                                                                                            it.unive.lisa.analysis.AnalysisState<A,​H,​V,​T> state,
                                                                                                                                                                                                                                                                                                                                                            it.unive.lisa.symbolic.SymbolicExpression left,
                                                                                                                                                                                                                                                                                                                                                            it.unive.lisa.symbolic.SymbolicExpression right,
                                                                                                                                                                                                                                                                                                                                                            it.unive.lisa.analysis.StatementStore<A,​H,​V,​T> expressions)
                                                                                                                                                                                                                                                                                                                                                     throws it.unive.lisa.analysis.SemanticException
        Specified by:
        binarySemantics in class it.unive.lisa.program.cfg.statement.BinaryExpression
        Throws:
        it.unive.lisa.analysis.SemanticException