OCamlのストリームパーサーすごい
http://www.libspark.org/browser/ocaml/abc2xml/asm.ml
ABCのオペコードを解析するコードを書いてます。
その部分のコードはこんな感じ。
let code = parser [< _ = op 0xc5 >] -> `Add_i | [< _ = op 0x86; index = u30 >] -> `Astype index | [< _ = op 0x87 >] -> `AstypeLate | ...
すごくね? 美しくね? 最高じゃね?
パターンマッチもすごいし、それを拡張できるCamlp4もすごいと思うんだ。
これ、YaccとかParsecよりもずっとキレいだと思うんだ。