Camlp4を試す
30分プログラム、その222。Camlp4を試してみる。
前やろうとして放置していたので、再チャレンジ。チュートリアルを流し読みしていたら時間が来たので、今日はサンプルだけ。
使い方
$ ocamlc -pp "camlp4o pa_extend.cmo q_MLast.cmo" -I +camlp4 -c repeat.ml
$ cat foo.ml
let _ =
let i = ref 0 in
repeat print_int !i; incr i until !i = 10;
print_newline()
$ ocamlc -pp "camlp4o ./repeat.cmo" foo.ml
$ ./a.out
0123456789
ソースコード
open Pcaml EXTEND expr: LEVEL "expr1" [[ "repeat"; e1 = expr; "until"; e2 = expr -> <:expr< do { $e1$; while not $e2$ do { $e1$; } } >> ]]; END;;