Пожалуйста, пройдите, если кто-то знает о Vera++ или Static Analyzer.
Как реализовать сложную машину проверки правил C++ в качестве статического анализатора? Я хочу реализовать сложные правила, такие как виртуальная функция в базовых классах, идентификация определяемых пользователем переменных, таких как классы, структуры и т. д. Область переменных, такая как глобальная, локальная, статическая и т. д. Я очень хорошо понял Vera ++, согласно моему пониманию, он выполняет только анализ токенов, Контекст языка должен быть реализован через сценарии (а реализованный контекст может быть слишком сложным, если язык похож на C++); поскольку различие между a *b; (который может быть указателем b типа класса a) ИЛИ a *b;(может быть просто умножением двух переменных);
Я даже чувствую, что для реализации сложных правил может потребоваться какой-то компилятор, такой как State Machines, чтобы скрипты могли понимать контекст языка.
Мой вопрос просто спросить:
Правильно ли я понимаю реализацию правил статического анализатора.
Не могли бы вы немного помочь мне, как я могу приступить к выполнению этой задачи.
Можно ли упростить эту задачу с помощью REGEXP tcl.
Есть ли какой-либо конкретный подход к проектированию, который вы можете предложить для хорошей реализации Solid C++ Code Analyzer.