利索能及
我要发布
收藏
专利号: 201810175368X
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-07-01
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种表达式处理方法,其特征在于,包括:对表达式进行解析,以获取所述表达式中的表达式对象;

获取所述表达式对象的类型;

根据所述表达式对象的类型将所述表达式进行逆波兰转换,以生成逆波兰表达式;

执行所述逆波兰表达式以生成执行结果;

所述根据所述表达式对象的类型将所述表达式进行逆波兰转换,包括:初始化预设的第一堆栈以及预设的第二堆栈;

根据所述表达式对象的类型,对所述表达式对象进行压栈出栈操作;

判断所述表达式是否全部解析成功;

若所述表达式已全部解析成功,将存储于所述第一堆栈的表达式对象压入所述第二堆栈;

逆序弹出所述第二堆栈中的表达式对象,以生成所述逆波兰表达式。

2.如权利要求1所述的方法,其特征在于,所述获取所述表达式对象的类型,包括:判断所述表达式对象是否包含预设的函数标记符;

若所述表达式对象包含预设的函数标记符,确定所述表达式对象为函数对象。

3.如权利要求1所述的方法,其特征在于,所述根据所述表达式对象的类型,对所述表达式对象进行压栈出栈操作,包括:若所述表达式对象为函数对象,获取所述函数对象对应的输入参数以及所述输入参数对应的入参数量;

对所述入参数量进行标记处理;

将标记后的入参数量与所述函数对象合并,以生成标记函数对象;

将所述标记函数对象压入所述第一堆栈;

依次对所述输入参数进行解析,以获取所述输入参数的类型;

根据所述输入参数的类型对所述输入参数进行压栈出栈操作。

4.如权利要求3所述的方法,其特征在于,所述输入参数的类型包括操作数对象以及运算符对象,所述根据所述输入参数的类型对所述输入参数进行压栈出栈操作,包括:若所述输入参数的类型为操作数对象,将所述操作数对象压入所述第二堆栈;

若所述输入参数的类型为运算符对象,获取所述运算符对象对应的第一优先等级,以及获取位于所述第一堆栈中栈顶的运算符对象对应的第二优先级等级;

判断所述第一优先等级是否低于所述第二优先级等级;

若所述第一优先等级低于所述第二优先级等级,将所述位于所述第一堆栈中栈顶的运算符对象从所述第一堆栈中弹出并压入所述第二堆栈;

若所述第一优先等级高于所述第二优先级等级,将所述运算符对象压入所述第一堆栈。

5.一种表达式处理装置,其特征在于,所述装置包括:对象获取单元,用于对表达式进行解析,以获取所述表达式中的表达式对象;

类型获取单元,用于获取所述表达式对象的类型;

转换单元,用于根据所述表达式对象的类型将所述表达式进行逆波兰转换,以生成逆波兰表达式;

执行单元,用于执行所述逆波兰表达式以生成执行结果;

所述转换单元包括:

初始化单元,用于预设的第一堆栈以及预设的第二堆栈;

第二处理单元,用于根据所述表达式对象的类型,对所述表达式对象进行压栈出栈操作;

第二判断单元,用于判断所述表达式是否全部解析成功;

第三处理单元,用于若所述表达式已全部解析成功,将存储于所述第一堆栈的表达式对象压入所述第二堆栈;

第一生成单元,用于逆序弹出所述第二堆栈中的表达式对象,以生成所述逆波兰表达式。

6.如权利要求5所述的装置,其特征在于,所述类型获取单元包括:第一判断单元,用于判断所述表达式对象是否包含预设的函数标记符;

第一处理单元,用于若所述表达式对象包含预设的函数标记符,确定所述表达式对象为函数对象。

7.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4中任一项的表达式处理方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的表达式处理方法。