Эта таблица приводит все элементы, атрибуты и значения XML, который можно использовать, чтобы задать формат аннотации и сопоставить его с синтаксисом аннотации Polyspace. Для примера того, как отредактировать XML, чтобы задать синтаксис аннотации, смотрите, Задают Пользовательский Формат Аннотации.
Элемент | Атрибут | Использование | Значение |
---|---|---|---|
Annotations | Group | Необходимый | Определяемая пользователем строка. Например, "Пользовательские Аннотации" |
Expressions | Search_For_Keywords | Необходимый | Определяемая пользователем строка. Эта строка является ключевым словом, которое вы включаете в шаблон своего синтаксиса аннотации, чтобы помочь идентифицировать его. Например, "myKeyword" |
Separator_Result_Name | Необходимый | Определяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете несколько имен результата Polyspace в той же аннотации. Например"", | |
Separator_Family_And_Result_Name | Дополнительный | Определяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете несколько семейств результатов Polyspace в той же аннотации. Например, "" | |
Separator_Family | Дополнительный | Определяемая пользователем строка. Эта строка является диафрагмой, когда вы перечисляете Polyspace, заканчивается семейство и приводит имя к той же аннотации. Например, ":" | |
Expression | Mode | Необходимый | SAME_LINE |
GOTO_INCREMENT
| |||
BEGIN
| |||
END
| |||
END_ALL
| |||
Аннотация применяется к следующей строке кода. Комментарии и пустые строки проигнорированы. | |||
GOTO_LABEL
| |||
LABEL
| |||
XML_START
| |||
Аннотация для этого выражения должна быть на одной строке. | |||
XML_END
| |||
Regex | Необходимый | Строка поиска регулярного выражения, которая совпадает с шаблоном вашей аннотации. | |
Rule_Identifier_Position | Необходимый, кроме тех случаев, когда вы устанавливаете Mode="END_ALL" or "LABEL" | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Increment_Position | Требуемый только, когда вы устанавливаете Mode="GOTO_INCREMENT" | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Status_Position | Дополнительный | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Severity_Position | Дополнительный | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Comment_Position
| Дополнительный | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Label_Position | Требуемый только, когда вы устанавливаете Mode="GOTO_LABEL" or "LABEL" | Целое число. Целочисленное значение этого атрибута соответствует количеству вводных круглых скобок в регулярном выражении перед соответствующим поисковым выражением. | |
Case_Insensitive
| Дополнительный | TRUE или FALSE. Когда вы не объявляете этот атрибут, значение по умолчанию является ложным. | |
Is_Pragma
| Дополнительный | TRUE или FALSE. Когда вы не объявляете этот атрибут, значение по умолчанию является ложным. Установите этот атрибут на истину, если вы хотите объявить свою аннотацию с помощью прагмы вместо комментария. | |
Applies_Also_On_Same_Line | Дополнительный | TRUE или FALSE. Когда вы не объявляете этот атрибут, значение по умолчанию верно. Используйте этот атрибут, чтобы позволить аннотациям со старым синтаксисом Polyspace применяться на ту же строку кода. | |
Mapping | 'none' | 'none' | 'none' |
Result_Name_Mapping | Rule_Identifier | Необходимый | Определяемый пользователем |
Family | Необходимый | Соответствует семейству результатов Polyspace. Для списка позволенных значений смотрите позволенные значения. | |
Result_Name | Необходимый | Соответствует именам результата Polyspace. Для списка позволенных значений смотрите позволенные значения. |
Этот пример кода покрывает некоторые реже используемые атрибуты для определения аннотаций в XML.
<?xml version="1.0" encoding="UTF-8"?> <Annotations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="annotations_xml_schema.xsd" Group="XML Template"> <Expressions Separator_Result_Name="," Search_For_Keywords="myKeyword"> <Expression Mode="GOTO_LABEL" Regex="(\A|\W)myKeyword\s+S\s+(\d+(\s*,\s*\d+)*)\s+([a-zA-Z_-]\w+)" Rule_Identifier_Position="2" Label_Position="4" /> <Expression Mode="LABEL" Regex="(\A|\W)myKeyword\s+L:(\w+)" Label_Position="2" /> <!-- Annotation applies starting current line until next declaration of label word "myLabel" Example: code; // myKeyword S 100 myLabel ... more code; // myKeyword L myLabel --> <Expression Mode="BEGIN" Regex="#\s*pragma\s+myKeyword_MESSAGES_ON\s+(\w+)" Rule_Identifier_Position="1" Is_Pragma="true" /> <!-- Annotation declared with pragma instead of comment Example:#pragma myKeyword_MESSAGES_ON 100 --> <!-- Comment declaration with XML format--> <!-- XML_START must be declared before XML_CONTENT --> <Expression Mode="XML_START" Regex="<\s*myKeyword_COMMENT\s*>" /> <!-- Example: <myKeyword_COMMENT> --> <Expression Mode="XML_CONTENT" Regex="<\s*(\d*)\s*>(((?![*]/)(?!<).)*)</\s*(\d*)\s*>" Rule_Identifier_Position="1" Comment_Position="2" /> <!-- Example: <100>This is my comment</100> XML_CONTENT must be declare on a single line. <100>This is my comment </100> is incorrect. --> <Expression Mode="XML_END" Regex="</\s*myKeyword_COMMENT\s*>" /> <!-- Example: </myKeyword_COMMENT> --> </Expressions> <Mapping> <Result_Name_Mapping Rule_Identifier="100" Family="MISRA-C" Result_Name="4.1"/> </Mapping> </Annotations> |