1 %{
2 #include<stdio.h>
3 #include<ctype.h>
4 %}
5 %option noyywrap
6 %%
7 [a-z] { putchar(yytext[0]); }
8
9 "/*"
10 {
11 char ch;
12 while((ch = input()) != '*')
13 putchar(toupper(ch));
14 while((ch = input()) == '*');
15 if((ch = input()) == '/')
16 return 0;
17 }
%%
int main()
{
yylex();
return 0;
}
~
当我试图编译这个“lex comment.lex”时,我在第12,14,15行得到了无法识别的规则错误......任何人都可以告诉我答案....... ..
答案 0 :(得分:1)
请参阅flex info page:
规则表格是:
pattern action
Flex认为在第9,10,11行等中开始了无操作的新规则。从第10行拉出开口花括号,使其看起来像:
...
"/*" {
char ch;
...