ANTLR 如何检查 ANTLR 语法中键的所有排列?

ANTLR how can I check all the permutations of a key in ANTLR grammar?

管理这个键的所有排列:mess

可能的解决方案是:

key : 'mess' | 'MESS'| 'meSs'| 'mEss'| 'Mess'| 'mESs'| 'MeSs'| 'MEss';

或者类似的东西:

key: MESS;    
MESS: M E S S;
fragment M: [mM];  
fragment E: [eE];
fragment S: [sS];  

是否有更好的解决方案来管理这种排列?考虑有几个类似的案例

第一个选项更像是硬编码解决方案。小的关键字容易,但是只要你的关键字长度增加就会越来越复杂。

第二个选项将使您更容易使关键字不敏感,并且您可以将这些片段重新用于其他不敏感的关键字。这也是 ANTLR4 文档中推荐的解决方案。您可以在 link 上找到此信息:ANTLR4 case insensitive lexing documentation

我希望这能回答您的问题