gpt4 book ai didi

Bison/flex : Peek at the next letter or token

转载 作者:行者123 更新时间:2023-12-01 23:08:56 24 4
gpt4 key购买 nike

处理字符串时(它有自己的状态,如注释),我需要确定下一个字母是否为 "。如果是,我不会结束字符串状态。所以我只是不结束字符串处于我的字符串状态(我使用 <STRING_STATE>. 并逐个字母处理它)。所以会发生什么,我标记最后一个字符串是否为 "并且如果当前不是我退出状态并取消最后一个字母。

这有一个奇怪的效果。当我在带有字符串的行上出现错误时,我会看到两次字母(通常是“,”或“)”)。如果它恰好在行尾,则副作用计为两行! (即使没有错误)。

我该如何解决这个问题?当我离开字符串状态并破解 YY_USer 以修复自身时,我唯一的选择是创建全局变量并标记它吗?我有点想避免这种情况。为了更清楚,我可以只看下一个字母或标记,这可能吗?

最佳答案

在 flex 中,您可以使用 / 前瞻运算符“先行查看” future 的标记。所以像

这样的规则
ab/cd

当且仅当其后跟一个 'cd' 时才会匹配一个 'ab' 输入。这意味着 flex 实际上与该规则的“cd”匹配,但随后在为规则调用您的操作之前将其推回输入缓冲区,因此 yytext 在您看到它时仅包含“ab”,而“cd”将是再次阅读下一个 token

关于 Bison/flex : Peek at the next letter or token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946070/

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