(CommandList
  children: [
    (ForEach
      iter_name: filename
      iter_words: [{(DQ ($ VSub_At '$@'))}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:linecount) op:Equal rhs:{(DQ (1))} spids:[20])]
              spids: [20]
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(read)} {(line)}]
                      more_env: [(env_pair name:IFS val:{(DQ (Lit_Other '\\') (n))} spids:[28])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ (${ VSub_Name linecount) (': ') ($ VSub_Name '$line'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:linecount)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$linecount')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [56 65]
                                )
                              )
                            }
                          spids: [54]
                        )
                      ]
                      spids: [54]
                    )
                  ]
                  spids: [40 69]
                )
              redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Name '$filename')})]
            )
          ]
          spids: [17 75]
        )
      spids: [12 16777215]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)