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