(AndOr OP_AND_IF (FunctionDef _protoc [] (List (= scope= flags=0 words=[{[LIT_CHARS cur]}, {[LIT_CHARS prev]}, {[LIT_CHARS words]}, {[LIT_CHARS cword]}, {[LIT_CHARS split]}] bindings=[]) (AndOr OP_OR_IF (Com {[LIT_CHARS _init_completion]} {[LIT_CHARS -s]} ) (Com {[LIT_CHARS return]} ) ) (Case to_match={[VarSub prev]}, pat_word_list=[[{[LIT_CHARS --proto_path]}, {[LIT_CHARS --cpp_out]}, {[LIT_CHARS --java_out]}, {[LIT_CHARS --python_out]}], [{[LIT_CHARS --version]}, {[LIT_CHARS -h]}, {[LIT_CHARS --help]}, {[LIT_CHARS --encode]}, {[LIT_CHARS --decode]}], [{[LIT_CHARS --descriptor_set_out]}], [{[LIT_CHARS --error_format]}], [{[LIT_CHARS --plugin]}]] (List (Com {[LIT_CHARS _filedir]} {[LIT_CHARS -d]} ) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS return]} ) (List (Com {[LIT_CHARS _filedir]} ) (Com {[LIT_CHARS return]} ) ) (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]} ) ) (List (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[VarSub cur]} {[LIT_OTHER "*"] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}}) (List (Com {[LIT_CHARS compopt]} {[LIT_CHARS -o]} {[LIT_CHARS filenames]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -c]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) ) (Com {[LIT_CHARS return]} ) ) ) (AndOr OP_AND_IF (Com {[VarSub split]} ) (Com {[LIT_CHARS return]} ) ) (Case to_match={[VarSub cur]}, pat_word_list=[[{[LIT_CHARS -o] [LIT_OTHER "*"]}], [{[LIT_CHARS -I] [LIT_OTHER "*"]}], [{[LIT_CHARS -] [LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('cur', {[VarSub cur transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} None]]})]) (Com {[LIT_CHARS _filedir]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[DQ [VarSub COMPREPLY bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[PatSub {} {[LIT_CHARS -o]} do_suffix]]]}]})]) (Com {[LIT_CHARS return]} ) ) (List (= scope= flags=0 words=[] bindings=[('cur', {[VarSub cur transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} None]]})]) (Com {[LIT_CHARS _filedir]} {[LIT_CHARS -d]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[DQ [VarSub COMPREPLY bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[PatSub {} {[LIT_CHARS -I]} do_suffix]]]}]})]) (Com {[LIT_CHARS return]} ) ) (List (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (= scope= flags=0 words=[{[LIT_CHARS i]}] bindings=[]) (For i [{[VarSub COMPREPLY bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(!ref)]]}]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub COMPREPLY bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} {[LIT_CHARS -oFILE]}}) (Com {[LIT_CHARS unset]} {[SQ ]} ) ) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub COMPREPLY]} {[LIT_OTHER "*"] [LIT_DBRACKET_LIKE "="]}}) (Com {[LIT_CHARS compopt]} {[LIT_CHARS -o]} {[LIT_CHARS nospace]} ) ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS _filedir]} {[LIT_CHARS proto]} ) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _protoc]} {[LIT_CHARS protoc]} ) )