(CommandList children: [ (FuncDef name: fn1 body: (BraceGroup children: [ (C {(echo)} {(DQ ("fn1 here"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(5)} spids:[24])] spids: [24] ) (C {(fn3)}) ] spids: [14] ) spids: [10 13] ) (FuncDef name: fn2 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:name) op:Equal rhs:{(DQ (fn2))} spids:[41])] spids: [41] ) (C {(echo)} {(DQ ($ VSub_Name "$name") (" here"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(6)} spids:[55])] spids: [55] ) ] spids: [38] ) spids: [34 37] ) (FuncDef name: fn3 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:name) op:Equal rhs:{(DQ (fn3))} spids:[69])] spids: [69] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: {($ VSub_Number "$1")} spids: [75] ) ] spids: [75] ) ] spids: [66] ) spids: [62 65] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(22)} spids:[82])] spids: [82] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:y) op:Equal rhs:{(23)} spids:[85])] spids: [85] ) (ForEach iter_name: i iter_words: [{(0)} {(1)} {(3)}] do_arg_iter: False body: (DoGroup children: [ (DParen child: (BinaryAssign op_id: Arith_PlusEqual left: (LhsName name:x) right: (ArithVarRef name:i) ) ) ] spids: [102 114] ) spids: [93 100] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(27)} spids:[116])] spids: [116] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:y) op:Equal rhs:{(b)} spids:[119])] spids: [119] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(29)} spids:[122])] spids: [122] ) (C {(echo)} { (CommandSubPart command_list: (CommandList children:[(C {(fn3)} {(30)})]) left_token: <Left_CommandSub "$("> spids: [127 131] ) } ) (C {(fn3)} {(31)}) (Sentence child:(C {(fn1)}) terminator:<Op_Semi ";">) (C {(fn3)} {(33)}) (C {(source)} {(../example/dbg-test1.sub)}) (Sentence child:(C {(exit)} {(0)}) terminator:<Op_Semi ";">) ] )