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
  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