BNF was introduced by John Backus to the Algol 60 committee and Pete Naur worked with him to define a tool for defining
Algol 60:
[ algol60.syntax.html ]
Since then various extensions to BNF have appeared in every programming
languages reference manual.
Pāṇini, a grammarian from India who lived sometime between 4th and 7th century BCE, presented a notation which is equivalent in its power to that of Backus and has many similar properties.
ABNF
описана в RFC
XBNF
???
BS6154
BSI (British Standards Institution). BS 6154:1981 Method of defining — syntactic metalanguage. 1981. ISBN 0-580-12530-0
Другое разное про стандарты
ISO/IEC Directives — Part 3. Drafting and presentation of International Standards. International Organization for Standardization, Geneva,1989.
ISO/IEC TR 12382:1992. Permuted index of the vocabulary of information processing. ISO/IEC Copyright Office, Geneva. 1992.
Как писать грамматику
Был такой парень, описал грамматику Санскрита (то ли в седьмом, то ли в четвёртом веке до новой эры):
https://en.wikipedia.org/wiki/Pāṇini
Pāṇini's work became known in 19th-century Europe, where it influenced modern linguistics initially through Franz Bopp, who mainly looked at Pāṇini.
Staal notes that the idea of formal rules in language – proposed by Ferdinand de Saussure in 1894
and developed by Noam Chomsky in 1957 – has origins in the European exposure to the formal rules of Pāṇinian grammar
ISO 8859-1:1987, Information Processing — 8-bit single-byte coded graphic character sets — Part 1: ISO Latin Alphabet No. 1 (ISO Latin-1). ISO/IEC Copyright Office, Geneva. 1987.
Автор Eto.Parser-а рекомендует писать кодом, а не ebnf-грамматикой.
и приводит примеры того, что в коде можно сделать, а грамматикой - нет.
Это проистекает из следующих причин:
1) стандарты на синтаксис для описания грамматики написаны неконкретно (ISO/IEC 14977);
2) ABNF (из RFC) не поддерживается в Eto.Parse по состоянию на 2015-09-07;
3) рекурсивному парсеру важно в каком порядке применяются части правил (а не должно быть важно, это недосток подхода);
рекурсивному спуску вообще и Eto.Parse в частности?
и хочешь ли ты их изучать или для текущего момента попробовать дописать грамматику, пока автор помогает?
а потом оставить эту грамматику в отдельно-взятой утилите.
ну это только временный выход, ведь такую утилиту в дальнейшем прийдётся переписывать при унификации подходов.