【发布时间】:2021-03-19 08:41:49
【问题描述】:
我有一个 antlr4 语法,我想调用一个函数,其中另一个 Java 类在语义谓词中。如何告诉 antlr4 在类中添加适当的 import 语句,以便它可以找到我要使用的类?
这是一个 antlr4 代码片段,显示了使用我想要的类的谓词。注意语义谓词中对 OtherClass 的调用。
somerule : { OtherClass.test(_input.LT(1).getText()) }? Token
如何告诉 antlr4 在生成的解析器顶部添加以下导入语句?
import my.otherpackage.OtherClass;
我想我可以在 antlr4 写入生成的解析器的目录中添加一个像这样的“转发”类,但这似乎是一个 hack
package GeneratedParser;
import my.otherpackage.OtherClass;
class OtherClassForParser {
public Boolean test(String text) {
return OtherClass.test(text);
}
}
然后在antlr4中重写使用
somerule : { OtherClassForParser.test(_input.LT(1).getText()) }? Token
这可能会起作用,因为转发类将在同一个包中。
【问题讨论】:
标签: java import package antlr4