我想在ANTLR中指定一个产品,其子产品的顺序无关紧要.请注意,我希望每个子制作都出现一次.实现这一目标的蛮力方式看起来像这样:
grammar Foo;
r : (A B) | (B A) ;
A : 'a' ;
B : 'b' ;
Run Code Online (Sandbox Code Playgroud)
随着更多的子制作被添加,排列的数量增加...... n!/(nk)!
grammar Foo2;
r : (A B C) | (A C B) | (B A C) | (B C A) | (C A B) | (C B A) ;
A : 'a' ;
B : 'b' ;
C : 'c' ;
Run Code Online (Sandbox Code Playgroud)
显然,上述解决方案并不实用.在ANTLR中是否有一个构造以更简洁的方式描述这样的排列?
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |