(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _find body: (BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-W>} {(SQ <'{0..9}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [49] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-W>} {(SQ <'local rdonly'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [147] ) ] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [124 125 176 -1] ) (case_arm pat_list: [{<-gid>}] action: [ (C {<_gids>}) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<compgen>} {<-g>} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ] ) } spids: [198] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-W>} {(SQ <'b c d p f l s'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [234] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [228 231 263 -1] ) (case_arm pat_list: [{<-uid>}] action: [ (C {<_uids>}) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-u>} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}) ) } ] ) } spids: [285] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> 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: <Id.ControlFlow_Return return> 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:<Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-W>} { (SQ <'emacs posix-awk posix-basic posix-egrep\n'> <' posix-extended'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [418] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [414 415 448 -1] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_expand>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<local>} {<i>} {<Id.Lit_VarLike 'exprfound='> <false>}) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name words> 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: <Id.Lit_EscapedChar '\\('> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) <Id.Lit_Other ','> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\!'> ) <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: <Id.ControlFlow_Break break> ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: <Id.Lit_EscapedChar '\\('> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) <Id.Lit_Other ','> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\!'> ) <Id.Lit_Other ']'> <Id.Lit_Other '*'> } ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> 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: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<compgen>} {<-W>} { (SQ <'-daystart -depth -follow -help\n'> < ' -ignore_readdir_race -maxdepth -mindepth -mindepth -mount\n' > <' -noignore_readdir_race -noleaf -regextype -version -warn -nowarn -xdev\n'> < ' -amin -anewer -atime -cmin -cnewer -ctime -empty -executable -false\n' > <' -fstype -gid -group -ilname -iname -inum -ipath -iregex -iwholename\n'> < ' -links -lname -mmin -mtime -name -newer -nogroup -nouser -path -perm\n' > <' -readable -regex -samefile -size -true -type -uid -used -user\n'> < ' -wholename -writable -xtype -context -delete -exec -execdir -fls\n' > <' -fprint -fprint0 -fprintf -ls -ok -okdir -print -print0 -printf -prune\n'> <' -quit'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [580] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: { (braced_var_sub token: <Id.VSub_Name COMPREPLY> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<-A>} {<Id.Lit_VarLike 'onlyonce='> (word_part.AssocArrayLiteral left: <Id.Op_LParen _> 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: <Id.VSub_Name words> 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: <Id.VSub_Name onlyonce> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) ) ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.ForEach iter_name: j iter_words: [ { (braced_var_sub token: <Id.VSub_Name COMPREPLY> 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: <Id.VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike j> ) ) } right: {($ Id.VSub_DollarName '$i')} ) ) (C {<unset>} {(SQ <'COMPREPLY[j]'>)}) ] ) ] ) ) ] ) ) ] spids: [614 633] ) ] ) (C {<_filedir>}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (C {<complete>} {<-F>} {<_find>} {<find>}) ] )