gpt4 book ai didi

java - 获取所有 Antlr 解析错误作为字符串列表

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:18 34 4
gpt4 key购买 nike

  • 如何在字符串列表中获取 Antlr 的所有解析错误?

我使用antlr如下:

ANTLRInputStream input = new ANTLRInputStream(System.in);
grLexer lexer = new grLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
grParser parser = new grParser(tokens);
ParseTree tree = parser.formula();
System.out.println(tree.toStringTree(parser));

例如

line 1:0 token recognition error at: '('
line 1:1 token recognition error at: ')'
line 1:2 token recognition error at: '('
  • 如何确定解析执行没有错误?如果只有一个解析错误,我会停止。

例如

if(tree.hasError()) // FOR EXAMPLE
return;

最佳答案

  • 您需要提供 ANTLRErrorListener 的实现收集有关发生的错误的信息。例如,IntelliJ 插件使用其 SyntaxErrorListener跟踪此信息。

  • 你可以查看Parser.getNumberOfSyntaxErrors()解析完成后查看是否发生错误。请注意,这不会报告词法分析器的错误。确保正确报告所有错误的最佳方法是以这样一种方式编写词法分析器,使其本身永远不会遇到语法错误,而是将无效标记传递给解析器进行处理。

关于java - 获取所有 Antlr 解析错误作为字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661899/

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