[Allegro] Flex-Syntax: weitere Befehle in gleicher Zeile nach perform
Anando Eger
a.eger at aneg-dv.de
Mi Jan 16 14:33:04 CET 2008
Liebe Listenleserinnen und -leser, lieber Herr Eversberg,
in der xperform.rtf steht u.a.:
...
Sobald aber ein Befehl return erreicht wird, geht es mit der
nächsten Zeile weiter, die auf perform folgt.
...
Das reale Verhalten scheint davon abzuweichen:
Es wird auch in verschiedenen mitgelieferten Flex-Dateien
(z.B. xgrep.flx) perform in Form "if ... perf name; ..."
verwendet.
Da diese Form so nicht beschrieben ist, habe ich etwas
experimentiert und beobachtet:
- mit "\" abgetrennte, auf perform folgende Befehle werden,
wie eigentlich nicht erwartet, abgearbeitet
- von nach "if" auf perform folgende, mit ";" getrennte
Befehle werden auch abgearbeitet, wenn sie in der
Einzahl sind (also es wird nur genau ein Befehl richtig
behandelt)
Reproduzierbar ist das mit folgendem Beispiel-Flex:
---------------------------------------------------------------
perf upmes\mes 2\mes 3 // o.k. (1,2,3)
var "1"
if "0" perf upmes\mes 2\mes 3 // o.k. (2,3)
if "0" perf upmes;mes 2\mes 3 // o.k. (3)
if "1" perf upmes;mes 2\mes 3 // o.k. (1,2,3)
if "1" perf upmes;mes 2;mes 3 // Fehler
end
:upmes
mes 1
return\end
---------------------------------------------------------------
Habe ich das so richtig ermittelt? Und sollte auch die Syntax
if bedingung perf name;befehl1;befehl2; ... auch funktionieren?
Und könnte dann die Doku so geändert werden:
"... Sobald aber ein Befehl return erreicht wird, geht es mit
dem nächsten Befehl weiter, der auf perform folgt ... " ?
Viele Grüße
Anando Eger
-----------------------------------------------------------------------------
Anando Eger Datenverarbeitung
Herr Dipl.-Ing. Anando Eger
Gustav-Voigt-Str. 24
01156 Dresden
Tel.: +49 (0)351 454 1236 http://www.aneg-dv.de
Fax: +49 (0)351 454 1238 mailto:a.eger at aneg-dv.de
-----------------------------------------------------------------------------
Mehr Informationen über die Mailingliste Allegro