2013-10-26 45 views
3

我有以下flex規則。Flex在默認規則匹配上打印換行符到標準輸出 - 想要改變該行爲

"#"{name}    {printf(" HASH | %s\n", yytext);} 
.      {} 

它適用於我的目的,並符合第一條規則的輸出;

HASH | some matched string 

什麼令我困擾的是,flex還在第二條規則的每個匹配上打印換行符。所以我得到一個充滿換行符的stdout。 C中沒有任何操作嗎?我是否隱式地告訴flex打印一個帶有空白規則操作的換行符?省略「{}」會導致相同的行爲。我可以使用sed或其他來過濾新行,但我寧願告訴flex停止打印換行符。

我很高興提供後續示例和數據。

回答

3

您需要\ n添加到您的默認規則:

.|\n {} 
相關問題