Выполнять замены в директивах препроцессора
-regex-replace-rgx matchFileName -regex-replace-fmt replacementFileName
-regex-replace-rgx заменяет маркеры в директивах препроцессора для анализа Polyspace ®. Исходный код не изменился. Сопоставление маркера с помощью регулярного выражения в файлеmatchFileName -regex-replace-fmt replacementFileName и замените маркер с помощью замены в файле matchFileNamereplacementFileName.
Используйте этот параметр только для замены или удаления маркеров в директивах препроцессора перед предварительной обработкой. Если маркер в исходном коде вызывает ошибку компиляции, его обычно можно заменить или удалить из предварительно обработанного кода. Используйте более удобный вариант Command/script to apply to preprocessed files (-post-preprocessing-command). Замены в предварительно обработанном коде нельзя выполнять только для маркеров в директивах препроцессора.
Если анализ выполняется из интерфейса пользователя (только для настольных продуктов Polyspace), на панели Конфигурация (Configuration) можно ввести этот параметр в поле Другое (Other). Посмотрите Other.
В интерфейсе пользователя укажите абсолютные пути к текстовым файлам с шаблонами поиска и замены.
Предположим, что вы хотите заменить &_rom_beg в этом #define директива:
#define ROM_BEG_ADDR (uint16_t)(&_rom_beg)
#define ROM_BEG_ADDR (0x4000u)
Укажите это регулярное выражение в файле match.txt:
^#define\s+ROM_BEG_ADDR\s+\(uint16_t\)\(\&_rom_beg\)
^ утверждает положение в начале линии.
\s+ представляет один или несколько пробелов.
Знаки *, &, (и) в исходном выражении \. Полный список регулярных выражений см. в документации Perl.
Укажите замену в файле replace.txt.
#define ROM_BEG_ADDR \(0x4000u\)
Укажите два текстовых файла во время анализа с помощью опций -regex-replace-rgx и -regex-replace-fmt:
Поиск ошибок:
polyspace-bug-finder -sources filename -regex-replace-rgx match.txt -regex-replace-fmt replace.txt
Проверка кода:
polyspace-code-prover -sources filename -regex-replace-rgx match.txt -regex-replace-fmt replace.txt
Сервер поиска ошибок:
polyspace-bug-finder-server -sources filename -regex-replace-rgx match.txt -regex-replace-fmt replace.txt
Сервер проверки кода:
polyspace-code-prover-server -sources filename -regex-replace-rgx match.txt -regex-replace-fmt replace.txt
Если в качестве расширений кода в IDE используется Polyspace, введите эту опцию в файл опций анализа. См. файл параметров.