Class BaseHeapDomain<H extends BaseHeapDomain<H>>

    • Constructor Detail

      • BaseHeapDomain

        public BaseHeapDomain()
    • Method Detail

      • mk

        public abstract H mk​(H reference)
        Creates a new instance of this domain containing the same abstract information of reference. The returned object is effectively a new instance, meaning that all substitutions should be cleared. If this domain does not apply substitutions, it is fine to return this.
        Parameters:
        reference - the domain whose abstract information needs to be copied
        Returns:
        a new instance of this domain
      • popScope

        public H popScope​(ScopeToken scope)
                   throws SemanticException
        Description copied from interface: SemanticDomain
        Pops the scope identified by the given token from the domain. This causes all the visible variables (i.e. that are not mapped to a scope) to be removed from the domain, while the local variables that were associated to the given scope token (and thus hidden) will become visible again.
        Specified by:
        popScope in interface SemanticDomain<H extends BaseHeapDomain<H>,​SymbolicExpression,​Identifier>
        Parameters:
        scope - the token of the scope to be restored
        Returns:
        a copy of this domain where the local variables have been removed, while the variables mapped to the given scope are visible again
        Throws:
        SemanticException - if an error occurs during the computation
      • semanticsOf

        public abstract H semanticsOf​(HeapExpression expression,
                                      ProgramPoint pp)
                               throws SemanticException
        Yields a new instance of this domain, built by evaluating the semantics of the given heap expression.
        Parameters:
        expression - the expression to evaluate
        pp - the program point that where this expression is being evaluated
        Returns:
        a new instance of this domain
        Throws:
        SemanticException - if an error occurs during the computation