[發明專利]升級文件的生成方法、裝置和電子設備有效
| 申請號: | 202110321883.6 | 申請日: | 2021-03-25 |
| 公開(公告)號: | CN113010182B | 公開(公告)日: | 2022-05-03 |
| 發明(設計)人: | 陶世博;陳龍;陳天宇;成瑜娟;嚴春偉;藍翔 | 申請(專利權)人: | 北京百度網訊科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/65 |
| 代理公司: | 北京清亦華知識產權代理事務所(普通合伙) 11201 | 代理人: | 韓?;?/td> |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 升級 文件 生成 方法 裝置 電子設備 | ||
1.一種升級文件的生成方法,包括:
獲取源代碼對應的語法樹;
對所述語法樹中的代碼進行歸一化處理,得到歸一化語法樹;
對所述歸一化語法樹進行轉換,得到轉換后的歸一化語法樹;
根據所述轉換后的歸一化語法樹生成轉換后的源代碼;以及
根據所述轉換后的源代碼生成升級文件;
所述對所述語法樹中的代碼進行歸一化處理,包括以下至少一種:
將所述語法樹中的代碼中的模塊名修改為預設的模塊名;
對所述語法樹中的代碼中的模塊路徑進行補全;
將所述語法樹中的代碼中的應用程序編程接口的別名修改為預設的主別名;以及
將所述語法樹中的代碼中的位置參數轉換為關鍵字參數。
2.根據權利要求1所述的升級文件的生成方法,其中,所述獲取源代碼對應的語法樹,包括:
獲取所述源代碼;以及
根據所述源代碼采用Python中的lib2to3庫生成對應的具體語法樹。
3.根據權利要求1所述的升級文件的生成方法,其中,所述對所述歸一化語法樹進行轉換,包括以下至少一種:
對所述歸一化語法樹進行規則轉換;
對所述歸一化語法樹進行語法轉換;以及
對所述歸一化語法樹進行自定義轉換。
4.根據權利要求3所述的升級文件的生成方法,其中,所述對所述歸一化語法樹進行規則轉換,包括以下至少一種:
對所述歸一化語法樹中的參數進行參數轉換;以及
對所述歸一化語法樹中的應用程序編程接口的主別名進行名稱轉換。
5.根據權利要求3所述的升級文件的生成方法,其中,所述對所述歸一化語法樹進行語法轉換,包括以下至少一種:
對所述歸一化語法樹中的基本塊進行句式修正和/或縮進修正;以及
對所述歸一化語法樹中的非基本塊進行語句添加修正和/或語句刪除修正。
6.根據權利要求3所述的升級文件的生成方法,其中,所述對所述歸一化語法樹進行自定義轉換,包括:
將所述歸一化語法樹中的第一參數刪除;
在所述歸一化語法樹中添加第二參數和第三參數;以及
根據所述第一參數的值確定所述第二參數和所述第三參數中的目標參數。
7.一種升級文件的生成裝置,包括:
獲取模塊,用于獲取源代碼對應的語法樹;
歸一化模塊,用于對所述語法樹中的代碼進行歸一化處理,得到歸一化語法樹;
轉換模塊,用于對所述歸一化語法樹進行轉換,得到轉換后的歸一化語法樹;
生成模塊,用于根據所述轉換后的歸一化語法樹生成轉換后的源代碼;以及
所述生成模塊,還用于根據所述轉換后的源代碼生成升級文件;
其中,所述歸一化模塊,具體用于以下至少一種:
將所述語法樹中的代碼中的模塊名修改為預設的模塊名;
對所述語法樹中的代碼中的模塊路徑進行補全;
將所述語法樹中的代碼中的應用程序編程接口的別名修改為預設的主別名;以及
將所述語法樹中的代碼中的位置參數轉換為關鍵字參數。
8.根據權利要求7所述的升級文件的生成裝置,其中,所述獲取模塊,具體用于:
獲取所述源代碼;以及
根據所述源代碼采用Python中的lib2to3庫生成對應的具體語法樹。
9.根據權利要求7所述的升級文件的生成裝置,其中,所述轉換模塊,具體用于以下至少一種:
對所述歸一化語法樹進行規則轉換;
對所述歸一化語法樹進行語法轉換;以及
對所述歸一化語法樹進行自定義轉換。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京百度網訊科技有限公司,未經北京百度網訊科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110321883.6/1.html,轉載請聲明來源鉆瓜專利網。





