Ein Ausdruck legt fest, wie aus gegebenen Werten ein neuer Wert berechnet wird. Ein Ausdruck entsteht durch die Verknüpfung von Basistermen mit Operatoren.
Ein Basisterm kann sein:
<c-string>
<x-string>
boolesche Konstante mit ON, TRUE, YES für die boolesche Eins und mit OFF, FALSE, NO für die boolesche Null
Name einer S-Variablen
Funktionsaufruf einer Builtin-Funktion
Nach den verwendeten Operatoren werden unterschieden:
String-Ausdrücke
arithmetische Ausdrücke
Vergleichsausdrücke
logische Ausdrücke
Mit SDF-P-BASYS sind nur Vergleichsausdrücke und logische Ausdrücke (nur Negation) möglich. Die weiteren Ausdrücke sind im Handbuch „SDF-P“ [34] beschrieben.
Ein Vergleichsausdruck hat die Form:
( ausdruck1 operator ausdruck2 )
ausdruck 1 bzw. ausdruck 2 können beliebige Ausdrücke sein (Basisterm oder ein zulässiger Ausdruck), sie müssen aber vom gleichen Typ sein. Anderenfalls wird eine Fehlermeldung ausgegeben und die SDF-P-Fehlerbehandlung angestoßen.
Als operator ist möglich:
LT | bzw. | < | kleiner als |
LE | bzw. | <= | kleiner gleich |
EQ | bzw. | =oder== | gleich |
NE | bzw. | <> | nicht gleich |
GT | bzw. | > | größer als |
GE | bzw. | >= | größer gleich |
Der gesamte Ausdruck ist in Klammern einzuschließen. Operatoren müssen in Leerzeichen eingeschlossen werden.
Das Ergebnis eines Vergleichs hat den Typ BOOLEAN, ist also TRUE oder FALSE.
Der Vergleich von Zeichenketten erfolgt byteweise von links nach rechts. Der Vergleich bezieht sich dabei auf die Stellung der Zeichen im EBCDI-Code. Die erste Ungleichheit bestimmt das Ergebnis. Weitere Zeichen werden nicht mehr untersucht. Wird bis zum letzten Zeichen des kürzeren Operanden kein Unterschied festgestellt, so ist der längere Operand größer. Operanden sind gleich, wenn sie sich in keinem Zeichen unterscheiden.
Beispiel
A = ’ABC’ | ||
B = ’ABCDE’ | ||
(B > A) |
| Ergebnis TRUE |
(’A’ = X’C1’) |
| Ergebnis TRUE |
(B > ’1’) |
| Ergebnis FALSE |
C = (A = B) |
| Variable C hat FALSE |
Ein logischer Operator verknüpft Ausdrücke vom Typ BOOLEAN. Mit SDF-P-BASYS ist nur der logische Operator NOT verfügbar, der als Ergebnis die Negation eines Ausdrucks liefert:
NOT( ausdruck1 )
Beispiel
A = ’AB’ |
| |
B = ’ABCD’ | ||
(B > A) |
| Ergebnis TRUE |
NOT(B > A) |
| Ergebnis FALSE |
Hinweis
Die Bezeichnung „string-ausdruck“, die als Parameterwert in Builtin-Funktionen verwendet wird, kann folgende Werte annehmen:
eine in Hochkommata eingeschlossene Zeichenfolge (<c-string>)
Name einer Variablen, die eine Zeichenkette enthält (<composed-name>)
ein Ausdruck, der als Ergebnis eine Zeichenkette zurückliefert
Beispiel
/JV-NAME = ’MY-JV’ |
| |
/MY-VAR = JV(’JV-NAME’) |
| Wert der Jobvariablen JV-NAME |
/MY-VAR = JV(JV-NAME) |
| Wert der Jobvariablen MY-JV |
/MY-VAR = JV(’&JV-NAME’) |
| Wert der Jobvariablen MY-JV |
/MY-VAR = JV(JV(JV-NAME)) |
| Wert der Jobvariablen, deren Name in der Jobvariablen MY-JV abgelegt ist |