gpt4 book ai didi

c++ - 如何告诉 flex 和 bison 停止处理输入?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:46 27 4
gpt4 key购买 nike

当遇到错误时,让 flex 和 bison 停止处理的最佳方法是什么。如果我调用 yyerror,它不会停止扫描和解析我的文件。虽然输入在语法上是正确的,但存在用户错误,例如他们试图加载同一个文件两次。一旦我离开 flex/bison,我的程序就会向用户返回一个错误,程序应该继续运行。我假设抛出 C++ 异常可能会破坏某些东西?

最佳答案

YYABORT 是标准的退出方式;它会导致 yyparse 立即返回失败 (1)。然后你可以抛出异常或做任何你想做的事。如果你想解析其他东西,你需要重置 flex 的输入,但如果你这样做,你可以再次调用 yyparse,解析将从头开始。

关于c++ - 如何告诉 flex 和 bison 停止处理输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637639/

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