(List (FunctionDef _adb_command_usage [] (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ &1 | command grep \"^ *\\(adb \\)\\? *$2 \" \\\n"> ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (AndOr OP_AND_IF (FunctionDef _adb [] (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]} ) ) (Case to_match={[VarSub prev]}, pat_word_list=[[{[LIT_CHARS -s]}, {[LIT_CHARS -p]}, {[LIT_CHARS --algo]}, {[LIT_CHARS --key]}, {[LIT_CHARS --iv]}], [{[LIT_CHARS -f]}]] (Com {[LIT_CHARS return]} ) (List (Com {[LIT_CHARS _filedir]} ) (Com {[LIT_CHARS return]} ) ) ) (= scope= flags=0 words=[{[LIT_CHARS cmd]}, {[LIT_CHARS i]}] bindings=[]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub cword]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (If (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub words bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]} {[LIT_CHARS -] [LIT_OTHER "*"]}} {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub words bracket_op=(Index {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}})]]} {[LIT_CHARS -] [LIT_DBRACKET_LIKE "["] [LIT_CHARS sp] [LIT_DBRACKET_LIKE "]"]}}}) (List (= scope= flags=0 words=[] bindings=[('cmd', {[DQ [VarSub words bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]})]) (Com {[LIT_CHARS break]} ) ) ) ) (If (DBracket {B! {B1 UNARY_STRING_n {[DQ [VarSub cmd]]}}}) (List (= scope= flags=0 words=[] bindings=[('tmp', {[Array ]})]) (If (DBracket {B? LOGICAL_BINARY_OR {B! {B1 UNARY_STRING_n {[VarSub cur]}}} {B2 BINARY_STRING_EQUAL {[VarSub cur]} {[LIT_CHARS -] [LIT_OTHER "*"]}}}) (= scope= flags=0 words=[] bindings=[('tmp+', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (If (DBracket {B? LOGICAL_BINARY_OR {B! {B1 UNARY_STRING_n {[VarSub cur]}}} {B2 BINARY_STRING_NOT_EQUAL {[VarSub cur]} {[LIT_CHARS -] [LIT_OTHER "*"]}}}) (List (= scope= flags=0 words=[] bindings=[('tmp+', {[Array {[ComSub (Pipeline (Com redirects=[(DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2)]{[VarSub 1]} {[LIT_CHARS help]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]}]})]) (= scope= flags=0 words=[] bindings=[('tmp+', {[Array {[LIT_CHARS devices]} {[LIT_CHARS connect]} {[LIT_CHARS disconnect]} {[LIT_CHARS sideload]}]})]) ) ) (= 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]} ) ) ) (Com {[LIT_CHARS _adb_command_usage]} {[DQ [VarSub 1]]} {[VarSub cmd]} ) (Case to_match={[VarSub cmd]}, pat_word_list=[[{[LIT_CHARS push]}, {[LIT_CHARS restore]}, {[LIT_CHARS sideload]}], [{[LIT_CHARS forward]}], [{[LIT_CHARS reboot]}]] (Com {[LIT_CHARS _filedir]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ &1 | sed -ne \"s/^ *adb *forward *-/-/p\" | \\\n"> ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _adb]} {[LIT_CHARS adb]} ) ) )