Vergleichsoperatoren
ARexx unterstützt drei Arten von Vergleichen:
- Exakte Vergleiche - der Vergleich erfolgt zeichenweise
- Zeichenfolgenvergleich - führende Leerzeichen werden ignoriert,
an die kürzere Zeichenfolge werden Leerzeichen angefügt
- Numerische Vergleiche - die Operanden werden auf der Basis der
Voreinstellung für Numeric Digits in ein internes numerisches Format umgewandelt; anschließend wird
ein arithmetischer Vergleich ausgeführt
Vergleiche ergeben stets einen booleschen Wert. Die Ziffern 0
und 1 dienen zur Darstellung der booleschen Werte "false" und "true" ("falsch" und
"wahr"). Wenn ein boolescher Operand erwartet wird, führt die Verwendung eines anderen Wertes als
0 oder 1 zu einem Fehler. Als boolescher Wert wird auch jede Zahl akzeptiert, die 0 oder 1 äquivalent ist,
z.B. 0.000 oder 0.1E1.
Mit Ausnahme der Operatoren für exakte Gleichheit (==) und
exakte Ungleichheit (Tilde==) bestimmen alle Vergleichsoperatoren dynamisch, ob ein Zeichenfolgenvergleich oder
ein numerischer Vergleich auszuführen ist. Ein numerischer Vergleich erfolgt, wenn beide Operanden gültige
Zahlen sind. Andernfalls werden die Operanden als Zeichenfolgen verglichen.
Alle Vergleiche haben die Priorität 3. Tabelle 3-3 zeigt
eine Liste der zulässigen Vergleichsoperatoren.
Tabelle 3-3. Vergleichsoperatoren
|
Operator
|
Operation
|
Modus
|
|
==
|
Exakte Gleichheit
|
Exakt
|
|
~==
|
Exakte Ungleichheit
|
Exakt
|
|
=
|
Gleichheit
|
Zeichenfolge/Numerisch
|
|
~=
|
Ungleichheit
|
Zeichenfolge/Numerisch
|
|
>
|
Größer als
|
Zeichenfolge/Numerisch
|
|
>=oder ~<
|
Größer als oder gleich
|
Zeichenfolge/Numerisch
|
|
<
|
Kleiner als
|
Zeichenfolge/Numerisch
|
|
<= oder ~>
|
Kleiner als oder gleich
|
Zeichenfolge/Numerisch
|
Logische (Boolesche) Operatoren
ARexx definiert die vier logischen Operationen NICHT, UND, ODER
und Exklusiv-ODER. Alle diese Operationen benötigen boolesche Operanden und ergeben ein boolesches Resultat.
Der Versuch, mit anderen als booleschen Operanden eine logische Operation auszuführen, führt zu einem
Fehler. Tabelle 3-4 zeigt eine Liste der zulässigen logischen Operatoren.
Tabelle 3-4. Logische Operatoren
|
Operator
|
Priorität
|
Operation
|
|
~
|
8
|
Logisches NICHT (Umkehrung)
|
|
&
|
2
|
Logisches UND
|
|
|
|
1
|
Logisches ODER
|
|
^oder &&
|
1
|
Logisches Exklusiv-ODER
|
Sonderzeichen
Einige Interpunktionszeichen besitzen innerhalb von ARexx eine
spezielle Bedeutung, wie Tabelle 3-5 veranschaulicht.
Tabelle 3-5. Sonderzeichen
|
Sonderzeichen
|
Definition
|
|
(:) Doppelpunkt
|
Ein Doppelpunkt, dem ein Symbol-Token (ein alphanumerisches
Zeichen oder . ! ? $) vorangestellt ist, definiert eine Sprungmarke in einem Programm.
|
|
() Klammern
|
Klammern werden in Ausdrücken dazu verwendet, Operatoren
und Operanden in Unterausdrücken zusammenzufassen und so die normalen Prioritätswerte der betreffenden
Operatoren aufzuheben. Eine öffnende Klammer dient auch zur Kennzeichnung eines Funktionsaufrufs innerhalb
eines Ausdrucks. Ein Symbol oder eine Zeichenfolge, worauf unmittelbar eine öffnende Klammer folgt, definiert
einen Funktionsnamen. Innerhalb einer Anweisung muß die Anzahl öffnender und schließender Klammern
jeweils gleich sein.
|
|
(;) Semikolon
|
Das Semikolon dient als Endezeichen einer Anweisung. Wenn
Sie mehrere kurze Anweisungen haben, die in eine Zeile passen, werden diese durch Semikolons voneinander getrennt.
|
|
(,) Komma
|
Das Komma dient als Fortsetzungszeichen am Zeilenende für
Anweisungen, die in mehrere Zeilen aufgeteilt wurden, und als Trennzeichen zwischen Argumentausdrücken innerhalb
eines Funktionsaufrufs.
|