我对使用 ANTLR 解析输入有一个非常特殊的要求。我希望能够解析如下表达式;
正确的输入
- 用户名
- 用户名用户名
- | EATALL 任何东西都可以来这里/ok | 全部吃掉 ...
无效输入
- 用户名
- 用户名^人脸
好吧,任何出现在| EATALL
和之前| EATALL
(如果有的话)的表达式都必须作为单个标记获得。而在| EATALL
没有出现其他简单输入的情况下,只有_
, -
,的有效组合[a-zA-Z0-9]
被标记为一个标记。在伪代码中,
- 用户名 -> [用户] [名称]
- 用户名 -> [用户名]
- |EATALL 用户/命名我的用户 -> [用户/命名我的用户]
对我来说,这似乎是一个模棱两可的标记化案例。我正在寻求您对在 antlr 中处理此类问题的建议。提前谢谢你。