2

我正在使用Grako EBNF/PEG 解析器

我知道 EBNF 语法允许获取满足给定选项之一的表达式:

(a | b | c)

是否有类似的语法部分或解决方法允许抓取任何组合的表达式ab并且c没有重复,以便有效的表达式如下:

a b c
b a c
a b
b c
b
none

但不喜欢:

b b c
a a

?

4

1 回答 1

2

一种方法是拼出规则中的组合。

另一种方法是使用语义操作来检查重复并grako.exceptions.FailedSemantics在找到它们时引发。解析器的行为就像输入没有被解析一样。

于 2015-03-06T12:16:18.307 回答