撰寫本文的目的: 給出使用JFlex、JavaCUP來為壹個計算器建立分析器的示例的完整代碼,使讀者能充分領會JavaCUP的使用方法。雖然本文僅僅給出了計算器的代碼,但只要妳會寫妳的語言的翻譯模式,則只要照抄這個模版,並改改相應動作就可以了。
引用到的資料:
《CUP User's Manual》,作者:
Scott E. Hudson
地址為李老師那裏下載下來的JavaCUP-11a.rar\CUP-develop.tar.gz\develop\manual.html,有詳細的英文說明和示例代碼,但有很多錯。本文中簡稱為《手冊》。
《使用CUP進行語法分析》
詳細步驟:1、準備工作。
JavaCUP和JFlex壹樣,壓縮包裏邊有許多的文件夾和文件,我不知道正統的做法是否要求使用javaCUP也像Jflex壹樣要設置壹堆path啊、classpath啊、jflex_home之類的環境變量,但如果妳像我壹樣只打算用它幾次,妳只要執行下述的兩個簡單步驟就可以了,它並不需要妳設置任何的環境變量(以下假設妳的工作目錄是work\):
1)將JavaCUP壓縮包裏的java-cup-11a.jar解壓到work\下。
2)將JavaCUP壓縮包裏的CUP-develop.tar.gz\develop\src下的java_cup文件夾整個解壓到work\下。
現在妳可以使用JavaCUP了。
2、為這個計算器寫壹個詞法分析器。或者用JFlex生成壹個詞法分析器
兩種方法都可以生成詞法分析器,其中,直接寫分析器的代碼如下: