我有一个包含以下代码的 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
我尝试了上面的方法,它似乎不起作用??