表达式转换方法、装置、设备、介质和产品制造方法及图纸

技术编号:38822640 阅读:17 留言:0更新日期:2023-09-15 20:01
本公开提供了一种不依赖语法树的表达式转化方法,可以应用于信息安全技术领域。该不依赖语法树的表达式方法包括:获取待解析表达式,所述待解析表达式包括多个不同类型的元素;基于所述不同类型的元素,识别所述待解析表达式的执行顺序;以及基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,其中,所述映射关系是所述简要表达式和所述简要表达式对应的元素的映射关系。本公开还提供了一种不依赖语法树的表达式转化装置、设备、介质和产品。介质和产品。介质和产品。

【技术实现步骤摘要】
表达式转换方法、装置、设备、介质和产品


[0001]本公开涉及信息安全
,具体地涉及一种表达式转换方法、装置、设备、介质和产品。

技术介绍

[0002]编程语言的解释常采用解析语法树的方式实现,表达式是编程语言中的一种,因此,表达式的解释也常采用解析语法树的方式实现。
[0003]构建一种语言的语法树,不仅需要对该语言有全面、深刻的理解,同时为了覆盖众多的语法也需要不断地迭代完善语法树。当解释不同语言的表达式时,也需要创建不同语言的语法树。这徒增了语法树的维护工作。

技术实现思路

[0004]鉴于上述问题,本公开提供了提高维护效率的表达式转换方法、装置、设备、介质和程序产品。
[0005]根据本公开的第一个方面,提供了一种表达式转换方法,包括:获取待解析表达式,所述待解析表达式包括多个不同类型的元素;基于所述不同类型的元素,识别所述待解析表达式的执行顺序;以及基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,其中,所述映射关系包括所述简要表达式和所述简要表达式对应的元素的映射关系,或者所述映射关系包括所述简要表达式和队列的映射关系,所述队列是所述简要表达式对应的元素的集合。
[0006]根据本公开的实施例,其中,所述类型包括优先级字符类型,所述基于所述不同类型的元素,识别所述待解析表达式的执行顺序,包括:遍历所述待解析表达式,判断所述待解析表达式中是否出现所述优先级字符类型的元素;在所述待解析表达式中出现所述优先级字符类型的元素的情况下,判断所述优先级字符类型的元素的影响范围内是否嵌套有其他的所述优先级字符类型的元素;以及在嵌套有其他的所述优先级字符类型的元素的情况下,选取嵌套层数最高的优先级字符类型所涉及的影响范围内的元素,作为第一子表达式,其中,所述第一子表达式的所述执行顺序为最优先执行。
[0007]根据本公开的实施例,其中,所述类型还包括定义字符类型和运算符类型,所述基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,包括:对于所述映射关系包括所述简要表达式和队列的映射关系,提取所述第一子表达式中同类型的元素,形成两个队列,其中,所述两个队列的类型分别为所述定义字符类型和所述运算符类型;将所述两个队列转化为简要表达式,并生成所述映射关系;重复执行以下操作,直至达到预设的截止条件:基于所述执行顺序,通过所述待解析表达式未解析区域的部分元素和所述简要表达式,形成新的子表达式,其中,在所述新的子表达式中,所述简要表达式是作为所述定义字符类型的元素,所述新的子表达式包括至少两个类型的元素;提取所述新的子表达式中的同类型的元素,形成两个新的队列;以及将所述两个新的队列转化为新的简
要表达式,并生成新的映射关系。
[0008]根据本公开的实施例,其中,所述基于所述执行顺序,通过所述待解析表达式未解析区域的部分元素和所述简要表达式,形成新的子表达式,包括:判断所述简要表达式是否处于所述优先级字符类型的元素的影响范围内;以及在所述简要表达式处于所述优先级字符类型的元素的影响范围内的情况下,将所述优先级字符类型的元素的影响范围内的元素作为所述新的子表达式。
[0009]根据本公开的实施例,其中,所述预设的截止条件包括:在所述待解析表达式完全转化为简要表达式的情况下截止。
[0010]根据本公开的实施例,其中,所述运算符类型包括一元运算符类型和二元运算符类型,所述两个队列包括第一队列和第二队列,所述第一队列的类型是所述定义字符类型,所述第二队列的运算符是所述运算符类型,在所述基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系后,所述方法还包括:基于所述简要表达式和所述映射关系还原所述表达式;其中,在每一层的还原过程中:在所述第二队列为所述一元运算符类型的情况下,按照先取所述第二队列中元素后取所述第一队列中元素的顺序,还原所述表达式;在所述第二队列为所述一元运算符类型的情况下,按照先取所述第一队列中元素后取所述第二队列中元素的顺序,还原所述表达式;在所述第二队列中无剩余元素的情况下,取出所述第一队列中的剩余元素。
[0011]本公开的第二个方面,提供了一种表达式转换装置,包括:获取模块,用于获取待解析表达式,所述待解析表达式包括多个不同类型的元素;顺序识别模块,用于基于所述不同类型的元素,识别所述待解析表达式的执行顺序;以及解析模块,用于基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,其中,所述映射关系是所述简要表达式和所述简要表达式对应的元素的映射关系。
[0012]根据本公开的实施例,其中,所述类型包括优先级字符类型,所述顺序识别模块,还用于遍历所述待解析表达式,判断所述待解析表达式中是否出现所述优先级字符类型的元素;在所述待解析表达式中出现所述优先级字符类型的元素的情况下,判断所述优先级字符类型的元素的影响范围内是否嵌套有其他的所述优先级字符类型的元素;以及在嵌套有其他的所述优先级字符类型的元素的情况下,选取嵌套层数最高的优先级字符类型所涉及的影响范围内的元素,作为第一子表达式,其中,所述第一子表达式的所述执行顺序为最优先执行。
[0013]根据本公开的实施例,其中,所述类型还包括定义字符类型和运算符类型,所述解析模块,还用于对于所述映射关系包括所述简要表达式和队列的映射关系,提取所述第一子表达式中同类型的元素,形成两个队列,其中,所述两个队列的类型分别为所述定义字符类型和所述运算符类型;将所述两个队列转化为简要表达式,并生成所述映射关系;重复执行以下操作,直至达到预设的截止条件:基于所述执行顺序,通过所述待解析表达式未解析区域的部分元素和所述简要表达式,形成新的子表达式,其中,在所述新的子表达式中,所述简要表达式是作为所述定义字符类型的元素,所述新的子表达式包括至少两个类型的元素;提取所述新的子表达式中的同类型的元素,形成两个新的队列;以及将所述两个新的队列转化为新的简要表达式,并生成新的映射关系。
[0014]根据本公开的实施例,其中,所述解析模块,还用于判断所述简要表达式是否处于
所述优先级字符类型的元素的影响范围内;以及在所述简要表达式处于所述优先级字符类型的元素的影响范围内的情况下,将所述优先级字符类型的元素的影响范围内的元素作为所述新的子表达式。
[0015]根据本公开的实施例,其中,所述预设的截止条件包括:在所述待解析表达式完全转化为简要表达式的情况下截止。
[0016]根据本公开的实施例,其中,所述运算符类型包括一元运算符类型和二元运算符类型,所述两个队列包括第一队列和第二队列,所述第一队列的类型是所述定义字符类型,所述第二队列的运算符是所述运算符类型,在所述基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系后,所述装置还包括还原模块,用于基于所述简要表达式和所述映射关系还原所述表达式;其中,在每一层的还原过程中:在所述第二队列为所述一元运算符类型的情况下,按照先取所述第二队列中元素后取所述第一队列中元素的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种表达式转换方法,包括:获取待解析表达式,所述待解析表达式包括多个不同类型的元素;基于所述不同类型的元素,识别所述待解析表达式的执行顺序;以及基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,其中,所述映射关系包括所述简要表达式和所述简要表达式对应的元素的映射关系,或者所述映射关系包括所述简要表达式和队列的映射关系,所述队列是所述简要表达式对应的元素的集合。2.根据权利要求1所述的方法,其中,所述类型包括优先级字符类型,所述基于所述不同类型的元素,识别所述待解析表达式的执行顺序,包括:遍历所述待解析表达式,判断所述待解析表达式中是否出现所述优先级字符类型的元素;在所述待解析表达式中出现所述优先级字符类型的元素的情况下,判断所述优先级字符类型的元素的影响范围内是否嵌套有其他的所述优先级字符类型的元素;以及在嵌套有其他的所述优先级字符类型的元素的情况下,选取嵌套层数最高的优先级字符类型所涉及的影响范围内的元素,作为第一子表达式,其中,所述第一子表达式的所述执行顺序为最优先执行。3.根据权利要求2所述的方法,其中,所述类型还包括定义字符类型和运算符类型,所述基于所述执行顺序,持续解析所述待解析表达式,得到简要表达式和映射关系,包括:对于所述映射关系包括所述简要表达式和队列的映射关系,提取所述第一子表达式中同类型的元素,形成两个队列,其中,所述两个队列的类型分别为所述定义字符类型和所述运算符类型;将所述两个队列转化为简要表达式,并生成所述映射关系;重复执行以下操作,直至达到预设的截止条件:基于所述执行顺序,通过所述待解析表达式未解析区域的部分元素和所述简要表达式,形成新的子表达式,其中,在所述新的子表达式中,所述简要表达式是作为所述定义字符类型的元素,所述新的子表达式包括至少两个类型的元素;提取所述新的子表达式中的同类型的元素,形成两个新的队列;以及将所述两个新的队列转化为新的简要表达式,并生成新的映射关系。4.根据权利要求3所述的方法,其中,所述基于所述执行顺序,通过所述待解析表达式未解析区域的部分元素和所述简要表达式,形成新的子表达式,包括:判断所述...

【专利技术属性】
技术研发人员:何子南王凯李炯
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1