我正在使用EBNF来定义语法。
但我被卡住了,因为我需要定义一个排列:我有一组可以组合的值,但它们只能使用一次,我不在乎顺序。
如何使用EBNF?
示例:值:a、b、c
可能的组合:abc、acb、bac、bca、cab、cba
这样的东西不能用(E)BNF来表达,除了简单地手动定义每个排列:
values = "abc" | "acb" | "bac" | "bca" | "cab" | "cba" ;