專利名稱:基于移動終端wap瀏覽器詞法分析器的實現(xiàn)方法
技術領域:
本發(fā)明涉及WAP瀏覽器技術領域,尤其是涉及一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法。
背景技術:
WAP2.0協(xié)議是2001年8月推出的。這幾年,在國外已經(jīng)出現(xiàn)了一些支持WAP2.0的嵌入式瀏覽器。比如2003年3月17日,美國ACCESS公司宣布,使用美國高通(QUALCOMM)手機應用平臺--BREW的用戶已經(jīng)可以使用該公司的支持WAP2.0的嵌入式瀏覽器“NetFront v3.0”。NetFront還支持萬維網(wǎng)(WorldWide Web)技術標準制定團體World Wide Web Consortium(W3C,萬維聯(lián)盟)、移動通信的業(yè)界團體Open Mobile Alliance(OMA、開放移動聯(lián)盟)的最新推薦標準,目前已廣泛應用于手機、掌上電腦、汽車通訊服務等領域,大約有200機型、約8000萬臺終端安裝這種瀏覽器。通過‘NetFront’,BREW用戶的內(nèi)容選擇空間更加廣闊,除普通用途外,還可以在商務用途等領域瀏覽互聯(lián)網(wǎng)內(nèi)容。
隨著移動運營商2.5G甚至是3G網(wǎng)絡的建成并投入商用,大量的內(nèi)容和業(yè)務提供商(CP/SP)迅速崛起以及彩色移動終端的普及率不斷提高,使用WAP方式進行移動瀏覽的用戶數(shù)量也在急劇增長。據(jù)著名的StrateD Analy6cs預測,到2006使用WAP移動瀏覽器的用戶將占到總移動用戶數(shù)的65%。對于移動瀏覽而言怎樣才能為用戶提供決捷、方便和有趣的內(nèi)容體驗是最為重要也是最為關鍵的。使用WAP2.0能夠?qū)崿F(xiàn)多種形式的內(nèi)容體驗內(nèi)容檢索、多媒體消息、下載甚至是在線流媒體。由此也就產(chǎn)生了大量受用戶歡迎尤其是年輕用戶歡迎的和旋鈴音下載、屏保/壁紙下載、JAVA應用和在線音視頻欣賞等。
同時WAP2.0特有的直接HTTP通信、移動友好技術、標記語言XHTMLMP以及對WML1.0的完全向后兼容等技術也使得WAP2.0能有更好的圖形展現(xiàn)及控制能力;更容易針對不同的終端做出相應的內(nèi)容優(yōu)化;能夠無線傳送流媒體,使用緩存,業(yè)務處理速度更快;對大型文件的下載也更加迅速。
當前,國內(nèi)中國移動和中國聯(lián)通兩大運營商都將WAP2.0作為移動增值的核心業(yè)務。他們在2004年下半年先后推出了WAP2.0業(yè)務。而阿爾卡特等設備制造商,也迅速推出了WAP2.0的商用平臺。眾多SP(增值業(yè)務服務提供商)的眼球更是被WAP2.0緊緊吸引,全力投入以WAP2.0為核心的無線增值新模式競爭。WAP2.0已經(jīng)成為眾多SP競相搶占的無線增值業(yè)務新陣地。
隨著運營商中高速移動數(shù)據(jù)網(wǎng)的建成,含WAP瀏覽器的彩色移動終端普及率直線上升,用戶已經(jīng)初步感受到有趣、方便、實用和快捷的用戶體驗。與此同時設備制造商和內(nèi)容、業(yè)務提供商熱情高漲,新應用、新業(yè)務層出不窮。國際電聯(lián)和WAP論壇正在進一步研究WAP2.0的推廣應用。
詞法分析器是以編程方式實現(xiàn)的一種功能模塊,主要負責對用戶輸入的表達式進行分詞處理,把每一個合法符號(包括數(shù))存入一個特定的存儲結(jié)構中,能夠供之后的文法分析模塊和計算模塊使用,如果發(fā)現(xiàn)非法符號馬上停止處理并報錯。
目前,已經(jīng)存在一些基于WAP的瀏覽器,但是在現(xiàn)有公開文獻和資料中均未見有關詞法分析器的實現(xiàn)方法的介紹。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術中的不足,提供一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法。
為了解決上述技術問題,本發(fā)明是通過以下技術方案實現(xiàn)的本發(fā)明提供了一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法,包括(1)獲得網(wǎng)絡層傳入的數(shù)據(jù)流在連接上無線網(wǎng)絡的情況下,移動終端利用通信協(xié)議的網(wǎng)絡層接收數(shù)據(jù),詞法分析器從網(wǎng)絡層獲得上述傳入的數(shù)據(jù)流;(2)對數(shù)據(jù)類型做簡單的分類判斷在步驟(1)中獲得的數(shù)據(jù)是頁面數(shù)據(jù)還是非頁面數(shù)據(jù),其中非頁面數(shù)據(jù)定義為網(wǎng)絡層反饋的錯誤信息、css外鏈文件、圖像元素、腳本文件;(3)非頁面處理
對于屬于非頁面的數(shù)據(jù)流,進行錯誤處理和下載對應項錯誤處理調(diào)用返回對應的錯誤頁面的樹tree,css外鏈文件、圖像元素、腳本文件則下載對應文件到緩沖區(qū)中,并返回緩沖區(qū)的地址;(4)頁面處理頁面處理由數(shù)據(jù)處理模塊進行處理,該模塊分解數(shù)據(jù)流為四類標簽tag,屬性attribute,事件event和錯誤error,其中要對錯誤error類型的數(shù)據(jù)進行容錯處理;可以容錯處理的數(shù)據(jù),要將處理后的結(jié)果再次返回到數(shù)據(jù)處理模塊,而其余正確的數(shù)據(jù)流由數(shù)據(jù)處理模塊根據(jù)相應的算法動態(tài)的加入到分析樹parser tree中。
作為本發(fā)明的一種改進,步驟(4)所述分析樹parser tree在整個頁面處理過程中是唯一的,動態(tài)生成的。
作為本發(fā)明的一種改進所述步驟(1)至(4)中包括數(shù)據(jù)緩沖步驟所有數(shù)據(jù)將首先到達緩沖區(qū),處理模塊邊讀數(shù)據(jù)緩沖區(qū)邊處理數(shù)據(jù),直到整個數(shù)據(jù)處理完畢。
與現(xiàn)有技術相比,本發(fā)明的有益效果是本發(fā)明具有的有益的效果是(1)高效性。本發(fā)明采用對數(shù)據(jù)類型做簡單的分類的方法處理詞法分析,對于不同類別的頁面,進行不同類型的分析,使得頁面的處理速度更快,具有更高的效率。
(2)準確性。本發(fā)明中通過對語法分析樹的建立過程,使得該語法樹的生成更容易得到控制,能夠減少錯誤的產(chǎn)生。
(3)容錯性。本發(fā)明中通過對語法樹進行分析,動態(tài)生成,使得在分析過程中產(chǎn)生的一些問題能夠得到更好的容錯性。
圖1是本發(fā)明實施方法示意圖;圖2是網(wǎng)絡層反饋數(shù)據(jù)類型定義示意圖;圖3是頁內(nèi)元素數(shù)據(jù)錯誤處理示意圖;圖4是數(shù)據(jù)處理過程示意圖;圖5是示例中生成的parser tree示意圖。
具體實施例方式
參考附圖,下面將結(jié)合一個實施例對本發(fā)明進行詳細描述。
基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法,包括以下步驟(1)獲得網(wǎng)絡層傳入的數(shù)據(jù)流在連接上無線網(wǎng)絡的情況下,移動終端利用通信協(xié)議的網(wǎng)絡層接收數(shù)據(jù),詞法分析器從網(wǎng)絡層獲得上述傳入的數(shù)據(jù)流;(2)對數(shù)據(jù)類型做簡單的分類對數(shù)據(jù)類型做簡單的分類,判斷在(1)中獲得的數(shù)據(jù)流中的一段是頁面還是非頁面數(shù)據(jù),其中非頁面定義為網(wǎng)絡層反饋的錯誤信息、css外鏈文件、圖像元素、腳本文件,直至所有數(shù)據(jù)處理完畢;(3)非頁面處理對于屬于非頁面的數(shù)據(jù)流,進行錯誤處理和下載對應項錯誤處理調(diào)用返回對應的錯誤頁面的樹tree,css外鏈文件、圖像元素、腳本文件則下載對應文件到緩沖區(qū)中,并返回緩沖區(qū)的地址;(4)頁面處理頁面處理由數(shù)據(jù)處理模塊進行處理,數(shù)據(jù)處理模塊是以編程方式實現(xiàn)的一種功能模塊,主要負責對進入到詞法分析器的數(shù)據(jù)進行處理。該模塊分解數(shù)據(jù)流為四類標簽tag,屬性attribute,事件event,錯誤error類型,其中要對error類型的數(shù)據(jù)進行容錯處理??梢匀蒎e處理的數(shù)據(jù),要將處理后的結(jié)果再次返回到數(shù)據(jù)處理模塊,而其余正確的數(shù)據(jù)流由數(shù)據(jù)處理模塊根據(jù)相應的算法動態(tài)的加入到一棵分析樹parser tree中,這棵parse tree在整個頁面處理過程中是唯一的,動態(tài)生成的。
在圖2中,是網(wǎng)絡層反饋數(shù)據(jù)類型為e(錯誤)的定義;圖3中,是頁內(nèi)元素數(shù)據(jù)錯誤處理定義。
數(shù)據(jù)緩沖步驟存在于本發(fā)明的所有步驟當中,所有數(shù)據(jù)將首先到達緩沖區(qū),處理模塊邊讀數(shù)據(jù)緩沖區(qū)邊處理數(shù)據(jù),直到整個數(shù)據(jù)處理完畢。
具體的頁面詞法分析示例如下基本數(shù)據(jù)結(jié)構定義①、parsertree
說明最后生成的parsertree定義structure parsertree{element *topelement;//首個元素char*errormessage;//錯誤信息,Null時無錯}②、element說明parsertree樹上的節(jié)點,在xhtml中為tag等定義structrue element{char*tagname;//tag名字body*elementbody;//bodyattributelist*elementattribute;//屬性鏈}③、body說明element中body定義定義structure body{int contenttype;//tag標識內(nèi)所夾內(nèi)容,0為最終字符串,1為嵌套element*elementdata;//contenttype=1時,elementdata指向body內(nèi)容char*charactedata;//contenttype=0時,charactedata指向body內(nèi)容element*nextelement;//兄弟元素}④、attributelist說明element中attributelist定義定義structure attributelist{char*attributename;//屬性名稱char*value;//屬性值,注意屬性的值完全轉(zhuǎn)換為字符串enum attrvaluetype oriattrvaluetype;//原數(shù)據(jù)類型,便于數(shù)據(jù)還原attributeelist nextattribute;//下一屬性指針}⑤、attrivaluetype說明attrivalue數(shù)據(jù)類型定義emum attrivaluetype{ignored,//此屬性忽略cdata,//此屬性雜類booleans,//此屬性bool型gomethod,//此屬性是動作length,//此屬性設置長寬高占比例imgalign,//此屬性垂直位置(居中左右上下)inputtype,//此屬性輸入框number,//此屬性是具體數(shù)wrapmode,//此屬性是否自動換行palign //此屬性水平位置};圖4是具體的數(shù)據(jù)處理過程,如下①文檔最初的數(shù)據(jù)以<tag>開頭,否則,文檔定義有錯,做容錯處理②判斷元素的全法性,合法則生成元素節(jié)點,并且把元素標識壓入棧,主要是用于匹配元素的結(jié)束符③讀取屬性,判斷屬性的合法性,判斷關鍵屬性是否存在,不存在應自動生成④讀入下一語句,如果是</tag>則要與棧頂元素做判斷,看是否匹配,如果不匹配則要做容錯處理⑤如果不是</tag>,則下面的語句屬于元素的body部分,生成元素結(jié)點的body鏈。
⑥如果是</tag>,后面再無語句,并且棧不為空,此時也要做容錯處理。
⑦如果是</tag>,但后面還有語句,則生成兄弟鏈。
如下一段whtml代碼<html>
<title>嵌入式實驗室</title>
<body>
<img src=“l(fā)ogo.gif”width=200 height=100>
<a HREF=″http://www.embeded.zju.edu.cn″>浙江大學嵌入式實驗室</a>
</body>
</html>
最后生成的Parser Tree如圖5所示。
最后,還需要注意的是,以上列舉的僅是本發(fā)明的具體實施例子。顯然,本發(fā)明不限于以上實施例子,還可以有許多變形。本領域的普通技術人員能從本發(fā)明公開的內(nèi)容直接導出或聯(lián)想到的所有變形,均應認為是本發(fā)明的保護范圍。
權利要求
1.一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法,包括(1)獲得網(wǎng)絡層傳入的數(shù)據(jù)流在連接上無線網(wǎng)絡的情況下,移動終端利用通信協(xié)議的網(wǎng)絡層接收數(shù)據(jù),詞法分析器從網(wǎng)絡層獲得上述傳入的數(shù)據(jù)流;(2)對數(shù)據(jù)類型做簡單的分類判斷在步驟(1)中獲得的數(shù)據(jù)是頁面數(shù)據(jù)還是非頁面數(shù)據(jù),其中非頁面數(shù)據(jù)定義為網(wǎng)絡層反饋的錯誤信息、css外鏈文件、圖像元素、腳本文件;(3)非頁面處理對于屬于非頁面的數(shù)據(jù)流,進行錯誤處理和下載對應項錯誤處理調(diào)用返回對應的錯誤頁面的樹tree,css外鏈文件、圖像元素、腳本文件則下載對應文件到緩沖區(qū)中,并返回緩沖區(qū)的地址;(4)頁面處理頁面處理由數(shù)據(jù)處理模塊進行處理,該模塊分解數(shù)據(jù)流為四類標簽tag,屬性attribute,事件event和錯誤error,其中要對錯誤error類型的數(shù)據(jù)進行容錯處理;可以容錯處理的數(shù)據(jù),要將處理后的結(jié)果再次返回到數(shù)據(jù)處理模塊,而其余正確的數(shù)據(jù)流由數(shù)據(jù)處理模塊根據(jù)相應的算法動態(tài)的加入到分析樹parsertree中。
2.根據(jù)權利要求1所述的基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法,其特征在于,步驟(4)所述分析樹parser tree在整個頁面處理過程中是唯一的,動態(tài)生成的。
3.根據(jù)權利要求1所述的一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法,其特征在于所述步驟(1)至(4)中包括數(shù)據(jù)緩沖步驟所有數(shù)據(jù)將首先到達緩沖區(qū),數(shù)據(jù)處理模塊邊讀數(shù)據(jù)緩沖區(qū)邊處理數(shù)據(jù),直到整個數(shù)據(jù)處理完畢。
全文摘要
本發(fā)明涉及WAP瀏覽器技術領域,旨在提供一種基于移動終端WAP瀏覽器詞法分析器的實現(xiàn)方法。該方法包括基于移動終端WAP瀏覽器詞法分析器解析從協(xié)議抽象層獲得的數(shù)據(jù)流,對其分析,判斷,容錯,構造等處理,最后形成一個結(jié)構明晰,語法完整的詞法樹。本發(fā)明為WAP瀏覽器上層的輸出、布局提供支持,詞法分析的效率與準確性、容錯性好,提高了整個瀏覽器設計實現(xiàn)的質(zhì)量。
文檔編號G06F17/30GK1828603SQ20061005027
公開日2006年9月6日 申請日期2006年4月10日 優(yōu)先權日2006年4月10日
發(fā)明者陳天洲, 胡威, 趙懿, 沙峰 申請人:浙江大學