edu.cmu.cs.crystal.flow
Interface IBranchSensitiveTransferFunction<LE>

All Superinterfaces:
IFlowAnalysisDefinition<LE>

public interface IBranchSensitiveTransferFunction<LE>
extends IFlowAnalysisDefinition<LE>

Interface for defining branch-sensitive flow analyses. To create a flow analysis, pass an instance of this interface to FlowAnalysis.

Author:
Kevin Bierhoff

Method Summary
 IResult<LE> transfer(ASTNode astNode, List<ILabel> labels, LE value)
          Transfer over a given AST node and return analysis information for each possible outcome of the given node.
 
Methods inherited from interface edu.cmu.cs.crystal.flow.IFlowAnalysisDefinition
createEntryValue, getAnalysisDirection, getLatticeOperations
 

Method Detail

transfer

IResult<LE> transfer(ASTNode astNode,
                     List<ILabel> labels,
                     LE value)
Transfer over a given AST node and return analysis information for each possible outcome of the given node. The list of labels specifies the different kinds of branches leaving this node. The result of this method must include analysis information for each of the given labels.

Parameters:
astNode - The node to transfer over.
labels - Branches leaving the given node.
value - Incoming analysis information.
Returns:
Analysis information after transferring over the given node for each of the given labels.