• Keine Ergebnisse gefunden

Syntaxanalysator (Parser) (24 Punkte) Implementieren Sie den Syntaxanalysator für

N/A
N/A
Protected

Academic year: 2022

Aktie "Syntaxanalysator (Parser) (24 Punkte) Implementieren Sie den Syntaxanalysator für"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Institut für Systemsoftware Übungen zu Übersetzerbau WS 2012/2013

Prof. Dr. H. Mössenböck, DI M. Löberbauer, DI L. Stadler Übung 3

Letzter Abgabetermin: Mittwoch, 07.11.2012, 1800 Uhr

Syntaxanalysator (Parser) (24 Punkte)

Implementieren Sie den Syntaxanalysator für MicroJava im rekursiven Abstieg. Verwenden Sie dabei das vorgegebene Gerüst in der Klasse Parser. Jede Regel der Grammatik (siehe MicroJava Grammatik auf der Übungshomepage) muss durch eine eigene Methode vertreten sein, welche die Top-Down-Erkennung realisiert.

Die Schnittstelle des Parsers nach außen ist durch die Methode Paser.parse() definiert, mit der man die Analyse startet.

Benutzen Sie die drei in der Vorlesung vorgestellten Methoden scan(), check() und error(). Zur Fehlerbehandlung verwenden Sie vorläufig die „Panic Mode“-Strategie, d.h. Sie brechen die Syntaxanalyse beim ersten Fehler ab, nachdem Sie eine entsprechende Fehlermeldung über die Klasse Errors ausgegeben haben.

Im Vorlesungs-Skriptum sind alle Methoden der Klasse Parser als static deklariert. In der Übung verwenden wir dynamische Methoden, zB um die JUnit-Testfälle zu vereinfachen. Daher muss ein Objekt der Klasse Parser angelegt werden, dem im Konstruktor der Scanner übergeben wird (bereits programmiert).

Abgabe und Hinweise

Die Abgabe der Übungen muss elektronisch erfolgen. Geben Sie folgende Dateien ab:

 Elektronisch in das Repository: Alle Quellcode-Dateien, die zum Ausführen des Compilers benötigt werden (Packages ssw.mj, ssw.mj.codegen und ssw.mj.symtab), also auch alle Klassen der Angabe. Die Verzeichnis-Struktur muss erhalten bleiben.

 svn://ssw.jku.at/2012W/UB/k<MatrNr>/branches/UE3

JUnit Testfälle: ScannerTest, ParserTest

Referenzen

ÄHNLICHE DOKUMENTE

CondFact = Expr

CondFact = Expr

a) Geben  Sie  den  Satz  mit  der  minimalen  Anzahl  von  Terminalsymbolen  an,  den  man 

http://ssw.jku.at/Teaching/Lectures/UB/UE/2009/MicroJava.txt. a) Wie lang ist der kürzeste Satz in MicroJava, der mindestens einen Type und ein Statement enthält? Geben Sie

[r]

a) Wie lang (in Terminalsymbolen) ist der kürzeste Satz in MicroJava, der mindestens ein VarDecl enthält? Geben Sie ein Beispiel für einen Satz dieser Länge

[r]

Zeigen Sie dabei sowohl alle Umformungen, die Sie an der Grammatik vornehmen, als auch die Berechnung der einzelnen Zustände (wie in der VO gezeigt).. Beachten Sie außerdem die