2014-02-25 71 views
1

我的flex腳本存在問題。我爲C++多行註釋編寫它。我的flex模式是:flex中的C++多行註釋語法

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

它可以找到一個多行註釋。但是當我將整個代碼放在多行註釋中時,它不起作用。我嘗試了很多,但找不到任何解決方案。

回答

1

Flex一次讀取輸入一個緩衝區。使用正常匹配,單個令牌可以佔用不超過一個數據緩衝區。如果內存提供服務,緩衝區通常是8千字節,所以比此長的單個令牌不能正確匹配。

通常你解決這個具有獨佔啓動條件,這一般順序的東西:

"/*" BEGIN(COMMENT); 

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