1 / 26
文档名称:

Antlr简介及中文手册.doc

格式:doc   页数:26
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Antlr简介及中文手册.doc

上传人:经管专家 2011/11/28 文件大小:0 KB

下载得到文件列表

Antlr简介及中文手册.doc

文档介绍

文档介绍:Antlr简介
06通讯软件 06382027 郑毅
本文主要介绍了什么是ANTLR,以及ANTLR的使用,其中ANTLR的使用包括了ANTLR的安装及使用,ANTLR语法文件解析,ANTLR规则(RULE)解析,ANTLR语法实例—SensorSQL,ANTLR Studio及其功能介绍等。
Antlr(ANother Tool for Language Recognition)是一个工具,前身是 PCCTS,它为我们构造自己的识别器(recognizers)、piler)和转换器(translators)提供了一个基础。通过定义自己的语言规则,Antlr可以为我们生成相应的语言解析器,这样便可以省却了自己全手工打造的劳苦。
它是这样的一种工具,它可以接受文法语言描述,并能产生识别这些语言的语句的程序。作为翻译程序的一部分,你可以使用简单的操作符和动作来参数化你的文法,使之告诉ANTLR怎样去创建抽象语法树(AST)和怎样产生输出。ANTLR知道怎样去生成识别程序,语言包括Java,C++,C#和不久的Python。
ANTLR知道怎样构建识别程序,这些程序可以对以下三种不同的输入应用文法结构:(i) 字符流, (ii) 记号流,和(iii)两维的树结构。很自然的它们分别与词法分析程序(lexers,以下简称lexer),语言解析程序和树遍历程序向匹配。这个用于定义这些语法的元语言,在所有情况下几乎一样的。
一旦你对ANTLR和类似工具比较顺手,你会开始以一种新的目光来看编程。许多任务强烈需要语言解决方案,而不是采用传统编程语言的做法。比如,这些过程的注解都是用特伦斯标记语言写的。而ANTLR则能来将文本(内含一些额外的东西和转换)转化为HTML,PDF或者其他那些生成程序的文件格式。
最后,ANTLR只是一件工具,仅仅这些。虽然它能通过将容易理解的乏味部分自动化来帮助你创建软件,但却不能企图让你指定整个编译器。例如,在单个的描述里就不行。那些宣称这类事情非常伟大,可以为发布刊物文章编写惊人的“一揽子解决方案”,却会悲惨失败在实际项目中。
词法分析器(Lexer)
词法分析器又称为Scanner,Lexical analyser和Tokenizer。程序设计语言通常由关键字和严格定义的语法结构组成。编译的最终目的是将程序设计语言的高层指令翻译成物力机器或虚拟机可以执行的指令。此法分析器的工作是分析量化那些本来毫无意义的字符流,将他们翻译成离散的字符组(也就是一个一个的Token)括关键字,标识符,符号(symbols)和操作符供语法分析器使用。
语法分析器(Parser)
编译器又称为Syntactical analyser。在分析字符流的时候,Lexer不关心所生成的单个Token的语法意义及其与上下文之间的关系,而这就是Parser的工作。语法分析器将收到的Tokens组织起来,并转换成为目标语言语法定义所允许的序列。
无论是Lexer还是Parser都是一种识别器,Lexer是字符序列识别器而Parser是Token序列识别器。他们在本质上是类似的东西,而只是在分工上有所不同而已。
ANTLR
ANTLR将上述两者结合起来,它允许我们定义识别字符流的词法规则和用于解释Token流的词法分析规则。然后,ANTLR将根据用户提供的语法文件自动生成相应的词法/语法分析器。用户可以利用他们将输入的文本进行编译,并转换成其他形式(如AST—Abstract Syntax Tree,抽象的语法树)。
Antlr使用
安装及使用
到新版本的ANTLR开发包和源码()。将antlr-,写好语法文件(),运行命令“java ”就可以获得自动生成语法/词法分析器。
ANTLR语法文件解析
下面我们对图中所描述的ANTLR语法文件做一些详细的分析。为了更好的使用ANTLR,你还可以下载ANTLR的Eclipse插件来帮助你完成工作。
1.         header域:所有出现在这里的部分,都会出现在由ANTLR编译之后生成的Java文件的最顶部。在本例中你可以将包名和其他信息放到这一区域中,生成的结果如由面对应代码部分所示。
2.         你在这一部分所提供的内容对于文件中的每个语法都是唯一的。这一区域的内容将出现在实际的类定义之前。也就是说,两个import仅属于类CalcParser,而不属于在同一个文件中定义的其他类(如CalcLexer)
3.         这里是语法定义部分,你同样可以将它看成是类定义。
4.         在Op

最近更新

2024年齐齐哈尔理工职业学院单招综合素质考试.. 39页

2025年三亚航空旅游职业学院单招职业技能测试.. 41页

2025年中山火炬职业技术学院单招职业适应性考.. 42页

2025年云南城市建设职业学院单招职业倾向性测.. 41页

2025年云南机电职业技术学院单招职业技能测试.. 39页

2025年云南财经职业学院单招职业适应性测试题.. 39页

2025年佳木斯职业学院单招综合素质考试题库最.. 41页

2025年信阳涉外职业技术学院单招职业适应性测.. 39页

2025年兰州资源环境职业技术大学单招职业倾向.. 40页

2025年内蒙古丰州职业学院单招职业适应性考试.. 40页

2025年内蒙古商贸职业学院单招职业技能测试模.. 39页

2025年内蒙古能源职业学院单招职业适应性考试.. 40页

2025年南京信息职业技术学院单招职业倾向性测.. 40页

2025年南京视觉艺术职业学院单招职业适应性考.. 40页

2025年南昌交通学院单招职业倾向性测试模拟测.. 41页

2025年南通科技职业学院单招职业倾向性测试题.. 39页

2025年厦门东海职业技术学院单招职业适应性测.. 39页

2025年厦门演艺职业学院单招职业倾向性考试模.. 41页

2025年合肥滨湖职业技术学院单招综合素质考试.. 40页

2025年吉安职业技术学院单招职业适应性考试模.. 40页

2025年吉林省四平市单招职业适应性测试模拟测.. 39页

2025年吉林铁道职业技术学院单招职业技能考试.. 40页

2025年咸宁职业技术学院单招职业倾向性考试模.. 40页

2025年哈尔滨电力职业技术学院单招职业倾向性.. 39页

2025年四川三河职业学院单招综合素质考试题库.. 41页

2025年四川建筑职业技术学院单招职业倾向性测.. 40页

2025年四川水利职业技术学院单招职业适应性考.. 40页

2025年四川西南航空职业学院单招综合素质考试.. 40页

《牛轮状病毒微滴数字RT-PCR检测方法》征求意.. 8页

《纳米流体对流换热系数检测方法》 编制说明 8页