Jflex中文用户手册.pdf

Jflex中文用户手册.pdf

ID:50144659

大小:134.04 KB

页数:7页

时间:2020-03-06

Jflex中文用户手册.pdf_第1页
Jflex中文用户手册.pdf_第2页
Jflex中文用户手册.pdf_第3页
Jflex中文用户手册.pdf_第4页
Jflex中文用户手册.pdf_第5页
资源描述:

《Jflex中文用户手册.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JflexJFLEX词法分析安装与配置1.下载jflex-1.4.3.zip,解压缩到本地目录(c:/jflex)。2.找到jflexbinjflex.bat文件,配置JAVAHOME和JFLEXHOME3.把x:jflexbin写入系统环境变量path中运行可视化方式直接运行jflexbinjflex.bat文件,打开可视化界面操作即可。命令行方式配置把x:jflexbin以及x:jflexlibJFlex.jar配置到系统环境变量的CLASSPATH中。格式javaJFlex.Main运行参数-d

2、生成文件的输出目录--skel使用外部的骨架文件生成扫描器类,它大多数情况下用于JFLEX的维护和低级别定制。只有在你知道自己正在作什么时候才使用它。JFLEX的源码中带有一个骨架文件,预先编写骨架文件才能使用此命令。--nomin在扫描器生成的过程中,跳过DFA简化步骤。--jlex完全兼容jlex--dot为NFA,DFAandminimisedDFA生成扩展名为.dot的graphviz图型文件。该参数还在最初阶段,尚未完全实现。--dump在控制台显示NFA转换表,初始DFA和最简DFA。--verb

3、oseor–v显示生成过程信息。--quietor–q仅显示生成错误信息--time显示代码生成耗时信息(不十分精确)--version打印JFLex版本号--info打印系统以及JDK信息。--pack使用%pack代码生成策略--table使用%table代码生成策略--switch使用%switch代码生成策略--helpor-h打印帮助信息,解释运行参数以及Jflex用法。JFLEX配置文件编写配置文件以.flex为扩展名,整个文档分为三个部分,使用%%划分1.用户代码2.选项与声明3.词法规则形式形如:用户代码…………………………………………………………

4、………………….…………………………………………………………………………….%%选项与声明…………………………………………………………………………….……………………………………………………………………………..%%词法规则………………………………………………………………………………..用户代码JFLEX直接将这部分代码拷贝到生成词法分析器Java源文件中,通常在这里我们只定义一些类注释信息以及package和import的引用。选项与声明在这一部分,选项用来定制词法分析器,声明则是声明一些能够在第三部分(词法规则定义)使用的宏定义和词法状态,其中宏大多由正则表达

5、式定义。选项所有选项都要由一个“%”符号开头,下面来列举一下所有的选项:类选项和用户代码%class定义生成词法分析器Java文件的文件名,如果不定义该选项,则默认生成”Yylex.java”。例子:%classMyScanner%implements使得生成的词法分析器类实现特定的接口,可以同时实现多个接口。例子:%implementsinterface1,interface2%extends使得生成的词法分析器类是某个类的子类,至多定义一个%extends选项。例子:%extendsParentClass%public使得生成的类是public的,类似的还有%

6、final和%abstract指令,他们分别生成的类是final和abstract类型的。例子:%public%apiprivate使得生成的类文件中,所有生成的方法和变量都变为private,只有该类的构造方法和用户自定代码段除外。如果使用了%cup选项,那么next_token方法也不会被设定为私有。这个方法如果没有特殊情况不推荐使用。例子:%apiprivate%{………用户代码…….%}类代码指令其中用户代码将被直接复制到生成类文件中,在这里你可以定义自己的成员变量和方法。此规范描述中出现多个类代码指令,那么JFLEX将根据这些类代码指令出现的先后顺序将他

7、们拼接起来。例子:%{publicStringname;publicvoidtest(){System.out.println(“thisisatest!”);}………………………………%}%init{………初始化代码………%init}初始化代码将被直接复制生成类的构造函数中,我们可以在这里对类指令代码中声明的成员变量进行初始化工作。同类代码指令一样,如果出现多个初始化指令定义,那么JFLEX将根据这些类代码指令出现的先后顺序将他们拼接起来。例子:%init{name=”Benson”;………………………………%init}%initthrow使得生成的类的构造器方

8、法抛出某种

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

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

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