Closed felinira closed 9 years ago
Der Compiler soll bei erkannten Fehlern (in der Twee-Datei) diese nicht ignorieren oder ausbessern, sondern mit einer Fehlermeldung abbrechen.
-test der in #63 beschrieben ist
unicode tests sollten ebenso enthalten sein^^
Wir sollten uns Gedanken machen, wie wir das Backend testen. Beim Frontend können wir einfach Tolens/AST/Parsebaum traversieren. Aber bei Zcode geht das nicht. Da könnten wir entweder auch ne Datenstruktur parallel erstellen oder gleich den zcode erst zum Ende aus der Struktur generieren. Aber irgend eine Möglichkeit, da einzuspringen und zu überprüfen, dass das auch das richtige tut, wäre wohl sinnvoll.
gibts nen zcode interpreter, der das adventure nach stdout printet? dann könnte man die ausgabe überprüfen.
Siehe Dumb-Frotz. Wer sich den mal anschauen möchte, das ist damit evtl möglich: http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXoldXfrotz.html
Update: Anscheinend gibt es eine aufgeräumtere Version bei https://github.com/DavidGriffith/frotz/tree/565f4b38dba9ddba647b32fe1c82f25ac7a04e24/src/dumb
Okay, ich habe dfrotz mal gebaut. Dafür einfach https://github.com/DavidGriffith/frotz/ clonen und
make dfrotz
machen. Der printet alles nach stdout, quasi optimal. @Drakulix können wir den irgendwie bei uns einbinden? Problem wäre, das Ding ist unter GPL (nicht LGPL), also entweder ist dann unser ganzes Projekt unter GPL oder wir müssen uns das extern laden.
naja wir können die binary als prozess ausführen, sollte ja kein thema sein? das kann die rust stdlib auf jeden fall
ein paar sachen die failen sollten: -twee datei hat keine Start-passage -ein passagename kommt mehrmals vor -passagename enthält |, $, eckige klammern, <> -das gleiche sollte bei passagenamen geschehen -falsch verschachtelte formatierungen, z.b. ''fett//fettundkursiv''// -nicht existierende macros usw..
wäre gut, wenn wir das noch irgendwie bis do einbauen könnten.
Ich kümmer mich drum, auch wenn ich grad nicht ganz sagen kann, was der Lexer alles kann und nicht kann… Da ist noch viel im argen…
ich hab den Text und die Übersicht hier mal aktualisiert. Damit klarer ist was uns noch fehlt. Wenn die Liste abgearbeitet ist, sollten wir das hier endlich schließen können. (es können gerne noch Sachen hinzugefügt werden, aber falls uns wirklich etwas fehlen sollte, dann geht das auch später.)
Tests Es sollen Testcases (twee Files) für den Compiler erstellt werden, inklusive Spezifikation welches Ergebnis erwartet wird (beispielsweise Compiliert/Compiliert nicht/Compiliert mit Warning)
Die internen Tests wurden in #161 von der Milestone-Aufgabe getrennt (in der Hoffnung diese bald schließen zu können)
Da in der Aufgabe nicht genau spezifiziert ist wieviele Dateien erstellt werden sollen mach ich ein Vorschlag: Jedes "Thema" sollte nach Möglichkeit in mind. einem Test vorkommen der scheitert und in mindestens einem der erfolgreich ist.
Passage / Verlinkung
Macro
If/Else/ElseIf
Formatierung
Expressions
Bei den Tests die kompilieren sollen, wäre es gut, wenn gleichzeitig angegeben wird welche ausagabe die Richtige wäre. z.b. sollte in etwa sowas stehen wie: