gpt4 book ai didi

syntax-error - Bison -从其他错误中恢复

转载 作者:行者123 更新时间:2023-12-03 08:15:18 24 4
gpt4 key购买 nike

我正在尝试从If-Else语句中的错误中恢复。
在我的语法中,If后面总是一个Else。

statement:      OBRACES statements CBRACES
| IF OPAR exp CPAR statement ELSE statement
| IF OPAR exp CPAR statement error '\n' { yyerrok; yyclearin;}
;

发现的错误在最后几行的注释中:
public boolean Equal(Element other){

if (!this.Compare(aux01,Age))
ret_val = false ;
//else
//nt = 0 ;
}

error: syntax error, unexpected CBRACES, expecting ELSE -> } @ line 29



它不能从忽略该错误的错误中恢复过来。

也许我不太了解此错误的工作原理,但我只能在每个站点上找到有关错误恢复的两个示例:“错误'\ n'”和“'('错误')'”

任何人都有一个想法如何从此错误中恢复(当if之后没有else时)。

谢谢

最佳答案

您没有提供足够的上下文来准确了解,但是我猜想是将标记提供给解析器的词法分析器/ token 生成器跳过了空格-包括'\ n'。因此,解析器永远不会看到换行符,而其中的b/c永远不会减少

IF OPAR exp CPAR statement error '\n'

生产及其作用
{ yyerrok; yyclearin;}

永远不会执行,因此错误不会恢复。

关于syntax-error - Bison -从其他错误中恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514355/

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