繁体   English   中英

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

[英]js_of_ocaml Camlp4 Parse error in type definition

我正在尝试使用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提供了与camlp4o OCaml语法相同的语法,但有一点不兼容: parsercamlp4o的特殊关键字。 这就是为什么如果使用camlp4o语法会拒绝parser原因。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM