Commit 29f4eeb1 authored by Javier Costa's avatar Javier Costa
Browse files

ledt

parent 0b9d81b8
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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);
+16 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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);
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -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, ");
    }
}
+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;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -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"));
@@ -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