ANTLR 使用符号作为令牌名称

问题描述

我想在 ANTLR 词法分析器文件中使用 ( 作为标记名称。我已经尝试了几个版本,但它们似乎都不起作用并在构建时导致错误。这是我的(失败的)尝试:

(1) (: '(';

(2) '(': '(';

(3) '\(': '(';

(4) \(: '(';

这可能吗?如果可能,我该怎么做?

解决方法

那是不可能的。规则名称必须以下划线或字母开头,后跟零个或多个下划线、字母或数字。因此,'(' 或其任何变体都不是有效的规则名称。