Moved from Statement nodes to Node nodes
This commit is contained in:
parent
221c9e6b23
commit
56c07550f2
2 changed files with 31 additions and 22 deletions
|
@ -1,16 +1,19 @@
|
|||
package grafos;
|
||||
|
||||
import com.github.javaparser.ast.Node;
|
||||
import com.github.javaparser.ast.body.MethodDeclaration;
|
||||
import com.github.javaparser.ast.stmt.ExpressionStmt;
|
||||
import com.github.javaparser.ast.stmt.Statement;
|
||||
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Visitador extends VoidVisitorAdapter<CFG> {
|
||||
//********************************************************/
|
||||
//********************** Atributos ***********************/
|
||||
//********************************************************/
|
||||
|
||||
private Statement prevNode;
|
||||
private List<Node> prevNode;
|
||||
|
||||
//********************************************************/
|
||||
//*********************** Metodos ************************/
|
||||
|
@ -20,15 +23,16 @@ public class Visitador extends VoidVisitorAdapter<CFG> {
|
|||
// Este visitador añade el nodo final al CFG
|
||||
@Override
|
||||
public void visit(MethodDeclaration methodDeclaration, CFG graph) {
|
||||
prevNode = graph.beginNode();
|
||||
prevNode = Collections.singletonList(graph.beginNode());
|
||||
|
||||
// Visitamos el método
|
||||
super.visit(methodDeclaration, graph);
|
||||
|
||||
// Añadimos el nodo final al CFG
|
||||
Statement end = graph.endNode();
|
||||
if (prevNode != end)
|
||||
graph.connect(prevNode, end);
|
||||
Node end = graph.endNode();
|
||||
for (Node n : prevNode)
|
||||
if (n != end)
|
||||
graph.connect(n, end);
|
||||
}
|
||||
|
||||
// Visitador de expresiones
|
||||
|
@ -37,7 +41,7 @@ public class Visitador extends VoidVisitorAdapter<CFG> {
|
|||
public void visit(ExpressionStmt es, CFG graph) {
|
||||
graph.addNode(es);
|
||||
graph.connect(prevNode, es);
|
||||
prevNode = es;
|
||||
prevNode = Collections.singletonList((Node) es);
|
||||
|
||||
// Seguimos visitando...
|
||||
super.visit(es, graph);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue