vgrindefs file format

Zweck

Enthält die Sprachdefinitionsdatenbank für den Vgrind -Befehl.

Beschreibung

Das Dateiformat VGRindefs enthält alle Sprachdefinitionen für den Befehl Vgrind . Die Datenbank ist dem Terminfo -Dateiformat (Datei mit Terminalfunktionen) sehr ähnlich.

Felder

Die folgende Tabelle enthält den Namen und die Beschreibung jedes Felds:

Ihren Namen Typ Beschreibung
ab STR Alternativer regulärer Ausdruck für den Anfang eines Kommentars.
ae STR Alternativer regulärer Ausdruck für das Ende eines Kommentars.
pb STR Regulärer Ausdruck für den Start einer Prozedur.
bb STR Regulärer Ausdruck für den Anfang eines lexikalischen Blocks.
be STR Regulärer Ausdruck für das Ende eines lexikalischen Blocks.
cb STR Regulärer Ausdruck für den Anfang eines Kommentars.
ce STR Regulärer Ausdruck für das Ende eines Kommentars.
sb STR Regulärer Ausdruck für den Anfang einer Zeichenfolge.
se STR Regulärer Ausdruck für das Ende einer Zeichenfolge.
lb STR Regulärer Ausdruck für den Anfang einer Zeichenkonstante
le STR Regulärer Ausdruck für das Ende einer Zeichenkonstante.
tl Bool Presence bedeutet, dass Prozeduren nur auf der obersten lexikalischen Ebene definiert werden.
oc Bool Vorhandensein bedeutet, dass Groß-und Kleinbuchstaben äquivalent sind.
kw STR Liste der durch Leerzeichen getrennten Schlüsselwörter.

Beispiele

Der folgende Eintrag, der die Sprache C beschreibt, ist typisch für einen Spracheintrag:

C|c:    :pb=^\d?*?\d?\p\d??):bb={:be=}:cb=/*:ce=*/:sb=":se=\e":\
        :lb=':le=\e':tl:\
        :kw=asm auto break case char continue default do
         double else enum\
        extern float for fortran goto if int long register
         return short\
        sizeof static struct switch typedef union unsigned
         while #define\
        #else #endif #if #ifdef #ifndef #include #undef # define
         else endif\
        if ifdef ifndef include undef: 

Das erste Feld enthält den Sprachennamen oder Varianten des Namens. Daher kann die Programmiersprache C für den Vgrind -Befehl in Kleinbuchstaben oder in Großbuchstaben angegeben werden.

Einträge können in mehreren Zeilen fortgesetzt werden, indem ein Backslash (\) als letztes Zeichen einer Zeile angegeben wird. Das Dateiformat VGRindefs hat die folgenden beiden Funktionen:

  • Boolesche Funktionen, die eine bestimmte Funktion der Sprache angeben
  • Zeichenfolgefunktionen, die einen regulären Ausdruck oder eine Schlüsselwortliste angeben.

In der Programmiersprache Java™ , bei der Kommentare entweder durch ein Anfangszeichen "/*" oder ein Endzeichen "*" oder durch ein Anfangszeichen "//" und "end" am Ende der Zeile begrenzt werden können, kann die Java VGRindefs -Definition wie folgt aussehen:

cb=/*:ce=*/:ab=//:ae=$

Reguläre Ausdrücke

Das Dateiformat VGRindefs verwendet reguläre Ausdrücke, die denen des Befehls Beispiel: und des Befehls Lex ähneln. Die Zeichen ^ (Winkelzeichen), $(Dollarzeichen),: (Doppelpunkt) und \ (Backslash) sind reservierte Zeichen und müssen mit einem vorangestellten \ (Backslash) in Anführungszeichen gesetzt werden, wenn sie als normale Zeichen eingeschlossen werden. Die Metasymbole und ihre Bedeutungen:

Element Beschreibung
$ Ende einer Zeile.
^ Anfang einer Zeile.
\d Begrenzer (Leerzeichen, Tabulator, Zeilenumbruch, Zeilenanfang).
\a Übereinstimmung mit einer beliebigen Zeichenfolge von Symbolen, z. B. .* im Befehl Lex .
\p Entspricht einem beliebigen alphanumerischen Namen. In einer Prozedurdefinition (pb) wird die Zeichenfolge, die diesem Symbol entspricht, als Prozedurname verwendet.
() Gruppierung.
| Wechsel.
? Das letzte Element ist optional.
\e Vor einer Zeichenfolge bedeutet, dass die Zeichenfolge nicht mit einer Eingabezeichenfolge übereinstimmt, wenn der Eingabezeichenfolge ein Escapezeichen (\) vorangestellt ist. Wird normalerweise für Sprachen (z. B. C) verwendet, die den Zeichenfolgebegrenzer in einer Zeichenfolge enthalten können, indem sie mit Escapezeichen versehen werden.

Im Gegensatz zu anderen regulären Ausdrücken im System entsprechen diese Metasymbole Wörtern und nicht Zeichen. Also das Muster "(Tramp|Steamer) fliegt?" entspricht "tramp", "steamer", "" trampflies "oder" steamerflies ".

Schlüsselwortliste

In der Schlüsselwortliste werden Schlüsselwörter in der Sprache durch Leerzeichen getrennt aufgelistet. Wenn das Feld oc angegeben wird, was bedeutet, dass Groß-und Kleinbuchstaben äquivalent sind, sollten alle Schlüsselwörter in Kleinbuchstaben angegeben werden.

Dateien

Element Beschreibung
/usr/share/lib/vgrindefs Enthält Terminalbeschreibungen.