[Allegro] A99-Exportskripte
Fischer, Thomas
fischer at sub.uni-goettingen.de
Fr Jul 15 10:50:28 CEST 2011
Liebe KollegInnen,
ich bin dabei, für meine Datenbanken ein XML-Exportformat für solr zu schreiben.
Wie üblich bei neuen Projekten wird man da massiv mit den Eigenheiten von Allegro konfrontiert.
1. Das zentrale Problem ist, dass (im Gegensatz zu allen anderen mir bekannten Skriptsprachen) syntaktische Fehler (z.B. Tippfehler) nicht zu einem Abbruch des Skriptes (möglichst mit Fehlermeldung) führen, sondern mit schwer vorhersehbaren (und damit umgekehrt schwer analysierbaren) Ergebnissen durchlaufen. Beispiele: ##ufk statt #ufk; v2.9 statt v2,9; #) statt #)L.
2. Damit zusammenhängend ist das Debugging der Exportskripte extrem zeitaufwändig, es gibt auch keine Unterstützung wie z.B. ein zeilenweises Durcharbeiten des Skriptes.
3. Die Exportsprache ist durch ihre GOTO-Konstrukten extrem fehleranfällig (bzw. fehlertolerant, siehe 1):
- Sprünge nach +b oder +#30 springen auch aus Unterprogrammen heraus
- Sprünge nach +#30 und Unterprogrammaufrufe (!) springen nur nach folgenden (dann aber beliebigen) Marken.
- "Unterprogramme" sind nur Paare von Sprungmarken
4. Ersetzung funktioniert bei ersten vier Buchstaben nicht, daher
#uLa p'XXXX' ,", ,_," y1 b4 dLa =La
5. Ich habe das schon früher moniert und noch immer nicht begriffen:
In meiner Exportparameterdatei steht im Kopfbefehl
#t{'<!-- Dateianfang -->' C}
#t{'<add>' C}
daraus ergibt sich
<add>
<!-- Dateianfang -->
ohne Zeilenwechsel dahinter. Warum?
(Siehe auch http://sun250.biblio.etc.tu-bs.de/pipermail/allegro/2007-January/025268.html als hilfreichste Bemerkung zu dieser Frage.)
6. Ob Skriptfehler oder A99-Eigenschaft (das gibt/gab(?) es auch bei Avanti, ich fange das da durch eine geeignete Konstruktion ab) :
Manchmal erscheinen vor den tatsächlichen Export Teile der Parameterdatei oder mysteriöse Ausgaben (z.B.: field name="'ë'">'ì )
Ich denke, dass sich daran nicht leicht etwas ändern lässt, aber vielleicht könnte man mal eine Liste dieser Eigenheiten erstellen, um sie Neulingen zur Verfügung zu stellen und im Zuge der Weiterentwicklung doch das eine oder andere zu verbessern.
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro