2009-06-23 7 views

Antwort

3

Ich weiß nicht viel darüber, wie Ironie funktioniert, aber Chris Double verfügt über eine Bibliothek, mit der Sie Grammatiken in JavaScript hier definieren können: http://www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html. Der Code lautet available on GitHub.

Es ist eine "Parser-Kombinator" -Bibliothek, was bedeutet, dass Sie Parser für jede Produktion in Ihrer Grammatik zu einem größeren Parser kombinieren, der das Ganze analysiert. Jede "Subgrammatik" ist nur eine Funktion, die Sie durch Aufruf der Bibliotheksfunktionen erstellen.

+0

Danke, dass das, was ich suchte zu sein scheint, werde ich einen genaueren Blick. –

0

Dies ist nicht genau das, was Sie brauchen, aber this article geht durch einen rekursiven Sink Parser in Javascript für Javascript selbst.

+1

Das ist eigentlich Top-down-Operator Vorrang. Ich denke, es ist auch in einem Kapitel des Buches "Beautiful Code" zu finden. – Nosredna

+1

rekursiver Abstieg ist von oben nach unten - der "Abstieg" impliziert Top-Down und "rekursiv" bedeutet, dass Produktionsregeln wie Funktionen sich selbst nennen. Die Priorität des Operators bezieht sich darauf, wie die Vorausschau gelöst wird. – eulerfx

3

Ich habe ein JavaScript Parsing DSL namens Chevrotain gebaut.

Quelle:https://github.com/SAP/chevrotain

Online Spielplatz:http://sap.github.io/chevrotain/playground/

Es ist nicht ein Parser combinator wie Irony, aber es ist sehr ähnlich , wie es Ihnen zu erlaubt „, um eine Analyse definieren Grammatik mit JavaScript-Syntax " ohne Code-Generierungsphase.

es zu verwenden ist ähnlich wie „Hand Gebäude“ eine rekursive anständigen Parser, nur ohne die meisten der Kopfschmerzen wie:

  • Die Look-Ahead-Funktion Erstellung (Entscheidung, welche Alternative zu nehmen) Erholung
  • Automatische Fehler .
  • Linke Rekursionserkennung
  • Mehrdeutigkeitserkennung.
  • Positionsinformationen.
  • ...

als Chevrotain Griffe, die automatisch.

0

PEG.js könnte eine Lösung sein.

PEG.js ist ein einfacher Parser-Generator für JavaScript, der schnelle Parser mit ausgezeichneter Fehlerberichterstattung erzeugt. Sie können damit komplexe Daten oder Computersprachen verarbeiten und Transformatoren, Interpreter, Compiler und andere Tools einfach erstellen.aus dem Kasten heraus Berichterstattung Basierend auf Packrat Parser Formalismus

Eigenschaften

Einfach und ausdruck Grammatik Syntax sowohl lexikalische und syntaktische Analyse Integrierbar Parser ausgezeichnete Fehler hat - leistungsfähige als herkömmliche LL (k) und LR (k) Parser Nutzbar von Ihrem Browser, über die Befehlszeile oder über JavaScript-API

Verwandte Themen