Das folgende Beispiel zeigt die Syntaxdarstellung eines Kommandos in einem Handbuch. Das Kommandoformat besteht aus einem Feld mit dem Kommandonamen. Anschließend werden alle Operanden mit den zulässigen Operandenwerten aufgelistet. Struktureinleitende Operandenwerte und die von ihnen abhängigen Operanden werden zusätzlich aufgelistet.
HELP-SDF |
GUIDANCE-MODE = *NO / *YES ,SDF-COMMANDS = *NO / *YES ,ABBREVIATION-RULES = *NO / *YES ,GUIDED-DIALOG = *YES (...) *YES(...) SCREEN-STEPS = *NO / *YES ,SPECIAL-FUNCTIONS = *NO / *YES ,FUNCTION-KEYS = *NO / *YES ,NEXT-FIELD = *NO / *YES ,UNGUIDED-DIALOG = *YES (...) / *NO *YES(...) SPECIAL-FUNCTIONS = *NO / *YES ,FUNCTION-KEYS = *NO / *YES |
Diese Syntaxbeschreibung basiert auf der SDF-Version 4.6A. Die Syntax der SDF-Kommando-/Anweisungssprache wird im Folgenden in drei Tabellen erklärt.
Zu Tabelle 1 : Metasyntax
In den Kommando-/Anweisungsformaten werden bestimmte Zeichen und Darstellungsformen verwendet, deren Bedeutung in Tabelle 1 erläutert wird.
Zu Tabelle 2 : Datentypen
Variable Operandenwerte werden in SDF durch Datentypen dargestellt. Jeder Datentyp repräsentiert einen bestimmten Wertevorrat. Die Anzahl der Datentypen ist beschränkt auf die in Tabelle 2 beschriebenen Datentypen.
Die Beschreibung der Datentypen gilt für alle Kommandos und Anweisungen. Deshalb werden bei den entsprechenden Operandenbeschreibungen nur noch Abweichungen von Tabelle 2 erläutert.
Zu Tabelle 3 : Zusätze zu Datentypen
Zusätze zu Datentypen kennzeichnen weitere Eingabevorschriften für Datentypen. Die Zusätze enthalten eine Längen- bzw. Intervallangabe, schränken den Wertevorrat ein (Zusatz beginnt mit without), erweitern ihn (Zusatz beginnt mit with) oder erklären eine bestimmte Angabe zur Pflichtangabe (Zusatz beginnt mit mandatory). Im Handbuch werden folgende Zusätze in gekürzter Form dargestellt:
cat-id | cat |
Für den Datentyp integer enthält Tabelle 3 außerdem kursiv gesetzte Einheiten, die nicht Bestandteil der Syntax sind. Sie dienen lediglich als Lesehilfe.
Für Sonderdatentypen, die durch die Implementierung geprüft werden, enthält Tabelle 3 kursiv gesetzte Zusätze (siehe Zusatz special), die nicht Bestandteil der Syntax sind.
Die Beschreibung der Zusätze zu den Datentypen gilt für alle Kommandos und Anweisungen. Deshalb werden bei den entsprechenden Operandenbeschreibungen nur noch Abweichungen von Tabelle 3 erläutert.
Metasyntax
Kennzeichnung | Bedeutung | Beispiele |
GROSSBUCHSTABEN | Großbuchstaben bezeichnen Schlüsselwörter (Kommando-, Anweisungs-, Operandennamen, Schlüsselwortwerte) und konstante Operandenwerte. Schlüsselwortwerte beginnen mit *. | HELP-SDF SCREEN-STEPS = *NO |
GROSSBUCHSTABEN in Halbfett | Großbuchstaben in Halbfett | GUIDANCE-MODE = *YES |
= | Das Gleichheitszeichen verbindet einen Operandennamen mit den dazugehörenden Operandenwerten. | GUIDANCE-MODE = *NO |
< > | Spitze Klammern kennzeichnen Variablen, deren Wertevorrat durch Datentypen und ihre Zusätze beschrieben wird (siehe Tabellen 2 und 3). | SYNTAX-FILE = <filename 1..54> |
Unterstreichung | Der Unterstrich kennzeichnet den | GUIDANCE-MODE = *NO |
/ | Der Schrägstrich trennt alternative Operandenwerte. | NEXT-FIELD = *NO / *YES |
(...) | Runde Klammern kennzeichnen Operandenwerte, die eine Struktur einleiten. | ,UNGUIDED-DIALOG = *YES (...) / *NO |
[ ] | Eckige Klammern kennzeichnen struktureinleitende Operandenwerte, deren Angabe optional ist. Die nachfolgende Struktur kann ohne den einleitenden Operandenwert angegeben werden. | SELECT = [*BY-ATTRIBUTES](...) |
Einrückung | Die Einrückung kennzeichnet die Abhängigkeit zu dem jeweils übergeordneten Operanden. | ,GUIDED-DIALOG = *YES (...) *YES(...) SCREEN-STEPS = *NO / *YES |
, | Das Komma steht vor weiteren Operanden der gleichen Strukturstufe. | GUIDANCE-MODE = *NO / *YES ,SDF-COMMANDS = *NO / *YES |
list-poss(n): | Aus den list-poss folgenden | list-poss: *SAM / *ISAM list-poss(40): <structured-name 1..30> list-poss(256): *OMF / *SYSLST(...) / <filename 1..54> |
Kurzname: | Der darauf folgende Name ist ein | HELP-SDF Kurzname: HPSDF |
Tabelle 1: Metasyntax
Datentypen
Datentyp | Zeichenvorrat | Besonderheiten | ||||||||||
alphanum-name | A...Z | |||||||||||
cat-id | A...Z | maximal 4 Zeichen; | ||||||||||
command-rest | beliebig | |||||||||||
composed-name | A...Z | alphanumerische Zeichenfolge, die in mehrere | ||||||||||
c-string | EBCDIC-Zeichen | ist in Hochkommata einzuschließen; | ||||||||||
date | 0...9 | Eingabeformat: jjjj-mm-tt
| ||||||||||
device | A...Z | Zeichenfolge, die maximal 8 Zeichen lang ist | ||||||||||
fixed | +, - | Eingabeformat: [zeichen][ziffern].[ziffern]
muss mindestens eine Ziffer, darf aber außer | ||||||||||
filename | A...Z | Eingabeformat:
:cat: wahlfreie Angabe der Katalogkennung; $user. wahlfreie Angabe der Benutzerkennung; $. (Sonderfall) System-Standardkennung datei Datei- oder Jobvariablenname; i mit Bindestrich beginnen oder enden;
# oder @ als erstes Zeichen kennzeichnet je datei(nr) Banddateiname gruppe Name einer Dateigenerationsgruppe
(*abs) absolute Generationsnummer (1..9999); (+rel) relative Generationsnummer (0..99); | ||||||||||
integer | 0...9, +, - | + bzw. - kann nur erstes Zeichen (Vorzeichen) | ||||||||||
name | A...Z | darf nicht mit einer Ziffer beginnen. | ||||||||||
partial-filename | A...Z | Eingabeformat: [:cat:][$user.][teilname.] :cat: teilname wahlfreie Angabe des gemeinsamen ersten i Das letzte Zeichen von teilname muss ein | ||||||||||
posix-filename | A...Z | Zeichenfolge, die maximal 255 Zeichen lang ist. | ||||||||||
posix-pathname | A...Z | Eingabeformat: [/]part1[/.../partn] i maximal 1023 Zeichen; | ||||||||||
product-version | A...Z |
wobei m, n, s und o jeweils eine Ziffer und a ein product-version kann in Hochkommata | ||||||||||
structured-name | A...Z | alphanumerische Zeichenfolge, die in mehrere | ||||||||||
text | beliebig | Das Eingabeformat ist den jeweiligen | ||||||||||
time | 0...9 | Angabe einer Tageszeit
| ||||||||||
vsn |
|
| ||||||||||
x-string | Sedezimal: | ist in Hochkommata einzuschließen; | ||||||||||
x-text | Sedezimal: | ist nicht in Hochkommata einzuschließen; der |
Tabelle 2: Datentypen
Zusätze zu Datentypen
Zusatz | Bedeutung | |||||||||||||||||||||||
x..y unit x..y special | beim Datentyp integer: Intervallangabe
| |||||||||||||||||||||||
with | Erweitert die Angabemöglichkeiten für einen Datentyp. | |||||||||||||||||||||||
-compl | Bei Angaben zu dem Datentyp date ergänzt SDF zweistellige
| |||||||||||||||||||||||
-low | Groß- und Kleinschreibung wird unterschieden. | |||||||||||||||||||||||
-pathcompl | Bei Angaben zu dem Datentyp filename ergänzt SDF die Katalog- und/oder die Benutzerkennung, falls diese nicht angegeben werden. | |||||||||||||||||||||||
-under | Bei Angaben zu dem Datentyp filename ergänzt SDF die Katalog- und/oder die Benutzerkennung, falls diese nicht angegeben werden. Erlaubt Unterstriche ’_’ bei den Datentypen name und composed-name. | |||||||||||||||||||||||
-wild(n) | Teile eines Namens dürfen durch die folgenden Platzhalter ersetzt werden. n bezeichnet die maximale Eingabelänge bei Verwendung von Platzhaltern. Mit Einführung der Datentypen posix-filename und posix-pathname akzeptiert SDF neben den bisher im BS2000 üblichen Platzhaltern auch Platzhalter aus der UNIX-Welt (nachfolgend POSIX-Platzhalter genannt). Da derzeit nicht alle Kommandos POSIX-Platzhalter unterstützen, kann ihre Verwendung bei Datentypen ungleich posix-filename und posix-pathname zu Semantikfehlern führen. Innerhalb einer Musterzeichenfolge sollten entweder nur BS2000- oder nur POSIX-Platzhalter verwendet werden. Bei den Datentypen posix-filename und posix-pathname sind nur POSIX-Platzhalter erlaubt. Ist eine Musterzeichenfolge mehrdeutig auf einen String abbildbar, gilt der erste Treffer. | |||||||||||||||||||||||
BS2000- | Bedeutung | |||||||||||||||||||||||
* | Ersetzt eine beliebige, auch leere Zeichenfolge. Ein * an erster Stelle muss verdoppelt werden, sofern dem * weitere Zeichen folgen und die eingegebene Zeichenfolge nicht mindestens einen weiteren Platzhalter enthält. | |||||||||||||||||||||||
Punkt am Ende | Teilqualifizierte Angabe eines Namens. Entspricht implizit der Zeichenfolge „./*“, d.h. nach dem Punkt folgt mindestens ein beliebiges Zeichen. | |||||||||||||||||||||||
/ | Ersetzt genau ein beliebiges Zeichen. | |||||||||||||||||||||||
<sx:sy> | Ersetzt eine Zeichenfolge, für die gilt:
(sx oder sy)
(sx oder sy)
sy; Zahlen werden hinter Buchstaben sortiert (A...Z, 0...9)
| |||||||||||||||||||||||
<s1,...> | Ersetzt alle Zeichenfolgen, auf die eine der mit s angegebenen Zeichenkombinationen zutrifft. s kann auch die leere Zeichenfolge sein. Jede Zeichenfolge s kann auch eine Bereichsangabe „sx:sy“ sein (siehe "SDF-Syntaxdarstellung "). | |||||||||||||||||||||||
-s | Ersetzt alle Zeichenfolgen, die der angegebenen Zeichenfolge | |||||||||||||||||||||||
Platzhalter sind in Generations- und Versionsangaben von Dateinamen nicht erlaubt. In Benutzerkennungen ist die Angabe von Platzhaltern der Systemverwaltung vorbehalten. Platzhalter können nicht die Begrenzer der Namensteile cat (Doppelpunkte) und user ($ und Punkt) ersetzen. | ||||||||||||||||||||||||
POSIX- | Bedeutung | |||||||||||||||||||||||
* | Ersetzt eine beliebige, auch leere Zeichenfolge. Ein * an erster Stelle muss verdoppelt werden, sofern dem * weitere Zeichen folgen und die eingegebene Zeichenfolge nicht mindestens einen weiteren Platzhalter enthält. | |||||||||||||||||||||||
? | Ersetzt genau ein beliebiges Zeichen. Ist als erstes Zeichen außerhalb von Hochkommata nicht zulässig. | |||||||||||||||||||||||
[cx-cy] | Ersetzt genau ein Zeichen aus dem Bereich cx und cy ein- schließlich der Bereichsgrenzen. cx und cy müssen einfache Zeichen sein. | |||||||||||||||||||||||
[s] | Ersetzt genau ein Zeichen aus der Zeichenfolge s. Die Ausdrücke [cx-cy] und [s] können kombiniert werden zu [s1c<sub>1</sub>cx-cys<sub>y</sub>s2] | |||||||||||||||||||||||
[!cx-cy] | Ersetzt genau ein Zeichen, das nicht in dem Bereich cx und cy einschließlich der Bereichsgrenzen enthalten ist. cx und cy müssen einfache Zeichen sein. Die Ausdrücke [!cx-cy] und [!s] können kombiniert werden zu [!s1c<sub>1</sub>cx-cys2] | |||||||||||||||||||||||
[!s] | Ersetzt genau ein Zeichen, das nicht in der Zeichenfolge s | |||||||||||||||||||||||
-wild-constr(n) | Angabe einer Konstruktionszeichenfolge, die angibt, wie aus einer zuvor angegebenen Auswahlzeichenfolge mit Musterzeichen (siehe with-wild) neue Namen zu bilden sind. n bezeichnet die maximale Eingabelänge bei Verwendung von Platzhaltern. Die Konstruktionszeichenfolge kann aus konstanten Zeichenfolgen und Musterzeichen bestehen. Ein Musterzeichen wird durch diejenige Zeichenfolge ersetzt, die durch das entsprechende Musterzeichen in der Auswahlzeichenfolge ausgewählt wird. Folgende Platzhalter können zur Konstruktionsangabe verwendet werden: | |||||||||||||||||||||||
Platzhalter | Bedeutung | |||||||||||||||||||||||
* | Entspricht der Zeichenfolge, die durch den Platzhalter * in der Auswahlzeichenfolge ausgewählt wird. | |||||||||||||||||||||||
Punkt am Ende | Entspricht der teilqualifizierten Angabe eines Namens in der Auswahlzeichenfolge. Entspricht der Zeichenfolge, die durch den Punkt am Ende der Auswahlzeichenfolge ausgewählt wird. | |||||||||||||||||||||||
/ oder ? | Entspricht dem Zeichen, das durch den Platzhalter / oder ? in der Auswahlzeichenfolge ausgewählt wird. | |||||||||||||||||||||||
<n> | Entspricht der Zeichenfolge, die durch den n-ten Platzhalter in | |||||||||||||||||||||||
Zuordnung der Platzhalter zu entsprechenden Platzhaltern in der
Bei Konstruktionsangaben sind folgende Regeln zu beachten:
Beispiele:
1)Punkt am Ende des Namens kann Namenskonvention widersprechen (z.B bei vollqualifizierten Dateinamen) | ||||||||||||||||||||||||
without | Schränkt die Angabemöglichkeiten für einen Datentyp ein. | |||||||||||||||||||||||
-cat | Die Angabe einer Katalogkennung ist nicht erlaubt. | |||||||||||||||||||||||
-corr | Eingabeformat: [[C]’][V][m]m.na[’] Angaben zum Datentyp product-version dürfen den Korrekturstand nicht enthalten. | |||||||||||||||||||||||
-gen | Die Angabe einer Dateigeneration oder Dateigenerationsgruppe ist nicht erlaubt. | |||||||||||||||||||||||
-man | Eingabeformat: [[C]’][V][m]m.n[’] Angaben zum Datentyp product-version dürfen weder Freigabe- noch Korrekturstand enthalten. | |||||||||||||||||||||||
-odd | Der Datentyp x-text erlaubt nur eine gerade Anzahl von Zeichen. | |||||||||||||||||||||||
-sep | Beim Datentyp text ist die Angabe der folgenden Trennzeichen nicht erlaubt: ; = ( ) < > 'BLANK' (also Strichpunkt, Gleichheitszeichen, runde Klammer auf und zu, Größerzeichen, Kleinerzeichen und Leerzeichen) | |||||||||||||||||||||||
-tempfile | Die Angabe einer temporären Datei ist nicht erlaubt (siehe #datei bzw. @datei bei filename). | |||||||||||||||||||||||
-user | Die Angabe einer Benutzerkennung ist nicht erlaubt. | |||||||||||||||||||||||
-vers | Die Angabe der Version (siehe „datei(nr)“) ist bei Banddateien nicht erlaubt. | |||||||||||||||||||||||
-wild | Die Datentypen posix-filename bzw. posix-pathname dürfen keine | |||||||||||||||||||||||
mandatory | Bestimmte Angaben sind für einen Datentyp zwingend erforderlich. | |||||||||||||||||||||||
-corr | Eingabeformat: [[C]’][V][m]m.naso[’]Angaben zum Datentyp product-version müssen den Korrekturstand (und damit auch den Freigabestand) enthalten. | |||||||||||||||||||||||
-man | Eingabeformat: [[C]’][V][m]m.na[so][’]Angaben zum Datentyp product-version müssen den Freigabestand enthalten. Die Angabe des Korrekturstands ist optional möglich, wenn dies nicht durch den Zusatz without-corr untersagt wird. | |||||||||||||||||||||||
-quotes | Angaben zu den Datentypen posix-filename bzw. posix-pathname müssen |
Tabelle 3: Zusätze zu Datentypen