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.
Разделение внешнего кодирования и синтаксиса предназначено для того, чтобы могли использоваться дополнительные среды кодирования для одного и того же синтаксиса.