質問

DSL の開発についてますますからかわれるようになりました。fslex と fsyacc を使用して F# で小さなものを開発しましたが、エラー メッセージが不正確です (より良いメッセージを生成する方法も見つかりません。エラー ケースの処理方法に関するドキュメントがほとんどないようです)。 UNICODE 文字列を適切に解析しないことは、私には受け入れられません。簡単に言うと、DSL の開発を非常に簡単にするツールを探しています (そのための Visual Studio ツールは、実際には私が求めているものとはまったく異なります)。最も興味があるのは解析/AST 生成の部分です。ANTLR を調べましたが、コードと文法定義のメタ言語を混同するのは私にとって良くないように思えます。そのため、回答でそれや同様の問題に悩まされている解決策について言及しないでください。また、Boo という名前の言語用のものがいくつかあるのを見てきましたが、現時点では別の言語 (特にサポートがほとんどない場合) をいじるつもりはありません。そのため、それも当てはまりません。その他の提案は、適切に文書化されており、.NET で正常に動作し、動的に型指定された言語の使用や DLR の使用が含まれていない限り、歓迎されます。

役に立ちましたか?

解決

あなたはオスロで作業を開始します。これは、DSL上で文法を定義するためのDSLやツールを定義するためのツールが含まれています。文法は、ASTまたは何かを発することができます。

それはDSLから生成できる出力の一種は、IA、対応するSQL Serverのスキーマです。 DSLのインスタンスは、従って、SQL Server Expressの(またはそれ以上)に格納することができます。

オスロは、Microsoftが持っているより大きなビジョンの一部ですが、あなたはそれを無視することができますし、単に「DSL」の部分を始めるます。

私は、あなたが始めるお勧めしますと、マイクロソフトはあなたが好きなものを知っているし、それについて嫌いせることでアクティブ得ます。あなたはそれを知っているかどうか、今の彼らの注意を持っています。

他のヒント

たぶん、あなたはオスロは試してを与えることができます。個人的に私はまだそれを使用していないが、例は非常に興味深い探しています。

  

「オスロ」で構成されています。   人々が豊かで、視覚的に定義したモデルとの対話に役立つツール   人々はテキストドメイン固有言語およびデータモデルを作成して使用できます言語   

ツールとプラットフォームコンポーネントの両方へのモデルが利用できるようにするリレーショナルリポジトリ

ここの一般的な概要の一種である!

あなたはまだ彼らは物事を行う方法を確認するためにブーイングのソースコードを見てみたいことがあります。彼らはまた、パーサを生成するために、ANTLRを使用しています。あなたは、それが文法であればLL(*)のlangaugeだとして、完全に記述として有用であり得るANTLRのとで任意のコードを混在させる必要はありません。

アイロニー - CodePlexの@ アイロニーに位置するがあなたのために良い解決策になるかもしれない - あなたはあなたの文法を構築することができます代わりに BNF 文法は別にファイルます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top