Module Make.MenhirInterpreter

include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = token
type token = token
type production
type 'a env
type !'a checkpoint = private
| InputNeeded of 'a env
| Shifting of 'a env * 'a env * bool
| AboutToReduce of 'a env * production
| HandlingError of 'a env
| Accepted of 'a
| Rejected
val offer : 'a checkpoint -> (token * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position) -> 'a checkpoint
type strategy = [
| `Legacy
| `Simplified
]
val resume : ?strategy:strategy -> 'a checkpoint -> 'a checkpoint
type supplier = unit -> token * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position
val lexer_lexbuf_to_supplier : ( Stdlib.Lexing.lexbuf -> token ) -> Stdlib.Lexing.lexbuf -> supplier
val loop : ?strategy:strategy -> supplier -> 'a checkpoint -> 'a
val loop_handle : ( 'a -> 'answer ) -> ( 'a checkpoint -> 'answer ) -> supplier -> 'a checkpoint -> 'answer
val loop_handle_undo : ( 'a -> 'answer ) -> ( 'a checkpoint -> 'a checkpoint -> 'answer ) -> supplier -> 'a checkpoint -> 'answer
val shifts : 'a checkpoint -> 'a env option
val acceptable : 'a checkpoint -> token -> MenhirLib.IncrementalEngine.position -> bool
type 'a lr1state
val number : 'a lr1state -> int
val production_index : production -> int
val find_production : int -> production
type element =
| Element : 'a lr1state * 'a * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position -> element
type stack = element MenhirLib.General.stream
val stack : 'a env -> stack
val top : 'a env -> element option
val pop_many : int -> 'a env -> 'a env option
val get : int -> 'a env -> element option
val current_state_number : 'a env -> int
val equal : 'a env -> 'a env -> bool
val positions : 'a env -> MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position
val env_has_default_reduction : 'a env -> bool
val state_has_default_reduction : 'a lr1state -> bool
val pop : 'a env -> 'a env option
val force_reduction : production -> 'a env -> 'a env
val input_needed : 'a env -> 'a checkpoint