# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: ast.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='ast.proto',
  package='proto',
  syntax='proto3',
  serialized_pb=_b('\n\tast.proto\x12\x05proto\"N\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07relpath\x18\x02 \x01(\t\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x11\n\tdirectory\x18\x04 \x01(\t\"Q\n\x0eSourceLocation\x12\x0b\n\x03row\x18\x01 \x01(\x05\x12\x0e\n\x06\x63olumn\x18\x02 \x01(\x05\x12\"\n\tfile_info\x18\x03 \x01(\x0b\x32\x0f.proto.FileInfo\"W\n\x0bSourceRange\x12$\n\x05start\x18\x01 \x01(\x0b\x32\x15.proto.SourceLocation\x12\"\n\x03\x65nd\x18\x02 \x01(\x0b\x32\x15.proto.SourceLocation\"\xed\x06\n\x07\x41stNode\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.proto.AstNode.NodeType\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tfull_name\x18\x03 \x01(\t\x12\x11\n\tbase_type\x18\x04 \x01(\t\x12\x0e\n\x06module\x18\x05 \x01(\t\x12\r\n\x05value\x18\x06 \x01(\t\x12\x12\n\ndefinition\x18\x07 \x01(\t\x12!\n\targ_nodes\x18\x08 \x03(\x0b\x32\x0e.proto.AstNode\x12\x11\n\targuments\x18\t \x03(\t\x12\x0e\n\x06source\x18\n \x01(\t\x12!\n\x05range\x18\x0b \x01(\x0b\x32\x12.proto.SourceRange\x12\n\n\x02id\x18\x0c \x01(\x05\x12+\n\rfunctionality\x18\r \x01(\x0e\x32\x14.proto.Functionality\x12(\n\x0bsource_type\x18\x0e \x01(\x0e\x32\x11.proto.SourceTypeH\x00\x12$\n\tsink_type\x18\x0f \x01(\x0e\x32\x0f.proto.SinkTypeH\x00\x12(\n\x0b\x64\x61nger_type\x18\x10 \x01(\x0e\x32\x11.proto.DangerTypeH\x00\x12.\n\x0epropagate_type\x18\x11 \x01(\x0e\x32\x14.proto.PropagateTypeH\x00\x12#\n\x0b\x63hild_nodes\x18\x12 \x03(\x0b\x32\x0e.proto.AstNode\x12\x16\n\x0einstantiatable\x18\x13 \x01(\x08\"\xb0\x02\n\x08NodeType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rFUNCTION_DECL\x10\x01\x12\x11\n\rVARIABLE_DECL\x10\x02\x12\x0e\n\nCLASS_DECL\x10\x03\x12\x1a\n\x16\x46UNCTION_DECL_REF_EXPR\x10\x0b\x12\x1a\n\x16VARIABLE_DECL_REF_EXPR\x10\x0c\x12\x17\n\x13\x43LASS_DECL_REF_EXPR\x10\r\x12\x13\n\x0fPY_FUNCTION_DEF\x10\x65\x12\x1d\n\x18JS_ASSIGNMENT_EXPRESSION\x10\xc9\x01\x12\x14\n\x0fRB_REGULAR_NODE\x10\xad\x02\x12\x15\n\x10RB_VARIABLE_NODE\x10\xae\x02\x12\x17\n\x12JAVA_IDENTITY_STMT\x10\x91\x03\x12\x16\n\x11PHP_EXPR_VARIABLE\x10\xf5\x03\x42\x18\n\x16\x61\x63\x63urate_functionality\"\x84\x01\n\x0f\x41stLookupConfig\x12\x1c\n\x04\x61pis\x18\x01 \x03(\x0b\x32\x0e.proto.AstNode\x12\x14\n\x0csave_feature\x18\x02 \x01(\x08\x12\x13\n\x0bsmt_formula\x18\x03 \x01(\t\x12\x15\n\rsmt_satisfied\x18\x04 \x01(\x08\x12\x11\n\tfunc_only\x18\x05 \x01(\x08\"\xdd\x01\n\x0cPkgAstResult\x12\x10\n\x08pkg_name\x18\x01 \x01(\t\x12\x13\n\x0bpkg_version\x18\x02 \x01(\t\x12!\n\x08language\x18\x03 \x01(\x0e\x32\x0f.proto.Language\x12\x12\n\ninput_path\x18\x04 \x01(\t\x12&\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x16.proto.AstLookupConfig\x12#\n\x0b\x61pi_results\x18\x06 \x03(\x0b\x32\x0e.proto.AstNode\x12\"\n\nroot_nodes\x18\x07 \x03(\x0b\x32\x0e.proto.AstNode\"E\n\rPkgAstResults\x12!\n\x04pkgs\x18\x01 \x03(\x0b\x32\x13.proto.PkgAstResult\x12\x11\n\ttimestamp\x18\x02 \x01(\x04*m\n\x08Language\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06PYTHON\x10\x01\x12\x0e\n\nJAVASCRIPT\x10\x02\x12\x08\n\x04RUBY\x10\x03\x12\x08\n\x04JAVA\x10\x04\x12\x07\n\x03PHP\x10\x05\x12\n\n\x06\x43SHARP\x10\x06\x12\x07\n\x03\x43PP\x10\x07\x12\x06\n\x02GO\x10\x08*R\n\rFunctionality\x12\x10\n\x0cUNCLASSIFIED\x10\x00\x12\n\n\x06SOURCE\x10\x01\x12\x08\n\x04SINK\x10\x02\x12\n\n\x06\x44\x41NGER\x10\x03\x12\r\n\tPROPAGATE\x10\x04*\xe1\x02\n\nSourceType\x12\x17\n\x13SOURCE_UNCLASSIFIED\x10\x00\x12\x12\n\x0eSOURCE_ACCOUNT\x10\x01\x12\x14\n\x10SOURCE_BLUETOOTH\x10\x02\x12\x12\n\x0eSOURCE_BROWSER\x10\x03\x12\x13\n\x0fSOURCE_CALENDAR\x10\x04\x12\x12\n\x0eSOURCE_CONTACT\x10\x05\x12\x13\n\x0fSOURCE_DATABASE\x10\x06\x12\x0f\n\x0bSOURCE_FILE\x10\x07\x12\x12\n\x0eSOURCE_NETWORK\x10\x08\x12\x0e\n\nSOURCE_NFC\x10\t\x12\x13\n\x0fSOURCE_SETTINGS\x10\n\x12\x0f\n\x0bSOURCE_SYNC\x10\x0b\x12\x1c\n\x18SOURCE_UNIQUE_IDENTIFIER\x10\x0c\x12\x16\n\x12SOURCE_ENVIRONMENT\x10\x33\x12\x15\n\x11SOURCE_USER_INPUT\x10\x34\x12\x16\n\x12SOURCE_OBFUSCATION\x10\x35*\xf2\x02\n\x08SinkType\x12\x15\n\x11SINK_UNCLASSIFIED\x10\x00\x12\x10\n\x0cSINK_ACCOUNT\x10\x01\x12\x0e\n\nSINK_AUDIO\x10\x02\x12\x10\n\x0cSINK_BROWSER\x10\x03\x12\x11\n\rSINK_CALENDAR\x10\x04\x12\x10\n\x0cSINK_CONTACT\x10\x05\x12\r\n\tSINK_FILE\x10\x06\x12\x0c\n\x08SINK_LOG\x10\x07\x12\x10\n\x0cSINK_NETWORK\x10\x08\x12\x0c\n\x08SINK_NFC\x10\t\x12\x19\n\x15SINK_PHONE_CONNECTION\x10\n\x12\x14\n\x10SINK_PHONE_STATE\x10\x0b\x12\x10\n\x0cSINK_SMS_MMS\x10\x0c\x12\r\n\tSINK_SYNC\x10\r\x12\x0f\n\x0bSINK_SYSTEM\x10\x0e\x12\r\n\tSINK_VOIP\x10\x0f\x12\x18\n\x14SINK_CODE_GENERATION\x10\x33\x12\x1a\n\x16SINK_PROCESS_OPERATION\x10\x34\x12\x11\n\rSINK_DATABASE\x10\x35*,\n\nDangerType\x12\x1e\n\x1a\x44\x41NGER_UNCLASSIFIED_DANGER\x10\x00*\x83\x01\n\rPropagateType\x12\x1a\n\x16PROPAGATE_UNCLASSIFIED\x10\x00\x12\x14\n\x10PROPAGATE_ASSIGN\x10\x01\x12\x12\n\x0ePROPAGATE_CALL\x10\x02\x12\x15\n\x11PROPAGATE_SYSCALL\x10\x03\x12\x15\n\x11PROPAGATE_LIBCALL\x10\x04\x62\x06proto3')
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

_LANGUAGE = _descriptor.EnumDescriptor(
  name='Language',
  full_name='proto.Language',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PYTHON', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JAVASCRIPT', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RUBY', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JAVA', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PHP', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CSHARP', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CPP', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GO', index=8, number=8,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1582,
  serialized_end=1691,
)
_sym_db.RegisterEnumDescriptor(_LANGUAGE)

Language = enum_type_wrapper.EnumTypeWrapper(_LANGUAGE)
_FUNCTIONALITY = _descriptor.EnumDescriptor(
  name='Functionality',
  full_name='proto.Functionality',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNCLASSIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DANGER', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE', index=4, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1693,
  serialized_end=1775,
)
_sym_db.RegisterEnumDescriptor(_FUNCTIONALITY)

Functionality = enum_type_wrapper.EnumTypeWrapper(_FUNCTIONALITY)
_SOURCETYPE = _descriptor.EnumDescriptor(
  name='SourceType',
  full_name='proto.SourceType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SOURCE_UNCLASSIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_ACCOUNT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_BLUETOOTH', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_BROWSER', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_CALENDAR', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_CONTACT', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_DATABASE', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_FILE', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_NETWORK', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_NFC', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_SETTINGS', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_SYNC', index=11, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_UNIQUE_IDENTIFIER', index=12, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_ENVIRONMENT', index=13, number=51,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_USER_INPUT', index=14, number=52,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SOURCE_OBFUSCATION', index=15, number=53,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1778,
  serialized_end=2131,
)
_sym_db.RegisterEnumDescriptor(_SOURCETYPE)

SourceType = enum_type_wrapper.EnumTypeWrapper(_SOURCETYPE)
_SINKTYPE = _descriptor.EnumDescriptor(
  name='SinkType',
  full_name='proto.SinkType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SINK_UNCLASSIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_ACCOUNT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_AUDIO', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_BROWSER', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_CALENDAR', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_CONTACT', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_FILE', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_LOG', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_NETWORK', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_NFC', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_PHONE_CONNECTION', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_PHONE_STATE', index=11, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_SMS_MMS', index=12, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_SYNC', index=13, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_SYSTEM', index=14, number=14,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_VOIP', index=15, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_CODE_GENERATION', index=16, number=51,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_PROCESS_OPERATION', index=17, number=52,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SINK_DATABASE', index=18, number=53,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2134,
  serialized_end=2504,
)
_sym_db.RegisterEnumDescriptor(_SINKTYPE)

SinkType = enum_type_wrapper.EnumTypeWrapper(_SINKTYPE)
_DANGERTYPE = _descriptor.EnumDescriptor(
  name='DangerType',
  full_name='proto.DangerType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='DANGER_UNCLASSIFIED_DANGER', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2506,
  serialized_end=2550,
)
_sym_db.RegisterEnumDescriptor(_DANGERTYPE)

DangerType = enum_type_wrapper.EnumTypeWrapper(_DANGERTYPE)
_PROPAGATETYPE = _descriptor.EnumDescriptor(
  name='PropagateType',
  full_name='proto.PropagateType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE_UNCLASSIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE_ASSIGN', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE_CALL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE_SYSCALL', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROPAGATE_LIBCALL', index=4, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2553,
  serialized_end=2684,
)
_sym_db.RegisterEnumDescriptor(_PROPAGATETYPE)

PropagateType = enum_type_wrapper.EnumTypeWrapper(_PROPAGATETYPE)
UNKNOWN = 0
PYTHON = 1
JAVASCRIPT = 2
RUBY = 3
JAVA = 4
PHP = 5
CSHARP = 6
CPP = 7
GO = 8
UNCLASSIFIED = 0
SOURCE = 1
SINK = 2
DANGER = 3
PROPAGATE = 4
SOURCE_UNCLASSIFIED = 0
SOURCE_ACCOUNT = 1
SOURCE_BLUETOOTH = 2
SOURCE_BROWSER = 3
SOURCE_CALENDAR = 4
SOURCE_CONTACT = 5
SOURCE_DATABASE = 6
SOURCE_FILE = 7
SOURCE_NETWORK = 8
SOURCE_NFC = 9
SOURCE_SETTINGS = 10
SOURCE_SYNC = 11
SOURCE_UNIQUE_IDENTIFIER = 12
SOURCE_ENVIRONMENT = 51
SOURCE_USER_INPUT = 52
SOURCE_OBFUSCATION = 53
SINK_UNCLASSIFIED = 0
SINK_ACCOUNT = 1
SINK_AUDIO = 2
SINK_BROWSER = 3
SINK_CALENDAR = 4
SINK_CONTACT = 5
SINK_FILE = 6
SINK_LOG = 7
SINK_NETWORK = 8
SINK_NFC = 9
SINK_PHONE_CONNECTION = 10
SINK_PHONE_STATE = 11
SINK_SMS_MMS = 12
SINK_SYNC = 13
SINK_SYSTEM = 14
SINK_VOIP = 15
SINK_CODE_GENERATION = 51
SINK_PROCESS_OPERATION = 52
SINK_DATABASE = 53
DANGER_UNCLASSIFIED_DANGER = 0
PROPAGATE_UNCLASSIFIED = 0
PROPAGATE_ASSIGN = 1
PROPAGATE_CALL = 2
PROPAGATE_SYSCALL = 3
PROPAGATE_LIBCALL = 4


_ASTNODE_NODETYPE = _descriptor.EnumDescriptor(
  name='NodeType',
  full_name='proto.AstNode.NodeType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FUNCTION_DECL', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VARIABLE_DECL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CLASS_DECL', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FUNCTION_DECL_REF_EXPR', index=4, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VARIABLE_DECL_REF_EXPR', index=5, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CLASS_DECL_REF_EXPR', index=6, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PY_FUNCTION_DEF', index=7, number=101,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JS_ASSIGNMENT_EXPRESSION', index=8, number=201,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RB_REGULAR_NODE', index=9, number=301,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RB_VARIABLE_NODE', index=10, number=302,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JAVA_IDENTITY_STMT', index=11, number=401,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PHP_EXPR_VARIABLE', index=12, number=501,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=820,
  serialized_end=1124,
)
_sym_db.RegisterEnumDescriptor(_ASTNODE_NODETYPE)


_FILEINFO = _descriptor.Descriptor(
  name='FileInfo',
  full_name='proto.FileInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filename', full_name='proto.FileInfo.filename', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='relpath', full_name='proto.FileInfo.relpath', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='file', full_name='proto.FileInfo.file', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='directory', full_name='proto.FileInfo.directory', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=20,
  serialized_end=98,
)


_SOURCELOCATION = _descriptor.Descriptor(
  name='SourceLocation',
  full_name='proto.SourceLocation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='row', full_name='proto.SourceLocation.row', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='column', full_name='proto.SourceLocation.column', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='file_info', full_name='proto.SourceLocation.file_info', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=100,
  serialized_end=181,
)


_SOURCERANGE = _descriptor.Descriptor(
  name='SourceRange',
  full_name='proto.SourceRange',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start', full_name='proto.SourceRange.start', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='end', full_name='proto.SourceRange.end', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=183,
  serialized_end=270,
)


_ASTNODE = _descriptor.Descriptor(
  name='AstNode',
  full_name='proto.AstNode',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='proto.AstNode.type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='name', full_name='proto.AstNode.name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='full_name', full_name='proto.AstNode.full_name', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='base_type', full_name='proto.AstNode.base_type', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='module', full_name='proto.AstNode.module', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto.AstNode.value', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='definition', full_name='proto.AstNode.definition', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='arg_nodes', full_name='proto.AstNode.arg_nodes', index=7,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='arguments', full_name='proto.AstNode.arguments', index=8,
      number=9, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='source', full_name='proto.AstNode.source', index=9,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='range', full_name='proto.AstNode.range', index=10,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='id', full_name='proto.AstNode.id', index=11,
      number=12, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='functionality', full_name='proto.AstNode.functionality', index=12,
      number=13, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='source_type', full_name='proto.AstNode.source_type', index=13,
      number=14, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='sink_type', full_name='proto.AstNode.sink_type', index=14,
      number=15, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='danger_type', full_name='proto.AstNode.danger_type', index=15,
      number=16, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='propagate_type', full_name='proto.AstNode.propagate_type', index=16,
      number=17, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='child_nodes', full_name='proto.AstNode.child_nodes', index=17,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='instantiatable', full_name='proto.AstNode.instantiatable', index=18,
      number=19, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _ASTNODE_NODETYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='accurate_functionality', full_name='proto.AstNode.accurate_functionality',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=273,
  serialized_end=1150,
)


_ASTLOOKUPCONFIG = _descriptor.Descriptor(
  name='AstLookupConfig',
  full_name='proto.AstLookupConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='apis', full_name='proto.AstLookupConfig.apis', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='save_feature', full_name='proto.AstLookupConfig.save_feature', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='smt_formula', full_name='proto.AstLookupConfig.smt_formula', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='smt_satisfied', full_name='proto.AstLookupConfig.smt_satisfied', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='func_only', full_name='proto.AstLookupConfig.func_only', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1153,
  serialized_end=1285,
)


_PKGASTRESULT = _descriptor.Descriptor(
  name='PkgAstResult',
  full_name='proto.PkgAstResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pkg_name', full_name='proto.PkgAstResult.pkg_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='pkg_version', full_name='proto.PkgAstResult.pkg_version', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='language', full_name='proto.PkgAstResult.language', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='input_path', full_name='proto.PkgAstResult.input_path', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='config', full_name='proto.PkgAstResult.config', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='api_results', full_name='proto.PkgAstResult.api_results', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='root_nodes', full_name='proto.PkgAstResult.root_nodes', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1288,
  serialized_end=1509,
)


_PKGASTRESULTS = _descriptor.Descriptor(
  name='PkgAstResults',
  full_name='proto.PkgAstResults',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pkgs', full_name='proto.PkgAstResults.pkgs', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='proto.PkgAstResults.timestamp', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1511,
  serialized_end=1580,
)

_SOURCELOCATION.fields_by_name['file_info'].message_type = _FILEINFO
_SOURCERANGE.fields_by_name['start'].message_type = _SOURCELOCATION
_SOURCERANGE.fields_by_name['end'].message_type = _SOURCELOCATION
_ASTNODE.fields_by_name['type'].enum_type = _ASTNODE_NODETYPE
_ASTNODE.fields_by_name['arg_nodes'].message_type = _ASTNODE
_ASTNODE.fields_by_name['range'].message_type = _SOURCERANGE
_ASTNODE.fields_by_name['functionality'].enum_type = _FUNCTIONALITY
_ASTNODE.fields_by_name['source_type'].enum_type = _SOURCETYPE
_ASTNODE.fields_by_name['sink_type'].enum_type = _SINKTYPE
_ASTNODE.fields_by_name['danger_type'].enum_type = _DANGERTYPE
_ASTNODE.fields_by_name['propagate_type'].enum_type = _PROPAGATETYPE
_ASTNODE.fields_by_name['child_nodes'].message_type = _ASTNODE
_ASTNODE_NODETYPE.containing_type = _ASTNODE
_ASTNODE.oneofs_by_name['accurate_functionality'].fields.append(
  _ASTNODE.fields_by_name['source_type'])
_ASTNODE.fields_by_name['source_type'].containing_oneof = _ASTNODE.oneofs_by_name['accurate_functionality']
_ASTNODE.oneofs_by_name['accurate_functionality'].fields.append(
  _ASTNODE.fields_by_name['sink_type'])
_ASTNODE.fields_by_name['sink_type'].containing_oneof = _ASTNODE.oneofs_by_name['accurate_functionality']
_ASTNODE.oneofs_by_name['accurate_functionality'].fields.append(
  _ASTNODE.fields_by_name['danger_type'])
_ASTNODE.fields_by_name['danger_type'].containing_oneof = _ASTNODE.oneofs_by_name['accurate_functionality']
_ASTNODE.oneofs_by_name['accurate_functionality'].fields.append(
  _ASTNODE.fields_by_name['propagate_type'])
_ASTNODE.fields_by_name['propagate_type'].containing_oneof = _ASTNODE.oneofs_by_name['accurate_functionality']
_ASTLOOKUPCONFIG.fields_by_name['apis'].message_type = _ASTNODE
_PKGASTRESULT.fields_by_name['language'].enum_type = _LANGUAGE
_PKGASTRESULT.fields_by_name['config'].message_type = _ASTLOOKUPCONFIG
_PKGASTRESULT.fields_by_name['api_results'].message_type = _ASTNODE
_PKGASTRESULT.fields_by_name['root_nodes'].message_type = _ASTNODE
_PKGASTRESULTS.fields_by_name['pkgs'].message_type = _PKGASTRESULT
DESCRIPTOR.message_types_by_name['FileInfo'] = _FILEINFO
DESCRIPTOR.message_types_by_name['SourceLocation'] = _SOURCELOCATION
DESCRIPTOR.message_types_by_name['SourceRange'] = _SOURCERANGE
DESCRIPTOR.message_types_by_name['AstNode'] = _ASTNODE
DESCRIPTOR.message_types_by_name['AstLookupConfig'] = _ASTLOOKUPCONFIG
DESCRIPTOR.message_types_by_name['PkgAstResult'] = _PKGASTRESULT
DESCRIPTOR.message_types_by_name['PkgAstResults'] = _PKGASTRESULTS
DESCRIPTOR.enum_types_by_name['Language'] = _LANGUAGE
DESCRIPTOR.enum_types_by_name['Functionality'] = _FUNCTIONALITY
DESCRIPTOR.enum_types_by_name['SourceType'] = _SOURCETYPE
DESCRIPTOR.enum_types_by_name['SinkType'] = _SINKTYPE
DESCRIPTOR.enum_types_by_name['DangerType'] = _DANGERTYPE
DESCRIPTOR.enum_types_by_name['PropagateType'] = _PROPAGATETYPE

FileInfo = _reflection.GeneratedProtocolMessageType('FileInfo', (_message.Message,), dict(
  DESCRIPTOR = _FILEINFO,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.FileInfo)
  ))
_sym_db.RegisterMessage(FileInfo)

SourceLocation = _reflection.GeneratedProtocolMessageType('SourceLocation', (_message.Message,), dict(
  DESCRIPTOR = _SOURCELOCATION,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.SourceLocation)
  ))
_sym_db.RegisterMessage(SourceLocation)

SourceRange = _reflection.GeneratedProtocolMessageType('SourceRange', (_message.Message,), dict(
  DESCRIPTOR = _SOURCERANGE,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.SourceRange)
  ))
_sym_db.RegisterMessage(SourceRange)

AstNode = _reflection.GeneratedProtocolMessageType('AstNode', (_message.Message,), dict(
  DESCRIPTOR = _ASTNODE,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.AstNode)
  ))
_sym_db.RegisterMessage(AstNode)

AstLookupConfig = _reflection.GeneratedProtocolMessageType('AstLookupConfig', (_message.Message,), dict(
  DESCRIPTOR = _ASTLOOKUPCONFIG,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.AstLookupConfig)
  ))
_sym_db.RegisterMessage(AstLookupConfig)

PkgAstResult = _reflection.GeneratedProtocolMessageType('PkgAstResult', (_message.Message,), dict(
  DESCRIPTOR = _PKGASTRESULT,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.PkgAstResult)
  ))
_sym_db.RegisterMessage(PkgAstResult)

PkgAstResults = _reflection.GeneratedProtocolMessageType('PkgAstResults', (_message.Message,), dict(
  DESCRIPTOR = _PKGASTRESULTS,
  __module__ = 'ast_pb2'
  # @@protoc_insertion_point(class_scope:proto.PkgAstResults)
  ))
_sym_db.RegisterMessage(PkgAstResults)


# @@protoc_insertion_point(module_scope)
