(CommandList children: [ (FuncDef name: _perlmodules body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-P)} {(DQ ($ VSub_Name '$prefix'))} {(-W)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(perl)} ) spids: [31 35] ) } { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [37 45] ) (/../helpers/perl) } {(modules)} {($ VSub_Name '$cur')} ) ] ) left_token: <Left_CommandSub '$('> spids: [29 52] ) ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [14 63] ) } ] ) } spids: [11] ) ] spids: [11] ) (C {(__ltrim_colon_completions)} {(DQ ($ VSub_Name '$prefix') ($ VSub_Name '$cur'))}) ] spids: [8] ) spids: [4 7] ) (FuncDef name: _perlfunctions body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-P)} {(DQ ($ VSub_Name '$prefix'))} {(-W)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(perl)} ) spids: [105 109] ) } { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [111 119] ) (/../helpers/perl) } {(functions)} {($ VSub_Name '$cur')} ) ] ) left_token: <Left_CommandSub '$('> spids: [103 126] ) ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [88 137] ) } ] ) } spids: [85] ) ] spids: [85] ) ] spids: [82] ) spids: [78 81] ) (AndOr ops: [Op_DAmp] children: [ (FuncDef name: _perl body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[153]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[155]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[157]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[159]) ] spids: [151] ) (AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-n)} {(Lit_Other ':')}) (ControlFlow token:<ControlFlow_Return return>) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ )} spids: [176] ) (assign_pair lhs:(LhsName name:temp) op:Equal spids:[180]) (assign_pair lhs: (LhsName name:optPrefix) op: Equal spids: [182] ) (assign_pair lhs: (LhsName name:optSuffix) op: Equal spids: [184] ) ] spids: [174] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '?') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {($ VSub_Name '$cur')} spids: [212] ) ] spids: [212] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (BracedVarSub token: <VSub_Name temp> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [217 223] ) } spids: [216] ) ] spids: [216] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: { (BracedVarSub token: <VSub_Name temp> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [227 231] ) } spids: [226] ) ] spids: [226] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$prev')} right: {(BoolUnary_d -d)} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(t) (Lit_Other '*')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: {(-dt)} spids: [259] ) ] spids: [259] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [264 268] ) } spids: [263] ) ] spids: [263] ) ] spids: [16777215 256] ) ] spids: [16777215 271] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:optPrefix) op: Equal rhs: {(-P) ($ VSub_Name '$prev')} spids: [274] ) ] spids: [274] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:optSuffix) op: Equal rhs: {(-S/)} spids: [279] ) ] spids: [279] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {($ VSub_Name '$prev')} spids: [283] ) ] spids: [283] ) ] spids: [16777215 209] ) ] spids: [16777215 287] ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-D)} {(-e)} {(-E)} {(-i)} {(-F)} {(-l)}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [298 309 317 16777215] ) (case_arm pat_list: [{(-I)} {(-x)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: { (SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [329 331] ) } spids: [328] ) ] spids: [326] ) (C {(compopt)} {(-o)} {(filenames)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-d)} {($ VSub_Name '$optPrefix')} {($ VSub_Name '$optSuffix')} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [344 360] ) } ] ) } spids: [341] ) ] spids: [341] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [320 323 370 16777215] ) (case_arm pat_list: [{(-m)} {(-M)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(-)}) spids: [381 385] ) ) } spids: [379] ) ] spids: [379] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: PlusEqual rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {($ VSub_Name '$temp')} ) spids: [391 395] ) ) } spids: [389] ) ] spids: [389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: {(DQ ($ VSub_Name '$temp'))} spids: [399] ) ] spids: [399] ) (C {(_perlmodules)} {($ VSub_Number '$1')}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [373 376 415 16777215] ) (case_arm pat_list: [{(-V)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(Lit_Other ':') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('+(:)')} ) spids: [441 445] ) ) } spids: [439] ) ] spids: [439] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: PlusEqual rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {($ VSub_Name '$temp')} ) spids: [451 455] ) ) } spids: [449] ) ] spids: [449] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: { (SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [462 464] ) } spids: [461] ) ] spids: [459] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-P)} {(DQ ($ VSub_Name '$prefix'))} {(-W)} { (SQ < '$( $1 -MConfig -e "print join \\"\\\\n\\",\n' > <' keys %Config::Config" 2>/dev/null )'> ) } {(--)} {(DQ ($ VSub_Name '$temp'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [470 495] ) } ] ) } spids: [467] ) ] spids: [467] ) (C {(__ltrim_colon_completions)} {(DQ ($ VSub_Name '$prefix') ($ VSub_Name '$temp'))} ) ] spids: [16777215 436] ) ] spids: [16777215 508] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [418 419 516 16777215] ) (case_arm pat_list: [{(-d)} {(-dt)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(Lit_Other ':') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(':')} ) spids: [544 548] ) ) } spids: [542] ) ] spids: [542] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: { (DQ ($ VSub_Name '$prefix') (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {($ VSub_Name '$temp')} ) spids: [555 559] ) ) } spids: [552] ) ] spids: [552] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: {(DQ ('Devel::') ($ VSub_Name '$temp'))} spids: [563] ) ] spids: [563] ) (C {(_perlmodules)} {($ VSub_Number '$1')}) ] spids: [16777215 539] ) ] spids: [16777215 575] ) ] spids: [519 522 578 16777215] ) ] spids: [291 295 581] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ < '-C -s -T -u -U -W -X -h -v -V -c -w -d -D -p\n' > <' -n -a -F -l -0 -I -m -M -P -S -x -i -e'> ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [607 624] ) } ] ) } spids: [604] ) ] spids: [604] ) ] spids: [16777215 601] ) ] else_action: [(C {(_filedir)})] spids: [629 635] ) ] spids: [148] ) spids: [144 147] ) (C {(complete)} {(-F)} {(_perl)} {(perl)}) ] ) (AndOr ops: [Op_DAmp] children: [ (FuncDef name: _perldoc body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[659]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[661]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[663]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[665]) ] spids: [657] ) (AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-n)} {(Lit_Other ':')}) (ControlFlow token:<ControlFlow_Return return>) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ )} spids: [682] ) (assign_pair lhs:(LhsName name:temp) op:Equal spids:[686]) ] spids: [680] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '?') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {($ VSub_Name '$cur')} spids: [714] ) ] spids: [714] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (BracedVarSub token: <VSub_Name temp> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [719 725] ) } spids: [718] ) ] spids: [718] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: { (BracedVarSub token: <VSub_Name temp> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [729 733] ) } spids: [728] ) ] spids: [728] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {($ VSub_Name '$prev')} spids: [736] ) ] spids: [736] ) ] spids: [16777215 711] ) ] spids: [16777215 740] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:perl) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(doc)}) spids: [748 752] ) ) } spids: [746] ) ] spids: [744] ) (AndOr ops: [Op_DPipe Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$perl')} right: {($ VSub_Number '$1')} ) ) (Pipeline children: [ (SimpleCommand words: [{(type)} {($ VSub_Name '$perl')}] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] negated: T ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:perl) op: Equal rhs: {(EmptyPart)} spids: [779] ) ] spids: [779] ) ] ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-h)} {(-V)} {(-n)} {(-o)} {(-M)} {(-w)} {(-L)}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [790 803 811 16777215] ) (case_arm pat_list: [{(-d)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [814 815 826 16777215] ) (case_arm pat_list: [{(-f)}] action: [ (C {(_perlfunctions)} {($ VSub_Name '$perl')}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [829 830 843 16777215] ) ] spids: [783 787 846] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( _parse_help "$1" -h )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [872 888] ) } ] ) } spids: [869] ) ] spids: [869] ) ] spids: [16777215 866] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[910 915]) (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_perlmodules)} {($ VSub_Name '$perl')}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(p) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ < '$( PERLDOC_PAGER=/bin/cat "$1" -u perl | \\\n' > <' sed -ne "/perl.*Perl overview/,/perlwin32/p" | \\\n'> < ' awk "\\$NF=2 && \\$1 ~ /^perl/ { print \\$1 }" )' > ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [949 971] ) } ] ) } spids: [946] ) ] spids: [946] ) ] spids: [16777215 943] ) ] spids: [16777215 976] ) ] spids: [16777215 921] ) ] spids: [16777215 979] ) (C {(_filedir)} {(SQ <'p@([lm]|od)'>)}) ] spids: [893 989] ) ] spids: [654] ) spids: [650 653] ) (C {(complete)} {(-F)} {(_perldoc)} {(-o)} {(bashdefault)} {(perldoc)}) ] ) ] )