Module Parser.MenhirInterpreter

include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = token;
type token = token;
type production;
type env('a);
type checkpoint(!'a) = pri
  1. | InputNeeded(env('a))
  2. | Shifting(env('a), env('a), bool)
  3. | AboutToReduce(env('a), production)
  4. | HandlingError(env('a))
  5. | Accepted('a)
  6. | Rejected
;
let offer: checkpoint('a) => (token, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position) => checkpoint('a);
type strategy = [
  1. | `Legacy
  2. | `Simplified
];
let resume: ?strategy:strategy => checkpoint('a) => checkpoint('a);
type supplier = unit => (token, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position);
let lexer_lexbuf_to_supplier: (Stdlib.Lexing.lexbuf => token) => Stdlib.Lexing.lexbuf => supplier;
let loop: ?strategy:strategy => supplier => checkpoint('a) => 'a;
let loop_handle: ('a => 'answer) => (checkpoint('a) => 'answer) => supplier => checkpoint('a) => 'answer;
let loop_handle_undo: ('a => 'answer) => (checkpoint('a) => checkpoint('a) => 'answer) => supplier => checkpoint('a) => 'answer;
let shifts: checkpoint('a) => option(env('a));
let acceptable: checkpoint('a) => token => MenhirLib.IncrementalEngine.position => bool;
type lr1state('a);
let number: lr1state('a) => int;
let production_index: production => int;
let find_production: int => production;
type element =
  1. | Element(lr1state('a), 'a, MenhirLib.IncrementalEngine.position, MenhirLib.IncrementalEngine.position) : element
;
type stack = MenhirLib.General.stream(element);
let stack: env('a) => stack;
let top: env('a) => option(element);
let pop_many: int => env('a) => option(env('a));
let get: int => env('a) => option(element);
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));
let force_reduction: production => env('a) => env('a);
let input_needed: env('a) => checkpoint('a);