一种表达式处理方法和装置制造方法及图纸

技术编号:17345902 阅读:37 留言:0更新日期:2018-02-25 10:52
本发明专利技术公开了一种表达式处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:一种表达式处理方法,其特征在于,所述表达式是树型结构,所述表达式本身作为根节点,每个非根节点是其父节点的子表达式,每个节点包括前缀,所述前缀标识处理该节点的计算引擎,所述方法包括:步骤a,对所述表达式中的未处理的最低层的节点,调用该节点的计算引擎处理该节点以得到计算结果,并在所述表达式中,把该节点替换为所述计算结果;步骤b,确定该表达式中是否还存在未处理的节点,若存在,则转步骤a。该实施方式能够通过多种表达式引擎混合使用来计算表达式,结合多种表达式引擎的优点进行表达式计算。

【技术实现步骤摘要】
一种表达式处理方法和装置
本专利技术涉及计算机
,尤其涉及一种表达式处理方法和装置。
技术介绍
表达式是由数字、算符、数字分组符号、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。很多程序代码中都涉及到表达式的计算,目前代码中表达式的算术运算,都交给表达式引擎来完成。表达式引擎是第三方提供的表达式计算工具,其可以对字符串表达式进行四则运算、三目运算以及函数调用等等一系列处理,将表达式解析成计算机能识别的代码。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:每种表达式引擎的功能都有自己的局限性,且每种表达式引擎都有各自的特殊的调用方式、数据计算方法和所适用的特殊场景。而开发者在写程序代码时往往只能单独使用一种表达式引擎,然而只使用一种表达式计算引擎,就为表达式的计算带来了上述的局限性。因此,亟需一种能够支持通过多种表达式引擎混合使用来计算表达式的表达式处理方法,实现由多种表达组合来完成一个算术运算。
技术实现思路
有鉴于此,本专利技术实施例提供一种表达式处理方法和装置,能够通过多种表达式引擎混合使用来计算表达式,结合多种表达式引擎的优点进行表达式计算。为本文档来自技高网...
一种表达式处理方法和装置

【技术保护点】
一种表达式处理方法,其特征在于,所述表达式是树型结构,所述表达式本身作为根节点,每个非根节点是其父节点的子表达式,每个节点包括前缀,所述前缀标识处理该节点的计算引擎,所述方法包括:步骤a,对所述表达式中的未处理的最低层的节点,调用该节点的计算引擎处理该节点以得到计算结果,并在所述表达式中,把该节点替换为所述计算结果;步骤b,确定该表达式中是否还存在未处理的节点,若存在,则转步骤a。

【技术特征摘要】
1.一种表达式处理方法,其特征在于,所述表达式是树型结构,所述表达式本身作为根节点,每个非根节点是其父节点的子表达式,每个节点包括前缀,所述前缀标识处理该节点的计算引擎,所述方法包括:步骤a,对所述表达式中的未处理的最低层的节点,调用该节点的计算引擎处理该节点以得到计算结果,并在所述表达式中,把该节点替换为所述计算结果;步骤b,确定该表达式中是否还存在未处理的节点,若存在,则转步骤a。2.根据权利要求1所述的方法,其特征在于,所述节点除了前缀还包括:内容,所述节点的内容位于对应的左右标识符之间,所述方法还包括:构建所述树结构中所有节点的标识符对象,其中,所述标识符对象包括:节点的左右标识符的符号和位置,所述最低层的节点是在所述表达式中的节点中比较每个节点的标识符的位置获得的。3.根据权利要求2所述的方法,其特征在于,所述标识符对象还包括:相应节点的前缀,其中,该节点对应的计算引擎是在预设的注册模块中通过所述前缀匹配确定的,其中,所述注册模块中预注册有一个或多个预设的计算引擎和其所对应的前缀名称。4.根据权利要求3所述的方法,其特征在于,所述构建所述表达式中所有节点的标识符对象包括:从左至右顺序地对所述表达式的每个字符执行下述标识符识别步骤:判断当前字符是否是左右标识符,若当前字符是左标识符,则创建该左标识符对应的节点的标识符对象,在该标识符对象中记录该左标识符的符号和位置,并匹配该左标识符对应的前缀,将匹配确定的前缀记录在该标识符对象中,然后将该标识符对象压入栈中,若当前字符是右标识符,则把所述栈中栈顶的标识符对象出栈,并将该右标识符的符号和位置记录其中,若当前字符不是左右标识符,则结束当前字符的标识符识别步骤。5.根据权利要求4所述的方法,其特征在于,所述匹配该左标识符对应的前缀包括:将所述注册模块中所有预注册的前缀名称作为匹配前缀,对每个匹配前缀执行下述匹配步骤,直至确定所述左标识符对应的匹配前缀:从所述左标识符的位置起始向左截取n个字符,n为当前匹配前缀的长度值,判断截取到的字符是否与当前匹配前缀相同,若不相同,则结束当前匹配前缀的匹配步骤,否则判断所述左标识符的位置是否与匹配前缀的长度相同,若相同,则确定当前匹配前缀为该左标识符对应的前缀,若不相同,则获取从所述左标识符起始,其左侧的第m个字符,m为当前匹配前缀的长度值加1,判断该字符是否为预定义的规范字符,若不是,则确定当前匹配前缀为该左标识符对应的前缀,否则结束当前匹配前缀的匹配步骤。6.根据权利要求3所述的方法,其特征在于,在所述表达式中的节点中比较每个节点的标识符的位置获得所述最低层的节点包括:将所有节点中的左标识符位置最大且前缀不为空的节点作为所述最低层的节点。7.一种表达式处理装置,其特征在于,所述表达式是树型结构,所述表达式本身作为根节点,每个非根节点是其父节点的子表达式,每个节点包括前缀,所述前缀标识处理该节点的计算引...

【专利技术属性】
技术研发人员:胡勇
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1