|
|
我规则部分定义的有
- %%
- A{2,4} { printf("2 to 4 A read:%s\n",yytext); }
- ({char}({char}|{digit})*)/{blank} printf("get word:%s\n",yytext);
- ({digit})+/{blank} printf("get number:%s\n",yytext);
- {blank}
- . printf("unrecognized character:%c\n",*yytext);
- %%
复制代码
但是我的AAAA得不到辨认,辨认的是get word! 不是先定义先匹配吗?
全部代码在这里:
- %{
- #include<stdio.h>
- %}
- char [a-zA-Z\_]
- digit [0-9]
- blank [(\ )|(\n)|(\t)]
- %%
- A{2,4} { printf("2 to 4 A read:%s\n",yytext); }
- ({char}({char}|{digit})*)/{blank} printf("get word:%s\n",yytext);
- ({digit})+/{blank} printf("get number:%s\n",yytext);
- {blank}
- . printf("unrecognized character:%c\n",*yytext);
- %%
- extern FILE* yyin;
- int main(int args,char* argv[])
- {
- if(args<=1 || (NULL==(yyin=fopen(argv[1],"rt"))))
- {
- printf("Specify the input file please\n");
- return 1;
- }
- yylex();
- fclose(yyin);
- return 0;
- }
- int yywrap()
- { return 2; }
复制代码 |
|