(CommandList children: [ (FuncDef name: _dictdata body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(dict)} {($ VSub_Name '$host')} {($ VSub_Name '$port')} {($ VSub_Number '$1')}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[19])] ) (C {(sed)} {(-ne)} {(SQ <'s/^['>) (SQ <Lit_EscapedChar '\\t'> <' '>) (SQ <']\\{1,\\}\\([^ '>) (SQ <Lit_EscapedChar '\\t'>) (SQ <']*\\).*$/\\1/p'>) } ) ] negated: False ) ] spids: [8] ) spids: [4 7] ) (AndOr children: [ (FuncDef name: _dict body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[59]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[61]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[63]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[65]) ] spids: [57] ) (AndOr children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:host) op:Equal spids:[78]) (assign_pair lhs:(LhsName name:port) op:Equal spids:[80]) (assign_pair lhs:(LhsName name:db) op:Equal spids:[82]) (assign_pair lhs:(LhsName name:i) op:Equal spids:[84]) ] spids: [76] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:cword) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Case to_match: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [116 121] ) } arms: [ (case_arm pat_list: [{(-h)} {(--host)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [133 140] ) } spids: [132] ) ] spids: [132] ) (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$host')}) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: {(DQ ('-h ') ($ VSub_Name '$host'))} spids: [153] ) ] spids: [153] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (UnaryAssign op_id: Arith_DPlus child: (LhsName name:i) ) spids: [161 165] ) } spids: [160] ) ] spids: [160] ) ] spids: [126 129 168 16777215] ) (case_arm pat_list: [{(-p)} {(--port)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [178 185] ) } spids: [177] ) ] spids: [177] ) (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$port')}) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: {(DQ ('-p ') ($ VSub_Name '$port'))} spids: [198] ) ] spids: [198] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (UnaryAssign op_id: Arith_DPlus child: (LhsName name:i) ) spids: [206 210] ) } spids: [205] ) ] spids: [205] ) ] spids: [171 174 213 16777215] ) (case_arm pat_list: [{(-d)} {(--database)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:db) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [223 230] ) } spids: [222] ) ] spids: [222] ) (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$db')}) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: {(DQ ('-d ') ($ VSub_Name '$db'))} spids: [243] ) ] spids: [243] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (UnaryAssign op_id: Arith_DPlus child: (LhsName name:i) ) spids: [251 255] ) } spids: [250] ) ] spids: [250] ) ] spids: [216 219 258 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [261 262 265 16777215] ) ] spids: [114 123 268] ) ] spids: [111 271] ) ) (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" )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [297 313] ) } ] ) } spids: [294] ) ] spids: [294] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 291] ) ] spids: [16777215 323] ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-d)} {(--database)} {(-i)} {(-info)}] 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 <'$( _dictdata -D )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [347 363] ) } ] ) } spids: [344] ) ] spids: [344] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [334 341 373 16777215] ) (case_arm pat_list: [{(-s)} {(--strategy)}] 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 <'$( _dictdata -S )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [385 401] ) } ] ) } spids: [382] ) ] spids: [382] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [376 379 411 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [414 415 418 16777215] ) ] spids: [327 331 421] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dictfile) op: Equal rhs: {(/usr/share/dict/words)} spids: [427] ) ] spids: [425] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_r child:{($ VSub_Name '$dictfile')}) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$cur')} right: {(ExtGlobPart op:<ExtGlob_Plus '+('> spids:[465 467])} ) ) 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 < '$( command grep "^${cur//./\\\\.}" $dictfile )' > ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [478 496] ) } ] ) } spids: [475] ) ] spids: [475] ) ] spids: [16777215 472] ) ] else_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 <'$( cat $dictfile )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [507 523] ) } ] ) } spids: [504] ) ] spids: [504] ) ] spids: [501 528] ) ] spids: [16777215 442] ) ] spids: [16777215 531] ) ] spids: [54] ) spids: [50 53] ) (C {(complete)} {(-F)} {(_dict)} {(-o)} {(default)} {(dict)} {(rdict)}) ] op_id: Op_DAmp ) ] )