gpt4 book ai didi

java - 判断字符串是否符合ANTLR4语法

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:45:22 26 4
gpt4 key购买 nike

我如何根据我的语法测试一个字符串,看看它是否有效(即没有发现错误,并且不需要错误恢复)?

我试过了 this以及a custom error strategy但我仍然收到这样的消息

line 1:2 token recognition error at: 'x'

在控制台上。因此,我需要一种方法来确保所有错误都会导致异常,或者需要一种方法来验证不依赖于异常的输入。

最佳答案

编辑:您看到的是词法分析器错误,而不是解析器错误。您需要更新词法分析器以确保词法分析器无法通过添加以下内容作为词法分析器的最后一条规则来匹配输入字符。这会将错误字符传递给解析器进行处理(报告、恢复等)。

ERR_CHAR : . ;

除此之外,您还需要执行以下一般步骤,这些步骤适用于配置解析器以进行简单的字符串识别。


你需要做两件事才能正常工作:

首先,禁用默认的错误报告机制。

parser.removeErrorListeners();

其次,禁用默认的错误恢复机制。

parser.setErrorStrategy(new BailErrorStrategy());

你会得到一个 ParseCancellationException ,并且没有其他报告,如果您的字符串不匹配。

如果您不使用解析操作的输出,您可能还希望通过禁用解析树构造来提高识别过程的效率。

parser.setBuildParseTree(false);

关于java - 判断字符串是否符合ANTLR4语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259176/

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