org.checkerframework.dataflow.analysis.ForwardTransferFunction Maven / Gradle / Ivy
Show all versions of checker Show documentation
package org.checkerframework.dataflow.analysis;
import org.checkerframework.dataflow.cfg.UnderlyingAST;
import org.checkerframework.dataflow.cfg.node.LocalVariableNode;
import java.util.List;
/**
* Interface of a forward transfer function for the abstract interpretation used for the forward
* flow analysis.
*
* Important: The individual transfer functions ( {@code visit*}) are allowed to use
* (and modify) the stores contained in the argument passed; the ownership is transferred from the
* caller to that function.
*
* @param the abstract value type to be tracked by the analysis
* @param the store type used in the analysis
*/
public interface ForwardTransferFunction, S extends Store>
extends TransferFunction {
/**
* Returns the initial store to be used by the org.checkerframework.dataflow analysis.
*
* @param underlyingAST an abstract syntax tree
* @param parameters a list of local variable nodes representing formal parameters (if any)
* @return the initial store
*/
S initialStore(UnderlyingAST underlyingAST, List parameters);
}