exponenta event banner

Команда/сценарий для применения к предварительно обработанным файлам (-post-preprocessing-command)

Укажите команду или сценарий для запуска с исходными файлами после этапа предварительной обработки анализа

Описание

Укажите команду или сценарий для выполнения над каждым исходным файлом после предварительной обработки.

Задать опцию

Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта этот параметр находится в узле «Параметры среды».

файл командной строки и параметров: Использовать параметр -post-preprocessing-command. См. раздел Сведения о командной строке.

Зачем использовать этот параметр

Можно запускать сценарии для предварительно обработанных файлов, чтобы обойти ошибки компиляции или неточности анализа, не затрагивая исходные файлы. Например, предположим, что Polyspace ® не распознает ключевое слово, специфичное для компилятора. Если вы уверены, что ключевое слово не является релевантным для анализа, вы можете запустить сценарий Perl, чтобы удалить все экземпляры ключевого слова. При использовании этого параметра программа удаляет ключевое слово из предварительно обработанного кода, но сохраняет исходный код нетронутым.

Используйте сценарий, только если существующие опции анализа не соответствуют вашим требованиям. Например:

  • Для прямой замены одного ключевого слова другим используйте опцию Preprocessor definitions (-D).

    Однако этот параметр не позволяет выполнять поиск и замену с использованием регулярных выражений. Для регулярных выражений используйте сценарий.

  • Для сопоставления функции библиотеки со стандартной функцией библиотеки используйте опцию -code-behavior-specifications.

    Однако эта опция поддерживает сопоставление только с подмножеством стандартных библиотечных функций. Чтобы сопоставить с неподдерживаемой функцией, используйте сценарий.

Если вы не уверены в необходимости удаления или замены неподдерживаемой конструкции, не используйте эту опцию. Обратитесь в службу поддержки MathWorks ®.

Настройки

По умолчанию нет

Введите полный путь к команде или сценарию или щелкните для перехода к местоположению команды или сценария. Этот сценарий выполняется перед проверкой.

Совет

  • Сценарий должен быть разработан для обработки стандартных выходных данных предварительной обработки и получения их результатов в соответствии с этими стандартными выходными данными.

  • Сценарий должен сохранять количество строк в предварительно обработанном файле. Другими словами, он не должен добавлять или удалять целые строки в файл или из него.

    Добавление или удаление строки может привести к непредсказуемому поведению расположения чеков и макросов в интерфейсе пользователя Polyspace.

  • Для сценария Perl в Windows ® укажите полный путь к исполняемому файлу Perl, а затем полный путь к сценарию.

    Например:

    • Задание команды Perl, заменяющей все экземпляры far ключевое слово, введите polyspaceroot\sys\perl\win32\bin\perl.exe -p -e "s/far//g".

    • Задание сценария Perl replace_keyword.pl который заменяет все экземпляры ключевого слова, введите polyspaceroot\sys\perl\win32\bin\perl.exe absolute_path\replace_keyword.pl.

    Здесь, polyspaceroot - местоположение текущей установки Polyspace, например, C:\Program Files\Polyspace\R2019a\ и absolute_path - местоположение скрипта Perl. Если пути содержат пробелы, используйте кавычки, чтобы заключить полные имена путей.

  • Использовать этот сценарий Perl в качестве шаблона. Сценарий удаляет все экземпляры far ключевое слово.

    #!/usr/bin/perl
    
    binmode STDOUT;
    
    # Process every line from STDIN until EOF
    while ($line = <STDIN>) 
    {
    
      # Remove far keyword
      $line =~ s/far//g;
      
      # Print the current processed line to STDOUT
      print $line;
    }

    Для выполнения замен можно использовать регулярные выражения Perl. Например, можно использовать следующие выражения.

    ВыражениеЗначение
    .Соответствует любому одиночному символу, кроме новой строки
    [a-z0-9]         Соответствует любой отдельной букве в наборе a-z, или цифра в наборе 0-9
    [^a-e]Соответствует любой отдельной букве, отсутствующей в наборе a-e
    \dСоответствует любой одной цифре
    \wСоответствует одному буквенно-цифровому символу или _
    x?Соответствует 0 или 1 вхождению x
    x*Соответствует 0 или более вхождениям x
    x+Соответствует 1 или более вхождениям x

    Полный список регулярных выражений см. в документации Perl.

  • При указании этого параметра помощник по компиляции автоматически отключается.

Информация командной строки

Параметр: -post-preprocessing-command
Значение: Путь к исполняемому файлу или команде в кавычках
По умолчанию нет
Пример в Linux ® (Bug Finder): polyspace-bug-finder -sources file_name -post-preprocessing-command `pwd`/replace_keyword.pl
Пример в Linux (Code Prover): polyspace-code-prover -sources file_name -post-preprocessing-command `pwd`/replace_keyword.pl
Пример в Linux (сервер поиска ошибок): polyspace-bug-finder-server -sources file_name -post-preprocessing-command `pwd`/replace_keyword.pl
Пример в Linux (сервер проверки кода): polyspace-code-prover-server -sources file_name -post-preprocessing-command `pwd`/replace_keyword.pl
Пример в Windows: polyspace-bug-finder -sources file_name -post-preprocessing-command "C:\Program Files\MATLAB\R2015b\sys\perl\win32\bin\perl.exe" "C:\My_Scripts\replace_keyword.pl"

Обратите внимание, что в Windows используется полный путь к исполняемому файлу Perl.