【问题标题】:How can I make bison return all the syntax errors?如何让野牛返回所有语法错误?
【发布时间】:2022-01-25 05:53:13
【问题描述】:

我正在尝试让 bison 返回给定测试文件中的所有语法错误。 但问题是解析器在遇到语法错误时停止并报告它 有没有办法直接报告所有的语法错误?

【问题讨论】:

标签: error-handling syntax flexbox bison


【解决方案1】:

为了在语法错误后继续解析,需要在语法中添加错误恢复规则。了解错误恢复的工作原理确实需要了解 bison 的 shift/reduce 解析器的工作原理。 bison manualerror recovery 上有一个合理的部分,您应该从这里开始。

有了良好的错误恢复规则,解析器可以在语法错误后继续,并且(可能)找到更多的语法错误。您确实需要注意错误恢复后来自yyparse 的返回值——如果错误恢复“成功”并且能够继续解析,并且没有进一步的错误,yyparse 将返回 0(成功)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多