sig type 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 * position * position -> 'a checkpoint val resume : 'a checkpoint -> 'a checkpoint type supplier = unit -> token * position * 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 -> 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 * position * 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 -> position * 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 type 'a terminal type 'a nonterminal type 'a symbol = T : 'a terminal -> 'a symbol | N : 'a nonterminal -> 'a symbol type xsymbol = X : 'a symbol -> xsymbol type item = production * int val compare_terminals : 'a terminal -> 'b terminal -> int val compare_nonterminals : 'a nonterminal -> 'b nonterminal -> int val compare_symbols : xsymbol -> xsymbol -> int val compare_productions : production -> production -> int val compare_items : item -> item -> int val incoming_symbol : 'a lr1state -> 'a symbol val items : 'a lr1state -> item list val lhs : production -> xsymbol val rhs : production -> xsymbol list val nullable : 'a nonterminal -> bool val first : 'a nonterminal -> 'b terminal -> bool val xfirst : xsymbol -> 'a terminal -> bool val foreach_terminal : (xsymbol -> 'a -> 'a) -> 'a -> 'a val foreach_terminal_but_error : (xsymbol -> 'a -> 'a) -> 'a -> 'a val feed : 'a symbol -> position -> 'a -> position -> 'b env -> 'b env end