我将Flex/Bison用于脚本解析器,该解析器需要突破解析器并从yyparse()返回ALL ERRORS的非零状态。我能找到的关于Bison的每一份文档都是关于恢复的-我如何编写一个保全(即使用YYABORT)而不是试图恢复的规则集?
感谢您的集体智慧。
最佳答案
如果您指的是语义错误,即检查您在语法规则的语义部分中所做的工作,那么您只需调用exit()
函数即可立即退出解析器的可执行文件。 exit()
的参数是返回到Shell环境的错误代码。
您还可以实现yyerror()
,如果需要,可以调用exit()
(在语法错误时退出)。这已记录为here。
关于parsing - 如何让 Bison 摆脱所有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256177/