ABNF - первая публикация 1977-11-21, последняя публикация 2008-01
русский текст (перевод):
https://rfc2.ru/5234.rfc
английский текст (исходный):
https://tools.ietf.org/html/rfc5234
"в качестве набора символов используется USASCII" - это конечно не UTF-8.
Хитрый (неявный) способ задания регистронезависимых строк.
Есть механизм создания производных спецификаций (но неясно, как им пользоваться).
Есть возможность задавать диапазоны кодов для символов.
В отличие от EBNF не содержит операции исключения.
Мне осталось неясным, как указать произвольный символ.
упоминается возможность задавать неупорядоченные группы, но такой возможности нет в формальном описании синтаксиса, это путает.
EBNF - 1996 год
русский текст можно найти тут:
https://groups.google.com/forum/?hl=ru# … alizations
исходный текст
https://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf
тут нужны запятые и точка с запятой для разделения терминалов и правил (больше текста писать)
комментарии оформляются как (* ... *) вместо ; ...
есть "syntactic exception", за который я эту спецификацию и люблю.
можно сказать, что ABNF соотносится с EBNF как python с C#. Первые более компактнее в записи, но в них меньше синтаксического сахара.
Отредактировано Лис (2017-03-23 09:02:53)