* Да, бесплатно - даже если вы также можете заплатить за это 74 CHF, если хотите. Посмотрите на примечание под коробкой, содержащей заряжаемые предметы.
Вопрос стремится превратить эту «BNF» в EBNF:
<vardec> ::= var <vardeclist>;
<vardeclist> ::= <varandtype> {;<varandtype>}
<varandtype> ::= <ident> {,<ident>} : <typespec>
<ident> ::= <letter> {<idchar>}
<idchar> ::= <letter> | <digit> | _
БНФ формально не определена, поэтому мы должны сделать некоторые (легко) догадывается, как к тому, что это значит. Перевод является обычным делом (это может быть механическим, если BNF формально определяется):
vardec = 'var', vardeclist, ';';
vardeclist = varandtype, { ';', varandtype };
varandtype = ident, { ',', ident }, ':', typespec;
ident = letter, { idchar };
idchar = letter | digit | '_';
угол скобки должны быть удалены вокруг нетерминалов; символ определения ::=
заменяется на =
; терминалы, такие как ;
и _
, заключены в кавычки; конкатенация явно отмечена ,
; и каждое правило заканчивается ;
. Группировка и альтернативные операции в оригинале совпадают со стандартными обозначениями. Обратите внимание, что явное конкатенация с запятой означает, что многословные нетерминалы недвусмысленны.
† Повседневного изучения стандарта сам наводит на мысль о том, что {...}-
обозначение не является частью стандарта, только на бумаге.Однако, как jmmut отмечает в comment, стандарт делает определить смысл {…}-
:
синтаксических срок пункта 5.8
...
Когда синтаксический-член является синтаксическим фактором с последующим за исключением символа, за которым следует синтаксическое исключение, представляет любую последовательность символов, которая удовлетворяет как условиям:
а) это последовательность символов, представленная синтаксическим фактором,
b) это не последовательность символов, представленных синтаксическим исключением .
...
Примечание - { "A" } -
представляет собой последовательность одного или больше, потому что это синтаксический-член с пустым синтаксическим-исключением.
возможно дубликат [Преобразование BNF в EBNF] (http://stackoverflow.com/questions/8101594/converting-bnf-to-ebnf) – CharlesB
Что именно вы испытываете проблемы? –
Вопрос «Возможный дубликат» имеет один ответ, который содержит две ссылки на материал вне SO. Он, безусловно, задает примерно эквивалентный вопрос; однако он не имеет очень хорошего ответа, поэтому он не является хорошим дубликатом. –