数据结算方法、装置、设备及存储介质制造方法及图纸

技术编号:34468937 阅读:17 留言:0更新日期:2022-08-10 08:42
本申请实施例公开了一种数据结算方法、装置、设备及存储介质,该方法包括:在检测到数据结算事件时,获取待计算数据,对所述待计算数据进行词法分析生成词法分析结果;对所述词法分析结果采用基于计算语法的语法分析得到可执行语法树;根据所述可执行语法树进行所述待计算数据的计算得到数据结算结果。本方案,显著提升了数据计算效率,可扩展性强,安全性更高。高。高。

【技术实现步骤摘要】
数据结算方法、装置、设备及存储介质


[0001]本申请实施例涉及计算机
,尤其涉及一种数据结算方法、装置、设备及存储介质。

技术介绍

[0002]随着业务发展和多样性需求,与业务相关的数据结算的需求日渐突出。以物流场景为例,需要对不同物流头程、清关、尾程的各种结算规则进行统一的物流成本计算,因此如何进行高效的计算成为了当前的主要课题。
[0003]相关技术中,通过使用编写的脚本语言执行数据结算相较于传统的人工处理的方式,可以显著的节省人工成本,但是针对现有的大多数脚本而言,其在平台上执行效率过低,例如Groovy脚本执行速度是java原生语言的十分之一不到,面对复杂的数据结算场景,通用脚本语言无法满足实时成本结算的业务需求,同时其安全性上也存在一定不足。

技术实现思路

[0004]本申请实施例提供了一种数据结算方法、装置、设备及存储介质,显著提升了数据计算效率,可扩展性强,安全性更高。
[0005]第一方面,本申请实施例提供了一种数据结算方法,该方法包括:
[0006]在检测到数据结算事件时,获取待计算数据,对所述待计算数据进行词法分析生成词法分析结果;
[0007]对所述词法分析结果采用基于计算语法的语法分析得到可执行语法树;
[0008]根据所述可执行语法树进行所述待计算数据的计算得到数据结算结果。
[0009]第二方面,本申请实施例还提供了一种数据结算装置,包括:
[0010]数据获取模块,配置为在检测到数据结算事件时,获取待计算数据
[0011]词法分析模块,配置为对所述待计算数据进行词法分析生成词法分析结果;
[0012]语法分析模块,配置为对所述词法分析结果采用基于计算语法的语法分析得到可执行语法树;
[0013]计算模块,配置为根据所述可执行语法树进行所述待计算数据的计算得到数据结算结果。
[0014]第三方面,本申请实施例还提供了一种数据结算设备,该设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序;所述处理器执行所述计算机程序时,实现如本申请实施例所述的数据结算方法。
[0015]第四方面,本申请实施例还提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请实施例所述的数据结算方法。
[0016]第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的数据结算方
法。
[0017]本申请实施例中,在检测到数据结算事件时,获取待计算数据,对待计算数据进行词法分析生成词法分析结果,对词法分析结果采用基于计算语法的语法分析得到可执行语法树,根据可执行语法树进行待计算数据的计算得到数据结算结果,该种数据结算的计算方式,能够实现对复杂结算规则的灵活配置,可以实现大规模的实时结算,扩展性高,安全性良好。
附图说明
[0018]图1为本申请实施例提供的一种数据结算方法的流程图;
[0019]图2为本申请实施例提供的另一种数据结算方法的流程图;
[0020]图3为本申请实施例提供的一种可执行语法树示意图;
[0021]图4为本申请实施例提供的另一种数据结算方法的流程图;
[0022]图5为本申请实施例提供的另一种数据结算方法的流程图;
[0023]图6为本申请实施例提供的另一种数据结算方法的流程图
[0024]图7为本申请实施例提供的一种数据结算装置的结构框图;
[0025]图8为本申请实施例提供的一种数据结算设备的结构示意图。
具体实施方式
[0026]下面结合附图和实施例对本申请实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请实施例相关的部分而非全部结构。
[0027]本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
[0028]下面结合附图对本申请实施例作进一步阐述。
[0029]图1为本申请实施例提供的一种数据结算方法的流程图,可用于多个不同场景下的数据结算,该方法可以由涉及数据结算的计算设备如服务器、智能终端、笔记本电脑、平板电脑等来执行,具体包括如下步骤:
[0030]步骤S101、在检测到数据结算事件时,获取待计算数据,对所述待计算数据进行词法分析生成词法分析结果。
[0031]其中,该数据结算事件为触发数据结算的具体事件。示例性的,可以是针对显示屏幕中显示的数据结算按钮的点击事件,也可以是由其它关联的程序运行时触发的事件。
[0032]其中,待计算数据为需要对其进行运算得到对应的数据结算结果的数据。示例性的,该待计算数据可以是由字符串组成的文本数据。可选的,该字符串可以是由构成一个或多个表达式的字符组成的字符串。在一个实施例中,该字符划分为数字字符、普通字符和运算符。
[0033]其中,词法分析指对字符串进行分词解析,将字符串文本解析规约成单词。在一个实施例中,该待计算数据包括脚本文本数据。图2为本申请实施例提供的一种具体的进行词法分析的流程图,给出了一种具体的对待计算数据进行词法分析的过程,如图2所示,包括:
[0034]步骤S1011、对所述脚本文本数据中的字符进行识别。
[0035]在一个实施例中,进行词法分析时,采用对待计算数据中的字符进行识别以进行分词的方式。可选的,具体的字符的识别过程,可以是将待识别的字符分别和设置的多种不同的字符列表进行依次比对,如果比对成功则确定识别到该比对成功的字符。例如当前提取的字符为“+”,通过字符比对得出和列表中设置的运算符“+”一致,则确定识别到运算符“+”,具体的比对过程可以是进行字符的对应的机器编码的比对。
[0036]步骤S1012、基于对所述脚本文本数据中的字符的识别结果以及设置的词法规约规则,进行分词得到词法分析结果,所述词法规约规则包括不同的字符类型和不同的词法前置规约状态下对应的词法规约模式。
[0037]在一个实施例中,采取以运算符优先的分词方式,识别出运算符和非运算符后,基于设置的词法规约规则,进行分词得到词法分析结果。其中,该分词结果可以是由多个分词得到的单词串联组成的单词数组。
[0038]在一个实施例中,针对不同的字符本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.数据结算方法,其特征在于,包括:在检测到数据结算事件时,获取待计算数据,对所述待计算数据进行词法分析生成词法分析结果;对所述词法分析结果采用基于计算语法的语法分析得到可执行语法树;根据所述可执行语法树进行所述待计算数据的计算得到数据结算结果。2.根据权利要求1所述的数据结算方法,其特征在于,所述待计算数据包括脚本文本数据,所述对所述待计算数据进行词法分析生成词法分析结果,包括:对所述脚本文本数据中的字符进行识别;基于对所述脚本文本数据中的字符的识别结果以及设置的词法规约规则,进行分词得到词法分析结果,所述词法规约规则包括不同的字符类型和不同的词法前置规约状态下对应的词法规约模式。3.根据权利要求2所述的数据结算方法,其特征在于,所述字符类型包括运算符、数字和普通字符,所述词法前置规约状态包括开始状态、操作符规约状态和变量规约状态,所述词法规约模式包括操作符规约和变量规约。4.根据权利要求2所述的数据结算方法,其特征在于,所述对所述脚本文本数据中的字符进行识别,基于对所述脚本文本数据中的字符的识别结果以及设置的词法规约规则,进行分词得到词法分析结果,包括:对所述脚本文本数据以堆栈结构形式,进行逐个字符识别;根据识别得到的字符类型以及确定出的词法前置规约状态确定当前字符的词法规约模式,并进行相应的规约处理。5.根据权利要求1所述的数据结算方法,其特征在于,所述词法分析结果包括单词数组,所述对所述词法分析结果采用基于计算语法的语法分析得到可执行语法树,包括:基于设置的语法规约规则,对所述单词数组中的每个单词进行规约得到可执行语法树,所述语法规约规则根据运算优先级排序确定,所述语法规约规则包括不同的单词类型和不同的语法前置规约状态下对应的语法规约模式。6.根据权利要求5所述的数据结算方法,其特征在于,所述单词类型包括单字符操作符、多字符操作符、左括号、右括号、函数声明、参数列表以及变量,所述语法前置规约状态包括开始状态、单目操作符规约状态、双目操作符规约状态、括号规约状态、函数规约状态和列表规约状态,所述语法规约模式包括单目操作符规约模式、双目操作符规约模式、括号规约模式、函数规约模式和列表规约模式。7.根...

【专利技术属性】
技术研发人员:钱克金
申请(专利权)人:杭州团星信息技术有限公司
类型:发明
国别省市:

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

1