js_of_ocaml 类型定义中的 Camlp4 分析错误



我正在尝试使用js_of_ocaml构建这个程序。根据这个答案,我的makefile中有以下行

OCAMLC      = ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg -g -dtypes

但是,当我尝试构建时,出现以下错误:

ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg -g -dtypes   -c types.ml
> File "types.ml", line 472, characters 11-12:
> Parse error: [type_longident] expected after ")" (in [type_ident_and_parameters])
> File "types.ml", line 1:

该文件的违规行是这样的:

type ('t,'v) parser = ('t list -> 'v -> unit) -> 't list -> unit

我对OCaml还很陌生,所以我不完全确定发生了什么。-syntax camlp4o做什么?我可能需要更改源中的哪些内容才能与js_of_ocaml兼容?

>camlp4o提供了与原版OCaml语法相同的语法,但略有不兼容:parsercamlp4o中的一个特殊关键字。 这就是为什么如果使用camlp4o语法parser被拒绝的原因。

您可以通过重命名 parser 或使用 js_of_ocaml 的 PPX 语法扩展而不是 CamlP4 来解决此问题。 请查看 https://ocsigen.org/js_of_ocaml/api/Ppx_js 以获取此较新的语法帮助程序的详细信息,以获取js_of_ocaml

相关内容

  • 没有找到相关文章

最新更新