Я читаю EBNF: обозначение для описания синтаксиса глава MR. Ричард Э. Паттис. Его материал для меня очень полезен и понятен. Но перед этим я прочитал ISO / IEC 14977: 1996 (E) стандарт ... Я вижу обозначения и синтаксис EBNF, написанные г-ном. Ричард Э. Паттис не такой, как в стандарте. Я не понимаю причину этого ...
Например, стандарт пишет:
a) Конечные символы языка заключаются в кавычки, так что любой символ, включая тот, который используется в Extended BNF, может быть определен как конечный символ определяемого языка.
Но мистер. Паттис не использует кавычки в собственных образцах. Вдобавок он использует неудобный способ написания нетерминальных символов в качестве терминальных: например, |
char, который он помещает в поле (похоже, граница вокруг символа в MS Word). Обычные текстовые редакторы не могут этого сделать. Поэтому этот способ неудобен.
Также стандарт пишет:
г) Каждое правило имеет явный финальный символ, так что никогда не возникает двусмысленности относительно того, где заканчивается правило.
Но мистер. Паттис не использует финальные символы в собственных сэмплах.
Согласно стандарту символ "=" является определяющим-символом, но mr. Паттис использует вместо этого буквы «⇐».
и т.д
Пример кода главы:
digit ⇐ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
integer ⇐ [+|-]digit{digit}
Для сравнения: в ISO / IEC 14977: 1996 (E) standard каждая цифра изолирована кавычками, а точка с запятой используется в качестве последнего символа:
decimal digit = ’0’ | ’1’ | ’2’ | ’3’ | ’4’ | ’5’ | ’6’ | ’7’ | ’8’ | ’9’;
Наличие слова «EBNF» в названии главы меня смущает ... Может быть, слово «BNF» надо писать вместо слов «EBNF» в названии главы? А может я нашел неправильный вариант стандарта?
Дополнительный вопрос: кто-нибудь знает адреса форумов, где я могу задать свои вопросы о EBNF и его стандарте? Я еще ничего не нашел ...
С уважением, Андрей
bnf syntax checker
from icosaedro. - person sunny moon   schedule 01.07.2016,
или нетерминальных имен, содержащих-
(?) - person stefanct   schedule 13.08.2016