[發明專利]規則處理方法、裝置、介質及電子設備有效
| 申請號: | 202010180995.X | 申請日: | 2020-03-16 |
| 公開(公告)號: | CN111460815B | 公開(公告)日: | 2022-04-01 |
| 發明(設計)人: | 袁康 | 申請(專利權)人: | 平安科技(深圳)有限公司 |
| 主分類號: | G06F40/289 | 分類號: | G06F40/289;G06F21/60 |
| 代理公司: | 深圳市隆天聯鼎知識產權代理有限公司 44232 | 代理人: | 孫強 |
| 地址: | 518000 廣東省深圳市福田區福*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 規則 處理 方法 裝置 介質 電子設備 | ||
1.一種基于逆波蘭表達式的規則處理方法,其特征在于,所述方法包括:
定義并初始化結果棧、第一臨時棧和第二臨時棧;
當接收到規則文本,對所述規則文本進行分詞,得到前綴表達式,所述前綴表達式包括多個分詞結果元素;
按照從左至右的順序遍歷所述前綴表達式,根據每一次遍歷得到的分詞結果元素的類型執行相應的對分詞結果元素的第一出入棧操作,以得到后綴表達式,其中,所述第一出入棧操作與所述結果棧或所述第一臨時棧對應,所述后綴表達式包括多個元素;
按照從左至右的順序遍歷所述后綴表達式,根據每一次遍歷得到的元素的類型執行相應的對元素或基于至少兩個元素運算得到的結果的第二出入棧操作,以得到對所述規則文本的最終運算結果,其中,所述第二出入棧操作與所述第二臨時棧對應。
2.根據權利要求1所述的方法,其特征在于,所述定義并初始化結果棧、第一臨時棧和第二臨時棧包括:
分別為結果棧、第一臨時棧和第二臨時棧申請內存空間。
3.根據權利要求1所述的方法,其特征在于,所述規則文本為布爾型規則,所述按照從左至右的順序遍歷所述前綴表達式,根據每一次遍歷得到的分詞結果元素的類型執行相應的對分詞結果元素的第一出入棧操作,以得到后綴表達式,包括:
執行第一遍歷步驟,所述第一遍歷步驟包括:按照從左至右的順序獲取第一個分詞結果元素,作為當前分詞結果元素;
若當前分詞結果元素為左小括號,則將所述當前分詞結果元素放入所述第一臨時棧并轉至所述第一遍歷步驟;
若當前分詞結果元素為左大括號,則將所述當前分詞結果元素分別放入所述結果棧和所述第一臨時棧并轉至所述第一遍歷步驟;
若當前分詞結果元素為數值類型、參數類型、字符類型中的一種,則將所述當前分詞結果元素放入所述結果棧并轉至所述第一遍歷步驟;
若當前分詞結果元素為右大括號,則將所述第一臨時棧中的元素依次彈出,放入所述結果棧,直至將所述第一臨時棧中的左大括號彈出并放入所述結果棧,然后轉至所述第一遍歷步驟;
若當前分詞結果元素為空格,則將所述第一臨時棧中的元素依次彈出,放入所述結果棧,直至將所述第一臨時棧中的左大括號彈出并放入所述結果棧,然后轉至所述第一遍歷步驟;
若當前分詞結果元素為右小括號,則將所述第一臨時棧中的元素依次彈出,放入所述結果棧,直至將所述第一臨時棧中的左小括號彈出并放入所述結果棧,然后轉至所述第一遍歷步驟;
若當前分詞結果元素的類型為運算符,確定所述運算符的優先級;
若所述優先級小于0,則將所述運算符放入所述第一臨時棧并轉至所述第一遍歷步驟;
若所述優先級大于或等于0,則將所述運算符放入所述結果棧并將所述第一臨時棧的元素依次彈出,放入所述結果棧,直到上次從所述第一臨時棧彈出的元素為右大括號或者所述運算符的優先級大于下次要從所述第一臨時棧彈出的元素的優先級,然后轉至所述第一遍歷步驟;
否則,將所述當前分詞結果元素放入所述第一臨時棧,然后轉至所述第一遍歷步驟;
當所述前綴表達式的所有分詞結果元素均經過了一次遍歷,將所述第一臨時棧中的元素依次彈出,放入所述結果棧,并將所述結果棧中的元素依次彈出,得到后綴表達式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于平安科技(深圳)有限公司,未經平安科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010180995.X/1.html,轉載請聲明來源鉆瓜專利網。





