如何将匹配字符串的 yyleng 从 Lex 发送到 Yacc?

发布于 2024-10-09 02:15:51 字数 333 浏览 6 评论 0原文

请我尝试将匹配字符串的 yyleng 从我的 (.l) 文件传递​​到 (.y) 文件。以下是问题的示例:

在 Lex 文件中:

<state1>.+    {   fprintf(yyout, "%d", yyleng);    } 

在 Yacc 文件中:

/* 我需要知道用于将特定 yyleng 接收到 yacc 文件的方法。我应该使用全局变量吗?或者有一个具体的方法来处理这个问题? */

预先感谢您的帮助! ~ 任何建议都将受到高度赞赏。

Please i am trying to pass the yyleng of a matched string from my (.l) file to the (.y) file. Here is a sample of the issue:

In the Lex File:

<state1>.+    {   fprintf(yyout, "%d", yyleng);    } 

In the Yacc File:

/* I need to know the methodology used to receive a specific yyleng to the yacc file. Shall I use global variables? or there is a specific way for dealing with this issue? */

Thanks in advance for your help! ~ Any suggestions are highly appreciated.

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

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

发布评论

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

评论(2

芸娘子的小脾气 2024-10-16 02:16:00

定义您自己的 yytype 并通过它传递任何值

Define you own yytype and pass any values over it

怀里藏娇 2024-10-16 02:15:58

yyleng 是一个全局变量;在语法文件中声明它并使用它。

Flex 用途:

typedef size_t yy_size_t;
extern yy_size_t yyleng;

Lex 用途:

extern int yyleng;

yyleng is a global variable; declare it in your grammar file and use it.

Flex uses:

typedef size_t yy_size_t;
extern yy_size_t yyleng;

Lex uses:

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