Описание тега libclang

LibClang - это стабильный высокоуровневый интерфейс C для компилятора clang.
1 ответ

Найти условную оценку в цикле for с использованием libclang

Я использую clang (через libclang через привязки Python), чтобы собрать бота для проверки кода. Я предполагал, что все курсоры FOR_STMT будут иметь 4 детей; INIT, EVAL, INC, и ТЕЛО.. for( INIT; EVAL; INC ) BODY; что подразумевало бы, что я мог бы пр…
05 ноя '14 в 19:36
1 ответ

Как вы обнаруживаете разницу между enum и enum с областью видимости, используя libclang?

Я пишу синтаксический анализатор C++ AST, используя превосходный C-интерфейс libclang ( http://clang.llvm.org/doxygen/group__CINDEX.html). К сожалению, между перечислениями в области видимости C++ 11 и устаревшими перечислениями, похоже, нет никакой…
02 окт '14 в 19:25
0 ответов

Получить определение без комментариев в (lib)clang

Предположим, у меня есть определение переменной int x = MACRO(5) /* HOHO */ + 25; и иметь доступ к xCXCursor в libclang. Я хочу получить определение без дополнительных пробелов и без комментариев. Я знаю, как получить экстенты курсора, но предположи…
22 май '18 в 09:43
0 ответов

Получить все функции, вызываемые (даже если они вызваны другой функцией) libclang python

Я пытаюсь использовать libclang/python 3.7 для сбора каждой функции, вызываемой в программе, путем ее разбора в модуль перевода. Я анализирую файл main.cpp, чтобы собрать данные. Testhead.cpp: #include <testhead.h> void a() { std::cout<<…
26 ноя '18 в 01:18
2 ответа

Как получить числовое значение элемента enum с помощью libclang?

Предположим, у меня есть определение enum, например: // myenum.h enum MyEnum { First = 1, Second, Third, TwoAgain = Second }; Я хотел бы программно сгенерировать карту из любого заданного определения перечисления, где ключ - это имя элемента перечис…
24 мар '15 в 15:24
1 ответ

Может ли libclang проанализировать шаблон CRTP?

Я пытаюсь использовать libclang для синтаксического анализа C++, но, похоже, есть проблема с шаблоном CRTP, то есть когда класс наследует от шаблона, который создается с помощью производного класса: // The Curiously Recurring Template Pattern (CRTP)…
14 мар '17 в 19:57
1 ответ

Разбор исходного файла с помощью libclang - проблемы со связыванием включаемых файлов

Я написал скрипт для разбора файлов C/C++ с помощью libclang библиотека. Файл, который я пытался проанализировать: osf_sys.c. Программа печатает каждую функцию / переменную и т. Д. В файле. Образец вывода: ... CURSORKIND: 6; __user at line: 469 CURS…
23 апр '18 в 18:35
0 ответов

Удалить классификаторы типа CV из CXType libclang

Я использую libclang для разбора исходного файла и получения ссылки на некоторый тип как CXTypeскажи "const std::__1::basic_string<char>"(как сообщает clang_getTypeSpelling). Как я могу получить ссылку на тот же тип, но без квалификатора const?
21 июл '17 в 13:47
0 ответов

Почему libclang clang_getEnumDeclIntegerType возвращает разные результаты в Linux и Windows?

Рассмотрим этот простой C-файл, file.c: enum X { A, B } Давайте обнаружим базовый тип перечисления, используя libclang: #include <stdio.h> #include <clang-c/Index.h> enum CXChildVisitResult visitor(CXCursor cursor, CXCursor parent, CXCli…
11 июн '18 в 14:35
0 ответов

Почему libclang (libclang.so.3.9) такой большой (124 МБ) в CentOS 6.5 после компиляции из исходного кода?

Я скачал и скомпилировал libclang по этой ссылке на CentOS 6.5: https://www.vultr.com/docs/how-to-install-llvm-and-clang-on-centos-6 Я сделал только до make, так как мне нужен только libclang.so, а не установленный компилятор clang. libclang.so.3.9 …
30 дек '16 в 10:03
0 ответов

Как разобрать атрибуты функции с помощью libClang?

Я пытаюсь разобрать атрибуты функции с помощью libClang, но пока безуспешно. Например, у меня может быть такой атрибут, определенный в заголовке. #define __mobile__ __attribute__((mobile)) И в отдельном файле.cpp у меня есть определение моей функции…
19 май '18 в 00:32
0 ответов

Как я могу устранить ошибку при компиляции ошибки librocksdb-sys на RHEL 7?

Я пытался создать Canvas Data Loader. Я дошел до шага 10, и мне было довольно легко разрешить зависимости от cargo build fail, но я застрял, пытаясь разрешить зависимость librocksdb-sys v5.14.2 за последние 4 дня: [root@localhost home]# gcc -v Using…
01 ноя '18 в 19:09
1 ответ

Синтаксический анализ C в python с libclang, но сгенерировал неправильный AST

Я хочу использовать связывающий Python libclang для генерации AST кода C. ОК, исходный код изображен ниже. #include <stdlib.h> #include "adlist.h" #include "zmalloc.h" list *listCreate(void) { struct list *list; if ((list = zmalloc(sizeof(*lis…
17 дек '15 в 07:43
1 ответ

python + libclang; итерация вперед и назад: привязка комментариев поля к полю

Некоторое время я пытался найти достойный способ привязать поле в структуре C++ к его комментариям, используя libclang 3.9.1 и python 3.5.2. Пока что я настроил и запустил эту программу: при условии, что у меня есть файл Foo.h: typedef int arbType; …
31 янв '17 в 12:38
0 ответов

libclang: добавить компилятор в систему, включить путь (Python в Windows)

Следуя этому вопросу и советам Эндрю, я пытаюсь заставить liblang добавить пути компиляции системы (в Windows) для моего кода Python import clang.cindex def parse_decl(node): reference_node = node.get_definition() if node.kind.is_declaration(): prin…
09 май '16 в 10:18
1 ответ

Используйте clang для извлечения комментариев документации в виде XML

Я видел эту презентацию с 2012 года на clang особенности для обработки C++ комментарии к документации (например, для doxygen). Горка 20 упоминает новую функцию для экспорта комментариев в виде XML как часть libclang, Я хотел бы попробовать эту функц…
23 сен '17 в 20:17
0 ответов

Java -> JNA -> libclang: fatalerror с вызовом clang_visitChildren

Я написал оболочки Java для LibClang API. Оболочка для clang_visitChildren хорошо работает для сравнительно небольших файлов c-source (менее 200 дочерних элементов первого уровня). Но он разбился для более крупного исходного файла в области 550-560 …
11 фев '16 в 12:02
1 ответ

Повторная обработка ASTUnit с относительными путями включения заголовка завершается неудачно

Я использую libclang's LibTooling получить данные о завершении кода из исходных файлов C++. ASTUnits генерируются из файла compile_commands.json, созданного с помощью CMake с Ninja как генератор. В командах вызова компилятора есть относительные пути…
15 июн '17 в 08:56
1 ответ

LibClang: проанализировать файл заголовка с определениями из другого файла заголовка?

Я использую последний LibClang для анализа некоторых заголовочных файлов C. Код, который я обрабатываю, взят из CXUnsavedFile (он все генерируется динамически, и на диске ничего нет). Например: FileA.h содержит: struct STRUCT_A { int a; struct STRUC…
24 окт '13 в 16:15
0 ответов

Не могу поймать исключение после создания CXIndex

Почему эта программа #include <clang-c/Index.h> #include <exception> #include <iostream> int main() { try { throw std::exception("threw"); } catch (const std::exception& e) { std::cout << e.what() << "\n"; } CXIndex…