(CommandList children: [ (FuncDef name: _ri_get_methods body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:regex) op:Equal spids:[16])] spids: [14] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$ri_version')} right: {(integrated)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: {($ VSub_Name '$separator')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:regex) op: Equal rhs: {(DQ ('(Instance|Class)'))} spids: [50] ) ] spids: [50] ) ] spids: [16777215 47] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$separator')} right: {(DQ ('#'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:regex) op: Equal rhs: {(Instance)} spids: [74] ) ] spids: [74] ) ] spids: [56 71] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:regex) op: Equal rhs: {(Class)} spids: [81] ) ] spids: [81] ) ] spids: [78 85] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(ri)} { (BracedVarSub token: <VSub_Name classes> bracket_op: (WholeArray op_id:Lit_At) spids: [99 104] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [106] ) ] ) (SimpleCommand words: [ {(ruby)} {(-ane)} {(SQ <'if /^'>) (DQ ($ VSub_Name '$regex')) (SQ < ' methods:/.../^------------------|^$/ and \\\n' > <' /^ / then print $_.split(/, |,$/).grep(/^[^\\[]*$/).join("\\n"); \\\n'> <' end'> ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [129] ) ] ) (C {(sort)} {(-u)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [95 138] ) ) } ] ) } spids: [89] ) ] spids: [89] ) ] spids: [16777215 33] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ruby)} {(-W0)} {($ VSub_Name '$ri_path')} { (BracedVarSub token: <VSub_Name classes> bracket_op: (WholeArray op_id:Lit_At) spids: [169 174] ) } ) (C {(ruby)} {(-ane)} { (SQ < 'if /^-/.../^-/ and ! /^-/ and ! /^ +(class|module): / then \\\n' > <' print $_.split(/, |,$| +/).grep(/^[^\\[]*$/).join("\\n"); \\\n'> <' end'> ) } ) (C {(sort)} {(-u)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [161 196] ) ) } ] ) } spids: [155] ) ] spids: [155] ) ] spids: [144 202] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {($ VSub_Name '$prefix')} {(-W)} {(SQ <'${COMPREPLY[@]}'>)} {(--)} {($ VSub_Name '$method')} ) ] ) left_token: <Left_CommandSub '$('> spids: [208 224] ) } ] ) } spids: [205] ) ] spids: [205] ) ] spids: [11] ) spids: [7 10] ) (AndOr ops: [Op_DAmp] children: [ (FuncDef name: _ri body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[243]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[245]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[247]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[249]) ] spids: [241] ) (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:class) op:Equal spids:[266]) (assign_pair lhs:(LhsName name:method) op:Equal spids:[268]) (assign_pair lhs:(LhsName name:prefix) op:Equal spids:[270]) (assign_pair lhs:(LhsName name:ri_path) op:Equal spids:[272]) (assign_pair lhs: (LhsName name:ri_version) op: Equal spids: [274] ) (assign_pair lhs: (LhsName name:ri_major) op: Equal spids: [276] ) (assign_pair lhs: (LhsName name:separator) op: Equal spids: [278] ) (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[280]) ] spids: [264] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [(assign_pair lhs:(LhsName name:classes) op:Equal spids:[287])] spids: [283] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ri_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(type)} {(-p)} {(ri)})]) left_token: <Left_CommandSub '$('> spids: [292 298] ) } spids: [291] ) ] spids: [291] ) (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ri_version) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(ruby)} {(-W0)} {($ VSub_Name '$ri_path')} {(-v)}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [324] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [315 326] ) ) } spids: [313] ) ] spids: [313] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ri_version) op: Equal rhs: {(integrated)} spids: [331] ) ] spids: [331] ) ] ) (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$ri_version')} right: { (BracedVarSub token: <VSub_Name ri_version> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('200*')}) spids: [341 345] ) } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ri_version) op: Equal rhs: {(integrated)} spids: [351] ) ] spids: [351] ) ] ) (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$ri_version')} right: {(ri) (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (v) (Lit_Other '?') ('(') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (')') } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ri_major) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [383 388] ) } spids: [382] ) ] spids: [382] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: { (SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_Literals ', '> <Char_OneChar '\\n'> <Char_OneChar '\\t'>] ) } spids: [396] ) ] spids: [396] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(Lit_Other '[') (A-Z) (Lit_Other ']') (Lit_Other '*') (Lit_Other '[') (Lit_Pound '#') (.) (Lit_Other ']') (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DAmp Op_DPipe] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(Lit_Other '*') (Lit_Pound '#') (Lit_Other '*')} ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:separator) op: Equal rhs: {(Lit_Pound '#')} spids: [446] ) ] spids: [446] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:separator) op: Equal rhs: {(.)} spids: [451] ) ] spids: [451] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:class) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {($ VSub_Name '$separator') ('*')} ) spids: [460 465] ) } spids: [459] ) ] spids: [459] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:method) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {('*') ($ VSub_Name '$separator')} ) spids: [469 474] ) } spids: [468] ) ] spids: [468] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:classes) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$class')}])} spids: [477] ) ] spids: [477] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ ('-P ') ($ VSub_Name '$class') ($ VSub_Name '$separator'))} spids: [485] ) ] spids: [485] ) (C {(_ri_get_methods)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 427] ) ] spids: [16777215 501] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$ri_version')} right: {(integrated)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:classes) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(ri)} {(-c)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [534] ) ] ) (SimpleCommand words: [ {(ruby)} {(-ne)} { (SQ <'if /^\\s*$/..$stdin.eof then \\\n'> < ' if /, [A-Z]+/ then print; end; end' > ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [548] ) ] ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [528 551] ) } ] ) } spids: [525] ) ] spids: [525] ) ] spids: [16777215 518] ) (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (WordTest w:{($ VSub_Name '$ri_major')}) right: (BoolBinary op_id: BoolBinary_ge left: {($ VSub_Name '$ri_major')} right: {(3)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:classes) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(ri)} {(-l)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [585] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [579 588] ) } ] ) } spids: [576] ) ] spids: [576] ) ] spids: [556 573] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$ri_version')} right: {(DQ ('ri 1.8a'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:classes) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ruby)} {(-W0)} {($ VSub_Name '$ri_path')}) (C {(ruby)} {(-ne)} {(SQ <'if /^'>) (DQ ("'")) (SQ <ri>) (DQ ("'")) (SQ <' has/..$stdin.eof then \\\n'> < ' if /^ .*[A-Z]/ then print; end; end' > ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [614 647] ) } ] ) } spids: [611] ) ] spids: [611] ) ] spids: [593 608] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:classes) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ruby)} {(-W0)} {($ VSub_Name '$ri_path')}) (C {(ruby)} {(-ne)} { (SQ <'if /^I have/..$stdin.eof then \\\n'> < ' if /^ .*[A-Z]/ then print; end; end' > ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [657 678] ) } ] ) } spids: [654] ) ] spids: [654] ) ] spids: [651 682] ) (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 <'${classes[@]}'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [689 705] ) } ] ) } spids: [686] ) ] spids: [686] ) (C {(__ltrim_colon_completions)} {(DQ ($ VSub_Name '$cur'))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(Lit_Other '[') (A-Z) (Lit_Other ']') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 736] ) ] spids: [16777215 748] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:method) op: Equal rhs: {($ VSub_Name '$cur')} spids: [756] ) ] spids: [756] ) (C {(_ri_get_methods)}) ] spids: [238] ) spids: [234 237] ) (C {(complete)} {(-F)} {(_ri)} {(ri)}) ] ) ] )