blob: 2f1621ef2fe73c7206ee23831257df5a20c5b1ba [file] [log] [blame]
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);
}