利用ANTLR生成C++描述的分析程序1.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用ANTLR生成C描述的分析程序1

鹏ANT壤生成c++描述硇箍簿酾 亨 君 Toolfor 摘 要 ANTLR(ANother Language 序(以下简称分析器)生成工具。其生成的分析器默认使用Java描述,而不是更高效的 C++描述的分析器的方法,并给出了一个实例。最后,本文对ANTLR本身做出了一 点改进。 关键词 ANTLR,语法分析器,语法分析器生成工具 地介绍其中的具体步骤。 一、ANTLR简介 分析器的自动生成一直是编译理论研究的一个方向。早期 的程序员手工编写分析器,不但费时费力,而且编写的分析器不 稳定、不易修改和移植。在自动化大潮冲击之下,越来越多的程 序员抛弃了这种手工做法。 由旧金山大学的TerenceParr领导开发的ANTLR(以前叫 的机器已经安装JDK,并正确设置了classpath。 Tool Constmction 做PCCTs,PurdueCompikr set,普渡大学编译 二、文法文件 器构建工具集)是一种分析器自动生成工具,它可以接受语言的 文法描述,并能产生识别这些语言的程序。而且我们可以在文 文法就是语言识别的规则。它是ANTLR生成程序的依据。 法描述中插入特定的语义动作,告诉ANTLR怎样去创建抽象语 法树(AST)和怎样产生输出。 口。 现在ANTLR越来越流行(有评论说ANTLR的出现是一个文法文件的编写基本是面向被解决的问题的。程序员只需 里程碑),不仅因为它功能更强、容易扩展、开源,而且ANTLR生要集中精力思考解决问题的逻辑,而不是羁绊于某种程序设计 成的代码和使用递归下降方法(手工生成分析器的主要方法)生 语言的实现细节,因此降低了出现错误的可能性。 成的代码很相似,易于阅读理解。与之相比,另外一种著名的分 1.文法文件的语法 Another 析器生成工具YACC(YetCompiler—Compiler,基于LR本文只是简单地介绍一个文法文件的语法,具体内容可以 分析方法)生成的程序就比较晦涩。 参阅ANTLR的相关文档。 目前国内介绍ANTLR的文章不多,仅有的文章也是介绍使 用ANTLR生成使用Java描述的分析器。其实ANTLR也可以生 最为重要的是规则和token的定义。 成C++描述的源程序(从2.7.3版本开始,ANTLR开始支持 C#,将来还会支持P)『thon),不过需要一些准备工作。本文将详细 规则的定义形式和编译理论中的扩展巴科斯范式(EBNF) 祭gV零譬强撰祭祭a滓祭苫峪笞潍零葛啦昏譬毯祭苔啦潞苔潍笞啦爵苔屹萍g峪孪啦雾塔氧牙潍零祭g屿莽若譬雾壤风牙啦器g譬雾茜氧努毡孓a器 社.1990 参考文献 3.王清辉,王彪.Visual AutoCAD2000 1.张国宝 VBA开发技术【M]北京清华大 【M]北京:机械工业出版社,2003 学出版社,2000 (收稿日期:2004年8月23目) 2.何援军 计算机图形学算法和实践【M]湖南科学出版 黪淼与i巍岭 万方数据 。罐 极为相似,包括规则名、规则体、一个用作结束标志的分号和异

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档