All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.cfg.block.Block Maven / Gradle / Ivy

Go to download

dataflow-shaded is a dataflow framework based on the javac compiler. It differs from the org.checkerframework:dataflow artifact in two ways. First, the packages in this artifact have been renamed to org.checkerframework.shaded.*. Second, unlike the dataflow artifact, this artifact contains the dependencies it requires.

There is a newer version: 3.42.0-eisop5
Show newest version
package org.checkerframework.dataflow.cfg.block;

import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.dataflow.cfg.node.Node;
import org.checkerframework.dataflow.qual.Pure;
import org.plumelib.util.UniqueId;

import java.util.List;
import java.util.Set;

/** Represents a basic block in a control flow graph. */
public interface Block extends UniqueId {

    /** The types of basic blocks. */
    enum BlockType {

        /** A regular basic block. */
        REGULAR_BLOCK,

        /** A conditional basic block. */
        CONDITIONAL_BLOCK,

        /** A special basic block. */
        SPECIAL_BLOCK,

        /** A basic block that can throw an exception. */
        EXCEPTION_BLOCK,
    }

    /**
     * Returns the type of this basic block.
     *
     * @return the type of this basic block
     */
    BlockType getType();

    /**
     * Returns the predecessors of this basic block.
     *
     * @return the predecessors of this basic block
     */
    Set getPredecessors();

    /**
     * Returns the successors of this basic block.
     *
     * @return the successors of this basic block
     */
    Set getSuccessors();

    /**
     * Returns the nodes contained within this basic block. The list may be empty.
     *
     * 

The following invariant holds. * *

     * forall n in getNodes() :: n.getBlock() == this
     * 
* * @return the nodes contained within this basic block */ @Pure List getNodes(); /** * Returns the last node of this block, or null if none. * * @return the last node of this block or {@code null} */ @Nullable Node getLastNode(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy