Gibt es ein JavaScript-Framework, das es ermöglicht, eine Parsing-Grammatik mit JavaScript-Syntax zu definieren, ähnlich wie Irony für C#?Gibt es ein Framework zum Definieren von Parsern in JavaScript?
Antwort
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.
Dies ist nicht genau das, was Sie brauchen, aber this article geht durch einen rekursiven Sink Parser in Javascript für Javascript selbst.
Das ist eigentlich Top-down-Operator Vorrang. Ich denke, es ist auch in einem Kapitel des Buches "Beautiful Code" zu finden. – Nosredna
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
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.
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
- 1. Gibt es ein Framework für Multiplayer-Brettspiele in JavaScript?
- 2. Gibt es ein E-Commerce-Framework für Javascript
- 3. Gibt es ein Framework, das es mir erlaubt, ein Modell nur einmal zu definieren?
- 4. Gibt es ein Tool zum Überprüfen der .NET Framework Version?
- 5. Gibt es eine Brücke zwischen Stanfords CoreNLP- und OpenNLP-Parsern?
- 6. Korrekte Verwendung von const zum Definieren von Funktionen in JavaScript
- 7. Gibt es ein .NET Polymorphic Data Framework
- 8. Gibt es ein Javascript-Äquivalent von Pythons __getattr__-Methode?
- 9. Gibt es ein solches CSS-Framework?
- 10. Gibt es ein WxWidgets-Framework für C?
- 11. Gibt es Tools zum Definieren der Rest API im Dokument?
- 12. Gibt es ein Set-Literal in JavaScript?
- 13. Gibt es ein Framework zum Schreiben von GUI-Editor in C#?
- 14. Gibt es eine Bibliothek oder ein Framework zum Festlegen von Einstellungen in einer iPhone-Anwendung?
- 15. Ionic - Verwenden von Javascript zum Definieren von SASS-Variablen
- 16. Verstehen und Schreiben von Parsern
- 17. Gibt es ein Tool oder ein Framework zum Generieren einer CRUD-Benutzeroberfläche in Swing?
- 18. Gibt es in ASP.NET MVC ein Äquivalent von JavaScript-Generatoren?
- 19. Gibt es ein C# -Framework oder einen Code zum Parsen von * blg Perfomance Counter-Protokolldateien?
- 20. Gibt es ein Tool zum Konvertieren von Java, JavaScript oder Python in PHP?
- 21. Gibt es ein GUI-Framework, das HTML und CSS zum Erstellen von GUIs verwendet?
- 22. Gibt es Zeiger in Javascript?
- 23. Gibt es ein JavaScript-Kompass-HTML-Widget?
- 24. Gibt es ein Cmdlet zum Zuordnen von Netzwerklaufwerken?
- 25. Gibt es ein definitives * nix-Befehlszeilentool zum Untersuchen von Protokollpuffern?
- 26. Gibt es ein Eclipse-Plugin zum Generieren von Entwurfsmustern?
- 27. Gibt es ein Java-Paket zum Erstellen von URLs?
- 28. Gibt es ein Tool zum Generieren von DTOs aus Entitäten?
- 29. Gibt es ein gutes Werkzeug zum programmatischen Erstellen von Diagrammen?
- 30. Gibt es ein Perl-Modul zum Analysieren von Säulenschrift?
Danke, dass das, was ich suchte zu sein scheint, werde ich einen genaueren Blick. –