Chinaunix
标题:
为什么编译lex产生的文件出错?请高手指点
[打印本页]
作者:
guocanwen
时间:
2010-03-09 16:25
标题:
为什么编译lex产生的文件出错?请高手指点
%{
int count;
%}
digit [0-9]
%%
{digit} {count++ }
%%
int yywrap(void){
return 1;
}
int main(void) {
count=0;
yyin = fopen("input", "r");
yylex();
printf("\nThe number of digit is:%d\n",count);
fclose(yyin);
}
编译用lex产生lex.yy.c文件出现一下问题.请大牛帮忙解决,现谢谢了
test.lex:6: 错误: 程序中有游离的‘\255’
test.lex: 在函数‘yylex’中:
test.lex:9: 错误: ‘digit’未声明(在此函数内第一次使用)
test.lex:9: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
我用的是ubuntu 9.04. gcc版本是4.3.3
作者:
qtdszws
时间:
2010-03-09 17:14
本帖最后由 qtdszws 于 2010-03-09 17:18 编辑
%{
int count;
%}
digit [0-9]
%%
digit {count++; }
%%
int yywrap(void){
return 1;
}
int main(void) {
count=0;
yyin = fopen("input", "r");
yylex();
printf("\nThe number of digit is:%d\n",count);
fclose(yyin);
}
复制代码
作者:
guocanwen
时间:
2010-03-09 18:07
回复
2#
qtdszws
digit和{digit}应该不同吧.digit不是字符串"digit",{digit}代表数字?
作者:
qtdszws
时间:
2010-03-09 21:48
嗯,是错了,应该更正为{digit}
作者:
cjaizss
时间:
2010-03-09 23:58
含有一些本可应该存在的不可见字符吧,再者
digit [0­-9] 应该顶着一行的开头写
cout++后面打分号,别的没问题
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2