词法分析器生成工具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;
}

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM