sig
  exception Error
  val file : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement list
  val input : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> statement option
  module MenhirInterpreter :
    sig
      type token = token
      type env
      type production
      type 'a checkpoint = private
          InputNeeded of env
        | Shifting of env * env * bool
        | AboutToReduce of env * production
        | HandlingError of env
        | Accepted of 'a
        | Rejected
      val offer :
        'a checkpoint ->
        token * Lexing.position * Lexing.position -> 'a checkpoint
      val resume : 'a checkpoint -> 'a checkpoint
      type supplier = unit -> token * Lexing.position * Lexing.position
      val lexer_lexbuf_to_supplier :
        (Lexing.lexbuf -> token) -> Lexing.lexbuf -> supplier
      val loop : supplier -> 'a checkpoint -> 'a
      val loop_handle :
        ('-> 'answer) ->
        ('a checkpoint -> 'answer) -> supplier -> 'a checkpoint -> 'answer
      val loop_handle_undo :
        ('-> 'answer) ->
        ('a checkpoint -> 'a checkpoint -> 'answer) ->
        supplier -> 'a checkpoint -> 'answer
      val loop_test :
        (env -> 'accu -> 'accu) -> 'a checkpoint -> 'accu -> 'accu
      val acceptable : 'a checkpoint -> token -> Lexing.position -> bool
      type 'a lr1state
      val number : 'a lr1state -> int
      type element =
          Element : 'a lr1state * 'a * Lexing.position *
            Lexing.position -> element
      type stack = element MenhirLib.General.stream
      val stack : env -> stack
      val positions : env -> Lexing.position * Lexing.position
      val has_default_reduction : env -> bool
    end
  module Incremental :
    sig
      val input :
        Lexing.position -> statement option MenhirInterpreter.checkpoint
    end
end