functor (T : TableFormat.TABLES) -> sig type state = int val number : state -> int type token = T.token type terminal = int type nonterminal = int type semantic_value = Obj.t 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 = int 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) EngineTypes.env -> (state, semantic_value) EngineTypes.stack val semantic_action : production -> semantic_action val may_reduce : state -> production -> bool val log : bool module Log : sig val state : state -> unit val shift : terminal -> state -> unit val reduce_or_accept : production -> unit val lookahead_token : terminal -> Lexing.position -> Lexing.position -> unit val initiating_error_handling : unit -> unit val resuming_error_handling : unit -> unit val handling_error : state -> unit end end