diff options
Diffstat (limited to 'third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java')
-rw-r--r-- | third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java deleted file mode 100644 index 9378d83726..0000000000 --- a/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.checkerframework.dataflow.cfg; - -/*>>> -import org.checkerframework.checker.nullness.qual.Nullable; -*/ - -import java.util.Map; -import org.checkerframework.dataflow.analysis.AbstractValue; -import org.checkerframework.dataflow.analysis.Analysis; -import org.checkerframework.dataflow.analysis.FlowExpressions; -import org.checkerframework.dataflow.analysis.Store; -import org.checkerframework.dataflow.analysis.TransferFunction; -import org.checkerframework.dataflow.cfg.block.Block; -import org.checkerframework.dataflow.cfg.block.SpecialBlock; -import org.checkerframework.dataflow.cfg.node.Node; - -/** - * Perform some visualization on a control flow graph. The particular operations depend on the - * implementation. - */ -public interface CFGVisualizer< - A extends AbstractValue<A>, S extends Store<S>, T extends TransferFunction<A, S>> { - /** - * Initialization method guaranteed to be called once before the first invocation of {@link - * visualize}. - * - * @param args implementation-dependent options - */ - void init(Map<String, Object> args); - - /** - * Output a visualization representing the control flow graph starting at {@code entry}. The - * concrete actions are implementation dependent. - * - * <p>An invocation {@code visualize(cfg, entry, null);} does not output stores at the beginning - * of basic blocks. - * - * @param cfg the CFG to visualize - * @param entry the entry node of the control flow graph to be represented - * @param analysis an analysis containing information about the program represented by the CFG. - * The information includes {@link Store}s that are valid at the beginning of basic blocks - * reachable from {@code entry} and per-node information for value producing {@link Node}s. - * Can also be {@code null} to indicate that this information should not be output. - * @return possible analysis results, e.g. generated file names. - */ - /*@Nullable*/ Map<String, Object> visualize( - ControlFlowGraph cfg, Block entry, /*@Nullable*/ Analysis<A, S, T> analysis); - - /** - * Delegate the visualization responsibility to the passed {@link Store} instance, which will - * call back to this visualizer instance for sub-components. - * - * @param store the store to visualize - */ - void visualizeStore(S store); - - /** - * Called by a {@code CFAbstractStore} to visualize the class name before calling the {@code - * CFAbstractStore#internalVisualize()} method. - * - * @param classCanonicalName the canonical name of the class - */ - void visualizeStoreHeader(String classCanonicalName); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize a local variable. - * - * @param localVar the local variable - * @param value the value of the local variable - */ - void visualizeStoreLocalVar(FlowExpressions.LocalVariable localVar, A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the value of the current - * object {@code this} in this Store. - * - * @param value the value of the current object this - */ - void visualizeStoreThisVal(A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the value of fields - * collected by this Store. - * - * @param fieldAccess the field - * @param value the value of the field - */ - void visualizeStoreFieldVals(FlowExpressions.FieldAccess fieldAccess, A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the value of arrays - * collected by this Store. - * - * @param arrayValue the array - * @param value the value of the array - */ - void visualizeStoreArrayVal(FlowExpressions.ArrayAccess arrayValue, A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the value of pure method - * calls collected by this Store. - * - * @param methodCall the pure method call - * @param value the value of the pure method call - */ - void visualizeStoreMethodVals(FlowExpressions.MethodCall methodCall, A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the value of class names - * collected by this Store. - * - * @param className the class name - * @param value the value of the class name - */ - void visualizeStoreClassVals(FlowExpressions.ClassName className, A value); - - /** - * Called by {@code CFAbstractStore#internalVisualize()} to visualize the specific information - * collected according to the specific kind of Store. Currently, these Stores call this method: - * {@code LockStore}, {@code NullnessStore}, and {@code InitializationStore} to visualize - * additional information. - * - * @param keyName the name of the specific information to be visualized - * @param value the value of the specific information to be visualized - */ - void visualizeStoreKeyVal(String keyName, Object value); - - /** - * Called by {@code CFAbstractStore} to visualize any information after the invocation of {@code - * CFAbstractStore#internalVisualize()}. - */ - void visualizeStoreFooter(); - - /** - * Visualize a block based on the analysis. - * - * @param bb the block - * @param analysis the current analysis - */ - void visualizeBlock(Block bb, /*@Nullable*/ Analysis<A, S, T> analysis); - - /** - * Visualize a SpecialBlock. - * - * @param sbb the special block - */ - void visualizeSpecialBlock(SpecialBlock sbb); - - /** - * Visualize the transferInput of a Block based on the analysis. - * - * @param bb the block - * @param analysis the current analysis - */ - void visualizeBlockTransferInput(Block bb, Analysis<A, S, T> analysis); - - /** - * Visualize a Node based on the analysis. - * - * @param t the node - * @param analysis the current analysis - */ - void visualizeBlockNode(Node t, /*@Nullable*/ Analysis<A, S, T> analysis); - - /** Shutdown method called once from the shutdown hook of the {@code BaseTypeChecker}. */ - void shutdown(); -} |