(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _svk body: (command.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>) ] ) (C {<local>} {<commands>} {<options>} {<command>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:commands) op: assign_op.Equal rhs: { (SQ <'add admin annotate ann blame praise cat checkout co cleanup\n'> < ' cmerge cm commit ci copy cp delete del remove rm depotmap depot\n' > <' describe desc diff di help h ? import info list ls log merge mirror mi\n'> < ' mkdir move mv ren rename patch propdel pd pdel propedit pe pedit\n' > <' propget pg pget proplist pl plist propset ps pset pull push resolved\n'> < ' revert smerge sm status st stat switch sw sync sy update up verify' > ) } spids: [40] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName '$cword')} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <--version>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [88] ) ] ) ] spids: [69 85] ) ] else_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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(DQ ($ Id.VSub_DollarName '$commands'))} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [115] ) ] ) ] ) ] spids: [52 66] ) ] else_action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-F>} {<--file>} {<--targets>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [152 157 168 -1] ) (case_arm pat_list: [{<--encoding>}] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( iconv --list | sed -e "s@//@@;" )'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [175] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [171 172 206 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:command) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [213] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$command')} arms: [ (case_arm pat_list: [{<add>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <' --non-recursive -N -q --quiet'>)} spids: [257] ) ] ) ] spids: [253 254 263 -1] ) (case_arm pat_list: [{<blame>} {<annotate>} {<ann>} {<praise>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-r --revisions -x --cross'>)} spids: [276] ) ] ) ] spids: [266 273 282 -1] ) (case_arm pat_list: [{<cat>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-r --revision'>)} spids: [289] ) ] ) ] spids: [285 286 295 -1] ) (case_arm pat_list: [{<checkout>} {<co>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -q --quiet -N --non-recursive -l\n'> < ' --list -d --detach --export --relocate --purge' > ) } spids: [304] ) ] ) ] spids: [298 301 311 -1] ) (case_arm pat_list: [{<cleanup>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-a --all'>)} spids: [318] ) ] ) ] spids: [314 315 324 -1] ) (case_arm pat_list: [{<cmerge>} {<cm>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-c --change -l --log -r --revision -a --auto\n'> < ' --verbatim --no-ticket -m --message -F --file\n' > <' --template --encoding -P --patch -S --sign -C\n'> <' --check-only --direct'> ) } spids: [333] ) ] ) ] spids: [327 330 342 -1] ) (case_arm pat_list: [{<commit>} {<ci>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'--import -m --message -F --file --encoding\n'> < ' --template -P --patch -S --sign -C --check-only -N\n' > <' --non-recursive --direct'> ) } spids: [351] ) ] ) ] spids: [345 348 359 -1] ) (case_arm pat_list: [{<copy>} {<cp>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -p --parent -q --quiet -m --message\n'> < ' -F --file --template --encoding -P --patch -S --sign -C\n' > <' --check-only --direct'> ) } spids: [368] ) ] ) ] spids: [362 365 376 -1] ) (case_arm pat_list: [{<delete>} {<del>} {<remove>} {<rm>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-k --keep-local -m --message -F --file --encoding\n'> < ' --template -P --patch -S --sign -C --check-only\n' > <' --direct'> ) } spids: [389] ) ] ) ] spids: [379 386 397 -1] ) (case_arm pat_list: [{<depotmap>} {<depot>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-i --init -l --list -d --detach --relocate'>)} spids: [406] ) ] ) ] spids: [400 403 412 -1] ) (case_arm pat_list: [{<diff>} {<di>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -s --summarize -b --verbose -N\n'> <' --non-recursive'> ) } spids: [421] ) ] ) ] spids: [415 418 428 -1] ) (case_arm pat_list: [{<import>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-f --from-checkout -t --to-checkout -m --message\n'> < ' -F --file --template --encoding -P --patch -S --sign -C\n' > <' --check-only -N --non-recursive --direct'> ) } spids: [435] ) ] ) ] spids: [431 432 443 -1] ) (case_arm pat_list: [{<list>} {<ls>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -v --verbose -R --recursive -d\n'> <' --depth -f --full-path'> ) } spids: [452] ) ] ) ] spids: [446 449 459 -1] ) (case_arm pat_list: [{<log>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -l --limit -q --quiet -x --cross -v\n'> <' --verbose'> ) } spids: [466] ) ] ) ] spids: [462 463 473 -1] ) (case_arm pat_list: [{<merge>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -c --change -I --incremental -a\n'> < ' --auto -l --log -s --sync -t --to -f --from --verbatim\n' > <' --no-ticket --track-rename -m --message -F --file\n'> < ' --template --encoding -P --patch -S --sign -C\n' > <' --check-only --direct'> ) } spids: [480] ) ] ) ] spids: [476 477 490 -1] ) (case_arm pat_list: [{<mirror>} {<mi>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-l --list -d --detach --relocate --recover\n'> <' --unlock --upgrade'> ) } spids: [499] ) ] ) ] spids: [493 496 506 -1] ) (case_arm pat_list: [{<mkdir>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-p --parent -m --message -F --file --template\n'> < ' --encoding -P --patch -S --sign -C --check-only\n' > <' --direct'> ) } spids: [513] ) ] ) ] spids: [509 510 521 -1] ) (case_arm pat_list: [{<move>} {<mv>} {<rename>} {<ren>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -p --parent -q --quiet -m --message\n'> < ' -F --file --encoding --template -P --patch -S --sign -C\n' > <' --check-only --direct'> ) } spids: [534] ) ] ) ] spids: [524 531 542 -1] ) (case_arm pat_list: [{<patch>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <--depot>)} spids: [549] ) ] ) ] spids: [545 546 555 -1] ) (case_arm pat_list: [{<propdel>} {<propset>} {<pdel>} {<pset>} {<pd>} {<ps>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-R --recursive -r --revision --revprop -m\n'> < ' --message -F --file --template --encoding -P --patch -S\n' > <' --sign -C --check-only -q --quiet --direct'> ) } spids: [572] ) ] ) ] spids: [558 569 580 -1] ) (case_arm pat_list: [{<propedit>} {<pedit>} {<pe>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-R --recursive -r --revision --revprop -m\n'> < ' --message -F --file --template --encoding -P --patch\n' > <' -S --sign -C --check-only --direct'> ) } spids: [591] ) ] ) ] spids: [583 588 599 -1] ) (case_arm pat_list: [{<propget>} {<pget>} {<pg>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-R --recursive -r --revision --revprop --strict'>)} spids: [610] ) ] ) ] spids: [602 607 616 -1] ) (case_arm pat_list: [{<proplist>} {<plist>} {<pl>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-R --recursive -v --verbose -r --revision\n'> <' --revprop'> ) } spids: [627] ) ] ) ] spids: [619 624 634 -1] ) (case_arm pat_list: [{<pull>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-a --all -l --lump'>)} spids: [641] ) ] ) ] spids: [637 638 647 -1] ) (case_arm pat_list: [{<push>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-f --from -l --lump -C --check -P --patch -S\n'> <' --sign --verbatim'> ) } spids: [654] ) ] ) ] spids: [650 651 661 -1] ) (case_arm pat_list: [{<resolved>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-R --recursive'>)} spids: [668] ) ] ) ] spids: [664 665 674 -1] ) (case_arm pat_list: [{<revert>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-R --recursive -q --quiet'>)} spids: [681] ) ] ) ] spids: [677 678 687 -1] ) (case_arm pat_list: [{<smerge>} {<sm>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-I --incremental -l --log -B --baseless -b --base\n'> < ' -s --sync -t --to -f --from --verbatim --no-ticket\n' > <' --track-rename --host --remoterev -m --message -F\n'> < ' --file --template --encoding -P --patch -S --sign -C\n' > <' --check-only --direct'> ) } spids: [696] ) ] ) ] spids: [690 693 706 -1] ) (case_arm pat_list: [{<status>} {<stat>} {<st>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-q --quiet --no-ignore -N --non-recursive -v\n'> <' --verbose'> ) } spids: [717] ) ] ) ] spids: [709 714 724 -1] ) (case_arm pat_list: [{<switch>} {<sw>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-r --revision -d --detach -q --quiet'>)} spids: [733] ) ] ) ] spids: [727 730 739 -1] ) (case_arm pat_list: [{<sync>} {<sy>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ <'-a --all -s --skipto -t --torev'>)} spids: [748] ) ] ) ] spids: [742 745 754 -1] ) (case_arm pat_list: [{<update>} {<up>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ <'-r --revision -N --non-recursive -C --check-only\n'> < ' -s --sync -m --merge -q --quiet' > ) } spids: [763] ) ] ) ] spids: [757 760 770 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.PlusEqual rhs: {(DQ <' --help -h'>)} spids: [776] ) ] ) (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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(DQ ($ Id.VSub_DollarName '$options'))} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [783] ) ] ) ] spids: [223 239] ) ] else_action: [ (command.Case to_match: {($ Id.VSub_DollarName '$command')} arms: [ (case_arm pat_list: [ {<help>} {<h>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)} ] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$commands') <' environment commands\n'> <' intro'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [825] ) ] ) ] spids: [817 822 851 -1] ) (case_arm pat_list: [{<admin>}] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (SQ <'help deltify dump hotcopy\n'> < ' list-dblogs list-unused-dblogs load lstxns recover\n' > <' rmtxns setlog verify rmcache'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [858] ) ] ) ] spids: [854 855 884 -1] ) (case_arm pat_list: [{<patch>}] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (SQ <'--ls --list --cat --view\n'> < ' --regen --regenerate --up --update --apply --rm\n' > <' --delete'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [891] ) ] ) ] spids: [887 888 917 -1] ) (case_arm pat_list: [{<sync>}] 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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number '$1')} {<mirror>} {<--list>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) (C {<awk>} {(SQ <'/^\\//{print $1}'>)} ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [924] ) ] ) ] spids: [920 921 969 -1] ) (case_arm pat_list: [{<co>} {<checkout>} {<push>} {<pull>}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<//> <Id.Lit_Other '*'> </> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name cur> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash /> <'*'>} ) ) </> } spids: [1003] ) ] ) ] spids: [982 1000] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path) op: assign_op.Equal rhs: {<//>} spids: [1016] ) ] ) ] ) (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 '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number '$1')} {<list>} { ($ Id.VSub_DollarName '$path' ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) (C {<sed>} {<-e>} {(SQ <'s|\\(.*\\)|'>) ($ Id.VSub_DollarName '$path' ) (SQ <'\\1|'>) } ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1023] ) ] ) ] spids: [972 979 1073 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<_filedir>})] spids: [1076 1077 1083 -1] ) ] ) ] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (C {<complete>} {<-F>} {<_svk>} {<svk>}) ] )