我想使用扩展巴科斯-瑙尔形式 (EBNF) 上下文无关语法定义一组无序的值。在 EBNF 中定义值的无序列表很容易,例如:
value = 'A' | 'B' | 'C';
list = value, {',', value};
但是,我怀疑它是否可以用于无序集。
以下是有效无序值集的示例:
A, B, C, D
A, B, D, C
A, D, C, B
...
D, C, B, A
虽然无效列表是:
A, A, C, D
B, C, C, B
A, A, A, A
...
或任意长度的列表。
A, A, B, C, D, A
A, B, C, D, A, B, C, D
...