flex-lexer – Flex yylineno设置为1

我正在为tcpdump日志编写一个简单的解析器,你能不能告诉我为什么我得不到正确的行号?
%{
char str[80];
%}
%option yylineno

...
%%

^{HOURS}:{MINUTES}:{MINUTES} if(input()=='.') { strcpy(str,yytext);  BEGIN(A); } else {printf("Wrong hour %d",yylineno); }
<A>({NDPS}|{DPS})\.({NDPS}|{DPS})\.({NDPS}|{DPS})|\.{NDPS} printf("Wrong IP!,%d",yylineno);
<A>[ ]{DPS}\.{DPS}\.{DPS}\.{DPS} strcat(str," from "); strcat(str,yytext+1); BEGIN(B);
...

解决方法

当我尝试这个时,事实证明我必须有一个规则,实际上匹配yylineno的换行符进行更新.使用以下规则它是有效的,没有它yylineno永远不会改变:
\n { }

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...