0

最近、flex と bison を使用してドメイン固有言語を開発しました。この言語を使用してスクリプト ファイルを編集するためのユーザー インターフェイスを作成したいと考えています。特に、ファイル処理、メニュー、ボタン、構文の強調表示、エラー チェックなどの一般的な機能が必要です。この種のアプリケーションを開発するために使用できるツールを知っていますか? プロトタイプを迅速に提供できる方が望ましいです。

4

1 に答える 1

1

ファイル処理、メニュー、ボタン、構文の強調表示、エラー チェックなど

ファイル処理、メニュー、ボタン、および強調表示は、あなたにとって最も重要ではないと思います。一方、「エラーチェック」と呼ばれるもの。それは難しい問題になる可能性があります。ユーザーがエディターにソース コードを入力するときに、エラーをオンザフライで (やや原始的な方法で) 検出する方法について、いくつかの指針を示します。

エディターで書かれたコードの Eclipses (少なくとも Java の場合) のリアルタイム分析のようなものを望んでいると思いますか? 私は Eclipse が内部でどのように機能するかについてよく知りませんが、これはおそらく、すべてのソース コードを変更するたびに何度も処理するコンパイル前のプロセスによって行われます。

これをプロトタイプ化する 1 つの方法 (実際には非プロトタイプも作成する) は、Flex と Bison を使用することです。これらのツールについては、すでによく知っていると思います。文法を構築し、すべての興味深い部分のアクション コードを作成できるため、構文の逸脱をかなり簡単に見つけることができます。この後、ユーザーが IDE でソース コードを記述し、何らかの方法で出力を表示するときに、エディタで flex および bison によって生成された C コードを実行します。端末のようなステータス ウィンドウ、または直接テキスト編集フィールド (Eclipse のように) のいずれか (後者の場合は、構築するのはおそらく面倒ですが、決して不可能ではなく、IDE にプロフェッショナルなタッチを与えるでしょう)。

次の Flex と Bison (実際には Lex と Yacc) のコードを使用して ADA 95 用の IDE を構築したいとします (エラー (何をどこで) を報告する適切な構文アナライザーです): http://www .adaic.org/resources/add_content/standards/95lrm/lexer9x.l http://www.adaic.org/resources/add_content/standards/95lrm/grammar9x.y

お役に立てれば。

編集: IDE のテキスト エディター フィールドでクールなエラーの強調表示などを行うには、bison で生成された構文アナライザーに、エラーの種類とエラーの場所 (行と列) を含む XML などの解析しやすいものを生成させることができます。たとえば)それを使用してエラーを表示します... IDEにXMLパーサーを埋め込み(無料で利用できるものがたくさんあります)、必要なデータを抽出し、それに応じて表示を変更するだけです...それはロケットではないはずです考えてみれば科学。

于 2013-07-18T07:41:16.860 に答える