(CommandList children: [ (AndOr children: [ (FuncDef name: _svk 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]) ] spids: [11] ) (AndOr children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:commands) op:Equal spids:[32]) (assign_pair lhs:(LhsName name:options) op:Equal spids:[34]) (assign_pair lhs:(LhsName name:command) op:Equal spids:[36]) ] spids: [30] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:commands) 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] ) ] spids: [40] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name "$cword")} right: {(1)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (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_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <--version>)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [91 107] ) } ] ) } spids: [88] ) ] spids: [88] ) ] spids: [-1 85] ) ] else_action: [ (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_Name "$commands"))} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [118 134] ) } ] ) } spids: [115] ) ] spids: [115] ) ] spids: [112 139] ) ] spids: [-1 66] ) ] else_action: [ (Case to_match: {($ VSub_Name "$prev")} arms: [ (case_arm pat_list: [{(-F)} {(--file)} {(--targets)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [152 157 168 -1] ) (case_arm pat_list: [{(--encoding)}] action: [ (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 < "$( iconv --list | sed -e \"s@//@@;\" )" > ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [178 196] ) } ] ) } spids: [175] ) ] spids: [175] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [171 172 206 -1] ) ] spids: [145 149 209] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:command) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [214 219] ) } spids: [213] ) ] spids: [213] ) (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: [ (Case to_match: {($ VSub_Name "$command")} arms: [ (case_arm pat_list: [{(add)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <" --non-recursive -N -q --quiet">)} spids: [257] ) ] spids: [257] ) ] spids: [253 254 263 -1] ) (case_arm pat_list: [{(blame)} {(annotate)} {(ann)} {(praise)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-r --revisions -x --cross">)} spids: [276] ) ] spids: [276] ) ] spids: [266 273 282 -1] ) (case_arm pat_list: [{(cat)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-r --revision">)} spids: [289] ) ] spids: [289] ) ] spids: [285 286 295 -1] ) (case_arm pat_list: [{(checkout)} {(co)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ < "-r --revision -q --quiet -N --non-recursive -l\n" > <" --list -d --detach --export --relocate --purge"> ) } spids: [304] ) ] spids: [304] ) ] spids: [298 301 311 -1] ) (case_arm pat_list: [{(cleanup)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-a --all">)} spids: [318] ) ] spids: [318] ) ] spids: [314 315 324 -1] ) (case_arm pat_list: [{(cmerge)} {(cm)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [333] ) ] spids: [327 330 342 -1] ) (case_arm pat_list: [{(commit)} {(ci)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [351] ) ] spids: [345 348 359 -1] ) (case_arm pat_list: [{(copy)} {(cp)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [368] ) ] spids: [362 365 376 -1] ) (case_arm pat_list: [{(delete)} {(del)} {(remove)} {(rm)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [389] ) ] spids: [379 386 397 -1] ) (case_arm pat_list: [{(depotmap)} {(depot)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-i --init -l --list -d --detach --relocate">)} spids: [406] ) ] spids: [406] ) ] spids: [400 403 412 -1] ) (case_arm pat_list: [{(diff)} {(di)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-r --revision -s --summarize -b --verbose -N\n"> <" --non-recursive"> ) } spids: [421] ) ] spids: [421] ) ] spids: [415 418 428 -1] ) (case_arm pat_list: [{(import)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [435] ) ] spids: [431 432 443 -1] ) (case_arm pat_list: [{(list)} {(ls)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-r --revision -v --verbose -R --recursive -d\n"> <" --depth -f --full-path"> ) } spids: [452] ) ] spids: [452] ) ] spids: [446 449 459 -1] ) (case_arm pat_list: [{(log)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ < "-r --revision -l --limit -q --quiet -x --cross -v\n" > <" --verbose"> ) } spids: [466] ) ] spids: [466] ) ] spids: [462 463 473 -1] ) (case_arm pat_list: [{(merge)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [480] ) ] spids: [476 477 490 -1] ) (case_arm pat_list: [{(mirror)} {(mi)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-l --list -d --detach --relocate --recover\n"> <" --unlock --upgrade"> ) } spids: [499] ) ] spids: [499] ) ] spids: [493 496 506 -1] ) (case_arm pat_list: [{(mkdir)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [513] ) ] spids: [509 510 521 -1] ) (case_arm pat_list: [{(move)} {(mv)} {(rename)} {(ren)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [534] ) ] spids: [524 531 542 -1] ) (case_arm pat_list: [{(patch)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <--depot>)} spids: [549] ) ] spids: [549] ) ] spids: [545 546 555 -1] ) (case_arm pat_list: [{(propdel)} {(propset)} {(pdel)} {(pset)} {(pd)} {(ps)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [572] ) ] spids: [558 569 580 -1] ) (case_arm pat_list: [{(propedit)} {(pedit)} {(pe)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [591] ) ] spids: [583 588 599 -1] ) (case_arm pat_list: [{(propget)} {(pget)} {(pg)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-R --recursive -r --revision --revprop --strict">) } spids: [610] ) ] spids: [610] ) ] spids: [602 607 616 -1] ) (case_arm pat_list: [{(proplist)} {(plist)} {(pl)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-R --recursive -v --verbose -r --revision\n"> <" --revprop"> ) } spids: [627] ) ] spids: [627] ) ] spids: [619 624 634 -1] ) (case_arm pat_list: [{(pull)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-a --all -l --lump">)} spids: [641] ) ] spids: [641] ) ] spids: [637 638 647 -1] ) (case_arm pat_list: [{(push)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-f --from -l --lump -C --check -P --patch -S\n"> <" --sign --verbatim"> ) } spids: [654] ) ] spids: [654] ) ] spids: [650 651 661 -1] ) (case_arm pat_list: [{(resolved)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-R --recursive">)} spids: [668] ) ] spids: [668] ) ] spids: [664 665 674 -1] ) (case_arm pat_list: [{(revert)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-R --recursive -q --quiet">)} spids: [681] ) ] spids: [681] ) ] spids: [677 678 687 -1] ) (case_arm pat_list: [{(smerge)} {(sm)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) 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: [696] ) ] spids: [690 693 706 -1] ) (case_arm pat_list: [{(status)} {(stat)} {(st)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <"-q --quiet --no-ignore -N --non-recursive -v\n"> <" --verbose"> ) } spids: [717] ) ] spids: [717] ) ] spids: [709 714 724 -1] ) (case_arm pat_list: [{(switch)} {(sw)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-r --revision -d --detach -q --quiet">)} spids: [733] ) ] spids: [733] ) ] spids: [727 730 739 -1] ) (case_arm pat_list: [{(sync)} {(sy)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <"-a --all -s --skipto -t --torev">)} spids: [748] ) ] spids: [748] ) ] spids: [742 745 754 -1] ) (case_arm pat_list: [{(update)} {(up)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ < "-r --revision -N --non-recursive -C --check-only\n" > <" -s --sync -m --merge -q --quiet"> ) } spids: [763] ) ] spids: [763] ) ] spids: [757 760 770 -1] ) ] spids: [246 250 773] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: PlusEqual rhs: {(DQ (" --help -h"))} spids: [776] ) ] spids: [776] ) (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_Name "$options"))} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [786 802] ) } ] ) } spids: [783] ) ] spids: [783] ) ] spids: [-1 239] ) ] else_action: [ (Case to_match: {($ VSub_Name "$command")} arms: [ (case_arm pat_list: [ {(help)} {(h)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\?">)} ] action: [ (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_Name "$commands") (" environment commands\n") (" intro") ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [828 846] ) } ] ) } spids: [825] ) ] spids: [825] ) ] spids: [817 822 851 -1] ) (case_arm pat_list: [{(admin)}] action: [ (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 <"help deltify dump hotcopy\n"> < " list-dblogs list-unused-dblogs load lstxns recover\n" > <" rmtxns setlog verify rmcache"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [861 879] ) } ] ) } spids: [858] ) ] spids: [858] ) ] spids: [854 855 884 -1] ) (case_arm pat_list: [{(patch)}] action: [ (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 <"--ls --list --cat --view\n"> < " --regen --regenerate --up --update --apply --rm\n" > <" --delete"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [894 912] ) } ] ) } spids: [891] ) ] spids: [891] ) ] spids: [887 888 917 -1] ) (case_arm pat_list: [{(sync)}] action: [ (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 (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {($ VSub_Number "$1")} {(mirror)} {(--list)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [944] ) ] ) (C {(awk)} { (SQ < "/^\\//{print $1}" > ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [934 955] ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [927 964] ) } ] ) } spids: [924] ) ] spids: [924] ) ] spids: [920 921 969 -1] ) (case_arm pat_list: [{(co)} {(checkout)} {(push)} {(pull)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$cur"))} right: {(//) (Lit_Other "*") (/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ("*")} ) spids: [1004 1009] ) (/) } spids: [1003] ) ] spids: [1003] ) ] spids: [-1 1000] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: {(//)} spids: [1016] ) ] spids: [1016] ) ] spids: [1013 1020] ) (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 (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {($ VSub_Number "$1")} {(list)} { ($ VSub_Name "$path") } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1041] ) ] ) (C {(sed)} {(-e)} {(SQ <"s|\\(.*\\)|">) ($ VSub_Name "$path") (SQ <"\\1|">) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1033 1059] ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [1026 1068] ) } ] ) } spids: [1023] ) ] spids: [1023] ) ] spids: [972 979 1073 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(_filedir)})] spids: [1076 1077 1083 -1] ) ] spids: [810 814 1086] ) ] spids: [807 1089] ) ] spids: [142 1092] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_svk)} {(svk)}) ] op_id: Op_DAmp ) ] )