10

私は Haskell Parser Combinators についてよく読んでいて、次のような多くのトピックを見つけました。

しかし、これらのトピックはParser CombinatorsすべてParser Generators.

Parser Combinator次の条件に最も適しているのはどれかお聞きしたいです。

  1. エラー (エラー回復を含む) とユーザーへのメッセージを適切に管理したい
  2. テキストの小さな部分をパーサーに供給できるようにしたい (一度にファイル全体ではなく)
  3. 文法をうまくリデザインできるようになりたい(現在文法を開発中なので、「うまく動作すること」が重要です。)
  4. 最終的なパーサーは高速である必要があります (パフォーマンスは重要ですが、ポイント 1 ~ 3 ほどではありません)。

最も人気のあるパーサーコンビネーターは次のとおりです。

4

2 に答える 2

3

私は間違いなくParsecを使うと思います.理由は次のとおりです:

Attoparsec はすぐに使用できるように設計されていますが、Parsec で表示されるエラー メッセージに対する強力なサポートが欠けているため、最初のポイントの勝利です。

パーサー・コンビネーター・ライブラリーを使用した私の経験では、パーサーの個々の部分をGHCiまたはテストでテストするのは非常に簡単です。最後に、Attoparsec と Parsec は非常に高速です。

最後に、Parsec は最も長く使用されており、多くの便利で高度な機能を備えています。これは、一般的な保守性が容易になり、より多くの例が Parsec にあり、より多くの人がそれに慣れていることを意味します。uu-parsinglib は時間をかけて探索する価値があることは間違いありませんが、これらの理由から、最初に Parsec に慣れることをお勧めします。(Alex は、Parsec などで使用するのに最も推奨されるレクサーでもありますが、私自身は使用していません。)

于 2013-08-05T16:23:34.697 に答える