(command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _iperf body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[13]) op: Equal spids: [13] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[15]) op: Equal spids: [15] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[17]) op: Equal spids: [17] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[19]) op: Equal spids: [19] ) (assign_pair lhs: (lhs_expr.LhsName name:split spids:[21]) op: Equal spids: [21] ) ] spids: [11] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-s)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {(-h)} {(--help)} {(-v)} {(--version)} {(-i)} {(--interval)} {(-l)} {(--len)} {(-p)} {(--port)} {(-w)} {(--window)} {(-M)} {(--mss)} {(-b)} {(--bandwidth)} {(-n)} {(--num)} {(-t)} {(--time)} {(-L)} {(--listenport)} {(-P)} {(--parallel)} {(-T)} {(--ttl)} {(-Z)} {(--linux-congestion)} ] action: [(command.ControlFlow token:<ControlFlow_Return return>)] spids: [41 100 106 16777215] ) (case_arm pat_list: [{(-f)} {(--format)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[115]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'k m K M'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [118 134] ) } ] ) } spids: [115] ) ] spids: [115] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [109 112 142 16777215] ) (case_arm pat_list: [{(-o)} {(--output)} {(-F)} {(--fileinput)}] action: [(C {(_filedir)}) (command.ControlFlow token:<ControlFlow_Return return>)] spids: [145 152 161 16777215] ) (case_arm pat_list: [{(-B)} {(--bind)}] action: [ (C {(_available_interfaces)} {(-a)}) (C {(_ip_addresses)}) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [164 167 181 16777215] ) (case_arm pat_list: [{(-c)} {(--client)}] action: [ (C {(_known_hosts_real)} {(DQ ($ VSub_DollarName '$cur'))}) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [184 187 200 16777215] ) (case_arm pat_list: [{(-x)} {(--reportexclude)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[209]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'C D M S V'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [212 228] ) } ] ) } spids: [209] ) ] spids: [209] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [203 206 236 16777215] ) (case_arm pat_list: [{(-y)} {(--reportstyle)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[245]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <C>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [248 264] ) } ] ) } spids: [245] ) ] spids: [245] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [239 242 272 16777215] ) ] spids: [34 38 275] ) (command.AndOr ops: [Op_DAmp] children: [ (C {($ VSub_DollarName '$split')}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[293]) op: Equal spids: [293] ) (assign_pair lhs: (lhs_expr.LhsName name:filter spids:[295]) op: Equal rhs: {(cat)} spids: [295] ) ] spids: [291] ) (command.ForEach iter_name: i iter_words: [ { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [305 310] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ VSub_DollarName '$i')} arms: [ (case_arm pat_list: [{(-s)} {(--server)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filter spids:[329]) op: Equal rhs: {(SQ <'sed -e /^Client.specific/,/^$/d'>)} spids: [329] ) ] spids: [329] ) ] spids: [323 326 335 16777215] ) (case_arm pat_list: [{(-c)} {(--client)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filter spids:[344]) op: Equal rhs: {(SQ <'sed -e /^Server.specific/,/^$/d'>)} spids: [344] ) ] spids: [344] ) ] spids: [338 341 350 16777215] ) ] spids: [316 320 353] ) ] spids: [313 356] ) spids: [304 311] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_DollarName '$filter')} right: {(cat)} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filter spids:[371]) op: PlusEqual rhs: {(SQ <' -e /--client/d -e /--server/d'>)} spids: [371] ) ] spids: [371] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[378]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( "$1" --help 2>&1 | $filter | _parse_help - )'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [381 399] ) } ] ) } spids: [378] ) ] spids: [378] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$COMPREPLY')} right: {(Lit_Other '*') (BoolBinary_GlobEqual '=')} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_iperf)} {(iperf)}) ] )