[发明专利]编译型语言环境中函数表达式的解析方法及装置、存储介质、终端在审
申请号: | 201910244141.0 | 申请日: | 2019-03-28 |
公开(公告)号: | CN111752566A | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 陈昶华 | 申请(专利权)人: | 上海视九信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 朱薇蕾;吴敏 |
地址: | 200050 上海市长宁*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 语言 环境 函数 表达式 解析 方法 装置 存储 介质 终端 | ||
一种编译型语言环境中函数表达式的解析方法及装置、存储介质、终端,所述方法包括:从所述编译型语言环境外部获取所述函数表达式;对所述函数表达式进行正则替换操作,以将所述函数表达式解析成JSON格式的字符串;基于所述JSON格式的字符串构建调用树。通过本发明提供的方案能够简化编译型语言环境中对函数表达式的解析操作,降低运算复杂度。
技术领域
本发明涉及计算机技术领域,具体地涉及一种编译型语言环境中函数表达式的解析方法及装置、存储介质、终端。
背景技术
在算法领域的客户机和服务器(client-server,简称C/S)架构中,存在一些应用场景,客户机和服务器中的一方需要传递函数表达式给另一方以供后者在自己的运行环境中调用,其中,函数表达式支持函数与四则运算。
在一些脚本语言(如JavaScript)环境中,传递过来的函数表达式字符串可以直接运行。
但是,在编译型语言(如C++或者Java)环境中,这类运行环境没有配备语法解析器,从外界传递过来的函数表达式字符串必须经过解析才能被调用。而现有在编译型语言环境中对函数表达式的解析处理方式较为复杂,严重影响C/S架构中的数据处理速度。
发明内容
本发明解决的技术问题是如何降低编译型语言环境中对函数表达式的解析复杂度,提高运算效率。
为解决上述技术问题,本发明实施例提供一种编译型语言环境中函数表达式的解析方法,包括:从所述编译型语言环境外部获取所述函数表达式;对所述函数表达式进行正则替换操作,以将所述函数表达式解析成JSON格式的字符串;基于所述JSON格式的字符串构建调用树。
可选的,所述对所述函数表达式进行正则替换操作,以将所述函数表达式解析成JSON格式的字符串包括:识别所述函数表达式中的待解析函数;对所述待解析函数进行正则替换,以将所述待解析函数解析成所述JSON格式的字符串。
可选的,所述函数表达式由常量、变量和函数中的至少一种构成,且构成所述函数表达式的常量、变量和/或函数之间通过运算符连接;当所述函数包含有常量、变量和/或函数时,所述常量、变量和函数也通过运算符连接。
可选的,所述识别所述函数表达式中的待解析函数包括:将所述至少一个函数分别识别为所述待解析函数;对于处于相同运算优先级的运算符,将所述运算符所连接的相邻常量、变量和/或函数识别为所述待解析函数。
可选的,所述对所述待解析函数进行正则替换,以将所述待解析函数解析成所述JSON格式的字符串包括:当所述待解析函数包含运算符时,将所述运算符转换为参数;将所述待解析函数的括号转换为JSON格式的符号。
可选的,在对所述函数表达式进行正则替换操作之前,所述解析方法还包括:对获取的函数表达式进行预处理,以剔除所述函数表达式中的干扰字符。
可选的,所述干扰字符包括空格。
可选的,在对所述函数表达式进行正则替换操作之前,所述解析方法还包括:当获取的函数表达式包括负号时,将所述负号转换为减号。
可选的,所述基于所述JSON格式的字符串构建调用树包括:将所述JSON格式的字符串中由预设分隔符分割的各参数确定为所述调用树的节点;遍历各节点,以按照运算优先级构建所述调用树。
为解决上述技术问题,本发明实施例还提供一种编译型语言环境中函数表达式的解析装置,包括:获取模块,用于从所述编译型语言环境外部获取所述函数表达式;处理模块,用于对所述函数表达式进行正则替换操作,以将所述函数表达式解析成JSON格式的字符串;构建模块,用于基于所述JSON格式的字符串构建调用树。
为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海视九信息科技有限公司,未经上海视九信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910244141.0/2.html,转载请声明来源钻瓜专利网。