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