この便利な一連のブログ投稿に従ってCamlp4を探索していますが、コンパイルの問題が発生しています。これは私のtest.mlファイルのコードです:
open Camlp4.PreCast
let _loc = Loc.ghost in
let cons =
let rec loop () =
try
match read_line () with
| "" -> []
| c -> c :: loop ()
with End_of_file -> [] in
loop () in
Printers.Ocaml.print_implem
<:str_item<
type t =
$Ast.TySum (_loc,
Ast.tyOr_of_list
(List.map
(fun c -> <:ctyp< $uid:c$ >>)
cons))$
let to_string = function
$Ast.mcOr_of_list
(List.map
(fun c -> <:match_case< $uid:c$ -> $`str:c$ >>)
cons)$
let of_string = function
$let ors =
Ast.mcOr_of_list
(List.map
(fun c -> <:match_case< $`str:c$ -> $uid:c$ >>)
cons) in
Ast.McOr(_loc,
ors,
<:match_case< _ -> invalid_arg "bad string" >>)$
>>
私はこのコンパイルコマンドを使用しています:ocamlc -pp camlp4of -I + camlp4 -o Variant camlp4lib.cma test.mlしかし、ocamlcは次を発行します:エラー:バインドされていないモジュールPrinters.Ocaml
コンパイルコマンドの問題だと思いますが、Printers.Ocamlが実装されている場所がわかりません。
ご協力ありがとうございました!_神父