首页 > 解决方案 > 如何允许特殊字符,例如 * 或 ? 在 Antlr 中的令牌中

问题描述

我在我的 antlr 语法中指定一个标记为:

ID : [a-zA-Z0-9\*\?];   // Allow tokens such as Asdf*fdsa

但我得到一个invalid escape sequence \*错误。如何在 Antlr 允许标记的字符集中指定特殊字符?

标签: antlr4

解决方案


*并且?在字符类中没有特殊含义,也不需要转义。所以只需删除反斜杠就可以了。

+如果您希望能够匹配多个字符(如示例中所示),您还需要在字符类之后添加一个。


推荐阅读