(CommandList children: [ (FuncDef name: __my_reassemble_comp_words_by_ref body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:exclude) op:Equal spids:[16]) (assign_pair lhs:(LhsName name:i) op:Equal spids:[18]) (assign_pair lhs:(LhsName name:j) op:Equal spids:[20]) (assign_pair lhs:(LhsName name:first) op:Equal spids:[22]) ] spids: [14] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclude) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (PatSub pat: {('[^') ($ VSub_Name '$COMP_WORDBREAKS') (']')} do_all: T do_prefix: F do_suffix: F ) spids: [31 38] ) ) } spids: [29] ) ] spids: [29] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cword_) op: Equal rhs: {($ VSub_Name '$COMP_CWORD')} spids: [42] ) ] spids: [42] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$exclude'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:words_) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (WholeArray op_id:Lit_At) spids: [65 70] ) ) } ] ) } spids: [62] ) ] spids: [62] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 59] ) ] spids: [16777215 78] ) (ForExpr init: (ArithBinary op_id: Arith_Comma left: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) right: (BinaryAssign op_id: Arith_Equal left: (LhsName name:j) right: (ArithWord w:{(Lit_Digits 0)}) ) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name COMP_WORDS> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [106 112] ) } ) ) update: (ArithBinary op_id: Arith_Comma left: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) right: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:j)) ) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:first) op:Equal rhs:{(t)} spids:[136])] spids: [136] ) (WhileUntil keyword: <KW_While while> cond: [ (AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(-gt)} {(0)} {(Lit_Other ']')}) (C {(Lit_Other '[')} {(-n)} { (DQ (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [161 166] ) ) } {(Lit_Other ']')} ) (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) suffix_op: (PatSub pat: {('[^') ($ VSub_Name '$exclude') (']')} do_all: T do_prefix: F do_suffix: F ) spids: [181 191] ) ) } {(Lit_Other '=')} { (DQ (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [197 202] ) ) } {(Lit_Other ']')} ) ] ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {($ VSub_Name '$j')} {(-ge)} {(2)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$first'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (DParen child: (UnaryAssign op_id: Node_PostDMinus child: (LhsName name:j) ) spids: [247 251] ) ] spids: [16777215 244] ) ] spids: [16777215 254] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:first) op: Equal rhs: {(EmptyPart)} spids: [257] ) ] spids: [257] ) (C {(words_) (Lit_Other '[') ($ VSub_Name '$j') (Lit_Other ']') (Lit_Other '=') (BracedVarSub token: <VSub_Name words_> bracket_op: (ArrayIndex expr:(ArithVarRef name:j)) spids: [265 270] ) (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [271 276] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(Lit_Other '=')} {($ VSub_Name '$COMP_CWORD')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cword_) op: Equal rhs: {($ VSub_Name '$j')} spids: [295] ) ] spids: [295] ) ] spids: [16777215 292] ) ] spids: [16777215 299] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Less left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name COMP_WORDS> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [309 315] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [304 321] ) terminator: <Op_Semi ';'> ) ] action: [ (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) spids: [327 331] ) ] spids: [16777215 324] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [334 344] ) ] spids: [208 347] ) ) (C {(words_) (Lit_Other '[') ($ VSub_Name '$j') (Lit_Other ']') (Lit_Other '=') (BracedVarSub token: <VSub_Name words_> bracket_op: (ArrayIndex expr:(ArithVarRef name:j)) spids: [355 360] ) (BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [361 366] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(Lit_Other '=')} {($ VSub_Name '$COMP_CWORD')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cword_) op: Equal rhs: {($ VSub_Name '$j')} spids: [385] ) ] spids: [385] ) ] spids: [16777215 382] ) ] spids: [16777215 389] ) ] spids: [125 392] ) ) ] spids: [11] ) spids: [7 10] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:preload_get_comp_words_by_ref) op: Equal rhs: {(DQ (true))} spids: [403] ) ] spids: [403] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$preload_get_comp_words_by_ref')} {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(type)} {(_get_comp_words_by_ref)}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:preload_get_comp_words_by_ref) op: Equal rhs: {(DQ (false))} spids: [437] ) ] spids: [437] ) ] ) ] spids: [16777215 424] ) ] spids: [16777215 442] ) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {($ VSub_Name '$preload_get_comp_words_by_ref')} {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')} ) (FuncDef name: __perf_get_comp_words_by_ref body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:exclude) op:Equal spids:[467]) (assign_pair lhs:(LhsName name:cur_) op:Equal spids:[469]) (assign_pair lhs:(LhsName name:words_) op:Equal spids:[471]) (assign_pair lhs:(LhsName name:cword_) op:Equal spids:[473]) ] spids: [465] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-n))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclude) op: Equal rhs: {($ VSub_Number '$2')} spids: [496] ) ] spids: [496] ) (C {(shift)} {(2)}) ] spids: [16777215 493] ) ] spids: [16777215 505] ) (C {(__my_reassemble_comp_words_by_ref)} {(DQ ($ VSub_Name '$exclude'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur_) op: Equal rhs: { (BracedVarSub token: <VSub_Name words_> bracket_op: (ArrayIndex expr:(ArithVarRef name:cword_)) spids: [516 521] ) } spids: [515] ) ] spids: [515] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(cur)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: {($ VSub_Name '$cur_')} spids: [553] ) ] spids: [553] ) ] spids: [549 550 557 16777215] ) (case_arm pat_list: [{(prev)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (BracedVarSub token: <VSub_Name words_> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$cword_')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [565 572] ) } spids: [564] ) ] spids: [564] ) ] spids: [560 561 575 16777215] ) (case_arm pat_list: [{(words)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:words) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name words_> bracket_op: (WholeArray op_id:Lit_At) spids: [585 590] ) ) } ] ) } spids: [582] ) ] spids: [582] ) ] spids: [578 579 595 16777215] ) (case_arm pat_list: [{(cword)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cword) op: Equal rhs: {($ VSub_Name '$cword_')} spids: [602] ) ] spids: [602] ) ] spids: [598 599 606 16777215] ) ] spids: [540 546 609] ) (C {(shift)}) ] spids: [537 615] ) ) ] spids: [462] ) spids: [458 461] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:preload__ltrim_colon_completions) op: Equal rhs: {(DQ (true))} spids: [626] ) ] spids: [626] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(type)} {(__ltrim_colon_completions)}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:preload__ltrim_colon_completions) op: Equal rhs: {(DQ (false))} spids: [660] ) ] spids: [660] ) ] ) ] spids: [16777215 647] ) ] spids: [16777215 665] ) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')} ) (FuncDef name: __perf__ltrim_colon_completions body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Number '$1'))} right: {(Lit_Other '*') (Lit_Other ':') (Lit_Other '*')} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$COMP_WORDBREAKS'))} right: {(Lit_Other '*') (Lit_Other ':') (Lit_Other '*')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:colon_word) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*:')} ) spids: [731 735] ) ) } ) spids: [727 737] ) } spids: [726] ) ] spids: [724] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Arith_Star) spids: [743 749] ) } spids: [742] ) ] spids: [740] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ge left: { (ArithSubPart anode: (UnaryAssign op_id: Arith_DMinus child: (LhsName name:i) ) spids: [756 760] ) } right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(COMPREPLY) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(DQ ($ VSub_Name '$colon_word'))} ) spids: [777 786] ) } ) ] spids: [769 789] ) ) ] spids: [16777215 717] ) ] spids: [16777215 792] ) ] spids: [685] ) spids: [681 684] ) ] ) (FuncDef name: __perfcomp body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_Number '$1'))} {(--)} {(DQ ($ VSub_Number '$2'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [808 824] ) } ] ) } spids: [805] ) ] spids: [805] ) ] spids: [802] ) spids: [797 801] ) (FuncDef name: __perfcomp_colon body: (BraceGroup children: [ (C {(__perfcomp)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(__ltrim_colon_completions)} {($ VSub_Name '$cur')})] spids: [16777215 865] ) ] else_action: [(C {(__perf__ltrim_colon_completions)} {($ VSub_Name '$cur')})] spids: [873 881] ) ] spids: [836] ) spids: [831 835] ) (FuncDef name: __perf_prev_skip_opts body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:i) op:Equal spids:[896]) (assign_pair lhs:(LhsName name:cmd_) op:Equal spids:[898]) (assign_pair lhs:(LhsName name:cmds_) op:Equal spids:[900]) ] spids: [894] ) (C {(let)} {(Lit_VarLike 'i=') (cword-1)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmds_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name '$cmd')} {($ VSub_Number '$1')} {(--list-cmds)}) ] ) left_token: <Left_CommandSub '$('> spids: [911 917] ) } spids: [910] ) ] spids: [910] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev_skip_opts) op: Equal rhs: {(ArrayLiteralPart)} spids: [920] ) ] spids: [920] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(-ge)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [945 950] ) } right: {($ VSub_Number '$1')} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 959] ) ] spids: [16777215 965] ) (ForEach iter_name: cmd_ iter_words: [{($ VSub_Name '$cmds_')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [984 989] ) } right: {($ VSub_Name '$cmd_')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev_skip_opts) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [1002 1007] ) } spids: [1001] ) ] spids: [1001] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [16777215 998] ) ] spids: [16777215 1013] ) ] spids: [977 1016] ) spids: [973 975] ) (DParen child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:i)) spids: [1019 1023] ) ] spids: [938 1026] ) ) ] spids: [891] ) spids: [886 890] ) (FuncDef name: __perf_main body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:cmd) op:Equal spids:[1041])] spids: [1039] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1046 1051] ) } spids: [1045] ) ] spids: [1045] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: {(ArrayLiteralPart)} spids: [1054] ) ] spids: [1054] ) (C {(__perf_prev_skip_opts)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {($ VSub_Name '$prev_skip_opts')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(--) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmds) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name '$cmd')} {(--list-opts)})] ) left_token: <Left_CommandSub '$('> spids: [1103 1107] ) } spids: [1102] ) ] spids: [1102] ) ] spids: [16777215 1099] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmds) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name '$cmd')} {(--list-cmds)})] ) left_token: <Left_CommandSub '$('> spids: [1114 1118] ) } spids: [1113] ) ] spids: [1113] ) ] spids: [1110 1121] ) (C {(__perfcomp)} {(DQ ($ VSub_Name '$cmds'))} {(DQ ($ VSub_Name '$cur'))}) ] spids: [16777215 1082] ) (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$prev')} right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1147 1155])} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$prev_skip_opts')} right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1164 1170])} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:evts) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name '$cmd')} {(list)} {(--raw-dump)})] ) left_token: <Left_CommandSub '$('> spids: [1179 1185] ) } spids: [1178] ) ] spids: [1178] ) (C {(__perfcomp_colon)} {(DQ ($ VSub_Name '$evts'))} {(DQ ($ VSub_Name '$cur'))}) ] spids: [1139 1175] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$prev_skip_opts')} right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1214 1239])} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subcmds) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name '$cmd')} {($ VSub_Name '$prev_skip_opts')} {(--list-cmds)} ) ] ) left_token: <Left_CommandSub '$('> spids: [1248 1254] ) } spids: [1247] ) ] spids: [1247] ) (C {(__perfcomp_colon)} {(DQ ($ VSub_Name '$subcmds'))} {(DQ ($ VSub_Name '$cur'))} ) ] spids: [16777215 1244] ) ] spids: [16777215 1268] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(--) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subcmd) op: Equal rhs: {($ VSub_Name '$prev_skip_opts')} spids: [1292] ) ] spids: [1292] ) (C {(__perf_prev_skip_opts)} {($ VSub_Name '$subcmd')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subcmd) op: Equal rhs: {($ VSub_Name '$subcmd') (DQ (' ')) ($ VSub_Name '$prev_skip_opts')} spids: [1301] ) ] spids: [1301] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opts) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name '$cmd')} {($ VSub_Name '$subcmd')} {(--list-opts)} ) ] ) left_token: <Left_CommandSub '$('> spids: [1310 1316] ) } spids: [1309] ) ] spids: [1309] ) (C {(__perfcomp)} {(DQ ($ VSub_Name '$opts'))} {(DQ ($ VSub_Name '$cur'))}) ] spids: [16777215 1289] ) ] spids: [16777215 1330] ) ] spids: [1199 1333] ) ] spids: [1036] ) spids: [1031 1035] ) ] )