functor (T : EngineTypes.TABLE) -> sig type state = T.state type token = T.token type semantic_value = T.semantic_value exception Error val entry : state -> (Lexing.lexbuf -> token) -> Lexing.lexbuf -> semantic_value type production = T.production type 'a env = (T.state, T.semantic_value, T.token) EngineTypes.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 * IncrementalEngine.position * IncrementalEngine.position -> 'a checkpoint val resume : 'a checkpoint -> 'a checkpoint type supplier = unit -> token * IncrementalEngine.position * IncrementalEngine.position val lexer_lexbuf_to_supplier : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> supplier val loop : 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 -> IncrementalEngine.position -> bool type 'a lr1state = state val number : 'a lr1state -> int val production_index : production -> int val find_production : int -> production type element = Element : 'a lr1state * 'a * IncrementalEngine.position * IncrementalEngine.position -> element type stack = element 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 -> IncrementalEngine.position * 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 val start : state -> Lexing.position -> semantic_value checkpoint end