java - Antlr主类错误: MyListener cannot be resolved to a type

标签 java antlr4

我有一个基于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/

相关文章:

java - 我的程序有问题。我正在尝试打印 10,000 以内的所有素数,但它不会打印超过 1,2 和 3

gradle - 如何在多平台项目中使用 Gradle 构建 ANTLR 语法?

java - 有没有办法让 ANTLR4 使用枚举来生成 token ?

c - Antlr4 预处理器语法与 C 语法集成

compiler-errors - 通过Ubuntu终端进行编译(在Windows 10上)

java - 使用可选值填充映射中的值

java - MySQL 和 Java - 多个数据库的重复操作

java - Spring Security自定义身份验证不起作用

Java 控制台程序和 CTRL-C

c# - Antlr 4 C# 目标不起作用