Описание тега 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…
10 дек '13 в 15:16