可以在lex的definition部分为正则表达式指定名称,后续用{name}方式引用。
%{#include <stdlib.h>#include <stdio.h>int count = 0;%}digit [0-9]number {digit}+%%{number} { int n = atoi(yytext); PRintf("number: %d/n", n); count++;}quit { return 0;}. ;%%int main(){ yylex(); printf("number count: %d/n", count); return 0;}运行结果:
abc 123 def 456 789 quitnumber: 123number: 456number: 789number count: 3新闻热点
疑难解答