《ANTLR 4权威指南》——导读

简介:


image

前  言

ANTLR是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。它被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。Twitter搜索使用ANTLR进行语法分析,每天处理超过20亿次查询;Hadoop生态系统中的Hive、Pig、数据仓库和分析系统所使用的语言都用到了ANTLR;Lex Machina将ANTLR用于分析法律文本;Oracle公司在SQL开发者IDE和迁移工具中使用了ANTLR;NetBeans公司的IDE使用ANTLR来解析C++;Hibernate对象-关系映射框架(ORM)使用ANTLR来处理HQL语言。

除了这些鼎鼎大名的项目之外,还可以利用ANTLR构建各种各样的实用工具,如配置文件读取器、遗留代码转换器、维基文本渲染器,以及JSON解析器。我编写了一些工具,用于创建数据库的对象-关系映射、描述三维可视化以及在Java源代码中插入性能监控代码。我甚至为一次演讲编写了一个简单的DNA模式匹配程序。

一门语言的正式描述称为语法(grammar),ANTLR能够为该语言生成一个语法分析器,并自动建立语法分析树——一种描述语法与输入文本匹配关系的数据结构。ANTLR也能够自动生成树的遍历器,这样你就可以访问树中的节点,执行自定义的业务逻辑代码。

本书既是ANTLR 4的参考手册,也是解决语言识别问题的指南。你会学到如下知识:

识别语言样例和参考手册中的语法模式,从而编写自定义的语法。

循序渐进地为从简单的JSON到复杂的R语言编写语法。同时还能学会解决XML和Python中棘手的识别问题。

基于语法,通过遍历自动生成的语法分析树,实现自己的语言类应用程序。

在特定的应用领域中,自定义识别过程的错误处理机制和错误报告机制。

通过在语法中嵌入Java动作(action),对语法分析过程进行完全的掌控。

本书并非教科书,所有的讨论都是基于实例的,旨在令你巩固所学的知识,并提供语言类应用程序的基本范例。

目  录

[第1章 初识ANTLR
1.1 安装ANTLR ](https://yq.aliyun.com/articles/119317/)
1.2 运行ANTLR并测试识别程序
[第2章 纵观全局
2.1 从ANTLR元语言开始 ](https://yq.aliyun.com/articles/119325/)
2.2 实现一个语法分析器
2.3 你再也不能往核反应堆多加水了
2.4 使用语法分析树来构建语言类应用程序
2.5 语法分析树监听器和访问器
[第3章 入门的ANTLR项目
3.1 ANTLR工具、运行库以及自动生成的代码 ](https://yq.aliyun.com/articles/119347/)
3.2 测试生成的语法分析器
3.3 将生成的语法分析器与Java程序集成
3.4 构建一个语言类应用程序

相关文章
|
XML JSON 自然语言处理
《ANTLR 4权威指南 》一导读
ANTLR是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。它被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。
9867 0
|
4月前
|
SQL 自然语言处理 分布式计算
antlr4 简单实用入门——(一)
antlr4 简单实用入门——(一)
98 0
|
自然语言处理 测试技术
《ANTLR 4权威指南》——导读
本节书摘来自华章社区《ANTLR 4权威指南》一书中的目录,作者[美] 特恩斯·帕尔(Terence Parr),更多章节内容可以访问云栖社区“华章社区”公众号查看
2025 0
|
自然语言处理
《ANTLR 4权威指南 》一2.3 你再也不能往核反应堆多加水了
歧义性语句是指存在不止一种语义的语句。换句话说,歧义性语句中的单词序列能够匹配多种语法结构。本节的标题“你再也不能往核反应堆多加水了”就是我在几年前的《周六夜现场》中看到的一个有歧义的句子。这句话让人不确定,是已经无法往核反应堆多加水了,还是不应该往核反应堆多加水。
1656 0