[Allegro] Kategorie-Wh-Zeichen ";"

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Dez 23 08:17:32 CET 2011


Am 22.12.2011 17:06, schrieb Thomas Berger:
>
> Meine Interpretation: Irgendwas ist bei "~" schiefgegangen
> und Herr Oberfell hat das Problem heruntergekocht auf
> den Fall mit der expliziten Zuweisung an #300;
> Der ist nun in der Welt. Wenn "~" immer schon das ";"
> ausgelassen haette, haette Herr Oberfell das Problem
> wahrscheinlich nicht entdeckt, nun ist es aber so und
> Herumwerkeln an "~" kann nicht die einzige oder wichtigere
> Massnahme sein.
>
>
Das sehen wir auch so.
Zunächst haben wir, damit die beobachteten Unzulänglichkeiten erst
mal weg sind, folgendes gemacht:

Es gibt eine glob. Variable Apgnb, Deklaration in allegro.hpp
Diese war bis jetzt in der Klassenbibliothek ohne Bedeutung, sie stammte
aus der DOS-Version, wo sie die Prog.nmmer enthielt: '1' = Presto usw.
Jetzt wird gesetzt:
Apgnb='1'   // a99
Apgnb='2'   // acon

Nur bei '1' wird in record.cpp beim Einordnen eines Feldes das
Wiederholungszeichen mit der CFG verglichen und dort nicht
vorkommende Zeichen zurückgewiesen. In acon werden beim Einlesen
aus einer Datei also alle genommen!

Beim Einordnen eines Feldes mit ~ als Wh.Zeichen wird das nächste
unbelegte aus der CFG entnommen. Dabei werden nun ; < = > ? übergangen.
Sätze, die solche Zeichen schon enthalten, werden aber ohne
Fehlermeldung eingelesen und der Export klappt auch. Verluste sind
damit ausgeschlossen.

Wenn a99 einen Satz aus Datei einliest, werden die Wh-Zeichen nicht
geprüft, auch nicht bei Einordnen per FLEX, nur bei manueller Eingabe.
(intern wird vor dem Einlesen Apgnb='2' gesetzt, danach wieder '1')

Insbes. das Oberfell-Problem dürfte damit vom Tisch sein.

Geändert sind die Quelldateien record.cpp und avjob.cpp (und das noch
nicht freie Modul für a99/alcarta)

B.E.



Mehr Informationen über die Mailingliste Allegro