Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Syntax gestalten

&pagelevel(3)&pagelevel

In diesem Abschnitt sind Regeln zusammengestellt, die beim Gestalten der Syntax zu beachten sind. Der Abschnitt informiert nicht über einzelne Details, z.B. über die maximale Länge eines Operandennamens. Derartige Detailinformationen finden Sie in der Beschreibung der ADD-Anweisungen, mit denen die Syntax der Kommandos und Anweisungen in eine Syntaxdatei einzubringen ist.

In der folgenden Zusammenstellung werden für Empfehlungen die Wörter „sollen“ und „können“ benutzt, für zwingende Vorschriften das Wort „müssen“. Die Empfehlungen für Kommandos gelten auch für Anweisungen.

  • Der Name eines Kommandos, einer Anweisung oder eines Operanden sowie ein Operandenwert vom Typ KEYWORD (Schlüsselwortwert) kann aus mehreren, durch Bindestrich miteinander verbundenen Teilnamen zusammengesetzt sein. Alle Teilnamen sollten der natürlichen Sprache entstammen. Für gleiche Sachverhalte sollte derselbe Teilname verwendet werden.

    Bei der Eingabe können die Teilnamen von rechts nach links beliebig abgekürzt oder ganz weggelassen werden, solange SDF anhand der Abkürzung den gesamten Namen eindeutig identifizieren kann.

  • Der Name eines Kommandos sollte mit einem Verb beginnen. Die dem Verb folgenden Teilnamen sollten das Objekt bezeichnen, das mit dem Kommando bearbeitet wird. Der ALIAS-NAME muss von NAME oder STANDARD-NAME verschieden sein. Soll mit absoluter Sicherheit ausgeschlossen werden, dass ein Kommandoname nach einem Versionswechsel mit dem Namen eines neuen, von Fujitsu gelieferten Kommandos kollidiert, so kann man den Kommandonamen mit dem Teilnamen „X“ beginnen lassen.

  • Jede Funktion sollte durch ein eigenes Kommando abgedeckt sein. Dabei ist darauf zu achten, dass die Funktion nicht zu komplex ist. Für gleiche Funktionen sollte es gleiche Kommandos geben.

  • Jeder Operand muss einen Namen haben.
    Bei der Eingabe kann ein Operand wahlweise als Stellungsoperand oder als Schlüsselwortoperand angegeben werden.

  • Wahlweise Operanden müssen einen Default-Wert haben.

  • Operanden, die nur dann relevant sind, wenn ein anderer Operand einen ganz bestimmten Wert hat, sollten in einer Struktur an diesem Wert hängen. Eine Struktur besteht aus einem oder mehreren in runde Klammern eingeschlossenen Operanden. Sie hängt am Wert eines übergeordneten Operanden.

  • Logisch zusammengehörende Operanden sollten in einer Struktur zusammengefasst werden. Es kann sinnvoll sein, eigens zum Zweck der Struktureinleitung einen übergeordneten Operanden zu konstruieren.

  • Es können nicht mehr als fünf Strukturen ineinander geschachtelt werden.

  • Der Name eines in einer Struktur stehenden Operanden muss nur innerhalb der Struktur eindeutig sein. Für die Eingabe ist es allerdings vorteilhaft, wenn er kommandoglobal eindeutig ist. Durch Angabe des Operanden kann dann die Struktur implizit mit ausgewählt werden.

  • Ein Operandenwert muss als einer der folgenden Datentypen definiert sein:

    <alphanumeric-name>
    <cat-id>
    <composed-name>
    <c-string>
    <date>
    <device>
    <fixed>
    <filename>
    <integer>
    <long-integer>
    KEYWORD
    <name>
    <partial-filename>
    <posix-pathname>
    <posix-filename>
    <product-version>
    <structured-name>
    <time>
    <vsn>
    <x-string>
    <x-text>

    alphanumerischer Name,
    Katalogkennung,
    zusammengesetzter Name,
    C-Zeichenkette,
    Datum,
    Gerät,
    Festpunktzahl,
    Dateiname,
    Ganzzahl,
    Ganzzahl lang,
    Schlüsselwort,
    Name,
    teilqualifizierter Dateiname,
    POSIX-Pfadname
    POSIX-Dateiname
    Produkt-Version,
    strukturierter Name,
    Uhrzeit,
    Datenträger,
    X-Zeichenkette,
    X-Text.

    Bei einigen dieser Datentypen lässt sich der mögliche Operandenwert durch zusätzliche Angaben noch genauer eingrenzen, z.B. durch Angabe einer minimalen und maximalen Länge (siehe ADD-VALUE). Die Datentypen <command-rest>, KEYWORD-NUMBER, <label> und <text> sind der Software-Entwicklung von Fujitsu vorbehalten.

  • Mit Ausnahme der Schlüsselwörter müssen die für einen Operanden definierten Eingabealternativen von verschiedenem Datentyp sein. Diese Datentypen müssen syntaktisch disjunkt sein, es sei denn, dass mit der Anweisung ADD-OPERAND...VALUE-OVERLAPPING=*YES eine Überlappung von Datentypen erlaubt wurde. Ansonsten kann beispielsweise für einen Operanden nicht gleichzeitig ein Wert vom Typ NAME und ein alternativer Wert vom Typ STRUCTURED-NAME definiert werden (siehe „Sichausschließende Datentypen“).

    VALUE-OVERLAPPING=*YES sollte nur vom SDF-A-Experten benutzt

    werden, und dann auch nur, wenn sich das Problem nicht anders lösen lässt!

  • Wenn zur Unterscheidung von anderen Eingabealternativen erforderlich, muss einem Schlüsselwort ein Stern vorangestellt werden
    (siehe ADD-VALUE TYPE=*KEYWORD(STAR=*MANDATORY)).

  • Es kann definiert werden, dass zu einem Operanden eine Liste von Werten eingegeben werden kann. Bei der Eingabe sind diese Werte durch Komma voneinander zu trennen und in runde Klammern einzuschließen.

  • Die Koexistenz von Operandenwerten des Datentyps KEYWORD und Operandenwerten eines Datentyps mit Wildcards führt zu speziellen Situationen. Im Folgenden finden Sie eine Liste 6 möglicher Situationen und das Ergebnis der SDF-Syntaxanalyse bei verschiedenen Eingaben:

    1. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*YES
      ADD-VALUE TYPE=*KEYWORD(STAR=*OPTIONAL),VALUE='ALL'
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)

    2. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*YES
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)
      ADD-VALUE TYPE=*KEYWORD(STAR=*OPTIONAL),VALUE='ALL'

    3. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*NO
      ADD-VALUE TYPE=*KEYWORD(STAR=*MANDATORY),VALUE='ALL'
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)

    4. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*NO
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)
      ADD-VALUE TYPE=*KEYWORD(STAR=*MANDATORY),VALUE='ALL'

    5. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*YES
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)

    6. ADD-OPERAND NAME=OP1,VALUE-OVERLAPPING=*NO
      ADD-VALUE TYPE=*KEYWORD(STAR=*MANDATORY),VALUE='V4.1'
      ADD-VALUE TYPE=*FILENAME(WILDCARD=*YES)

    SDF V4.1 erkennt die Eingaben bei der Syntaxanalyse als folgenden Datentyp:

    Eingabe
    von:

    Situation Nr.

    1

    2

    3

    4

    5

    6

    A

    keyword

    filename

    filename

    filename

    filename

    filename

    *A

    keyword

    keyword

    keyword

    keyword

    Fehler

    Fehler

    **A

    filename

    filename

    filename

    filename

    filename

    filename

    *A/

    filename

    filename

    filename

    filename

    filename

    filename

    *

    filename

    filename

    filename

    filename

    filename

    filename

    *B

    Fehler

    Fehler

    Fehler

    Fehler

    Fehler

    Fehler

    *V4.1

    Fehler

    Fehler

    Fehler

    Fehler

    Fehler

    keyword

    *V4.

    filename

    filename

    filename

    filename

    filename

    filename

    **V4.1

    filename

    filename

    filename

    filename

    filename

    filename