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

📄 accidenceanalyser.java

📁 实现算法与界面设计的完全分离。很好的封装自己的词法分析程序
💻 JAVA
字号:


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;

 public AccidenceAnalyser() {
 System.out.println("已经建立词法分析器!");
 }

 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("已经初始化词法分析器!");
 }
 
 public void setSourFile(java.io.File SourFile){
	 SourceFile=SourFile;
 }

 public void setFilesPath(String reserveFileName, String ClassFileName) {
 //创建文件对象
 //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);
 }*/
 }

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

 public void outputAccidence(String outputString) {
 //把分析出来的单词写入文件
 outputString = "\n[第" + this.pretreatment.fileRow + "行]\n" + outputString;
 //将分析的单词结果输出到终端
 System.out.print(outputString);
 }

 public void controlThread() {
 //控制扫描器启动扫描
 scaner.controlThread();
 }
 //获得版本号
 public String getVersion() {
 return "1.0";
 }
}

⌨️ 快捷键说明

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