3

我正在使用 EBNF 来定义语法。

但是我被卡住了,因为我需要定义一个排列:我有一组可以组合的值,但它们只能使用一次,而且我不关心顺序。

如何用 EBNF 做到这一点?

示例:值:a、b、c

可能的组合:abc、acb、bac、bca、cab、cba

4

1 回答 1

5

除了手动定义每个排列之外,这样的事情不能用 (E)BNF 表示:

values = "abc" | "acb" | "bac" | "bca" | "cab" | "cba" ;
于 2012-07-16T18:33:49.973 回答