(CommandList children: [ (AndOr children: [ (FuncDef name: _iptables body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[13]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[15]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[17]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[19]) (assign_pair lhs:(LhsName name:split) op:Equal spids:[21]) ] spids: [11] ) (AndOr children: [ (C {(_init_completion)} {(-s)}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:table) op:Equal spids:[36]) (assign_pair lhs: (LhsName name:chain) op: Equal rhs: {(SQ <"s/^Chain \\([^ ]\\{1,\\}\\).*$/\\1/p">)} spids: [38] ) ] spids: [34] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name words> bracket_op: (WholeArray op_id:Lit_At) spids: [49 54] ) } right: {(Lit_Other "*") (BoolUnary_t -t) (EscapedLiteralPart token: <Lit_EscapedChar "\\ "> ) (Lit_Other "*") (filter) (Lit_Other "*") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:table) op: Equal rhs: {(DQ ("-t filter"))} spids: [71] ) ] spids: [71] ) ] spids: [-1 68] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name words> bracket_op: (WholeArray op_id:Lit_At) spids: [81 86] ) } right: {(Lit_Other "*") (BoolUnary_t -t) (EscapedLiteralPart token: <Lit_EscapedChar "\\ "> ) (Lit_Other "*") (nat) (Lit_Other "*") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:table) op: Equal rhs: {(DQ ("-t nat"))} spids: [103] ) ] spids: [103] ) ] spids: [77 100] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name words> bracket_op: (WholeArray op_id:Lit_At) spids: [113 118] ) } right: {(Lit_Other "*") (BoolUnary_t -t) (EscapedLiteralPart token: <Lit_EscapedChar "\\ "> ) (Lit_Other "*") (mangle) (Lit_Other "*") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:table) op: Equal rhs: {(DQ ("-t mangle"))} spids: [135] ) ] spids: [135] ) ] spids: [109 132] ) ] spids: [-1 141] ) (Case to_match: {($ VSub_Name "$prev")} arms: [ (case_arm pat_list: [{(-) (Lit_Other "*") (Lit_Other "[") (AIDRPFXLZ) (Lit_Other "]")}] 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 <"`iptables $table -nL | \\\n"> < " sed -ne \"s/^Chain \\([^ ]\\{1,\\}\\).*$/\\1/p\"`" > ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [163 180] ) } ] ) } spids: [160] ) ] spids: [160] ) ] spids: [152 157 185 -1] ) (case_arm pat_list: [{(-) (Lit_Other "*") (t)}] 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 <"nat filter mangle">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [197 213] ) } ] ) } spids: [194] ) ] spids: [194] ) ] spids: [188 191 218 -1] ) (case_arm pat_list: [{(-j)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$table"))} right: {(DQ ("-t filter"))} ) right: (BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_Name "$table"))} ) ) ) 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 <"ACCEPT DROP LOG ULOG REJECT\n"> < " `iptables $table -nL | sed -ne \"$chain\" \\\n" > <" -e \"s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//\"`"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [256 276] ) } ] ) } spids: [253] ) ] spids: [253] ) ] spids: [-1 250] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$table")} right: {(DQ ("-t nat"))} ) ) 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 < "ACCEPT DROP LOG ULOG REJECT MIRROR SNAT\n" > <" DNAT MASQUERADE `iptables $table -nL | \\\n"> < " sed -ne \"$chain\" -e \"s/OUTPUT|PREROUTING|POSTROUTING//\"`" > ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [302 322] ) } ] ) } spids: [299] ) ] spids: [299] ) ] spids: [281 296] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$table")} right: {(DQ ("-t mangle"))} ) ) 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 < "ACCEPT DROP LOG ULOG REJECT MARK TOS\n" > <" `iptables $table -nL | sed -ne \"$chain\" \\\n"> < " -e \"s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//\"`" > ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [348 368] ) } ] ) } spids: [345] ) ] spids: [345] ) ] spids: [327 342] ) ] spids: [-1 373] ) ] spids: [221 222 376 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (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 < "--in-interface --out-interface --source\n" > <" --destination --protocol --fragment --match --append --delete\n"> < " --insert --replace --list --flush --zero --new --delete-chain\n" > <" --policy --rename-chain --proto --source --destination\n"> < " --in-interface --jump --match --numeric --out-interface --table\n" > <" --verbose --line-numbers --exact --fragment --modprobe\n"> < " --set-counters --version" > ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [405 427] ) } ] ) } spids: [402] ) ] spids: [402] ) ] spids: [-1 399] ) ] spids: [-1 432] ) ] spids: [379 380 435 -1] ) ] spids: [145 149 438] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_iptables)} {(iptables)}) ] op_id: Op_DAmp ) ] )