gpt4 book ai didi

header - 调用 OCaml 编译器来生成 .cmi

转载 作者:行者123 更新时间:2023-12-04 12:01:03 26 4
gpt4 key购买 nike

也许我只是在一件非常简单的事情上失败了,但我正在开发一个用 OCaml 编写的解释器,使用标准工具作为 ocamllex ocamlyacc 我有这种情况:

  • iparser.mly 包含解析器规范
  • ilexer.mll 包含词法分析器规范
  • 不可能的.ml 包含执行代码的虚拟机和所有需要的类型

  • 定义各种指令的指令类型在 impossible.ml解析器需要它,但是 impossible.ml使用 iparser.mly 中定义的解析器所以他们都需要彼此正确编译。

    有没有办法只生产 .cmi我的文件 impossible.ml ?通过这种方式,解析器将知道 impossible.ml 中定义的类型。它将允许我编译 impossible.cmo/.cmi然后再编译 impossible.cmo .然后我可以将所有这些链接在一起。

    到目前为止,我的编译脚本是:
    ocamlyacc iparser.mly
    ocamlc -c iparser.mli
    ocamllex ilexer.mll
    ocamlc -c ilexer.ml
    ocamlc -c iparser.ml
    ocamlc -c impossible.ml
    ocamlc -o imp.exe ilexer.cmo iparser.cmo impossible.cmo

    但这不起作用,因为 ocamlc -c iparser.ml至少需要 impossible.cmi要知道类型。

    有什么建议?提前致谢..

    最佳答案

    您需要创建一个不可能的.mli 并编译它。这将产生不可能的.cmi 并且只产生.cmi。

    或者:

    ocamlc -i impossible.ml

    将 mli 打印到标准输出。你可以这样做:
    ocamlc -i impossible.ml > impossible.mli
    ocamlc -c impossible.mli

    关于header - 调用 OCaml 编译器来生成 .cmi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150638/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com