日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
LinuxBison語義類型怎么使用

本篇內(nèi)容主要講解“Linux Bison語義類型怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux Bison語義類型怎么使用”吧!

成都創(chuàng)新互聯(lián)公司從2013年成立,先為蘇尼特右等服務(wù)建站,蘇尼特右等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為蘇尼特右企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

簡介
正如UNIX®開發(fā)人員所了解的那樣,F(xiàn)lex和Linux Bison的功能非常強大,非常適合開發(fā)詞法和語法解析器,尤其是語言編譯器和解釋器。

本文介紹了更高級的一些主題:用來在編譯器和解釋器中更好地實現(xiàn)錯誤處理能力的特性和技術(shù)。為了展示這些技術(shù),我使用了一個示例程序ccalc,它基于Bison手冊中的計算機實現(xiàn)了一個增強的計算器。我們可以從本文后面下載一節(jié)下載ccalc和相關(guān)文件。

增強包括使用了很多變量。在ccalc中,變量是通過在初始化中***使用時定義的,例如a=3。如果變量是在初始化之前使用的,那就會產(chǎn)生語義錯誤,使用值為0來創(chuàng)建這個變量,并打印一條消息。

示例源文件

示例源代碼中包括7個文件:
ccalc.c:主程序,以及一些進行輸入、輸出和錯誤處理的函數(shù)ccalc.h:包括了對所有模塊的定義cmath.c:數(shù)學函數(shù)parse.y:Bison使用的輸入文法lex.l:Flex的輸入makefile:簡單的makefiledefs.txt:示例輸入文件這個程序接收兩個參數(shù):
-debug:產(chǎn)生調(diào)試輸出filename:輸入文件名;默認值為defs.txtBison使用的設(shè)置為了處理變量名和實際值,Bison的語義類型必須進行增強:


清單1.更好的Linux Bison語義類型

/*generateinclude-filewithsymbolsandtypes*/  %defines  /*amoreadvancedsemantictype*/  %union{  doublevalue;  char*string;  }

有些文法規(guī)則可以產(chǎn)生特定的語義類型,這需要像清單2中一樣對Bison進行聲明。要獲得一個可移植性更好的Bison文法版本,我們需要重新定義+-*/()符號。下面這個例子沒有使用左括號(,而是使用了結(jié)束符符號LBRACE,這是由詞法分析提供的。另外,操作符的優(yōu)先順序也必須進行聲明。

對于Flex來說,所生成的代碼通常都依賴于平臺所使用的代碼頁(codepage)。盡管我們可以使用其他代碼頁,但是必須要對輸入進行轉(zhuǎn)換。因此與Bison代碼不同,F(xiàn)lex代碼尚不能進行移植。

到此,相信大家對“Linux Bison語義類型怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!


網(wǎng)站欄目:LinuxBison語義類型怎么使用
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/ggecoh.html