При использовании libclang, как исключить функцию из stdio.h?В libclang как исключить функции из stdio.h
Когда я использую источник ниже, чтобы собирать только определения функций, тогда я получаю все функции от stdio.h.
Я читал, что мы можем передавать аргументы типа -x c-header при создании индекса. Но делает ли этот способ аргументов, применимых в libclang.
tu = index.parse(self.filename, "-x c-header")
После включения «с заголовком» аргумента, он хочет, чтобы я заполнить массив «unsaved_files», а также, в соответствии с определением функции «разбор» в «cindex.py».
def parse(self, path, args = [], unsaved_files = [], options = 0):
Я не знаю, как правильно это сделать.
def funcdefn_visitor(self, node, parent, userdata):
if node.kind == clang.cindex.CursorKind.FUNCTION_DECL: #gives function definitions
self.func_defn.append(clang.cindex.Cursor_displayname(node))
self.func_defn_line_no.append(node.location.line)
self.func_defn_col_no.append(node.location.column)
print 'Found %s [line=%s, col=%s]' % (
clang.cindex.Cursor_displayname(node),
node.location.line,
node.location.column)
return 2 # means continue visiting recursively
index = clang.cindex.Index.create()
tu = index.parse(self.filename)
#-- link cursor visitor to call back to give function definitions
clang.cindex.Cursor_visit(
tu.cursor,
clang.cindex.Cursor_visit_callback(self.funcdefn_visitor),
None)