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