Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
- Hinweis zu
TestPrintWriter :
Der TestPrintWriter wurde so erweitert, dass die Ausgabe
nicht nur für den Vergleich gespeichert wird, sondern
zusätzlich auf der Konsole ausgegeben wird.
- geändert am 12.11.2002
Änderung der Testfälle:
Da in der UE 4 bereits für alle Kontextbedingungen, die anhand der
Informationen aus der Symbolliste geprüft werden können,
Fehlermeldungen ausgegeben werden sollen, sind zwei Testmethoden
aus ParserTest fehlerhaft (testShortestProgram ,
testUndefName ). Sie erwarten keine Fehlerausgabe, obwohl in
den MicroJava-Programmen die void main () -Methode fehlt.
Daher gibt es hier ein
Update der Datei ssw/mj/test/ParserTest.java .
- hinzugefügt am 18.11.2002
Anmerkung zur Folgefehlerbehandlung::
Die Fehlermeldung für die fehlende main -Methode wird,
wie oben erwähnt, nur in den beiden Testfällen
testShortestProgram und testUndefName
tatsächlich ausgegeben. In den Testfällen testNoProgName
und testWrongStart fehlt die main -Methode
zwar auch, aber die entsprechende Fehlermeldung wird "geschluckt", weil sie
weniger als 3 Symbole vom letzten Fehler entfernt ist (= Unterdrückung
von Folgefehlern).
- hinzugefügt am 18.11.2002
Korrektur Methode Parser.parse :
Falls beim Parsen gleich im allerersten Symbol ein Scannerfehler auftritt,
greift Parser.Errors.synError (das aus Scanner.error
aufgerufen wird) auf Parser.la zu. Das ist aber noch
gleich null , wodurch ein NullPointerException
geworfen wird. Um das zu vermeiden, sollte man in der Methode
Parser.parse vor dem ersten Aufruf von scan()
folgende Zeile einfügen:
...
la = new Token(1, 1);
scan();
Program();
...
- hinzugefügt am 18.11.2002
Semantische Fehler bei Aufgabe 2:
Hier sollen nur jene semantischen Fehler gemeldet werden, die man alleine
mittels der Symbolliste feststellen kann. Es sollen
keine Änderungen an Methodensignaturen (=
Rückgabewert, Methodenname und Parameter) vorgenommen werden, die nur
zur Überprüfung von Kontextbedingungen notwendig sind, aber nicht
bereits mit der Symbolliste implementiert wurden.
Insbesondere sollen die Methoden Expr , Term ,
Factor und Designator vorläufig noch keine
Rückgabe liefern (= void ), sowie Statement
keine Parameter erwarten.
- hinzugefügt am 19.11.2002
Fehlende Tab.closeScope()-Aufrufe in SymTabTest:
In SymTabTest gibt es eine Methode setUp , die von JUnit VOR
JEDEM Testfall ausgeführt wird. Dort wird Tab.init
aufgerufen und somit sichergestellt, dass jeder Testfall mit genau der
gleichen, frisch initialisierten Symbolliste arbeitet. Daher kann man die
closeScope -Aufrufe am Ende von testInsertGlobal
sowie testInsertLocal auch weglassen.
In Tab.init soll, wie in der UE-Stunde besprochen,
Tab.level mit -1 initialisiert werden.
|