(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _dpkg_source body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:26) ) ] ) (C {(local)} {(options)} {(work)} {(i)} {(action)} {(packopts)} {(unpackopts)} {(fields)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:packopts) op: assign_op.Equal rhs: { (DQ ('-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP ') (' -sU -sR') ) } spids: [48] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unpackopts) op: assign_op.Equal rhs: {(DQ ('-sp -sn -su'))} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (DQ ('-x -b ') ($ Id.VSub_DollarName '$packopts') (' ') ($ Id.VSub_DollarName '$unpackopts') ) } spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fields) op: assign_op.Equal rhs: { (DQ ('Format Source Version Binary Maintainer Uploader Architecture ') (' Standards-Version Build-Depends Files') ) } spids: [71] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:action) op: assign_op.Equal rhs: {(DQ (options))} spids: [80] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:95)) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:101) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:125) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } right: {(DQ (-x))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:138) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:action) op: assign_op.Equal rhs: {(unpack)} spids: [143] ) ] ) ] spids: [120 140] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:152) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } right: {(DQ (-b))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:165) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:action) op: assign_op.Equal rhs: {(pack)} spids: [170] ) ] ) ] spids: [147 167] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:179) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } right: {(DQ (-h))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:192) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:action) op: assign_op.Equal rhs: {(help)} spids: [197] ) ] ) ] spids: [174 194] ) ] ) ] ) ) (command.Case to_match: {($ Id.VSub_DollarName '$action')} arms: [ (case_arm pat_list: [{(unpack)}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-x)}] action: [ (C {(_filedir)} {(-d)}) (C {(_filedir)} {(SQ (Token id:Id.Lit_Chars val:dsc span_id:238))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:242) arg_word: {(0)} ) ] spids: [226 227 247 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] 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:255) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 257 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$unpackopts'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [254] ) ] ) (C {(_filedir)} {(-d)}) (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:286) arg_word: {(0)} ) ] spids: [250 251 291 -1] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:297) arg_word: {(0)} ) ] spids: [215 216 302 -1] ) (case_arm pat_list: [{(pack)}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-b)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:325) arg_word: {(0)} ) ] spids: [316 317 330 -1] ) (case_arm pat_list: [{(-c)} {(-l)} {(-T)} {(-i)} {(-I)}] action: [ (C {(_filedir)} {(-d)}) (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:377) arg_word: {(0)} ) ] spids: [333 342 382 -1] ) (case_arm pat_list: [{(-F)}] 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:394) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 396 ) command_list: (command.CommandList children: [ (C {(command)} {(ls)} {(/usr/lib/dpkg/parsechangelog)} ) ] ) ) } ] ) } spids: [393] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:409) arg_word: {(0)} ) ] spids: [385 386 414 -1] ) (case_arm pat_list: [{(-V)} {(-D)}] 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:436) ) } spids: [435] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:440) arg_word: {(0)} ) ] spids: [417 420 445 -1] ) (case_arm pat_list: [{(-D)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {(Id.Lit_Other '*') (Id.BoolBinary_GlobEqual '=') (Id.Lit_Other '*') } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:475) ) ] 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:485) ) } spids: [484] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:489) arg_word: {(0)} ) ] spids: [460 477] ) ] else_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:498) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 500 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$fields'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [497] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:521) arg_word: {(0)} ) ] ) ] spids: [448 449 529 -1] ) (case_arm pat_list: [{(-U)}] 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:545) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 547 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$fields'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [544] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:568) arg_word: {(0)} ) ] spids: [532 533 573 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] 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:581) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 583 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ ($ Id.VSub_DollarName '$packopts') (' ') ($ Id.VSub_DollarName '$unpackopts') ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [580] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:606) arg_word: {(0)} ) ] spids: [576 577 611 -1] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:617) arg_word: {(0)} ) ] spids: [305 306 622 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] 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:630) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:632) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$options'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [629] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:653) arg_word: {(0)} ) ] spids: [625 626 658 -1] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_dpkg_source)} {(dpkg-source)}) ] )