Мне нужно найти все вхождения вызова функции в файле c ++ с использованием python и извлечь аргументы для каждого вызова.
Я играю с пакетом pygccxml , и извлечь аргументы из строки с помощью вызова функции очень просто:
from pygccxml.declarations import call_invocation
def test_is_call_invocation(call):
if call_invocation.is_call_invocation(call):
print call_invocation.name(call)
for arg in call_invocation.args(call):
print " ",arg
else:
print "not a function invocation"
То, что я не смог найти, - это способ получения вызовов, разбирающих файл:
from pygccxml import parser
from pygccxml import declarations
decls = parser.parse( ['main.cpp'] )
# ...
Есть ли способ найти вызовы определенной функции с помощью пакета pygccxml?
Или, может быть, этот пакет является излишним для того, что я пытаюсь сделать :) и есть гораздо более простой способ? Боюсь, что поиск вызовов функции с помощью регулярного выражения намного сложнее, чем кажется на первый взгляд ...