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 Kurzname: HPSDF | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Diese Syntaxbeschreibung basiert auf der SDF-Version 4.7. 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:
case-sensitive cat-id completion correction-state digits generation lower-case manual-release odd-possible path-completion separators special-characters temporary-file underscore user-id version wildcard-constr wildcards | case-sens cat compl corr dig gen low man odd path-compl sep spec temp-file under user vers wild-constr wild |
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 kennzeichnen garantierte bzw. vorgeschlagene Abkürzungen der Schlüsselwörter. | GUIDANCE-MODE = *YES | |||||||||||||||||||||||||||||||||||
= | Das Gleichheitszeichen verbindet einen Operandennamen mit den dazugehörenden Operandenwerten. | GUIDANCE-MODE = *YES | |||||||||||||||||||||||||||||||||||
< > | 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 Default-Wert eines Operanden. | GUIDANCE-MODE = *NO | |||||||||||||||||||||||||||||||||||
/ | Der Schrägstrich trennt alternative Operandenwerte. | NEXT-FIELD = *NO / *YES | |||||||||||||||||||||||||||||||||||
(...) | Runde Klammern kennzeichnen Operandenwerte, die eine Struktur einleiten. | ,UNGUIDED-DIALOG = *Y ES (...) / *NO | |||||||||||||||||||||||||||||||||||
[ ] | Eckige Klammern kennzeichnen struktureinleitende Operandenwerte, deren Angabe optional ist. Die nachfolgende Struktur kann ohne den einleitenden Operandenwert angegeben erden. | SELECT = [*BY-ATTRIBUTES](...) | |||||||||||||||||||||||||||||||||||
Einrückung | Die Einrückung kennzeichnet die Abhängigkeit zu dem jeweils übergeordneten Operanden. |
| |||||||||||||||||||||||||||||||||||
| | Der Strich kennzeichnet zusammengehörende Operanden einer Struktur. Sein Verlauf zeigt Anfang und Ende einer Struktur an. Innerhalb einer Struktur können weitere Strukturen auftreten. Die Anzahl senkrechter Striche vor einem Operanden entspricht der Strukturtiefe. |
| |||||||||||||||||||||||||||||||||||
, | 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 Operandenwerten kann eine Liste gebildet werden. Ist (n) angegeben, können maximal n Elemente in der Liste vorkommen. Enthält die Liste mehr als ein Element, muss sie in runde Klammern eingeschlossen werden. | 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 garantierter Aliasname des Kommando- bzw. Anweisungsnamens. | HELP-SDF Kurzname: HPSDF |
Datentypen
Datentyp | Zeichenvorrat | Besonderheiten | ||||||
alphanum-name | A...Z 0...9 $, #, @ | |||||||
cat-id | A...Z 0...9 | maximal 4 Zeichen; darf nicht mit der Zeichenfolge PUB beginnen | ||||||
command-rest | beliebig | |||||||
composed-name | A...Z 0...9 $, #, @ Bindestrich Punkt Katalogkennung | alphanumerische Zeichenfolge, die in mehrere durch Punkt oder Bindestrich getrennte Teilzeichenfolgen gegliedert sein kann. Ist auch die Angabe eines Dateinamens möglich, so kann die Zeichenfolge mit einer Katalogkennung im Format :cat: beginnen (siehe Datentyp filename). | ||||||
c-string | EBCDIC-Zeichen | ist in Hochkommata einzuschließen; der Buchstabe C kann vorangestellt werden; Hochkommata innerhalb des c-string müssen verdoppelt werden | ||||||
date | 0...9 Strukturkennzeichen: Bindestrich | Eingabeformat: jjjj-mm-tt
| ||||||
device | A...Z 0...9 Bindestrich | Zeichenfolge, die maximal 8 Zeichen lang ist und einem im System verfügbaren Gerät entspricht. In der Dialogführung zeigt SDF die zulässigen Operandenwerte an. Hinweise zu möglichen Geräten sind der jeweiligen Operandenbeschreibung zu entnehmen. | ||||||
fixed | +, - 0...9 Punkt | Eingabeformat: [zeichen][ziffern].[ziffern]
muss mindestens eine Ziffer, darf aber außer dem Vorzeichen maximal 10 Zeichen (0...9, Punkt) enthalten | ||||||
filename | A...Z 0...9 $, #, @ Bindestrich Punkt | Eingabeformat: :cat: wahlfreie Angabe der Katalogkennung; Zeichenvorrat auf A...Z und 0...9 eingeschränkt; max. 4 Zeichen; ist in Doppelpunkte einzuschließen; voreingestellt ist die Katalogkennung, die der Benutzerkennung laut Eintrag im Benutzerkatalog zugeordnet ist. $user. wahlfreie Angabe der Benutzerkennung; Zeichenvorrat ist A...Z, 0...9, $, #, @; max. 8 Zeichen; darf nicht mit einer Ziffer beginnen; $ und Punkt müssen angegeben werden; voreingestellt ist die eigene Benutzerkennung.
datei Datei- oder Jobvariablenname; kann durch Punkt in mehrere Teilnamen gegliedert sein: name1[.name2[...]] datei ist max. 41 Zeichen lang, darf nicht mit $ beginnen und muss mindestens ein Zeichen aus A...Z enthalten. | ||||||
filename (Forts.) |
# oder @ als erstes Zeichen kennzeichnet je nach Systemparameter TEMPFILE temporäre Dateien und Jobvariablen. datei(nr) Banddateiname nr: Versionsnummer; Zeichenvorrat ist A...Z, 0...9, $, #, @. Klammern müssen angegeben werden. gruppe Name einer Dateigenerationsgruppe (Zeichenvorrat siehe unter „datei“) (*abs) absolute Generationsnummer (1..9999); * und Klammern müssen angegeben werden. (+rel) (-rel) relative Generationsnummer (0..99); Vorzeichen und Klammern müssen angegeben werden. | |||||||
integer | 0...9, +, - | + bzw. - kann nur erstes Zeichen (Vorzeichen) sein. | ||||||
name | A...Z 0...9 $, #, @ | darf nicht mit einer Ziffer beginnen. | ||||||
partial-filename | A...Z 0...9 $, #, @ Bindestrich Punkt | Eingabeformat: [:cat:][$user.][teilname.]
teilname wahlfreie Angabe des gemeinsamen ersten Namensteils von Dateien und Dateigenerationsgruppen in der Form: name1.[name2.[...]] namei siehe filename. Das letzte Zeichen von teilname muss ein Punkt sein. Es muss mindestens einer der Teile :cat:, $user. oder teilname angegeben werden. | ||||||
posix-filename | A...Z 0...9 Sonderzeichen | Zeichenfolge, die maximal 255 Zeichen lang ist. Besteht entweder aus einem oder zwei Punkten, oder aus alphanumerischen Zeichen und Sonderzeichen; Sonderzeichen sind mit dem Zeichen \ zu entwerten. Nicht erlaubt ist das Zeichen /. Muss in Hochkommata eingeschlossen werden, wenn alternative Datentypen zulässig sind, Separatoren verwendet werden oder das erste Zeichen ?, ! bzw. ^ ist. Zwischen Groß- und Kleinschreibung wird unterschieden. | ||||||
posix-pathname | A...Z 0...9 Sonderzeichen Strukturkennzeichen: Schrägstrich | Eingabeformat: [/]part1[/.../partn] maximal 1023 Zeichen; muss in Hochkommata eingeschlossen werden, wenn alternative Datentypen zulässig sind, Separatoren verwendet werden oder das erste Zeichen ?, ! bzw. ^ ist. | ||||||
product-version | A...Z 0...9 Punkt Hochkomma | wobei m, n, s und o jeweils eine Ziffer und a ein Buchstabe ist. Ob Freigabe- und/oder Korrekturstand angegeben werden dürfen oder ob sie angegeben werden müssen, bestimmen Zusätze zu dem Datentyp (siehe Tabelle 3, Zusätze without-corr, without-man, mandatory-man und mandatorycorr). product-version kann in Hochkommata eingeschlossen werden, wobei der Buchstabe C vorangestellt werden kann. Die Versionsangabe kann mit dem Buchstaben V beginnen. | ||||||
structured-name | A...Z 0...9 $, #, @ Bindestrich | alphanumerische Zeichenfolge, die in mehrere durch Bindestrich getrennte Teilzeichenfolgen gegliedert sein kann; erstes Zeichen: A...Z oder $, #, @ | ||||||
text | beliebig | Das Eingabeformat ist den jeweiligen Operandenbeschreibungen zu entnehmen. | ||||||
time | 0...9 Strukturkennzeichen: Doppelpunkt | Angabe einer Tageszeit | ||||||
vsn |
|
| ||||||
x-string | Sedezimal: 00...FF | ist in Hochkommata einzuschließen; der Buchstabe X muss vorangestellt werden; die Anzahl der Zeichen darf ungerade sein. | ||||||
x-text | Sedezimal: 00...FF | ist nicht in Hochkommata einzuschließen; der Buchstabe X darf nicht vorangestellt werden; die Anzahl der Zeichen darf ungerade sein. |
Zusätze zu Datentypen
Zusatz | Bedeutung | ||||||||||||||||||||
x..y unit | beim Datentyp integer: Intervallangabe
| ||||||||||||||||||||
x..y special | bei den übrigen Datentypen: Längenangabe Bei den Datentypen catid, date, device, product-version, time und vsn wird die Längenangabe nicht angezeigt.
| ||||||||||||||||||||
with -compl | Erweitert die Angabemöglichkeiten für einen Datentyp. Bei Angaben zu dem Datentyp date ergänzt SDF zweistellige Jahresangaben der Form jj-mm-tt zu:
| ||||||||||||||||||||
-low | Groß- und Kleinschreibung wird unterschieden. | ||||||||||||||||||||
-path-compl | Bei Angaben zu dem Datentyp filename ergänzt SDF die Katalog- und/oder die Benutzerkennung, falls diese nicht angegeben werden. | ||||||||||||||||||||
-under | 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- Platzhalter | 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 | Teilqualifizierte Angabe eines Namens. | ||||||||||||||||||||
Ende | 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, a) wenn sx kürzer oder genauso lang wie sy ist:
b) wenn sx länger als sy ist:
| ||||||||||||||||||||
<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-Syntaxbeschreibung "). | ||||||||||||||||||||
-s | Ersetzt alle Zeichenfolgen, die der angegebenen Zeichenfolge s nicht entsprechen. Das Minuszeichen darf nur am Beginn der Zeichenfolge stehen. Innerhalb der Datentypen filename bzw. partial-filename kann die negierte Zeichenfolge -s genau einmal verwendet werden, d.h., -s kann einen der drei Namensteile cat, user oder datei ersetzen. | ||||||||||||||||||||
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- Platzhalter | 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 enthalten ist. Die Ausdrücke [!s] und [!cx-cy] können kombiniert werden zu [!s1cx-cys<sub>y</sub>s2] | ||||||||||||||||||||
-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 | Entspricht der teilqualifizierten Angabe eines Namens in der Auswahlzeichenfolge. | ||||||||||||||||||||
Ende | 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 der Auswahlzeichenfolge ausgewählt wird; n = <integer> | ||||||||||||||||||||
Zuordnung der Platzhalter zu entsprechenden Platzhaltern in der Auswahlzeichenfolge: In der Auswahlzeichenfolge werden alle Platzhalter von links nach rechts aufsteigend nummeriert (globaler Index). Gleiche Platzhalter in der Auswahlzeichenfolge werden zusätzlich von links nach rechts aufsteigend nummeriert (platzhalter-spezifischer Index). In der Konstruktionsangabe können Platzhalter auf zwei, sich gegenseitig ausschließende Arten angegeben werden:
Bei Konstruktionsangaben sind folgende Regeln zu beachten:
Beispiele:
1Punkt 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. | ||||||||||||||||||||
-dig | Der Datentyp name erlaubt keine Ziffern. | ||||||||||||||||||||
-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: ; = ( ) < > Ë (also Strichpunkt, Gleichheitszeichen, runde Klammer auf und zu, Größerzeichen, Kleinerzeichen und Leerzeichen) | ||||||||||||||||||||
-spec | Der Datentyp name erlaubt keine Sonderzeichen. | ||||||||||||||||||||
-temp-file | 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 Musterzeichen enthalten. | ||||||||||||||||||||
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 in Hochkommata eingeschlossen werden. | ||||||||||||||||||||
casesensitive | Bei Angaben zu den Datentypen command-rest bzw. text wird Groß- und Kleinschreibung unterschieden. Das gilt auch für Angaben, die nicht in Hochkommata eingeschlossen sind. |