[发明专利]语法查询方法、系统及计算机存储介质在审
申请号: | 202111465328.7 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114282529A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 张明明;胡绍勇 | 申请(专利权)人: | 上海观安信息技术股份有限公司 |
主分类号: | G06F40/253 | 分类号: | G06F40/253;G06F16/33 |
代理公司: | 北京城烽知识产权代理事务所(特殊普通合伙) 11829 | 代理人: | 徐超 |
地址: | 201803 上海市嘉定*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 语法 查询 方法 系统 计算机 存储 介质 | ||
1.一种语法查询方法,其特征在于,包括:
根据预设需求建立自定义语法规则,所述自定义语法规则包括多个与弹性搜索Elasticsearch中的查询模块一一对应的关键字和标识符;
对所述自定义语法规则做词法分析,得到顺序的二元组列表以及将所述二元组列表进行语法分析得到预测分析表;
根据所述预测分析表对应的各个语法单元编写与所述各个语法单元对应的DSL格式语法的接口,并根据所述DSL格式语法的接口将所述二元组列表中的各单词生成与所述各接口对应的多个DSL语句;
分别对所述多个DSL语句进行增强语句分析,生成自定义语法。
2.根据权利要求1所述的语法查询方法,其特征在于,所述建立自定义语法规则包括:
设置所述关键字和标识符;
对包括所述关键字和标识符的准语法规则进行非二义性测试;
若通过所述非二义性测试,则将所述准语法规则生成为所述自定义语法规则。
3.根据权利要求2所述的语法查询方法,其特征在于,所述对包括所述关键字的准语法规则进行非二义性测试,包括:
计算所述准语法规则中的所有非终结符号的First集以及所有非终结符号的Follow集;
判定非终结符号A的任何两个候选式的First集合不相交;
判定若A中存在某一候选式可以推导出ε,则其它候选式的First集与Follow(A)集不相交。
4.根据权利要求1所述的语法查询方法,其特征在于,所述对所述自定义语法规则做词法分析包括:
对所述自定义语法规则的文本进行预处理;所述预处理包括:过滤掉空格、注释、换行;
通过超前搜索最多n个字符确定单词的词性;
识别所述标识符时,得到非确定自动机NFA的状态转换图,通过子集法将所述非确定自动机NFA的状态转换图转化为有限状态自动机DFA的状态转换图;
根据所述有限状态自动机DFA的状态转换图中的字符转移情况编写词法分析程序,返回顺序的二元组列表。
5.根据权利要求4所述的语法查询方法,其特征在于,所述将所述二元组列表进行语法分析得到预测分析表包括:
提取公共左因子,消除左递归;
求所有非终结符号的FIRST集合和所有非终结符号的FOLLOW集合;
构造LL(1)文法的所述预测分析表。
6.根据权利要求5所述的语法查询方法,其特征在于,所述根据所述预测分析表对应的各个语法单元编写与所述各个语法单元对应的DSL格式语法的接口,并根据所述DSL格式语法的接口将所述二元组列表中的各单词生成与所述各接口对应的多个DSL语句包括:
根据所述LL(1)文法的预测分析表对应的各个语法单元编写与所述各个语法单元对应的DSL格式语法的接口;
在每个所述DSL格式语法的接口内将相应语法生成DSL语句;
将二元组列表根据语法单元对应接口生成相应的DSL语句,并执行返回数据。
7.根据权利要求6所述的语法查询方法,其特征在于,所述进行增强语句分析,生成自定义语法,包括:
通过所述LL(1)文法的预测分析表对应的接口,对所述返回数据进行二次分析,返回最后处理结果;
其中,所述分析包括:通过Java表达式引擎处理增强分析函数,并生成多个函数,以实现AviatorFunction接口的call函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海观安信息技术股份有限公司,未经上海观安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111465328.7/1.html,转载请声明来源钻瓜专利网。