[發明專利]變參函數解析方法、解析器及存儲裝置在審
| 申請號: | 202010364978.1 | 申請日: | 2020-04-30 |
| 公開(公告)號: | CN111708540A | 公開(公告)日: | 2020-09-25 |
| 發明(設計)人: | 許貝貝;宋智文 | 申請(專利權)人: | 北京配天技術有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 深圳市威世博知識產權代理事務所(普通合伙) 44280 | 代理人: | 唐雙 |
| 地址: | 100085 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 函數 解析 方法 存儲 裝置 | ||
本發明提供一種變參函數解析方法、解析器及存儲裝置。所述方法包括:獲取變參函數的表達式,以及變參函數中內嵌函數的描述信息,解析所述變參函數的表達式,依次讀取所述表達式中的元素,若所述元素為內嵌函數的函數名,根據所述內嵌函數的函數名、參數定界符以及描述信息解析所述內嵌函數,獲取所述內嵌函數的執行結果,將所述執行結果作為操作數放入運算隊列;若所述元素為操作符,將所述操作符壓入操作符棧;在將與所述操作符相鄰的所有內嵌函數的執行結果都放入運算隊列后,將所述操作符從所述操作符棧出棧,并將出棧的所述操作符插入運算隊列。通過上述方式,本發明能解決實參個數無法確定的問題,從而實現了函數解析器對變參函數的支持。
技術領域
本申請涉及計算機技術領域,特別涉及一種變參函數解析方法、解析器及存儲裝置。
背景技術
解釋器的實現中,最重的的步驟之一就是將中綴表達式轉換為前綴表達式或者后綴表達式,以便計算機處理。在基于調度場算法實現的函數解析器中,對于固定參數的函數,可以根據個數確定參數的邊界。當函數參數個數不確定時,需要額外提供邊界信息。
現有的技術方案無法確定變參函數實參個數,對于功能相同參數個數不同的函數接口,需要提供不同的函數名,違背了函數名稱的統一性,也使得用戶對函數的使用缺乏靈活性。
發明內容
本申請提供一種變參函數解析方法、解析器及存儲裝置,能解決實參個數無法確定的問題,從而實現了函數解析器對變參函數的支持。
為解決上述技術問題,本申請采用的一個技術方案是:提供一種變參函數解析方法,包括以下步驟:
獲取變參函數的表達式,以及變參函數中內嵌函數的描述信息,所述表達式包括所述內嵌函數的函數名、所述內嵌函數的參數定界符以及所述內嵌函數之間的操作符,所述參數定界符與所述函數名相鄰,用于指示所述內嵌函數的實參,所述內嵌函數的描述信息包括所述內嵌函數的最小參數個數和最大參數個數,所述變參函數包括至少兩個所述內嵌函數;
解析所述變參函數的表達式,依次讀取所述表達式中的元素,
若所述元素為內嵌函數的函數名,根據所述內嵌函數的函數名、參數定界符以及描述信息解析所述內嵌函數,獲取所述內嵌函數的執行結果,將所述執行結果作為操作數放入運算隊列;
若所述元素是否為操作符,將所述操作符壓入操作符棧;
在將與所述操作符相鄰的所有內嵌函數的執行結果都放入運算隊列后,將所述操作符從所述操作符棧出棧,并將出棧的所述操作符插入運算隊列。
為解決上述技術問題,本申請采用的另一個技術方案是:提供一種變參函數解析裝置,包括:
函數獲取模塊,用于獲取變參函數的表達式,以及變參函數中內嵌函數的描述信息,所述表達式包括所述內嵌函數的函數名、所述內嵌函數的參數定界符以及所述內嵌函數之間的操作符,所述參數定界符與所述函數名相鄰,用于指示所述內嵌函數的實參,所述內嵌函數的描述信息包括所述內嵌函數的最小參數個數和最大參數個數,所述變參函數包括至少兩個所述內嵌函數。
函數解析模塊,用于解析所述變參函數的表達式,依次讀取所述表達式中的元素,若所述元素為內嵌函數的函數名,根據所述內嵌函數的函數名、參數定界符以及描述信息解析所述內嵌函數,獲取所述內嵌函數的執行結果,將所述執行結果作為操作數放入運算隊列;若所述元素是否為操作符,將所述操作符壓入操作符棧。
函數輸出模塊,用于在將與所述操作符相鄰的所有內嵌函數的執行結果都放入運算隊列后,將所述操作符從所述操作符棧出棧,并將出棧的所述操作符插入運算隊列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京配天技術有限公司,未經北京配天技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010364978.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:空氣消毒殺菌裝置
- 下一篇:一種卷煙紙中檸檬酸鹽含量的精準檢測方法





