Module Parser.MenhirInterpreter
include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = token;
type checkpoint(!'a) = pri
| InputNeeded(env('a))
| Shifting(env('a), env('a), bool)
| AboutToReduce(env('a), production)
| HandlingError(env('a))
| Accepted('a)
| Rejected
;
let offer:
checkpoint('a) =>
(token, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position) =>
checkpoint('a);
type strategy = [
|
`Legacy
|
`Simplified
];
type supplier =
unit =>
(token, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position);
let lexer_lexbuf_to_supplier:
(Stdlib.Lexing.lexbuf => token) =>
Stdlib.Lexing.lexbuf =>
supplier;
let acceptable:
checkpoint('a) =>
token =>
MenhirLib.IncrementalEngine.position =>
bool;
type element =
| Element(lr1state('a), 'a, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position) :
element
;
type stack = MenhirLib.General.stream(element);
let pop_many: int => env('a) => option(env('a));
let current_state_number: env('a) => int;
let equal: env('a) => env('a) => bool;
let positions:
env('a) =>
(MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position);
let env_has_default_reduction: env('a) => bool;
let state_has_default_reduction: lr1state('a) => bool;
let pop: env('a) => option(env('a));