[發明專利]基于Python代碼重建抽象語法樹的方法、電子設備有效
| 申請號: | 201811637116.0 | 申請日: | 2018-12-29 |
| 公開(公告)號: | CN109710307B | 公開(公告)日: | 2022-03-11 |
| 發明(設計)人: | 孫悅;李天馳;趙子亮 | 申請(專利權)人: | 深圳點貓科技有限公司 |
| 主分類號: | G06F8/75 | 分類號: | G06F8/75 |
| 代理公司: | 廣東良馬律師事務所 44395 | 代理人: | 李良 |
| 地址: | 518000 廣東省深圳市粵海*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 python 代碼 重建 抽象 語法 方法 電子設備 | ||
1.一種基于Python代碼重建抽象語法樹的方法,其特征在于,包括步驟:
將Python代碼轉化為JavaScript的原始抽象語法樹;
獲取原始抽象語法樹的主體結構,根據所述主體結構的類型創建樹對象;
根據主體結構的層級對所述樹對象進行重組拼接,獲得簡潔抽象語法樹;
所述將Python代碼轉化為JavaScript的原始抽象語法樹的步驟具體包括:
按照語法作用域將Python代碼分割成若干段Python子代碼;
讀取每段Python子代碼的內容;
對Python子代碼進行解析,生成各段Python子代碼的抽象語法樹;
其中,讀取每段Python子代碼的內容的方式為并列方式;
所述對Python子代碼進行解析,生成各段Python子代碼的抽象語法樹的步驟之后包括:
將生成的各段Python子代碼的抽象語法樹返回給遞歸的上層;
然后執行塊作用域的循環;
最后按照語法作用域的從屬關系拼接Python子代碼的抽象語法樹,得到原始抽象語法樹。
2.根據權利要求1所述基于Python代碼重建抽象語法樹的方法,其特征在于,所述獲取原始抽象語法樹的主體結構,根據所述主體結構的類型創建樹對象的步驟具體包括:
獲取原始抽象語法樹的主體結構;
判斷所述主體結構是否為數組;
若為數組,則獲取所述主體結構的子主體結構,根據所述子主體結構的類型創建相應的樹對象;若不為數組則根據主體結構的類型創建相應的樹對象。
3.根據權利要求2所述基于Python代碼重建抽象語法樹的方法,其特征在于,創建樹對象的步驟具體包括:
根據所述主體結構或子主體結構的類型查找對應的表達式類型;
根據所述表達式類型創建相應的樹對象。
4.根據權利要求1所述基于Python代碼重建抽象語法樹的方法,其特征在于,所述根據主體結構的層級對所述樹對象進行重組拼接,獲得簡潔抽象語法樹的步驟具體包括:
按照主體結構的同級或子級的關系將對應的樹對象進行結合,得到簡潔抽象語法樹。
5.根據權利要求4所述基于Python代碼重建抽象語法樹的方法,其特征在于,當主體結構中包含子主體結構時,則將所述子主體結構對應的樹對象遞歸至上層。
6.根據權利要求1所述基于Python代碼重建抽象語法樹的方法,其特征在于,所述根據主體結構的層級對所述樹對象進行重組拼接,獲得簡潔抽象語法樹的步驟之后包括:
根據所述簡潔抽象語法樹調用接口,繪制相應的積木。
7.根據權利要求5所述基于Python代碼重建抽象語法樹的方法,其特征在于,當遞歸時,讀取主體結構的層級信息,按照層級信息進行遞歸。
8.根據權利要求1所述基于Python代碼重建抽象語法樹的方法,其特征在于,根據語法關鍵字對Python子代碼進行解析,生成各段Python子代碼的抽象語法樹。
9.根據權利要求2所述基于Python代碼重建抽象語法樹的方法,其特征在于,所述主體結構的類型包括:調用表達式、循環結構或返回結構的一種或幾種。
10.根據權利要求6所述基于Python代碼重建抽象語法樹的方法,其特征在于,所述根據所述簡潔抽象語法樹調用接口,繪制相應的積木的步驟具體包括:
創建一畫布,并在所述畫布中繪制相應的積木。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳點貓科技有限公司,未經深圳點貓科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811637116.0/1.html,轉載請聲明來源鉆瓜專利網。





