2009-10-15 5 views
11

.NETでパーサを構築してソースファイルを処理する方法を理解したいと思います。たとえば、SQLやHTMLやCSSの解析方法を学び、読みやすさなどのために書式を設定できるように、結果に基づいて作業を開始できます。パーサの使い方

ここでどのようにこれを行うことができますか?私が参照できる特定の本がありますか?レクサー/パーサーについて学ぶ必要がありますか?

特に.NETプラットフォームのため、私はC#で快適です。

答えて

17

について学ぶための良い方法私は個人的には、この記事で、Grammars and Parsing with C# 2.0、例は、特にC#のに関連して、レクサー/パーサを書くことに大きな導入を見つけました。

私はa brief blog postを書きましたが、それはずっと前から、賞賛しています。素敵なのは、完全な初心者の理論(それは理論だけでなく、実装の背景を与える)を解析することを目的としており、徐々に問題を取り上げることです。もちろん、フィールドのより高度なアイデアを学び続けるには、他のさまざまなリソースが必要ですが、これは優れた基盤だと思います。

+1

+1。それは素敵に見える。そして、間違いなく非常に複雑なコードにダイビングするよりも良いスタートです。 – Joey

+1

これは素晴らしかったです。素敵な導入、良い例と一緒にすべてを結びつけるためにいくつかのC#で通じ続きます! – Rudy

+0

リンクが死んでいます。誰でもまだ文書がありますか? –

2

ANTLR :)

そのグラマとパーサ

+0

ANTLRの(この場合だけで)「マイナス面」とは、複数のターゲット言語のいずれかで、あなたのためのパーサを生成することです。クール、それは通常目標ですが、このような状況では、SevenCentralは[簡単な文法のために]ゼロから1を書くことの教育を逃します。 – mjv

+0

複雑なパーサを開発するための便利なツール(それもC#のコードを発することができる)、おそらくない最良の方法あなたが背景と基本を知りたい場合。 – Noldorin

+0

私はそれを良い方法で始めると思います。あなたはパーサの観点から可能なことについての実用的な知識を得て、それから深く掘り下げて、あなたが望むならあなた自身のものを構築できます。 –

4

パーサーの書き方を学びたい場合は、これはあなたの答えではないかもしれませんが、解析結果を解析して作業したい場合は、Irony.netを確実に見てください。言語を実装するのに役立つツールキットです(.NETを使用)。

0

私はパースのイディオムを学ぶために読んだ最高の本は「リトル言語」である

Little Languages on Amazon

あなたはSystem.Text.RegularExpressionsの.NETのソースコードを手に入れることができる場合パーサーを構築する方法の実際の実装も見られます。あなたはパーサと文法の新しい世界を入力したい場合は、あなたが本当に読むべき

Justin's Blog

そして最後に:

ジャスティン・ロジャースは、自身のブログ上での一般的なパーサを構築する方法についていくつかの優れた記事が掲載されています「オスロ」の上で、言語MとMGrammarの使い方生成されたオブジェクトグラフを解析して他の使用可能な形式に変換する際には、多くの柔軟性が提供されます。

ジャスティンの記事はおそらく、.NETの上に構築された生のパーサを使って起動して実行するのが最も簡単で簡単です。

1

2.0以降、C#は長い道のりを歩んできました。近年の表現木の追加と動的な型付けは、コンパイラを実装する上でもっと面白いことになります。CodeProject.comでC#4.0でインタプリタを作成する方法について

Here is a tutorial