Interface DataflowElement<D extends DataflowDomain<D,​E>,​E extends DataflowElement<D,​E>>

    • Method Detail

      • getInvolvedIdentifiers

        java.util.Collection<Identifier> getInvolvedIdentifiers()
        Yields all the Identifiers that are involved in the definition of this element.
        Returns:
        the identifiers
      • gen

        java.util.Collection<E> gen​(Identifier id,
                                    ValueExpression expression,
                                    ProgramPoint pp,
                                    D domain)
                             throws SemanticException
        The dataflow gen operation, yielding the dataflow elements that are generated by the assignment of the given expression to the given id.
        Parameters:
        id - the Identifier being assigned
        expression - the expressions that is being assigned to id
        pp - the program point where this operation happens
        domain - the DataflowDomain that is being used to track instances of this element
        Returns:
        the collection of dataflow elements that are generated by the assignment
        Throws:
        SemanticException - if an error occurs during the computation
      • gen

        java.util.Collection<E> gen​(ValueExpression expression,
                                    ProgramPoint pp,
                                    D domain)
                             throws SemanticException
        The dataflow gen operation, yielding the dataflow elements that are generated by evaluating the given non-assigning expression.
        Parameters:
        expression - the expressions that is being evaluated
        pp - the program point where this operation happens
        domain - the DataflowDomain that is being used to track instances of this element
        Returns:
        the collection of dataflow elements that are generated by the expression
        Throws:
        SemanticException - if an error occurs during the computation
      • kill

        java.util.Collection<E> kill​(Identifier id,
                                     ValueExpression expression,
                                     ProgramPoint pp,
                                     D domain)
                              throws SemanticException
        The dataflow kill operation, yielding the dataflow elements that are killed by the assignment of the given expression to the given id.
        Parameters:
        id - the Identifier being assigned
        expression - the expressions that is being assigned to id
        pp - the program point where this operation happens
        domain - the DataflowDomain that is being used to track instances of this element
        Returns:
        the collection of dataflow elements that are killed by the assignment
        Throws:
        SemanticException - if an error occurs during the computation
      • kill

        java.util.Collection<E> kill​(ValueExpression expression,
                                     ProgramPoint pp,
                                     D domain)
                              throws SemanticException
        The dataflow kill operation, yielding the dataflow elements that are killed by evaluating the given non-assigning expression.
        Parameters:
        expression - the expressions that is being evaluated
        pp - the program point where this operation happens
        domain - the DataflowDomain that is being used to track instances of this element
        Returns:
        the collection of dataflow elements that are killed by the expression
        Throws:
        SemanticException - if an error occurs during the computation
      • canProcess

        default boolean canProcess​(SymbolicExpression expression,
                                   ProgramPoint pp,
                                   SemanticOracle oracle)
        Description copied from interface: SemanticEvaluator
        Yields true if the domain can process expression, false otherwise.
        Specified by:
        canProcess in interface SemanticEvaluator
        Parameters:
        expression - the expression
        pp - the program point where this method is queried
        oracle - the oracle for inter-domain communication
        Returns:
        true if the domain can process expression, false otherwise.