编辑: 梦里红妆 2013-10-19
1.

1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 目录 自述 简介 安装ANTLR 入门 基本概念 在语法中嵌入任意的操作 使用语义谓词改变语法分析 处理同一文件中的不同格式 重写输入流 发送记号到不同的通道 算术表达式语言 使用Visitor模式计算结果 使用Listener模式计算结果 语法设计 常用语言模式 优先级,左递归以及相关性 常用词法结构 词法分析器和语法分析器的界线

1 ANTLR 4简明教程 本教程根据最新的ANTLR 4编写,以开源的形式创作,源码托管在GitHub上,欢迎参与维 护. 在线阅读:《ANTLR 4简明教程》. 如果在阅读过程中发现有什么问题,请到这里留言. 自述

2 简介 ANTLR v4是一款功能强大的语法分析器生成器,可以用来读取、处理、执行和转换结构化文 本或二进制文件.它被广泛应用于学术界和工业界构建各种语言、工具和框架. 从称为文法的一种形式化的语言描述中,ANTLR生成该语言的语法分析器.生成的语法分析 器可以自动构建语法分析树――表示文法如何匹配输入的数据结构.ANTLR还可以自动生成 树遍历器,你可以用它来访问那些树的节点,以执行特定的代码. ANTLR v4的语法分析器使用一种新的称为 Adaptive LL(*) 或 ALL(*) 的语法分析技术,它可 以在生成的语法分析器执行前在运行时动态地而不是静态地执行文法分析. ANTLR v4极大地简化了匹配句法结构(如算术表达式)的文法规则.对于传统的自顶向下的 语法分析器生成器来说,识别表达式的最自然的文法是无效的,ANTLR v4则不然,你可以使 用像下面这样的规则来匹配表达式: expr : expr '

*'

expr | expr '

+'

expr | INT ;

像expr这样的自引用规则是递归的且是左递归的,因为它的可选项中至少有一个立即引用它 自身. ANTLR v4会自动地将左递归规则(例如expr)重写为非左递归等价物,唯一的约束是左递归 必须是直接的,即那些规则立即引用它们自身. 简介

3 安装ANTLR ANTLR是由Java写成的,所以在安装ANTLR前必须保证已经安装有Java 1.6或以上版本.你 可以到这里下载ANTLR的最新版本,或者也可使用命令行工具下载: $ curl -O https://www.antlr.org/download/antlr-4.7.1-complete.jar 归档文件包含运行ANTLR工具的所有必要依赖,以及编译和执行由ANTLR生成的识别器所需 的运行库.简而言之,就是ANTLR工具将文法转换成识别程序,然后识别程序利用ANTLR运 行库中的某些支持类识别由该文法描述的语言的句子.此外,该归档文件还包含两个支持 库:TreeLayout(一个复杂的树布局库)和StringTemplate(一个用于生成代码和其它结构化 文本的模板引擎). 现在来测试下ANTLR工具是否工作正常: $ java -jar antlr-4.7.1-complete.jar # 启动org.antlr.v4.Tool 如果正常的话会看到以下帮助信息: ANTLR Parser Generator Version 4.7.1 -o specify output directory where all output is generated -lib specify location of grammars, tokens files -atn generate rule augmented transition network diagrams -encoding specify grammar file encoding;

e.g., euc-jp -message-format ___ specify output style for messages in antlr, gnu, vs2005 -long-messages show exception details when available for errors and warnings -listener generate parse tree listener (default) -no-listener don'

t generate parse tree listener -visitor generate parse tree visitor -no-visitor don'

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题