【问题标题】:C++ multiline comment syntax in flexflex中的C++多行注释语法
【发布时间】:2014-02-25 07:19:19
【问题描述】:

我的 flex 脚本有问题。我为 C++ 多行注释编写它。我的弹性模式是:

"/""*"[^"*""/"]*"*""/"          {strcpy(mlc[mlc_count++],yytext);}

它可以找到一个多行注释。但是当我将整个代码放在多行注释中时它不起作用。我尝试了很多,但找不到任何解决方案。

【问题讨论】:

    标签: c++ flex-lexer


    【解决方案1】:

    Flex 一次读取输入一个缓冲区。使用正常匹配,单个标记最多可以占用一个数据缓冲区。如果内存可用,缓冲区通常约为 8 KB,因此长度超过该值的单个令牌将无法正确匹配。

    通常,您可以使用排他的开始条件来解决这个问题,按照这个一般顺序:

    "/*" BEGIN(COMMENT); 
    
    <COMMENT>*/ BEGIN(INITIAL);
    <COMMENT>.  { current_comment += yytext[0]; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2013-01-30
      • 2015-07-04
      • 2011-05-07
      • 1970-01-01
      • 2015-07-22
      • 2016-09-02
      相关资源
      最近更新 更多