Flex在默认规则匹配时将新行打印到stdout - 想要改变该行为

时间:2013-10-26 10:32:45

标签: flex-lexer lexical

我有以下弹性规则。

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

根据第一条规则的匹配,它对我的​​目的和输出很有效;

HASH | some matched string

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

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

1 个答案:

答案 0 :(得分:3)

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

.|\n   {}