Die PARSNIP-Parser-Bibliothek

Jetzt downloaden

Die PARSNIP-Parser-Bibliothek Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • LGPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Alex Rubinsteyn
  • Website des Verlags:

Die PARSNIP-Parser-Bibliothek Stichworte


Die PARSNIP-Parser-Bibliothek Beschreibung

Mit der PARSNIP-Parserbibliothek können Sie komplexe Parser aus einem reichen Satz von Parser-Primitiven aufbauen. Mit der PARSNIP-Parserbibliothek können Sie komplexe Parser aus einem reichen Satz von Parser-Primitiven aufbauen. Diese Methode der Parserkonstruktion ist von Parsec und anderen Parser-Kombinatorbibliotheken für Haskell und ML inspiriert. Die Standard-Parser-Strategie von PARSNIP ist eine Form der Packrat-Analyse, die ergänzt, um den linken Rekursion innerhalb eines Parsers zu ermöglichen. . Vanilla PackRat Parsing ist als Konfigurationsoption verfügbar Ein StringParser, der mit der Reihenfolge von Eingangszeichen auf String s übereinstimmt und Srange (char l, char u) charrangeparser kehrt einen charrangeparser zurück, der nur gelingt, wenn ein Eingabezeichen in Reichweite ist (String s ) ONEOFARSER Gibt einen einzelnen OneOfarser zurück, der mit einem Eingabezeichen auf ein beliebiges Zeichen in der Zeichenfolge s übereinstimmt. Gibt ein übereinstimmendes Zeichen in einer Zeichenfolge zurück. In einem Tupel fehl nichts anderes. Die Abkürzung für diesen Parser ist: p1 >> p2 seq_vec (Parser p1, Parser p2) SEQVECPARSER Erstellt einen Vektorsequenz-Parser: Wenn beide Parsern Erfolgreich, senden Sie ihre Ergebnisse in einem Vektor zurück, schlägt nichts anderes. Die Vektoren können im Gegensatz zu Tupel von willkürlicher Länge sein, erfordern jedoch, dass die Parser von einem homogenen Ein- und Ausgabetyp sein. Die Abkürzung für diesen Parser lautet: P1 P2 CONCAT (Parser P1, Parser P2) Concatarser erstellt ein Concat-Parser: Analyse in der Reihenfolge, aber verkettend sind Ergebnisse, anstatt sie zu stecken. Die Abkürzung für diesen Parser ist: P1 + P2. Wahl (Parser p1, Parser p2) ChoiceParserser Parser-Wahl: Gibt den ersten seiner beiden Parser-Parameter zurück, um erfolgreich zu sein, scheitert nichts anderes. Backtracks auf dem Eingabestrom für den zweiten Parser. Die Abkürzung für diesen Parser ist: P1 | p2. nicht (Parser p) NOTPARSER erstellt einen NOTPARSER, der erfolgreich ist, wenn p schlägt und keinen Input.Call0 (Parser p, verbraucht, R (* Fn) (void)) CallParser0 erstellt einen CallParser, der FN ruft, wenn Ps PARSE erfolgreich ist. call1 (Parser p, r (* fn) (t)) CallParser1 erstellt einen CallParser, der FN mit den Ergebnissen von Ps PARSE.CALL2 (Parser > P, R (* Fn) (T1, T2)) CallParSer2 erstellt einen CallParser, der das 2-Tupel auspackt, das p kehrt und passiert die Komponenten als Argumente an fn.call3 (Parser p, r (* fn) (t1, t2, t3)) CallParser3 erstellt einen CallParser, der das 3-Tupel auspackt, das p kehrt, und die Komponenten als Argumente auf fn.Many (Parser p, int min = 0, durchläuft, INT MAX = INT_MAX) manyparser Der Manyparser hält wiederholt P an, bis max erreicht ist oder p schlägt. Wenn die Anzahl der Analyse weniger als min ist, schlägt der Manyparser aus. Jedes Mal, wenn P erfolgreich analysiert wird, wird das Ergebnis an einen Akkumulator des Typs ACC übergeben. Wenn der Manyparser erfolgreich ist, gibt er die angesammelten Daten des ACC-Objekts zurück. Viele1 (Parser p, int max = int_max) manyparser Erzeugt einen Manyparser, der zumindest eine Analyse von P benötigt, um erfolgreich zu sein.


Die PARSNIP-Parser-Bibliothek Zugehörige Software

Rundnummer

BuildNumber ist ein Dienstprogramm, um automatisch inkrementierende Build-Nummern an C- und C ++ - Projekte hinzuzufügen. ...

400

Herunterladen

Total

TRMAKE ist ein modularisiertes Makefile-System, das für die Multi-Platform-C ++ - Entwicklung entwickelt wurde. ...

392

Herunterladen