(command.CommandList children: [ (command.FuncDef name: _cvs_entries body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prefix spids:[13]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [14 19] ) (/) } spids: [13] ) (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[22]) op: Equal rhs: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [23 25] ) } spids: [22] ) ] spids: [11] ) (command.AndOr ops: [Op_DPipe] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_e child: { (word_part.BracedVarSub token: <VSub_Name prefix> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [32 35] ) (CVS/Entries) } ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prefix spids:[42]) op: Equal rhs: {(DQ )} spids: [42] ) ] spids: [42] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:entries spids:[47]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ {(cut)} {(-d/)} {(-f2)} {(-s)} { (word_part.BracedVarSub token: <VSub_Name prefix> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {} ) spids: [60 63] ) (CVS/Entries) } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [50 69] ) } ] ) } spids: [47] ) ] spids: [47] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.WordTest w:{($ VSub_DollarName '$entries')}) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:entries spids:[86]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (DQ (word_part.BracedVarSub token: <VSub_Name entries> bracket_op: (bracket_op.WholeArray op_id:Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: { (word_part.BracedVarSub token: <VSub_Name prefix> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {} ) spids: [98 101] ) } replace_mode: Lit_Pound spids: [95] ) spids: [90 102] ) ) } ] ) } spids: [86] ) ] spids: [86] ) (C {(compopt)} {(-o)} {(filenames)}) ] spids: [16777215 83] ) ] spids: [16777215 115] ) ] spids: [8] ) spids: [4 7] ) (command.FuncDef name: _cvs_modules body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {($ VSub_DollarName '$prefix')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[141]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(command)} {(ls)} {(-d)} {(${ VSub_Name cvsroot) (/) (${ VSub_Name prefix) (/) (word_part.ExtGlobPart op: <ExtGlob_Bang '!('> arms: [{(CVSROOT)}] spids: [160 162] ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [144 164] ) } ] ) } spids: [141] ) ] spids: [141] ) ] spids: [16777215 138] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[172]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(command)} {(ls)} {(-d)} {(${ VSub_Name cvsroot) (/) (word_part.ExtGlobPart op: <ExtGlob_Bang '!('> arms: [{(CVSROOT)}] spids: [187 189] ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [175 191] ) } ] ) } spids: [172] ) ] spids: [172] ) ] spids: [169 196] ) ] spids: [124] ) spids: [120 123] ) (command.FuncDef name: _cvs_commands body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.SimpleCommand words: [{(cvs)} {(--help-commands)}] redirects: [(redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})] ) (C {(awk)} {(SQ <'/^( *|\\t)/ { print $1 }'>)}) ] negated: F ) ] spids: [205] ) spids: [201 204] ) (command.FuncDef name: _cvs_command_options body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[233]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( _parse_help "$1" "--help $2" )'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [236 252] ) } ] ) } spids: [233] ) ] spids: [233] ) ] spids: [230] ) spids: [226 229] ) (command.FuncDef name: _cvs_kflags body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[266]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'kv kvl k o b v'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [269 285] ) } ] ) } spids: [266] ) ] spids: [266] ) ] spids: [263] ) spids: [259 262] ) (command.FuncDef name: _cvs_roots body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroots spids:[303]) op: Equal spids: [303] ) ] spids: [299] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroots spids:[306]) op: Equal rhs: {(word_part.ArrayLiteralPart words:[{($ VSub_DollarName '$CVSROOT')}])} spids: [306] ) ] spids: [306] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id:BoolUnary_r child:{(Lit_TildeLike '~') (/.cvspass)}) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroots spids:[325]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(awk)} {(SQ <'{ print $2 }'>)} {(word_part.TildeSubPart token:<Lit_TildeLike '~'>) (/.cvspass) } ) ] ) left_token: <Left_CommandSub '$('> spids: [328 339] ) } ] ) } spids: [325] ) ] spids: [325] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id:BoolUnary_r child:{(CVS/Root)}) ) (command.SimpleCommand words: [ {(mapfile)} {(-tO)} { (word_part.BracedVarSub token: <VSub_Name cvsroots> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [358 364] ) } {(cvsroots)} ] redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(CVS/Root)})] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[373]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${cvsroots[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [376 392] ) } ] ) } spids: [373] ) ] spids: [373] ) (C {(__ltrim_colon_completions)} {(DQ ($ VSub_DollarName '$cur'))}) ] spids: [296] ) spids: [292 295] ) (command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _cvs body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[415]) op: Equal spids: [415] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[417]) op: Equal spids: [417] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[419]) op: Equal spids: [419] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[421]) op: Equal spids: [421] ) ] spids: [413] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-n)} {(Lit_Other ':')}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[438]) op: Equal spids: [438] ) (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[440]) op: Equal spids: [440] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[442]) op: Equal spids: [442] ) (assign_pair lhs: (lhs_expr.LhsName name:cvsroot spids:[444]) op: Equal spids: [444] ) (assign_pair lhs: (lhs_expr.LhsName name:cvsroots spids:[446]) op: Equal spids: [446] ) (assign_pair lhs: (lhs_expr.LhsName name:pwd spids:[448]) op: Equal spids: [448] ) ] spids: [436] ) (command.Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:flags spids:[455]) op: Equal spids: [455] ) (assign_pair lhs: (lhs_expr.LhsName name:files spids:[457]) op: Equal spids: [457] ) (assign_pair lhs: (lhs_expr.LhsName name:entries spids:[459]) op: Equal spids: [459] ) (assign_pair lhs: (lhs_expr.LhsName name:changed spids:[461]) op: Equal spids: [461] ) (assign_pair lhs: (lhs_expr.LhsName name:newremoved spids:[463]) op: Equal spids: [463] ) ] spids: [451] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[467]) op: Equal rhs: {(0)} spids: [467] ) ] spids: [467] ) (command.ForEach iter_name: i iter_words: [ { (DQ (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [478 483] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {($ VSub_DollarName '$count')} right: {($ VSub_DollarName '$cword')} ) ) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: <Lit_ArithVarLike count> ) ) spids: [514 523] ) ) } right: {(DQ ($ VSub_DollarName '$cvsroot'))} ) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$mode'))} right: {(cvsroot)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[548]) op: Equal rhs: {(DQ )} spids: [548] ) ] spids: [548] ) ] spids: [16777215 545] ) ] spids: [16777215 553] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {($ VSub_DollarName '$mode')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Case to_match: {($ VSub_DollarName '$i')} arms: [ (case_arm pat_list: [{(-H)} {(--help)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[583]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(_cvs_commands)}) ] ) left_token: <Left_CommandSub '$('> spids: [593 597] ) ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [586 606] ) } ] ) } spids: [583] ) ] spids: [583] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [577 580 616 16777215] ) (case_arm pat_list: [{(-d)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[623]) op: Equal rhs: {(cvsroot)} spids: [623] ) ] spids: [623] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroot spids:[627]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike count> ) right: (arith_expr.ArithWord w: {(Lit_Digits 1)} ) ) ) spids: [628 639] ) } spids: [627] ) ] spids: [627] ) ] spids: [619 620 642 16777215] ) (case_arm pat_list: [{(add)} {(ad)} {(new)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[653]) op: Equal rhs: {(add)} spids: [653] ) ] spids: [653] ) ] spids: [645 650 657 16777215] ) (case_arm pat_list: [{(admin)} {(adm)} {(rcs)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[668]) op: Equal rhs: {(admin)} spids: [668] ) ] spids: [668] ) ] spids: [660 665 672 16777215] ) (case_arm pat_list: [ {(annotate)} {(ann)} {(blame)} {(rannotate)} {(rann)} {(ra)} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[689]) op: Equal rhs: {(annotate)} spids: [689] ) ] spids: [689] ) ] spids: [675 686 693 16777215] ) (case_arm pat_list: [{(checkout)} {(co)} {(get)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[704]) op: Equal rhs: {(checkout)} spids: [704] ) ] spids: [704] ) ] spids: [696 701 708 16777215] ) (case_arm pat_list: [{(commit)} {(ci)} {(com)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[719]) op: Equal rhs: {(commit)} spids: [719] ) ] spids: [719] ) ] spids: [711 716 723 16777215] ) (case_arm pat_list: [{(diff)} {(di)} {(dif)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[734]) op: Equal rhs: {(diff)} spids: [734] ) ] spids: [734] ) ] spids: [726 731 738 16777215] ) (case_arm pat_list: [{(export)} {(ex)} {(exp)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[749]) op: Equal rhs: {(export)} spids: [749] ) ] spids: [749] ) ] spids: [741 746 753 16777215] ) (case_arm pat_list: [ {(edit)} {(unedit)} {(editors)} {(logout)} {(pserver)} {(server)} {(watch)} {(watchers)} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[774]) op: Equal rhs: {($ VSub_DollarName '$i')} spids: [774] ) ] spids: [774] ) ] spids: [756 771 778 16777215] ) (case_arm pat_list: [{(history)} {(hi)} {(his)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[789]) op: Equal rhs: {(history)} spids: [789] ) ] spids: [789] ) ] spids: [781 786 793 16777215] ) (case_arm pat_list: [{(import)} {(im)} {(imp)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[804]) op: Equal rhs: {(import)} spids: [804] ) ] spids: [804] ) ] spids: [796 801 808 16777215] ) (case_arm pat_list: [{(log)} {(lo)} {(rlog)} {(rl)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[821]) op: Equal rhs: {(log)} spids: [821] ) ] spids: [821] ) ] spids: [811 818 825 16777215] ) (case_arm pat_list: [{(login)} {(logon)} {(lgn)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[836]) op: Equal rhs: {(login)} spids: [836] ) ] spids: [836] ) ] spids: [828 833 840 16777215] ) (case_arm pat_list: [{(rdiff)} {(patch)} {(pa)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[851]) op: Equal rhs: {(rdiff)} spids: [851] ) ] spids: [851] ) ] spids: [843 848 855 16777215] ) (case_arm pat_list: [{(release)} {(re)} {(rel)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[866]) op: Equal rhs: {(release)} spids: [866] ) ] spids: [866] ) ] spids: [858 863 870 16777215] ) (case_arm pat_list: [{(remove)} {(rm)} {(delete)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[881]) op: Equal rhs: {(remove)} spids: [881] ) ] spids: [881] ) ] spids: [873 878 885 16777215] ) (case_arm pat_list: [{(rtag)} {(rt)} {(rfreeze)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[896]) op: Equal rhs: {(rtag)} spids: [896] ) ] spids: [896] ) ] spids: [888 893 900 16777215] ) (case_arm pat_list: [{(status)} {(st)} {(stat)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[911]) op: Equal rhs: {(status)} spids: [911] ) ] spids: [911] ) ] spids: [903 908 915 16777215] ) (case_arm pat_list: [{(tag)} {(ta)} {(freeze)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[926]) op: Equal rhs: {(tag)} spids: [926] ) ] spids: [926] ) ] spids: [918 923 930 16777215] ) (case_arm pat_list: [{(update)} {(up)} {(upd)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[941]) op: Equal rhs: {(update)} spids: [941] ) ] spids: [941] ) ] spids: [933 938 945 16777215] ) (case_arm pat_list: [{(version)} {(ve)} {(ver)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode spids:[956]) op: Equal rhs: {(version)} spids: [956] ) ] spids: [956] ) ] spids: [948 953 960 16777215] ) ] spids: [570 574 963] ) ] spids: [16777215 567] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$i'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:flags spids:[985]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [{($ VSub_DollarName '$i')}] ) } spids: [985] ) ] spids: [985] ) ] spids: [966 982] ) ] spids: [16777215 993] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[996]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.UnaryAssign op_id: Arith_DPlus child: (lhs_expr.LhsName name:count spids:[999]) ) spids: [997 1001] ) } spids: [996] ) ] spids: [996] ) ] spids: [487 1004] ) spids: [476 485] ) (command.Case to_match: {($ VSub_DollarName '$mode')} arms: [ (case_arm pat_list: [{(add)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-m)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1026 1027 1035 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1038 1039 1050 16777215] ) ] spids: [1019 1023 1053] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_entries)}) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {($ VSub_DollarName '$cur')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:files spids:[1089]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.ExtGlobPart op: <ExtGlob_Bang '!('> arms: [{(CVS)}] spids: [1092 1094] ) } ] ) } spids: [1089] ) ] spids: [1089] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:files spids:[1102]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ {(command)} {(ls)} {(-d)} {(${ VSub_Name cur) (Lit_Other '*')} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1105 1121] ) } ] ) } spids: [1102] ) ] spids: [1102] ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:f spids:[1128]) op: Equal spids: [1128] ) ] spids: [1126] ) (command.ForEach iter_name: i iter_words: [ { (word_part.BracedVarSub token: <VSub_Name files> prefix_op: VSub_Bang bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [1137 1143] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: { (word_part.BracedVarSub token: <VSub_Name files> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) ) spids: [1153 1158] ) } right: { (word_part.ExtGlobPart op: <ExtGlob_QMark '?('> arms: [{(Lit_Other '*') (/)}] spids: [1162 1165] ) (CVS) } ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(unset)} {(SQ <'files[i]'>)})] spids: [16777215 1171] ) ] else_action: [ (command.ForEach iter_name: f iter_words: [ { (DQ (word_part.BracedVarSub token: <VSub_Name entries> bracket_op: (bracket_op.WholeArray op_id: Lit_At ) spids: [1191 1196] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: { (word_part.BracedVarSub token: <VSub_Name files> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: < Lit_ArithVarLike i > ) ) spids: [1207 1212] ) } right: { ($ VSub_DollarName '$f') } ) right: (bool_expr.LogicalNot child: (bool_expr.BoolUnary op_id: BoolUnary_d child: { ($ VSub_DollarName '$f' ) } ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(unset)} {(SQ <'files[i]'>)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 1229] ) ] spids: [16777215 1242] ) ] spids: [1200 1245] ) spids: [1189 1198] ) ] spids: [1181 1248] ) ] spids: [1146 1251] ) spids: [1136 1144] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1254]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-X)} {(DQ ($ VSub_DollarName '$_backup_glob'))} {(-W)} {(SQ <'${files[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1257 1281] ) } ] ) } spids: [1254] ) ] spids: [1254] ) ] spids: [16777215 1073] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [1286 1298] ) ] spids: [1015 1016 1301 16777215] ) (case_arm pat_list: [{(admin)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {(-a)} {(-A)} {(-b)} {(-c)} {(-e)} {(-l)} {(-m)} {(-n)} {(-N)} {(-o)} {(-s)} {(-t-)} {(-u)} ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1315 1340 1348 16777215] ) (case_arm pat_list: [{(-t)}] action: [ (C {(_filedir)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1351 1352 1363 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1366 1367 1378 16777215] ) ] spids: [1308 1312 1381] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [16777215 1401] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1419]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1422 1438] ) } ] ) } spids: [1419] ) ] spids: [1419] ) ] spids: [1413 1443] ) ] spids: [1304 1305 1446 16777215] ) (case_arm pat_list: [{(annotate)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$prev'))} right: {(-) (Lit_Other '[') (rD) (Lit_Other ']')} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [16777215 1492] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1510]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1513 1529] ) } ] ) } spids: [1510] ) ] spids: [1510] ) ] spids: [1504 1534] ) ] spids: [1449 1450 1537 16777215] ) (case_arm pat_list: [{(checkout)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-r)} {(-D)} {(-j)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1551 1556 1564 16777215] ) (case_arm pat_list: [{(-d)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1567 1568 1581 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1584 1585 1596 16777215] ) ] spids: [1544 1548 1599] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {($ VSub_DollarName '$cvsroot')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroot spids:[1632]) op: Equal rhs: {($ VSub_DollarName '$CVSROOT')} spids: [1632] ) ] spids: [1632] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1636]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(cvs)} {(-d)} {(DQ ($ VSub_DollarName '$cvsroot'))} {(co)} {(-c)} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1639 1667] ) } ] ) } spids: [1636] ) ] spids: [1636] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1672]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${COMPREPLY[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1675 1691] ) } ] ) } spids: [1672] ) ] spids: [1672] ) ] spids: [16777215 1619] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [1696 1708] ) ] spids: [1540 1541 1711 16777215] ) (case_arm pat_list: [{(commit)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-m)} {(-r)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1725 1728 1736 16777215] ) (case_arm pat_list: [{(-F)}] action: [ (C {(_filedir)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1739 1740 1751 16777215] ) ] spids: [1718 1722 1754] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: { (word_part.BracedVarSub token: <VSub_Name COMP_CVS_REMOTE> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {} ) spids: [1795 1798] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:changed spids:[1818]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(cvs)} {(-q)} {(diff)} {(--brief)} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) (C {(sed)} {(-ne)} { (SQ < 's/^Files [^ ]* and \\([^ ]*\\) differ$/\\1/p' > ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1821 1846] ) } ] ) } spids: [1818] ) ] spids: [1818] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:newremoved spids:[1851]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(cvs)} {(-q)} {(diff)} {(--brief)} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) (C {(sed)} {(-ne)} { (SQ < 's/^cvs diff: \\([^ ]*\\) .*, no comparison available$/\\1/p' > ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1854 1879] ) } ] ) } spids: [1851] ) ] spids: [1851] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1884]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'${changed[@]:-} \\\n'> < ' ${newremoved[@]:-}' > ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1887 1904] ) } ] ) } spids: [1884] ) ] spids: [1884] ) ] spids: [16777215 1803] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1915]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1918 1934] ) } ] ) } spids: [1915] ) ] spids: [1915] ) ] spids: [1909 1939] ) ] spids: [16777215 1774] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [1942 1954] ) ] spids: [1714 1715 1957 16777215] ) (case_arm pat_list: [{(cvsroot)}] action: [(C {(_cvs_roots)})] spids: [1960 1961 1967 16777215] ) (case_arm pat_list: [{(diff)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$COMPREPLY')} right: {(Lit_Other '*') (BoolBinary_GlobEqual '=')} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) ] spids: [16777215 1990] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2028]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]:-}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2031 2047] ) } ] ) } spids: [2028] ) ] spids: [2028] ) ] spids: [2022 2052] ) ] spids: [1970 1971 2055 16777215] ) (case_arm pat_list: [{(editors)} {(watchers)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [16777215 2080] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2098]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2101 2117] ) } ] ) } spids: [2098] ) ] spids: [2098] ) ] spids: [2092 2122] ) ] spids: [2058 2061 2125 16777215] ) (case_arm pat_list: [{(export)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-r)} {(-D)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2139 2142 2150 16777215] ) (case_arm pat_list: [{(-d)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2153 2154 2167 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2170 2171 2182 16777215] ) ] spids: [2132 2136 2185] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {($ VSub_DollarName '$cvsroot')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroot spids:[2218]) op: Equal rhs: {($ VSub_DollarName '$CVSROOT')} spids: [2218] ) ] spids: [2218] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2222]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cvs)} {(-d)} {(DQ ($ VSub_DollarName '$cvsroot'))} {(co)} {(-c)} ) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2225 2247] ) } ] ) } spids: [2222] ) ] spids: [2222] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2252]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${COMPREPLY[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2255 2271] ) } ] ) } spids: [2252] ) ] spids: [2252] ) ] spids: [16777215 2205] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [2276 2288] ) ] spids: [2128 2129 2291 16777215] ) (case_arm pat_list: [{(import)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-I)} {(-b)} {(-m)} {(-W)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2305 2312 2320 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2323 2324 2335 16777215] ) ] spids: [2298 2302 2338] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {($ VSub_DollarName '$cvsroot')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cvsroot spids:[2375]) op: Equal rhs: {($ VSub_DollarName '$CVSROOT')} spids: [2375] ) ] spids: [2375] ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prefix spids:[2381]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [2382 2387] ) } spids: [2381] ) ] spids: [2379] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_r child: {(${ VSub_Name cvsroot) (/) (${ VSub_Name prefix)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_modules)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2413]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.WholeArray op_id: Lit_At ) suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {($ VSub_DollarName '$cvsroot')} ) spids: [2416 2423] ) } ] ) } spids: [2413] ) ] spids: [2413] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2428]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.WholeArray op_id: Lit_At ) suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\/'> ) } ) spids: [2431 2438] ) } ] ) } spids: [2428] ) ] spids: [2428] ) ] spids: [16777215 2407] ) ] spids: [16777215 2443] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pwd spids:[2446]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(pwd)})] ) left_token: <Left_CommandSub '$('> spids: [2447 2451] ) } spids: [2446] ) ] spids: [2446] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pwd spids:[2454]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name pwd> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [2455 2460] ) } spids: [2454] ) ] spids: [2454] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2463]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${COMPREPLY[@]} $pwd'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2466 2482] ) } ] ) } spids: [2463] ) ] spids: [2463] ) ] spids: [16777215 2358] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [2487 2499] ) ] spids: [2294 2295 2502 16777215] ) (case_arm pat_list: [{(remove)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_entries)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$prev'))} right: {(BoolUnary_f -f)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ForEach iter_name: i iter_words: [ { (word_part.BracedVarSub token: <VSub_Name entries> prefix_op: VSub_Bang bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [2559 2565] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_r child: { (DQ (word_part.BracedVarSub token: <VSub_Name entries> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) ) spids: [2576 2581] ) ) } ) ) (C {(unset)} {(SQ <'entries[i]'>)}) ] ) ] spids: [2568 2595] ) spids: [2558 2566] ) ] spids: [16777215 2546] ) ] spids: [16777215 2598] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2601]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]:-}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2604 2620] ) } ] ) } spids: [2601] ) ] spids: [2601] ) ] spids: [16777215 2525] ) ] else_action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [2625 2637] ) ] spids: [2505 2506 2640 16777215] ) (case_arm pat_list: [{(update)}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-r)} {(-D)} {(-j)} {(-I)} {(-W)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2654 2663 2671 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (C {(_cvs_kflags)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2674 2675 2686 16777215] ) ] spids: [2647 2651 2689] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_cvs_command_options)} {(DQ ($ VSub_Number '$1'))} {($ VSub_DollarName '$mode')} ) ] spids: [16777215 2709] ) ] else_action: [ (C {(_cvs_entries)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2727]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'${entries[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2730 2746] ) } ] ) } spids: [2727] ) ] spids: [2727] ) ] spids: [2721 2751] ) ] spids: [2643 2644 2754 16777215] ) (case_arm pat_list: [{(DQ )}] action: [ (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-T)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2769 2770 2783 16777215] ) (case_arm pat_list: [{(-e)} {(-s)}] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2786 2789 2797 16777215] ) (case_arm pat_list: [{(-z)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2804]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'{1..9}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2807 2823] ) } ] ) } spids: [2804] ) ] spids: [2804] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [2800 2801 2833 16777215] ) ] spids: [2762 2766 2836] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2840]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'$( _cvs_commands )\n'> < ' $( _parse_help "$1" --help-options ) --help --help-commands\n' > <' --help-options --version'> ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2843 2861] ) } ] ) } spids: [2840] ) ] spids: [2840] ) ] spids: [2757 2759 2866 16777215] ) ] spids: [1008 1012 2869] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [410] ) spids: [406 409] ) (C {(complete)} {(-F)} {(_cvs)} {(cvs)}) ] ) ] )