Ergänzung zu Allegro Classico

Thomas Berger ThB at gymel.com
Mi Mai 30 17:07:58 CEST 2001


Lieber Herr Fischer,

> >#10 dcn p'#11' >A acn #zz 0
> >
> >ist etwas uebersichtlicher und tut dasselbe.
> 
> Ich habe die Version =cn+- gewählt, weil das die einzige war, die ich
> gefunden hatte, die nach einer Zuweisung noch etwa ausführt. Da ich ja
> gerade cn lösche, ist es nie mit dem Arbeitstext identisch und kein Abbruch
> möglich. ("#11" sind einfach Buchstaben, keine Kategorie. Wenn das ginge,
> wäre ich ja fein raus!)
> Auf ihre zugegebenermaßen elegantere Version bin ich nicht gekommen, weil
> ich angenommen hatte, das Allegro die Zeile der Reihe nach abarbeitet, also
> in
>     #10 dcn p'#11' >A acn #zz 0
> die Variable cn erst belegt, nachdem A aufgerufen wurde. Auch war mir nicht
> klar, daß hinter dem Unterprogrammaufruf das Präfix noch da, der
> Kategorietext aber weg ist. Ob daß nun eher ein Bug oder ein Feature ist,
> sei dahingestellt.

So hatte ich es nicht betrachtet.

Jedenfalls ist der "Trick", die Zuweisung acn als allerletztes
auszufuehren, denn danach wird die Verarbeitung ja abgebrochen
(in der Variante "Abbruch, aber Erfolg"). Sie hatten mit der
Konstruktion =cn+- einen noch trickigeren Trick gewaehlt: 
Bedingte Zuweisung mit unmoeglicher Abbruchbedingung.

Was dann im einzelnen passiert, ist mir auch nicht so
recht klar:

Die Bearbeitung der Kategorie inklusive Zuweisung an #ucn
passiert jedenfalls als erstes, es muss ja entschieden
werden, ob Praefixe etc. ausgefuehrt werden duerfen.

Dann wird das indirekte Praefix-Unterprogramm abgearbeitet.
Im Unterprogramm ist die unmodifizierte Kategorie #10 als
#cc zugreifbar, evtl. ein Schmutzeffekt, weil der
Arbeitstext leer ist (Sie hatten ja demonstriert, dass
ein direktes Praefix p'#11' ja normalerweise dem Arbeitstext
im Unterprogramm vorangestellt ist?). Ich meine mich
aber zu erinnern, dass #cc stets der unmodifzierte
Kategorietext ist (auch wenn ich Ihnen vorhin vielleicht
vorschnell zugestimmt habe).


> >#10 dcn p'#11' e3 >A acn
> >
> >#(A
> >#ucn
> >#usb e1
> >#cc
> >#)A
> >
> Diese Beispiel verstehe ich nicht: das geht doch nur wenn ke="" gesetzt
> ist, oder (und in diesem Fall: s.o.)?

Vergessen Sie's: Ich wollte auf die diversen e...'s hinaus.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro