示例#1
0
 public override void Iterate(MemberIterator iter, Action<Int32, Expr> action) {
     iter.InBrace();
     for (Int32 i = 0; i < initrs.Count; ++i) {
         initrs[i].Iterate(iter, action);
         if (i != initrs.Count - 1) {
             iter.Next();
         }
     }
     iter.OutBrace();
 }
示例#2
0
 public override Initr ConformType(MemberIterator iter) {
     iter.InBrace();
     List<Initr> initrs = new List<Initr>();
     for (Int32 i = 0; i < this.initrs.Count; ++i) {
         initrs.Add(this.initrs[i].ConformType(iter));
         if (i != this.initrs.Count - 1) {
             iter.Next();
         }
     }
     iter.OutBrace();
     return new InitList(initrs);
 }
示例#3
0
 public override void Iterate(MemberIterator iter, Action<Int32, Expr> action) {
     iter.Locate(this.expr.type);
     Int32 offset = iter.CurOffset;
     Expr expr = this.expr;
     action(offset, expr);
 }
示例#4
0
 public override Initr ConformType(MemberIterator iter) {
     iter.Locate(this.expr.type);
     Expr expr = TypeCast.MakeCast(this.expr, iter.CurType);
     return new InitExpr(expr);
 }
示例#5
0
 public abstract void Iterate(MemberIterator iter, Action<Int32, Expr> action);
示例#6
0
 public abstract Initr ConformType(MemberIterator iter);