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;;