- http://pauillac.inria.fr/~ddr/camlp5/
- OCaml 3.09 までの camlp4 が名前をcamlp5と名前を変えて配布されている
- OCaml 3.10 以降の camlp4 はそれまでの camlp4 と全く互換性がないため
- Coq 等で使われている
- 現行の camlp4 は undocumentedな部分が多いため camlp4 の代わりにこちらを使うのがよいかもしれない
ML構文のquotationを有効にする構文拡張?
camlp5 q_MLast.cmo pr_o.cmo pa_o.cmo test.ml
- 次の2つのパス式F.f, C.cの表現が異なる
- C.c x (xへの関数C.cの適用)
- new C.c (クラスC.cのnew)
- それぞれ次のようになる:
MLast.ExAcc (loc, MLast.ExUid (loc, "F"), MLast.ExLid (loc, "f"))
MLast.ExNew (loc, ["C"; "c"])
- 前者は ExAcc? で UidとLidを結合, 後者は string list なぜ?