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. |