ГОСТ Р И С 0 10303-11 — 2009
7.1.5 Пустое пространство
Пустое пространство втексте образуется посредством символов, определенных в 7.1.5.1 — 7.1.5.3 и
7.1.6. Пустое пространстводолжно использоваться для разделения лексем в EXPRESS-схемах.
П р и м е ч а н и е — Свободное и последовательное использование пустого пространства может
улучшитьструктуру и удобочитаемость схемы.
7.1.5.1 Символ пробела
Один или несколько пробелов (позиция 20 из набора символов EXPRESS) могут располагаться меж
ду двумя лексемами. Обозначение \s может использоваться для представления символа пробела всинтак
сических структурах языка.
7.1.5.2 Новая строка
Символом новойстроки заканчивается каждая строка в формальной спецификации на языке EXPRESS.
Обычно символ новой строки трактуется как пробел, но он является значимым символом, если им заканчи
вается комментарий или анормально заканчивается строковый литерал. В синтаксических структурах язы ка
символ новой строки представляется обозначением \п.
Представлениесимвола новойстроки зависит от конкретной реализации.
7.1.5.3 Другие символы
Символы из позиций 09.0А и 0D должны трактоваться как пустое пространство, кроме случаев, когда
они встречаются в строковом литерале. Для представления этих символов в синтаксических структурах
языка должно использоваться обозначение \хп. где п является одним из символов 9. А или D.
7.1.6 Комментарии
Комментарий используетсядля документирования идолжен интерпретироваться синтаксическимана
лизатором языка EXPRESS как пустое пространство. Существуют две формы комментария - встроенный
комментарий и заключительный комментарий. Обе формы комментария могут бьггьассоциированы с иден
тифицированной конструкцией посредством метки комментария.
7.1.6.1 Встроенный комментарий
Пара символов (* обозначает начало встроенного комментария, а пара символов *) обозначает его
окончание. Встроенный комментарий может располагаться между любыми двумя лексемами.
Любой символ из набора символов языка EXPRESS может присутствовать между началом и концом
встроенного комментария, включая символ новой строки, поэтому встроенные комментарии могут содер
жать несколькофизическихстрок.
Синтаксис:
145embedded_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}’ * ’.
148remark_ref= attribute_ref | constant_ref | entity_ref | enumeration_ref |
function_ref | parameter_ref | procedure_ref | mle_label_ref |
rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |
type_ref | variable_ref.
131 not_paren_star = letter | digit | not_paren_star_special.
128letter =’ a 1|’ b ’ |’o ’|‘ d ’| ’ e 1|Т ~ | ’g ’ | ’ h ’| ’\’|*j ’| ’k 1
•I’ | ’ m ’ | ’ n’ | ’ o’ | ‘ p 1| ’ q ’ | V | ’ s ’ | T| *u* | ’ V |
• w ’ | -x* | ’ у ‘ | ’ z ’ .
124 digit = ’O ’ | 4 * | ’ 2 ’ I ’ 3 ’ I *4 ’ I ’ 5 ’ I ’ 6 ’ I ’ 7 ’ I ’ 8 ‘ I ‘ 9 ’-
133not_paren_star_special = not_paren_star_quote_special |
132not_paren_star_quote_special= ’! ’ |
... , .
| ’ # ’ | ’ $ ’ | ’% ’ | ’
. ,, ... j ... ,
& ’ | * + ’ | ’ . 1 |
j . = . , |
■?
t
@’ i тii *]’ i , л ’ iII
TI TI ’}• I
129lparen_then_not_lparen_star= ’( ’ { ’( ’ } not_lparen_star{ not_lparen_star}.
130not_lparen_star = not_paren_star | ’ )’.
138по1_фагеп_81аг_Феп_фагеп = по1_фагеп_81аг{по1_грагеп_81аг) ‘ ) ’ { ’ ) ’ }-
135 по1_фагеп_81аг = not_paren_star | ’ (’.
8