Class UTable
In: actiontables.rb
Parent: Object

Diese Klasse repräsentiert die Übergangstabelle eines (S)LR-Automaten. Sie arbeitet mit Automaten im DEA-Format. Jedem Zustand wird ein repräsentativer Name der Form K[i] mit i € |N zugeordnet. Wenn kein Übergang zu einem anderem Zustand vorhanden ist, wird dies durch "-" dargestellt.

Methods

getnamehs   getsymbole   gettabelle   new   to_s  

Public Class methods

Der Konstruktor erwartet einen (S)LR-Automaten im DEA-Format. Die Übergangstabelle wird intern in einem zweidimensionalem Hash berechnet

Public Instance methods

Liefert den Hash mit den Namen der Zustände. Der Schlüssel ist der Name eines Zustandes der Form K[i], wobei i eine natürliche Zahl ist. Diesem Schlüssel wird ein Zustand als String (Zustand.to_s) zugeordnet. Bsp.: [ "K1" => "{ [S -> a .+ b],[S -> a .* b] }" ]

Liefert einen Hash, in dem jedem Symbol, dem Schlüssel, der zugehörige String zugeordnet wird. Bsp.: a = Symb.new("A")

      [ a => "A" ]

Liefert die Übergangstabelle des Automaten. Bei der Tabelle handelt es sich um einen Hash, der als Schlüssen einen Zustandsnamen hat (sie dazu getnamehs) und der dazugehörige Wert ist ebenfalls ein Hash. Dieser Hash stellt eine Zeile der Tabelle dar. Der Schlüssel ist hier der String eines Symbols, dem ein Name eines Zustand als Wert zugeordnet wird. Beispiel für solch eine Zeile wäre [ "a" => "K2", "b" => "K1"]. Sollte für ein Symbol kein Übergang vorhanden sein, wird ein "-" zurückgegeben.

Liefert die Übergangstabelle als formatierten String. Die Ausgangszustände stehen Links in der Tabelle als Zeilen. Die Übergangssymbole stehen Oben als Spalten, die Zielzustände sind die Einträge in dieser Matrix. Sollte kein Zielzustand vorhanden sein, wird dies durch ein "-" dargestellt.

[Validate]