私は 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 に表示されません。