⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java词法分析器_ - java - java_开发文档.htm

📁 java 好的分析器
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      [使用java开发,并且用来分析java源文件]<BR>2003年1月12日</P>
      <P>1.&nbsp;开发工具:rational rose2002 jedition,borland jbuilder6 
      professional<BR>2.&nbsp;开发步骤:<BR>1)&nbsp;基于状态转换图的编译器原理如下:</P>
      <P><IMG alt="" hspace=0 src="" align=baseline 
      border=0>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      </P>
      <P><BR>2)在rose中建立分析器模型框架,根据分析器的状态转换图算法以及算法构造。词法分析器的框架结构如下图所示:</P>
      <P><IMG alt="" hspace=0 src="" align=baseline 
      border=0><BR>&nbsp;(分析器软件包)<BR>&nbsp;<IMG alt="" hspace=0 src="" 
      align=baseline 
      border=0><BR>(词法分析器的控制器结构,包括预编译器,扫描程序,保留字表和单词的类型种别码表以及词法分析器的引导程序和控制程序)<BR>&nbsp;<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>&nbsp;<BR>(开发环境)<BR>&nbsp;<IMG alt="" hspace=0 src="" 
      align=baseline border=0><BR>(运行结果,详细结果附在后面)<BR>3.&nbsp;源代码:<BR>//lisence 
      head<BR>/*Java Accidence Analyser<BR>**Author yellowicq<BR>**All copyright 
      reserved<BR>**Version 
      1.0<BR>*/<BR>//lisence<BR>1)&nbsp;词法分析器引导文件:main.java<BR>package 
      JAccidenceAnalyse;<BR>import javax.xml.parsers.*;<BR>import 
      org.w3c.dom.*;</P>
      <P>public class main {</P>
      <P>&nbsp; /**<BR>&nbsp;&nbsp; * @param args<BR>&nbsp;&nbsp; * @return 
      void<BR>&nbsp;&nbsp; * @roseuid 3D9BAE4702AD<BR>&nbsp;&nbsp; */<BR>&nbsp; 
      public static void main(String[] args) 
      {<BR>//读取配置文件,得到系统属性<BR>&nbsp;&nbsp;&nbsp; String cfgString[] = new 
      String[4];<BR>&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      cfgString = main.loadAACfg("d:\\aaCfg.xml");<BR>&nbsp;&nbsp;&nbsp; 
      }<BR>&nbsp;&nbsp;&nbsp; catch (Exception e) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      e.printStackTrace(System.err);<BR>&nbsp;&nbsp;&nbsp; 
      }<BR>//设置待读文件名<BR>////////////////////////////////////////////////////<BR>&nbsp;&nbsp;&nbsp; 
      //保留字表文件<BR>&nbsp;&nbsp;&nbsp; String reserveFileName = 
      cfgString[0];<BR>&nbsp;&nbsp;&nbsp; //类型种别码表文件<BR>&nbsp;&nbsp;&nbsp; 
      String classFileName = cfgString[1];<BR>&nbsp;&nbsp;&nbsp; 
      //需要分析的源文件<BR>&nbsp;&nbsp;&nbsp; String sourceFileName = 
      cfgString[2];<BR>&nbsp;&nbsp;&nbsp; //输出文件<BR>&nbsp;&nbsp;&nbsp; String 
      outputFileName = 
      cfgString[3];<BR>////////////////////////////////////////////////////<BR>&nbsp;&nbsp;&nbsp; 
      //创建词法分析器<BR>&nbsp;&nbsp;&nbsp; AccidenceAnalyser aa = new 
      AccidenceAnalyser();<BR>&nbsp;&nbsp;&nbsp; 
      aa.setFilesPath(reserveFileName, classFileName, 
      sourceFileName,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      outputFileName); //建立所需要的文件对象<BR>&nbsp;&nbsp;&nbsp; 
      //初始化词法分析器<BR>&nbsp;&nbsp;&nbsp; aa.initAA();<BR>&nbsp;&nbsp;&nbsp; 
      //初始化关键字表<BR>&nbsp;&nbsp;&nbsp; 
      aa.keyWordTable.initKeyWordTable();<BR>&nbsp;&nbsp;&nbsp; 
      //初始化类型种别码表<BR>&nbsp;&nbsp;&nbsp; 
      aa.classIdentity.initClassIdentityTable();<BR>&nbsp;&nbsp;&nbsp; 
      //开始进行词法分析<BR>&nbsp;&nbsp;&nbsp; aa.startAA();<BR>&nbsp;&nbsp;&nbsp; 
      //分析完毕<BR>&nbsp; }</P>
      <P>&nbsp; //读取配置文件<BR>&nbsp; private static String[] loadAACfg(String 
      name) throws Exception {<BR>&nbsp;&nbsp;&nbsp; String cfgString[] = new 
      String[4];<BR>&nbsp;&nbsp;&nbsp; /*解析xml配置文件*/<BR>&nbsp;&nbsp;&nbsp; try 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*创建文档工厂*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DocumentBuilderFactory 
      factory = 
      DocumentBuilderFactory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*创建文档解析器*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DocumentBuilder builder = 
      factory.newDocumentBuilder();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*解析配置文件*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document doc = 
      builder.parse(name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*规范化文档*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      doc.normalize();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*查找接点表*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NodeList nlists = 
      doc.getElementsByTagName("FilePath");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      for (int i = 0; i &lt; nlists.getLength(); i++) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element item = (Element) 
      nlists.item(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //取得需要的配置属性<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /******************/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -