微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ANTLR如何分离令牌

如何解决ANTLR如何分离令牌

我有一个语法,其中CHAR是令牌。我的语法的合法表达是 CHAR(2)。 关键是,ANTLR似乎将整个String CHAR(2)作为令牌获得,因此将错误作为未知令牌提供。 为了解决这个问题,我必须在令牌后插入空格,例如CHAR(2)。 那么,如何告诉ANTLR分离令牌?

谢谢

解决方法

具有以下语法:

expression
    : STRING CHAR LPAREN NUMBER RPAREN
    ;

STRING: 'String';
CHAR: 'CHAR';
NUMBER: [0-9]+;
LPAREN: '(';
RPAREN: ')';
ID: [A-Za-z]+;
WS: [ \t\r\n]+ -> channel(HIDDEN);

您可以按预期的方式解析表达式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。