(CommandList
  children: [
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(1st)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [24 36]
        )
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(2nd)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [56 68]
        )
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(3rd)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [88 100]
        )
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(4th)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [120 132]
        )
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(5th)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [152 164]
        )
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 3)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(6th)} {(loop)} {($ VSub_Name "$i")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [184 196]
        )
    )
  ]
)