gpt4 book ai didi

使用相同的输入文件多次调用 yyparse()

转载 作者:行者123 更新时间:2023-11-30 14:23:00 25 4
gpt4 key购买 nike

我使用同一个输入文件多次调用yyparse()。我必须从文件开头开始解析到某个点,然后跳转到同一文件中的其他位置(解析那里的一些行),然后返回到原始位置并从那里再次开始解析。这我已经做过很多次了。每次在调用 yyparse() 之前,我都会重新打开同一个输入文件,然后指向我必须开始解析的位置。

我无法返回到原来的位置。我可以跳到其他位置,但从那里返回到原始位置是有问题的。我的解析器在返回时将前往其他位置,从那里解析几行,然后到达原始位置。我怎样才能避免这些额外的行解析?我在新调用 yyparse();

之前使用 yyrestart();

最佳答案

您可以在词法分析器中完成这一切,而不是每次需要更改位置时重新启动解析。

当您需要解析文件中的另一个位置时,将当前词法分析器状态插入堆栈,并将新的词法分析器统计设置到您想要的位置。完成后,只需将状态从堆栈中弹出以使其成为当前状态,然后继续解析,就好像什么也没发生一样。

一个可能更好的解决方案可能是直接解析源文件,构建 AST,然后您可以轻松地进行语义处理和/或评估您喜欢的部分。它将使词法分析器和解析器变得更加简单。

关于使用相同的输入文件多次调用 yyparse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283462/

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