Skip to content
Main.java 1.4 KiB
Newer Older
Javier Costa's avatar
Javier Costa committed
package tfm.graphlib;

import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
Javier Costa's avatar
Javier Costa committed
import com.github.javaparser.ast.visitor.VoidVisitor;
import tfm.graphlib.arcs.data.ArcData;
import tfm.graphlib.graphs.CFGGraph;
import tfm.graphlib.graphs.PDGGraph;
import tfm.graphlib.nodes.PDGVertex;
import tfm.graphlib.visitors.CFGVisitor;
import tfm.graphlib.visitors.PDGVisitor;
Javier Costa's avatar
Javier Costa committed

import java.io.File;
import java.io.FileNotFoundException;

public class Main {

    public static void main(String[] args) throws FileNotFoundException {
        File file = new File("/home/jacosro/IdeaProjects/TFM/src/main/java/tfm/programs/Example1.java");
Javier Costa's avatar
Javier Costa committed
        CompilationUnit compilationUnit = JavaParser.parse(file);

//        CFGGraph cfgGraph = new CFGGraph() {
//            @Override
//            protected String getRootNodeData() {
//                return "Start";
//            }
//        };
        PDGGraph pdgGraph = new PDGGraph() {
Javier Costa's avatar
Javier Costa committed
            @Override
            protected String getRootNodeData() {
                return "Entry";
Javier Costa's avatar
Javier Costa committed
            }
        };

        VoidVisitor<PDGVertex> voidVisitor = new PDGVisitor(pdgGraph);
Javier Costa's avatar
Javier Costa committed

        compilationUnit.accept(voidVisitor, pdgGraph.getRootVertex());
Javier Costa's avatar
Javier Costa committed
        // compilationUnit.accept(new PDGVisitor(pdgGraph), pdgGraph.getRootVertex());

        System.out.println(pdgGraph);
//        System.out.println(cfgGraph.toGraphvizRepresentation());