-custom-rules
)Следуйте соглашениям об именовании для идентификаторов
Задайте соглашения об именовании для идентификаторов и проверьте свой код на предмет их соответствия.
Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Coding Standards & Code Metrics.
Командная строка и файл опций: Используйте опцию -custom-rules
. См. «Информация о командной строке».
Используйте эту опцию, чтобы наложить соглашения об именовании на идентификаторы. Использование соглашения об именовании позволяет легко определить характер идентификатора по его имени. Например, если вы задаете соглашение об именовании для структур, можно легко определить, представляет ли идентификатор структурированную переменную или нет.
После анализа на панели Results List перечисляются нарушения соглашений об именовании. На панели Source для каждого нарушения Polyspace® присваивает символ ключевому слову или идентификатору, имеющему отношение к нарушению.
Полный список типов, к которым можно применить соглашения о присвоении имен, см. в разделе Пользовательские правила кодирования.
Polyspace сопоставляет идентификаторы в вашем коде с заданными вами текстовыми шаблонами. Задайте текстовые шаблоны в пользовательском файле правил кодирования. Чтобы создать файл правил кодирования,
Используйте мастер пользовательских правил:
Нажмите кнопку. Откроется Findings selection окно.
Подсвечивается Custom узел на левой панели. Разверните узлы на правой панели, чтобы выбрать пользовательское правило, которое необходимо проверить.
Для каждого пользовательского правила, которое необходимо проверить:
Выберите On.
В столбце Convention введите сообщение об ошибке, которое требуется отобразить в случае нарушения правила.
Например, для правила 4.3, All struct fields must follow the specified pattern, можно ввести All struct fields must begin with s_
. Это сообщение появляется на панели Result Details, если:
Вы задаете Pattern следующим s_[A-Za-z0-9_]+
.
Поле структуры в коде не начинается с s_
.
В Pattern столбце введите текстовый шаблон.
Например, для правила 4.3, All struct fields must follow the specified pattern, можно ввести s_[A-Za-z0-9_]+
. Polyspace сообщает о нарушении правила 4.3, если поле структуры не начинается с s_
.
Для определения шаблонов можно использовать регулярные выражения 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 |
Для частых шаблонов можно использовать следующие регулярные выражения:
(?!__)[a-z0-9_]+(?!__)
, соответствует текстовому шаблону, который не начинается и не заканчивается двумя символами подчеркивания.
int __text; //Does not match int _text_; //Matches
[a-z0-9_]+_(u8|u16|u32|s8|s16|s32)
, соответствует текстовому шаблону, который заканчивается определенным суффиксом.
int _text_; //Does not match int _text_s16; //Matches int _text_s33; // Does not match
[a-z0-9_]+_(u8|u16|u32|s8|s16|s32)(_b3|_b8)?
, соответствует текстовому шаблону, который заканчивается определенным суффиксом и необязательным вторым суффиксом.
int _text_s16; //Matches int _text_s16_b8; //Matches
Полный список регулярных выражений см. в документации Perl.
Чтобы использовать или обновить существующий файл правил кодирования, щелкните, чтобы открыть Findings selection окно, а затем выполните одно из следующих действий:
Введите полный путь к файлу в указанном поле
Щелкните Browse и перейдите к местоположению файла.
Polyspace не проверяет ваш код на соответствие настраиваемым правилам именования.
Параметр:
-custom-rules
|
Значение:
from-file , задайте файл используя Set checkers by file (-checkers-selection-file) |
По умолчанию: Off |
Пример (Bug Finder):
Polyspace Bug Finder -sources file_name |
Пример (Code Prover):
Polyspace Code Prover -sources file_name |
Пример (Bug Finder Server):
polyspace-bug-finder-server -sources file_name |
Пример (Код Prover Server):
Полипространство -code-prover-server -sources file_name |