mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
import traceback |
|
|
|
class Symbol(object): |
|
def __init__(self, anchor, type, cppname): |
|
self.anchor = anchor |
|
self.type = type |
|
self.cppname = cppname |
|
#if anchor == 'ga586ebfb0a7fb604b35a23d85391329be': |
|
# print(repr(self)) |
|
# traceback.print_stack() |
|
|
|
def __repr__(self): |
|
return '%s:%s@%s' % (self.type, self.cppname, self.anchor) |
|
|
|
def add_to_file(files_dict, file, anchor): |
|
anchors = files_dict.setdefault(file, []) |
|
anchors.append(anchor) |
|
|
|
|
|
def scan_namespace_constants(ns, ns_name, files_dict): |
|
constants = ns.findall("./member[@kind='enumvalue']") |
|
for c in constants: |
|
c_name = c.find("./name").text |
|
name = ns_name + '::' + c_name |
|
file = c.find("./anchorfile").text |
|
anchor = c.find("./anchor").text |
|
#print(' CONST: {} => {}#{}'.format(name, file, anchor)) |
|
add_to_file(files_dict, file, Symbol(anchor, "const", name)) |
|
|
|
def scan_namespace_functions(ns, ns_name, files_dict): |
|
functions = ns.findall("./member[@kind='function']") |
|
for f in functions: |
|
f_name = f.find("./name").text |
|
name = ns_name + '::' + f_name |
|
file = f.find("./anchorfile").text |
|
anchor = f.find("./anchor").text |
|
#print(' FN: {} => {}#{}'.format(name, file, anchor)) |
|
add_to_file(files_dict, file, Symbol(anchor, "fn", name)) |
|
|
|
def scan_class_methods(c, c_name, files_dict): |
|
methods = c.findall("./member[@kind='function']") |
|
for m in methods: |
|
m_name = m.find("./name").text |
|
name = c_name + '::' + m_name |
|
file = m.find("./anchorfile").text |
|
anchor = m.find("./anchor").text |
|
#print(' Method: {} => {}#{}'.format(name, file, anchor)) |
|
add_to_file(files_dict, file, Symbol(anchor, "method", name))
|
|
|