我有一个基于antlr4的项目,其中的Main类包含以下代码:
package com.progur.langtutorial;
import java.io.FileInputStream;
import java.io.IOException;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
public class Main {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
try {
CharStream input = CharStreams.fromString("test");
GYOOLexer lexer = new GYOOLexer(input);
GYOOParser parser = new GYOOParser(new CommonTokenStream(lexer));
parser.addParseListener(new MyListener());
// Start parsing
parser.program();
} catch (IOException e) {
e.printStackTrace();
}
}
}
但是,我在 parser.addParseListener(new MyListener()); 中遇到错误其中显示 MyListener 无法解析为类型
。这意味着什么?在我查看的每个教程中,“MyListener()”的位置都有一个随机名称。正确的说法应该是什么?
谢谢!
最佳答案
您传递给 addParseListener
的监听器应该是您自己定义的类(并且实现 GYOOListener
接口(interface)或扩展 GYOOBaseListener
由 ANTLR 生成的抽象类)。如果您没有定义监听器类,则没有理由调用 addParseListener
。
关于java - Antlr主类错误: MyListener cannot be resolved to a type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866081/