フレックスジェネレーターとその仕組みを使用しようとしています。次のコードは、テキストファイル{numbernumber}の記号のシーケンスを{"d"ws "d"}に置き換え、置き換えの数を計算します。
%{
int count = 0;
%}
DIGIT [0-9]
%%
{DIGIT}{DIGIT} {count++; printf("d d");}
%%
int main()
{
yylex();
printf( "\n#Report: %d changes made!", count);
return 0;
}
int yywrap()
{
return 1;
}
入力ファイルのルールを含むファイルを送信し、flex lex.yy.cをコンパイルした後、実行可能ファイルを受け取りました。次のデータストリームを送信する実行可能ファイルへの入力
====================test.in============================
wefwe
f
weferg54gfwsfwe
fwef
wefwefwf
wefewf21321dsfredf
sdf
===========================================================
得られた出力
============================ test.out ==================
wefwe
f
wefergd dgfwsfwe
fwef
wefwefwf
wefewfd dd d1dsfredf
sdf
#Report: 3 changes made!
================================================== ======
私の質問は、与えられたテキストで、記号のシーケンス{子音子音}を{子音«a»子音}に置き換えて、置き換えの数を計算したい場合はどうなるかということです。