Frage

würde ich ein Dienstprogramm wie das ich ein Stück Text (in einem Textfeld) und Experiment mit einem Parser Grammatik (durch Bearbeitung eines BNF ähnlichen) und Token-Struktur, während ich sehen kann, geben kann, wie der Parsing-Baum aussehen würde ( und wenn sie nicht in der Lage sind, den Text mit meiner aktuellen Grammatik zu analysieren, würde ich sehen, wo er angehalten).

Das Schlüsselwort ist Interaktivität. Ich könnte dies zum Beispiel Flex und Bison tun, aber ich würde ständig meine Lexer und Parser neu erstellen müssen.

Gibt es so etwas gibt? Ich habe keine gefunden. Im Idealfall sollte es in Linux arbeiten und frei sein, wenn das keine Option ist immer noch davon ist Interesse.

War es hilfreich?

Lösung

Sie könnte es mit pyBison und Freunde mit gtksourceview

klopfen

Ich habe nichts gesehen, aber man konnte ein Programm schreiben, dies zu tun, wenn man will. Ich würde entweder Port die Quelle von Bison zu einem DSO, so dass Sie es laden und Ihre BNF durch sie ausführen und die Automaten Tabellen herausziehen. Bringen Sie dann bei der Auswertung auf eine GTK-Source-View-Textbox

- oder -

Erstellen Sie einen Frontend (gtksourceview gut scheint wieder) und befestigen, dass bis zu einem gewissen System ruft Ihren flex.c und bison.c zu schreiben, und bildet ein gemeinsames Objekt output.so die dann in die App geladen und entladen, wo Sie dann einige Quelle durchlaufen.

Was ich neige dazu, wenn zu tun, um eine Grammatik zu entwickeln verwenden ist pyBison und andere High-Level-Sprache Tools, um die Geschwindigkeit der Entwicklung zu erhöhen. Verwenden Sie dann C / Flex / Bison mit von .l und .y später Dateien. GTK sollte einfach sein, in Python zu verwenden, die oben ohne die Notwendigkeit für DSOs und dlopen () Fandango zu erreichen.

Ganz ähnlich eine Read-Eval-Druckschleife, wobei die BNF-Syntax und Test in einer Schleife ist mit einigen backend D / NFA Generatoren

einige Zeit später

Ich fand diese Beantwortung einer anderen Frage:

http://jscc.jmksf.com/jscc_on_web.png

Es ist ein JavaScript Yacc / Bison artiges Werkzeug für Parser in JavaScript zu erzeugen. Sie könnten dies leicht Ihre C Grammatiken verwenden zu debuggen, da sie alle BNF sowieso sind! Ich werde es sicher verwendet werden.

Andere Tipps

ANTLRWorks ( http://www.antlr.org/works/index.html) ist die beste interaktive Grammatik-Entwicklungsumgebung die ich bisher gesehen habe. Es ließ uns Sie visualisieren und Debug-LL (*) in ANTLR geschrieben Grammatiken.

Hier finden Sie aktuelle VisualBNF

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top