gpt4 book ai didi

c++ - Bison/柔性 : print erroneous line

转载 作者:可可西里 更新时间:2023-11-01 16:35:56 24 4
gpt4 key购买 nike

我正在使用 bison+flex 来解析文件。出错时调用 yyerror()。如何获取违反规则的行号或字符串,并打印错误信息?

最佳答案

行号很简单:yylineno 是行号。在 .l 文件的顶部指定 %option yylineno

好吧,几乎很容易。 Lookahead 有时会使行号减一。与其说“Error occurred at line #xxx”,不如说错误发生在 #xxx 行附近。

至于剩下的,就看你的了。您将不得不捕获不太有效的语法并调用适当的警告或错误处理程序。有关详细信息,请参见 O'Reilly 的“flex & bison”一书;它有一整章是关于错误信息的。在此问答网站上重现一整章有点太多。

关于c++ - Bison/柔性 : print erroneous line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467166/

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