AW: [Allegro] 'ik,x' und '#ik,x A' [war: Absturz von A99]
Fischer, Thomas
fischer at sub.uni-goettingen.de
Mi Apr 6 11:04:35 CEST 2011
Hallo Herr Eversberg,
wenn ich das richtig sehe, stimmt zumindest meine Vermutung, dass die i/I und v/V-Konstrukte mit *derselben* Variablen vergleichen, nicht die eine mit #uxy und die andere mit #cc.
Das andere bedeutet aber, das in der Beschreibung
#i Indikator-Aktion : hiermit kann man auf bestimmte Zeichen an bestimmten Positionen reagieren. Der Befehl bezieht sich immer auf die Kategorie #cc (also die zuletzt benutzte, -Ø 10.2.6.2). Zu beachten ist, daß diese innerhalb von Unterprogrammen konstant gleich der zuletzt vor dem Aufruf des UP benutzten Kategorie ist. Für die Überprüfung von Zeichen im aktuellen Arbeitstext gibt es den Manipulationsbefehl "Indikatorprüfung" (-Ø 10.2.6.3).
der letzte Satz nicht korrekt ist, und auch
vk,x Zeichenvergleich. Das Zeichen an der Position k (= 1...255) des Arbeitstextes wird verglichen mit
Vk,x dem Zeichen x. Wenn sein ASCII-Code kleiner ist als x (bzw. größer), wird in der Zeile weitergearbeitet, andernfalls wird der Arbeitstext nicht ausgegeben, d.h. die Befehlszeile abgebrochen.
so nicht stimmt.
Sehe ich das recht?
Mit freundlichen Grüßen
Thomas Fischer
> Stimmt, da hatte ich's in der Eile glatt verdreht, obwohl
> ich's aus dem Quelltext korrekt ersehen hatte. Da kann man
> mal wieder sehen ...
>
> Immerhin haben wir dank Allers' gründlicher Testung die
> experimentelle Untermauerung, daß es so klappt, wie es der
> Quelltextautor intendierte.
>
> Im Quelltext wird für die i- und v/V-Aktionen jeweils eine
> Variable curr_kat (current kategory) hergenommen, das ist die
> Adresse des Feldes, und d.h. seines noch unmanipulierten
> Inhalts, das in der betr.
> Zeile am Anfang genannt ist. (Mit #ch ist das anders,
> dahinter steckt eine Variable curr_head (current heading),
> und die wird mit einem leeren String initialisiert, dann
> passiert nix.) Diese Variable, und damit kommen wir auch
> wieder zu Fischers Absturz- Malaise, wird beim Programmstart
> aber nicht initialisiert, und das kann sich dann mal so und
> mal anders oder gar nicht auswirken. Dies wurde nun
> gerichtet, das korrigierte a99 liegt bereit unter ftp.
>
> Diese Verbesserung kam gerade rechtzeitig vor Freigabe der
> Klassenbibliothek, nebenbei gesagt, die ihrer Bedeutung
> entsprechend noch tadelloser sein sollte als alles andere (so
> man das Wort denn steigern kann).
>
> B.E.
Mehr Informationen über die Mailingliste Allegro