[發明專利]生成代碼文件的語法樹的方法、裝置及電子設備在審
| 申請號: | 201811638890.3 | 申請日: | 2018-12-29 |
| 公開(公告)號: | CN111381826A | 公開(公告)日: | 2020-07-07 |
| 發明(設計)人: | 馮剛 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京市立方律師事務所 11330 | 代理人: | 張筱寧 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 生成 代碼 文件 語法 方法 裝置 電子設備 | ||
1.一種生成代碼文件的語法樹的方法,其特征在于,包括:
在接收到預定編程語言的待解析代碼文件時,通過詞法解析模塊對所述待解析代碼文件中的各個詞法符號進行解析并生成相應的線性鏈表;
基于第一查找表和第二查找表,依次對所述線性鏈表中的各個詞法符號進行分析,并確定任一詞法符號屬于預定沖突類型時,對所述任一詞法符號進行相應的沖突消除處理;
根據所述沖突消除處理的處理結果,生成所述待解析代碼文件的語法樹。
2.根據權利要求1所述的方法,其特征在于,所述預定沖突類型,包括以下任一種:
所述任一詞法符號的處理屬于移進處理與歸約處理的沖突;
所述任一詞法符號的處理屬于第一歸約處理與第二歸約處理的沖突。
3.根據權利要求2所述的方法,其特征在于,在對所述任一詞法符號進行沖突消除處理之前,還包括:
對當前的處理狀態進行保存,得到第一保存結果。
4.根據權利要求3所述的方法,其特征在于,對所述任一詞法符號進行沖突消除處理,包括:
根據上下文對所述任一詞法符號進行第一目標處理,并基于所述第一目標處理對所述任一詞法符號之后的詞法符號依次進行相應處理;
若直至完成重試結束符的處理,均未發生處理錯誤,則刪除所述第一保存結果,并繼續對后續詞法符號進行相應處理。
5.根據權利要求4所述的方法,其特征在于,還包括:
若在對所述任一詞法符號之后的詞法符號依次進行相應處理的過程中發生處理錯誤,則按照所述第一保存結果進行恢復處理,并對所述任一詞法符號進行第二目標處理,并對所述任一詞法符號之后的詞法符號依次進行相應處理。
6.根據權利要求1-5任一項所述的方法,其特征在于,對所述任一詞法符號進行沖突消除處理的情形,包括以下任一種:
當所述任一詞法符號屬于第一預定類型時,若所述任一詞法符號發生歸約處理與移進處理之間的沖突,則對所述任一詞法符號進行移進處理;
當所述任一詞法符號屬于第二預定類型時,若所述任一詞法符號發生移進處理與歸約處理之間的沖突,則根據詞法符號之間的線性關系,確定對所述任一詞法符號進行移進處理或者歸約處理;
當所述任一詞法符號屬于第三預定類型時,若所述任一詞法符號發生第一歸約處理與第二歸約處理之間的沖突,則根據詞法符號之間的線性關系,確定對所述任一詞法符號進行第一歸約處理或者第二歸約處理。
7.根據權利要求1-6任一項所述的方法,其特征在于,在對所述任一詞法符號進行沖突消除處理之后,還包括:
對所述沖突消除處理的處理結果進行錯誤恢復處理。
8.一種生成代碼文件的語法樹的裝置,其特征在于,包括:
解析模塊,用于在接收到預定編程語言的待解析代碼文件時,通過詞法解析模塊對所述待解析代碼文件中的各個詞法符號進行解析并生成相應的線性鏈表;
第一處理模塊,用于基于第一查找表和第二查找表,依次對所述線性鏈表中的各個詞法符號進行分析,并確定任一詞法符號屬于預定沖突類型時,對所述任一詞法符號進行相應的沖突消除處理;
語法樹生成模塊,用于根據所述沖突消除處理的處理結果,生成所述待解析代碼文件的語法樹。
9.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現權利要求1-7任一項所述的生成代碼文件的語法樹的方法。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,該程序被處理器執行時實現權利要求1-7任一項所述的生成代碼文件的語法樹的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811638890.3/1.html,轉載請聲明來源鉆瓜專利網。





