yacc&lex-命名正则表达式

来源:互联网 发布:网络语言10086什么意思 编辑:程序博客网 时间:2024/06/06 04:56

可以在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
0 0
原创粉丝点击