1. 程式人生 > >windows下yacc和lex開發環境配置(Parser Generator篇)

windows下yacc和lex開發環境配置(Parser Generator篇)

1.下載安裝
Parser Generator是Windows下YACC和LEX的實現,是由英國Bumble-Bee Software公司開發.
下載地址http://www.bumblebeesoftware.com/downloads.htm.
安裝軟體之後,設定系統環境變數path,在path屬性中新增安裝bin目錄;以我的安裝為例,在以前的path屬性後新增;D:/Program Files/Parser Generator 2/Bin
在控制檯命令視窗中輸入alex,ayacc,檢驗是否能找到這兩個命令.如果找不到,那麼肯定是環境變數設定有誤.
2.vc.net配置
下面我以vc.net為例,進行配置說明.
1)開啟vc.net程式,開啟選單"工具"=>"選項",開啟"選項"對話方塊.
2)在選項對話方塊左邊選擇"Projects"=>"VC++ 目錄"
   在"顯示以下內容的目錄(S)"下拉列表中選擇"可執行檔案",在下面的目錄列表中新增一行"D:/Program Files/Parser Generator 2/Bin"
  在"顯示以下內容的目錄(S)"下拉列表中選擇"包含檔案",在下面的目錄列表中新增一行"D:/Program Files/Parser Generator 2/Cpp/Include"
  在"顯示以下內容的目錄(S)"下拉列表中選擇"庫檔案",在下面的目錄列表中新增一行"D:/Program Files/Parser Generator 2/Cpp/Lib/msvc32"
  在"顯示以下內容的目錄(S)"下拉列表中選擇"原始檔",在下面的目錄列表中新增一行"D:/Program Files/Parser Generator 2/Cpp/Source"
3.示例


用vc.net建立一個控制檯專案
選中專案,在右鍵選單中選擇"屬性",或者選擇選單"專案"=>"屬性",開啟專案屬性對話方塊.
1)在左邊選擇"屬性配置"=>"C/C++"=>"預處理",在右邊列表中,"前處理器定義"行中新增一個YYDEBUG巨集定義,用;號通別的巨集定義分隔開來.
2)在左邊選擇"屬性配置"=>"聯結器"=>"輸入",在右邊列表中,"附加依賴項"中新增yld.lib或者ylmtrid.lib   (ylmtrid.lib  是多執行緒,yld.lib 是單執行緒)
3)從D:/Program Files/Parser Generator 2/Cpp/Examples/calc目錄中拷貝calc.y檔案到專案目錄,開代控制檯,進入專案calc.y所在目錄,執行命令ayacc calc.y,如果成功,你會看到在同樣的目錄中,有一個calc.c檔案生成.將calc.c新增到專案中,然後編譯,生成可執行程式. 
4)配置編譯選項,自動轉換.y.l檔案
  在工程中選擇.y檔案,右鍵選單=>"屬性"開啟屬性對話方塊,在屬性對話方塊中選擇"自定義生成步驟",在右邊"命令列"中輸入ayacc calc.y,在"輸出"中輸入calc.c;這樣在編譯工程的時候,就可以根據calc.y檔案自動生成calc.c檔案,.l檔案的生成配置辦法類似.
4.結束

我按照上面步驟成功生成了程式,沒有出現任何錯誤.vc6.0的配置類似.如有不對的地方,歡迎指正.
另外可以採用CygWin,看文章http://hi.baidu.com/momoca/blog/item/f6010cd7dbdb00dea044df51.html
也可以採用minGw,看文章http://hi.baidu.com/dadandachan/blog/item/449d802f0ff9b1381e3089b0.html
flex,bison的下載地址http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html
CygWin和minGw在這兒就不再舉例項了,大家可以參考上面的文章,其實也是工具而已.
yacc&lex英文資料http://www.cs.man.ac.uk/~pjj/cs2111/ 
http://epaperpress.com/lexandyacc/ 
http://yaxx.sourceforge.net