我正在使用camlp4.macro啓用條件編譯。我有 問題通知OCamlbuild某些標記爲「use_jscore」 的文件必須使用給定的camlp4選項進行預處理。這是我目前有的: let _ = dispatch begin function
| After_rules ->
flag ["ocaml"; "use_jscore"] (S[A"-package"; A"ca
使用sexplib語法擴展來自動生成序列化代碼用於一個類型,如圖許多簡單的例子在線: open Sexplib
type t = { foo : int; bar : string; } with sexp
let v = { foo = 3; bar = "baz"; } in
sexp_of_t v
編譯失敗,與Error: Unbound value int_of_sexp。
在香草OCaml中,(or)是一個二元函數就像(+)和所有其它的,所以像這樣的代碼工作正常: let any (truths:bool list) = List.fold_left (or) false truths
但在camlp4o加載任何環境中,失敗與解析: Error: Parse error: ")" or "module" or [expr] expected after "("
我正在探索Camlp4,後面有this有用的一系列博客文章,但我遇到了編譯問題。 這是我test.ml文件的代碼: open Camlp4.PreCast
let _loc = Loc.ghost in
let cons =
let rec loop() =
try
match read_line() with
| "" -> []
| c -
_loc變量作爲參數傳遞給mk_sequence函數,在match ... with表達式的語法規則中出現在here中。 | "match"; e = sequence; "with"; a = match_case ->
<:expr< match $mksequence' _loc e$ with [ $a$ ] >>
但它不使用的mksequence的function bod