Geschrieben um 15:40 am 24.09.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Gibt es einen Compiler-Switch, ein Debug-Verb oder ein extra Tool mit dem ich mein Spiel (entweder den resultierenden Z-Code oder den Source Code) nach doppeldeutigen Nouns[1] überprüfen kann? Schön wäre als Ausgabe eine Liste der doppeldeutigen Namen und den dazugehörigen Objekten, die ich dann einerseits auf Richtigkeit überprüfen kann und andererseits als Todo-Liste hernehmen kann, um die Disambiguisierung zu implementieren. [1]: Also Nouns, die bei mehr als einem Objekt in der name property vorkommen. |
Geschrieben um 01:33 am 25.09.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Mischa:
Nicht, dass ich wüsste. Aber die Abfrage ist auch nicht so super-aufwendig; allerdings muss man etwas die Treppe runter in Richtung Wörterbuch-Keller, wo es unbequem zugehen kann. Ich habe mal auf die Schnelle eine Check-Routine geschrieben, die in etwa das macht, was Dir vorschwebt ... allerdings nur oberflächlich getestet. Wenn Du das Beispiel komplett in Deinen Code kopierst, kannst Du mit dem Befehl #SYNCHECK die Prüfung starten. Allerdings klappt das nur mit Vokabeln, die in der name-Property der Objekte stehen. (Wenn über parse_name geparst wird, klappt das Ermitteln des Vokabel-Objekt-Kontextes nicht so einfach, was auch schon der Libcheck in GerX auf abenteuerliche Weise zu umgehen versucht.)
|
Geschrieben um 07:08 am 25.09.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Danke, das sieht sehr vielversprechend aus! :-) |
Geschrieben um 13:20 am 25.09.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | In der Zeile
stand bis eben noch i anstatt j, das habe ich im Beispiel oben jetzt korrigiert. Es soll natürlich nicht die Vokabel selbst (hier i), sondern die Dictionary-Parameter-Bits (hier j) geprüft werden, genauer Bit Nr. 7. |
Geschrieben um 21:19 am 07.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Endlich hab' ich mal die Zeit gefunden, deinen syncheck auszuprobieren! Funktioniert einwandfrei. Das Einzige, was ihn noch besser machen würde, wäre das Ausgeben der Objektvariablen (zusätzlich zur Nummer), aber ich fürchte, das bekommt man aus dem kompilierten Z-Code nicht mehr raus, oder? |
Geschrieben um 23:30 am 07.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Mischa:
Wenn man Infix mit -X aktiviert, kommt man an alle internen Symbole von Inform ran. Das bläht aber natürlich auch den Code auf. (Ich habe Infix nie nützlich gefunden.) Also, hier eine printing rule für Objektsymbole:
Wenn man aus den Zahlen auf Objekte schließen möchte, kann man I6 auch mit der Option -j laufen lassen. Dann werden einem alle Objekte mit numerischer Id aufgelistet, allerdings wird dabei nicht das interne Symbol ausgegeben, sondern der short name, der im Objektkopf steht. Die Objekte stehen aber in derselben Reihenfolge, in der sie im Quelltext auftauchen. |