antlr4 - 如何允许特殊字符,例如 * 或 ? 在 Antlr 中的令牌中
问题描述
我在我的 antlr 语法中指定一个标记为:
ID : [a-zA-Z0-9\*\?]; // Allow tokens such as Asdf*fdsa
但我得到一个invalid escape sequence \*
错误。如何在 Antlr 允许标记的字符集中指定特殊字符?
解决方案
*
并且?
在字符类中没有特殊含义,也不需要转义。所以只需删除反斜杠就可以了。
+
如果您希望能够匹配多个字符(如示例中所示),您还需要在字符类之后添加一个。
推荐阅读
- javascript - 仅激活列表中的 2 个项目
- vue.js - Vuex 没有反应
- java - 使用 POI 查找特定列中的行数
- spring-integration - JtaTransaction 与 Jdbc XA 和 Jms
- flutter - 如何知道参数是否传递给泛型类的(默认 arg)函数?
- rest - 如何根据命名标准命名地址验证 api
- c - 链接列表 - 什么会导致使用 malloc 分配的地址实际上从未被分配?
- javascript - JS 不能在 atom 编辑器中工作,但 CSS 可以
- php - 在 PHP 中使用 PDO 从多个表中搜索的更好方法是什么?
- c# - Blazor WASM PWA 无法更改图标,无法更改名称