Class Remainder

  • 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 Remainder
    extends it.unive.lisa.program.cfg.statement.BinaryExpression
    An expression modeling the remainder operation (%, returning the remainder of the division between the two operands and taking the sign of the dividend). 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
      Remainder​(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 remainder.
    • 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

      • Remainder

        public Remainder​(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 remainder.
        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