module type INCREMENTAL_ENGINE = sig .. end
type token;
type production;
type env('a);
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 |
let offer:
(
checkpoint('a),
(
token,
CamlinternalMenhirLib.IncrementalEngine.position,
CamlinternalMenhirLib.IncrementalEngine.position,
)
) =>
checkpoint('a);
let resume: checkpoint('a) => checkpoint('a);
type supplier =
unit =>
(
token,
CamlinternalMenhirLib.IncrementalEngine.position,
CamlinternalMenhirLib.IncrementalEngine.position,
);
let lexer_lexbuf_to_supplier:
(Lexing.lexbuf => token, Lexing.lexbuf) => supplier;
let loop: (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, CamlinternalMenhirLib.IncrementalEngine.position) =>
bool;
type lr1state('a);
let number: lr1state('a) => int;
let production_index: production => int;
let find_production: int => production;
type element =
| |
Element : 'a lr1state * 'a * CamlinternalMenhirLib.IncrementalEngine.position * CamlinternalMenhirLib.IncrementalEngine.position -> element |
type stack = CamlinternalMenhirLib.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) =>
(
CamlinternalMenhirLib.IncrementalEngine.position,
CamlinternalMenhirLib.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);