Ratten!

Ratten! ist ein leicht dehnbarer Parsergenerator für C-artige Sprachen.
Jetzt downloaden

Ratten! Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • LGPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Robert Grimm
  • Website des Verlags:
  • http://www.cs.nyu.edu/rgrimm/xtc/rats.html

Ratten! Stichworte


Ratten! Beschreibung

Ratten! ist ein leicht erweiterbar Parser-Generator für C-ähnliche Sprachen. Ratten! ist ein leicht erweiterbar Parser-Generator für C-ähnliche Sprachen; obwohl zur Zeit erzeugt es nur Parser in Java. Ratten! Projekt wurde so konzipiert, dass explizit Grammatiken sind prägnant und leicht modifizierbar. Zu diesem Zweck Ratten !? organisiert Grammatiken in Module ,? baut auf Expression Grammatiken anstelle von kontextfreien Grammatiken und Parsen Parsen vintegrates Lexing mit, d.h. abtastfreien ist ,? unterstützt die automatische Generierung von abstrakten Syntaxbäumen ,? und bietet eine gut definierte Schnittstelle für Parser erstreckt kontextsensitive Sprachen und formats.Parsers von Ratten erzeugt zu erkennen! memoize Zwischenergebnisse, die in Gegenwart von unbegrenztem Vorgriff-und Backtracking-lineare Zeitleistung gewährleistet. Als Ergebnis sind sie im Wesentlichen funktional (auch wenn sie in einer imperativen Sprache umgesetzt werden) und auch als packrat Parsern. Hier sind einige der wichtigsten Features von Rats!: · Ratten! stützt sich auf ein Modulsystem zur Struktur Grammatiken und deren Erweiterungen. Insbesondere stützt sie sich auf Module, um verwandte Produktionen in separate Einheiten. Als nächste Modul Änderungen ausdrücken prägnante Erweiterungen zu anderen Modulen und hinzufügen, ändern oder entfernen einzelne Alternativen in Produktionen. Schließlich werden Modulparameter compose Module und deren Erweiterungen miteinander. · Ratten! Grammatiken build auf Packrat Parser (PEGs). Während PEGs viele Konstrukte mit der bekannten EBNF Notation teilt, ist ein wichtiger Unterschied, dass sie bestellt Entscheidungen anstelle der ungeordneten Auswahl von kontextfreien Grammatiken (CFG) und anderen Parser-Generatoren, wie Yacc oder ANTLR verwendet nutzen. Als Ergebnis Ratten! Grammatiken vermeiden Unklarheiten und Unterstützung lokalisierten Veränderungen. Zusätzliche Flexibilität wird durch syntaktische Prädikate angeboten, die Ausdrücke passen, aber nicht verbrauchen die Eingabe, so unbegrenzt Look-Ahead-Bereitstellung, und durch die Integration von Lexing mit Parsen, die stark das Hinzufügen von neuen Token zu einer Grammatik vereinfacht. PEGs hat den zusätzlichen Vorteil, dass sie nicht nur unter Zusammensetzung geschlossen sind (im Gegensatz zu dem LR oder LL Grammatiken von Yacc und ANTLR verwendet wird), sondern auch Komplement-Kreuzung und (im Gegensatz zu CFGs im Allgemeinen). · Um die Notwendigkeit einer expliziten semantische Aktionen, Ratten zu beseitigen! kann automatisch abstrakte Syntaxbäume erzeugen. Insbesondere unterstützt es Produktionen, die keine semantischen Werte (wie jene, die Anerkennung Leerzeichen oder Kommentare), String-Werte (wie die Anerkennung Literale oder Kennungen) und generischen Baumknoten (potentiell alle andere Produktionen) zurückzukehren. · Da einige computerlesbare Formate sind von Natur aus kontextsensitiv und kann nicht als PEGs (oder CFG) ausgedrückt werden, Ratten! unterstützt zwei Techniken für die Parser-Kontext oder Zustandsverwaltungs, wodurch eine gut definierte Schnittstelle zur Bereitstellung von Parsern erstrecken. Zuerst Ratten! bietet Parser Aktionen Ausdrücke zu erkennen, die auf lokalen Kontext abhängen, das heißt, Ausdrücke, die Ausdrücke auf unmittelbar abhängig innerhalb der gleichen Produktion vorangehenden. Ein Beispiel für eine solche lokale Kontext ist eine explizite Länge so viele Instanzen einiger Ausdruck vorangeht. Zweitens Ratten! unterstützt ein globales Statusobjekt Ausdrücke zu erkennen, die auf möglicherweise globalen Kontext abhängen. Staatliche Modifikationen sind innerhalb leichter Transaktionen durchgeführt, die den grundsätzlich funktionalen Charakter von Ratten! -Generated Parser bewahren. Ein Beispiel für einen globalen Kontext ist die Symboltabelle zum Disambiguieren Variable und typedef-Namen verwendet, wenn C-Parsing Was ist neu in dieser Version: · Diese Freigabe verbessert die Fehlerberichterstattung generiert Parser und behebt einen Code-Generierung Fehler.


Ratten! Zugehörige Software