Erstellen eines abstrakten Syntaxbaum-Parsers für Ihre eigene domänenspezifische Sprache
pyastbuilder
ist ein Python-Framework zum Erstellen von Parsern, das einen Objektbaum erstellt, der den abstrakten Syntaxbaum (AST) der Sprache widerspiegelt, der pythonisch navigiert, durchsucht und geändert werden kann. Im Paket ist ein anschauliches Beispiel enthalten: ein Parser für die W3C-SPARQL-Sprache, nämlich sparqlparser.py
, der Sparql v1.1 implementiert. Es kann jedoch jede andere BNF-spezifizierte Sprache unterstützt werden.
Es gibt viele spezifische oder generische Parser. Der Grund für die Entwicklung pyastbuilder
liegt jedoch darin, dass das Parsen häufig als ein dynamischer Streaming-Prozess betrachtet wird, bei dem mehrere Hooks vorhanden sind, an die man eigenen Code anhängen kann, im Gegensatz zur Generierung einer statischen, abstrakten Syntax Baum des elektronischen „Dokuments“ mit einer API für dessen Zugriff zur nachträglich analysierten Verarbeitung.
Die schwere Arbeit beim eigentlichen Parsen wird dem Pyparsing überlassen, das enthalten ist und ausgiebig genutzt wird.
Wir folgen unserer Gefolgschaft
DESIGN-PRINZIP: Seien Sie vorausschauend. Definieren Sie klare Kriterien für den Ort der Dokumentation. Welcher Teil der Dokumentation ist in den README-Dateien enthalten, welche Teile sind auf den Wiki-Seiten zu finden und welche Informationen fügen Sie als Kommentare in den Code ein? Definieren und dokumentieren Sie Ihre Dokumentationskriterien, vorzugsweise in der Hauptdokumentation, auf die Ihr Benutzer oder Entwickler zugreifen wird, bei der es sich wahrscheinlich um die README.md-Datei des Projekts handelt.
Bei der Dokumentation richten wir uns daher nach folgenden Kriterien:
pyastparser
in Zusammenhang stehen, werden als README.md-Dateien in jedem Ordner des Quellbaums dokumentiert.pyastbuilder
sowie die gesamte detaillierte, codespezifische Dokumentation sind im gesamten Quellcode als reStructuredText (reST)-Markup-Syntax verfügbar. Da diese Art der Dokumentation der Konvention von Python Pydoc folgt, können entsprechende HTML-Seiten generiert werden. Die Dokumentation ist nach dem Erstellen des HTML verfügbar, indem Sie einen Browser auf die Datei Doc/build/html/index.html
( TODO ) richten.Diese enthalten den Teil der Dokumentation, der den allgemeinen Entwurf des Quellcodes umfasst, der in dem jeweiligen Teil des Baums verfügbar ist. Diese Dokumentation richtet sich an die Entwickler des Projekts mit dem Ziel, ihnen ein umfassendes Verständnis von Folgendem zu vermitteln:
Eine vollständige Übersicht über die Wiki-Dokumentation finden Sie auf der Wiki-Homepage. Folgende Einträge sind zu erwarten:
sparqlparser
als Bibliothek in Ihrem eigenen Python-Code sowie zu jedem anderen sofort einsatzbereiten xxxparser
, der möglicherweise in Zukunft bereitgestellt wird, zu finden sind Projekt. Da jeder andere xxxparser
auf demselben Projekt basiert, können wir mit Sicherheit davon ausgehen, dass wir im sparqlparser
viele Verweise auf sehr ähnliche oder sogar identische Anwendungsfälle finden.xxxparser
erstellt haben, teilen Sie ihn bitte mit diesem Projekt und stellen Sie in unserem Benutzerhandbuch ein eigenes Kapitel über die Verwendung dieses Parsers bereit. Allerdings: Duplizieren Sie die Dokumentation nicht , sondern verwenden Sie stattdessen das sparqlparser
-Handbuch als Referenzhandbuch. Bitte lesen Sie CONTRIBUTING.md für Einzelheiten zu unserem Verhaltenskodex und dem Verfahren zur Übermittlung von Pull-Anfragen an uns.
Wir verwenden SemVer zur Versionierung. Die verfügbaren Versionen finden Sie in den Tags in diesem Repository.
Siehe auch die Liste der Mitwirkenden, die an diesem Projekt beteiligt sind.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.md