![](/img/trans.png)
[英]Make compatible ocaml, camlp4, ppx, node, js_of_ocaml, ocamlbuild
[英]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语法相同的语法,但有一点不兼容: parser
是camlp4o
的特殊关键字。 这就是为什么如果使用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.