Class CFGVisualizeLauncher

java.lang.Object
org.checkerframework.dataflow.cfg.visualize.CFGVisualizeLauncher

public final class CFGVisualizeLauncher extends Object
Launcher to generate the DOT or String representation of the control flow graph of a given method in a given class.

Usage: Directly run it as the main class to generate the DOT representation of the control flow graph of a given method in a given class. See ConstantPropagationPlayground for another way to use it.

  • Method Details

    • main

      public static void main(String[] args)
      The main entry point of CFGVisualizeLauncher.
      Parameters:
      args - command-line arguments
    • performAnalysis

      public static <V extends AbstractValue<V>, S extends Store<S>, T extends TransferFunction<V, S>> void performAnalysis(CFGVisualizeOptions config, @Nullable Analysis<V,S,T> analysis)
      Generate a visualization of the CFG of a method, with an optional analysis.
      Type Parameters:
      V - the abstract value type of the analysis
      S - the store type of the analysis
      T - the transfer function type of the analysis
      Parameters:
      config - CFGVisualizeOptions that includes input file, output directory, method name, and class name
      analysis - analysis to perform before the visualization (or null if no analysis is to be performed)
    • generateMethodCFG

      public static ControlFlowGraph generateMethodCFG(String file, String clas, String method)
      Generate the control flow graph of a method in a class.
      Parameters:
      file - a Java source file, used as input
      clas - name of the class which includes the method to generate the CFG for
      method - name of the method to generate the CFG for
      Returns:
      control flow graph of the specified method
    • writeStringOfCFG

      public static void writeStringOfCFG(String inputFile, String method, String clas, String outputFile, Analysis<?,?,?> analysis)
      Write generated String representation of the CFG for a method to a file.
      Parameters:
      inputFile - a Java source file, used as input
      method - name of the method to generate the CFG for
      clas - name of the class which includes the method to generate the CFG for
      outputFile - source output file
      analysis - instance of forward or backward analysis from specific dataflow test case