第一章 flex單詞計數程序

學習Flex&Bison目標, 讀懂SQLite中SQL解析部分代碼

Flex&Bison簡介
Flex作詞法分析
Bison作語法分析

第一個Flex程序, wc.fl, 單詞計數程序

正則表達式

%{
int chars = 0;
int words = 0;
int lines = 0;
%}
%%
[a-zA-Z]+ { words++; chars += strlen(yytext); }
\n { chars++; lines++; }
. { chars++; }
%%
main(int argc, char **argv)
{
yylex();
printf("%8d%8d%8d\n", lines, words, chars);
}

 




程序說明
程序包含3部分
1. 聲明和選項設置
2. 模式和動做
3. 會被拷貝到生成的詞法分析器裏的C代碼

1. 聲明部分的代碼, 會被原樣拷貝到C代碼頭文件中
2. 模式部分是: 正則表達式+C代碼{}
3. yylex()是詞法分析程序入口, 有主程序main調用

編譯執行
flex wc.l
cc lex.yy.c -lfl
./a,out
而後在標準輸入, 輸入文字
^D
獲得結果

學習

相關文章
相關標籤/搜索