原文地址
在開發程序的過程中經常會遇到文本解析的問題,例如:解析C語言源程序,編寫腳本引擎等等,解決這種文本解析的方法有很多,一種方法就是自己手動用 C或者C++直接編寫解析程序,這對于簡單格式的文本信息來說,不會是什么問題,但是對于稍微復雜一點的文本信息的解析來說,手工編寫解析器將會是一件漫長痛苦而容易出錯的事情。本系列文檔就是專門用來由淺入深的介紹兩個有名的Unix工具Lex和Yacc,并會一步一步的詳細解釋如何用這兩個工具來實現我們想要的任何功能的解析程序,為了方便理解和應用,我會在該系列的文章中盡可能的采用具體可行的實例來加以闡釋,而且這種實例都是盡可能的和具體的系統平臺無關的,因此我采用命令行程序作為我們的解析程序的最終結果。本文第一篇將會講解該開發環境的設置問題。
第一篇:環境設置
開發Lex和Yacc程序最需要的程序就是lex和yacc了,如果你是Unix或者Linux系統,則系統自帶了這兩個工具,無需安裝,不過值得說明的是GNU/Linux下面的Lex是flex,而Yacc則是bison。另外需要的就是一個編譯器,由于我們采用的是GNU的lex和yacc,所以,理所當然的我們就使用GNU的編譯器了,如果是Unix或者Linux系統,那么編譯器應該已經安裝了。在這里我重點討論的是Windows系統環境下的Lex和Yacc程序的開發,至于為什么選擇Windows系統作為開發平臺,則是為了盡可能的讓初學者容易入門。
言歸正傳,首先列舉Windows平臺下面Lex和Yacc開發環境所需要安裝的程序:
1. UnixCmd(最主要的是flex.exe和bison.exe)
2. MinGW
安裝完成之后,還需要設置幾個環境變量:
將以上兩個程序的安裝之后的可執行程序所在的路徑加入到系統的PATH環境變量中,保證可以通過Dos窗口直接調用到里面的命令。確保bison.exe程序所在的路徑中有bison.hairy和bison.simple兩個文件,然后設置兩個環境變量BISON_HAIRY指向bison.hairy, BISON_SIMPLE指向bison.simple。具體的操作步驟如下所示(WindowsXP為例):
第一步:鼠標右擊“我的電腦”圖標,選擇“屬性”,彈出的對話框選擇“高級”標簽頁:
第二步:點擊上圖的“環境變量”按鈕,進入到下面的對話框:
經過上面的設置之后需要在控制臺窗口中進行調用,測試環境變量是否已經設置成功。