次のフレックスルールを設定しています。
"#"{name} {printf(" HASH | %s\n", yytext);}
. {}
私の目的にはうまく機能し、最初のルールに一致すると出力されます。
HASH | some matched string
私を悩ませているのは、flex が 2 番目のルールに一致するたびに改行も出力していることです。そのため、改行で満たされた stdout を取得します。Cには何もしないOPがありますか? 空のルール アクションで改行を出力するように暗黙的に flex に指示していますか? 「{}」を省略しても同じ動作になります。sed などを使用して改行を除外できますが、改行の出力を停止するように flex に指示するだけです。
フォローアップの例とデータを提供させていただきます。