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

📄 reservedtable.java

📁 java版本的词法分析器
💻 JAVA
字号:
//:LexicalAnalyser:ReservedTable.java
//the class provide the service of the string being a keyWord or not
package LexicalAnalyser;

import java.util.*;
import java.io.*;

public class ReservedTable{

  private Hashtable KWHash;
  private File ReserveFile;
  private int TMP_BUFFER_SIZE = 30;
  private FileReader resFileReader; // reader of the ReserveFile
 
 
 
  public ReservedTable(File ReserveFile) {
    System.out.println("ReservdeTable is setting up");
    this.ReserveFile=ReserveFile;
  }

  
  public boolean isKeyWord(String inw) {
    String resWord;
    /*use interface Enumeration to locate the Hashtable*/
    for(Enumeration e=this.KWHash.elements();e.hasMoreElements();){
      resWord=(String)e.nextElement();
      if (resWord.equalsIgnoreCase(inw)) {
        return true;
      }
    }
    return false;
  }

 
  public void initKeyWordTable() {
    KWHash = new Hashtable(); //use the Hashtable to save the information
    int intLength;//
    char[] chrBuffer = new char[TMP_BUFFER_SIZE];
    String resWord;
    int resCounter = 0;
    try {
      if (ReserveFile.exists()) { //if the file  exists
        //create the file component
        resFileReader = new java.io.FileReader(ReserveFile);
        //write into the Hashtable
        while ( (intLength = resFileReader.read(chrBuffer)) != -1) {
          resCounter++;
         
          resWord = String.valueOf(chrBuffer).trim();
          this.KWHash.put(Integer.toString(resCounter), resWord);
        }

        
        resFileReader.close();
      }
      else {
        System.err.println("[ERROR]保留字文件不存在!");
      }
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
  }
}


⌨️ 快捷键说明

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