Beispiel #1
0
 public IrStmt visit(IrStmtList t)
 {
     IrStmtList stmts = new IrStmtList();
     for (int i = 0; i < t.size(); i++)
     {
         IrStmt s = ((IrStmt)t.elementAt(i)).accept(this);
         stmts.add(s);
     }
     return stmts;
 }
Beispiel #2
0
 private IrStmtList flattern(IrStmtList list)
 {
     IrStmtList sl = new IrStmtList();
     for (int i = 0; i < list.size(); i++)
     {
         IrStmt s = (IrStmt)list.elementAt(i);
         if (null != (s as IrStmtList))
         {
             sl.add(flattern((IrStmtList)s));
         }
         else
         {
             sl.add(s);
         }
     }
     return sl;
 }
Beispiel #3
0
 // VarDeclList ---
 public IrStmtList visit(AstVarDeclList n)
 {
     IrStmtList sl = new IrStmtList();
     IrStmt s;
     for (int i = 0; i < n.Count(); i++)
     {
         s = n[i].accept(this);
         if (s != null)
             sl.add(s);
     }
     if (sl.size() > 0)
         return sl;
     else
         return null;
 }
Beispiel #4
0
 // Statements
 public int visit(IrStmtList sl)
 {
     int ret = STATUS_DEFAULT;
     int i = 0;
     while (i < sl.size())
     {
         int next = ((IrStmt) sl.elementAt(i)).accept(this);
         if (next == STATUS_RETURN)
         {
             ret = STATUS_RETURN;
             break;
         }
         i = (next >= 0) ? next : i+1;
     }
     return ret;
 }