5

次のフレックスルールを設定しています。

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

私の目的にはうまく機能し、最初のルールに一致すると出力されます。

HASH | some matched string

私を悩ませているのは、flex が 2 番目のルールに一致するたびに改行も出力していることです。そのため、改行で満たされた stdout を取得します。Cには何もしないOPがありますか? 空のルール アクションで改行を出力するように暗黙的に flex に指示していますか? 「{}」を省略しても同じ動作になります。sed などを使用して改行を除外できますが、改行の出力を停止するように flex に指示するだけです。

フォローアップの例とデータを提供させていただきます。

4

1 に答える 1

5

\n をデフォルトのルールに追加する必要があります:

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