%%
[ \t]+ { putchar(' '); }
[ \t]+$
示例2:在输入文件的每行前面加上行号然后输出:
%{
unsigned yylineno = 1;
%}
%%
^.*\n { printf("%4d: %s", yylineno, yytext); ++yylineno; }
%%
int
main(int argc, char *argv[])
{
if (argc > 1) {
FILE *file = fopen(argv[1], "r");
if (file) {
yyin = file;
yylex();
}
}
return 0;
}
代码中的yytext包含匹配字符串。在某些lex的实现中预定义了变量yylineno。
没有评论:
发表评论