EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

gvpr – Online in der Cloud

Führen Sie gvpr im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl gvpr, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


gvpr – Sprache zum Scannen und Verarbeiten von Diagrammmustern

ZUSAMMENFASSUNG


gvpr [-icnqV?] [ -o Outfile ] [ -a args ] [ 'prog' | -f Programmdatei ] [ Dateien ]

BESCHREIBUNG


gvpr (Vorher bekannt als gpr) ist ein Graph-Stream-Editor, der von inspiriert wurde awk. Es kopiert Eingaben
Diagramme in ihre Ausgabe umwandeln, möglicherweise ihre Struktur und Attribute transformieren und neue erstellen
Diagramme erstellen oder beliebige Informationen drucken. Das Diagrammmodell ist das von bereitgestellte
libcgraph(3). Insbesondere, gvpr liest und schreibt Diagramme in der Punktsprache.

Grundsätzlich gilt, gvpr durchläuft jeden Eingabegraphen, bezeichnet mit $G, jeden Knoten und jede Kante besuchen,
Abgleichen mit den im Eingabeprogramm bereitgestellten Prädikat-Aktionsregeln. Die Regeln sind
der Reihe nach ausgewertet. Für jedes Prädikat, das als wahr ausgewertet wird, ist die entsprechende Aktion
durchgeführt. Während der Durchquerung wird der aktuell besuchte Knoten oder die aktuell besuchte Kante mit gekennzeichnet $.

Für jeden Eingabegraphen gibt es einen Ziel-Untergraphen, der mit bezeichnet wird $T, zunächst leer und gebraucht
um ausgewählte Entitäten und ein Ausgabediagramm zu akkumulieren, $O, für die Endverarbeitung verwendet und dann
in die Ausgabe geschrieben. Standardmäßig ist das Ausgabediagramm das Zieldiagramm. Das Ausgabediagramm
kann im Programm oder eingeschränkt auch auf der Kommandozeile eingestellt werden.

OPTIONAL


Die folgenden Optionen werden unterstützt:

-a args
Die Zeichenfolge args ist in durch Leerzeichen getrennte Token mit der Einzelperson aufgeteilt
Token, die als Zeichenfolgen im verfügbar sind gvpr Programm als ARGV[0],...,ARGV[ARGC-1].
Leerzeichen in Teilzeichenfolgen in einfachen oder doppelten Anführungszeichen oder mit vorangestelltem a
Backslash werden als Trennzeichen ignoriert. Im Allgemeinen wird ein Backslash-Zeichen deaktiviert
jede besondere Bedeutung des folgenden Zeichens. Beachten Sie, dass die Token von abgeleitet sind
mehrere -a Flags werden verkettet.

-c Verwenden Sie das Quelldiagramm als Ausgabediagramm.

-i Leiten Sie die knoteninduzierte Teilgraphenerweiterung des Ausgabegraphen im Kontext von ab
sein Wurzelgraph.

-o Outfile
Bewirkt, dass der Ausgabestream in die angegebene Datei geschrieben wird; Standardmäßig ist die Ausgabe
geschrieben stdout.

-f Programmdatei
Verwenden Sie den Inhalt der angegebenen Datei als Programm, das auf der Eingabe ausgeführt werden soll. Wenn
Programmdatei Enthält ein Schrägstrich, wird der Name als Pfadname der Datei verwendet.
Andernfalls gvpr verwendet die in der Umgebungsvariablen angegebenen Verzeichnisse
GVPRPATH um nach der Datei zu suchen. Wenn -f ist nicht gegeben, gvpr wird das erste Nicht‐
option-Argument als Programm.

-q Schaltet Warnmeldungen aus.

-n Schaltet das Vorauslesen des Diagramms aus. Standardmäßig ist die Variable $NG wird auf die nächste Grafik gesetzt
verarbeitet werden. Dies erfordert ein Lesen des nächsten Diagramms vor der Verarbeitung
Aktueller Graph, der blockieren kann, wenn der nächste Graph nur als Reaktion darauf generiert wird
eine Aktion im Zusammenhang mit der Verarbeitung des aktuellen Diagramms.

-V Veranlasst das Programm, Versionsinformationen zu drucken und zu beenden.

-? Veranlasst das Programm, Nutzungsinformationen zu drucken und zu beenden.

OPERANDEN


Der folgende Operand wird unterstützt:

Dateien Namen von Dateien, die ein oder mehrere Diagramme in der Punktsprache enthalten. Wenn nein -f zu erhalten
angegeben wird, wird der Vorname aus der Liste entfernt und als Eingabeprogramm verwendet.
Wenn die Dateiliste leer ist, Standard werden verwendet.

PROGRAMME


A gvpr Das Programm besteht aus einer Liste von Prädikat-Aktions-Klauseln mit einer der folgenden Formen:

START { Aktion }

BEG_G { Aktion }

N [ Prädikat ] { Aktion }

E [ Prädikat ] { Aktion }

END_G { Aktion }

ENDE { Aktion }

Ein Programm kann jeweils höchstens eines enthalten START, END_G und ENDE Klauseln. Dort kann
beliebig viele sein BEG_G, N und E Aussagen, die erste gilt für Diagramme, die zweite für
Knoten, der dritte an Kanten. Diese sind in Blöcke unterteilt, wobei ein Block aus einem besteht
optional BEG_G Aussage und alles N und E Anweisungen bis zur nächsten BEG_G Aussage, wenn
beliebig. Die Top-Level-Semantik von a gvpr Programm sind:

Bewerten START Klausel, falls vorhanden.
Für jedes Eingabediagramm G {
Für jeden Block {
Sept G als aktuelles Diagramm und aktuelles Objekt.
Bewerten BEG_G Klausel, falls vorhanden.
Für jeden Knoten und jede Kante in G {
Legen Sie den Knoten oder die Kante als aktuelles Objekt fest.
Bewerten N or E Klauseln, soweit angemessen.
}
}
Sept G als aktuelles Objekt.
Bewerten END_G Klausel, falls vorhanden.
}
Bewerten ENDE Klausel, falls vorhanden.

Die Aktionen der START, BEG_G, END_G und ENDE Klauseln werden ausgeführt, wenn die Klauseln ausgeführt werden
ausgewertet. Für N or E In Klauseln kann entweder das Prädikat oder die Aktion weggelassen werden. Wenn da
ist kein Prädikat mit einer Aktion, die Aktion wird auf jedem Knoten oder jeder Kante ausgeführt, als
geeignet. Wenn es keine Aktion gibt und das Prädikat als wahr ausgewertet wird, wird die zugehörige
Knoten oder Kante werden dem Zieldiagramm hinzugefügt.

Die Blöcke werden in der Reihenfolge ihres Auftretens ausgewertet. Innerhalb eines Blocks ist die N Klauseln
(E Klauseln) werden in der Reihenfolge ihres Auftretens ausgewertet. Beachten Sie jedoch,
dass innerhalb eines Blocks, N or E Abhängig von der Durchlaufreihenfolge können Klauseln verschachtelt sein.

Prädikate und Aktionen sind Folgen von Anweisungen im C-Dialekt, die von unterstützt werden
ausdr(3) Bibliothek. Der einzige Unterschied zwischen Prädikaten und Handlungen besteht darin, dass Ersteres gilt
muss einen Typ haben, der entweder als wahr oder falsch interpretiert werden kann. Hier das übliche C
Dabei wird die Konvention befolgt, bei der ein Wert ungleich Null als wahr gilt. Dazu gehört auch
nicht leere Zeichenfolgen und nicht leere Verweise auf Knoten, Kanten usw. Allerdings, wenn eine Zeichenfolge dies kann
in eine ganze Zahl umgewandelt werden, wird dieser Wert verwendet.

Zusätzlich zu den üblichen C-Base-Typen (ungültig, int, verkohlen, schweben, lange, ohne Vorzeichen und doppelt),
gvpr bietet Schnur als Synonym für char *und die graphbasierten Typen Knoten_t, Kante_t,
graph_t und obj_tdem „Vermischten Geschmack“. Seine obj_t Typ kann als Supertyp der anderen 3 Beton angesehen werden
Typen; Der richtige Basistyp wird dynamisch gepflegt. Neben diesen Basistypen sind die
Nur andere unterstützte Typausdrücke sind (assoziative) Arrays.

Konstanten folgen der C-Syntax, Zeichenfolgen können jedoch auch in Anführungszeichen gesetzt werden "..." or '...'. gvpr
akzeptiert sowohl C++-Kommentare als auch CPP-Kommentare. Für Letzteres, wenn eine Zeile mit beginnt
ein „#“-Zeichen, der Rest der Zeile wird ignoriert.

Eine Anweisung kann eine Deklaration einer Funktion, einer Variablen oder eines Arrays oder einer ausführbaren Datei sein
Stellungnahme. Für Deklarationen gibt es einen einzigen Bereich. Array-Deklarationen haben die Form:

tippe Array [ type0 ]

woher type0 es ist optional. Wenn es angegeben wird, erzwingt der Parser, dass alle Arrays vorhanden sind
Indizes haben den angegebenen Typ. Wenn es nicht mitgeliefert wird, können Objekte aller Art vorhanden sein
als Indizes verwendet. Wie in C müssen Variablen und Arrays deklariert werden. Insbesondere ein
Eine nicht deklarierte Variable wird als Name eines Attributs eines Knotens, einer Kante oder interpretiert
Diagramm, je nach Kontext.

Ausführbare Anweisungen können eine der folgenden sein:

{ [ Aussage ... ] }
Ausdruck // häufig jung = Ausdruck
wenn ( Ausdruck ) Aussage [ sonst Aussage ]
zum( Ausdruck ; Ausdruck ; Ausdruck ) Aussage
zum( Array [ jung ]) Aussage
forr( Array [ jung ]) Aussage
während( Ausdruck ) Aussage
Schalter ( Ausdruck ) Häuser Aussagen
brechen [ Ausdruck ]
fortsetzen [ Ausdruck ]
Rückkehr [ Ausdruck ]
Angaben in Klammern sind optional.

In der zweiten Form des für Aussage und die forr Anweisung, die Variable jung eingestellt ist
Jeder Wert wird als Index im angegebenen Array verwendet und dann der zugehörige Aussage is
ausgewertet. Bei numerischen Indizes und String-Indizes werden die Indizes in aufsteigender Reihenfolge zurückgegeben
(absteigende) numerische oder lexikografische Reihenfolge für für (forr, bzw). Dies kann genutzt werden
zum Sortieren.

Funktionsdefinitionen können nur im angezeigt werden START Klausel.

Zu den Ausdrücken gehören die üblichen C-Ausdrücke. String-Vergleiche mit == und != behandeln die
rechten Operanden als Muster zum Zweck des Abgleichs regulärer Ausdrücke. Muster
- ksh(1) Dateivergleichsmustersyntax. (Für eine einfache String-Gleichheit verwenden Sie die strcmp
Funktion.

gvpr wird versuchen, einen Ausdruck je nach Bedarf als Zeichenfolge oder numerischen Wert zu verwenden. Beide
C-ähnliche Umwandlungen und Funktionsvorlagen führen nach Möglichkeit zur Durchführung von Konvertierungen.

Ausdrücke grafischen Typs (d. h. graph_t, node_t, Kante_t, obj_t) kann von a gefolgt werden
Feldbezug in Form von .Name. Der resultierende Wert ist der Wert des Attributs
namens Name des gegebenen Objekts. Darüber hinaus kann in bestimmten Zusammenhängen eine nicht deklarierte,
Der unveränderte Bezeichner wird als Attributname angesehen. Insbesondere solche Identifikatoren
bezeichnen Attribute des aktuellen Knotens bzw. der aktuellen Kante in N und E Klauseln und die
aktuelle Grafik in BEG_G und END_G Klauseln.

Wie üblich im libcgraph(3) Modell, Attribute sind Zeichenfolgenwerte. Zusätzlich, gvpr
unterstützt bestimmte Pseudoattribute von Diagrammobjekten, die nicht unbedingt einen Zeichenfolgenwert haben. Diese
spiegeln intrinsische Eigenschaften der Diagrammobjekte wider und können nicht vom Benutzer festgelegt werden.

ganzer : Knoten_t
der Kopf einer Kante.

Schwanz : Knoten_t
der Schwanz einer Kante.

Name : Schnur
der Name einer Kante, eines Knotens oder eines Diagramms. Der Name einer Kante hat die Form „<tail‐
Name>[]", wo ist "->"Oder"--" es hängt davon ab
ob der Graph gerichtet ist oder nicht. Der Halterungsteil [] erscheint nur, wenn die
Kante hat einen nicht trivialen Schlüssel.

ingrad : int
der Grad eines Knotens.

außergrad : int
der Außengrad eines Knotens.

(...) : int
der Grad eines Knotens.

Wurzel : graph_t
der Wurzelgraph eines Objekts. Die Wurzel eines Wurzelgraphen ist er selbst.

Elternteil : graph_t
der übergeordnete Graph eines Untergraphen. Das übergeordnete Element eines Wurzeldiagramms ist NULL

n_Kanten : int
die Anzahl der Kanten im Diagramm

n_nodes : int
die Anzahl der Knoten im Diagramm

gerichtet : int
wahr (ungleich Null), wenn der Graph gerichtet ist

streng : int
wahr (ungleich Null), wenn der Graph streng ist

EINGEBAUT FUNKTIONEN


Die folgenden Funktionen sind integriert gvpr. Diese Funktionen geben Verweise auf das Diagramm zurück
Objekte kehren zurück NULL im Fehlerfall.

Graphs und Subgraph
Graph(s : Schnur, t : Schnur): graph_t
erstellt ein Diagramm mit dem Namen s und dessen Typ durch die Zeichenfolge angegeben wird t.
Groß-/Kleinschreibung und Zeichen werden ignoriert U, D, S, N die Interpretation ungerichtet haben,
gerichtet, streng und nicht streng. Wenn t ist leer, ein gerichtetes, nicht‐
Es wird ein strikter Graph generiert.

subg(g : graph_t, s : Schnur): graph_t
Erstellt einen Untergraphen im Diagramm g mit name s. Wenn der Untergraph bereits vorhanden ist, ist er vorhanden
ist zurückgekommen.

isSubg(g : graph_t, s : Schnur): graph_t
gibt den Untergraphen im Diagramm zurück g mit name s, falls vorhanden, oder NULL Andernfalls.

fstsubg(g : graph_t): graph_t
gibt den ersten Untergraphen im Graphen zurück g, oder NULL wenn keine vorhanden ist.

nxtsubg(sg : graph_t): graph_t
gibt den nächsten Untergraphen danach zurück sg, oder NULL.

isDirect(g : graph_t): int
gibt genau dann true zurück, wenn g gerichtet ist.

ist streng(g : graph_t): int
gibt genau dann true zurück, wenn g ist streng.

nKnoten(g : graph_t): int
gibt die Anzahl der Knoten zurück g.

nKanten(g : graph_t): int
gibt die Anzahl der Kanten zurück g.

Nodes
Knoten(sg : graph_t, s : Schnur): Knoten_t
Erstellt einen Knoten im Diagramm g des Namens s. Wenn ein solcher Knoten bereits vorhanden ist, wird er zurückgegeben.

Unterknoten(sg : graph_t, n : Knoten_t): Knoten_t
fügt den Knoten ein n in den Untergraphen g. Gibt den Knoten zurück.

fstnode(g : graph_t): Knoten_t
gibt den ersten Knoten im Diagramm zurück g, oder NULL wenn keine vorhanden ist.

nxtnode(n : Knoten_t): Knoten_t
gibt den nächsten Knoten danach zurück n im Wurzeldiagramm, oder NULL.

nxtnode_sg(sg : graph_t, n : Knoten_t): Knoten_t
gibt den nächsten Knoten danach zurück n in sg, oder NULL.

isNode(sg : graph_t, s : Schnur): Knoten_t
sucht nach einem Knoten im (Unter-)Graphen sg des Namens s. Wenn ein solcher Knoten vorhanden ist, wird er zurückgegeben.
Andernfalls NULL wird zurückgegeben.

isSubnode(sg : graph_t, n : Knoten_t): int
gibt einen Wert ungleich Null zurück, wenn Knoten n ist im (Unter-)Graphen sg, andernfalls Null.

indegreeOf(sg : graph_t, n : Knoten_t): int
gibt den Grad des Knotens zurück n im (Unter-)Graph sg.

outdegreeOf(sg : graph_t, n : Knoten_t): int
gibt den Außengrad des Knotens zurück n im (Unter-)Graph sg.

Grad von(sg : graph_t, n : Knoten_t): int
gibt den Grad des Knotens zurück n im (Unter-)Graph sg.

Edges
Rand(t : Knoten_t, h : Knoten_t, s : Schnur): Kante_t
Erstellt eine Kante mit Endknoten t, Kopfknoten h und Name s im Wurzeldiagramm. Wenn die
Da der Graph ungerichtet ist, ist die Unterscheidung zwischen Kopf- und Schwanzknoten unwichtig.
Wenn eine solche Kante bereits vorhanden ist, wird sie zurückgegeben.

Edge_sg(sg : graph_t, t : Knoten_t, h : Knoten_t, s : Schnur): Kante_t
Erstellt eine Kante mit Endknoten t, Kopfknoten h und Name s im (Unter-)Graph sg (und alles
übergeordnete Diagramme). Wenn der Graph ungerichtet ist, erfolgt die Unterscheidung zwischen Kopf und Schwanz
Knoten ist unwichtig. Wenn eine solche Kante bereits vorhanden ist, wird sie zurückgegeben.

Unterkante(g : graph_t, e : Kante_t): Kante_t
fügt die Kante ein e in den Untergraphen g. Gibt die Kante zurück.

isEdge(t : Knoten_t, h : Knoten_t, s : Schnur): Kante_t
sucht nach einer Kante mit Endknoten t, Kopfknoten h und Name s. Wenn der Graph ist
ungerichtet ist die Unterscheidung zwischen Kopf- und Schwanzknoten unwichtig. Wenn so ein
Kante vorhanden ist, wird sie zurückgegeben. Ansonsten, NULL wird zurückgegeben.

isEdge_sg(sg : graph_t, t : Knoten_t, h : Knoten_t, s : Schnur): Kante_t
sucht nach einer Kante mit Endknoten t, Kopfknoten h und Name s im (Unter-)Graph sg. Wenn der
Da der Graph ungerichtet ist, ist die Unterscheidung zwischen Kopf- und Schwanzknoten unwichtig.
Wenn eine solche Kante existiert, wird sie zurückgegeben. Ansonsten, NULL wird zurückgegeben.

istSubedge(g : graph_t, e : Kante_t): int
Gibt bei Kante einen Wert ungleich Null zurück e ist im (Unter-)Graphen sg, andernfalls Null.

fstout(n : Knoten_t): Kante_t
gibt den ersten Rand des Knotens zurück n im Wurzeldiagramm.

fstout_sg(sg : graph_t, n : Knoten_t): Kante_t
gibt den ersten Rand des Knotens zurück n im (Unter-)Graph sg.

nxtout(e : Kante_t): Kante_t
gibt den nächsten Outedge danach zurück e im Wurzeldiagramm.

nxtout_sg(sg : graph_t, e : Kante_t): Kante_t
gibt den nächsten Outedge danach zurück e im Diagramm sg.

fstin(n : Knoten_t): Kante_t
gibt die erste Kante des Knotens zurück n im Wurzeldiagramm.

fstin_sg(sg : graph_t, n : Knoten_t): Kante_t
gibt die erste Kante des Knotens zurück n im Diagramm sg.

nxtin(e : Kante_t): Kante_t
gibt die nächste Kante danach zurück e im Wurzeldiagramm.

nxtin_sg(sg : graph_t, e : Kante_t): Kante_t
gibt die nächste Kante danach zurück e im Diagramm sg.

fstedge(n : Knoten_t): Kante_t
gibt die erste Kante des Knotens zurück n im Wurzeldiagramm.

fstedge_sg(sg : graph_t, n : Knoten_t): Kante_t
gibt die erste Kante des Knotens zurück n im Diagramm sg.

nxtedge(e : Kante_t, Knoten_t): Kante_t
gibt die nächste Kante danach zurück e im Wurzeldiagramm.

nxtedge_sg(sg : graph_t, e : Kante_t, Knoten_t): Kante_t
gibt die nächste Kante danach zurück e in der Grafik sg.

opp(e : Kante_t, Knoten_t): Knoten_t
gibt den Knoten am Rand zurück e Nicht gleichzusetzen mit n. Gibt NULL zurück, wenn n ist kein Knoten von
e. Dies kann bei der Verwendung nützlich sein fstedge und nxtedge die Nachbarn aufzählen
n.

Graph I / O
schreiben(g : graph_t): ungültig
Drucke g im Punktformat auf den Ausgabestream.

writeG(g : graph_t, Fanname : Schnur): ungültig
Drucke g im Punktformat in die Datei ein Fanname.

fwriteG(g : graph_t, fd : int): ungültig
Drucke g im Punktformat auf den offenen Stream, der durch die Ganzzahl gekennzeichnet ist fd.

lesenG(Fanname : Schnur): graph_t
gibt ein aus der Datei gelesenes Diagramm zurück Fanname. Das Diagramm sollte im Punktformat vorliegen. Wenn nein
Grafik kann gelesen werden, NULL wird zurückgegeben.

freadG(fd : int): graph_t
gibt den nächsten aus dem offenen Stream gelesenen Graphen zurück fd. Kehrt zurück NULL am Ende der Datei.

Graph Sonstiges
löschen(g : graph_t, x : obj_t): ungültig
löscht Objekt x aus der Grafik g. Wenn g is NULL, die Funktion verwendet den Wurzelgraphen von
x. Wenn x Ist ein Graph oder Untergraph, ist er geschlossen, es sei denn x ist gesperrt.

ist in(g : graph_t, x : obj_t): int
gibt true zurück, wenn x steht im Untergraphen g.

KlonG(g : graph_t, s : Schnur): graph_t
Erstellt einen Klon des Diagramms g mit dem Namen von s. Wenn s ist „“, der erstellte Graph hat die
gleicher Name wie g.

klonen(g : graph_t, x : obj_t): obj_t
Erstellt einen Klon des Objekts x im Diagramm g. Insbesondere hat das neue Objekt dasselbe
Name/Wert-Attribute und Struktur wie das Originalobjekt. Wenn ein Objekt mit dem
Gleicher Schlüssel wie x bereits vorhanden ist, werden seine Attribute durch die von überlagert x und dem
Objekt wird zurückgegeben. Wenn eine Kante geklont wird, werden implizit beide Endpunkte geklont.
Wenn ein Diagramm geklont wird, werden implizit alle Knoten, Kanten und Untergraphen geklont. Wenn x
ist ein Diagramm, g könnte sein NULL, in diesem Fall ist das geklonte Objekt ein neuer Stamm
Graph. In diesem Fall ist der Aufruf äquivalent zu cloneG(x,"").

Kopieren(g : graph_t, x : obj_t): obj_t
Erstellt eine Kopie des Objekts x im Diagramm g, wobei das neue Objekt denselben Namen/Wert hat
Attribute wie das Originalobjekt. Wenn ein Objekt mit demselben Schlüssel wie x bereits
existiert, werden seine Attribute von denen von überlagert x und das Objekt wird zurückgegeben. Notiz
dass dies eine oberflächliche Kopie ist. Wenn x ist ein Graph, keiner seiner Knoten, Kanten oder Untergraphen
werden in das neue Diagramm kopiert. Wenn x ist eine Kante, die Endpunkte werden erstellt, wenn
notwendig, aber sie werden nicht geklont. Wenn x ist ein Diagramm, g könnte sein NULLin welchem ​​Fall
Das geklonte Objekt wird ein neues Stammdiagramm sein.

copyA(src : obj_t, tgt : obj_t): int
kopiert die Attribute des Objekts src zu widersprechen tgt, wobei alle Attributwerte überschrieben werden
tgt möglicherweise zunächst haben.

induzieren(g : graph_t): ungültig
erweitert g zu seiner knoteninduzierten Untergraphenerweiterung in seinem Wurzelgraphen.

hasAttr(src : obj_t, Name : Schnur): int
Gibt einen Wert ungleich Null zurück, wenn es sich um ein Objekt handelt src hat ein Attribut mit dem Namen Name. Es gibt 0 zurück
Andernfalls.

isAttr(g : graph_t, Art : Schnur, Name : Schnur): int
Gibt einen Wert ungleich Null zurück, wenn es sich um ein Attribut handelt Name wurde in definiert g für Objekte der
gegeben Art. Für Knoten, Kanten und Diagramme gilt: Art sollte „N“, „E“ und „G“ sein,
bzw. Andernfalls wird 0 zurückgegeben.

Alter(src : obj_t, Name : Schnur): Schnur
gibt den Wert des Attributs zurück Name im Objekt src. Dies ist in diesen Fällen nützlich
wann Name Konflikte mit einem der Schlüsselwörter wie „head“ oder „root“. Wenn die
Wenn das Attribut nicht im Diagramm deklariert wurde, wird es von der Funktion mit initialisiert
ein Standardwert von „“. Um dies zu vermeiden, sollte man das verwenden hasAttr or isAttr Funktion
um zu überprüfen, ob das Attribut vorhanden ist.

Vermögenswert(src : obj_t, Name : Schnur, Wert : Schnur): int
legt den Wert des Attributs fest Name im Objekt src zu Wert. Gibt bei Erfolg 0 zurück,
ungleich Null bei Fehler. Sehen Alter zu teilen.

getDflt(g : graph_t, Art : Schnur, Name : Schnur): Schnur
gibt den Standardwert des Attributs zurück Name in Objekten in g des Gegebenen Art. For
Knoten, Kanten und Graphen, Art sollte „N“, „E“ bzw. „G“ sein. Wenn die
Wenn das Attribut nicht im Diagramm deklariert wurde, wird es von der Funktion mit initialisiert
ein Standardwert von „“. Um dies zu vermeiden, sollte man das verwenden isAttr Funktion zu überprüfen
dass das Attribut existiert.

setDflt(g : graph_t, Art : Schnur, Name : Schnur, Wert : Schnur): int
legt den Standardwert des Attributs fest Name zu Wert in Objekten in g des Gegebenen
Art. Für Knoten, Kanten und Diagramme gilt: Art sollte „N“, „E“ bzw. „G“ sein.
Gibt bei Erfolg 0 zurück, bei Fehler ungleich Null. Sehen getDflt zu teilen.

fstAttr(g : graph_t, Art : Schnur): Schnur
gibt den Namen des ersten Attributs von Objekten in zurück g des Gegebenen Art. For
Knoten, Kanten und Graphen, Art sollte „N“, „E“ bzw. „G“ sein. Wenn da
Sind keine Attribute vorhanden, wird die Zeichenfolge „“ zurückgegeben.

nxtAttr(g : graph_t, Art : Schnur, Name : Schnur): Schnur
gibt den Namen des nächsten Attributs von Objekten in zurück g des Gegebenen Art nach dem
Attribut Name. Das Argument Name muss der Name eines vorhandenen Attributs sein; Es
ist normalerweise der Rückgabewert eines vorherigen Aufrufs von fstAttr or nxtAttr. For
Knoten, Kanten und Graphen, Art sollte „N“, „E“ bzw. „G“ sein. Wenn da
Sind keine Attribute mehr vorhanden, wird die Zeichenfolge „“ zurückgegeben.

compOf(g : graph_t, n : Knoten_t): graph_t
gibt die verbundene Komponente des Diagramms zurück g enthaltender Knoten n, als Untergraph von
g. Der Untergraph enthält nur die Knoten. Kann man nutzen induzieren um die Kanten hinzuzufügen. Der
Funktion schlägt fehl und kehrt zurück NULL if n ist nicht in g. Die Konnektivität basiert auf der
zugrunde liegender ungerichteter Graph von g.

So'ne Art(obj : obj_t): Schnur
gibt einen Hinweis auf den Typ von zurück obj. Für Knoten, Kanten und Diagramme wird zurückgegeben
„N“, „E“ bzw. „G“.

sperren(g : graph_t, v : int): int
implementiert die Diagrammsperre für Stammdiagramme. Wenn die ganze Zahl v positiv ist, ist die Grafik
so einstellen, dass künftige Anrufe nicht mehr möglich sind löschen keine unmittelbare Wirkung haben. Wenn v ist Null, die
Grafik ist entsperrt. Wenn währenddessen ein Aufruf zum Löschen des Diagramms erfolgt ist
gesperrt, das Diagramm ist geschlossen. Wenn v negativ ist, wird nichts unternommen. In allen Fällen ist die
Der vorherige Sperrwert wird zurückgegeben.

Streicher
sprintf(fmt : Schnur, ...): Schnur
gibt die Zeichenfolge zurück, die sich aus der Formatierung der Werte der Ausdrücke ergibt
auftretend nach fmt nach dem printf(3) Format fmt

gsub(str : Schnur, Klaps : Schnur): Schnur

gsub(str : Schnur, Klaps : Schnur, erwidern : Schnur): Schnur
Rückgabe str wobei alle Teilzeichenfolgen übereinstimmen Klaps gelöscht oder ersetzt durch erwidern,
beziehungsweise.

unten(str : Schnur, Klaps : Schnur): Schnur

unten(str : Schnur, Klaps : Schnur, erwidern : Schnur): Schnur
Rückgabe str mit der am weitesten links liegenden Teilzeichenfolge Klaps gelöscht oder ersetzt durch erwidern,
bzw. Am Anfang und Ende dürfen die Zeichen „^“ und „$“ verwendet werden,
bzw. von Klaps um das Muster am Anfang oder Ende von zu verankern str.

substr(str : Schnur, idx : int): Schnur

substr(str : Schnur, idx : int, len : int): Schnur
gibt den Teilstring von zurück str ab Position idx bis zum Ende der Zeichenfolge oder
von Länge len, bzw. Die Indizierung beginnt bei 0. Wenn idx ist negativ oder idx is
größer als die Länge von str, tritt ein schwerwiegender Fehler auf. Ebenso im zweiten
Fall, wenn len ist negativ oder idx + len ist größer als die Länge von str, ein tödlicher
Fehler auftritt.

strcmp(s1 : Schnur, s2 : Schnur): int
stellt die Standard-C-Funktion bereit strcmp(3).

Länge(s : Schnur): int
gibt die Länge der Zeichenfolge zurück s.

Index(s : Schnur, t : Schnur): int

rindex(s : Schnur, t : Schnur): int
gibt den Index des Zeichens in der Zeichenfolge zurück s wo die Kopie ganz links (ganz rechts) ist
aus Schnur t gefunden werden kann, oder -1, wenn t ist kein Teilstring von s.

Spiel(s : Schnur, p : Schnur): int
gibt den Index des Zeichens in der Zeichenfolge zurück s wo die Musterübereinstimmung ganz links liegt
p gefunden werden kann, oder -1, wenn kein Teilstring von vorhanden ist s Streichhölzer p.

TOUPPER(s : Schnur): Schnur
gibt eine Version von zurück s wobei die alphabetischen Zeichen in Großbuchstaben umgewandelt werden.

tolower(s : Schnur): Schnur
gibt eine Version von zurück s wobei die alphabetischen Zeichen in Kleinbuchstaben umgewandelt werden.

Kanon(s : Schnur): Schnur
gibt eine Version von zurück s geeignet, als Bezeichner in einer Dot-Datei verwendet zu werden.

html(g : graph_t, s : Schnur): Schnur
gibt eine „magische“ Version von zurück s als HTML-String. Dies ist normalerweise üblich
Fügen Sie einem Diagrammobjekt eine HTML-ähnliche Beschriftung hinzu. Beachten Sie, dass die zurückgegebene Zeichenfolge in lebt
g. Insbesondere wird es freigegeben, wenn g geschlossen ist und als HTML-String fungiert,
Es muss mit einem Objekt von verwendet werden g. Beachten Sie außerdem die Winkelhalterung
Zitate sollten nicht Teil davon sein s. Diese werden hinzugefügt, wenn g ist in Beton DOT geschrieben
Format.

ishtml(s : Schnur): int
gibt genau dann einen Wert ungleich Null zurück, wenn s ist ein HTML-String.

xOf(s : Schnur): Schnur
gibt die Zeichenfolge „ zurückx" wenn s hat die Form „x,y", wo beides x und y sind numerisch.

yOf(s : Schnur): Schnur
gibt die Zeichenfolge „ zurücky" wenn s hat die Form „x,y", wo beides x und y sind numerisch.

llOf(s : Schnur): Schnur
gibt die Zeichenfolge „ zurückllx,lly" wenn s hat die Form „llx,lly,Urx,Ury", wo alle llx,
lly, Urx und Ury sind numerisch.

urOf(s)
urOf(s : Schnur): Schnur gibt die Zeichenfolge „ zurückUrx,Ury" wenn s hat die Form
"llx,lly,Urx,Ury", wo alle llx, lly, Urx und Ury sind numerisch.

sscanf(s : Schnur, fmt : Schnur, ...): int
scannt die Zeichenfolge s, Werte entsprechend extrahieren sscanf(3) Format fmtdem „Vermischten Geschmack“. Seine
Werte werden in den folgenden Adressen gespeichert fmt, Adressen mit der Form &v,
woher v ist eine deklarierte Variable des richtigen Typs. Gibt die Anzahl der Elemente zurück
erfolgreich gescannt.

gespalten(s : Schnur, arr : Array, seps : Schnur): int

gespalten(s : Schnur, arr : Array): int

Token(s : Schnur, arr : Array, seps : Schnur): int

Token(s : Schnur, arr : Array): int
Das gespalten Funktion unterbricht die Zeichenfolge s in Felder, während die Token Funktion
Zerlegt die Zeichenfolge in Token. Ein Feld besteht aus allen Zeichen, die keine Trennzeichen sind
zwischen zwei Trennzeichen oder dem Anfang oder Ende der Zeichenfolge. Also, a
Feld kann die leere Zeichenfolge sein. Ein Token ist ein maximaler, nicht leerer Teilstring
enthält ein Trennzeichen. Die Trennzeichen sind die in der angegebenen
seps Streit. Wenn seps wird nicht bereitgestellt, der Standardwert ist „\t\n“. Der
Funktionen geben die Anzahl der Felder oder Token zurück.

Die Felder und Token werden im Argumentarray gespeichert. Das Array muss sein Schnur-
hat einen Wert, und wenn ein Indextyp angegeben ist, muss er diesen haben int. Die Einträge werden indiziert
durch aufeinanderfolgende Ganzzahlen, beginnend bei 0. Alle bereits im Array gespeicherten Werte werden berücksichtigt
entweder überschrieben werden oder nach Rückkehr der Funktion noch vorhanden sein.

I / O
drucken(...): ungültig
drucken( ausdr, ... ) Gibt nacheinander eine Zeichenfolgendarstellung jedes Arguments aus
stdout, gefolgt von einem Zeilenumbruch.

printf(fmt : Schnur, ...): int

printf(fd : int, fmt : Schnur, ...): int
Gibt die Zeichenfolge aus, die sich aus der Formatierung der Werte der folgenden Ausdrücke ergibt
fmt nach dem printf(3) Format fmt. Gibt bei Erfolg 0 zurück. Standardmäßig ist es
druckt auf stdout. Wenn die optionale Ganzzahl fd gegeben ist, wird die Ausgabe auf die geschrieben
offener Stream verbunden mit fd.

scanf(fmt : Schnur, ...): int

scanf(fd : int, fmt : Schnur, ...): int
scannt Werte aus einem Eingabestream gemäß scanf(3) Format fmtdem „Vermischten Geschmack“. Seine
Werte werden in den folgenden Adressen gespeichert fmt, Adressen mit der Form &v,
woher v ist eine deklarierte Variable des richtigen Typs. Standardmäßig liest es von
Standard. Wenn die optionale Ganzzahl fd gegeben ist, wird die Eingabe aus dem offenen Stream gelesen
zugeordneten fd. Gibt die Anzahl der erfolgreich gescannten Elemente zurück.

openF(s : Schnur, t : Schnur): int
öffnet die Datei s als I/O-Stream. Das String-Argument t Gibt an, wie die Datei ist
geöffnet. Die Argumente sind die gleichen wie für die C-Funktion öffnen(3). Es gibt eine zurück
Ganzzahl, die den Stream angibt, oder -1 im Fehlerfall.

Wie üblich sind die Streams 0, 1 und 2 bereits geöffnet als Standard, stdout und stderr,
bzw. Seit gvpr darf verwenden Standard Um die Eingabediagramme zu lesen, sollte der Benutzer
Vermeiden Sie die Verwendung dieses Streams.

closeF(fd : int): int
schließt den offenen Stream, der durch die Ganzzahl gekennzeichnet ist fd. Streams 0, 1 und 2 können nicht sein
geschlossen. Gibt bei Erfolg 0 zurück.

lesenL(fd : int): Schnur
gibt die nächste aus dem Eingabestream gelesene Zeile zurück fd. Es gibt die leere Zeichenfolge „“ zurück.
am Ende der Datei. Beachten Sie, dass das Newline-Zeichen in der zurückgegebenen Zeichenfolge verbleibt.

Mathe
exp(d : doppelt): doppelt
gibt e an die zurück dte Macht.

Log(d : doppelt): doppelt
gibt den natürlichen Logarithmus von zurück d.

sqrt(d : doppelt): doppelt
gibt die Quadratwurzel des Doubles zurück d.

pow(d : doppelt, x : doppelt): doppelt
Rückgabe d erhoben zum xte Macht.

cos(d : doppelt): doppelt
gibt den Kosinus von zurück d.

Sünde(d : doppelt): doppelt
gibt den Sinus von zurück d.

atan2(y : doppelt, x : doppelt): doppelt
gibt den Arkustangens von zurück y / x im Bereich -pi bis pi.

MIN(y : doppelt, x : doppelt): doppelt
gibt das Minimum von zurück y und x.

MAX(y : doppelt, x : doppelt): doppelt
gibt das Maximum von zurück y und x.

Assoziativ Arrays
# arr : int
gibt die Anzahl der Elemente im Array zurück arr.

idx in arr : int
gibt 1 zurück, wenn für den Index ein Wert festgelegt wurde idx im Array arr. Es gibt 0 zurück
Andernfalls.

ungesetzt(v : Array, idx): int
Entfernt das von indizierte Element idx. Es gibt 1 zurück, wenn das Element vorhanden war, andernfalls 0.

ungesetzt(v : Array): ungültig
Initialisiert das Array neu.

Weitere Anwendungsbereiche
wunsch(v : int): ungültig
Ursachen gvpr zum Beenden mit dem Exit-Code v.

System(cmd : Schnur): int
stellt die Standard-C-Funktion bereit System(3). Es wird ausgeführt cmd in der Shell des Benutzers
Umgebung und gibt den Exit-Status der Shell zurück.

and(): doppelt
gibt ein pseudozufälliges Double zwischen 0 und 1 zurück.

Sand(): int

Sand(v : int): int
Legt einen Startwert für den Zufallszahlengenerator fest. Das optionale Argument gibt den Startwert an;
Wenn es weggelassen wird, wird die aktuelle Zeit verwendet. Der vorherige Startwert wird zurückgegeben.
Sand sollte vor allen Anrufen angerufen werden and.

Farbex(Farbe : Schnur, fmt : Schnur): Schnur
übersetzt eine Farbe von einem Format in ein anderes. Der Farbe Argument sollte eine Farbe sein
in einer der erkannten String-Darstellungen. Der fmt Der Wert sollte einer von sein
„RGB“, „RGBA“, „HSV“ oder „HSVA“. Bei einem Fehler wird eine leere Zeichenfolge zurückgegeben.

EINGEBAUT VARIABLEN


gvpr stellt bestimmte spezielle, integrierte Variablen bereit, deren Werte automatisch von festgelegt werden
gvpr je nach Kontext. Sofern nicht anders angegeben, kann der Benutzer seine Werte nicht ändern.

$ : obj_t
bezeichnet je nach Kontext das aktuelle Objekt (Knoten, Kante, Graph). Es ist nicht
verfügbar in START or ENDE Klauseln.

$F : Schnur
ist der Name der aktuellen Eingabedatei.

$G : graph_t
bezeichnet den aktuellen Graphen, der verarbeitet wird. Es ist nicht verfügbar in START or ENDE
Klauseln.

$NG : graph_t
bezeichnet den nächsten zu verarbeitenden Graphen. Wenn $NG ist NULL, das aktuelle Diagramm $G lernen muss die
letzte Grafik. Beachten Sie, dass das letzte Diagramm nicht möglich ist, wenn die Eingabe von stdin stammt
ermittelt, bis die Eingangsleitung geschlossen ist. Es ist nicht verfügbar in START or ENDE
Klauseln, oder wenn die -n Flagge verwendet wird.

$O : graph_t
bezeichnet den Ausgabegraphen. Vor dem Durchlaufen des Diagramms wird es auf das Ziel initialisiert
Graph. Nach der Durchquerung usw END_G Aktionen, wenn es sich um einen nicht leeren Graphen handelt,
Dieses Diagramm wird auf den Ausgabestream gedruckt. Es ist nur gültig in N, E und END_G
Klauseln. Das Ausgabediagramm kann vom Benutzer festgelegt werden.

$T : graph_t
bezeichnet den aktuellen Zielgraphen. Es ist ein Untergraph von $G und ist nur in erhältlich
N, E und END_G Klauseln.

$tgtname : Schnur
bezeichnet den Namen des Zielgraphen. Standardmäßig ist es auf eingestellt „gvpr_result“. Wenn
mehrfach während der Ausführung von verwendet gvpr, wird dem Namen ein angehängt
ganze Zahl. Diese Variable kann vom Benutzer festgelegt werden.

$tvroot : Knoten_t
gibt den Startknoten für eine (gerichtete oder ungerichtete) Tiefenrichtung oder Breitenrichtung an.
erste Durchquerung des Graphen (vgl. $tvtype unter). Der Standardwert ist NULL für
jedes Eingabediagramm. Nach dem Durchlauf an der angegebenen Wurzel, wenn der Wert von $tvroot
hat sich geändert, ein neuer Durchlauf beginnt mit dem neuen Wert von $tvroot. Auch eingestellt
$tvnext unten.

$tvnext : Knoten_t
gibt den nächsten Startknoten für eine (gerichtete oder ungerichtete) Tiefenrichtung oder an
Breitendurchquerung des Graphen (vgl. $tvtype unter). Wenn eine Durchquerung abgeschlossen ist
und dem $tvroot wurde nicht zurückgesetzt, aber die $tvnext wurde festgelegt, aber nicht verwendet, dies
Der Knoten wird als nächste Auswahl für verwendet $tvroot. Der Standardwert ist NULL für
jedes Eingabediagramm.

$tvedge : Kante_t
Bei BFS- und DFS-Durchquerungen wird dies auf die Kante festgelegt, die zum Erreichen des Stroms verwendet wird
Knoten oder Kante. Zu Beginn einer Durchquerung oder für andere Durchquerungstypen wird die
Wert ist NULL.

$tvtype : tvtype_t
gibt an, wie gvpr durchläuft einen Graphen. Es kann nur einen der konstanten Werte annehmen
mit dem unten beschriebenen Präfix „TV_“. TV_flat ist die Vorgabe.

In der zugrunde liegenden Diagrammbibliothek cgraph(3) Kanten in ungerichteten Graphen sind gegeben
beliebige Richtung. Dies wird für Durchquerungen verwendet, z TV_fwderforderlich
gerichtete Kanten.

Argc : int
bezeichnet die Anzahl der Argumente, die durch angegeben werden -a args Befehlszeilenargument.

ARGV : Schnur Array
bezeichnet das Array von Argumenten, das durch angegeben wird -a args Befehlszeilenargument. Der
iDas Argument ist gegeben durch ARGV[i].

EINGEBAUT Konstanten


Es gibt mehrere symbolische Konstanten, die durch definiert werden gvpr.

NULL : obj_t
eine Nullobjektreferenz, äquivalent zu 0.

TV_flat : tvtype_t
eine einfache, flache Durchquerung, bei der Diagrammobjekte in scheinbar willkürlicher Reihenfolge besucht werden.

TV_ne : tvtype_t
eine Durchquerung, die zuerst alle Knoten und dann alle Kanten besucht.

TV_de : tvtype_t
eine Durchquerung, die zuerst alle Kanten und dann alle Knoten besucht.

TV_dfs : tvtype_t
TV_postdfs : tvtype_t
TV_prepostdfs : tvtype_t
eine Durchquerung des Graphen unter Verwendung einer Tiefensuche auf der zugrunde liegenden ungerichteten Ebene
Graph. Um die Durchquerung durchzuführen, gvpr werde den Wert von überprüfen $tvroot. Wenn dies der Fall ist
denselben Wert wie zuvor (zu Beginn wird der vorherige Wert initialisiert).
zu NULL.) gvpr sucht einfach nach einem nicht besuchten Knoten und durchläuft dessen Verbindung
Komponente. Andererseits, wenn $tvroot sich geändert hat, wird sich auch die verbundene Komponente ändern
besichtigt werden, vorausgesetzt, es wurde noch nicht zuvor besucht oder, wenn $tvroot is NULL, der
Die Durchquerung wird gestoppt. Beachten Sie, dass mit TV_dfs und $tvroot, es ist möglich zu erstellen
eine Endlosschleife.

Standardmäßig erfolgt die Durchquerung in der Vorbestellung. Das heißt, ein Knoten wird vorher besucht
alle seine unbesuchten Kanten. Für TV_postdfs, alle nicht besuchten Kanten eines Knotens sind
vor dem Knoten besucht. Für TV_prepostdfs, ein Knoten wird zweimal besucht, vor und
nach all seinen unbesuchten Kanten.

TV_fwd : tvtype_t
TV_postfwd : tvtype_t
TV_prepostfwd : tvtype_t
Eine Durchquerung des Diagramms unter Verwendung einer Tiefensuche nur im folgenden Diagramm
Vorwärtsbögen. Die Wahl der Wurzeln für die Durchquerung ist die gleiche wie für beschrieben
TV_dfs über. Die unterschiedliche Reihenfolge der Besuche wird von angegeben TV_fwd, TV_postfwd
und TV_prepostfwd sind die gleichen wie diejenigen, die durch die analogen Durchläufe angegeben werden
TV_dfs, TV_postdfs und TV_prepostdfs.

TV_rev : tvtype_t
TV_postrev : tvtype_t
TV_prepostrev : tvtype_t
Eine Durchquerung des Diagramms unter Verwendung einer Tiefensuche nur im folgenden Diagramm
umgekehrte Bögen. Die Wahl der Wurzeln für die Durchquerung ist die gleiche wie für beschrieben
TV_dfs über. Die unterschiedliche Reihenfolge der Besuche wird von angegeben TV_rev, TV_postrev
und TV_prepostrev sind die gleichen wie diejenigen, die durch die analogen Durchläufe angegeben werden
TV_dfs, TV_postdfs und TV_prepostdfs.

TV_bfs : tvtype_t
Eine Durchquerung des Graphen unter Verwendung einer Breitensuche im Graphen, wobei die Kante ignoriert wird
Richtungen. Siehe den Artikel auf TV_dfs oben für die Rolle von $tvroot.

Beispiele:


gvpr -i 'N[color=="blau"]' Datei.gv

Erzeugen Sie den knoteninduzierten Teilgraphen aller Knoten mit der Farbe Blau.

gvpr -c 'N[color=="blue"]{color = "Rot"}' Datei.gv

Machen Sie alle blauen Knoten rot.

START { int n, e; int tot_n = 0; int tot_e = 0; }
BEG_G {
n = nNodes($G);
e = nEdges($G);
printf ("%D Fiber Node %d Kanten %s\n", n, e, $G.name);
tot_n += n;
tot_e += e;
}
ENDE { printf ("%D Fiber Node %d Kanten insgesamt\n", tot_n, tot_e) }

Version des Programms gc.

gvpr -c ""

Gleichwertig nop.

BEG_G { graph_t g = Graph ("verschmelzen", "S"); }
E {
Knoten_t h = clone(g,$.head);
Knoten_t t = clone(g,$.tail);
Kante_t e = Kante(t,h,"");
e.Gewicht = e.Gewicht + 1;
}
END_G { $O = g; }

Erzeugt eine strikte Version des Eingabediagramms, wobei das Gewichtsattribut einer Kante vorliegt
gibt an, wie viele Kanten aus dem Eingabediagramm die Kante darstellt.

START {node_t n; int Grad[]}
E{deg[head]++; deg[tail]++; }
END_G {
für (Grad[n]) {
printf ("Grad[%s] = %d\n", n.name, Grad[n]);
}
}

Berechnet die Grade von Knoten mit Kanten.

START {
int i, Einzug;
int seen[string];
ungültig prInd (int cnt) {
für (i = 0; i < cnt; i++) printf (" ");
}
}
BEG_G {

$tvtype = TV_prepostfwd;
$tvroot = Knoten($,ARGV[0]);
}
N {
if (gesehen[$.name]) Einzug--;
sonst {
prInd(indent);
drucken ($.name);
gesehen[$.name] = 1;
Einzug++;
}
}

Druckt die Tiefendurchquerung des Diagramms, beginnend mit dem Knoten, dessen Name lautet
ARGV[0], als eingerückte Liste.


GVPRPATH
Durch Doppelpunkte getrennte Liste von Verzeichnissen, die durchsucht werden sollen, um die von angegebene Datei zu finden
die Option -f. gvpr verfügt über eine integrierte Standardliste. Wenn GVPRPATH ist nicht definiert, die
Es wird die Standardliste verwendet. Wenn GVPRPATH beginnt mit einem Doppelpunkt, die Liste wird durch gebildet
anhängen GVPRPATH zur Standardliste hinzufügen. Wenn GVPRPATH endet mit einem Doppelpunkt, die Liste ist
wird durch Anhängen der Standardliste an gebildet GVPRPATH. Andernfalls, GVPRPATH wird verwendet für
Die Liste.

Ersetzen Sie auf Windows-Systemen im vorherigen Absatz „Doppelpunkt“ durch „Semikolon“.

Nutzen Sie gvpr online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad