Class Parser
In: Parser.rb
Parent: Object

Diese Klasse repräsentiert den Parser.

Ihre Attribute sind:

  • @atable -> Die Aktionstabelle aus dem Automaten
  • @utable -> Die Übergangstabelle aus dem Automaten
  • @start -> Der Startzustand des Automaten in den Tabellen
  • @symbols -> Alle Symbole als Strings in einem Array

Methods

new   parse   search   to_SB  

Public Class methods

Konstruktor von Parser: Berechnet aus dem Automaten Aktions- und Übergangstabelle, den Startzustans und die Symbole. Diese werden in den jeweiligen Attributen abgelegt.

Parameter:

Public Instance methods

Prüft einen Ausdruck auf Korrektheit im Parser. Sammelt alle Reduktionsschritte und liefert diese zurück.

Parameter:

  • str -> Der Ausdruck der geparst werden soll (Leerzeichen sind nicht nötig!)

Return: -> Ein Array mit Reduktionsitem-Strings (letzte Reduktion zuerst) -> nil fals der Ausdruck nicht akzeptiert wird

Sucht in einem Teilbaum rekursiv den ersten Knoten von Rechts dessen Name mit einem bestimmten String übereinstimmt und keine Soehne hat.

Parameter:

  • knoten -> Der Wurzelknoten des Teilbaums
  • symb -> Der Name des gesuchten Knotens

Return: -> Der erste Knoten von rechts der die Bedingungen erfüllt -> nil (nur in der Rekursion) wenn der Knoten zwar keine Söhne hat aber

   der Name nicht mit dem Symbol übereinstimmt

Erzeugt zu einem Ausdruck den Syntaxbaum. Dabei wird das Ergebnis von parse(str) genutzt

Parameter:

  • str -> Der Ausdruck der geparst und als Syntaxbaum zurückgegeben werden soll
       Return:
    

-> Syntaxbaum der beginnend mit dem Startsymbol die Ableitungen bis hin zum Ausdruck enthält -> Nil falls der Ausdruck nicht geparst werden kann

[Validate]