diff options
Diffstat (limited to 'third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/block/ConditionalBlock.java')
-rw-r--r-- | third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/block/ConditionalBlock.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/block/ConditionalBlock.java b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/block/ConditionalBlock.java new file mode 100644 index 0000000000..2f1621ef2f --- /dev/null +++ b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/block/ConditionalBlock.java @@ -0,0 +1,48 @@ +package org.checkerframework.dataflow.cfg.block; + +import org.checkerframework.dataflow.analysis.Store; +import org.checkerframework.dataflow.cfg.node.Node; + +/** + * Represents a conditional basic block that contains exactly one boolean + * {@link Node}. + * + * @author Stefan Heule + * + */ +public interface ConditionalBlock extends Block { + + /** + * @return the entry block of the then branch + */ + Block getThenSuccessor(); + + /** + * @return the entry block of the else branch + */ + Block getElseSuccessor(); + + /** + * @return the flow rule for information flowing from + * this block to its then successor + */ + Store.FlowRule getThenFlowRule(); + + /** + * @return the flow rule for information flowing from + * this block to its else successor + */ + Store.FlowRule getElseFlowRule(); + + /** + * Set the flow rule for information flowing from this block to + * its then successor. + */ + void setThenFlowRule(Store.FlowRule rule); + + /** + * Set the flow rule for information flowing from this block to + * its else successor. + */ + void setElseFlowRule(Store.FlowRule rule); +} |