gpt4 book ai didi

java - 使用 ANTLR4 解析文件

转载 作者:行者123 更新时间:2023-12-02 10:58:05 26 4
gpt4 key购买 nike

我有一个词法分析器和一个名为 y86 Lexer 和 Parser 的解析器,据我所知,它们可以工作。但我有一个包含 y86 命令的文件,我想使用 Java 解析它们。到目前为止我的代码如下。

y86Lexer y86 = null;
CommonTokenStream tokenStream = null;
y86Parser y86p = null;

try
{
y86 = new y86Lexer(CharStreams.fromFileName("C:\\Users\\saigbomian\\Documents"
+ "\\LearnANTLR\\src\\sum.ys"));
tokenStream = new CommonTokenStream(y86);
y86p = new y86Parser(tokenStream);

}
catch (IOException e)
{
log.error("Error occured while reading from file");
e.printStackTrace();
}

我不知道如何进行解析。我见过人们使用类似 y86Parser.CompilationUnitContext 的东西,但我似乎可以找到那个类。我尝试过从 antlr 创建的监听器进行打印,但我不知道如何触发这些监听器

最佳答案

对于语法中的每个规则 ruleNamey86Parser 类将包含一个名为 RuleNameContext 的类和一个名为 ruleName( ),它将根据该规则解析输入并返回包含解析树的 RuleNameContext 类的实例。然后,您可以使用监听器或访问者来遍历该解析树。

因此,如果您没有 compilationUnit 方法或 CompilationUnitContext 类,您的语法可能就没有名为 compilationUnit 的规则>。相反,您应该选择一个已有的规则并调用与该规则相对应的方法。

关于java - 使用 ANTLR4 解析文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51563845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com