如何将匹配字符串的 yyleng 从 Lex 发送到 Yacc?
请我尝试将匹配字符串的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
定义您自己的 yytype 并通过它传递任何值
Define you own yytype and pass any values over it
yyleng 是一个全局变量;在语法文件中声明它并使用它。
Flex 用途:
Lex 用途:
yyleng
is a global variable; declare it in your grammar file and use it.Flex uses:
Lex uses: