2017-02-18 13 views
2

Добрый день. Мне было интересно, если бы я хотел сделать форму Бэксу-Наура, представляющую, например, предложение if-else в Java, как бы я мог использовать OR и AND для нескольких условий? Я знаю, что AND может быть просто представлен & & и OR с ||. Но поскольку вертикальные линии уже являются частью синтаксиса BNF, я хотел бы знать, разрешено ли это в любом случае.Как представить Java-стиль ИЛИ в BNF?

ответ

0

От: https://users-cs.au.dk/amoeller/RegAut/JavaBNF.html

<conditional or expression> ::= <conditional and expression> | <conditional or expression> || <conditional and expression> 

<conditional and expression> ::= <inclusive or expression> | <conditional and expression> && <inclusive or expression> 

Logical или является довольно неоднозначен, поскольку у вас есть два ||, но вы всегда можете представлять литералы жирным или другим шрифтом или кавычками.

Другой пример здесь: https://users-cs.au.dk/amoeller/RegAut/JavaBNF.html использует жирный шрифт и шрифт фиксированной ширины для литералов.

Wiki показывает котировки, который является безопасным, если вы не имеете несколько шрифтов, доступных:

<expression> ::= <list> | <list> <opt-whitespace> "|" <opt-whitespace> <expression> 

 Смежные вопросы

  • Нет связанных вопросов^_^