Статус документа
Статус документа

ГОСТ Р ИСО 10303-11-2009 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

     7.1.6 Комментарии


Комментарий используется для документирования и должен интерпретироваться синтаксическим анализатором языка EXPRESS как пустое пространство. Существуют две формы комментария - встроенный комментарий и заключительный комментарий. Обе формы комментария могут быть ассоциированы с идентифицированной конструкцией посредством метки комментария.

7.1.6.1 Встроенный комментарий

Пара символов (* обозначает начало встроенного комментария, а пара символов *) обозначает его окончание. Встроенный комментарий может располагаться между любыми двумя лексемами.

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

   Cинтаксис:

     145 embedded_remark =

' (* ' [ remark_tag ] { (not_paren_star { not_paren_star } ) |

lparen_then_not_lparen_star | (' * ' { ' * ' } ) |

not_rparen_star_then_rparen | embedded_remark } ' *)'.

     147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

     148 remark_ref =

attribute_ref | constant_ref | entity_ref | enumeration_ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ref | variable_ref .

     131 not_par en_star =

letter | digit | not_paren_star_special .

     128 letter =

' a '

' b '

' c '

' d '

' e '

' f '

' g '

' h '

' i '

' j '

' k '

' l '

' m '

' n '

' o '

' p '

' q '

' r '

' s '

' t '

' u '

' v '

' w '

' x '

' y '

 ' z ' .

     124 digit =

' 0 '

' 1 '

' 2 '

' 3 '

' 4 '

' 5 '

' 6 '

' 7 '

' 8 '

  ' 9 ' .

     133 not_paren_star_special = not_paren_star_quote_special | ' ' ' ' .

     132 not_paren_star_ quote_ special =

' ! '

' " '

' # '

' $ '

' % '

' & '

' + '

' , '

' - '

' . '

' / '

' : '

' ; '

' < '

' = '

' > '

' ? '

' @ '

' [ '

' \ '

' ] '

' ^ '

' _ '

' ' '

' { '

' | '

' } '

  ' ~ ' .

     129 lparen_then_not_lparen_star = ' ( ' { ' ( ' } not_lparen_star { not_lparen_star }.

     130 not_lparen_star = not_paren_star | ' ) ' .

     138 not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ' ) ' { ' ) ' }.

     135 not_rparen_star = not_paren_star | ' ( ' .


Встроенные комментарии могут быть вложенными.

Примечание - При формировании вложенных комментариев необходимо обратить внимание на наличие согласованных пар символов, обозначающих начало и конец комментария.


Пример - Следующая строка демонстрирует пример встроенного комментария:

(* Символы ' (* ' начинают комментарий, а символы ' *) ' его заканчивают *)

7.1.6.2 Заключительный комментарий

Заключительный комментарий записывается в конце физической строки. Два последовательных дефиса "--" начинают заключительный комментарий, а первый встреченный символ "новая строка" заканчивает его.

   Синтаксис:

     149 tail_remark =

'--' [ remark_tag ] { \а | \s | \х9 | \хА | \xD } \n .

     147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

     148 remark_ref =

attribute_ref | constant_ref | entity_ref | enumeration_ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ ref | variable_ ref .


Пример - -- это комментарий, заканчивающийся символом "новая строка".

7.1.6.3 Метка комментария

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

   Синтаксис:

     147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

     148 remark_ ref =

attribute ref | constant_ ref | entity_ ref | enumeration_ ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ref | variable_ref .


Правила и ограничения:

a) Элемент remark_ref должен соответствовать правилам видимости, определенным в 10.2.

b) В составной ссылке комментария правила видимости, определенные в 10.2, должны использоваться следующим образом: ссылка слева от символа '.' должна идентифицировать область видимости, в которой определена ссылка, расположенная справа от символа '.'.

Примечание - Составная ссылка комментария представляет собой ссылку комментария, в которой используется нотация с символом '.' (см. синтаксическое правило 147).

c) Если ссылка комментария не найдена в соответствии с указанными выше правилами видимости, то комментарий не должен ассоциироваться с каким-либо элементом.

d) Помеченный комментарий, содержащий другие помеченные комментарии (посредством вложенности), должен ассоциироваться целиком (включая вложенные комментарии) с указанным элементом.