functor (L : GLexerType->
  sig
    type te = L.te
    type parsable
    val parsable : char Stream.t -> parsable
    val tokens : string -> (string * int) list
    val glexer : te Plexing.lexer
    val set_algorithm : parse_algorithm -> unit
    module Entry :
      sig
        type 'a e
        val create : string -> 'a e
        val parse : 'a e -> parsable -> 'a
        val parse_token : 'a e -> te Stream.t -> 'a
        val name : 'a e -> string
        val of_parser : string -> (te Stream.t -> 'a) -> 'a e
        val print : 'a e -> unit
        external obj : 'a e -> te Gramext.g_entry = "%identity"
      end
    module Unsafe :
      sig
        val gram_reinit : te Plexing.lexer -> unit
        val clear_entry : 'Entry.e -> unit
      end
    val extend :
      'Entry.e ->
      Gramext.position option ->
      (string option * Gramext.g_assoc option *
       (te Gramext.g_symbol list * Gramext.g_action) list)
      list -> unit
    val delete_rule : 'Entry.e -> te Gramext.g_symbol list -> unit
  end