(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)}) ] )