RFC: 5234
Оригинал: Augmented BNF for Syntax Specifications: ABNF
Предыдущие версии: RFC 2234, RFC 4234
Категория: Стандарт Интернета
Дата публикации:
Авторы: ,
Перевод: Николай Малых

RFC 5234, Страница 3 из 11

2.3. Терминальные значения

Правила преобразуются в строки терминальных значений, иногда называемых символами. В ABNF символ — это просто неотрицательное целое число. В некоторых случаях задается специфическое отображение (кодирование) значений в набор символов (такой, как ASCII).

Терминалы задаются одной или множеством цифр с явно заданным основанием. В настоящее время определены следующие варианты оснований чисел:

b           =  binary

d           =  decimal

x           =  hexadecimal

Следовательно, записи:

CR          =  %d13

CR          =  %x0D

задают, соответственно, десятичное и шестнадцатеричное представление символа возврата каретки [US-ASCII].

Связанные (concatenated) строки таких значений задаются в компактной форме с использованием символа точки (.) в качестве разделителя. Следовательно,

CRLF        =  %d13.10

ABNF разрешает указывать текстовые строки непосредственно, помещая текст в двойные кавычки.

command     =  "command string"

Текстовые строки интерпретируются как связанное множество печатных символов.

Примечание: регистр букв текстовых строках ABNF не принимается во внимание, а в качестве набора символов используется USASCII.

Следовательно,

rulename = "abc"

и

rulename = "aBc"

будут соответствовать "abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC" и "ABC".

Для задания правила, в котором регистр символов принимается во внимание символы следует задавать по-отдельности.

Например,

rulename    =  %d97 %d98 %d99

или

rulename    =  %d97.98.99

будут соответствовать только строкам, содержащим лишь строчные буквы abc.

2.4. Внешнее кодирование

Внешнее представление символов терминальных значений будет меняться в соответствии с условиями среды хранения и передачи. Следовательно, одна и та же грамматическая конструкция ABNF может иметь различное внешнее кодирование (например, одно представление для 7-битовой среды US-ASCII, другое для двоичной среды на базе октетов, третье для 16-битовой среды Unicode). Детали кодирования выходят за пределы ABNF, хотя в Приложении В (Основы) приводятся определения для 7-битовой среды US-ASCII, как наиболее распространенной в Internet.

Разделение внешнего кодирования и синтаксиса предназначено для того, чтобы могли использоваться дополнительные среды кодирования для одного и того же синтаксиса.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.