請我試圖從我的(.l)文件中將匹配字符串的yyleng傳遞給(.y)文件。這是問題的一個樣本:如何將Lex匹配字符串的Yyleng發送給Yacc?
在lex文件:
<state1>.+ { fprintf(yyout, "%d", yyleng); }
在Yacc的文件:
/*我需要知道用來接收特定的方法yyleng到yacc文件。我應該使用全局變量嗎?或者有處理這個問題的具體方法? */
在此先感謝您的幫助! 〜任何建議,高度讚賞。
請我試圖從我的(.l)文件中將匹配字符串的yyleng傳遞給(.y)文件。這是問題的一個樣本:如何將Lex匹配字符串的Yyleng發送給Yacc?
在lex文件:
<state1>.+ { fprintf(yyout, "%d", yyleng); }
在Yacc的文件:
/*我需要知道用來接收特定的方法yyleng到yacc文件。我應該使用全局變量嗎?或者有處理這個問題的具體方法? */
在此先感謝您的幫助! 〜任何建議,高度讚賞。
yyleng
是一個全局變量;在你的語法文件中聲明並使用它。
Flex使用:
typedef size_t yy_size_t;
extern yy_size_t yyleng;
萊克斯用途:
extern int yyleng;
非常感謝您的幫助!請如果我需要了解更多關於使用yytype,yyleng和其他人的信息,你是否推薦我任何特定的免費在線資源(特別是如果有初學者的話)? – CompilingCyborg 2010-12-23 13:49:30
見附近複製[問題](http://stackoverflow.com/questions/4514075/how-to-pass-the- yytext-from-lex-file-to-yacc)(詢問`yytext`而不是`yyleng`): – 2010-12-23 13:27:04