# File actiontables.rb, line 20 def initialize(dea) # Alle Zustände in einem Hash speichern und ihnen einen "ordentlichen" Namen # nach folgendem Muster zuweissen: K[i] wobei i eine Nummer ist. # Eine Tablle ist ein Hash, mit Namen von Zuständen (das ist der Key), denen die Übergänge # zugewiesen werden. Ein Übergang ist ein Key (das Symbol) dem der neue Zustand (Name) als Wert # zugewiesen wird i = 1; @namehs = Hash.new @tabelle = Hash.new @zusths = Hash.new dea.zustaende_each{ |zust| @namehs["K#{i}"] = zust.to_s @zusths["K#{i}"] = zust @tabelle["K#{i}"] = Hash.new("-") i +=1 } @uSymbole = Hash.new a = Symb.new("#") @uSymbole[a] = a.to_s @uSymbole.merge!(dea.getGrammar.getNonterminals.invert) @uSymbole.merge!(dea.getGrammar.getTerminals.invert) dea.uebergaenge_each{|konf| # Jede Konfiguration wird aufgespalten und die Information wird wie oben beschrieben abgelegt @tabelle[@namehs.invert[konf[0].to_s]][konf[1].to_s] = @namehs.invert[konf[2].to_s] #@uSymbole[konf[1]] = konf[1].to_s } end