Command/script to apply to preprocessed files (-post-preprocessing-command)

Задайте команду или скрипт, чтобы запустить в исходных файлах после фазы предварительной обработки анализа

Описание

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

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Environment Settings.

Командная строка и файл опций: Используйте опцию -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. Например, можно использовать следующие выражения.

    ВыражениеЗначение
    .Совпадает с любым одним символом, кроме newline
    [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 (Bug Finder Server): polyspace-bug-finder-server -sources file_name -post-preprocessing-command 'pwd '/replace _ keyword.pl
Пример в Linux (Код Prover Server): Полипространство -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.