4

テキストの一部を (テキスト ボックスに) 与え、パーサーの文法 (同様の BNF を編集することによって) とトークン構造を実験しながら、解析ツリーがどのように見えるか (そしてそれが現在の文法を使用してテキストを解析できない場合、どこで停止したかがわかります)。

キーワードは双方向性です。たとえば、flex と bison を使用してこれを行うこともできますが、レクサーとパーサーを常に再作成する必要があります。

このようなものはありますか?私は何も見つけていません。理想的には、Linux で動作し、無料である必要があります。それがオプションでない場合でも、興味深いものです。

4

3 に答える 3

5

GTKSourceView を使用して pyBison や友人と一緒にノックアップできます

私は何も見たことがありませんが、必要に応じてこれを行うプログラムを作成できます。Bison のソースを DSO に移植して、それをロードして BNF を実行し、オートマトン テーブルを引き出すことができるようにします。次に、評価を GTK-source-view テキストボックスに添付します

- また -

フロントエンドを作成し (GTKSourceView が再び良いようです)、それをいくつかのシステム コールにアタッチして、flex.c と bison.c を書き出し、いくつかの共有オブジェクト output.so を形成します。これは、アプリにロードおよびアンロードされ、いくつか実行できます。ソーススルー。

文法を開発するときによく行うのは、pyBisonやその他の高水準言語ツールを使用して開発の速度を上げることです。次に、後で .l および .y ファイルを使用して C/Flex/Bison を使用します。GTK は、DSO や dlopen() ファンダンゴを必要とせずに上記を実現するために、Python で非常に簡単に使用できるはずです。

BNF とテスト構文がいくつかのバックエンド D/NFA ジェネレーターとのループにある Read-Eval-Print ループに非常に似ています。

今度いつか

これが別の質問に答えていることがわかりました:

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

これは、JavaScript でパーサーを生成するための JavaScript Yacc/Bison に似たツールです。いずれにせよ、すべて BNF であるため、これを使用して C 文法を簡単にデバッグできます。きっと使います。

于 2009-05-16T10:32:52.340 に答える
4

ANTLRWORKS(http://www.antlr.org/works/index.html)は、これまでに見た中で最高のインタラクティブな文法開発環境です。ANTLRで書かれたLL(*)文法を視覚化してデバッグできます。

于 2009-10-15T04:17:04.050 に答える
1

VisualBNFをご覧ください

于 2010-01-13T12:34:25.367 に答える