(AndOr OP_AND_IF (FunctionDef _sudo [] (List (= scope= flags=0 words=[{[LIT_CHARS cur]}, {[LIT_CHARS prev]}, {[LIT_CHARS words]}, {[LIT_CHARS cword]}] bindings=[]) (AndOr OP_OR_IF (Com {[LIT_CHARS _init_completion]} ) (Com {[LIT_CHARS return]} ) ) (= scope= flags=0 words=[{[LIT_CHARS i]}] bindings=[('mode', {[LIT_CHARS normal]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[LIT_OTHER "*"] [LIT_CHARS sudoedit]}}) (= scope= flags=0 words=[] bindings=[('mode', {[LIT_CHARS edit]})]) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub mode]} {[LIT_CHARS normal]}}) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}} {A2 AS_OP_LE {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub COMP_CWORD]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (List (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[VarSub COMP_WORDS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} {[LIT_CHARS -] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('PATH', {[VarSub PATH] [LIT_OTHER ":"] [LIT_CHARS /sbin] [LIT_OTHER ":"] [LIT_CHARS /usr/sbin] [LIT_OTHER ":"] [LIT_CHARS /usr/local/sbin]})]) (= scope= flags=0 words=[] bindings=[('root_command', {[VarSub COMP_WORDS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (Com {[LIT_CHARS _command_offset]} {[VarSub i]} ) (Com {[LIT_CHARS return]} ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub COMP_WORDS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} {[LIT_CHARS -e]}}) (List (= scope= flags=0 words=[] bindings=[('mode', {[LIT_CHARS edit]})]) (Com {[LIT_CHARS break]} ) ) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub COMP_WORDS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} {[LIT_CHARS -] [LIT_DBRACKET_LIKE "["] [LIT_CHARS uUgCp] [LIT_DBRACKET_LIKE "]"]}}) (DParen {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} }) ) ) ) ) (Case to_match={[DQ [VarSub prev]]}, pat_word_list=[[{[LIT_CHARS -u]}, {[LIT_CHARS -U]}], [{[LIT_CHARS -g]}], [{[LIT_CHARS -C]}, {[LIT_CHARS -p]}]] (List (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -u]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (Com {[LIT_CHARS return]} ) ) (List (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -g]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS return]} ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub cur]]} {[LIT_CHARS -] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (Com {[LIT_CHARS return]} ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub mode]} {[LIT_CHARS edit]}}) (Com {[LIT_CHARS _filedir]} ) ) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _sudo]} {[LIT_CHARS sudo]} {[LIT_CHARS sudoedit]} ) )