Module Parser.MenhirInterpreter

include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type MenhirInterpreter.token = token
type token = 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 * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position) -> 'a checkpoint
type strategy = [
| `Legacy
| `Simplified
]
val resume : ?⁠strategy:strategy -> 'a checkpoint -> 'a checkpoint
type supplier = unit -> token * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position
val lexer_lexbuf_to_supplier : (Stdlib.Lexing.lexbuf -> token) -> Stdlib.Lexing.lexbuf -> supplier
val loop : ?⁠strategy:strategy -> 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 -> MenhirLib.IncrementalEngine.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 * MenhirLib.IncrementalEngine.position * MenhirLib.IncrementalEngine.position -> element
type stack = element MenhirLib.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 -> MenhirLib.IncrementalEngine.position * MenhirLib.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
type _ terminal =
| T_error : unit terminal
| T_XTRANSFORM : unit terminal
| T_WITH : unit terminal
| T_WHERE : unit terminal
| T_VALIDATE : unit terminal
| T_USING : unit terminal
| T_UNDERSCORE : unit terminal
| T_TYPE : unit terminal
| T_TRY : unit terminal
| T_TRANSFORM : unit terminal
| T_THEN : unit terminal
| T_STRING2 : string terminal
| T_STRING1 : string terminal
| T_STARSTAR : unit terminal
| T_STARQMARK : unit terminal
| T_STARMINUSMINUS : unit terminal
| T_STAR : unit terminal
| T_SLASHSLASH : unit terminal
| T_SLASHAT : unit terminal
| T_SLASH : unit terminal
| T_SETMINUS : unit terminal
| T_SEMISEMI : unit terminal
| T_SEMI : unit terminal
| T_SELECT : unit terminal
| T_SCHEMA : unit terminal
| T_RSB : unit terminal
| T_RP : unit terminal
| T_RESOLVED_INCLUDE : Ast.pprog terminal
| T_REF : unit terminal
| T_RCB : unit terminal
| T_QMARKQMARK : unit terminal
| T_QMARK : unit terminal
| T_POLY : string terminal
| T_PLUSQMARK : unit terminal
| T_PLUS : unit terminal
| T_OR : unit terminal
| T_OPEN : unit terminal
| T_ON : unit terminal
| T_OFF : unit terminal
| T_NAMESPACE : unit terminal
| T_MOD : unit terminal
| T_MINUSMINUSSTAR : unit terminal
| T_MINUSMINUS : unit terminal
| T_MINUSGT : unit terminal
| T_MINUS : unit terminal
| T_MATCH : unit terminal
| T_MAP : unit terminal
| T_LTLT : unit terminal
| T_LTEQ : unit terminal
| T_LT : unit terminal
| T_LSB : unit terminal
| T_LP : unit terminal
| T_LET : unit terminal
| T_LCB : unit terminal
| T_INT : string terminal
| T_INCLUDE : unit terminal
| T_IN : unit terminal
| T_IF : unit terminal
| T_IDENT : string terminal
| T_HASH_UTF8 : unit terminal
| T_HASH_PRINT_TYPE : unit terminal
| T_HASH_LATIN1 : unit terminal
| T_HASH_DUMP_VALUE : unit terminal
| T_HASH_DIRECTIVE : string terminal
| T_HASH_ASCII : unit terminal
| T_GTGT : unit terminal
| T_GTEQ : unit terminal
| T_GT : unit terminal
| T_FUN : unit terminal
| T_FROM : unit terminal
| T_FLOAT : float terminal
| T_EQQMARK : unit terminal
| T_EQ : unit terminal
| T_EOI : unit terminal
| T_ELSE : unit terminal
| T_DOTDOT : unit terminal
| T_DOT : unit terminal
| T_DIV : unit terminal
| T_DEBUG : unit terminal
| T_COMMA : unit terminal
| T_COLON : unit terminal
| T_COLEQ : unit terminal
| T_COLCOL : unit terminal
| T_BQUOTE : unit terminal
| T_BARBAR : unit terminal
| T_BAR : unit terminal
| T_BANGEQ : unit terminal
| T_BANG : unit terminal
| T_AT : unit terminal
| T_ANY_IN_NS : string terminal
| T_AND : unit terminal
| T_AMPAMP : unit terminal
| T_AMP : unit terminal
type _ nonterminal =
| N_with_annot : Ast.ppat list nonterminal
| N_where_condition : Ast.pexpr list nonterminal
| N_var_pat : Ast.ppat' Cduce_loc.located nonterminal
| N_top_phrases : Ast.pprog nonterminal
| N_tag_type_or_pat : Ast.ppat nonterminal
| N_tag_type : Ast.ppat nonterminal
| N_tag_expr : Ast.pexpr nonterminal
| N_simple_pat : Ast.ppat nonterminal
| N_simple_expr : Ast.pexpr nonterminal
| N_seq_elem : [ `Elems of (Stdlib.Lexing.position * Stdlib.Lexing.position) * Ast.pexpr | `Explode of Ast.pexpr | `String of (Stdlib.Lexing.position * Stdlib.Lexing.position) * Encodings.Utf8.uindex * Encodings.Utf8.uindex * Ast.label ] nonterminal
| N_separated_nonempty_list_MINUSGT_or_pat_ : Ast.ppat' Cduce_loc.located list nonterminal
| N_separated_nonempty_list_DOT_ident_or_keyword_ : string list nonterminal
| N_separated_nonempty_list_COMMA_separated_pair_pat_COLON_pat__ : (Ast.ppat * Ast.ppat) list nonterminal
| N_separated_nonempty_list_COMMA_regexp_ : Ast.regexp list nonterminal
| N_separated_nonempty_list_COMMA_poly_var_ : string list nonterminal
| N_separated_nonempty_list_COMMA_pat_ : Ast.ppat list nonterminal
| N_separated_nonempty_list_COMMA_multi_expr_ : Ast.pexpr list nonterminal
| N_separated_nonempty_list_COMMA___anonymous_2_ : (Ast.ppat * Ast.ppat) list nonterminal
| N_schema_ref : (Ast.label * Ast.label) nonterminal
| N_regexp_simple : Ast.regexp nonterminal
| N_regexp_or : Ast.regexp nonterminal
| N_regexp_concat : Ast.regexp nonterminal
| N_regexp_and : Ast.regexp nonterminal
| N_regexp_acc : Ast.regexp nonterminal
| N_regexp : Ast.regexp nonterminal
| N_record_spec_fields : (Ast.label * (Ast.ppat * Ast.ppat option)) list nonterminal
| N_record_spec : Ast.ppat nonterminal
| N_prog : Ast.pprog nonterminal
| N_pat : Ast.ppat nonterminal
| N_parse_pmodule_item : Ast.pmodule_item nonterminal
| N_parse_pat : Ast.ppat nonterminal
| N_parse_expr : Ast.pexpr nonterminal
| N_other_rec_spec : (Ast.label * (Ast.ppat * Ast.ppat option)) list nonterminal
| N_or_pat : Ast.ppat nonterminal
| N_option_regexp_ : Ast.regexp option nonterminal
| N_option_located_ident_ : (Cduce_loc.loc * Ast.label) option nonterminal
| N_option_field_pat_ : (bool * Ast.ppat' Cduce_loc.located * Ast.ppat option) option nonterminal
| N_option___anonymous_5_ : Ast.pexpr option nonterminal
| N_option___anonymous_4_ : Ast.pexpr option nonterminal
| N_option___anonymous_0_ : Ast.ppat option nonterminal
| N_option_SEMI_ : unit option nonterminal
| N_option_BAR_ : unit option nonterminal
| N_nonempty_list_var_pat_ : Ast.ppat list nonterminal
| N_nonempty_list_poly_var_ : string list nonterminal
| N_no_seq_expr : Ast.pexpr nonterminal
| N_namespace_binding_rem : [> `Empty | `Idents of string list | `Path of Ast.label list | `Uri of Ns.Uri.t ] nonterminal
| N_namespace_binding : [ `Keep of bool | `Prefix of Ast.label * Ast.ns_expr ] nonterminal
| N_multi_expr : Ast.pexpr nonterminal
| N_loption___anonymous_3_ : (Ast.ppat * Ast.ppat) list nonterminal
| N_located_ident : (Cduce_loc.loc * Ast.label) nonterminal
| N_list_seq_elem_ : [ `Elems of (Stdlib.Lexing.position * Stdlib.Lexing.position) * Ast.pexpr | `Explode of Ast.pexpr | `String of (Stdlib.Lexing.position * Stdlib.Lexing.position) * Encodings.Utf8.uindex * Encodings.Utf8.uindex * Ast.label ] list nonterminal
| N_list_prog_items_ : Ast.pprog list nonterminal
| N_list_prog_item_ : Ast.pprog list nonterminal
| N_list_delimited_LP_separated_nonempty_list_COMMA_separated_pair_pat_COLON_pat___RP__ : (Ast.ppat * Ast.ppat) list list nonterminal
| N_list___anonymous_6_ : (Ast.label * Ast.pexpr) list nonterminal
| N_list___anonymous_1_ : (Ast.ppat * Ast.ppat' Cduce_loc.located list) list nonterminal
| N_keyword : string nonterminal
| N_ident_or_let_pat_constr : Ast.ppat' Cduce_loc.located nonterminal
| N_ident_or_let_pat : Ast.ppat nonterminal
| N_ident_or_keyword_no_ref_no_where : string nonterminal
| N_ident_or_keyword_no_else : string nonterminal
| N_ident_or_keyword : string nonterminal
| N_from_list : (Ast.ppat * Ast.pexpr) list nonterminal
| N_field_pat : (bool * Ast.ppat' Cduce_loc.located * Ast.ppat option) nonterminal
| N_expr_record_spec : Ast.pexpr nonterminal
| N_expr : Ast.pexpr nonterminal
| N_constr_pat : Ast.ppat' Cduce_loc.located nonterminal
| N_char : int nonterminal
| N_branches_ : Ast.branches nonterminal
| N_boption_QMARK_ : bool nonterminal
| N_boption_DOTDOT_ : bool nonterminal
| N_attrib_spec : Ast.ppat nonterminal
| N_attrib_expr : Ast.pexpr nonterminal
| N_arrow_pat : Ast.ppat nonterminal
| N_app_pat : Ast.ppat' Cduce_loc.located nonterminal
| N_app_expr : Ast.pexpr nonterminal
| N_and_pat_list : (Cduce_loc.loc * Ast.label * Ast.ppat) list nonterminal
| N_and_pat : Ast.ppat nonterminal
| N_and_expr_list : Ast.pexpr list nonterminal
include MenhirLib.IncrementalEngine.INSPECTION with type 'a MenhirInterpreter.lr1state := 'a lr1state with type MenhirInterpreter.production := production with type 'a MenhirInterpreter.terminal := 'a terminal with type 'a MenhirInterpreter.nonterminal := 'a nonterminal with type 'a MenhirInterpreter.env := 'a env
type !'a1 symbol =
| T : 'a terminal -> 'a symbol
| N : 'a0 nonterminal -> 'a0 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 -> MenhirLib.IncrementalEngine.position -> 'a -> MenhirLib.IncrementalEngine.position -> 'b env -> 'b env