ANTLR 4权威指南 [The Definitive ANTLR 4 Reference] pdf

ANTLR 4权威指南 [The Definitive ANTLR 4 Reference]

内容简介

在第一部分中,我们会安装ANTLR,尝试通过它来识别一个简单的“hello world”语法,并概览语言类应用程序的开发过程。在此基础上,我们会构造一个语法来识别和翻译形如{1,2,3}的花括号中的一列整数。最后,我们将通过一系列的简单语法和程序来快速了解ANTLR的特性。

在本书的第一部分中,我们的目标是大体上知道ANTLR能做什么。除此之外,我们还希望探究语言类应用程序的架构。在概览之后的第2章中,我们将会通过许多真实的例子来循序渐进地、系统性地学习ANTLR。在开始之前,我们需要首先安装ANTLR,然后尝试用它编写一份简单的“hello world”语法。

ANTLR是用Java编写的,因此你需要首先安装Java,哪怕你的目标是使用ANTLR来生成其他语言(如C#和C++)的解析器。(我希望在不远的未来ANTLR可以支持更多语言。)ANTLR运行所需的Java版本为1.6或更高。

作者简介

[美] 特恩斯·帕尔(Terence Parr) 著,张博 译

目录

版权信息
译者序
前言
致谢
第一部分 ANTLR和计算机语言简介
第1章 初识ANTLR
1.1 安装ANTLR
1.2 运行ANTLR并测试识别程序
第2章 纵观全局
2.1 从ANTLR元语言开始
2.2 实现一个语法分析器
2.3 你再也不能往核反应堆多加水了
2.4 使用语法分析树来构建语言类应用程序
2.5 语法分析树监听器和访问器
第3章 入门的ANTLR项目
3.1 ANTLR工具、运行库以及自动生成的代码
3.2 测试生成的语法分析器
3.3 将生成的语法分析器与Java程序集成
3.4 构建一个语言类应用程序
第4章 快速指南
4.1 匹配算术表达式的语言
4.2 利用访问器构建一个计算器
4.3 利用监听器构建一个翻译程序
4.4 定制语法分析过程
4.5 神奇的词法分析特性
第二部分 ANTLR开发语言类应用程序
第5章 设计语法
5.1 从编程语言的范例代码中提取语法
5.2 以现有的语法规范为指南
5.3 使用ANTLR语法识别常见的语言模式
5.4 处理优先级、左递归和结合性
5.5 识别常见的词法结构
5.6 划定词法分析器和语法分析器的界线
第6章 探索真实的语法世界
6.1 解析CSV文件
6.2 解析JSON
6.3 解析DOT语言
6.4 解析Cymbol语言
6.5 解析R语言
第7章 将语法和程序的逻辑代码解耦
7.1 从内嵌动作到监听器的演进
7.2 使用语法分析树监听器编写程序
7.3 使用访问器编写程序
7.4 标记备选分支以获取精确的事件方法
7.5 在事件方法中共享信息
第8章 构建真实的语言类应用程序
8.1 加载CSV数据
8.2 将JSON翻译成XML
8.3 生成调用图
8.4 验证程序中符号的使用
第三部分 高级特性
第9章 错误报告与恢复
9.1 错误处理入门
9.2 修改和转发ANTLR的错误消息
9.3 自动错误恢复机制
9.4 勘误备选分支
9.5 修改ANTLR的错误处理策略
第10章 属性和动作
10.1 使用带动作的语法编写一个计算器
10.2 访问词法符号和规则的属性
10.3 识别关键字不固定的语言
第11章 使用语义判定修改语法分析过程
11.1 识别编程语言的多种方言
11.2 关闭词法符号
11.3 识别歧义性文本
第12章 掌握词法分析的“黑魔法”
12.1 将词法符号送入不同通道
12.2 上下文相关的词法问题
12.3 字符流中的孤岛
12.4 对XML进行语法分析和词法分析
第四部分 ANTLR参考文档
第13章 探究运行时API
13.1 包结构概览
13.2 识别器
13.3 输入字符流和词法符号流
13.4 词法符号和词法符号工厂
13.5 语法分析树
13.6 错误监听器和监听策略
13.7 提高语法分析器的速度
13.8 无缓冲的字符流和词法符号流
13.9 修改ANTLR的代码生成机制
第14章 移除直接左递归
14.1 直接左递归备选分支模式
14.2 左递归规则转换
第15章 语法参考
15.1 语法词汇表
15.2 语法结构
15.3 文法规则
15.4 动作和属性
15.5 词法规则
15.6 通配符与非贪婪子规则
15.7 语义判定
15.8 选项
15.9 ANTLR命令行参数
参考文献

感悟与笔记

1.下载ANTLR

我们可以从这个官网下载到最新的antlr-4.x.x-complete.jar(现在最新版是4.7)。保存该文件到 C:\Javalib目录下。

2.添加ANTLR到系统环境变量CLASSPATH中

因为我们安装的是java接口版本的ANTLR, 所以Java是必须提前安装好的。关于java的安装,这里就不赘述了。

java安装好的基础上,现在将添加antlr-4.7-complete.jar到系统环境变量CLASSPATH中。例如我的环境变量CLASSPATH值为:

C:\Program Files\Java\jdk1.8.0_40\lib\;C:\Javalib\antlr-4.7-complete.jar;

注意:这里添加antlr-4.7-complete.jar时,要具体到改文件名。我一开始只是像安装java类似地仅仅写到目录C:\Javalib,没有具体到C:\Javalib\antlr-4.7-complete.jar 文件名。所以会报错提示:找不到文件或加载主类org.antlr.v4.Tool

3. 为ANTLR Tool 和 TestRig 创建batch命令

为了方便管理,我就直接在刚刚上一步骤创建 C:\Javalib目录下创建antlr4.bat和 grun.bat文件,跟antlr-4.7-complete.jar放在一个目录中。

由于C:\Javalib目录默认是没有添加到系统环境变量PATH中的,所以我们需要将C:\Javalib添加到PATH中。例如我的环境变量PATH值为(我把C:\Javalib添加在最后):

C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_40\bin;C:\Program Files\Java\jdk1.8.0_40\bin;C:\Program Files\Java\jdk1.8.0_40\jre\bin;C:\Javalib

现在我们需要去创建antlr4.bat和 grun.bat文件的具体内容。

  • 在C:\Javalib创建antlr4.bat文件;
  • 在该文件写入java org.antlr.v4.Tool %*
  • 保存文件
  • 在C:\Javalib创建grun.bat文件;
  • 在该文件写入java org.antlr.v4.gui.TestRig %*
  • 保存文件

会员免费下载

链接:https://pan.baidu.com/s/1pyJ7gEtD3tAEAw5PJaZ3Sg

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

其他

资源推荐

免费 图解数据结构:使用Java

C++ 程序设计语言:第4部分 标准库(原书第4版)

C++编程思想(两卷合订本)

CSS世界

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

Copyright © 2021-2022 知识猫. All Rights Reserved.