我不明白为什么在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