我不明白爲什麼在2個功能相同的源文件中,只有1個編譯階段通過flex
,另一個生成關於use of undeclared identifier
的錯誤。使用flex時,有一些格式規則需要遵循?
這一個是OK(我通常不會在我的編輯器中使用的標籤,這些都是空格)
int num_lines = 0, num_chars = 0;
%%
\n ++num_lines; ++num_chars;
. ++num_chars;
%%
int main()
{
yylex();
printf("# of lines = %d, # of chars = %d\n",
num_lines, num_chars);
}
這一次它不是由flex
接受,不會產生任何東西,但錯誤
int num_lines = 0, num_chars = 0;
%%
\n ++num_lines; ++num_chars;
. ++num_chars;
%%
int main()
{
yylex();
printf("# of lines = %d, # of chars = %d\n", num_lines, num_chars);
}
如果我想用flex
編譯我的掃描儀,是否必須遵循一些特定的約定?
我嘗試了flex的最新github版本,並得到相同的行爲,這可能意味着我錯過了一些東西... – user31223
我真的需要一個反饋,因爲沒有暗示我做錯了什麼或如果這甚至是一個錯誤 – user31223