aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java')
-rw-r--r--third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java
new file mode 100644
index 0000000000..1713f50e29
--- /dev/null
+++ b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/cfg/playground/ConstantPropagationPlayground.java
@@ -0,0 +1,32 @@
+package org.checkerframework.dataflow.cfg.playground;
+
+import org.checkerframework.dataflow.analysis.Analysis;
+import org.checkerframework.dataflow.cfg.JavaSource2CFGDOT;
+import org.checkerframework.dataflow.constantpropagation.Constant;
+import org.checkerframework.dataflow.constantpropagation.ConstantPropagationStore;
+import org.checkerframework.dataflow.constantpropagation.ConstantPropagationTransfer;
+
+public class ConstantPropagationPlayground {
+
+ /**
+ * Run constant propagation for a specific file and create a PDF of the CFG
+ * in the end.
+ */
+ public static void main(String[] args) {
+
+ /* Configuration: change as appropriate */
+ String inputFile = "cfg-input.java"; // input file name and path
+ String outputDir = "cfg"; // output directory
+ String method = "test"; // name of the method to analyze
+ String clazz = "Test"; // name of the class to consider
+
+ // run the analysis and create a PDF file
+ ConstantPropagationTransfer transfer = new ConstantPropagationTransfer();
+ // TODO: correct processing environment
+ Analysis<Constant, ConstantPropagationStore, ConstantPropagationTransfer> analysis = new Analysis<>(
+ null, transfer);
+ JavaSource2CFGDOT.generateDOTofCFG(inputFile, outputDir, method,
+ clazz, true, analysis);
+ }
+
+}