# Module type CamlinternalMenhirLib.EngineTypes.TABLE

    module type TABLE = sig .. end

    type state

    val number : state -> int

    type token

    type terminal

    type nonterminal

    type semantic_value

    val token2terminal : token ->
           terminal

    val token2value : token ->
           semantic_value

    val error_terminal : terminal

    val error_value : semantic_value

    val foreach_terminal : (terminal -> 'a -> 'a) -> 'a -> 'a

    type production

    val production_index : production -> int

    val find_production : int -> production

    val default_reduction : state ->
           ('env -> production -> 'answer) ->
           ('env -> 'answer) -> 'env -> 'answer

    val action : state ->
           terminal ->
           semantic_value ->
           ('env ->
            bool ->
            terminal ->
            semantic_value ->
            state -> 'answer) ->
           ('env -> production -> 'answer) ->
           ('env -> 'answer) -> 'env -> 'answer

    val goto_nt : state ->
           nonterminal ->
           state

    val goto_prod : state ->
           production ->
           state

    val maybe_goto_nt : state ->
           nonterminal ->
           state option

    val is_start : production -> bool

    exception Error

    type semantic_action = (state,
            semantic_value,
            token)
           CamlinternalMenhirLib.EngineTypes.env ->
           (state,
            semantic_value)
           CamlinternalMenhirLib.EngineTypes.stack

    val semantic_action : production ->
           semantic_action

    val may_reduce : state ->
           production -> bool

    val log : bool

    module Log: sig .. end