我們剛剛開始使用flex爲項目構建詞法分析器,但我們無法弄清楚如何使其工作。我複製了教程中給出的示例代碼,並嘗試以tut文件作爲其參數運行flex ++,但每次只收到一個錯誤。例如Flex ++錯誤的字符錯誤等等。 flex to new
輸入文件(calc.l)
%name Scanner
%define IOSTREAM
DIGIT [0-9]
DIGIT1 [1-9]
%%
"+" { cout << "operator <" << yytext[0] << ">" << endl; }
"-" { cout << "operator <" << yytext[0] << ">" << endl; }
"=" { cout << "operator <" << yytext[0] << ">" << endl; }
{DIGIT1}{DIGIT}* { cout << " number <" << yytext << ">" << endl; }
. { cout << " UNKNOWN <" << yytext[0] << ">" << endl; }
%%
int main(int argc, char ** argv)
{
Scanner scanner;
scanner.yylex();
return 0;
}
與此代碼我得到
撓曲++ calc.l
calc.l:1:壞字符:% 計算值。 l:1:未知錯誤處理部分1
calc.l:1:未知錯誤處理部分1
calc.l:1:未知錯誤處理摹節1
calc.l:2:無法識別 '%' 指令
任何人都可以幫助我瞭解什麼即時做錯了什麼?歡呼聲
你有沒有偶然從http://www.mario-konrad.ch/index.php?page=20024得到這個?我有同樣的問題,雖然我只是第二次下載它,所以我會研究它。 – Ell
我在這裏得到同樣的錯誤。 – JohnTortugo
我知道這是一個非常古老的問題......但我發現至少有一種方法可以讓這種類型的文件在未來需要時編譯和運行。 – summea