public void setAllParent() { for (Statement st : stats) { st.setParent(this); } }
public RootStatement(Statement head, DummyExitStatement dummyExit) { type = Statement.TYPE_ROOT; first = head; this.dummyExit = dummyExit; stats.addWithKey(first, first.id); first.setParent(this); }
private static void initCopiedStatement(Statement statement) { statement.initSimpleCopy(); statement.setCopied(true); for (Statement st : statement.getStats()) { st.setParent(statement); initCopiedStatement(st); } } }
ifinner.setParent(ifparent);
stats.addWithKeyAndIndex(statindex, newstat, newstat.id); newstat.setParent(this); newstat.post = oldstat.post;
public static boolean splitIrreducibleNode(Statement statement) { Statement splitnode = getCandidateForSplitting(statement); if (splitnode == null) { return false; } StatEdge enteredge = splitnode.getPredecessorEdges(StatEdge.TYPE_REGULAR).iterator().next(); // copy the smallest statement Statement splitcopy = copyStatement(splitnode, null, new HashMap<>()); initCopiedStatement(splitcopy); // insert the copy splitcopy.setParent(statement); statement.getStats().addWithKey(splitcopy, splitcopy.id); // switch input edges for (StatEdge prededge : splitnode.getPredecessorEdges(Statement.STATEDGE_DIRECT_ALL)) { if (prededge.getSource() == enteredge.getSource() || prededge.closure == enteredge.getSource()) { splitnode.removePredecessor(prededge); prededge.getSource().changeEdgeNode(Statement.DIRECTION_FORWARD, prededge, splitcopy); splitcopy.addPredecessor(prededge); } } // connect successors for (StatEdge succ : splitnode.getSuccessorEdges(Statement.STATEDGE_DIRECT_ALL)) { splitcopy.addSuccessor(new StatEdge(succ.getType(), splitcopy, succ.getDestination(), succ.closure)); } return true; }
second.setParent(firstif);
stat.setParent(this);
public void setAllParent() { for (Statement st : stats) { st.setParent(this); } }
public RootStatement(Statement head, DummyExitStatement dummyExit) { type = Statement.TYPE_ROOT; first = head; this.dummyExit = dummyExit; stats.addWithKey(first, first.id); first.setParent(this); }
private static void initCopiedStatement(Statement statement) { statement.initSimpleCopy(); statement.setCopied(true); for (Statement st : statement.getStats()) { st.setParent(statement); initCopiedStatement(st); } } }
ifinner.setParent(ifparent);
stats.addWithKeyAndIndex(statindex, newstat, newstat.id); newstat.setParent(this); newstat.post = oldstat.post;
public static boolean splitIrreducibleNode(Statement statement) { Statement splitnode = getCandidateForSplitting(statement); if (splitnode == null) { return false; } StatEdge enteredge = splitnode.getPredecessorEdges(StatEdge.TYPE_REGULAR).iterator().next(); // copy the smallest statement Statement splitcopy = copyStatement(splitnode, null, new HashMap<>()); initCopiedStatement(splitcopy); // insert the copy splitcopy.setParent(statement); statement.getStats().addWithKey(splitcopy, splitcopy.id); // switch input edges for (StatEdge prededge : splitnode.getPredecessorEdges(Statement.STATEDGE_DIRECT_ALL)) { if (prededge.getSource() == enteredge.getSource() || prededge.closure == enteredge.getSource()) { splitnode.removePredecessor(prededge); prededge.getSource().changeEdgeNode(Statement.DIRECTION_FORWARD, prededge, splitcopy); splitcopy.addPredecessor(prededge); } } // connect successors for (StatEdge succ : splitnode.getSuccessorEdges(Statement.STATEDGE_DIRECT_ALL)) { splitcopy.addSuccessor(new StatEdge(succ.getType(), splitcopy, succ.getDestination(), succ.closure)); } return true; }