我的flex脚本有问题。我为C ++多行注释编写它。我的弹性模式是:
"/""*"[^"*""/"]*"*""/" {strcpy(mlc[mlc_count++],yytext);}
它可以找到一个多行评论。但是,当我将整个代码放在多行注释中时,它不起作用。我尝试了很多但找不到任何解决方案。
答案 0 :(得分:1)
Flex一次读取一个缓冲区。使用正常匹配,单个令牌可以占用不超过一个数据缓冲区。如果内存服务,缓冲区通常是8千字节,所以一个比这更长的令牌将无法正确匹配。
通常情况下,您可以使用独有的开始条件解决此问题,这是一般订单:
"/*" BEGIN(COMMENT);
<COMMENT>*/ BEGIN(INITIAL);
<COMMENT>. { current_comment += yytext[0]; }