Abstract
在開發程序的過程中經常會遇到文本解析的問題,例如:解析 C 語言源程序,編寫 腳本引擎等等,解決這種文本解析的方法有很多,一種方法就是自己手動用 C 或者 C++直接編寫解析程序,這對於簡單格式的文本信息來說,不會是什么問題,但是 對於稍微復雜一點的文本信息的解析來說,手工編寫解析器將會是一件漫長痛苦 而容易出錯的事情。本系列文檔就是專門用來由淺入深的介紹兩個有名的 Unix 工 具 Lex 和 Yacc,並會一步一步的詳細解釋如何用這兩個工具來實現我們想要的任何 功能的解析程序,為了方便理解和應用,我會在該系列的文章中盡可能的采用具 體可行的實例來加以闡釋,而且這種實例都是盡可能的和具體的系統平台無關的 ,因此我采用命令行程序作為我們的解析程序的最終結果。
1 環境配置篇
1.1 必備工具(備注:所需工具均在我的資源文件中可找到)
Windows平台下面Lex 和Yacc開發環境所需要安裝的程序:
(1)Lex(flex.exe)
(2)Yacc(bison.exe)
(3)C/C++編譯器
1.2 flex和bison安裝
flex.exe和bison.exe是UnxUtils包中的文件,已經將許多Unix/Linux平台的程序都移植到了Windows平台,可以直接到UnxUtils網站下載,下載解壓縮之后在系統的PATH環境變量中增加UnxUtils所有的exe文件所在的目錄,使 得DOS命令行可以直接搜索到flex.exe和bison.exe,除此之外還需要從網絡上下載 bison需要的bison.simple和bison.hairy兩個文件,並且還要分別設置環境變量 BISON_HAIRY指向bison.hairy,BISON_SIMPLE指向bison.simple。
然后,打開cmd檢查是否安裝成功,如下圖所示:
1.3 C/C++編譯器
我們使用的flex和bison都是GNU的工具,所以為了方便,采用的c/c++編譯器也是GNU的編譯器GCC,需要WINDOWS版的MinGW編譯器,在可以到MinGW的主頁下載安裝。
安裝完畢后,將MinGW下的bin目錄添加到系統環境變量的Path中。
配置完畢。