我正在尝试编写一个可识别(-! comment !-)
为一个名为comment
. 以下是我的文件:
%{
#include <stdio.h>
void showToken(char* name);
void error();
void enter();
int lineNum=1;
%}
%option yylineno
%option noyywrap
whitespace ([\t ])
enter ([\n])
startcomment (\(\-\!)
endcomment (\!\-\))
comment (^\!\-\))
%%
{startcomment}{comment}*{endcomment} showToken("COMMENT");
{enter} enter();
{whitespace}
. error();
%%
void showToken(char* name){
printf("%d %s %s %d% \n",lineNum,name, yytext);
}
void enter(){
lineNum++;
}
void error(){
printf("%d error %s \n",lineNum,yytext);
}
但我因为一个简单的(-! comment !-)
输入而失败了,这个文件确实可以识别(-!
并且!-)
无法识别我的comment
规则。我确实尝试用它替换它,comment (^{endcomment})
但它没有用,有什么建议吗?