Java 将AntlInputStream转换为CharStream

Java 将AntlInputStream转换为CharStream,java,antlr4,Java,Antlr4,我有一个基于antlr4的项目,其主类包含以下代码: 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.CommonTokenStr

我有一个基于antlr4的项目,其主类包含以下代码:

    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 {
            ANTLRInputStream input = new ANTLRInputStream(
                    new FileInputStream(args[0]));  

            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();
        }
    }

}
但是,由于AntlInputStream已被弃用,因此我需要改用CharStream。 但是,当我尝试使用CharStream时,我不能再往前走了

CharStream input = new ANTLRInputStream(
            new FileInputStream(args[0]));
这是因为我不知道如何替换“=”符号后的语句部分。我尝试了
CharStreams.fromFileName(新文件输入流(args[0])但eclipse声明此错误“CharStreams.fromFileName无法解析为类型”。我还尝试过
CharStreams.fromFileName(args[0])具有相同的结果。
我甚至尝试了
CharStream input=new CharStreams.fromFileName(“test”)其中“test”是为测试我编写的语言解析器而编写的程序。也是一样的

parser.addParseListener(newMyListener())中还有另一个错误其中表示MyListener不能解析为类型
。这意味着什么?在我看过的每个教程中,“MyListener()”的位置都有一个随机名称。 对此,正确的说法应该是什么

谢谢

像这样:

CharStream charStream = CharStreams.fromString("test");
其中,
“test”
是要分析的输入本身

或者,当输入位于文件中时,请执行以下操作:

CharStream charStream = CharStreams.fromFileName("/path/to/file.ext");
如果这不起作用,则需要检查抛出的异常(很可能文件不在ANTLR查找的位置:尝试绝对路径)。

如下所示:

CharStream charStream = CharStreams.fromString("test");
其中,
“test”
是要分析的输入本身

或者,当输入位于文件中时,请执行以下操作:

CharStream charStream = CharStreams.fromFileName("/path/to/file.ext");

如果这不起作用,您需要检查抛出的异常(很可能文件不在ANTLR查找的位置:尝试绝对路径)。

发布错误消息总是一个好主意。说“没用”,告诉那些不愿意帮忙的人。谢谢你的反馈!我更新了我的问题。发布错误消息总是个好主意。说“没用”,告诉那些不愿意帮忙的人。谢谢你的反馈!我更新了我的问题。谢谢,它成功了!:)但是现在我遇到了另一个错误,我已经在我的问题中包含了这个错误。不客气,请随意为
MyListener发布一个新问题,因为它无法解析为类型
,谢谢,它成功了!:)但是现在我遇到了另一个错误,我已经在我的问题中包含了这个错误。不客气,请随意为
MyListener发布一个新问题,它无法解析为类型