(CommandList children: [ (AndOr children: [ (FuncDef name: _chown body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[13]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[15]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[17]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[19]) (assign_pair lhs:(LhsName name:split) op:Equal spids:[21]) ] spids: [11] ) (AndOr children: [ (C {(_init_completion)} {(-s)} {(-n)} {(Lit_Other ':')}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name '$prev'))} arms: [ (case_arm pat_list: [{(--from)}] action: [ (C {(_usergroup)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [51 52 63 16777215] ) (case_arm pat_list: [{(--reference)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [66 67 78 16777215] ) ] spids: [42 48 81] ) (AndOr children: [ (C {($ VSub_Name '$split')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:w) op: Equal spids: [120] ) (assign_pair lhs: (LhsName name:opts) op: Equal spids: [122] ) ] spids: [118] ) (ForEach iter_name: w iter_words: [ { (DQ (BracedVarSub token: <VSub_Name words> bracket_op: (WholeArray op_id:Lit_At) spids: [132 137] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$w'))} right: {(-) (ExtGlobPart op:<ExtGlob_At '@('> spids:[154 158])} ) ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opts) op: Equal rhs: {(DQ ('-H -L -P'))} spids: [164] ) ] spids: [164] ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [142 174] ) spids: [130 140] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'-c -h -f -R -v --changes --dereference\n'> < ' --no-dereference --from --silent --quiet --reference --recursive\n' > <' --verbose --help --version $opts'> ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [180 198] ) } ] ) } spids: [177] ) ] spids: [177] ) ] spids: [16777215 111] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[208])] spids: [206] ) (C {(_count_args)} {(Lit_Other ':')}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name '$args')} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(_usergroup)} {(-u)})] spids: [16777215 235] ) ] else_action: [(C {(_filedir)})] spids: [243 249] ) ] spids: [203 252] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_chown)} {(chown)}) ] op_id: Op_DAmp ) ] )