Пример #1
0
 public <S> List<S> acceptCFG(CFGBuilder v, List<S> succs) {
   if (result == null) {
     v.visitCFGList(statements, this, EXIT);
   } else {
     v.visitCFGList(statements, result, ENTRY);
     v.visitCFG(result, this, EXIT);
   }
   return succs;
 }
Пример #2
0
  public List acceptCFG(CFGBuilder v, List succs) {
    v.visitCFGList(inits, (cond != null ? cond.entry() : body.entry()));

    if (cond != null) {
      if (condIsConstantTrue()) {
        v.visitCFG(cond, body.entry());
      } else {
        v.visitCFG(cond, FlowGraph.EDGE_KEY_TRUE, body.entry(), FlowGraph.EDGE_KEY_FALSE, this);
      }
    }

    v.push(this).visitCFG(body, continueTarget());
    v.visitCFGList(iters, (cond != null ? cond.entry() : body.entry()));

    return succs;
  }