如何在BNF中表示Java风格的OR?

时间:2017-02-18 18:14:24

标签: java bnf

美好的一天。我想知道,如果我想做一个Backus-Naur表单代表例如Java中的if-else子句,我将如何在多个条件下使用OR和AND?我知道AND可以用&&和简单表示,而OR用||表示。但由于垂直线已经是BNF语法的一部分,我想知道是否允许这样做。

1 个答案:

答案 0 :(得分: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>

逻辑或非常明确,因为您有两个||,但您始终可以用粗体或其他字体或引号表示文字。

此处的另一个示例:https://users-cs.au.dk/amoeller/RegAut/JavaBNF.html使用粗体和固定宽度字体作为文字。

如果您没有多种可用字体,

Wiki会显示最安全的引号:

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