All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.cfg.playground.BusyExpressionPlayground Maven / Gradle / Ivy

Go to download

dataflow-shaded is a dataflow framework based on the javac compiler. It differs from the org.checkerframework:dataflow artifact in two ways. First, the packages in this artifact have been renamed to org.checkerframework.shaded.*. Second, unlike the dataflow artifact, this artifact contains the dependencies it requires.

There is a newer version: 3.42.0-eisop5
Show newest version
package org.checkerframework.dataflow.cfg.playground;

import org.checkerframework.dataflow.analysis.BackwardAnalysis;
import org.checkerframework.dataflow.analysis.BackwardAnalysisImpl;
import org.checkerframework.dataflow.analysis.UnusedAbstractValue;
import org.checkerframework.dataflow.busyexpr.BusyExprStore;
import org.checkerframework.dataflow.busyexpr.BusyExprTransfer;
import org.checkerframework.dataflow.cfg.visualize.CFGVisualizeLauncher;
import org.checkerframework.dataflow.cfg.visualize.CFGVisualizeOptions;

/**
 * The playground for busy expression analysis. As an example, try {@code
 * dataflow/manual/examples/BusyExprSimple.java}.
 */
public class BusyExpressionPlayground {

    /** Class cannot be instantiated. */
    private BusyExpressionPlayground() {
        throw new AssertionError("Class BusyExpressionPlayground cannot be instantiated.");
    }

    /**
     * Run busy expression analysis on a file.
     *
     * @param args command-line arguments
     */
    public static void main(String[] args) {

        // Parse the arguments.
        CFGVisualizeOptions config = CFGVisualizeOptions.parseArgs(args);

        // Run the analysis and create a PDF file
        BusyExprTransfer transfer = new BusyExprTransfer();
        BackwardAnalysis backwardAnalysis =
                new BackwardAnalysisImpl<>(transfer);
        CFGVisualizeLauncher.performAnalysis(config, backwardAnalysis);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy