Спецификация формата значения
Настоящий стандарт и МЭК 61360-2 приводят конкретный синтаксис формата строк и численных значений, ассоциируемых со свойством.
Пример 1 - Формат NR1 3 устанавливает, что допустимы только целые, состоящие из трех цифр.
Примечание 1 - Формат значения типа данных data_type, включая булевский тип boolean_type, не устанавливается.
Примечание 2 - В настоящем стандарте определение формата значения свойства не обязательно.
Синтаксис допустимого формата определен в данном Приложении с помощью подмножества расширенной формы Бэкуса-Наура (EBNF), определенного в ИСО/МЭК 14977.
Смысл каждого варианта синтаксиса (символов, используемых для представления значения) не может быть задан с помощью формы EBNF. Смысл каждой части формата символов, допустимых для представления значений, устанавливается отдельно для каждой части формата.
Пример 3 - Синтаксис формата NR1 3 имеет следующий смысл: NR1 означает, что можно представить только целое значение. Пробел означает, что можно использовать только фиксированное число символов. Цифра 3 означает допустимое количество цифр в записи.
D.1 Обозначения
Таблица D.1 содержит подмножество синтаксического мета-языка EBNF, определенного в ИСО/МЭК 14977 и использованного в настоящем стандарте. Данный язык устанавливает формат значений свойств.
С помощью введенных обозначений синтаксис рассматриваемого подмножества мета-языка EBNF (используемый в настоящем стандарте для задания формата значений свойств) характеризуется нижеследующей грамматикой (описание символов мета-идентификаторов, букв и цифр отсутствует):
Знак равенства указывает синтаксическое правило. Мета-идентификатор слева можно заменить комбинацией элементов справа. Любые пробелы между элементами информации не несут, если только они не находятся внутри терминала. Синтаксическое правило закачивается символом .
Таблица D.1 - Синтаксический мета-язык EBNF по ИСО/МЭК 14977
Представление | Названия символов по ИСО/МЭК 10646-1 | Символ мета-языка и его роль |
апостроф | Одинарная кавычка представляет терминал языка. Терминал не должен содержать апостроф. Пример: | |
кавычки | Двойная кавычка представляет терминал языка. Терминал не должен содержать кавычки. Пример: | |
( ) | левая скобка, правая скобка | Символы начала/окончания группы. Содержание рассматривается как один символ |
[ ] | левая квадратная скобка, правая квадратная скобка | Символ начала/окончания опции. Содержание может быть и может не быть |
{ } | левая фигурная скобка, правая фигурная скобка | Символ начала/окончания повтора. Содержание может повторяться от 0 до раз |
- | тире-минус | Символ замены |
, | запятая | Символ последовательного соединения |
= | знак равенства | Символ определения. |
I | вертикальная линия | Альтернативный разделитель |
; | точка с запятой | Символ терминатора. Окончание синтаксического правила |
Использование мета-идентификатора внутри списка определений означает, что нетерминальный символ находится слева от другого синтаксического правила. Мета-идентификатор составлен из букв и цифр. Первый символ - буква. Если термин содержит и первичное выражение перед знаком "минус", и первичное выражение за знаком "минус", то только последовательность символов, представленная первым первичным выражением и не представленная вторым первичным выражением, представляется термином.
Пример 1 - Обозначение:
означает любой символ (кроме апострофа), вставленный между двумя апострофами.
Терминал означает символ, который не может быть расширен далее с помощью синтаксического правила, и который появится в окончательном результате. Терминал может быть представлен двумя способами: либо это набор символов без апострофа (вставленный между двумя апострофами), либо это набор символов без кавычек (вставленный между двумя кавычками).
Пример 2 - Предположим, что мы хотим установить (с помощью данной грамматики) цену продукта в евро €. Цена - это положительное число с не более, чем 2 цифрами после запятой (центы). Определим три мета-идентификатора, ассоциированных с тремя синтаксическими правилами: