[Allegro] Konvertierungen für Register

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Dez 14 16:20:44 CET 2011


Am 14.12.2011 12:58, schrieb Thomas Berger:
>
> In Ihrem Beispiel ist allerdings ja auch noch das "U",
> das eine implizite Umcodierung ausloest,

Kleine Korrektur: U und u lösen keine Umcodierung aus.
Das wäre kontraproduktiv, denn falls dabei das Nichtsortierzeichen
verschwände, könnte das  u  nichts mehr ausrichten.

	
Bei dem Befehl

#u1 U y2 p{'|1'} P{8}

wird also das # nicht in dem Sinne aktiv, daß es die p-Befehle auslöst,
sondern y2 kommt ihm zuvor und löst die q-Befehle aus, danach findet
keine weitere Umcodierung statt. Sie können in diesem Fall genausogut
! an den Anfang setzen, das ist egal.

Noch anders gesagt: # und ! treten erst dann in Aktion, wenn die ganze 
Zeile abgearbeitet ist, wobei der Arbeitstext ja noch verlängert
werden kann (durch p- und P-Direktbefehle), und diese Teile sollen
i.d.R. einbezogen werden in die Umcodierung.
Tritt aber ein y auf, wird dieses genau in dem Moment ausgeführt und
löst die p- bzw. q-Befehle aus (y1 bzw. y2) und blockiert zugleich
die nachfolgende Umcodierung per p oder q. Danach werden die dem y
noch folgenden Manipulationen ausgeführt.
Mit y0 verhindert man jegliche Umcodierung.
Ausnahmefall: Die längenrelevanten Manipulationsbefehle (im Beispiel
tritt keiner auf) wie bn oder En oder in,m erzwingen, bevor sie
ausgeführt werden, die Umcodierung per p bzw. q, denn sonst kommt
u.U. nicht das raus, was man sich erwünscht. Zugleich wird dann aber
nachfolgendes y blockiert - auch das dürfte i.d.R. der Erwartung
entsprechen.

B.E.



Mehr Informationen über die Mailingliste Allegro