(command.CommandList children: [ (command.FuncDef name: _dictdata body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(dict)} {($ VSub_DollarName '$host')} {($ VSub_DollarName '$port')} {($ VSub_Number '$1')} ] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(sed)} {(-ne)} {(SQ <'s/^['>) (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\t'> <Char_Literals ' '>] spids: [33 36] ) (SQ <']\\{1,\\}\\([^ '>) (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\t'>] spids: [40 42] ) (SQ <']*\\).*$/\\1/p'>) } ) ] negated: F ) ] spids: [8] ) spids: [4 7] ) (command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _dict body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[59]) op: Equal spids: [59] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[61]) op: Equal spids: [61] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[63]) op: Equal spids: [63] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[65]) op: Equal spids: [65] ) ] spids: [57] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:host spids:[78]) op: Equal spids: [78] ) (assign_pair lhs: (lhs_expr.LhsName name:port spids:[80]) op: Equal spids: [80] ) (assign_pair lhs: (lhs_expr.LhsName name:db spids:[82]) op: Equal spids: [82] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[84]) op: Equal spids: [84] ) ] spids: [76] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[92]) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) cond: (arith_expr.ArithBinary op_id: Arith_Less left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithVarRef token:<Lit_ArithVarLike cword>) ) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[104]) ) body: (command.DoGroup children: [ (command.Case to_match: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) ) spids: [116 121] ) } arms: [ (case_arm pat_list: [{(-h)} {(--host)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:host spids:[132]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) spids: [133 140] ) } spids: [132] ) ] spids: [132] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {($ VSub_DollarName '$host')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:host spids:[153]) op: Equal rhs: {(DQ ('-h ') ($ VSub_DollarName '$host'))} spids: [153] ) ] spids: [153] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[160]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.UnaryAssign op_id: Arith_DPlus child: (lhs_expr.LhsName name:i spids:[163]) ) spids: [161 165] ) } spids: [160] ) ] spids: [160] ) ] spids: [126 129 168 16777215] ) (case_arm pat_list: [{(-p)} {(--port)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:port spids:[177]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) spids: [178 185] ) } spids: [177] ) ] spids: [177] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {($ VSub_DollarName '$port')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:port spids:[198]) op: Equal rhs: {(DQ ('-p ') ($ VSub_DollarName '$port'))} spids: [198] ) ] spids: [198] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[205]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.UnaryAssign op_id: Arith_DPlus child: (lhs_expr.LhsName name:i spids:[208]) ) spids: [206 210] ) } spids: [205] ) ] spids: [205] ) ] spids: [171 174 213 16777215] ) (case_arm pat_list: [{(-d)} {(--database)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:db spids:[222]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) spids: [223 230] ) } spids: [222] ) ] spids: [222] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {($ VSub_DollarName '$db')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:host spids:[243]) op: Equal rhs: {(DQ ('-d ') ($ VSub_DollarName '$db'))} spids: [243] ) ] spids: [243] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[250]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.UnaryAssign op_id: Arith_DPlus child: (lhs_expr.LhsName name:i spids:[253]) ) 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] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[294]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( _parse_help "$1" )'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [297 313] ) } ] ) } spids: [294] ) ] spids: [294] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 291] ) ] spids: [16777215 323] ) (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-d)} {(--database)} {(-i)} {(-info)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[344]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( _dictdata -D )'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [347 363] ) } ] ) } spids: [344] ) ] spids: [344] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [334 341 373 16777215] ) (case_arm pat_list: [{(-s)} {(--strategy)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[382]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( _dictdata -S )'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [385 401] ) } ] ) } spids: [382] ) ] spids: [382] ) (command.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] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dictfile spids:[427]) op: Equal rhs: {(/usr/share/dict/words)} spids: [427] ) ] spids: [425] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_r child: {($ VSub_DollarName '$dictfile')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$cur')} right: { (word_part.ExtGlobPart op: <ExtGlob_Plus '+('> arms: [{('[-A-Za-z0-9/.]')}] spids: [465 467] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[475]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ < '$( command grep "^${cur//./\\\\.}" $dictfile )' > ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [478 496] ) } ] ) } spids: [475] ) ] spids: [475] ) ] spids: [16777215 472] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[504]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( cat $dictfile )'>)} {(--)} {(DQ ($ VSub_DollarName '$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)}) ] ) ] )