ANTLR4 Java 用于重复标记的插件正则表达式
ANTLR4 Java plugin RegEx for duplicate tokens
我正在用 ANTLR4 编写语法,并希望为可以是 int 或 float 的方程制定规则,但不能是两者的混合。到目前为止我有:
equation: (INT | FLOAT) OPERATION (INT | FLOAT);
我找到了正则表达式 'cheat sheet' here。此页面声明“\1”表示它应该具有与组 1 相同的内容。
但是,当我用 Antlr 尝试这个时,它不起作用。这是我使用的:
equation: (INT|FLOAT) OPERATOR '';
那么有谁知道我可以检查第 2 组是否与第 1 组相同的标记的方法?
Antltr 处理这个问题的方法是直接指定可接受的内容:
equation : FLOAT OPERATION FLOAT #eqFloat
| INT OPERATION INT #eqInt
;
混合float/int操作将无法识别。如果不需要在两种类型的方程之间进行分析树区分,请删除备用标签。
我正在用 ANTLR4 编写语法,并希望为可以是 int 或 float 的方程制定规则,但不能是两者的混合。到目前为止我有:
equation: (INT | FLOAT) OPERATION (INT | FLOAT);
我找到了正则表达式 'cheat sheet' here。此页面声明“\1”表示它应该具有与组 1 相同的内容。
但是,当我用 Antlr 尝试这个时,它不起作用。这是我使用的:
equation: (INT|FLOAT) OPERATOR '';
那么有谁知道我可以检查第 2 组是否与第 1 组相同的标记的方法?
Antltr 处理这个问题的方法是直接指定可接受的内容:
equation : FLOAT OPERATION FLOAT #eqFloat
| INT OPERATION INT #eqInt
;
混合float/int操作将无法识别。如果不需要在两种类型的方程之间进行分析树区分,请删除备用标签。