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 + -
显示快捷键?