请帮我回答这个问题。 我想写一个flex程序(keyword.l)来识别关键字并将其转换为大写。我得到这个代码但是当我用cmd运行flex时出错(C:\ GnuWin32 \ bin flex keyword.l) 错误是:
"无法打开keyword.l"
%{#include<stdio.h>
int i;
%}keyword main|int|scanf|printf|if|else
%%
{keyword} {
for(i=0;i<yyleng;i++)
printf("%c",toupper(yytext[i]));
}
%%
main()
{
yyin=fopen("num.c","r");
yylex();
}
int yywrap()
{
return 1;
}
答案 0 :(得分:1)
你的节目非常好。
可能出现的问题是,在保存它时,您将其写为keyword.l。但是,它会保存为keyword.l.text,因此当您使用命令flex keyword.l进行调用时,它表示无法打开。你应该呼吁&#34; flex keyword.l.txt&#34;或者将扩展名更改为&#34; flex keyword.l&#34;。然后它应该工作。