Es gilt folgende Metasyntax:
Symbol | Bedeutung |
:= | Definition |
< > | SDF-Datentyp |
m..n | Wertebereich |
... | Wiederholung |
/ | Alternativangaben |
[ ] | optionale Angabe |
Für Variablennamen und Variablenteilnamen in SDF-P werden in der Kommandosyntax die SDF-Datentypen <composed-name> und <structured-name> verwendet. Die tatsächlich von SDF-P überprüfte Syntax ist aber gegenüber diesen Datentypen eingeschränkt und soll deshalb hier näher beschrieben werden.
Ein Variablenname (composed-variable-name) in SDF-P setzt sich zusammen aus einem oder mehreren Strukturnamen (structured-variable-name), die durch Punkte voneinander getrennt sind. Durch den Punkt wird jeweils der Name einer Unterstruktur gekennzeichnet. Leerzeichen innerhalb eines Variablennamens sind nicht zugelassen.
composed-variable-name:=structured-variable-name[.structured-variable-name] |
Länge
mindestens 1 Zeichen, höchstens 255 Zeichen
Beispiel
ABCDEFGHIJKLMNO#l A#l A123#l BCD.XYZ
Ein Strukturname besteht aus einem Variablenteilnamen (vtn), der von einem # und einem Indexnamen gefolgt sein kann, falls er ein Listenelement oder ein Arrayelement bezeichnet.
structured-variable-name := vtn [# [indexname]] |
Länge Variablenteilname Zeichenvorrat | mindestens 1 Zeichen, höchstens 20 Zeichen (vtn): alle Buchstaben (A, ... Z) |
Erstes Zeichen Konventionen | Buchstabe Zeichenfolge SYS am Beginn des Variablennamens ist reserviert |
Beispiel
TELEFON-VORWAHL#l KUNDE#NUMMER
Falls der Strukturname ein Listenelement oder ein Arrayelement bezeichnet, so folgt ihm ein # mit einem Indexnamen.
indexname = <integer -2147483648..2147483647> / vtn |
Beispiel
TELEFON#223366 TELEFON#INDEX
Elementnamen
Bei Elementnamen muss unterschieden werden zwischen Arrayelementen, Listenelementen und Strukturelementen.
Generell gilt für Elementnamen die Syntax, wie unter <composed-variable-name> beschrieben.
Listenelementnamen
Listenelementnamen bestehen an der Benutzerschnittstelle aus folgenden Komponenten:
Name der Liste (<composed-variable-name 1..253>)
#
optional: Elementnummer (<integer 1..2147483647>)
Arrayelementnamen
Arrayelementnamen setzen sich zusammen aus folgenden Komponenten:
Name des Arrays (<composed-variable-name 1..253>)
# (Kennzeichen für Arrayelemente, wenn weitere Zeichen folgen)
Arrayindex (<integer -2147483648..2147483647>)
Der Listenindex sowie der Arrayindex können auch über eine einfache Variable bezeichnet werden, die einen Integer-Wert im gültigen Wertebereich enthält.
SDF-P analysiert die Zeichenfolge, die im Elementnamen auf das Aggregatsymbol # folgt: Ist das erste Zeichen eine Ziffer oder ein Bindestrich (= Minuszeichen), wird die Zeichenfolge als Integer-Wert interpretiert, also als direkte Angabe des Index.
Ist das erste Zeichen ein Buchstabe, wird die Zeichenfolge als Variablenname interpretiert. SDF-P sucht dann eine Variable mit dem angegeben Namen. Dieser Name muss eine einfache Variable bezeichnen, die mit einem gültigen Integer-Wert initialisiert sein muss. Ist das nicht der Fall, wird eine Fehlermeldung ausgegeben. Wenn die Variable einen gültigen Integer-Wert enthält, wird dieser Wert im Arrayindex bzw. im Listenindex eingesetzt und auf das so bezeichnete Aggregatelement zugegriffen.
Beispiel 1
KONTO ist ein einfaches Array. Der Arrayindex kann im Arrayelementnamen direkt angegeben werden:
KONTO#123
Der Arrayindex kann aber auch über eine Variable, INDEX, geliefert werden:
/INDEX = 236 /SHOW-VAR KONTO#INDEX
Die Zeichenfolge INDEX wird als Variablenname erkannt und der Inhalt der Variablen ausgewertet. Dementsprechend gibt das Kommando SHOW-VARIABLE den Inhalt des Arrayelements KONTO#236 aus. Allerdings muss das Arrayelement KONTO#236 schon vorher deklariert und initialisiert sein.
Beispiel 2
Die Angabe des Arrayindex wird immer als Integer-Wert ausgewertet. Daher bezeichnen die folgenden Angaben das gleiche Element des Arrays KONTO:
KONTO#123 KONTO#0123 KONTO#00123 KONTO#NUMMER
Voraussetzung für die Angabe KONTO#NUMMER ist, dass eine Variable NUMMER deklariert und mit dem Wert 123 initialisiert ist.
Strukturelementnamen
Strukturelementnamen setzen sich aus folgenden Komponenten zusammen:
Name der Struktur (<composed-variable-name 1..253>)
„.“ (als Kennzeichen für Strukturen)
Teilname des Elements (<structured-variable-name 1..20>)
Beispiel
Folgende Variablen sind Elemente der Struktur ANSCHRIFT:
ANSCHRIFT.NAME ANSCHRIFT.VORNAME ANSCHRIFT.TITEL ANSCHRIFT.STRASSE