AntlrWorks

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

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

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

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

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

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

  1. 数仓工具—Hive源码之SQL解析Antlr入门(7)

    文章目录 ANTLR 入门 谁在使用 ANTLR 的发展 基本概念 ANTLR 做了什么 规则基本语法和关键字 语法文件的整体结构及写法示例 入门案例-打招呼 只能对一个人打招呼 对多个人打招呼 对多 ...

  2. 数仓工具—Hive源码之cli 模块(2)

    hive 源码 cli 模块 关于hive 的cli 模块其实是我们日常工作中使用最多的模块了,主要包括两部分 Hive 这是hive 提供的老版本的命令行交互工具了 beeline 这是hive 新 ...

  3. 数仓工具—Hive源码之Beeline/HiveCli(4)

    Beeline(HiveCli) 我们其实知道beeline 命令行对应的是Beeline 类,但是我们在org.apache.hive.beeline.cli 包下面发现了一个HiveCli 类 但 ...

  4. 大数据Spark “蘑菇云”行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验

    大数据Spark "蘑菇云"行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验 老师上课使用的Hive源码下载地址:http://www-eu.apache. ...

  5. mysql源码如何解析where字句_用mysql源码进行SQL解析

    用mysql源码进行SQL解析 Mysql是通过yacc进行SQL语句解析的,这里介绍一下如何使用mysql的源码进行SQL语句解析.由于Mysql的源代码注释比较少,而且缺少资料,所有些地方研究不够 ...

  6. 数仓工具—Hive实战之累计计算(7)

    累计计算 对于数仓而言,我们一般都是增量计算,增量数据同步.增量数据计算,然后我们产出每天的指标,大多数情况下都是这样的,但是我们也有很多的指标需要把过去的数据和当前的数据进行累计,从而产出计算结果. ...

  7. 数仓工具—Hive进阶之谓词下推(12)

    谓词下推 听到谓词下推这个词,是不是觉得很高大上,找点资料看了半天才能搞懂概念和思想,借这个机会好好学习一下吧. 首先我们要了解什么是谓词.谓词,用来描述或判定客体性质.特征或者客体之间关系的词项.也 ...

  8. 数仓工具—Hive实战之full join 经典案例(13)

    full join 经典案例 full join 增量数据同步更新 我们知道我们的数仓数据很大一部分是来自业务数据库的,那么这个时候我们数据同步的方式有两种一种是增量同步一种是全量同步,那么这个时候我 ...

  9. MySQL内核源码解读-SQL解析之解析器浅析

    MYSQL服务器接收SQL格式的查询,首先要对sql进行解析,内部将文本格式转换为二进制结构,这个转换就是解析器,解析的目的是为了让优化器更好的处理指令,以便以最优的路径,最少的耗时返回我们想要的结果 ...

最新文章

  1. 皮一皮:南北差异之相亲相爱的一家人系列...
  2. ASP.NET Repeater 头模板(HeaderTemplate)和FooterTemplate模板中查找控件
  3. web02--jsp数据传递
  4. liferay spring mvc 案例地址
  5. Android 第一课 Activity
  6. java数组按照大小排列_Java怎么让数组中元素按照牌值从小到大的顺序排列
  7. 谈谈如何构建技术部门的知识库
  8. Consecutive Sum LightOJ - 1269(区间异或和)
  9. 特斯拉AI Day首秀:FSD终极进化?AI超算Dojo、D1芯片、人形机器人亮相!
  10. ADS仿真 之 直流仿真示例
  11. CSS、Bulma介绍
  12. 移动智能终端PIN码破解
  13. 时钟系统(NTP子母钟系统)如何为高铁系统保驾护航
  14. 软件测试面试宝典【测试流程、数据库、Linux、测试工具、自动化、性能测试】
  15. 玩转SQLite5:使用Python来读写数据库
  16. 第四章 Caché 设计模式 代理模式
  17. 基于华为云人脸服务接口设计的人脸考勤打卡签到系统
  18. 手机访问电脑文件ftp服务器,怎么用手机直接访问电脑上的视频文件图片等?
  19. 【信号处理】脑机接口P300信号处理(MATLAB实现)
  20. Mac连接网线能够接收微信消息,浏览器不能访问网页

热门文章

  1. js和jquery验证密码必须为字母加数字
  2. 安装pr说找不到adobe服务器,Adobe 安装错误代码对照表及解决方案
  3. 腾讯资深架构师整理出来的Java高级开发需要的分布式技术,简直绝了
  4. 基于H5 小程序 UI框架选型 2020年9月10号
  5. 自制电脑红外遥控接收器(PC软解码)
  6. 高校被盗邮箱处置的运维经验分享-清华大学
  7. GitHub安装包下载(2020.4.26)
  8. 低代码助力生产管理:ERP生产管理系统
  9. 百度地图画圆、画扇形、画多边形、画点
  10. 刺沙--冰雪传奇自动回收,使用元宝经验卷轴(手机按键)