Я пишу простой редактор C. Я должен проверить код, чтобы выделить любые ошибки, отсутствующие точки с запятой, использование несуществующих функций/переменных/методов, настройки в состоянии if
и т. Д. И т. Д.Проверка кода C с использованием классов CDT
Анализ и проверка C - очень сложная проблема, поэтому я решил использовать CDT. Однако я понятия не имею, как это сделать. Я только нашел информацию о методе org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage.getASTTranslationUnit(...)
, но это не очень помогает, поскольку позволяет находить только основные синтаксические ошибки. (Я прав?)
Мне нужна функция, которая получает код С или объект класса IASTTranslationUnit
. Он должен вернуть список всех проблем (ошибок и предупреждений). Как я могу это сделать, используя API CDT?
Я не думаю, что вы получите AST в случае ошибки синтаксического анализа, поэтому этот подход не будет работать. – qrdl
подтвердите код C: 1) запустите компилятор с включенными предупреждениями, а когда все предупреждения зафиксированы, запустите инструмент, такой как valgrind над исходным кодом. – user3629249
@ user3629249 Я рассмотрю это как последнее средство. Тем не менее, я ищу портативное решение. Возможно, что код будет запущен на сервере на другой странной машине. И даже если это не так, я бы не хотел, чтобы каждый пользователь устанавливал и настраивал компилятор. –