Diese Syntaxbeschreibung basiert auf der SDF-Version V4.8. Die Syntax der SDF-Kommando-/Anweisungssprache wird im Folgenden in drei Tabellen erklärt.
Zu Tabelle "Metasyntax" :
In den Kommando-/Anweisungsformaten werden bestimmte Zeichen und Darstellungsformen verwendet, deren Bedeutung in Tabelle "Datentypen" erläutert wird.
Zu Tabelle "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 der Tabelle beschriebenen Datentypen.
Die Beschreibung der Datentypen gilt für alle Kommandos und Anweisungen. Deshalb werden bei den entsprechenden Operandenbeschreibungen nur noch Abweichungen von der Tabelle erläutert.
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 | case-sens |
Für den Datentyp integer enthält Tabelle "Zusätze zu Datentypen" 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 die Tabelle 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 der Tabelle erläutert.
Metasyntax
Kennzeichnung | Bedeutung | Beispiele | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GROSS-BUCHSTABEN | Großbuchstaben bezeichnen Schlüsselwörter (Kommando-, Anweisungs-, Operandennamen, Schlüsselwortwerte) und konstante Operandenwerte. | HELP-SDF SCREEN-STEPS = *NO | |||||||||||||||||||||||||||||||||||
GROSS-BUCHSTABEN 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 = *NO | |||||||||||||||||||||||||||||||||||
< > | Spitze Klammern kennzeichnen Variablen, deren Wertevorrat durch Datentypen und ihre Zusätze beschrieben wird (siehe Tabellen "Datentypen" und "Zusätze zu Datentypen"). | 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 = *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. |
| |||||||||||||||||||||||||||||||||||
| | Der Strich kennzeichnet zusammengehörende Operanden einer Struktur. Sein Verlauf zeigt Anfang und Ende einer Struktur an. |
| |||||||||||||||||||||||||||||||||||
, | 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. | 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 | |||||||
cat-id | A...Z | maximal 4 Zeichen; | ||||||
command-rest | beliebig | |||||||
composed-name | A...Z | alphanumerische Zeichenfolge, die in mehrere durch Punkt oder Bindestrich getrennte Teilzeichenfolgen gegliedert sein kann. | ||||||
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 | Eingabeformat: jjjj-mm-tt
| ||||||
device | A...Z | Zeichenfolge, die maximal 8 Zeichen lang ist und einem im System verfügbaren Gerätetyp entspricht. In der Dialogführung zeigt SDF die zulässigen Operandenwerte an. Hinweise zu möglichen Gerätetypen sind der jeweiligen Operandenbeschreibung zu entnehmen. | ||||||
fixed | +, - | Eingabeformat: [zeichen][ziffern].[ziffern] [zeichen]: + oder - [ziffern]: 0...9 muss mindestens eine Ziffer, darf aber außer dem Vorzeichen maximal 10 Zeichen (0...9, Punkt) enthalten | ||||||
filename | A...Z | Eingabeformat: [:cat:][$user.]{ datei / datei(nr) / | ||||||
:cat: wahlfreie Angabe der Katalogkennung; | ||||||||
$user. wahlfreie Angabe der Benutzerkennung; | ||||||||
$. System-Standardkennung | ||||||||
datei Datei- oder Jobvariablenname; | ||||||||
#datei (Sonderfall) # oder @ als erstes Zeichen kennzeichnet je nach Systemparameter TEMPFILE temporäre Dateien und Jobvariablen. | ||||||||
datei(nr) Banddateiname | ||||||||
gruppe Name einer Dateigenerationsgruppe | ||||||||
gruppe { (*abs) / (+rel) / (-rel) } | ||||||||
(*abs) absolute Generationsnummer (1..9999); | ||||||||
(+rel) relative Generationsnummer (0..99); | ||||||||
integer | 0...9, +, - | + bzw. - kann nur erstes Zeichen (Vorzeichen) sein. | ||||||
name | A...Z | darf nicht mit einer Ziffer beginnen. | ||||||
partial-filename | A...Z | Eingabeformat: [:cat:][$user.][teilname.] :cat: teilname wahlfreie Angabe des gemeinsamen ersten Namensteils von Dateien und Dateigenerationsgruppen in der Form: Das letzte Zeichen von teilname muss ein Punkt sein. | ||||||
posix-filename | A...Z | Zeichenfolge, die maximal 255 Zeichen lang ist. | ||||||
posix-pathname | A...Z | Eingabeformat: [/]part1[/.../partn] maximal 1023 Zeichen; | ||||||
product-version | A...Z | Eingabeformat: [[C]'][V][m]m.naso['] wobei m, n, s und o jeweils eine Ziffer und a ein Buchstabe ist. | ||||||
structured-name | A...Z | alphanumerische Zeichenfolge, die in mehrere durch Bindestrich getrennte Teilzeichenfolgen gegliedert sein kann; | ||||||
text | beliebig | Das Eingabeformat ist den jeweiligen Operandenbeschreibungen zu entnehmen. | ||||||
time | 0...9 | Angabe einer Tageszeit hh: Stunden führende Nullen können jeweils weggelassen werden | ||||||
vsn |
0...9 | a) Eingabeformat: pvsid.folgenummer
| ||||||
0...9 $, #, @ | b) max. 6 Zeichen; | |||||||
x-string | Sedezimal: | ist in Hochkommata einzuschließen; | ||||||
x-text | Sedezimal: | ist nicht in Hochkommata einzuschließen; der Buchstabe X darf nicht vorangestellt werden; |
Zusätze zu Datentypen
Zusatz | Bedeutung | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x..y unit | beim Datentyp integer: Intervallangabe
| ||||||||||||||||||||||||||||||
x..y special | bei den übrigen Datentypen: Längenangabe
| ||||||||||||||||||||||||||||||
with | Erweitert die Angabemöglichkeiten für einen Datentyp. | ||||||||||||||||||||||||||||||
-compl | 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.
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.
| ||||||||||||||||||||||||||||||
-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.
Zuordnung der Platzhalter zu entsprechenden Platzhaltern in der Auswahlzeichenfolge:
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: 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: 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) | ||||||||||||||||||||||||||||||
-spec | Der Datentyp name erlaubt keine Sonderzeichen. | ||||||||||||||||||||||||||||||
-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 Musterzeichen enthalten. | ||||||||||||||||||||||||||||||
mandatory | Bestimmte Angaben sind für einen Datentyp zwingend erforderlich. | ||||||||||||||||||||||||||||||
-corr | Eingabeformat: Angaben zum Datentyp product-version müssen den Korrekturstand (und damit auch den Freigabestand) enthalten. | ||||||||||||||||||||||||||||||
-man | Eingabeformat: 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. | ||||||||||||||||||||||||||||||
case-sensitive | 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. |
Tabelle 3: Zusätze zu Datentypen
Folgezeilen
Anweisungen können sich über mehrere Eingabezeilen erstrecken. Für die Trennung gelten die Konventionen der BS2000-Kommandosprache. Als Trennzeichen wird ein Bindestrich (-) verwendet. Anweisungszeilen können maximal 32763 Zeichen lang sein.
Abkürzungsmöglichkeiten
Die garantierten Abkürzungsmöglichkeiten aller Anweisungen, Operanden und Operandenwerte sind in den Syntaxbeschreibungen der Anweisungen (ab Kapitel "Beschreibung der Anweisungen ") durch halbfette Schreibweise gekennzeichnet. Es können aber auch kürzere Angaben (Abkürzungen bis zur Eindeutigkeit innerhalb einer Struktur) gemacht werden.
Um Doppeldeutigkeiten durch Funktionserweiterungen in kommenden Versionen vorzubeugen und die Lesbarkeit anderen Benutzern zu ermöglichen, sollten in Prozeduren Abkürzungen vermieden werden.
Verhalten bei formalen Eingabefehlern
Unter formalen Eingabefehlern versteht man sowohl Verstöße gegen die Anweisungssyntax als auch widersprüchliche Operanden einer Anweisung.
Widersprüche zwischen verschiedenen Anweisungen werden wie logische Fehler behandelt (siehe Kapitel "Konvertierungsschritt ").
Tritt ein formaler Fehler auf,
bietet PERCON im Dialog die Möglichkeit, Hilfsmenüs zu den Anweisungen anzufordern und bei fehlerhaften Anweisungen einen Korrekturdialog über SDF zu führen (siehe Handbuch [6] "Einführung in die Dialogschnittstelle SDF“).
wird im Stapelbetrieb auf die nächste STEP- oder END-Anweisung verzweigt.
Kommentare
Zeichenfolgen, die in Anführungszeichen eingeschlossen sind, werden als Kommentare interpretiert und ignoriert.