(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:[27])] spids: [27] ) (C {(fn3)}) ] spids: [17] ) spids: [13 16] ) (FuncDef name: fn2 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:name) op:Equal rhs:{(DQ (fn2))} spids:[44])] spids: [44] ) (C {(echo)} {(DQ ($ VSub_Name "$name") (" here"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(6)} spids:[58])] spids: [58] ) ] spids: [41] ) spids: [37 40] ) (FuncDef name: fn3 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:name) op:Equal rhs:{(DQ (fn3))} spids:[72])] spids: [72] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: {($ VSub_Number "$1")} spids: [78] ) ] spids: [78] ) ] spids: [69] ) spids: [65 68] ) (C {(set)} {(-xv)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(24)} spids:[92])] spids: [92] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(25)} spids:[95])] spids: [95] ) (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: [112 124] ) spids: [103 110] ) (C {(set)} {(Lit_Other "+") (xv)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(27)} spids:[131])] spids: [131] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:y) op:Equal rhs:{(b)} spids:[134])] spids: [134] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(29)} spids:[137])] spids: [137] ) (C {(echo)} { (CommandSubPart command_list: (CommandList children:[(C {(fn3)} {(30)})]) left_token: <Left_CommandSub "$("> spids: [142 146] ) } ) (C {(fn3)} {(31)}) (Sentence child:(C {(fn1)}) terminator:<Op_Semi ";">) (C {(fn3)} {(33)}) (C {(exit)} {(0)}) ] )