数仓工具—Hive源码之SQL解析AntlrWorks的使用(10)

; AntlrWorks

前面我们已经已经介绍过了Antlr的工作原理以及应用,我们也自己动手实现了一个计算器的案例,我们验证规则文件是否有效的方式是idea 的插件,如下所示,就是我们可以通过图形化的工具来验证我们的语法文件和我们的输入是否匹配,也就是我们的规则文件能否解析我们的输入

数仓工具—Hive源码之SQL解析AntlrWorks的使用(10)

今天我们介绍另外一个工具AntlrWorks ,AntlrWorks是由Jean Bovet编写用于构建ANTLR v3语法的GUI开发环境,它是一个独立的Java应用程序,只需单击即可开始使用ANTLR。它包含所有必要的JAR,是开始使用ANTLR的最简单方法。它将出色的语法提示编辑器与用于快速原型制作的解释器和用于隔离语法错误的与语言无关的调试器相结合。

其实我们可以将AntlrWorks认为是Antlr的界面化工具或者是IDE,有了AntlrWorks我们更加方便的开发。需要注意的是不同版本的antlrworks其内部集成了某个版本的antlr。

AntlrWorks通过在与语法相关的语法图中突出显示非确定性路径来帮助消除语法非确定性,这是初学者和专家最困难的问题之一。AntlrWorks的目标是使普通程序员更容易访问语法,通过提供出色的语法导航和重构工具来提高语法的可维护性和可读性,并解决语法开发人员遇到的最常见的问题和问题:

  1. 为什么这个语法片段是非确定性的?
  2. 此规则是否与示例输入匹配?
  3. 为什么此语法与此完整输入不匹配?
  4. 为什么给定此输入时会出现语法错误?
  5. 为什么没有语法错误给定这种

Original: https://blog.csdn.net/king14bhhb/article/details/127119245
Author: 不二人生
Title: 数仓工具—Hive源码之SQL解析AntlrWorks的使用(10)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817867/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • docker命令

    Command Description Attach local standard input, output, and error streams to a running co…

    大数据 2023年5月29日
    078
  • 推荐系统中不得不学的对比学习(Contrastive Learning)方法

    作者 | 对白出品 | 公众号:对白的算法屋 大家好,我是对白。 今天我们来聊一聊推荐系统中不得不学的Contrastive Learning方法,近年来Contrastive L…

    大数据 2023年5月28日
    066
  • 人口数据可视化大屏包含什么内容?

    国家展开 人口普查有十分重大的意义和作用。人口普查能全面掌握全国人口的基本情况、研究制定 人口政策、为经济社会发展规划提供依据。了解国家人口普查的意义和作用有助于我们更好的对行业和…

    大数据 2023年6月2日
    055
  • JavaScript-JavaScript预解析

    变量提升、函数提升 变量使用时会将变量声明提升到作用域的上面。函数调用时会将函数声明提升到作用域的上面。 提升:提升的只是定义,赋值不会被提升。 c、java等使用变量之前需要声明…

    大数据 2023年5月26日
    049
  • linux命令__firewalld

    firewalld 1、firewalld firewalld防火墙是centos7系统默认的防火墙管理工具取代了之前的iptables防火墙 在网络层工作,包括过滤防火墙 [En…

    大数据 2023年5月27日
    073
  • 【计算机视觉40例】案例34:勾勒五官轮廓

    Dlib是一个现代工具包,包含机器学习算法和工具,用于在程序中构造软件来解决复杂的现实世界问题。它被工业界和学术界广泛应用于机器人、嵌入式设备、移动电话和大型高性能计算环境等领域。…

    大数据 2023年5月24日
    060
  • 使用docker加载已有镜像安装Hyperledger Fabric v1.1.0

    每次在新的服务器上安装Hyperledger Fabric网络时,通过fabric官方提供的脚本安装时,需要从网络上down下近10G的fabric相关镜像,这个过程是漫长及痛苦的…

    大数据 2023年5月29日
    048
  • iphone各版本分辨率

    机型的大小和像素【iphoneX 、iphoneXS、iphoneXSMax、iphoneXR】 手机型号开发尺寸像素命名Device pixel ratioiPhone XS M…

    大数据 2023年11月11日
    032
  • Shell第一章《变量》

    什么是shell shell-‘壳’ 命令解释器,一种应用程序 shell语言特点 SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程…

    大数据 2023年5月27日
    070
  • EMAS Serverless系列~4步教你快速搭建小程序

    体验简介 本实验基于 EMAS Serverless 的云函数、云数据库、云存储等云服务能力一站式快速开发小程序《私人云相册》。Demo 主要包括如下功能:1 相册管理2 上传相片…

    大数据 2023年6月3日
    087
  • Sqlite索引

    索引(Index)有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE 和 INSERT 语句时的数据输入。索引可以创建或删除,但不会影响数据。索引是一…

    大数据 2023年11月11日
    023
  • 一文读懂数据库发展史

    本文力求以简单易懂的语言描述出数据库发展史,尽量避免出现复杂的概念介绍。数据库演进史如图1所示: 图1 数据库演进 一、穿孔纸带和文件系统 在现代意义的数据库出现之前(20世纪60…

    大数据 2023年6月3日
    084
  • Kfka异步发送 API

    1.创建Maven工程 kafka 2.在pom.xml文件导入依赖 org.apache.kafka kafka-clients 3.0.0 3.创建包名com.kafka.pr…

    大数据 2023年6月3日
    089
  • FLAT:Chinese NER Using Flat-Lattice Transformer

    摘要 近年来,汉字lattice结构被证明是一种有效的中文命名实体识别方法。然而,由于网格结构的复杂性和动态性,现有的基于网格的模型难以充分利用gpu的并行计算能力,推理速度通常较…

    大数据 2023年5月28日
    078
  • 每周一坑–简单的计算器

    问题: 做一个计算器,要能够进行+-*/等基本计算。后续可能支持幂运算,求对数,等运算。 效果大概是这样 输入1+2/3 = 输出:ans =1.66 先从比较简单的版本开始。 版…

    大数据 2023年5月25日
    088
  • 聊聊秒杀系统的设计(一)

    [TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped …

    大数据 2023年6月2日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球