(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _patch body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)} {(split)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)} {(-s)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:30) ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {(-p)} {(--strip)} {(-D)} {(--ifdef)} {(-B)} {(--prefix)} {(-Y)} {(--basename-prefix)} {(-z)} {(--suffix)} {(-g)} {(--get)} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:69) ) ] spids: [41 66 72 -1] ) (case_arm pat_list: [{(-F)} {(--fuzz)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:82) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:84) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'{0..3}' span_id:91))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [81] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:105) ) ] spids: [75 78 108 -1] ) (case_arm pat_list: [{(-i)} {(--input)}] action: [ (C {(_filedir)} {(SQ (Token id:Id.Lit_Chars val:'@(?(d)patch|dif?(f))' span_id:120))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:124) ) ] spids: [111 114 127 -1] ) (case_arm pat_list: [{(-o)} {(--output)} {(-r)} {(--reject-file)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.LogicalNot child: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$cur')}) ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$cur')} right: {(-)} ) ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:159) words: [{(-)}] ) } spids: [158] ) ] ) ] ) (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:169) ) ] spids: [130 137 172 -1] ) (case_arm pat_list: [{(--quoting-style)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:180) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:182) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'literal shell shell-always c escape' span_id: 189 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [179] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:205) ) ] spids: [175 176 208 -1] ) (case_arm pat_list: [{(-V)} {(--version-control)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:218) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:220) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'simple numbered existing' span_id: 227 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [217] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:241) ) ] spids: [211 214 244 -1] ) (case_arm pat_list: [{(-d)} {(--directory)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:258) ) ] spids: [247 250 261 -1] ) (case_arm pat_list: [{(--reject-format)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:269) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:271) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'context unified' span_id: 278 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [268] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:292) ) ] spids: [264 265 295 -1] ) (case_arm pat_list: [{(--read-only)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:303) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:305) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'ignore warn fail' span_id: 312 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [302] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:326) ) ] spids: [298 299 329 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$split')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:340) ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$cur')} right: {(-) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:356) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:362) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:364) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( _parse_help "$1" )' span_id: 371 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [361] ) ] ) (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)}) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:405) ) ] spids: [344 358] ) ] ) (C {(local)} {(args)}) (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(1)}] action: [(C {(_filedir)})] spids: [427 428 434 -1] ) (case_arm pat_list: [{(2)}] action: [ (C {(_filedir)} {(SQ (Token id:Id.Lit_Chars val:'@(?(d)patch|dif?(f))' span_id:444))} ) ] spids: [437 438 448 -1] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_patch)} {(patch)}) ] )