Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Метаязык на основе формы Бэкуса — Наура (BNF)
В информатике расширенная форма Бэкуса — Наура (ABNF) — это метаязык, основанный на форме Бэкуса — Наура (BNF), но имеющий собственный синтаксис и правила вывода. Основная цель ABNF — описание формальной системы языка для использования в качестве двунаправленного протокола связи. Он определён в стандарте Internet Standard 68 ("STD 68", тип case sic), который по состоянию на 2010 год является языком определения для коммуникационных протоколов IETF. заменяет и обновляет его, добавляя синтаксис для указания строковых литералов с учетом регистра.
Metalanguage based on Backus–Naur Form (BNF)
In computer science, augmented Backus–Naur form (ABNF) is a metalanguage based on Backus–Naur form (BNF), but consisting of its own syntax and derivation rules. The motive principle for ABNF is to describe a formal system of a language to be used as a bidirectional communications protocol. It is defined by Internet Standard 68 ("STD 68", type case sic), which as of 2010 is , and it often serves as the definition language for IETF communication protocols. supersedes updates it, adding a syntax for specifying case sensitive string literals.
Конечные значения
Терминалы задаются одним или несколькими числовыми символами. Числовые символы могут быть указаны как знак процента %, за которым следует основание (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.
Terminals are specified by one or more numeric characters. Numeric characters may be specified as the percent sign %, followed by the base (b = binary, d = decimal, and x = hexadecimal), followed by the value, or concatenation of values (indicated by . ). For example, a carriage return is specified by %d13 in decimal or %x0D in hexadecimal. A carriage return followed by a line feed may be specified with concatenation as %d13.10. Literal text is specified through the use of a string enclosed in quotation marks ("). These strings are case insensitive, and the character set used is (US )ASCII. Therefore, the string "abc" will match “abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC”, and “ABC”. RFC 7405 added a syntax for case sensitive strings: %s"aBc" will only match "aBc". Prior to that, a case sensitive string could only be specified by listing the individual characters: to match “aBc”, the definition would be %d97.66.99. A string can also be explicitly specified as case insensitive with a %i prefix.
Белое пространство
Белое пространство используется для разделения элементов определения; чтобы пространство распознавалось как разделитель, оно должно быть явно указано. Явная ссылка для одного символа белого пространства — WSP (линейное белое пространство), а LWSP — для нуля или более символов белого пространства, допускающих наличие символов новой строки. Определение LWSP в RFC5234 вызывает споры, поскольку для формирования разделителя между двумя полями требуется как минимум один символ белого пространства. Определения выравниваются по левому краю. Если требуется несколько строк (для удобства чтения), последующие строки имеют отступ, создаваемый пробелами.
White space is used to separate elements of a definition; for space to be recognized as a delimiter, it must be explicitly included. The explicit reference for a single whitespace character is WSP (linear white space), and LWSP is for zero or more whitespace characters with newlines permitted. The LWSP definition in RFC5234 is controversial because at least one whitespace character is needed to form a delimiter between two fields. Definitions are left aligned. When multiple lines are required (for readability), continuation lines are indented by whitespace.