0
私はパスカルのサブセットを使ってプロジェクトを行っています。私もちょうど\ n個の代わりに[\ N]または[\ n]のではなく、期待される結果なしで、それに対処するための多くの方法を試してみましたフレックス - 新しい行が認識されない
NLINE [\n]
BRACKET ['('|')']
%%
{BRACKET} {
std::cout << "Found BRACKET symbol " << yytext[0] << std::endl;
return yytext[0];
}
{NLINE} {
std::cout << "Found NEWLINE symbol " << yytext[0] << std::endl;
yylineno++;
}
...
. { // anything is exactly before EOF
std::cout << "Found ANYTHING " << yytext[0] << std::endl;
yylval = NONE;
return yytext[0];
}
:ように私のコードが見えます。出力は以下の通りです:
...
Found BRACKET symbol)
Found ANYTHING ;
Found ANYTHING << where in code should be \n
これは\ n問題だと私は知っています。なぜなら、私はコードをプッシュすると、それは魅力的です。
建設的な回答があれば分かります。
'('または ')'にマッチする正しいパターンは '[()]'です。あなたのパターンはかっこ、アポストロフィ、または縦棒と一致します。 – rici
また、「それを使わずにコードをプッシュすると」という言い方が分かりません。 – rici
私はすべての\ nを入力ファイルから切り取ったときを意味します。すべて1列に並んでいますが、これはあまり快適ではありません。申し訳ありませんが、私は十分に自分自身を明確に表現していませんでした – Kris