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