|
|
%{
#include<stdio.h>
%}
char [a-zA-Z]
number [0-9]
%%
{char}[{char}|{number}]* { printf("got %s\n",yytext); }
[\ \t\n]* /*ignore blanks*/{ printf("newline read\n"); }
%%
extern FILE* yyin;
int main(int argc,char* argv[])
{
yyin = fopen(argv[1],"rt");
yylex();
fclose(yyin);
return 1;
}
int yywrap()
{ return 1; }
我的OS是FC4,编译用的是 G++,但是结果和我预料的很不一样,输入文件为:
safasf
afas
safffas
afasa
AAAAAAAAAAAAA
输出却是:
got sa
got fa
got s
got f
newline read
got a
got fa
got s
newline read
got sa
got f
got f
got fa
got s
newline read
got a
got fa
got sa
newline read
got A
got A
got A
got A
got A
got A
got A
got A
got A
got A
got A
got A
got A
不是说是最长匹配吗?希望大家给我点指导 |
|