Расширенные BNF |
||
< Соглашения по нотации и общая грамматика | Содержание | Основные правила > |
Все механизмы, специфицированные в данном документе, описаны с использованием обычного текста и расширенных форм Бахуса-Наура BNF (Backus-Naur Form; см. RFC 822). Пользователи должны быть знакомы с этой нотацией для понимания данной спецификации. Расширение BNF включает в себя следующие конструкции: name = definition Имя правила не требует помещения в угловые скобки. Некоторые базовые правила записываются прописными буквами, например, SP, LWS, HT, CRLF, DIGIT, ALPHA и пр. "literal" Двойные кавычки используются для выделения символьного текста. rule1 | rule2 Элементы, разделенные вертикальной чертой, ("|") являются альтернативными, например, "yes | no" допускает yes или no (да или нет). (rule1 rule2) Элементы, помещенные в круглые скобки, рассматриваются как один элемент. Так, "(elem (foo | bar) elem)" допускают последовательности "elem foo elem" и "elem bar elem". *rule Символ "*", предшествующий элементу, указывает на повторение. Полная форма " [rule] В квадратные скобки заключаются опционные элементы; "[foo bar]" эквивалентно "*1(foo bar)". N rule Специальный повтор: " #rule Конструкция "#" определена подобно "*", для описания списка
элементов. Полная форма имеет вид " ; комментарий Точка с запятой, смещенная вправо от линейки текста, открывает комментарий, который продолжается до конца строки. Это простой способ включения замечаний в текст спецификаций. implied *LWS Грамматика, описанная в данной спецификации, ориентирована на слова. Если не оговорено обратное, строчный пробел (LWS) может быть заключен между любыми двумя соседними словами (лексема или заключенная в кавычки строка), и между смежными лексемами (token) и разделителями (TSpecials) без изменения интерпретации поля. По крайней мере один разграничитель (TSpecials) должен присутствовать между любыми двумя лексемами, так как они иначе будут интерпретироваться как одна. |
||
RFC 2068 |