小编Los*_*Web的帖子

扩展的巴科斯诺尔形式 (EBNF) 能否描述一组无序的值?

我想使用扩展巴科斯-诺尔形式 (EBNF) 上下文无关语法定义一组无序的值。在 EBNF 中定义一个无序列表的值很容易,例如:

value = 'A' | 'B' | 'C';
list = value, {',', value};
Run Code Online (Sandbox Code Playgroud)

但是,我怀疑它是否可以用于无序集合。

以下是有效的无序值集的示例:

A, B, C, D
A, B, D, C
A, D, C, B
...
D, C, B, A
Run Code Online (Sandbox Code Playgroud)

虽然无效列表将是:

A, A, C, D
B, C, C, B
A, A, A, A
...
Run Code Online (Sandbox Code Playgroud)

或任意长度的列表。

A, A, B, C, D, A
A, B, C, D, A, B, C, D
...
Run Code Online (Sandbox Code Playgroud)

parsing ebnf context-free-grammar context-free-language ebnf-syntactic-exception

4
推荐指数
1
解决办法
742
查看次数