(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _find body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:32) ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-maxdepth)} {(-mindepth)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:50) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:52) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'{0..9}' span_id:59))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [49] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:73) arg_word: {(0)} ) ] spids: [43 46 78 -1] ) (case_arm pat_list: [ {(-newer)} {(-anewer)} {(-cnewer)} {(-fls)} {(-fprint)} {(-fprint0)} {(-fprintf)} {(-name)} {(-iname)} {(-lname)} {(-ilname)} {(-wholename)} {(-iwholename)} {(-samefile)} ] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:116) arg_word: {(0)} ) ] spids: [81 110 121 -1] ) (case_arm pat_list: [{(-fstype)}] action: [ (C {(_fstypes)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$OSTYPE')} right: {(Id.Lit_Other '*') (bsd) (Id.Lit_Other '*')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:148) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 150 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'local rdonly' span_id: 157 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [147] ) ] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:171) arg_word: {(0)} ) ] spids: [124 125 176 -1] ) (case_arm pat_list: [{(-gid)}] action: [ (C {(_gids)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:186) arg_word: {(0)} ) ] spids: [179 180 191 -1] ) (case_arm pat_list: [{(-group)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:199) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:201) command_list: (command.CommandList children: [ (command.Simple words: [ {(compgen)} {(-g)} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:213) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ] ) } spids: [198] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:220) arg_word: {(0)} ) ] spids: [194 195 225 -1] ) (case_arm pat_list: [{(-xtype)} {(-type)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:235) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:237) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'b c d p f l s' span_id: 244 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [234] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:258) arg_word: {(0)} ) ] spids: [228 231 263 -1] ) (case_arm pat_list: [{(-uid)}] action: [ (C {(_uids)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:273) arg_word: {(0)} ) ] spids: [266 267 278 -1] ) (case_arm pat_list: [{(-user)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:286) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:288) command_list: (command.CommandList children: [ (C {(compgen)} {(-u)} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [285] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:305) arg_word: {(0)} ) ] spids: [281 282 310 -1] ) (case_arm pat_list: [{(-exec)} {(-execdir)} {(-ok)} {(-okdir)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:words) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:324) words: [ {(Id.Lit_ArrayLhsOpen 'words[') (0) (Id.Lit_RBracket ']')} {(DQ ($ Id.VSub_DollarName '$cur'))} ] ) } spids: [323] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cword) op: assign_op.Equal rhs: {(1)} spids: [335] ) ] ) (C {(_command)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:342) arg_word: {(0)} ) ] spids: [313 320 347 -1] ) (case_arm pat_list: [ {(-) (Id.Lit_LBracket '[') (acm) (Id.Lit_RBracket ']') (min)} {(-) (Id.Lit_LBracket '[') (acm) (Id.Lit_RBracket ']') (Id.KW_Time time)} {(-iname)} {(-lname)} {(-wholename)} {(-iwholename)} {(-lwholename)} {(-ilwholename)} {(-inum)} {(-path)} {(-ipath)} {(-regex)} {(-iregex)} {(-links)} {(-perm)} {(-size)} {(-used)} {(-printf)} {(-context)} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:406) arg_word: {(0)} ) ] spids: [350 399 411 -1] ) (case_arm pat_list: [{(-regextype)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:419) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:421) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'emacs posix-awk posix-basic posix-egrep\n' span_id: 428 ) (Token id:Id.Lit_Chars val:' posix-extended' span_id:429) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [418] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:443) arg_word: {(0)} ) ] spids: [414 415 448 -1] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_expand)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:459) arg_word: {(0)} ) ] ) (C {(local)} {(i)} {(Id.Lit_VarLike 'exprfound=') (false)}) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:484) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$i'))} right: {(Id.Lit_Other '[') (-) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\(' span_id:504) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:505)) (Id.Lit_Other ',') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\!' span_id:507)) (Id.Lit_Other ']') (Id.Lit_Other '*') } ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exprfound) op: assign_op.Equal rhs: {(true)} spids: [515] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:520) ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [(C {($ Id.VSub_DollarName '$exprfound')})] negated: T ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {(Id.Lit_Other '[') (-) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\(' span_id:549) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:550)) (Id.Lit_Other ',') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\!' span_id:552)) (Id.Lit_Other ']') (Id.Lit_Other '*') } ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:557) ) ] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:567) arg_word: {(0)} ) ] spids: [531 559] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:581) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:583) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '-daystart -depth -follow -help\n' span_id: 590 ) (Token id: Id.Lit_Chars val: ' -ignore_readdir_race -maxdepth -mindepth -mindepth -mount\n' span_id: 591 ) (Token id: Id.Lit_Chars val: ' -noignore_readdir_race -noleaf -regextype -version -warn -nowarn -xdev\n' span_id: 592 ) (Token id: Id.Lit_Chars val: ' -amin -anewer -atime -cmin -cnewer -ctime -empty -executable -false\n' span_id: 593 ) (Token id: Id.Lit_Chars val: ' -fstype -gid -group -ilname -iname -inum -ipath -iregex -iwholename\n' span_id: 594 ) (Token id: Id.Lit_Chars val: ' -links -lname -mmin -mtime -name -newer -nogroup -nouser -path -perm\n' span_id: 595 ) (Token id: Id.Lit_Chars val: ' -readable -regex -samefile -size -true -type -uid -used -user\n' span_id: 596 ) (Token id: Id.Lit_Chars val: ' -wholename -writable -xtype -context -delete -exec -execdir -fls\n' span_id: 597 ) (Token id: Id.Lit_Chars val: ' -fprint -fprint0 -fprintf -ls -ok -okdir -print -print0 -printf -prune\n' span_id: 598 ) (Token id:Id.Lit_Chars val:' -quit' span_id:599) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [580] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:620) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:631) ) ] action: [ (C {(local)} {(-A)} {(Id.Lit_VarLike 'onlyonce=') (word_part.AssocArrayLiteral left: (Token id:Id.Op_LParen val:'(' span_id:657) pairs: [ {(-daystart)} {(1)} {(-depth)} {(1)} {(-follow)} {(1)} {(-help)} {(1)} {(-ignore_readdir_race)} {(1)} {(-maxdepth)} {(1)} {(-mindepth)} {(1)} {(-mount)} {(1)} {(-noignore_readdir_race)} {(1)} {(-noleaf)} {(1)} {(-nowarn)} {(1)} {(-regextype)} {(1)} {(-version)} {(1)} {(-warn)} {(1)} {(-xdev)} {(1)} ] ) } ) (C {(local)} {(j)}) (command.ForEach iter_name: i iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:753) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$i')}) right: (bool_expr.WordTest w: { (braced_var_sub token: (Token id: Id.VSub_Name val: onlyonce span_id: 771 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } ) ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:781) ) ] ) (command.ForEach iter_name: j iter_words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:792) prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id: Id.VSub_Name val: COMPREPLY span_id: 805 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: j span_id: 807 ) ) ) ) } right: {($ Id.VSub_DollarName '$i')} ) ) (C {(unset)} { (SQ (Token id: Id.Lit_Chars val: 'COMPREPLY[j]' span_id: 822 ) ) } ) ] ) ] ) ) ] ) ) ] spids: [614 633] ) ] ) (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:840) arg_word: {(0)} ) ] ) ) (C {(complete)} {(-F)} {(_find)} {(find)}) ] )