[發明專利]使用領域專用語言的自定義邏輯方法、系統和可讀介質有效
| 申請號: | 202011499549.1 | 申請日: | 2020-12-18 |
| 公開(公告)號: | CN112231068B | 公開(公告)日: | 2021-03-16 |
| 發明(設計)人: | 楊濤;鮑勇翔 | 申請(專利權)人: | 浙江太美醫療科技股份有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F8/30;G06F8/41 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 駱希聰 |
| 地址: | 314000 浙江省嘉興市經濟技*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 使用 領域 專用 語言 自定義 邏輯 方法 系統 可讀 介質 | ||
1.一種使用領域專用語言的自定義邏輯方法,運行于JavaScript虛擬機中,包括:
接收用戶輸入的原始代碼和所述原始代碼的返回類型,其中所述原始代碼使用基于TypeScript語言的預設的領域專用語言,其中所述預設的領域專用語言的語法包括第一預設語法和第二預設語法,所述第一預設語法用于還原異步操作,所述第二預設語法用于判斷所述返回類型,所述原始代碼的返回類型為條件類型、計算類型或動作類型;
將TypeScript聲明文件注冊到TypeScript編譯器中,其中所述TypeScript聲明文件包含所述預設的領域專用語言的語法規則,所述TypeScript聲明文件包括以下任意一個或多個:系統邏輯單元聲明文件、工具邏輯單元聲明文件和第一自定義邏輯單元聲明文件;
將所述原始代碼轉換成相應的抽象語法樹;
基于所述TypeScript編譯器根據所述TypeScript聲明文件驗證所述原始代碼,若驗證不通過則輸出錯誤信息并結束;
根據所述第二預設語法驗證所述抽象語法樹的返回類型與所述用戶輸入的所述原始代碼的返回類型是否一致,若不一致則輸出錯誤信息并結束,其中所述抽象語法樹的返回類型是根據返回語句判斷;
根據所述第一預設語法對所述抽象語法樹進行轉換;
根據轉換后的抽象語法樹輸出相應的可執行的JavaScript腳本和第二自定義邏輯單元聲明文件;以及
將所述第二自定義邏輯單元聲明文件加入所述第一自定義邏輯單元聲明文件。
2.如權利要求1所述的方法,其特征在于,所述預設的領域專用語言的語法還包括預設翻譯語法,所述方法還包括:根據所述預設翻譯語法翻譯所述轉換后的抽象語法樹,并輸出翻譯結果供用戶查看。
3.如權利要求1所述的方法,其特征在于,所述根據所述第一預設語法對所述抽象語法樹進行轉換由Babel編譯器執行;所述根據所述第一預設語法對所述抽象語法樹進行轉換包括:
遍歷所述抽象語法樹中的所有函數并判斷每個函數是否為異步函數,若是則為所述函數增加await關鍵字,若否則不為所述函數增加await關鍵字;以及為所述抽象語法樹添加相應的包裝函數體,并判斷所述抽象語法樹中的每個函數是否增加了所述await關鍵字,若是則為所述函數添加async關鍵字,若否則不為所述函數添加async關鍵字。
4.如權利要求1所述的方法,其特征在于,所述根據所述第二預設語法驗證所述抽象語法樹的返回類型與所述用戶輸入的所述原始代碼的返回類型是否一致由Babel編譯器執行;所述根據所述第二預設語法驗證所述抽象語法樹的返回類型與所述用戶輸入的所述原始代碼的返回類型是否一致包括:
通過所述Babel編譯器的遍歷模塊尋找返回語句,并判斷所述用戶輸入的原始代碼的返回類型;
當所述用戶輸入的所述原始代碼的返回類型為條件類型時,若找不到所述返回語句則驗證不通過,若找到所述返回語句,則判斷所述返回語句的參數是否為Boolean類型,若為Boolean類型則驗證通過,若不為Boolean類型則驗證不通過;
當所述用戶輸入的所述原始代碼的返回類型為計算類型時,若找不到所述返回語句則驗證通過,若找到所述返回語句則驗證不通過;以及
當所述用戶輸入的所述原始代碼的返回類型為動作類型時,若找到所述返回語句則驗證通過,若找不到所述返回語句則驗證不通過。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江太美醫療科技股份有限公司,未經浙江太美醫療科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011499549.1/1.html,轉載請聲明來源鉆瓜專利網。





