http://www.cs.queensu.ca/~thurston/ragel/ Ragel は、ステートマシンコンパイラの一種で、パーサジェネレータとして使われることが多い。その実例として、Mongrel や Hpricot がある。 パーサジェネレータとして Ragel を使う利点は、以下の通り。 プロトコルやデータフォーマットを正確にパーズできる その結果、セキュアなソフトウェアが作れる 外部ライブラリに依存しないコードができる ものすごく速い 特に HTTP server など、速度が求められるサーバを書くときに便利なことがわかる。 参考: http://www.zedshaw.com/tips/ragel_state_charts.html ここでは、簡単な例としてドメイン名のパーザを作ってみよう。ホスト言語は C で。 まずは、Ragel 6.0 をインストールする。 OSX
![Ragel - Psychs's blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/bf1a6d12a02cd41e9422c3e9317eb58970d0eac8/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FP%2FPsychs%2F20080325%2F20080325030420.png)