ГОСТ Р МЭК 61360-2—2013
С помощью введенных обозначений синтаксис рассматриваемого подмножества метаязыка EBNF (исполь
зуемый в настоящем стандарте для задания формата значений свойств) характеризуется следующей грамматикой
(описание символов метаидентификаторов. букв и цифр отсутствует):
syntax - syntaxrule,(syntaxrule J;
syntaxrule -metaidentifier,definittonslist,
defimtionslist - singledefimtion, ( • singledefimtion (;
singiedefinition - term, ( ’ term 1;
term -primary, (primary );
primary -optionaisequence |repeatedsequence Igrcupedsequence |
metaidentifier |terminal |empty;
optionaisequence -defimtionslist ’|’;
repeatedsequence - 4’ definitionsliat
groupedsequence - •(* definition3list
metaidentlfler - letter, (letter );
terminal -(character -(character -
I(character -(character -
empty
Знак равенства я-» указывает синтаксическое правило. Метаидентифихатор слева можно заменить комби
нацией элементов справа. Любые пробелы междуэлементами информации не несут, если толькоони не находятся
внутри терминала. Синтаксическое правило закачивается символом «;».
Использованию метаидентификатора внутри списка определений означает, что нетерминальный символ на
ходится слева от другого синтаксического правила. Метаидентифихатор составлен из бухв и цифр. Первый сим
вол — буква. Если термин содержит и первичное выражение перед знаком «минус», и первичное выражение за
знаком «минус», то только последовательность символов, представленная первым первичным выражением и не
представленная вторым первичным выражением, представляется термином.
Пример 1— Обозначение:
символ-’"”,
означает любой символ (кроме апострофа), вставленный между двумя апострофами.
Терминал означает символ, который не может быть расширен далее с помощью синтаксического правила
и который появится в окончательном результате. Терминал может быть представлен двумя способами: либо это
набор символов без апострофа (вставленный между двумя апострофами), либо это набор символов без кавычек
(вставленный между двумя кавычками).
Пример 2 — Предположим, что мы хотим установить (с помощью данной грамматики) цену
продукта в евро. €. Цена — это положительное число не более чем с двумя цифрами после запятой
(центы). Определим три мета-идентификатора, ассоциированных с тремя синтаксическими пра
вилами:
dig-t
- ’ 0* | *1* I •2 **3» | М *’S ’ I ’6*’
7
’ I ’8’ I *9*;
cents - [ *.*, digit [, digit ) );
euros - digit {, digit ) cents;
По указанным синтаксическим правилам: 012, 4323.3, 3.56 — это примеры незапрещенных пред
ставлений цены в евро. Аналогично 12...10— это примеры недопустимых представлений цены в евро.
D.3 Типы формата значений данных
Грамматика, определенная в данном приложении, определяет 9 различных типов форматов значения: 4 ко
личественных и 5 неколичественных форматов значения.
В следующем разделе определяются метаидентификаторы, используемые для описания указанных
форматов. В разделе D.5 определяется синтаксическое правило для 4-х метаидентификаторов. представля
ющих 4 количественных формата значения, вместе с их смыслом на уровне значений. В разделе D.6 опреде
ляются метаидентификаторы для 5-ти неколичественных форматов значения вместе с их смыслом на уровне
значений.
D.4 Метаидентификаторы, используемые для определения форматов
Метаидентификаторы, используемые в грамматике, определяющей различные форматы значений:
dot =(точка);
decimalMark = V; (десятичная точка);
exponentlndicator = ’Е’: (показатель степени);
140