D言語erの方もそうでない方も、こんちには! D言語 Advent Calendar 2012の2日目の記事です。 この記事では、ctpgと言うライブラリを、とても軽く紹介します。 ctpg is 何 @repeatedlyさんの最初の記事にもありましたが、パーサジェネレータです。ScalaのParserCombinatorの影響を強く受けています。 ctpgの特徴 さすがに「パーサジェネレータです!」だけではアレなので、特徴をつらつらと挙げていきます。 コンパイル時にパーサが生成される パーサジェネレータといえば、YaccやANTLRなどが有名だと思います。 これらのソフトウェアは、予め構文規則が書かれているファイルから、パーサが書かれたソースコードを生成する必要があります。 さくっと小さなパーサが書きたい時、この作業は少し面倒くさいですね。 一方、ctpgではその作業の必要がありません