词法分析器生成工具lex使用

一个lex程序具有如下形式:

声明部分:包括变量和明示常量,可以将一些c语言的东西写在%{....... %},并且可以在转换规则中调用

%{
    #include <stdio.h>
    int id_num;   /*常量量*/
%}

letter [A-Za-z]    /*正则变量*/
start start        /*正则变量*/
stop  stop     /*正则变量*/

转换规则:通过在声明部分的正则变量,识别输入流中的单词,并可以执行一些动作

lex程序中的每个转换规则具有如下形式:

                                                 模式  {动作}

%%
letter {id_num++;}
start  {printf("start received");}
stop   {printf("stop received");}

模式:letter {动作 letter的数目加一}

辅助函数:

%%
void main()
{
    yylex(); /* start the analysis*/
    printf("no of letter:%d",id_num);
}

int yywrap()
{
    return 1;
}

 

 

posted @ 2013-01-03 16:37  GOD_YCA  阅读(5882)  评论(1编辑  收藏  举报