[发明专利]变参函数解析方法、解析器及存储装置在审
申请号: | 202010364978.1 | 申请日: | 2020-04-30 |
公开(公告)号: | CN111708540A | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 许贝贝;宋智文 | 申请(专利权)人: | 北京配天技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 深圳市威世博知识产权代理事务所(普通合伙) 44280 | 代理人: | 唐双 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 解析 方法 存储 装置 | ||
本发明提供一种变参函数解析方法、解析器及存储装置。所述方法包括:获取变参函数的表达式,以及变参函数中内嵌函数的描述信息,解析所述变参函数的表达式,依次读取所述表达式中的元素,若所述元素为内嵌函数的函数名,根据所述内嵌函数的函数名、参数定界符以及描述信息解析所述内嵌函数,获取所述内嵌函数的执行结果,将所述执行结果作为操作数放入运算队列;若所述元素为操作符,将所述操作符压入操作符栈;在将与所述操作符相邻的所有内嵌函数的执行结果都放入运算队列后,将所述操作符从所述操作符栈出栈,并将出栈的所述操作符插入运算队列。通过上述方式,本发明能解决实参个数无法确定的问题,从而实现了函数解析器对变参函数的支持。
技术领域
本申请涉及计算机技术领域,特别涉及一种变参函数解析方法、解析器及存储装置。
背景技术
解释器的实现中,最重的的步骤之一就是将中缀表达式转换为前缀表达式或者后缀表达式,以便计算机处理。在基于调度场算法实现的函数解析器中,对于固定参数的函数,可以根据个数确定参数的边界。当函数参数个数不确定时,需要额外提供边界信息。
现有的技术方案无法确定变参函数实参个数,对于功能相同参数个数不同的函数接口,需要提供不同的函数名,违背了函数名称的统一性,也使得用户对函数的使用缺乏灵活性。
发明内容
本申请提供一种变参函数解析方法、解析器及存储装置,能解决实参个数无法确定的问题,从而实现了函数解析器对变参函数的支持。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种变参函数解析方法,包括以下步骤:
获取变参函数的表达式,以及变参函数中内嵌函数的描述信息,所述表达式包括所述内嵌函数的函数名、所述内嵌函数的参数定界符以及所述内嵌函数之间的操作符,所述参数定界符与所述函数名相邻,用于指示所述内嵌函数的实参,所述内嵌函数的描述信息包括所述内嵌函数的最小参数个数和最大参数个数,所述变参函数包括至少两个所述内嵌函数;
解析所述变参函数的表达式,依次读取所述表达式中的元素,
若所述元素为内嵌函数的函数名,根据所述内嵌函数的函数名、参数定界符以及描述信息解析所述内嵌函数,获取所述内嵌函数的执行结果,将所述执行结果作为操作数放入运算队列;
若所述元素是否为操作符,将所述操作符压入操作符栈;
在将与所述操作符相邻的所有内嵌函数的执行结果都放入运算队列后,将所述操作符从所述操作符栈出栈,并将出栈的所述操作符插入运算队列。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种变参函数解析装置,包括:
函数获取模块,用于获取变参函数的表达式,以及变参函数中内嵌函数的描述信息,所述表达式包括所述内嵌函数的函数名、所述内嵌函数的参数定界符以及所述内嵌函数之间的操作符,所述参数定界符与所述函数名相邻,用于指示所述内嵌函数的实参,所述内嵌函数的描述信息包括所述内嵌函数的最小参数个数和最大参数个数,所述变参函数包括至少两个所述内嵌函数。
函数解析模块,用于解析所述变参函数的表达式,依次读取所述表达式中的元素,若所述元素为内嵌函数的函数名,根据所述内嵌函数的函数名、参数定界符以及描述信息解析所述内嵌函数,获取所述内嵌函数的执行结果,将所述执行结果作为操作数放入运算队列;若所述元素是否为操作符,将所述操作符压入操作符栈。
函数输出模块,用于在将与所述操作符相邻的所有内嵌函数的执行结果都放入运算队列后,将所述操作符从所述操作符栈出栈,并将出栈的所述操作符插入运算队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京配天技术有限公司,未经北京配天技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010364978.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:空气消毒杀菌装置
- 下一篇:一种卷烟纸中柠檬酸盐含量的精准检测方法