• Keine Ergebnisse gefunden

Abgabe​ ​und​ ​Hinweise

N/A
N/A
Protected

Academic year: 2022

Aktie "Abgabe​ ​und​ ​Hinweise "

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Institut​ ​für​ ​Systemsoftware Übungen​ ​zu​ ​Übersetzerbau​ ​WS​ ​2017/2018 

Prof.​ ​Dr.​ ​H.​ ​Mössenböck,​ ​DI​ ​Leopoldseder,​ ​DI​ ​Eisl Übung​ ​3 

Letzter​ ​Abgabetermin:​ ​Mittwoch,​ ​22.11.2017,​ ​18​00​​ ​Uhr 

Syntaxanalyse​ ​(Parser) (24​ ​Punkte)

Implementieren Sie die Syntaxanalyse für ​MicroJava im rekursiven Abstieg. Verwenden Sie dabei das vorgegebene Gerüst in der Klasse ​ParserImpl​. 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 ​ParserImpl.parse() definiert, mit der man​ ​die​ ​Analyse​ ​startet.

Nutzen 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 ​ScannerImpl übergeben wird (bereits​ ​programmiert).

Für die Implementierung sollen ausschließlich die Subklassen im ​ssw.mj.impl Package verändert werden.

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, ssw.mj.impl und ​ssw.mj.symtab​), also auch alle​ ​Klassen​ ​der​ ​Angabe.​ ​Die​ ​Verzeichnis-Struktur​ ​muss​ ​erhalten​ ​bleiben.

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

JUnit​ ​Testfälle:​ ​ScannerTest,​ ​ParserTest

Referenzen

ÄHNLICHE DOKUMENTE

Konsultieren Sie die Datei anschließend mit F9 erneut und prüfen Sie durch geeignete Fragestellung mit phrase('Satz',…, ob die Grammatik korrekt arbeitet. f) Erweitern Sie

Von der Endung -7m ist das schlies- sende a, namentlich wenn es nicht durch ein anderes Suffix geschützt wurde, abgefallen oder in einen anderen Vo&lt;'al geschwächt

mal sõna algusest, asub nõrk kaasrõhk (1) ühel või mitmel eelneval silbil (harilikult rütmiliselt igal teisel silbil pearõhulisest silbist lugedes): ka^talo^g, u^nive^rsite^t,

pearõhule järgnevatel silpidel on tavaliselt nullrõhk, kuid võib ka esineda nõrk kaasrõhk rütmiliselt nullrõhuga vaheldudes: bi^bli^o^te^ä^ri ^ 1 'bibliotekaar'..

Imperfekti konjunktiiv asendatakse siin sageli skulle- konj unktiiviga (konditsionaaliga), vt. 6) Imperfekti konjunktiiv võib kirjakeeles esineda va­. hel kaudses kõnes ja vastab

CondFact = Expr

[r]

[r]