次のコードを含むlexファイルport_regex.lがあります。
DECIMAL_16bits [ \t]*[:digit:]{1,4}[ \t]*
SPACE [ \t]
%x S_rule S_dst_port
%%
%{
BEGIN S_rule;
%}
<S_rule>(dst-port){SPACE} {
BEGIN(S_dst_port);
}
<S_dst_port>\{{DECIMAL_16bits}\} {
printf("\n\nMATCH [%s]\n\n", yytext);
BEGIN S_rule;
}
. { ECHO; }
%%
int main(void)
{
while (yylex() != 0)
;
return(0);
}
int yywrap(void)
{
return 1;
}
それから次のように実行可能ファイルを作成します。
flex port_regex.l
gcc lex.yy.c -o port_regex
これにより、port_regexという実行可能ファイルが作成されます。
以下に示すport.fileというテストデータを含むファイルがあります。
dst-port {234}
dst-port {236}
dst-port {233}
dst-port {2656}
port_regex実行可能ファイルを使用してport.fileをテストするにはどうすればよいですか。
私は次のようなことをすることができますか
./port_regex <port.file
上記を試してみましたが、うまくいかないようですが??