flex與bison的結合使用(計算器例子)
flex與bison的結合使用
1.詳介
對於怎麼讓flex與bison結合到一起,有兩種方法。一種是在VC6中建立一個工程,不過VC6工程中要做一些設定,才能順利編譯,所以第一種我就沒采納。
另外一種就是在bison的輔助性c語言例程部分加一個#include "lex.yy.c"就可以了。在CMD命令中,我們就可以先編譯flex,>flex name.l 。
然後會生成lex.yy.c檔案,不過在用編譯器編譯的時候會報錯,原因我相信也是好理解的。因為在flex我們會返回bison中出現的終結符,即詞法單元。在我們還沒有編譯bison檔案的時候肯定是不認識的,所以報錯。
我們無需理會錯誤(除非是真的自己寫錯了,看好錯誤的情況),繼續在CMD中執行>bison -d name.y 命令。這樣就預設完成連線,並且執行完了程式。
bison 工具包>地址<
2.細節
一些基本的過程就不說了,在前面已經提及了。
不明白的去看一下就好了。
網址:>基本過程<
現在我就講一下不同的地方,
(1).我們肯定在資料夾裡要匯入bison的包,才能進行的編譯。
(2).工具已經準備就緒,我們開啟CMD命令(注意細節),執行>flex name.l 命令
(3).我們去資料夾看一下會有一個lex.yy.c檔案,用編譯器開啟執行一下,會發現報錯(一般是正常現象):
(4).執行 bison -d name.y 命令,在去資料夾看會有name_table.c檔案。
(5).用編譯器開啟並執行name_tab.c程式,就可以實現了(這個程式可以直接在執行.c程式生成的對話方塊上操作就可以)。
相關文章
- flex bisonFlex
- ANTLR flex/bisonFlex
- Flex & Bison 開始Flex
- ANTLR VS FLEX&BISONFlex
- 資料要素流通與隱私增強計算的結合實踐
- 提供流批結合計算能力
- 盒模型的相關計算及flex佈局的不常見規律總結模型Flex
- C++結合QT實現帶有優先順序的計算器C++QT
- 雲端計算雲智慧,智慧與雲的結合改變了什麼?
- 大模型API與前端的結合使用大模型API前端
- 北鯤雲超算平臺如何將雲端計算與高效能運算結合
- 使用vue寫的計算器demoVue
- 計算機組成與系統結構 cache 原理與計算計算機
- rem與em的區別||結合使用rem與emREM
- 關於flex-shrink如何計算的冷知識Flex
- flex結合媒體查詢佈局程式碼Flex
- 《計算機組成與體系結構》——8.2機器指令計算機
- 計算機處理器結構計算機
- 20210125-1 文字編輯器與計算機基本使用計算機
- 拓撲學與物理學結合,量子計算機正在成為現實計算機
- spark的計算器與廣播變數Spark變數
- flex總結Flex
- python 列表推導式與 assert 的結合使用Python
- 計算機網路再次整理————UDP例子[六]計算機網路UDP
- 計算機網路再次整理————tcp例子[五]計算機網路TCP
- Vuex與Busemit結合使用淺談Vuex使用方式VueMIT
- PyQt5 GUI程式設計(QMainWindow與QWidget模組結合使用)QTGUI程式設計AI
- MATLAB R2023a:數學計算軟體的革新與專業程式設計的完美結合 mac/win版Matlab程式設計Mac
- Spring Boot與Kafka + kafdrop結合使用的簡單示例Spring BootKafka
- SpringBoot與mongodb的結合Spring BootMongoDB
- WinAMS 與 Jenkins 的結合Jenkins
- RESTful 介面設計規範與mock的完美結合RESTMock
- Spring Boot註解@Transactional結合實際例子講解Spring Boot
- 技術革命——雲端計算結合人工智慧人工智慧
- 博森ccg合約機器人:比特幣合約計算方式機器人比特幣
- TypeScript reflect-metadata 結合方法裝飾器實現的一個自定義語法檢查的例子TypeScript
- display:flex與inline-flex 區別Flexinline
- Protobuf的使用,結合ideaIdea