5

我有以下弹性规则。

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

它非常适合我的目的,并在与第一条规则匹配时输出;

HASH | some matched string

困扰我的是 flex 还在第二条规则的每个匹配项上打印一个换行符。所以我得到一个充满换行符的标准输出。C中是否有无所事事的OP?我是否隐含地告诉 flex 打印带有空规则操作的换行符?省略“{}”会导致相同的行为。我可以使用 sed 或其他任何东西来过滤掉换行符,但我宁愿告诉 flex 停止打印换行符。

我很乐意提供后续示例和数据。

4

1 回答 1

5

您需要将 \n 添加到默认规则中:

.|\n   {}
于 2013-10-26T12:00:45.537 回答