Введение

Метаязык на основе формы Бэкуса — Наура (BNF)
В информатике расширенная форма Бэкуса — Наура (ABNF) — это метаязык, основанный на форме Бэкуса — Наура (BNF), но имеющий собственный синтаксис и правила вывода. Основная цель ABNF — описание формальной системы языка для использования в качестве двунаправленного протокола связи. Он определён в стандарте Internet Standard 68 ("STD 68", тип case sic), который по состоянию на 2010 год является языком определения для коммуникационных протоколов IETF. заменяет и обновляет его, добавляя синтаксис для указания строковых литералов с учетом регистра.

Конечные значения

Терминалы задаются одним или несколькими числовыми символами. Числовые символы могут быть указаны как знак процента %, за которым следует основание (b = двоичное, d = десятичное и x = шестнадцатеричное), а затем значение или конкатенация значений (обозначается точкой .). Например, символ возврата каретки задается как %d13 в десятичной системе или %x0D в шестнадцатеричной. Возврат каретки, за которым следует перевод строки, может быть задан с помощью конкатенации как %d13.10. Литеральные строки задаются с использованием строки, заключенной в двойные кавычки ("). Эти строки не чувствительны к регистру, и используется набор символов (US) ASCII. Таким образом, строка "abc" будет соответствовать "abc", "Abc", "aBc", "abC", "ABc", "AbC", "aBC" и "ABC". RFC 7405 добавил синтаксис для строк, чувствительных к регистру: %s"aBc" будет соответствовать только "aBc". До этого строку, чувствительную к регистру, можно было задать только путем перечисления отдельных символов: для соответствия "aBc" определение было бы %d97.66.99. Строку также можно явно указать как нечувствительную к регистру с префиксом %i.

Белое пространство

Белое пространство используется для разделения элементов определения; чтобы пространство распознавалось как разделитель, оно должно быть явно указано. Явная ссылка для одного символа белого пространства — WSP (линейное белое пространство), а LWSP — для нуля или более символов белого пространства, допускающих наличие символов новой строки. Определение LWSP в RFC5234 вызывает споры, поскольку для формирования разделителя между двумя полями требуется как минимум один символ белого пространства. Определения выравниваются по левому краю. Если требуется несколько строк (для удобства чтения), последующие строки имеют отступ, создаваемый пробелами.