package forester

  1. Overview
  2. Docs
include MenhirLib.IncrementalEngine.INCREMENTAL_ENGINE with type token = token
type token = token
type production
type 'a env
type 'a checkpoint = private
  1. | InputNeeded of 'a env
  2. | Shifting of 'a env * 'a env * bool
  3. | AboutToReduce of 'a env * production
  4. | HandlingError of 'a env
  5. | Accepted of 'a
  6. | Rejected
type strategy = [
  1. | `Legacy
  2. | `Simplified
]
val resume : ?strategy:strategy -> 'a checkpoint -> 'a checkpoint
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 : _ lr1state -> int
val production_index : production -> int
val find_production : int -> production
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 env_has_default_reduction : 'a env -> bool
val state_has_default_reduction : _ 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 =
  1. | T_error : unit terminal
  2. | T_XML_ELT_IDENT : string terminal
  3. | T_WHITESPACE : string terminal
  4. | T_VERBATIM : string terminal
  5. | T_TEXT : string terminal
  6. | T_SUBTREE : unit terminal
  7. | T_SCOPE : unit terminal
  8. | T_RSQUARE : unit terminal
  9. | T_RPAREN : unit terminal
  10. | T_RBRACE : unit terminal
  11. | T_PUT : unit terminal
  12. | T_PATCH : unit terminal
  13. | T_OPEN : unit terminal
  14. | T_OBJECT : unit terminal
  15. | T_NAMESPACE : unit terminal
  16. | T_LSQUARE : unit terminal
  17. | T_LPAREN : unit terminal
  18. | T_LET : unit terminal
  19. | T_LBRACE : unit terminal
  20. | T_IMPORT : unit terminal
  21. | T_IDENT : string terminal
  22. | T_HASH_LBRACE : unit terminal
  23. | T_HASH_HASH_LBRACE : unit terminal
  24. | T_GET : unit terminal
  25. | T_FUN : unit terminal
  26. | T_EXPORT : unit terminal
  27. | T_EOF : unit terminal
  28. | T_DEFAULT : unit terminal
  29. | T_DEF : unit terminal
  30. | T_DECL_XMLNS : string terminal
  31. | T_CALL : unit terminal
  32. | T_ALLOC : unit terminal
type _ nonterminal =
  1. | N_xml_attr : ((string option * string) * Forester_core.Code.t) nonterminal
  2. | N_wstext : string nonterminal
  3. | N_ws_or_text : string nonterminal
  4. | N_ws_or_method_decl_ : (string * Forester_core.Code.t) list nonterminal
  5. | N_ws_or_locate_head_node__ : Forester_core.Code.node Forester_core.Range.located list nonterminal
  6. | N_ws_list_method_decl_ : (string * Forester_core.Code.t) list nonterminal
  7. | N_ws_list_locate_head_node__ : Forester_core.Code.t nonterminal
  8. | N_textual_node : Forester_core.Code.node nonterminal
  9. | N_option_squares_wstext__ : string option nonterminal
  10. | N_option_squares_bvar__ : string list option nonterminal
  11. | N_method_decl : (string * Forester_core.Code.t) nonterminal
  12. | N_main : Forester_core.Code.t nonterminal
  13. | N_list_xml_attr_ : ((string option * string) * Forester_core.Code.t) list nonterminal
  14. | N_list_ws_or_text_ : string list nonterminal
  15. | N_list_ws_or_method_decl__ : (string * Forester_core.Code.t) list list nonterminal
  16. | N_list_ws_or_locate_head_node___ : Forester_core.Code.node Forester_core.Range.located list list nonterminal
  17. | N_list_squares_bvar_with_strictness__ : string list Forester_core.Base.binding list nonterminal
  18. | N_list_locate_textual_node__ : Forester_core.Code.t nonterminal
  19. | N_list_WHITESPACE_ : string list nonterminal
  20. | N_ident_with_method_calls : (string list * string list) nonterminal
  21. | N_ident : string list nonterminal
  22. | N_head_node : Forester_core.Code.node nonterminal
  23. | N_bvar_with_strictness : string list Forester_core.Base.binding nonterminal
  24. | N_bvar : string list nonterminal
  25. | N_arg : Forester_core.Code.t nonterminal
include MenhirLib.IncrementalEngine.INSPECTION with type 'a lr1state := 'a lr1state with type production := production with type 'a terminal := 'a terminal with type 'a nonterminal := 'a nonterminal with type 'a env := 'a env
include MenhirLib.IncrementalEngine.SYMBOLS with type 'a terminal := 'a terminal with type 'a nonterminal := 'a nonterminal
type 'a symbol =
  1. | T : 'a terminal -> 'a symbol
  2. | N : 'a nonterminal -> 'a symbol
type xsymbol =
  1. | X : 'a symbol -> xsymbol
type item = production * int
val compare_terminals : _ terminal -> _ terminal -> int
val compare_nonterminals : _ nonterminal -> _ 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 : _ lr1state -> item list
val lhs : production -> xsymbol
val rhs : production -> xsymbol list
val nullable : _ nonterminal -> bool
val first : _ nonterminal -> _ terminal -> bool
val xfirst : xsymbol -> _ terminal -> bool
val foreach_terminal : (xsymbol -> 'a -> 'a) -> 'a -> 'a
val foreach_terminal_but_error : (xsymbol -> 'a -> 'a) -> 'a -> 'a
OCaml

Innovation. Community. Security.