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

📄 accidenceanalyser.java

📁 数据库连接池的写法
💻 JAVA
字号:
/*
 * 创建日期 2005-11-3
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package databaseConnectPool;

import java.io.*;
import java.util.*;
import databaseConnectPool.Buffer.*;

public class AccidenceAnalyser {
  private java.io.File SourceFile;
  private java.io.File ReserveFile;
  private java.io.File ClassFile;
  private java.io.File OutputFile;
  public Pretreatment pretreatment;
  public KeyWordTable keyWordTable;
  public ClassIdentity classIdentity;
  public Scaner scaner;
  public ConcreteScanBufferFactory csbFactory;

  /**
   * @roseuid 3D9BB93303D0
   */
  public AccidenceAnalyser() {
    System.out.println("[INFOR]已经建立词法分析器!");
  }

  /**
   * @roseuid 3D9BAEF9029F
   */
  public void initAA() {
    //创建缓冲工厂
    this.csbFactory = new ConcreteScanBufferFactory();
    //创建字符串扫描对象
    scaner = new Scaner(this);
    //创建pre处理对象
    pretreatment = new Pretreatment(SourceFile, this);
    //创建关键字表对象
    keyWordTable = new KeyWordTable(ReserveFile);
    //创建对象种别码表对象
    classIdentity = new ClassIdentity(ClassFile);
    System.out.println("[INFOR]已经初始化词法分析器!");
  }

  /**
   * @roseuid 3D9BAF12022D
   */
  public void setFilesPath(String reserveFileName, String ClassFileName,
                           String sourceFileName, String outputFileName) {
    //创建文件对象
    SourceFile = new java.io.File(sourceFileName);
    //创建文件对象
    ReserveFile = new java.io.File(reserveFileName);
    //创建文件对象
    ClassFile = new java.io.File(ClassFileName);
    //创建文件对象
    OutputFile = new java.io.File(outputFileName);

    //如果文件已经存在,先删除,然后建立新文件
    if (OutputFile.exists()) {
      OutputFile.delete();
    }
    try {
      OutputFile.createNewFile();
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
    try {
      //创建文件随机读取对象
      java.io.RandomAccessFile ROutputFile = new java.io.RandomAccessFile(this.
          OutputFile, "rw");
      //提示信息
      ROutputFile.write("//////////////////////////////////////////////////\n".
                        getBytes());
      ROutputFile.write( ("//JAccidenceAnalyser version " + getVersion() +
                          " design by yellowicq//\n").getBytes());
      ROutputFile.write("//java词法分析器//////////////\n".getBytes());
      ROutputFile.write("//使用java语言开发////////////////////////////////////\n".
                        getBytes());
      ROutputFile.write("//////////////////////////////////////////////////\n".
                        getBytes());
      ROutputFile.write("词法分析结果如下:\n".getBytes());
      //关闭文件流
      ROutputFile.close();
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }

  }

  /**
   * @roseuid 3D9BAFAB0089
   */
  public void startAA() {
    //从预处理开始词法分析
    this.pretreatment.startPretreatment();
  }

  /**
   * @roseuid 3D9BB0B40383
   */
  public void outputAccidence(String outputString) {
    //把分析出来的单词写入文件
    outputString = "\n[第" + this.pretreatment.fileRow + "行]\n" + outputString;
    try {
      //创建文件随机读取对象
      java.io.RandomAccessFile ROutputFile = new java.io.RandomAccessFile(this.
          OutputFile, "rw");
      //移动指针到文件末尾
      ROutputFile.seek(ROutputFile.length());
      //Start appending!
      ROutputFile.write(outputString.getBytes());
      //关闭文件流
      ROutputFile.close();

    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
    //将分析的单词结果输出到终端
    System.out.print(outputString);
  }

  /**
   * @roseuid 3D9BB0CE02C2
   */
  public void controlThread() {
    //控制扫描器启动扫描
    scaner.controlThread();
  }

  //获得版本号
  public String getVersion() {
    return "1.0";
  }
}

⌨️ 快捷键说明

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