首页 > 解决方案 > ANTLR4:让解析器规则匹配令牌通配符

问题描述

我正在研究一种允许关键字作为标识符的语法,目前的建议似乎是做类似的事情:

id : 'if'|'call'|'then'|ID;

我的语言有很多关键字,所以我一直在做:

id: ~(PLUS | MINUS);

基本上任何不是非关键字标记的标记。

有没有办法让我的所有关键字标记都带有一些字符串和通配符匹配?例如

K_PLUS: '+';
K_MINUS: '-';
ID: <everything else>;

id : ID | ~(K_*);

标签: antlr4

解决方案


不,不幸的是,这是不可能的。


推荐阅读