从 Yacc 在 Lex 中启动一个状态

发布于 2024-10-29 06:03:26 字数 128 浏览 2 评论 0原文

在 Lex 中,我可以使用关键字 BEGIN STATE1 开始一个新状态。我想在规则之间从 yacc 做同样的事情。在规则的操作部分,如果我添加 BEGIN STATE1 ,它会显示 BEGIN 未声明的错误。我有什么办法可以做到这一点吗?

In Lex i can start a new state using the keyword BEGIN STATE1. I want to do the same from yacc in between rules . In the action section of a rule , if i add BEGIN STATE1 , it says BEGIN undeclared error. Is there any way i can do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千秋岁 2024-11-05 06:03:26

伊势紫藤为我找到了答案。

在 lex 中创建使用 BEGIN 宏的单独函数。称它们为野牛。

注意:对于像我这样的初学者,不要忘记在 .y 文件的开头添加这些函数的声明,否则您将在链接过程中收到未声明的错误。

Ise Wisteria found the answer for me.

Create separate functions in lex that use the BEGIN macro . Call them in bison .

Note:For those very beginners like me , do not forget to add a declaration of these functions at the beginning of the .y file or you will get an undeclared error during linking.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文