📄 java词法分析器_ - java - java_开发文档.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0028)http://info.tlw.cn/10532.htm -->
<HTML><HEAD><TITLE>java词法分析器_ - Java - Java_开发文档</TITLE>
<META content="" name=keywords>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE>TD {
FONT-SIZE: 9pt; LINE-HEIGHT: 140%
}
BODY {
FONT-SIZE: 9pt; LINE-HEIGHT: 240%
}
A:link {
COLOR: #000000; TEXT-DECORATION: none
}
A:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A:active {
COLOR: #000000; TEXT-DECORATION: none
}
A:hover {
COLOR: #000000; TEXT-DECORATION: underline
}
.l150 {
LINE-HEIGHT: 150%; LETTER-SPACING: 1pt
}
</STYLE>
<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
<BODY text=#000000 vLink=#000000 aLink=#000000 link=#000000 bgColor=#eef4fa
leftMargin=0 topMargin=0 marginheight="0">
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background="java词法分析器_ - Java - Java_开发文档.files/topbg.gif" height=100>
<TABLE cellSpacing=0 cellPadding=0 width=760 border=0>
<TBODY>
<TR>
<TD width=300><IMG height=100 alt=星座测试、十二星座、星座运程、星座命理、星座男女
src="java词法分析器_ - Java - Java_开发文档.files/logo.gif" width=300
border=0></TD>
<TD align=middle><FONT color=#ffffff>
<H4>本站提供网站制作技术、Javascript、ASP、Java、<BR>Visual
C++、其他开发语言、java词法分析器相关开发文档。</H4></FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR height=2>
<TD bgColor=#ffffff height=2></TD></TR>
<TR>
<TD bgColor=#333333 height=25>
<TABLE width=700>
<TBODY>
<TR>
<TD width=20><IMG height=15
src="java词法分析器_ - Java - Java_开发文档.files/bijt.gif" width=16></TD>
<TD> <A href="http://cn.tlw.cn/"><STRONG><U><FONT
color=#ffffff>返回首页</FONT></U></STRONG></A> <FONT
color=#ffffff><STRONG>|</STRONG></FONT> <A
href="http://photo.tlw.cn/"><STRONG><U><FONT
color=#ffffff>网页素材</FONT></U></STRONG></A><STRONG> <FONT
color=#ffffff>|</FONT> <A href="http://info.tlw.cn/"><U><FONT
color=#ffffff>开发文档</FONT></U></A> <FONT color=#ffffff>|</FONT> <A
href="http://mu.tlw.cn/"><U><FONT color=#ffffff>在线音乐</FONT></U></A>
<FONT color=#ffffff>|</FONT> <A href="http://star.tlw.cn/"><U><FONT
color=#ffffff>星座测试</FONT></U></A> <FONT color=#ffffff>|</FONT> <A
href="http://www.tlw.cn/"><U><FONT color=#ffff00>泰龙社区</FONT></U></A>
<FONT color=#ffffff>|</FONT> <A href="http://font.tlw.cn/"><U><FONT
color=#ffffff>英文字体</FONT></U></A></STRONG></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=1 cellPadding=0 width=780 bgColor=#333333 border=0>
<TBODY>
<TR>
<TD align=middle height=30>
<TABLE width="95%">
<TBODY>
<TR>
<TD width=20><IMG height=15
src="java词法分析器_ - Java - Java_开发文档.files/bijt.gif" width=16></TD>
<TD align=right><FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/14_1.htm"><FONT color=#ffffff>.NET</FONT>
</A><FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/13_1.htm"><FONT
color=#ffffff>数据库开发</FONT></A> <FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/12_1.htm"><FONT
color=#ffffff>Perl</FONT></A> <FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/11_1.htm"><FONT
color=#ffffff>文件格式</FONT></A> <FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/9_1.htm"><FONT color=#ffffff>其他</FONT></A>
<FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/8_1.htm"><FONT
color=#ffffff>游戏开发</FONT></A> <FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/7_1.htm"><FONT color=#ffffff>Visual
Basic</FONT></A> <FONT color=#ffffff>○</FONT> <A
href="http://info.tlw.cn/6_1.htm"><FONT
color=#ffffff>Delphi</FONT></A></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD bgColor=#f5f5f5 height=30> ● <A
href="http://info.tlw.cn/index.htm"><U>返回开发文档首页</U></A> ● <A
href="http://info.tlw.cn/10_1.htm">网站制作技术</A> ● <A
href="http://info.tlw.cn/5_1.htm">Javascript</A> ● <A
href="http://info.tlw.cn/4_1.htm">ASP</A> ● <A
href="http://info.tlw.cn/3_1.htm">Java</A> ● <A
href="http://info.tlw.cn/2_1.htm">Visual C++</A> ● <A
href="http://info.tlw.cn/1_1.htm">其他开发语言</A></TD></TR></TBODY></TABLE>
<SCRIPT language=javascript
src="java词法分析器_ - Java - Java_开发文档.files/78060banner.js"></SCRIPT>
<TABLE cellSpacing=1 cellPadding=7 width=780 bgColor=#333333 border=0>
<TBODY>
<TR>
<TD align=middle width="100%" height=30><STRONG><FONT
color=#ffffff>java词法分析器</FONT></STRONG></TD></TR>
<TR>
<TD width="100%" bgColor=#f5f5f5>
<CENTER>作者:未知 来源:未知 加入时间:2004-8-10 <STRONG><A
href="http://info.tlw.cn/index.htm">开发文档</A></STRONG> </CENTER><BR><BR>
<P>Java词法分析器<BR>
[使用java开发,并且用来分析java源文件]<BR>2003年1月12日</P>
<P>1. 开发工具:rational rose2002 jedition,borland jbuilder6
professional<BR>2. 开发步骤:<BR>1) 基于状态转换图的编译器原理如下:</P>
<P><IMG alt="" hspace=0 src="" align=baseline
border=0>
</P>
<P><BR>2)在rose中建立分析器模型框架,根据分析器的状态转换图算法以及算法构造。词法分析器的框架结构如下图所示:</P>
<P><IMG alt="" hspace=0 src="" align=baseline
border=0><BR> (分析器软件包)<BR> <IMG alt="" hspace=0 src=""
align=baseline
border=0><BR>(词法分析器的控制器结构,包括预编译器,扫描程序,保留字表和单词的类型种别码表以及词法分析器的引导程序和控制程序)<BR> <IMG
alt="" hspace=0 src="" align=baseline
border=0><BR>(词法分析器的扫描缓冲区和输入缓冲区结构以及获得缓冲区的缓冲工厂)<BR>3)使用rose正向工程产生java框架代码,在jbuilder中进行编辑实现功能代码,生成最终的代码,进行test和debug,最后形成最终的目标程序。具体的实现请参考源代码。编辑和测试如下图所示:</P>
<P><IMG alt="" hspace=0 src="" align=baseline
border=0> <BR>(开发环境)<BR> <IMG alt="" hspace=0 src=""
align=baseline border=0><BR>(运行结果,详细结果附在后面)<BR>3. 源代码:<BR>//lisence
head<BR>/*Java Accidence Analyser<BR>**Author yellowicq<BR>**All copyright
reserved<BR>**Version
1.0<BR>*/<BR>//lisence<BR>1) 词法分析器引导文件:main.java<BR>package
JAccidenceAnalyse;<BR>import javax.xml.parsers.*;<BR>import
org.w3c.dom.*;</P>
<P>public class main {</P>
<P> /**<BR> * @param args<BR> * @return
void<BR> * @roseuid 3D9BAE4702AD<BR> */<BR>
public static void main(String[] args)
{<BR>//读取配置文件,得到系统属性<BR> String cfgString[] = new
String[4];<BR> try {<BR>
cfgString = main.loadAACfg("d:\\aaCfg.xml");<BR>
}<BR> catch (Exception e)
{<BR>
e.printStackTrace(System.err);<BR>
}<BR>//设置待读文件名<BR>////////////////////////////////////////////////////<BR>
//保留字表文件<BR> String reserveFileName =
cfgString[0];<BR> //类型种别码表文件<BR>
String classFileName = cfgString[1];<BR>
//需要分析的源文件<BR> String sourceFileName =
cfgString[2];<BR> //输出文件<BR> String
outputFileName =
cfgString[3];<BR>////////////////////////////////////////////////////<BR>
//创建词法分析器<BR> AccidenceAnalyser aa = new
AccidenceAnalyser();<BR>
aa.setFilesPath(reserveFileName, classFileName,
sourceFileName,<BR>
outputFileName); //建立所需要的文件对象<BR>
//初始化词法分析器<BR> aa.initAA();<BR>
//初始化关键字表<BR>
aa.keyWordTable.initKeyWordTable();<BR>
//初始化类型种别码表<BR>
aa.classIdentity.initClassIdentityTable();<BR>
//开始进行词法分析<BR> aa.startAA();<BR>
//分析完毕<BR> }</P>
<P> //读取配置文件<BR> private static String[] loadAACfg(String
name) throws Exception {<BR> String cfgString[] = new
String[4];<BR> /*解析xml配置文件*/<BR> try
{<BR>
/*创建文档工厂*/<BR> DocumentBuilderFactory
factory =
DocumentBuilderFactory.newInstance();<BR>
/*创建文档解析器*/<BR> DocumentBuilder builder =
factory.newDocumentBuilder();<BR>
/*解析配置文件*/<BR> Document doc =
builder.parse(name);<BR>
/*规范化文档*/<BR>
doc.normalize();<BR>
/*查找接点表*/<BR> NodeList nlists =
doc.getElementsByTagName("FilePath");<BR>
for (int i = 0; i < nlists.getLength(); i++)
{<BR> Element item = (Element)
nlists.item(i);<BR>
//取得需要的配置属性<BR>
/******************/<BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -