一个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;
}

 

 

相关文章:

  • 2021-10-23
  • 2021-11-13
  • 2022-12-23
  • 2022-02-15
  • 2022-12-23
  • 2021-12-13
  • 2021-06-29
猜你喜欢
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-06-27
相关资源
相似解决方案