У меня есть SourceLocation, который указывает на произвольную позицию в некоторой функции. Как найти ограждающий блок? Я знаю, что с помощью clang :: Lexer я могу получить необработанный токен в этом месте, но мне нужно начало охватывающей области (функции).
Например:
/* TargetLocation */int main(int argc, char* argv[]) {
func1(argc, argv);
/* SourceLocation */func2(argc, argv);
return 0;
}
Здесь я хотел бы найти TargetLocation с учетом имеющегося у меня SourceLocation.