gpt4 book ai didi

apache-flex - flex中的过早EOF错误

转载 作者:行者123 更新时间:2023-12-03 23:56:14 25 4
gpt4 key购买 nike

当我在 flex 中运行以下代码时,我在最后一行得到过早的 EOF 作为错误。如果定义部分被删除,则不会产生错误。为什么会这样??

%{
#include <stdio.h>
int x = 0;
}%

%%
"a" {x=x+1; printf("id %d",x); }
%%

int yywrap(void)
{
return 0;
}

int main(void)
{
int x = 0;
yylex();
return 0;
}

最佳答案

您的代码的第三行有问题。它应该是 %} 而不是 }%

试试这个:

%{
x = 0;
%}

%%
[a] {x++; printf("id %d",x); }
%%

int main(void)
{
yylex();
return 0;
}

我不知道你打算做什么,但一个工作示例将为输入文件中遇到的每个 a 打印一个 id 看起来有点像这样:

%{
x = 0;
%}

%%
[a] {x++; printf("id %d ",x); }
%%

int main(int argc,char * argv[])
{
yyin = fopen(argv[1],"r");
yylex();
fclose(yyin);
return 0;
}

关于apache-flex - flex中的过早EOF错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12541218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com