Class Assignment

    • Constructor Detail

      • Assignment

        public Assignment​(CFG cfg,
                          CodeLocation location,
                          Expression target,
                          Expression expression)
        Builds the assignment, assigning expression to target, happening at the given location in the program. The static type of this expression is Untyped. The EvaluationOrder is RightToLeftEvaluation.
        Parameters:
        cfg - the cfg that this statement belongs to
        location - the location where this statement is defined within the program
        target - the target of the assignment
        expression - the expression to assign to target
      • Assignment

        public Assignment​(CFG cfg,
                          CodeLocation location,
                          EvaluationOrder order,
                          Expression target,
                          Expression expression)
        Builds the assignment, assigning expression to target, happening at the given location in the program. The static type of this expression is Untyped.
        Parameters:
        cfg - the cfg that this statement belongs to
        location - the location where this statement is defined within the program
        order - the evaluation order of the sub-expressions
        target - the target of the assignment
        expression - the expression to assign to target
      • Assignment

        public Assignment​(CFG cfg,
                          CodeLocation location,
                          Type staticType,
                          Expression target,
                          Expression expression)
        Builds the assignment, assigning expression to target, happening at the given location in the program. The EvaluationOrder is RightToLeftEvaluation.
        Parameters:
        cfg - the cfg that this statement belongs to
        location - the location where this statement is defined within the program
        staticType - the static type of this expression
        target - the target of the assignment
        expression - the expression to assign to target
      • Assignment

        public Assignment​(CFG cfg,
                          CodeLocation location,
                          EvaluationOrder order,
                          Type staticType,
                          Expression target,
                          Expression expression)
        Builds the assignment, assigning expression to target, happening at the given location in the program.
        Parameters:
        cfg - the cfg that this statement belongs to
        location - the location where this statement is defined within the program
        order - the evaluation order of the sub-expressions
        staticType - the static type of this expression
        target - the target of the assignment
        expression - the expression to assign to target
    • Method Detail

      • fwdBinarySemantics

        public <A extends AbstractState<A>> AnalysisState<A> fwdBinarySemantics​(InterproceduralAnalysis<A> interprocedural,
                                                                                AnalysisState<A> state,
                                                                                SymbolicExpression left,
                                                                                SymbolicExpression right,
                                                                                StatementStore<A> expressions)
                                                                         throws SemanticException
        Description copied from class: BinaryExpression
        Computes the forward semantics of the expression, after the semantics of the sub-expressions have been computed. Meta variables from the sub-expressions will be forgotten after this expression returns.
        Specified by:
        fwdBinarySemantics in class BinaryExpression
        Type Parameters:
        A - the type of AbstractState
        Parameters:
        interprocedural - the interprocedural analysis of the program to analyze
        state - the state where the expression is to be evaluated
        left - the symbolic expression representing the computed value of the first sub-expression of this expression
        right - the symbolic expression representing the computed value of the second sub-expression of this expression
        expressions - the cache where analysis states of intermediate expressions are stored and that can be accessed to query for post-states of parameters expressions
        Returns:
        the AnalysisState representing the abstract result of the execution of this expression
        Throws:
        SemanticException - if something goes wrong during the computation