[發明專利]基于IDL文件的解析方法、裝置、電子設備和存儲介質有效
| 申請號: | 201910161247.4 | 申請日: | 2019-03-04 |
| 公開(公告)號: | CN110069259B | 公開(公告)日: | 2020-08-04 |
| 發明(設計)人: | 陳澤慶 | 申請(專利權)人: | 北京三快在線科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F9/54 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100083 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 idl 文件 解析 方法 裝置 電子設備 存儲 介質 | ||
1.一種基于IDL文件的解析方法,其特征在于,所述方法包括:
獲取用戶配置信息,并從所述用戶配置信息中確定IDL文件;
采用預設解析函數棧對所述IDL文件進行解析得到抽象語法樹;
從所述抽象語法樹中提取連接類,并對所述連接類進行實例化得到連接類實例;
將所述連接類實例和抽象語法樹封裝為客戶端函數;
其中,所述采用預設解析函數棧對所述IDL文件進行解析得到抽象語法樹的步驟,包括:
根據所述用戶配置信息從所述IDL文件中確定入口IDL文件;
讀取所述入口IDL文件得到目標字符集;
采用預設解析函數棧對所述目標字符集進行解析得到抽象語法樹;
在所述抽象語法樹中包含依賴關系節點的情況下,從所述依賴關系節點中獲取被依賴文件;
獲取所述被依賴IDL文件對應的抽象語法子樹,并添加至所述抽象語法樹中;
所述預設解析函數棧由一個或多個解析函數構成,各所述解析函數均針對一種所述IDL文件中的語法規則進行解析,所述解析函數根據所述IDL文件的語法規則預先編寫。
2.根據權利要求1所述的方法,其特征在于,所述采用預設解析函數棧對所述目標字符集進行解析得到抽象語法樹的步驟,包括:
采用預設解析函數棧中的每個解析函數,對所述目標字符集中的多個連續字符進行解析;
在其中一個解析函數對所述連續字符解析成功的情況下,將所述解析函數解析得到的語法節點添加至抽象語法樹中;
在所述預設解析函數棧對所述連續字符解析失敗的情況下,向后擴展所述連續字符,并采用預設解析函數棧對擴展之后的連續字符進行解析;
在所述連續字符中最后一個字符的位置偏移量小于所述目標字符集包含的字符數目的情況下,采用預設解析函數棧對所述連續字符之后的字符進行解析。
3.根據權利要求1所述的方法,其特征在于,所述獲取所述被依賴IDL文件對應的抽象語法子樹的步驟,包括:
從預設緩存中獲取所述被依賴IDL文件對應的抽象語法子樹;
在從預設緩存中獲取所述抽象語法子樹失敗的情況下,采用預設解析函數棧對所述被依賴IDL文件進行解析得到抽象語法子樹。
4.根據權利要求1~3之任一項所述的方法,其特征在于,所述從所述抽象語法樹中提取連接類的步驟,包括:
從所述抽象語法樹中提取結構聲明節點和服務聲明節點;
根據所述結構聲明節點導入對應的結構編譯文件;
根據所述服務聲明節點導入對應的服務編譯文件;
從所述結構編譯文件和服務編譯文件中獲取連接類。
5.根據權利要求1~3之任一項所述的方法,其特征在于,所述抽象語法樹包括語法節點,所述語法節點包括參數類型,在所述將所述連接類實例和抽象語法樹封裝為客戶端函數的步驟之后,還包括:
響應于針對所述客戶端函數的網絡調用請求,根據所述參數類型進行參數編碼,得到編碼之后的參數;
采用所述編碼之后的參數調用所述客戶端函數得到結果數據。
6.根據權利要求5所述的方法,其特征在于,所述采用所述編碼之后的參數調用所述客戶端函數得到結果數據的步驟,包括:
在預設的數據來源為真實數據的情況下,采用所述編碼之后的參數調用所述客戶端函數從遠端服務器獲取結果數據;
在預設的數據來源為非真實數據的情況下,采用所述編碼之后的參數調用所述客戶端函數從預設數據庫中獲取結果數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京三快在線科技有限公司,未經北京三快在線科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910161247.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種HCI代碼二次生成方法
- 下一篇:一種嵌入式軟件的可配置分區方法及系統





