28 lines
665 B
Plaintext
28 lines
665 B
Plaintext
|
/* 简单词法分析器 */
|
|||
|
/* 功能:能够识别出以小写字母ab结尾的所有字符串(仅含大小写字母)并给打印'Hit!' */
|
|||
|
/* 说明:在下面的begin和end之间添加代码,注意格式 */
|
|||
|
/* 提示:你只需要保证合法的输入(以ab结尾的字符串)有结果,不合法的输入将会包含在.规则中~ */
|
|||
|
%{
|
|||
|
#include <stdio.h>
|
|||
|
%}
|
|||
|
|
|||
|
%%
|
|||
|
/* begin */
|
|||
|
[a-zA-Z]*ab {printf("%s: Hit!\n", yytext);}
|
|||
|
/* end */
|
|||
|
\n {}
|
|||
|
. {}
|
|||
|
%%
|
|||
|
int yywrap() { return 1; }
|
|||
|
int main(int argc, char **argv)
|
|||
|
{
|
|||
|
if (argc > 1) {
|
|||
|
if (!(yyin = fopen(argv[1], "r"))) {
|
|||
|
perror(argv[1]);
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
while (yylex());
|
|||
|
return 0;
|
|||
|
}
|