想用lex做一个代码注释清楚的小东西,但遇见了一个问题
%{void comment();
%}
%%
"/*" {comment();}
.|\n {printf("%c",*yytext);}
%%
int main()
{
yylex();
return 0;
}
void comment()
{
int ch , prev=0;
while ( (ch = input()) != -1 )
{
if (prev == "*" && ch == "/")
return ;
prev = ch;
}
return ;
}
int yywrap()
{
return 1;
}
以上是我的代码,现在的问题是,对于这样的代码:
int i=0;
/*test*/
printf("test");
他会将注释连同之后的所有代码都消去。请问这是为何