[发明专利]一种基于参数类型的表达式处理方法、设备及存储介质在审
申请号: | 202310021452.7 | 申请日: | 2023-01-07 |
公开(公告)号: | CN116070590A | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 赵志武;甘云锋;江敏;高雁冰 | 申请(专利权)人: | 杭州数澜科技有限公司 |
主分类号: | G06F40/12 | 分类号: | G06F40/12 |
代理公司: | 杭州天昊专利代理事务所(特殊普通合伙) 33283 | 代理人: | 何碧珩 |
地址: | 311100 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 参数 类型 表达式 处理 方法 设备 存储 介质 | ||
本发明涉及信息技术处理技术领域,提供一种基于参数类型的表达式处理方法、设备及存储介质,本发明的表达式解析与表达式计算分步进行,可以自由调整计算范围和计算容忍度,可实现缺失参数值的表达式不参与计算等场景的业务;本发明可支持多种场景,可以同时实现表达式计算和参数替换,不需要在该业务场景下选择多种不同实现或拆分多步骤进行。本发明具有良好的拓展性,基于参数类型的拓展设计,可以自由定制丰富更多支持的参数类型,从而提升技术实现的便利性,降低业务实现技术成本。
技术领域
本发明涉及信息技术处理技术领域,特别涉及一种基于参数类型的表达式处理方法、设备及存储介质。
背景技术
在信息技术处理领域中,表达式是程序处理信号控制、业务逻辑等内容重要的实现方法。在不同的场景中有着各种对应特点的表达式实现,如:JEP、Expression4J、commons-text、EL等,其中JEP、Expression4J专攻数学表达式方面的处理;commons-text则擅长文本表达式的处理;EL则较为综合,既能实现一定程度的数学表达式计算,也能实现文本的格式化处理。
但上述处理方法均有以下弱点:
一、应用场景上较为单一,在表达式计算、参数替换综合性场景无法通过同一个表达式处理实现进行应用,需拆解成多步进行。
二、 容错性较低,执行环境需要备齐所有参与计算的参数值,缺失情况下则会导致失败,且无法自由切换复杂表达式计算的容忍度。
三、拓展性不佳,个性化的参数值以及计算逻辑无法通过拓展的方式予以实现。
发明内容
本发明提供一种基于参数类型的表达式处理方法设备及存储介质,其主要目的在于实现复杂的表达式计算与参数替换的功能,同时能够支持参数类型、运算逻辑的拓展需求。
为了实现上述目的,本发明提供以下技术方案:
本发明提供一种基于参数类型的表达式处理方法,所述处理方法包括:
(1)输入待解析的表达式;
(2)解析表达式,获得表达式对象列表,表达式对象列表以AST树结构描述;
(3)设置全局的参数访问器以及参数计算处理器;为后续的参数值提取和参数逻辑计算提供支持;也可拓展实现配置点,新增的参数类型访问实现、参数计算处理实现都需要在运算前进行配置处理。
(4)外部输入参与运算的全局参数列表,所述全局参数列表也用于参数替换;全局参数列表包括基本类型的数据和复杂类型的参数数据;基本类型的数据包括整数、浮点数、文本等;复杂类型的参数数据包括JavaBean、Map等;
(5)对表达式对象列表循环逐个进行计算处理,计算处理过程包括参数值访问提取和表达式参数计算。
进一步的,所述表达式至少包括字段、运算符、或者函数中的一种或者多种。
进一步的,所述表达式对象AST数据结构以计算符对象、变量替换对象、固定文本其中一种对象作为顶点,以参数对象或计算符对象(表达式嵌套多层结构时)为子节点。变量替换对象、参数对象中存储提取出来的具体变量名。
进一步的,步骤(2)中,所述参数访问器和参数计算处理器与参数值类型对应相关。
进一步的,步骤(5)中具体的操作步骤为:
(51)从表达式对象列表提取单个表达式对象和参数列表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州数澜科技有限公司,未经杭州数澜科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310021452.7/2.html,转载请声明来源钻瓜专利网。