Steuerung des logischen Ablaufs |
Dieses Konstrukt setzt if-body nur dann, wenn die Bedingung condition erfüllt ist. Wenn ein optionales else-body spezifiziert wurde, dann wird diese nur gesetzt, wenn die Bedingung condition falsch ist.
<macro|x|<if|<visibility-flag>|x>>
ist das Makro-Argument x dann und nur dann erreichbar, wenn <visibility-flag> wahr ist. Das kann aber vorher nicht getestet werden. Bestimmte Editier-Operationen, wie Suchen oder Rechtschreibprüfung kann eine falsche Bestimmung der Erreichbarkeit dazu führen, dass der Cursor in nicht erreichbare Positionen gesetzt wird oder dass bestimmte Konstrukte ignoriert werden. Wir wollen dieses Verhalten des Editors verbessern. Bis dahin ist es besser, Bedingungen zu vermeiden.
<assign|kalt|<macro|x|<with|color|blue|x>>>
<assign|heiss|<macro|x|<with|color|red|x>>>
<assign|adaptive|<macro|x|<compound|<if|<summer>|heiss|kalt>|x>>>
Diese Befehle sind äquivalent zu
<if|cond-1|body-1|⋯<if|cond-n|body-n>>
<if|cond-1|body-1|⋯<if|cond-n|body-n|else-body>>
Solange die Bedingung condition erfüllt ist, wird body ausgeführt. Beispielsweise erzeugt der folgende das Makro
<
assign
|
count
|
<
macro
|
from
|
to
|
<
with
|
i
|
from
|
<\concat|
<while|<less|i|to>|i,
<assign|i|<plus|i|1>>>
to
aus <count|1|50> dies:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50