(command.CommandList children: [ (command.ShFunction name: _cvs_entries body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'prefix='> (braced_var_sub token: <Id.VSub_Name cur> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) <'/'> } {<Id.Lit_VarLike 'IFS='> (single_quoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] multiline: F ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: { (braced_var_sub token: <Id.VSub_Name prefix> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{}) ) <'CVS/Entries'> } ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prefix) op: assign_op.Equal rhs: {(DQ )} spids: [42] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:entries) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<cut>} {<'-d/'>} {<-f2>} {<-s>} { (braced_var_sub token: <Id.VSub_Name prefix> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{}) ) <'CVS/Entries'> } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ] ) } spids: [47] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$entries')}) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:entries) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_Name entries> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: { (braced_var_sub token: <Id.VSub_Name prefix> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {} ) ) } replace_mode: Id.Lit_Pound ) ) ) } ] ) } spids: [86] ) ] ) (C {<compopt>} {<-o>} {<filenames>}) ] spids: [74 83] ) ] ) ] ) ) (command.ShFunction name: _cvs_modules body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$prefix')} ) ) 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 '$('> child: (C {<command>} {<ls>} {<-d>} {(${ Id.VSub_Name cvsroot) <'/'> (${ Id.VSub_Name prefix) <'/'> (word_part.ExtGlob op:<Id.ExtGlob_Bang '!('> arms:[{<CVSROOT>}]) } ) ) } ] ) } spids: [141] ) ] ) ] spids: [127 138] ) ] 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 '$('> child: (C {<command>} {<ls>} {<-d>} {(${ Id.VSub_Name cvsroot) <'/'> (word_part.ExtGlob op: <Id.ExtGlob_Bang '!('> arms: [{<CVSROOT>}] ) } ) ) } ] ) } spids: [172] ) ] ) ] ) ] ) ) (command.ShFunction name: _cvs_commands body: (BraceGroup children: [ (command.Pipeline children: [ (command.Simple words: [{<cvs>} {<--help-commands>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) (C {<awk>} {(SQ <'/^( *|\\t)/ { print $1 }'>)}) ] negated: F ) ] ) ) (command.ShFunction name: _cvs_command_options body: (BraceGroup children: [ (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 <'$( _parse_help "$1" "--help $2" )'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [233] ) ] ) ] ) ) (command.ShFunction name: _cvs_kflags body: (BraceGroup children: [ (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 <'kv kvl k o b v'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [266] ) ] ) ] ) ) (command.ShFunction name: _cvs_roots body: (BraceGroup children: [ (C {<local>} {<-a>} {<cvsroots>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroots) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$CVSROOT')}] ) } spids: [306] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.cvspass'>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroots) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<awk>} {(SQ <'{ print $2 }'>)} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.cvspass'> } ) ) } ] ) } spids: [325] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_r child:{<'CVS/Root'>}) ) (command.Simple words: [ {<mapfile>} {<-tO>} { (braced_var_sub token: <Id.VSub_Name cvsroots> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } {<cvsroots>} ] redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'CVS/Root'>})] do_fork: T ) ] ) (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 <'${cvsroots[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [373] ) ] ) (C {<__ltrim_colon_completions>} {(DQ ($ Id.VSub_DollarName '$cur'))}) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _cvs body: (BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>} {<-n>} {<Id.Lit_Colon ':'>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<local>} {<count>} {<mode>} {<i>} {<cvsroot>} {<cvsroots>} {<pwd>}) (C {<local>} {<-a>} {<flags>} {<files>} {<entries>} {<changed>} {<newremoved>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: {<0>} spids: [467] ) ] ) (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_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName '$count')} right: {($ Id.VSub_DollarName '$cword')} ) ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike count> ) ) ) } right: {(DQ ($ Id.VSub_DollarName '$cvsroot'))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$mode'))} right: {<cvsroot>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {(DQ )} spids: [548] ) ] ) ] spids: [509 545] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$mode')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName '$i')} arms: [ (case_arm pat_list: [{<-H>} {<--help>}] 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>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_cvs_commands>}) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [583] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [577 580 616 -1] ) (case_arm pat_list: [{<-d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<cvsroot>} spids: [623] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroot) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike count> right: {<Id.Lit_Digits 1>} ) ) ) } spids: [627] ) ] ) ] spids: [619 620 642 -1] ) (case_arm pat_list: [{<add>} {<ad>} {<new>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<add>} spids: [653] ) ] ) ] spids: [645 650 657 -1] ) (case_arm pat_list: [{<admin>} {<adm>} {<rcs>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<admin>} spids: [668] ) ] ) ] spids: [660 665 672 -1] ) (case_arm pat_list: [ {<annotate>} {<ann>} {<blame>} {<rannotate>} {<rann>} {<ra>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<annotate>} spids: [689] ) ] ) ] spids: [675 686 693 -1] ) (case_arm pat_list: [{<checkout>} {<co>} {<get>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<checkout>} spids: [704] ) ] ) ] spids: [696 701 708 -1] ) (case_arm pat_list: [{<commit>} {<ci>} {<com>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<commit>} spids: [719] ) ] ) ] spids: [711 716 723 -1] ) (case_arm pat_list: [{<diff>} {<di>} {<dif>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<diff>} spids: [734] ) ] ) ] spids: [726 731 738 -1] ) (case_arm pat_list: [{<export>} {<ex>} {<exp>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<export>} spids: [749] ) ] ) ] spids: [741 746 753 -1] ) (case_arm pat_list: [ {<edit>} {<unedit>} {<editors>} {<logout>} {<pserver>} {<server>} {<watch>} {<watchers>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$i')} spids: [774] ) ] ) ] spids: [756 771 778 -1] ) (case_arm pat_list: [{<history>} {<hi>} {<his>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<history>} spids: [789] ) ] ) ] spids: [781 786 793 -1] ) (case_arm pat_list: [{<Id.KW_Import import>} {<im>} {<imp>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<Id.KW_Import import>} spids: [804] ) ] ) ] spids: [796 801 808 -1] ) (case_arm pat_list: [{<log>} {<lo>} {<rlog>} {<rl>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<log>} spids: [821] ) ] ) ] spids: [811 818 825 -1] ) (case_arm pat_list: [{<login>} {<logon>} {<lgn>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<login>} spids: [836] ) ] ) ] spids: [828 833 840 -1] ) (case_arm pat_list: [{<rdiff>} {<patch>} {<pa>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<rdiff>} spids: [851] ) ] ) ] spids: [843 848 855 -1] ) (case_arm pat_list: [{<release>} {<re>} {<rel>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<release>} spids: [866] ) ] ) ] spids: [858 863 870 -1] ) (case_arm pat_list: [{<remove>} {<rm>} {<delete>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<remove>} spids: [881] ) ] ) ] spids: [873 878 885 -1] ) (case_arm pat_list: [{<rtag>} {<rt>} {<rfreeze>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<rtag>} spids: [896] ) ] ) ] spids: [888 893 900 -1] ) (case_arm pat_list: [{<status>} {<st>} {<stat>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<status>} spids: [911] ) ] ) ] spids: [903 908 915 -1] ) (case_arm pat_list: [{<tag>} {<ta>} {<freeze>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<tag>} spids: [926] ) ] ) ] spids: [918 923 930 -1] ) (case_arm pat_list: [{<update>} {<up>} {<upd>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<update>} spids: [941] ) ] ) ] spids: [933 938 945 -1] ) (case_arm pat_list: [{<version>} {<ve>} {<ver>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {<version>} spids: [956] ) ] ) ] spids: [948 953 960 -1] ) ] ) ] spids: [556 567] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$i'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flags) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$i')}] ) } spids: [985] ) ] ) ] spids: [966 982] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.UnaryAssign op_id: Id.Arith_DPlus child: <Id.Lit_ArithVarLike count> ) ) } spids: [996] ) ] ) ] ) ) (command.Case to_match: {($ Id.VSub_DollarName '$mode')} arms: [ (case_arm pat_list: [{<add>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-m>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1026 1027 1035 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1038 1039 1050 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_cvs_entries>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$cur')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (word_part.ExtGlob op: <Id.ExtGlob_Bang '!('> arms: [{<CVS>}] ) } ] ) } spids: [1089] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<command>} {<ls>} {<-d>} {(${ Id.VSub_Name cur) <Id.Lit_Star '*'>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ] ) } spids: [1102] ) ] ) ] ) (C {<local>} {<f>}) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name files> prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name files> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike i> ) ) } right: { (word_part.ExtGlob op: <Id.ExtGlob_QMark '?('> arms: [{<Id.Lit_Other '*'> <'/'>}] ) <CVS> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<unset>} {(SQ <'files[i]'>)})] spids: [1149 1171] ) ] else_action: [ (command.ForEach iter_name: f iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name entries> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name files > bracket_op: (bracket_op.ArrayIndex expr: < Id.Lit_ArithVarLike i > ) ) } right: { ($ Id.VSub_DollarName '$f' ) } ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_d child: { ($ Id.VSub_DollarName '$f' ) } ) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<unset>} {(SQ <'files[i]'>)}) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [1203 1229] ) ] ) ] ) ) ] ) ] ) ) (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>} {<-X>} {(DQ ($ Id.VSub_DollarName '$_backup_glob'))} {<-W>} {(SQ <'${files[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1254] ) ] ) ] spids: [1057 1073] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [1015 1016 1301 -1] ) (case_arm pat_list: [{<admin>}] action: [ (command.Case to_match: {($ Id.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: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1315 1340 1348 -1] ) (case_arm pat_list: [{<-t>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1351 1352 1363 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1366 1367 1378 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] spids: [1385 1401] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1419] ) ] ) ] ) ] spids: [1304 1305 1446 -1] ) (case_arm pat_list: [{<annotate>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$prev'))} right: {<-> <Id.Lit_Other '['> <rD> <Id.Lit_Other ']'>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] spids: [1476 1492] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1510] ) ] ) ] ) ] spids: [1449 1450 1537 -1] ) (case_arm pat_list: [{<checkout>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-r>} {<-D>} {<-j>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1551 1556 1564 -1] ) (case_arm pat_list: [{<-d>}] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1567 1568 1581 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1584 1585 1596 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$cvsroot')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroot) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CVSROOT')} spids: [1632] ) ] ) ] ) (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.Pipeline children: [ (command.Simple words: [ {<cvs>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cvsroot'))} {<co>} {<-c>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) } ] ) } spids: [1636] ) ] ) (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 <'${COMPREPLY[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1672] ) ] ) ] spids: [1603 1619] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [1540 1541 1711 -1] ) (case_arm pat_list: [{<commit>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-m>} {<-r>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1725 1728 1736 -1] ) (case_arm pat_list: [{<-F>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1739 1740 1751 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name COMP_CVS_REMOTE> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:changed) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<cvs>} {<-q>} {<diff>} {<--brief>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<sed>} {<-ne>} { (SQ < 's/^Files [^ ]* and \\([^ ]*\\) differ$/\\1/p' > ) } ) ] negated: F ) ) } ] ) } spids: [1818] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:newremoved) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<cvs>} {<-q>} {<diff>} {<--brief>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<sed>} {<-ne>} { (SQ < 's/^cvs diff: \\([^ ]*\\) .*, no comparison available$/\\1/p' > ) } ) ] negated: F ) ) } ] ) } spids: [1851] ) ] ) (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 <'${changed[@]:-} \\\n'> < ' ${newremoved[@]:-}' > ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1884] ) ] ) ] spids: [1789 1803] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [1915] ) ] ) ] ) ] spids: [1758 1774] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [1714 1715 1957 -1] ) (case_arm pat_list: [{<cvsroot>}] action: [(C {<_cvs_roots>})] spids: [1960 1961 1967 -1] ) (case_arm pat_list: [{<diff>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$COMPREPLY')} right: {<Id.Lit_Other '*'> <Id.BoolBinary_GlobEqual '='>} ) ) (C {<compopt>} {<-o>} {<nospace>}) ] ) ] spids: [1974 1990] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]:-}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2028] ) ] ) ] ) ] spids: [1970 1971 2055 -1] ) (case_arm pat_list: [{<editors>} {<watchers>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] spids: [2064 2080] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2098] ) ] ) ] ) ] spids: [2058 2061 2125 -1] ) (case_arm pat_list: [{<export>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-r>} {<-D>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2139 2142 2150 -1] ) (case_arm pat_list: [{<-d>}] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2153 2154 2167 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2170 2171 2182 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$cvsroot')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroot) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CVSROOT')} spids: [2218] ) ] ) ] ) (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.Pipeline children: [ (C {<cvs>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cvsroot'))} {<co>} {<-c>} ) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) } ] ) } spids: [2222] ) ] ) (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 <'${COMPREPLY[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2252] ) ] ) ] spids: [2189 2205] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [2128 2129 2291 -1] ) (case_arm pat_list: [{<Id.KW_Import import>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-I>} {<-b>} {<-m>} {<-W>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2305 2312 2320 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2323 2324 2335 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$cvsroot')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cvsroot) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CVSROOT')} spids: [2375] ) ] ) ] ) (C {<local>} {<Id.Lit_VarLike 'prefix='> (braced_var_sub token: <Id.VSub_Name cur> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {(${ Id.VSub_Name cvsroot) <'/'> (${ Id.VSub_Name prefix) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_cvs_modules>}) (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: [ { (braced_var_sub token: <Id.VSub_Name COMPREPLY> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName '$cvsroot')} ) ) } ] ) } spids: [2413] ) ] ) (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: [ { (braced_var_sub token: <Id.VSub_Name COMPREPLY> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\/'> ) } ) ) } ] ) } spids: [2428] ) ] ) ] spids: [2390 2407] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pwd) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<pwd>}) ) } spids: [2446] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pwd) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name pwd> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) } spids: [2454] ) ] ) (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 <'${COMPREPLY[@]} $pwd'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2463] ) ] ) ] spids: [2342 2358] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [2294 2295 2502 -1] ) (case_arm pat_list: [{<remove>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_cvs_entries>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$prev'))} right: {<Id.BoolUnary_f -f>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name entries> 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.Unary op_id: Id.BoolUnary_r child: { (DQ (braced_var_sub token: <Id.VSub_Name entries> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike i> ) ) ) } ) ) (C {<unset>} {(SQ <'entries[i]'>)}) ] ) ] ) ) ] spids: [2531 2546] ) ] ) (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 <'${entries[@]:-}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2601] ) ] ) ] spids: [2509 2525] ) ] else_action: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] ) ] spids: [2505 2506 2640 -1] ) (case_arm pat_list: [{<update>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-r>} {<-D>} {<-j>} {<-I>} {<-W>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2654 2663 2671 -1] ) (case_arm pat_list: [{<-k>}] action: [ (C {<_cvs_kflags>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2674 2675 2686 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [ (C {<_cvs_command_options>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$mode')} ) ] spids: [2693 2709] ) ] else_action: [ (C {<_cvs_entries>}) (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 <'${entries[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2727] ) ] ) ] ) ] spids: [2643 2644 2754 -1] ) (case_arm pat_list: [{(DQ )}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-T>}] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2769 2770 2783 -1] ) (case_arm pat_list: [{<-e>} {<-s>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2786 2789 2797 -1] ) (case_arm pat_list: [{<-z>}] 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 <'{1..9}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2804] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2800 2801 2833 -1] ) ] ) (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 <'$( _cvs_commands )\n'> < ' $( _parse_help "$1" --help-options ) --help --help-commands\n' > <' --help-options --version'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) } ] ) } spids: [2840] ) ] ) ] spids: [2757 2759 2866 -1] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ) (C {<complete>} {<-F>} {<_cvs>} {<cvs>}) ] ) ] )