(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(_have)} {(grep-status)}) (command.BraceGroup children: [ (command.ShFunction name: _comp_dpkg_installed_packages body: (command.BraceGroup children: [ (C {(grep-status)} {(-P)} {(-e)} {(DQ ('^') ($ Id.VSub_Number '$1'))} {(-a)} {(-FStatus)} {(SQ (Token id:Id.Lit_Chars val:'install ok installed' span_id:35))} {(-n)} {(-s)} {(Package)} ) ] ) ) ] ) (command.BraceGroup children: [ (command.ShFunction name: _comp_dpkg_installed_packages body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.Simple words: [ {(command)} {(grep)} {(-A)} {(1)} {(DQ ('Package: ') ($ Id.VSub_Number '$1'))} {(/var/lib/dpkg/status)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:74) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(command)} {(grep)} {(-B)} {(1)} {(-Ee)} { (DQ ('ok installed|half-installed|unpacked| ') (' half-configured') ) } {(-Ee)} {(DQ ('^Essential: yes'))} ) (command.Simple words: [ {(awk)} { (DQ ('/Package: ') ($ Id.VSub_Number '$1') ('/ { print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:115) ) ('2 }') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:119) fd: 2 arg_word: {(/dev/null)} ) ] ) ] negated: F ) ] ) ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(_have)} {(grep-status)}) (command.BraceGroup children: [ (command.ShFunction name: _comp_dpkg_purgeable_packages body: (command.BraceGroup children: [ (C {(grep-status)} {(-P)} {(-e)} {(DQ ('^') ($ Id.VSub_Number '$1'))} {(-a)} {(-FStatus)} {(SQ (Token id:Id.Lit_Chars val:'install ok installed' span_id:158))} {(-o)} {(-FStatus)} {(SQ (Token id:Id.Lit_Chars val:'deinstall ok config-files' span_id:166))} {(-n)} {(-s)} {(Package)} ) ] ) ) ] ) (command.BraceGroup children: [ (command.ShFunction name: _comp_dpkg_purgeable_packages body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.Simple words: [ {(command)} {(grep)} {(-A)} {(1)} {(DQ ('Package: ') ($ Id.VSub_Number '$1'))} {(/var/lib/dpkg/status)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:205) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(command)} {(grep)} {(-B)} {(1)} {(-Ee)} { (DQ ('ok installed|half-installed|unpacked| ') (' half-configured|config-files') ) } {(-Ee)} {(DQ ('^Essential: yes'))} ) (command.Simple words: [ {(awk)} { (DQ ('/Package: ') ($ Id.VSub_Number '$1') ('/ { print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:246) ) ('2 }') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:250) fd: 2 arg_word: {(/dev/null)} ) ] ) ] negated: F ) ] ) ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _dpkg 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:290) ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_expand)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:298) arg_word: {(0)} ) ] ) (C {(local)} {(Id.Lit_VarLike 'i=') ($ Id.VSub_DollarName '$cword')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$cur')} right: {(-) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:327) ) ] action: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:332) cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$prev')} right: {(-) (Id.Lit_Other '*')} ) right: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName '$i')} right: {(1)} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:352) ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 359 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [357] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prev) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:368) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 370 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) } spids: [366] ) ] ) ] ) ) ] spids: [315 329] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {(-c)} {(-i)} {(-A)} {(-I)} {(-f)} {(-e)} {(-x)} {(-X)} {(-W)} {(--install)} {(--unpack)} {(--record-avail)} {(--contents)} {(--info)} {(--fsys-tarfile)} {(--field)} {(--control)} {(--extract)} {(--show)} ] action: [ (C {(_filedir)} {(SQ (Token id:Id.Lit_Chars val:'?(u|d)deb' span_id:440))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:444) arg_word: {(0)} ) ] spids: [391 434 449 -1] ) (case_arm pat_list: [{(-b)} {(--build)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:463) arg_word: {(0)} ) ] spids: [452 455 468 -1] ) (case_arm pat_list: [{(-s)} {(-p)} {(-l)} {(--status)} {(--print-avail)} {(--list)}] 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:486) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 488 ) command_list: (command.CommandList children: [ (command.Simple words: [ {(apt-cache)} {(pkgnames)} {(DQ ($ Id.VSub_DollarName '$cur'))} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 498 ) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ] ) } spids: [485] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:506) arg_word: {(0)} ) ] spids: [471 482 511 -1] ) (case_arm pat_list: [{(-S)} {(--search)}] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:523) arg_word: {(0)} ) ] spids: [514 517 528 -1] ) (case_arm pat_list: [{(-r)} {(--remove)}] 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:538) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 540 ) command_list: (command.CommandList children: [ (C {(_comp_dpkg_installed_packages)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [537] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:553) arg_word: {(0)} ) ] spids: [531 534 558 -1] ) (case_arm pat_list: [{(-L)} {(-P)} {(--listfiles)} {(--purge)}] 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:572) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 574 ) command_list: (command.CommandList children: [ (C {(_comp_dpkg_purgeable_packages)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [571] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:587) arg_word: {(0)} ) ] spids: [561 568 592 -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:603) ) ] ) (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:608) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:610) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( _parse_help "$1" )' span_id: 617 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [607] ) ] ) (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)}) ] ) ] ) ) (C {(complete)} {(-F)} {(_dpkg)} {(dpkg)} {(dpkg-deb)} {(dpkg-query)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _dpkg_reconfigure 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:695) ) ] ) (C {(local)} {(opt)}) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-f)} {(--frontend)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opt) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:719) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 721 ) command_list: (command.CommandList children: [ (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '%s\\n' span_id: 726 ) ) } {(/usr/share/perl5/Debconf/FrontEnd/) (Id.Lit_Star '*')} ) ] ) ) } ] ) } spids: [718] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opt) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:738) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:opt span_id:741) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (Id.Lit_Slash /)} ) ) } ] ) } spids: [737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opt) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:754) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:opt span_id:757) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {(.pm)} ) ) } ] ) } spids: [753] ) ] ) (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:769) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 771 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '${opt[@]}' span_id: 778 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [768] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:792) arg_word: {(0)} ) ] spids: [712 715 797 -1] ) (case_arm pat_list: [{(-p)} {(--priority)}] 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:807) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 809 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'low medium high critical' span_id: 816 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [806] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:830) arg_word: {(0)} ) ] spids: [800 803 835 -1] ) ] ) (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 '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:856) ) ] 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:862) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 864 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '--frontend --priority --all --unseen-only\n' span_id: 870 ) (Token id:Id.Lit_Chars val:' --help --showold --force --terse' span_id:871) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [861] ) ] ) ] spids: [842 858] ) ] 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:889) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:891) command_list: (command.CommandList children: [ (C {(_comp_dpkg_installed_packages)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [888] ) ] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_dpkg_reconfigure)} {(-o)} {(default)} {(dpkg-reconfigure)}) ] ) ] )