summaryrefslogtreecommitdiff
path: root/vaporize/library/CFGSimp.java
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-17 12:22:22 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-17 12:22:22 -0600
commitc14f3676114df656e5c6c07b49351c74496aaf04 (patch)
treec3e78da12d7c0de294a3b7543b10914683f19ba2 /vaporize/library/CFGSimp.java
parent62178e370f21ddf80766b8e1075c55e0d3945493 (diff)
Rename Node->NodeCFG to avoid namespace collision
Diffstat (limited to 'vaporize/library/CFGSimp.java')
-rw-r--r--vaporize/library/CFGSimp.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/vaporize/library/CFGSimp.java b/vaporize/library/CFGSimp.java
index 372f926..6ab276a 100644
--- a/vaporize/library/CFGSimp.java
+++ b/vaporize/library/CFGSimp.java
@@ -7,10 +7,26 @@ import java.util.*;
public class CFGSimp<P, R> extends VInstr.VisitorPR<P, R, RuntimeException> {
- ControlFlowGraph cfg;
+ private ControlFlowGraph cfg;
- public CFGSimp(ControlFlowGraph cfg) {
- this.cfg = cfg;
+ public CFGSimp(VFunction n) {
+ this.cfg = new ControlFlowGraph();
+ CFGNode start = new CFGNode(n.body[0]);
+ this.cfg.setStart(start);
+
+ // nodes
+ for (VInstr s : n.body)
+ this.cfg.addNode(new CFGNode(s));
+
+ // edges
+ for (VInstr s : n.body)
+ s.accept("", this);
+
+ System.out.println(this.cfg.getNodes().toString());
+ }
+
+ public ControlFlowGraph getCFG() {
+ return this.cfg;
}
public R visit(P p, VMemRead n) throws RuntimeException {
@@ -26,6 +42,7 @@ public class CFGSimp<P, R> extends VInstr.VisitorPR<P, R, RuntimeException> {
}
public R visit(P p, VBranch n) throws RuntimeException {
+ // two edges
return null;
}