id:nowokayさんのエントリのまとめです。通して読むとScalaのパーサコンビネータを使うと簡単にパーサを作れることがわかります。
- Scalaでパーサーを作ってみる 〜目次〜
- Scalaでパーサーを作ってみる〜1:構文定義
- Scalaでパーサーを作ってみる〜2:構文木の作成
- Scalaでパーサーを作ってみる〜3:式の評価
- Scalaでパーサーを作ってみる〜4:ブール値とif式
- Scalaでパーサーを作ってみる〜5:文字列とprintln
- Scalaでパーサーを作ってみる〜6:コードブロック
- Scalaでパーサーを作ってみる〜7:変数
- Scalaでパーサーを作ってみる〜8:変数のスコープ
- Scalaでパーサーを作ってみる〜9:関数の定義と呼び出し
- Scalaでパーサーを作ってみる〜10:レキシカルスコープとクロージャ
- Scalaでパーサーを作ってみる〜11:関数リテラル
- Scalaでパーサーを作ってみる〜12:関数呼び出しのチェーン
- Scalaでパーサーを作ってみる〜13:FizzBuzz!
まあ普段はそんなに頻繁に利用するものでもないですが、Scalaの構文で記述してすぐに実行できるのでJavaでコンパイラコンパイラを使うのと比べると手軽に実行できるのがよいですね。自分も時間を作って試してみようと思うので、きしださんのエントリが追加されたらこのリストにも追加していきます^^
ソース全体はgistで公開されているようです。
https://gist.github.com/1345875/