3

我正在使用 menhir 生成解析器,现在,它从我的 parser.mly 文件生成的 parser.mli 文件如下所示:

(* The type of tokens. *)

type token = 
  (* ... huge ADT definition goes here ... *)

(* This exception is raised by the monolithic API functions. *)

exception Error

(* The monolithic API. *)

val start: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Types.ast

有没有办法在我的解析器界面中包含更多内容?特别是,我还希望能够导出我的 AST 的数据类型(当前位于单独的类型模块中)和一些使用令牌数据类型的函数(例如,将它们转换回字符串的函数)。

我尝试在 parser.mly 之后放置一些 Ocaml 代码,%%但是虽然该代码显示在 parser.ml 中,但我声明的函数都没有出现在 parser.mli 中。

4

0 回答 0