Dies ist die Befehlsseite, die 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
Seite - Parser-Generator
ZUSAMMENFASSUNG
Seite ?Optionen...? ?Varianten des Eingangssignals: ?Möglichkeiten für das Ausgangssignal:??
_________________________________________________________________________________________________
BESCHREIBUNG
Die in diesem Dokument beschriebene Anwendung, Seite, ist eigentlich nicht nur ein Parser-Generator,
Wie der Name schon sagt, handelt es sich jedoch um ein generisches Werkzeug zur Ausführung beliebiger Transformationen
Texte.
Seine Generizität entsteht durch die Verwendung von Plugins zum Lesen, Umwandeln und Schreiben
Daten, und der von Tcllib bereitgestellte vordefinierte Satz von Plugins dient der Generierung von
Auswendiglernen rekursiver Abstiegsparser (auch bekannt als Packrat Parser) aus Grammatikspezifikationen
(Parsing Ausdruck Grammatiken).
Seite steht oben auf der Verpackung page::pluginmgr, indem es seine Funktionalität in a verpackt
Befehlszeilenbasierte Anwendung. All die anderen Seite::* Pakete sind Plugins und/oder
unterstützende Pakete für die Generierung von Parsern. Die Parser selbst basieren auf dem
Pakete Grammatik::Peg, grammatik::peg::interp und Grammatik::mengine.
COMMAND LINE
Seite ?Optionen...? ?Varianten des Eingangssignals: ?Möglichkeiten für das Ausgangssignal:??
Dies ist die allgemeine Anrufform Seite. Die Anwendung liest den Inhalt von
die Datei Varianten des Eingangssignals:, verarbeiten Sie sie unter der Kontrolle des angegebenen Optionen, und dann
Schreiben Sie das Ergebnis in die Datei Möglichkeiten für das Ausgangssignal:.
If Varianten des Eingangssignals: ist die Saite - Die zu verarbeitenden Daten werden ausgelesen Standard statt a
Datei. Analog wird auf das Ergebnis geschrieben stdout anstelle einer Datei if Möglichkeiten für das Ausgangssignal:
ist die Saite -. Eine fehlende Ausgabe- oder Eingabespezifikation führt dazu, dass die Anwendung
annehmen -.
Die detaillierten Spezifikationen der anerkannten Optionen finden Sie im Abschnitt
OPTIONAL.
Weg Varianten des Eingangssignals: (im)
Dieses Argument gibt den Pfad zu der Datei an, die von verarbeitet werden soll
Anwendung, oder -. Der letzte Wert veranlasst die Anwendung, den Text zu lesen
von Standard. Ansonsten muss es existieren und lesbar sein. Wenn das Argument ist
Kommt demnächst... - wird angenommen.
Weg Möglichkeiten für das Ausgangssignal: (im)
Dieses Argument gibt an, wohin der generierte Text geschrieben werden soll. Es kann das sein
Pfad zu einer Datei, oder -. Der letzte Wert veranlasst die Anwendung, das zu schreiben
generiert dokumentiert zu stdout.
Wenn die Datei Möglichkeiten für das Ausgangssignal: nicht existiert, dann muss [Dateiverzeichnisname $Ausgabe] existieren
und muss ein beschreibbares Verzeichnis sein, da die Anwendung die Datei erstellt
schreibe an.
Wenn das Argument fehlt - wird angenommen.
OPERATION
... lesen ... transformieren ... schreiben - Plugins - Pipeline ...
OPTIONAL
In diesem Abschnitt werden alle Optionen beschrieben, die dem Benutzer der Anwendung zur Verfügung stehen. Optionen
werden immer der Reihe nach abgearbeitet. D.h. von beiden --help und --Version sind die Option angegeben
zuerst angetroffen wird, hat Vorrang.
Unbekannte Optionen, die vor einer der Optionen angegeben wurden -rd, -wr, oder auch -tr wird eine Verarbeitung verursachen
mit einem Fehler abbrechen. Unbekannte Optionen liegen zwischen diesen Optionen oder nach der letzten
Von ihnen wird angenommen, dass sie immer ein einzelnes Argument annehmen und mit dem letzten verknüpft sind
Plugin-Option kommt vor ihnen. Sie werden nach allen relevanten Plugins überprüft und
Daher sind die Optionen, die sie verstehen, bekannt. D.h. Solche unbekannten Optionen verursachen Fehler, wenn und
nur, wenn die Plugin-Option, mit der sie verknüpft sind, sie nicht versteht und dies auch nicht der Fall war
wird durch eine spätere Plugin-Option ersetzt.
Standardoptionen werden nur dann verwendet, wenn die Befehlszeile keine Optionen enthielt
alle. Sie richten die Anwendung als PEG-basierten Parser-Generator ein. Die genaue Liste von
Optionen ist
-c Stift
Und nun die erkannten Optionen und ihre Argumente, falls vorhanden:
--help
-h
-? Wenn eine dieser Optionen in der Befehlszeile gefunden wird, werden alle zuvor genannten Argumente angezeigt
oder danach werden ignoriert. Die Anwendung druckt eine kurze Beschreibung des
Erkannte Optionen und Beenden.
--Version
-V Wenn eine dieser Optionen in der Befehlszeile gefunden wird, werden alle zuvor genannten Argumente angezeigt
oder danach werden ignoriert. Die Anwendung druckt ihre eigene Revision und wird beendet.
-P Diese Option signalisiert der Anwendung, beim Lesen des Textes visuelles Feedback zu aktivieren
Eingang.
-T Diese Option signalisiert der Anwendung, beim Lesen der Eingabe Statistiken zu sammeln
und sie nach Abschluss des Lesevorgangs auszudrucken, bevor mit der Verarbeitung begonnen wird.
-D Diese Option signalisiert der Anwendung, die Protokollierung in der sicheren Basis zu aktivieren
Debuggen von Problemen mit Plugins.
-r Parser
-rd Parser
--Leser Parser
Diese Optionen geben das Plugin an, das die Anwendung zum Lesen verwenden muss Varianten des Eingangssignals:.
Wenn die Optionen mehrmals verwendet werden, wird die letzte verwendet.
-w Generator
-wr Generator
--Schriftsteller Generator
Diese Optionen geben das Plugin an, das die Anwendung zum Generieren verwenden muss
das Finale schreiben Möglichkeiten für das Ausgangssignal:. Wenn die Optionen mehrmals verwendet werden, wird die letzte Option verwendet
verwendet werden.
-t Prozessdefinierung
-tr Prozessdefinierung
--verwandeln Prozessdefinierung
Diese Optionen geben ein Plugin an, das auf der Eingabe ausgeführt werden soll. Im Gegensatz zu Lesern und
Autoren, die jeder verwenden wird nicht Ersetzen Sie frühere Verwendungen, aber fügen Sie jedes ausgewählte Plugin zu einem hinzu
Liste der Transformationen, entweder am Anfang oder am Ende, je nach zuletzt gesehener Verwendung von
beide Optionen -p or -a. Die anfängliche Standardeinstellung besteht darin, die neuen Transformationen anzuhängen.
-a
--anhängen
Diese Optionen signalisieren der Anwendung, dass alle folgenden Transformationen durchgeführt werden sollen
am Ende der Liste der Transformationen hinzugefügt.
-p
--prepend
Diese Optionen signalisieren der Anwendung, dass alle folgenden Transformationen durchgeführt werden sollen
am Anfang der Liste der Transformationen hinzugefügt.
--zurücksetzen
Diese Option signalisiert der Anwendung, die Liste der Transformationen zu löschen. Das ist
notwendig, um die verwendeten Standardtransformationen zu löschen.
-c Datei
--Aufbau Datei
Diese Option veranlasst die Anwendung, eine Konfigurationsdatei und/oder ein Plugin zu laden. Das
ist ein Plugin, das im Wesentlichen einen vordefinierten Satz von Befehlszeilenoptionen bereitstellt.
Sie werden genau so verarbeitet, als wären sie anstelle der Option angegeben worden
und seine Argumente. Dies bedeutet, dass unbekannte Optionen zu Beginn des gefunden werden
Konfigurationsdatei sind mit dem letzten Plugin verknüpft, auch wenn dieses Plugin es war
vor der Konfigurationsdatei selbst angegeben werden. Umgekehrt kommen unbekannte Optionen
Nachdem die Konfigurationsdatei einem in der Datei angegebenen Plugin zugeordnet werden kann.
Wenn das Argument eine Datei ist, die nicht als Plugin geladen werden kann, wird die Anwendung dies tun
Gehen Sie davon aus, dass der Inhalt eine Liste von Optionen und deren Argumenten ist, getrennt durch
Leerzeichen, Tabulatoren und Zeilenumbrüche. Optionen und Argumente, die Leerzeichen enthalten, können in Anführungszeichen gesetzt werden
über doppelte Anführungszeichen (") und Anführungszeichen ('). Das Anführungszeichen kann darin angegeben werden
in einer in Anführungszeichen gesetzten Zeichenfolge durch Verdoppelung. Zeilenumbrüche in einer Zeichenfolge in Anführungszeichen werden unverändert akzeptiert.
PLUGINS
Seite nutzt vier verschiedene Arten von Plugins, nämlich: Reader, Writer,
Transformationen und Konfigurationen. Hier bieten wir nur eine grundlegende Einführung dazu
Verwenden Sie sie von Seite. Die genauen APIs, die von den Plugins bereitgestellt und erwartet werden, finden Sie hier
in der Dokumentation für page::pluginmgr, für diejenigen, die ihre eigenen Plugins schreiben möchten.
Plugins werden als Argumente für die Optionen angegeben -r, -w, -t, -cund ihr Äquivalent
längere Formen. Siehe den Abschnitt OPTIONAL als Referenz.
Jedes dieser Argumente wird zunächst als Name einer Datei behandelt und diese Datei wird als geladen
das Plugin. Wenn jedoch keine Datei mit diesem Namen vorhanden ist, wird sie übersetzt
den Namen eines Pakets, und dieses Paket wird dann geladen. Für jede Art von Plugins die
Die Paketverwaltung durchsucht nicht nur die regulären Pfade, sondern einen festgelegten Anwendungs- und Typ-
auch bestimmte Pfade. Bitte beachten Sie den Abschnitt PLUGIN STANDORTE für eine Auflistung aller Wege
und ihre Quellen.
-c Name
Konfigurationen. Der Name des Pakets für das Plugin Name is
"page::config::Name".
Wir haben ein vordefiniertes Plugin:
Wirbel Es richtet die Anwendung als Parser-Generator ein, der Parsing akzeptiert
Ausdrucksgrammatiken und Schreiben eines Packrat-Parsers in Tcl. Das Tatsächliche
Die darin angegebenen Argumente sind:
--zurücksetzen
--anhängen
--reader peg
--transform Reichweite
--transform Verwendung
--Autor mich
-r Name
Leser. Der Name des Pakets für das Plugin Name ist „page::reader::Name".
Wir haben fünf vordefinierte Plugins:
Wirbel Interpretiert die Eingabe als Parsing-Ausdrucksgrammatik (PEG) und erzeugt a
Baumdarstellung dafür. Sowohl die Syntax von PEGs als auch die Struktur der
Baumdarstellung werden in eigenen Manpages erläutert.
hb Interpretiert die Eingabe als Tcl-Code, wie er vom Writer-Plugin generiert wird hb und
generiert seine Baumdarstellung.
sehen Interpretiert die Eingabe als Serialisierung eines PEG, wie es von generiert wird
Writer-Plugin sehen, mit dem paket Grammatik::Peg.
Zitrone Interpretiert die Eingabe als eine von Richard verstandene Grammatikspezifikation
Hipps LEMON Parser-Generator und generiert eine Baumdarstellung dafür.
Sowohl die Eingabesyntax als auch die Struktur der Baumdarstellung sind
in ihren eigenen Manpages erklärt.
Bäumer
Interpretiert die Eingabe als Serialisierung von a struct::tree. Es ist validiert
als solche, aber sonst nichts. Es ist nicht Es wird davon ausgegangen, dass es sich um die Baumdarstellung handelt
einer Grammatik.
-w Name
Schriftsteller. Der Name des Pakets für das Plugin Name ist „page::writer::Name".
Wir haben acht vordefinierte Plugins:
Identität
Schreibt die eingehenden Daten einfach so, wie sie sind, ohne Änderungen vorzunehmen. Das
eignet sich gut zum Überprüfen des Rohergebnisses eines Readers oder einer Transformation.
null Erzeugt nichts und ignoriert die eingehende Datenstruktur.
Baum Geht davon aus, dass die eingehende Datenstruktur eine ist struct::tree und erzeugt eine
eingerückte Textdarstellung aller Knoten, ihrer übergeordneten Beziehungen,
und ihre Attributinformationen.
Wirbel Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik und schreibt sie als PEG aus. Das Ergebnis ist schön
formatiert und teilweise vereinfacht (Strings als Zeichenfolgen). A
Im Wesentlichen ein hübscher Drucker, kann aber auch verwendet werden, um einen kanonischen Drucker zu erhalten
Darstellung der Eingabegrammatik.
TPC Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik und schreibt Tcl-Code aus, der ein Paket definiert, das
definiert eine Grammatik::Peg Objekt, das die Grammatik enthält, wenn es geladen wird
ein Dolmetscher.
hb Dies ist wie das Writer-Plugin TPC, aber es schreibt nur die Aussagen welche
Definieren Sie statistische Ausdrucks- und Grammatikregeln. Der Code, der das Ergebnis a
Paket wird weggelassen.
sehen Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik, wandelt sie intern in eine um Grammatik::Peg Objekt
und schreibt seine Serialisierung aus.
me Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik und schreibt Tcl-Code aus, der ein Paket definiert, das
implementiert einen memoisierenden rekursiven Abstiegsparser basierend auf der Match-Engine
(ME) im Paket enthalten Grammatik::mengine.
-t Name
Transformer. Der Name des Pakets für das Plugin Name is
"page::transform::Name".
Wir haben zwei vordefinierte Plugins:
erreichen Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik. Es bestimmt, welche nichtterminalen Symbole und Regeln gelten
sind über Startsymbol/Ausdruck erreichbar. Alle nichtterminalen Symbole, die
nicht erreicht wurden, werden entfernt.
- Geht davon aus, dass die eingehende Datenstruktur eine Baumdarstellung von a ist PEG
oder eine andere Grammatik. Es bestimmt, welche nichtterminalen Symbole und Regeln gelten
sind in der Lage, eine zu generieren endlich Folgen von Terminalsymbolen (im Sinne
für eine kontextfreie Grammatik). Alle nichtterminalen Symbole, die nicht berücksichtigt wurden
in diesem Sinne nützliche Elemente werden entfernt.
PLUGIN STANDORTE
Die anwendungsspezifischen Pfade, nach denen gesucht wird Seite entweder sind, oder kommen von:
[1] Das Verzeichnis „~/.page/plugin"
[2] Die Umgebungsvariable PAGE_PLUGINS
[3] Der Registrierungseintrag HKEY_LOCAL_MACHINE\SOFTWARE\PAGE\PLUGINS
[4] Der Registrierungseintrag HKEY_CURRENT_USER\SOFTWARE\PAGE\PLUGINS
Die typspezifischen Pfade, nach denen gesucht wird Seite entweder sind, oder kommen von:
[1] Das Verzeichnis „~/.page/plugin/"
[2] Die Umgebungsvariable PAGE__PLUGINS
[3] Der Registrierungseintrag HKEY_LOCAL_MACHINE\SOFTWARE\PAGE\\PLUGINS
[4] Der Registrierungseintrag HKEY_CURRENT_USER\SOFTWARE\PAGE\\PLUGINS
Wo der Platzhalter ist immer einer der folgenden Werte, richtig großgeschrieben.
[1] Leser
[2] Schriftsteller
[3] transformieren
[4] Konfig
Die Registrierungseinträge sind spezifisch für die Windows(tm)-Plattform, alle anderen Plattformen jedoch
ignoriere sie.
Der Inhalt sowohl der Umgebungsvariablen als auch der Registrierungseinträge wird als Liste interpretiert
von Pfaden, wobei die Elemente entweder durch Doppelpunkt (Unix) oder Semikolon (Windows) getrennt sind.
Nutzen Sie die Seite online über die Dienste von onworks.net