(command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _rcs body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[13]) op: Equal spids: [13] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[15]) op: Equal spids: [15] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[17]) op: Equal spids: [17] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[19]) op: Equal spids: [19] ) ] spids: [11] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:file spids:[32]) op: Equal spids: [32] ) (assign_pair lhs: (lhs_expr.LhsName name:dir spids:[34]) op: Equal spids: [34] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[36]) op: Equal spids: [36] ) ] spids: [30] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:file spids:[40]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [41 46] ) } spids: [40] ) ] spids: [40] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dir spids:[49]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [50 55] ) } spids: [49] ) ] spids: [49] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$file')} right: {($ VSub_DollarName '$dir')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dir spids:[75]) op: Equal rhs: {(.)} spids: [75] ) ] spids: [75] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[80]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-f)} {(--)} { (DQ ($ VSub_DollarName '$dir') (/RCS/) ($ VSub_DollarName '$file') ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [83 97] ) } ] ) } spids: [80] ) ] spids: [80] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[107]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithBinary op_id: Arith_Less left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [116 122] ) } ) ) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[125]) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:file spids:[135]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) ) suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [136 144] ) } spids: [135] ) ] spids: [135] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dir spids:[147]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) ) suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(RCS) (Lit_Slash /) ('*')} ) spids: [148 157] ) } spids: [147] ) ] spids: [147] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsIndexedName name: COMPREPLY index: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) spids: [160] ) op: Equal rhs: {($ VSub_DollarName '$dir') ($ VSub_DollarName '$file')} spids: [160] ) ] spids: [160] ) ] spids: [132 167] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[171]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-G)} { (DQ ($ VSub_DollarName '$dir') (/) ($ VSub_DollarName '$file') ('*,v') ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [174 187] ) } ] ) } spids: [171] ) ] spids: [171] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[197]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithBinary op_id: Arith_Less left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [206 212] ) } ) ) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[215]) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsIndexedName name: COMPREPLY index: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) spids: [225] ) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) ) suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(',v')}) spids: [228 235] ) } spids: [225] ) ] spids: [225] ) ] spids: [222 238] ) ) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_eq left: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [252 258] ) } right: {(0)} ) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(ci)} ) ) ) (C {(_filedir)}) (C {(_filedir)} {(-d)}) ] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_rcs)} {(ci)} {(co)} {(rlog)} {(rcs)} {(rcsdiff)}) ] )