我正在尝试制作一个依赖于启动条件的可重入扫描仪。
我正在遵循与这个人的问题类似的问题:
使用 Flex 编写可重入词法分析器 https://stackoverflow.com/questions/2634998/writing-re-entrant-lexer-with-flex
正如一张海报所提到的,如果您明确创建yyscan_t
并将其作为额外参数传递。然而,我仍然得到yyg undeclared
使用时出现错误提示BEGIN <sc>
等来操纵启动条件。
这是一个错误吗?我应该明确使用yy_push_state
and yy_pop_state
而是状态函数?
看起来就像你使用时%option reentrant
你只能使用BEGIN
and YY_START
在词法分析器的操作部分,而不是在代码部分。有意义,因为操作解析器状态需要访问解析器状态,但是BEGIN
不接受任何参数,因此无法提供它。使用%option stack
and yy_push
/pop_state
似乎是一个合理的解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)