请问我正在尝试将匹配字符串的yyleng从我的(.l)文件传递到(.y)文件。以下是该问题的示例:
在Lex档案中
<state1>.+ { fprintf(yyout, "%d", yyleng); }
在Yacc文件中:
/ *我需要知道用于接收yacc文件的特定yyleng的方法。我要使用全局变量吗?或者有一个特定的方法来处理这个问题? * /
提前感谢您的帮助! 〜任何建议都非常感谢。
答案 0 :(得分:3)
yyleng
是一个全局变量;在你的语法文件中声明并使用它。
Flex使用:
typedef size_t yy_size_t;
extern yy_size_t yyleng;
Lex使用:
extern int yyleng;
答案 1 :(得分:1)
定义您自己的 yytype 并在其上传递任何值