package dolmen

  1. Overview
  2. Docs
A parser library

Install

Dune Dependency

Authors

Maintainers

Sources

dolmen-v0.6.tbz
sha256=81b034da2de84da19fb6368aaa39135f6259ee2773ff08c8f03da9ceeb10748c
sha512=98786ff1cc5b0c8bc4cb2dfe756ae15556c3876a206546b04374826be7d0a422dd5526d93f09cb0ea0d4985b71c408c182a951d4df908399c7e04b17c91a7d70

doc/src/dolmen.intf/parse.ml.html

Source file parse.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

(* This file is free software, part of dolmen. See file "LICENSE" formore information *)

(** Interface for Dolmen parsers. *)

module type S = sig

  (** {2 Main interface} *)

  type token
  (** The type of token consumed by the parser. *)

  type statement
  (** The type of top-level declarations returned by the parser. *)

  exception Error
  (** Exception raised by the parser when it encounters an error. *)

  val file : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement list
  (** A function that parses an entire file, i.e until the end-of-file token,
      and return the list of parsed statements. *)

  val input : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement option
  (** A function to parse a single statement. Reutnrs [None] if it encounters
      the end-of-file token. Used for incremental parsing. *)


  (** {2 Menhir incremental interface} *)

  module MenhirInterpreter : sig
    include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE
      with type token = token
  end

  module Incremental : sig
    val file : Lexing.position -> (statement list) MenhirInterpreter.checkpoint
    val input : Lexing.position -> (statement option) MenhirInterpreter.checkpoint
  end

end

OCaml

Innovation. Community. Security.