使用ANTLR4分析文件



据我所知,我有一个Lexer和一个名为y86 Lexer and Parser的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之类的东西,但我似乎能找到那个类。我已经尝试过从Listeners antlr创建的打印,但我不知道如何触发这些Listeners

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

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

相关内容

  • 没有找到相关文章

最新更新