gpt4 book ai didi

bison - YACC/Bison 中的错误检测/恢复

转载 作者:行者123 更新时间:2023-11-30 23:50:23 25 4
gpt4 key购买 nike

我一直在阅读有关使用错误符号、yyerrok 等的手册。我关心的是如何向解析器添加错误规则而不过度或添加不够。

考虑到我将要解析一个简化的 Java 程序,是否有任何我应该遵循的一般准则?每个规则都应该包含一些错误检测/恢复吗?是否有一种最简单的方法被证明可以熟练地执行这些任务?我目前只查找语法错误。

提前感谢任何/所有答案。

最佳答案

通常您希望在 yacc/bison 文件中谨慎使用错误恢复规则。最好只有一个或两个顶级错误规则,而不是叶产品中的许多错误规则,因为实际上在叶规则中正确地重新同步是非常困难的。

对于类 Java 语言,最简单的方法是使用如下规则:

BlockStatement: error ';'

在这种情况下,如果您在解析语句时遇到任何类型的语法错误,解析器将丢弃输入标记,直到它到达 ; 并表现得好像它刚刚完成了一个陈述。这足以解决 block 末尾缺少 ; 以外的错误。

关于bison - YACC/Bison 中的错误检测/恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475854/

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