CN115640307A - 一种语句处理方法、装置、设备及存储介质 - Google Patents
一种语句处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115640307A CN115640307A CN202211121576.4A CN202211121576A CN115640307A CN 115640307 A CN115640307 A CN 115640307A CN 202211121576 A CN202211121576 A CN 202211121576A CN 115640307 A CN115640307 A CN 115640307A
- Authority
- CN
- China
- Prior art keywords
- tree structure
- statement
- grammar
- syntax tree
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种语句处理方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;对所述语法树结构进行渲染,以得到可视化操作语句页面;基于所述可视化操作语句页面对语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在目标语法树结构的校验通过后实时更新所述输入语句。通过本申请的技术方案,可以从用户角度出发,解决用户手动输入语法专业和学习成本较高以及输入语句较多所带来的效率问题。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种语句处理方法、装置、设备及存储介质。
背景技术
搜索引擎需要根据用户输入的查询语句进行信息搜索。当用户建模型时需要填入条件语句或表达式,目前通常通过ES或者CK实现语句的查询。ES全称Elasticsearch,是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎,在云计算中能够达到实时搜索、稳定、可靠、快速安装,使用方便。CK全称Click House,是一款开源的数据分析数据库;主要用于在线分析处理查询,能够使用SQL查询实时生成分析数据报告。然而,现有的查询语句在处理时,通常通过对输入语句解析,转换语句并且通常由后端操作。但是,如果逻辑复杂嵌套过多,存在修改查看不直观并且操作不方便等问题。且现有的查询语句在处理时只针对公司业务场景处理,对于其他可能存在的特殊结构场景,还需要拓展处理。
综上,如何忽略结构和层级嵌套逻辑,只关注所需条件,高效率的拓展场景模式是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种语句处理方法、装置、设备及存储介质,能够忽略结构和层级嵌套逻辑,只关注所需条件,高效率的拓展场景模式。其具体方案如下:
第一方面,本申请公开了一种语句处理方法,包括:
通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;
通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;
对所述语法树结构进行渲染,以得到可视化操作语句页面;
基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。
可选的,所述通过预设获取指令获取用户终端输入的输入语句,包括:
通过vue v-model指令获取用户终端根据预先定义的语法结构输入的输入语句。
可选的,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
当对所述语法树结构中的节点进行数据操作处理时,获取当前节点的父节点标识号,以确定所述当前节点的节点位置信息;
根据所述节点位置信息,基于所述可视化操作语句页面对与所述单条语法规则和/或所述语法规则组对应的不同层级的所述语法树结构中的节点进行数据操作处理。
可选的,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
判断所述语法树结构中针对不同的数据类型是否设置了相应的自定义可选运算符;
如果所述语法树结构中针对不同的数据类型设置了相应的所述自定义可选运算符,则基于所述可视化操作语句页面在所述自定义可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理;
如果所述语法树结构中针对不同的数据类型没有设置相应的所述自定义可选运算符,则基于所述可视化操作语句页面在不同的所述数据类型的默认可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理。
可选的,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
将所述语法树结构中的节点包含的字段与预先构建的数据库中包含的若干个预设字段进行匹配;
如果所述语法树结构中的节点包含任意一个或多个所述预设字段,则基于所述可视化操作语句页面对所述语法树结构进行拓展。
可选的,所述对所述数据操作处理之后得到的目标语法树结构进行校验,包括:
对所述数据操作处理之后得到的目标语法树结构进行递归遍历,并判断所述目标语法树结构中的语法规则是否存在语法错误。
可选的,所述判断所述目标语法树结构中的语法规则是否存在语法错误,包括:
如果所述目标语法树结构中的语法规则存在语法错误,则判定校验不通过,并通过所述可视化操作语句页面进行提示;
如果所述目标语法树结构中的语法规则不存在语法错误,则判定校验通过,并利用所述目标语法树结构更新所述语法树结构,以得到更新后语法树结构,然后根据所述更新后语法树结构确定出更新后的输入语句。
第二方面,本申请公开了一种语句处理装置,包括:
输入语句获取模块,用于通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;
语法解析模块,用于通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;
语法树结构渲染模块,用于对所述语法树结构进行渲染,以得到可视化操作语句页面;
数据操作处理模块,用于基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的实时更新所述输入语句。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的语句处理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的语句处理方法。
本申请中,通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;对所述语法树结构进行渲染,以得到可视化操作语句页面;基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。可见,为解决输入语句描述的内容嵌套过多、修改时查看不直观、操作不方便等问题,本申请通过预设指令获取了用户输入的包括单条语法规则或语法规则组的输入语句后,通过前端利用antlr4解析工具将输入语句转换为语法树结构,一键解析语法,无需请求后台。基于可视化操作语句页面对语法树结构中的节点进行数据操作处理,可根据大部分实际使用场景配置多种符合各自场景的语法结构,不需要关注结构和层级嵌套逻辑,只关注所需条件,能够帮助用户快速准确实现所需语句,适用于对语法查询不精通的用户,解决用户手动输入语法专业和学习成本较高和输入语句较多的所带来的效率问题,从一定程度上降低了使用者具备专业性高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种语句处理方法流程图;
图2为本申请公开的一种具体的数据操作处理流程图;
图3为本申请公开的一种具体的数据操作处理流程图;
图4为本申请公开的一种具体的数据操作处理流程图;
图5为本申请公开的一种普通模式下的可视化操作界面示意图;
图6为本申请公开的一种拓展模式下的可视化操作界面示意图;
图7为本申请公开的一种具体的语句处理方法流程图;
图8为本申请公开的一种语句处理方法示意图;
图9为本申请公开的一种语句处理装置结构示意图;
图10为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,查询语句在处理时,通常通过对输入语句解析,转换语句并且通常由后端操作。但是,如果逻辑复杂嵌套过多,存在修改查看不直观并且操作不方便等问题。且现有的查询语句在处理时只针对公司业务场景处理,对于其他可能存在的特殊结构场景,还需要拓展处理。
为此,本申请提供了一种语句处理方案,能够忽略结构和层级嵌套逻辑,只关注所需条件,高效率的拓展场景模式。
本发明实施例公开了一种语句处理方法,参见图1所示,该方法包括:
步骤S11:通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句。
本申请实施例中,用户建模时需要填入条件语句或表达式,因此首先需要定义所需的语法结构。然后利用Vue双向数据绑定原理,通过vue v-model指令获取用户终端根据预先定义的语法结构输入的输入语句,然后进一步的对输入语句进行操作处理。可以理解的是,Vue是三大前端主流框架之一,是一套构建web交互页面的框架,使用MVVM(Model-View-ViewModel)模式通过双向数据绑定连接视图和模型,由数据驱动视图,只需关注业务逻辑,无需关注dom如何渲染。
步骤S12:通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构。
本申请实施例中,在通过Vue获取了用户的输入语句之后,利用antlr4对所述输入语句进行语法解析。antlr4是一款强大的语法分析器生成工具,可用于读取、处理、执行、翻译结构化的文本,将解析后的语句转换成语法树结构,通过转化语法树使其可操作。
步骤S13:对所述语法树结构进行渲染,以得到可视化操作语句页面。
本申请实施例中,基于解析后的树形结构递归循环组件渲染数据,也即,对语法树结构进行渲染,得到可视化操作语句页面,进行增删改的操作。示例性的,在对语法树结构进行渲染的过程中,根据每一层层级深度、逻辑元素符(如AND,OR等)、名称(如srcAddress等)、算术运算符(==、!=、exist、notexist等)和值,根据数据类型设置对应的表单组件,进行渲染,使其可选择或输入操作,从而获取与输入语句对应的每一组语法树结构中的节点包括的语句。
步骤S14:基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。
本申请实施例中,由于利用vue双向数据绑定原理,因此在基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理时,通过改变数据,就可以驱动视图变化,获取实时数据以递归处理每一条语句,
在第一种具体的实施方式中,如图2所示,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
步骤S21:当对所述语法树结构中的节点进行数据操作处理时,获取当前节点的父节点标识号,以确定所述当前节点的节点位置信息;
步骤S22:根据所述节点位置信息,基于所述可视化操作语句页面对与所述单条语法规则和/或所述语法规则组对应的不同层级的所述语法树结构中的节点进行数据操作处理。
本申请实施例中,对于语法树结构的层级方面,如果进行增删改的操作时,如添加单条语法规则或添加语法规则组时,将新增的单个语法规则或语法规则组作为子节点,通过其父节点id获取新增节点在整棵树中的位置和节点信息,如此一来,单条语法规则和/或语法规则组只需在对应位置插入对应数据,通过操控选择具体条件语句的字段和值,不需要关注结构和层级嵌套逻辑,只关注所需条件,从一定程度上降低了使用者具备专业性高的问题。同样的,修改和删除时也是获取到当前父节点信息去操作对应的子元素,在此不再进行赘述。
在第二种具体的实施方式中,如图3所示,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
步骤S31:判断所述语法树结构中针对不同的数据类型是否设置了相应的自定义可选运算符;
步骤S32:如果所述语法树结构中针对不同的数据类型设置了相应的所述自定义可选运算符,则基于所述可视化操作语句页面在所述自定义可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理;
步骤S33:如果所述语法树结构中针对不同的数据类型没有设置相应的所述自定义可选运算符,则基于所述可视化操作语句页面在不同的所述数据类型的默认可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理。
本申请实施例中,对于语法树结构的数据类型方面,不同的数据类型对应的字段可设置不同的运算符;比如可设置Boolean类型字段可选运算符为等于、不等于、存在、不存在;不设置也有默认可选值,可自定义配置。如此一来,通过联想智能提示转化可以选择操作,自动生成所需语法,能够帮助用户快速准确实现所需语句,提高了效率和语法输入的准确性,适用于对语法查询不精通的用户,提高了适用性。
在第三种具体的实施方式中,如图4所示,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
步骤S41:将所述语法树结构中的节点包含的字段与预先构建的数据库中包含的若干个预设字段进行匹配;
步骤S42:如果所述语法树结构中的节点包含任意一个或多个所述预设字段,则基于所述可视化操作语句页面对所述语法树结构进行拓展。
本申请实施例中,也可以针对不同的业务模式进行拓展。例如根据不同的业务场景分为普通模式和拓展模式,执行拓展模式的触发条件为判断语法树结构中的节点包含的字段是否与预先构建的数据库中添加的字段匹配,比如针对公司业务场景处理的match和where字段,对应了将字段和值拓展为多个的场景模式,不仅限于一一对应,实现方式上也是复用整棵树的处理逻辑,当单条节点运算符选为match时,在该节点新增一个字段值的数组,添加where过滤条件时,新增一条where类型的树,复用普通树的处理逻辑。如此一来,可根据大部分实际使用场景配置多种符合各自场景的语法结构。
如图5和图6所示,为不同模式下对语法结构树处理的示意图,图5为普通模式下的可视化操作语句界面,可见,根据上面一行的输入语句转换为下面的语法树结构,在不同节点进行增删改的操作。图6为拓展模式下的可视化操作语句界面,可见,where模式时新增了一条where类型的树,以相同的方式对where模式的树进行操作。
本申请实施例中,当对数据进行增删改操作时,会实时校验语句,利用vue双向数据绑定原理,通过获取实时数据递归处理每一条语句,驱动视图变化,更新输出,将对操作后的语法树整合处理成更新后的输入语句进行输出,交互更直观。整体实现过程中都是由自研的AIQL(AI Query Language,智能查询语句)来实现,支持ES、CK查询的SQL语句;因为默认查询ES、CK的语句格式比较复杂并且不直观,因此通过制定简洁明了的语句格式,进行转换解析成ES、CK支持的语句进行查询,提高了效率和语法输入的准确性。
本申请中,通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;对所述语法树结构进行渲染,以得到可视化操作语句页面;基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。可见,为解决输入语句描述的内容嵌套过多、修改时查看不直观、操作不方便等问题,本申请通过预设指令获取了用户输入的包括单条语法规则或语法规则组的输入语句后,通过前端利用antlr4解析工具将输入语句转换为语法树结构,一键解析语法,无需请求后台。基于可视化操作语句页面对语法树结构中的节点进行数据操作处理,可根据大部分实际使用场景配置多种符合各自场景的语法结构,不需要关注结构和层级嵌套逻辑,只关注所需条件,能够帮助用户快速准确实现所需语句,适用于对语法查询不精通的用户,解决用户手动输入语法专业和学习成本较高和输入语句较多的所带来的效率问题,从一定程度上降低了使用者具备专业性高的问题。
本申请实施例公开了一种具体的语句处理方法,参见图7所示,该方法包括:
步骤S51:通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句。
步骤S52:通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构。
步骤S53:对所述语法树结构进行渲染,以得到可视化操作语句页面。
其中,关于上述步骤S51、步骤S52、步骤S53更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S54:基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行递归遍历,并判断所述目标语法树结构中的语法规则是否存在语法错误,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。
本申请实施例中,为解决输入语句描述的内容嵌套过多,修改时查看不直观操作不方便等问题,对获取到的语句用antlr4一键解析语法将其转为语法树结构,渲染得到可视化操作语句页面,进行增删改的操作。当对语法树中的各节点相应的进行增删改操作后,会实时校验语句更新输出,交互更直观。
本申请实施例中,当数据发生改变时,会递归遍历整棵树对每条规则做校验,如果所述目标语法树结构中的语法规则存在语法错误,则判定校验不通过,校验不通过会通过所述可视化操作语句页面直观提示,例如在修改数据时,修改了字段但是用户忘记添加相应的参数值,因此将会在界面上提示存在错误;如果所述目标语法树结构中的语法规则不存在语法错误,则判定校验通过,校验通过之后,拼接每一个语句,赋值给v-model绑定的数据,同步更新。也即,利用所述目标语法树结构更新所述语法树结构得到更新后语法树结构,将更新后语法树结构中的各节点包括的语句重新整合为输入语句,得到更新后的输入语句。
如图8所示为整体的对输入语句处理的框架示意图,首先,用户定义所需的语法结构进行语句输入,然后通过vue v-model指令获取绑定数据内容即用户输入的语句;对获取到的语句用antlr4进行语法解析,转换成语法树结构,渲染得到可视化操作语句页面,进行增删改的操作;当对数据进行增删改操作,会实时校验语句更新输出,交互更直观。
本申请中,通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;对所述语法树结构进行渲染,以得到可视化操作语句页面;基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行递归遍历,并判断所述目标语法树结构中的语法规则是否存在语法错误,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。可见,为解决输入语句描述的内容嵌套过多、修改时查看不直观、操作不方便等问题,本申请通过预设指令获取了用户输入的包括单条语法规则或语法规则组的输入语句后,通过前端利用antlr4解析工具将输入语句转换为语法树结构,一键解析语法,无需请求后台。基于可视化操作语句页面对语法树结构中的节点进行数据操作处理,可根据大部分实际使用场景配置多种符合各自场景的语法结构,不需要关注结构和层级嵌套逻辑,只关注所需条件,能够帮助用户快速准确实现所需语句,适用于对语法查询不精通的用户,解决用户手动输入语法专业和学习成本较高和输入语句较多的所带来的效率问题,从一定程度上降低了使用者具备专业性高的问题。
相应的,本申请实施例还公开了一种语句处理装置,参见图9所示,该装置包括:
输入语句获取模块11,用于通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;
语法解析模块12,用于通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;
语法树结构渲染模块13,用于对所述语法树结构进行渲染,以得到可视化操作语句页面;
数据操作处理模块14,用于基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的实时更新所述输入语句。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;对所述语法树结构进行渲染,以得到可视化操作语句页面;基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。可见,为解决输入语句描述的内容嵌套过多、修改时查看不直观、操作不方便等问题,本申请通过预设指令获取了用户输入的包括单条语法规则或语法规则组的输入语句后,通过前端利用antlr4解析工具将输入语句转换为语法树结构,一键解析语法,无需请求后台。基于可视化操作语句页面对语法树结构中的节点进行数据操作处理,可根据大部分实际使用场景配置多种符合各自场景的语法结构,不需要关注结构和层级嵌套逻辑,只关注所需条件,能够帮助用户快速准确实现所需语句,适用于对语法查询不精通的用户,解决用户手动输入语法专业和学习成本较高和输入语句较多的所带来的效率问题,从一定程度上降低了使用者具备专业性高的问题。
进一步的,本申请实施例还公开了一种电子设备,图10是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图10为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的语句处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的语句处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述语句处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的语句处理或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种语句处理方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种语句处理方法,其特征在于,包括:
通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;
通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;
对所述语法树结构进行渲染,以得到可视化操作语句页面;
基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的校验通过后实时更新所述输入语句。
2.根据权利要求1所述的语句处理方法,其特征在于,所述通过预设获取指令获取用户终端输入的输入语句,包括:
通过vue v-model指令获取用户终端根据预先定义的语法结构输入的输入语句。
3.根据权利要求1所述的语句处理方法,其特征在于,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
当对所述语法树结构中的节点进行数据操作处理时,获取当前节点的父节点标识号,以确定所述当前节点的节点位置信息;
根据所述节点位置信息,基于所述可视化操作语句页面对与所述单条语法规则和/或所述语法规则组对应的不同层级的所述语法树结构中的节点进行数据操作处理。
4.根据权利要求1所述的语句处理方法,其特征在于,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
判断所述语法树结构中针对不同的数据类型是否设置了相应的自定义可选运算符;
如果所述语法树结构中针对不同的数据类型设置了相应的所述自定义可选运算符,则基于所述可视化操作语句页面在所述自定义可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理;
如果所述语法树结构中针对不同的数据类型没有设置相应的所述自定义可选运算符,则基于所述可视化操作语句页面在不同的所述数据类型的默认可选运算符中进行选择,以便对所述语法树结构中的节点进行数据操作处理。
5.根据权利要求1所述的语句处理方法,其特征在于,所述基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,包括:
将所述语法树结构中的节点包含的字段与预先构建的数据库中包含的若干个预设字段进行匹配;
如果所述语法树结构中的节点包含任意一个或多个所述预设字段,则基于所述可视化操作语句页面对所述语法树结构进行拓展。
6.根据权利要求1至5任一项所述的语句处理方法,其特征在于,所述对所述数据操作处理之后得到的目标语法树结构进行校验,包括:
对所述数据操作处理之后得到的目标语法树结构进行递归遍历,并判断所述目标语法树结构中的语法规则是否存在语法错误。
7.根据权利要求6所述的语句处理方法,其特征在于,所述判断所述目标语法树结构中的语法规则是否存在语法错误,包括:
如果所述目标语法树结构中的语法规则存在语法错误,则判定校验不通过,并通过所述可视化操作语句页面进行提示;
如果所述目标语法树结构中的语法规则不存在语法错误,则判定校验通过,并利用所述目标语法树结构更新所述语法树结构,以得到更新后语法树结构,然后根据所述更新后语法树结构确定出更新后的输入语句。
8.一种语句处理装置,其特征在于,包括:
输入语句获取模块,用于通过预设获取指令获取用户终端输入的输入语句;其中,所述输入语句包括单条语法规则或语法规则组的语句;
语法解析模块,用于通过前端利用antlr4对所述输入语句进行语法解析,并将解析后的语句转换成语法树结构;
语法树结构渲染模块,用于对所述语法树结构进行渲染,以得到可视化操作语句页面;
数据操作处理模块,用于基于所述可视化操作语句页面对所述语法树结构中的节点进行数据操作处理,并对所述数据操作处理之后得到的目标语法树结构进行校验,以便在所述目标语法树结构的实时更新所述输入语句。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的语句处理方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的语句处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211121576.4A CN115640307A (zh) | 2022-09-15 | 2022-09-15 | 一种语句处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211121576.4A CN115640307A (zh) | 2022-09-15 | 2022-09-15 | 一种语句处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115640307A true CN115640307A (zh) | 2023-01-24 |
Family
ID=84941288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211121576.4A Pending CN115640307A (zh) | 2022-09-15 | 2022-09-15 | 一种语句处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115640307A (zh) |
-
2022
- 2022-09-15 CN CN202211121576.4A patent/CN115640307A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8091071B2 (en) | Method and system for template-based code generation | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
US9594802B2 (en) | Graphical modeling of database query statements | |
CN110502227B (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
US20090049080A1 (en) | Relationship management for data modeling in an integrated development environment | |
CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
US10666744B2 (en) | Managing discovery and selection of service interface specifications | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
CN103136100B (zh) | 一种Android测试的方法和系统 | |
CN110308907B (zh) | 数据转换方法、装置、存储介质及电子设备 | |
CN112130830A (zh) | 接口生成方法、装置及电子设备 | |
Gómez-Martínez et al. | ArgoSPE: Model-based software performance engineering | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN114253995A (zh) | 数据溯源方法、装置、设备及计算机可读存储介质 | |
US10732938B2 (en) | System design apparatus and method | |
TWI746520B (zh) | 編譯計算機語言的方法和裝置 | |
US20100275183A1 (en) | Source code auditor with a customized rules builder | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
Zhang et al. | Automated Extraction of Grammar Optimization Rule Configurations for Metamodel-Grammar Co-evolution | |
WO2016131295A1 (zh) | 一种北向数据转换方法和装置 | |
CN115640307A (zh) | 一种语句处理方法、装置、设备及存储介质 | |
CN115525629A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |