aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/CFGVisualizer.java
diff options
context:
space:
mode:
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.java167
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();
-}