如何使用EBNF定义排列



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

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

如何使用EBNF?

示例:值:a、b、c

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

这样的东西不能用(E)BNF来表达,除了简单地手动定义每个排列:

values = "abc" | "acb" | "bac" | "bca" | "cab" | "cba" ;

最新更新