Loading src/main/java/tfm/exec/Main.java +5 −2 Original line number Diff line number Diff line Loading @@ -13,9 +13,9 @@ import java.util.Optional; public class Main { public static final String PROGRAM = Utils.PROGRAMS_FOLDER + "pdg/Example2.java"; public static final String PROGRAM = Utils.PROGRAMS_FOLDER + "sdg/Example1.java"; public static final String METHOD = ""; public static final String GRAPH = GraphLog.PDG; public static final String GRAPH = GraphLog.SDG; public static void main(String[] args) throws IOException { JavaParser.getStaticConfiguration().setAttributeComments(false); Loading Loading @@ -65,6 +65,9 @@ public class Main { case GraphLog.PDG: graphLog = new PDGLog(); break; case GraphLog.SDG: graphLog = new SDGLog(); break; default: Logger.log("Unkown graph type"); System.exit(1); Loading src/main/java/tfm/graphs/SDGGraph.java +16 −1 Original line number Diff line number Diff line Loading @@ -4,8 +4,19 @@ import com.github.javaparser.ast.stmt.Statement; import tfm.nodes.SDGNode; import tfm.slicing.SlicingCriterion; import java.util.ArrayList; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; public class SDGGraph extends Graph<SDGNode> { private List<PDGGraph> pdgGraphList; public SDGGraph() { this.pdgGraphList = new ArrayList<>(); } @Override public SDGNode addNode(String instruction, Statement statement) { return null; Loading @@ -13,11 +24,15 @@ public class SDGGraph extends Graph<SDGNode> { @Override public String toGraphvizRepresentation() { return null; return pdgGraphList.stream().map(PDGGraph::toGraphvizRepresentation).collect(Collectors.joining("\n")); } @Override public Graph<SDGNode> slice(SlicingCriterion slicingCriterion) { return this; } public void addPDG(PDGGraph pdgGraph) { this.pdgGraphList.add(pdgGraph); } } src/main/java/tfm/nodes/SDGNode.java +4 −0 Original line number Diff line number Diff line Loading @@ -12,4 +12,8 @@ public class SDGNode extends Node { public SDGNode(int id, String representation, @NonNull Statement statement) { super(id, representation, statement); } public String toString() { return String.format("SDGNode{id: %s, data: %s, "); } } src/main/java/tfm/programs/sdg/Example1.java 0 → 100644 +19 −0 Original line number Diff line number Diff line package tfm.programs.sdg; import tfm.utils.Logger; public class Example1 { public static void main(String[] args) { int x = 1; int y = 2; int f = sum(x, y); Logger.log(f); } private static int sum(int x, int y) { return x + y; } } src/main/java/tfm/slicing/Slice.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ import java.io.IOException; public class Slice { public static final String PROGRAM_FOLDER = Utils.PROGRAMS_FOLDER + "pdg/"; public static final String PROGRAM_NAME = "Example2"; public static final String PROGRAM_NAME = "Example3"; public static void main(String[] args) throws IOException { CompilationUnit compilationUnit = JavaParser.parse(new File(PROGRAM_FOLDER + PROGRAM_NAME + ".java")); Loading @@ -28,7 +28,7 @@ public class Slice { Logger.log("= Starting slice ="); Logger.log("=================="); PDGGraph sliced = pdgGraph.slice(new LineNumberCriterion(16, "x")); PDGGraph sliced = pdgGraph.slice(new LineNumberCriterion(21, "sum")); PDGLog pdgLog = new PDGLog(sliced); pdgLog.log(); Loading Loading
src/main/java/tfm/exec/Main.java +5 −2 Original line number Diff line number Diff line Loading @@ -13,9 +13,9 @@ import java.util.Optional; public class Main { public static final String PROGRAM = Utils.PROGRAMS_FOLDER + "pdg/Example2.java"; public static final String PROGRAM = Utils.PROGRAMS_FOLDER + "sdg/Example1.java"; public static final String METHOD = ""; public static final String GRAPH = GraphLog.PDG; public static final String GRAPH = GraphLog.SDG; public static void main(String[] args) throws IOException { JavaParser.getStaticConfiguration().setAttributeComments(false); Loading Loading @@ -65,6 +65,9 @@ public class Main { case GraphLog.PDG: graphLog = new PDGLog(); break; case GraphLog.SDG: graphLog = new SDGLog(); break; default: Logger.log("Unkown graph type"); System.exit(1); Loading
src/main/java/tfm/graphs/SDGGraph.java +16 −1 Original line number Diff line number Diff line Loading @@ -4,8 +4,19 @@ import com.github.javaparser.ast.stmt.Statement; import tfm.nodes.SDGNode; import tfm.slicing.SlicingCriterion; import java.util.ArrayList; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; public class SDGGraph extends Graph<SDGNode> { private List<PDGGraph> pdgGraphList; public SDGGraph() { this.pdgGraphList = new ArrayList<>(); } @Override public SDGNode addNode(String instruction, Statement statement) { return null; Loading @@ -13,11 +24,15 @@ public class SDGGraph extends Graph<SDGNode> { @Override public String toGraphvizRepresentation() { return null; return pdgGraphList.stream().map(PDGGraph::toGraphvizRepresentation).collect(Collectors.joining("\n")); } @Override public Graph<SDGNode> slice(SlicingCriterion slicingCriterion) { return this; } public void addPDG(PDGGraph pdgGraph) { this.pdgGraphList.add(pdgGraph); } }
src/main/java/tfm/nodes/SDGNode.java +4 −0 Original line number Diff line number Diff line Loading @@ -12,4 +12,8 @@ public class SDGNode extends Node { public SDGNode(int id, String representation, @NonNull Statement statement) { super(id, representation, statement); } public String toString() { return String.format("SDGNode{id: %s, data: %s, "); } }
src/main/java/tfm/programs/sdg/Example1.java 0 → 100644 +19 −0 Original line number Diff line number Diff line package tfm.programs.sdg; import tfm.utils.Logger; public class Example1 { public static void main(String[] args) { int x = 1; int y = 2; int f = sum(x, y); Logger.log(f); } private static int sum(int x, int y) { return x + y; } }
src/main/java/tfm/slicing/Slice.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ import java.io.IOException; public class Slice { public static final String PROGRAM_FOLDER = Utils.PROGRAMS_FOLDER + "pdg/"; public static final String PROGRAM_NAME = "Example2"; public static final String PROGRAM_NAME = "Example3"; public static void main(String[] args) throws IOException { CompilationUnit compilationUnit = JavaParser.parse(new File(PROGRAM_FOLDER + PROGRAM_NAME + ".java")); Loading @@ -28,7 +28,7 @@ public class Slice { Logger.log("= Starting slice ="); Logger.log("=================="); PDGGraph sliced = pdgGraph.slice(new LineNumberCriterion(16, "x")); PDGGraph sliced = pdgGraph.slice(new LineNumberCriterion(21, "sum")); PDGLog pdgLog = new PDGLog(sliced); pdgLog.log(); Loading