sig

  type state
  val number : CamlinternalMenhirLib.EngineTypes.TABLE.state -> int
  type token
  type terminal
  type nonterminal
  type semantic_value
  val token2terminal :
    CamlinternalMenhirLib.EngineTypes.TABLE.token ->
    CamlinternalMenhirLib.EngineTypes.TABLE.terminal
  val token2value :
    CamlinternalMenhirLib.EngineTypes.TABLE.token ->
    CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value
  val error_terminal : CamlinternalMenhirLib.EngineTypes.TABLE.terminal
  val error_value : CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value
  val foreach_terminal :
    (CamlinternalMenhirLib.EngineTypes.TABLE.terminal -> 'a -> 'a) ->
    'a -> 'a
  type production
  val production_index :
    CamlinternalMenhirLib.EngineTypes.TABLE.production -> int
  val find_production :
    int -> CamlinternalMenhirLib.EngineTypes.TABLE.production
  val default_reduction :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    ('env -> CamlinternalMenhirLib.EngineTypes.TABLE.production -> 'answer) ->
    ('env -> 'answer) -> 'env -> 'answer
  val action :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    CamlinternalMenhirLib.EngineTypes.TABLE.terminal ->
    CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value ->
    ('env ->
     bool ->
     CamlinternalMenhirLib.EngineTypes.TABLE.terminal ->
     CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value ->
     CamlinternalMenhirLib.EngineTypes.TABLE.state -> 'answer) ->
    ('env -> CamlinternalMenhirLib.EngineTypes.TABLE.production -> 'answer) ->
    ('env -> 'answer) -> 'env -> 'answer
  val goto_nt :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    CamlinternalMenhirLib.EngineTypes.TABLE.nonterminal ->
    CamlinternalMenhirLib.EngineTypes.TABLE.state
  val goto_prod :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    CamlinternalMenhirLib.EngineTypes.TABLE.production ->
    CamlinternalMenhirLib.EngineTypes.TABLE.state
  val maybe_goto_nt :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    CamlinternalMenhirLib.EngineTypes.TABLE.nonterminal ->
    CamlinternalMenhirLib.EngineTypes.TABLE.state option
  val is_start : CamlinternalMenhirLib.EngineTypes.TABLE.production -> bool
  exception Error
  type semantic_action =
      (CamlinternalMenhirLib.EngineTypes.TABLE.state,
       CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value,
       CamlinternalMenhirLib.EngineTypes.TABLE.token)
      CamlinternalMenhirLib.EngineTypes.env ->
      (CamlinternalMenhirLib.EngineTypes.TABLE.state,
       CamlinternalMenhirLib.EngineTypes.TABLE.semantic_value)
      CamlinternalMenhirLib.EngineTypes.stack
  val semantic_action :
    CamlinternalMenhirLib.EngineTypes.TABLE.production ->
    CamlinternalMenhirLib.EngineTypes.TABLE.semantic_action
  val may_reduce :
    CamlinternalMenhirLib.EngineTypes.TABLE.state ->
    CamlinternalMenhirLib.EngineTypes.TABLE.production -> bool
  val log : bool
  module Log :
    sig
      val state : CamlinternalMenhirLib.EngineTypes.TABLE.state -> unit
      val shift :
        CamlinternalMenhirLib.EngineTypes.TABLE.terminal ->
        CamlinternalMenhirLib.EngineTypes.TABLE.state -> unit
      val reduce_or_accept :
        CamlinternalMenhirLib.EngineTypes.TABLE.production -> unit
      val lookahead_token :
        CamlinternalMenhirLib.EngineTypes.TABLE.terminal ->
        Stdlib.Lexing.position -> Stdlib.Lexing.position -> unit
      val initiating_error_handling : unit -> unit
      val resuming_error_handling : unit -> unit
      val handling_error :
        CamlinternalMenhirLib.EngineTypes.TABLE.state -> unit
    end
end