javacc学习心得

javacc学习心得

ID:37674174

大小:134.00 KB

页数:24页

时间:2019-05-28

javacc学习心得_第1页
javacc学习心得_第2页
javacc学习心得_第3页
javacc学习心得_第4页
javacc学习心得_第5页
资源描述:

《javacc学习心得》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、简介:JavaCC是一个词法分析生成器和语法分析生成器。词法分析和语法分析是处理输入字符序列的软件构件,编译器和解释器协同词法分析和语法分析来“解密”程序文件,不仅如此,词法分析和语法分析有更广泛的用途,我希望在本书列举的例子中能阐明这一点。那么什么是词法分析器和语法分析呢?词法分析器可以将字符串解析为一个一个的标识符(Token),并且可以把这些标识符归类。看一段C语言代码:intmain(){return0;}C语言的词法分析器会把这段代码分解为如下的一些标识符:“int”,“”,“main”,“(”,“)”,

2、“”,“{”,“”,“t”,“return”“”,“0”,“”,“;”,“”,“}”,“”,“”。还会把这些标识符归类,在我们的例子中,这些标识符的类别为:KWINT,SPACE,ID,OPAR,CPAR,SPACE,OBRACE,SPACE,SPACE,KWRETURN,SPACE,OCTALCONST,SPACE,SEMICOLON,SPACE,CBRACE,SPACE,EOF。其中EOF类别的标识符代表源文件的结束。这些标识符出传送给语法分析器。在C语言中,语法分析不需要所有的这些类别,在本例中

3、SPACE类别的标识符不传送给语法分析器。语法分析器会分析这些标识符,判断程序的结构。在许多编译程序中,语法分析器用语法树来表示程序的结构。编译器通过这棵树来产生代码。看一个表达式:fahrenheit=32.0+9.0*celcius/5.0;语法分析器基于语言规则分析这个表达式产生一棵树:DIAGRAMTBD(表示作者未完成)如果输入没有语言的词法或语法,词法分析器或语法分析器都能产生错误信息。JavaCC并不是一个词法分析器或者语法分析器,它只是一个生成器。就是说,它读取文本后,基于一定的规则产生词法分析器和

4、语法分析器的Java代码。见图:DIAGRAMTBD词法分析和语法分析变的越来越复杂,软件工程师直接用Java进行词法分析和语法分析时必须要充分考虑各规则间的相互作用。例如,在对C语言的词法分析中,处理整型常量和浮点常量的代码是不能分开的,因为浮点数和整数的前面部分是一样的。使用诸如JavaCC语法分析产生器,对整型常量和浮点常量是可以区分的,它们的共同点可在代码生成过程中提取出来。这种模块性意味着JavaCC文件比直接的Java程序更容易写,更容易读,也更容易修改。通过JavaCC语法分析生成器的使用,软件工程师

5、可以节省大量的时间,并且软件的质量也更高。javaCC有三个工具:javaCC用来处理语法文件(jj)生成解析代码;jjTree用来处理jjt文件,生成树节点代码和jj文件,然后再通过javaCC生成解析代码;jjDoc根据jj文件生成bnf范式文档(html)。这三个工具都十分重要,分别贯穿着编写时的过程。其中具体阐述一下jjTree方面(查考资料),JJTree定义了Java接口节点,所有分析树节点都必须执行。该接口提供的方法操作,如母公司设置的节点,新增的儿童和检索它们。JJTree经营有两种模式,简单的和多

6、(由于缺乏更好的条件)。在简单模式剖析每个树节点的具体类型SimpleNode;在多模式的类型分析树节点是源自名称节点。如果您没有提供实现的节点班JJTree将产生样本的基础上实现SimpleNode你。然后,您就可以修改,以适应实施。虽然JavaCC是一个自上而下分析器,JJTree构造解析树自下而上。要做到这一点它使用堆栈的地方后,把他们的节点已经建立。当它发现了他们父母,它的持久性有机污染物的儿童从堆栈,并增加了他们的父母,并最终推动新的父节点本身。堆栈是开放的,这意味着你有机会获得它从语法行动:你可以推,流

7、行和其他操纵其内容但是你觉得合适的。见节点范围和使用者的动作,下面的更重要的信息。JJTree提供装饰两个基本品种的节点,和一些语法速记,使它们的使用便利然后简单介绍一下javaCC的安装过程,1.安装jdk,安装完成后设置环境变量PATH路径。(这个不用多说了吧,学过java的人早已会)2.下载javacc,直接在其官方网站上下载,地址https://javacc.dev.java.net。我有的是老师给的压缩包javacc-4.0.zip,就更方便了。3.解压缩javacc-4.0.zip到任意目录,将其bin

8、目录设置为环境变量PATH路径。4.打开dos,进入javacc的解压目录,然后进入其examplesMailProcessing目录。按照readme上面的指示运行:javaccDigest.jjjavaccFaq.jjjavac*.javajavaDigestdigestFilejavaFaq

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。