Я использую menhir для создания парсера, и прямо сейчас файл parser.mli, который он сгенерировал из моего файла parser.mly, выглядит так:
(* 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 (который в настоящее время находится в отдельном модуле Types) и некоторые функции, которые работают с типом данных токена (например, функция для преобразования их обратно в строки).
Я попытался поместить некоторый код Ocaml после %%
в parser.mly, но хотя этот код отображается в parser.ml, ни одна из объявленных мной функций не появляется в parser.mli.
Syntax
. - person pdexter   schedule 22.07.2016string_of_token
в лексере. - person pdexter   schedule 22.07.2016