transhash.java
来自「Pasc+Java 这是一个国外的随机自动机*(RAM)一个学习用的程序」· Java 代码 · 共 70 行
JAVA
70 行
import java.util.*;
/**
* Die Klasse TransHash erweitert die Klasse java.util.Hashtable um die
* Funktionalität, eine Übersetzungstabelle für Tokenobjekte
* zu verwalten.
*
* @author Michael Wels
* @since 12.06.2002
* @version 1.02
*/
public class TransHash extends Hashtable
{
// Zaehler fuer die Variablennamen (a1, a2, ...)
private int index = 0;
private String bezeichnung;
/**
* Der Konstruktor übernimmt einen String, der als Teilwort der Bezeichner
* im letztlich erzeugten Javacode auftaucht.
* @param String
*/
TransHash(String newBezeichnung) {
bezeichnung = newBezeichnung;
}
/**
* Diese Methode regelt den Zugriff auf die übersetzten Variablennamen.
* Ist dem aktuellen Namen schon eine Übersetzung zugewiesen, so wird diese
* zurückgeliefert, andernfalls wird eine neue erstellt, zugewiesen und
* dann anschlie遝nd zurückgeliefert.
*
* @param Token
* @return Token
*/
public Token get(Token schluessel) {
// erneutes Vorkommen dieses Variablennamens
if (super.get(schluessel.toString()) != null) {
return (Token)super.get(schluessel.toString());
// erstes Vorkommen dieses Variablennamens
} else {
Token zwischenspeicherToken = new Token(bezeichnung + "" + index++, schluessel.getLineNumber(), schluessel.getType());
super.put(schluessel.toString(), zwischenspeicherToken);
return zwischenspeicherToken;
}
}
/**
* Diese Methode stellt einen einfachen Accessor für die Elemente des Hashs
* dar.
*
* @param Token
* @return Token
*/
public Token getFunktion(Token schluessel) {
return (Token)super.get(schluessel.toString());
}
/**
* Diese Methode dient zum Einfügen eines Elements in den Hash.
*
* @param String, String
*/
public void set(String schluessel, String wert) {
super.put(schluessel, new Token(wert,0,0));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?