package lrgrep

  1. Overview
  2. Docs
Analyse the stack of a Menhir-generated LR parser using regular expressions

Install

dune-project
 Dependency

Authors

Maintainers

Sources

lrgrep-0.3.tbz
sha256=84a1874d0c063da371e19c84243aac7c40bfcb9aaf204251e0eb0d1f077f2cde
sha512=5a16ff42a196fd741bc64a1bdd45b4dca0098633e73aa665829a44625ec15382891c3643fa210dbe3704336eab095d4024e093e37ae5313810f6754de6119d55

doc/utils/Utils/SetSig/module-type-S0/index.html

Module type SetSig.S0Source

type element
type t
include S1 with type 'a element := element and type 'a t := t
val empty : t
val is_empty : t -> bool
val is_not_empty : t -> bool
val singleton : element -> t
val is_singleton : t -> bool
val cardinal : t -> int
val choose : t -> element
val minimum : t -> element option
val maximum : t -> element option
val mem : element -> t -> bool
val add : element -> t -> t
val remove : element -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val disjoint : t -> t -> bool
val iter : (element -> unit) -> t -> unit
val rev_iter : (element -> unit) -> t -> unit
val fold : (element -> 'b -> 'b) -> t -> 'b -> 'b
val fold_right : ('a -> element -> 'a) -> 'a -> t -> 'a
val map : (element -> element) -> t -> t
val exists : (element -> bool) -> t -> bool
val elements : t -> element list
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val quick_subset : t -> t -> bool
val diff : t -> t -> t

Decomposing sets

These functions implements the Refine.DECOMPOSABLE interface. We cannot reference it here as Refine is implemented using bitsets, that would create a reference cycle.

val compare_minimum : t -> t -> int
val extract_unique_prefix : t -> t -> t * t
val extract_shared_prefix : t -> t -> t * (t * t)
val sorted_union : t list -> t
val of_list : element list -> t
val init_interval : element -> element -> t
val init_subset : element -> element -> (element -> bool) -> t
val filter : (element -> bool) -> t -> t
val filter_map : (element -> element option) -> t -> t
val split : element -> t -> t * bool * t
val find : (element -> bool) -> t -> element
val find_map : (element -> 'b option) -> t -> 'b option
val to_seq : t -> element Stdlib.Seq.t
val bind : t -> (element -> t) -> t
val split_by_run : (element -> element) -> t -> (element * t) list

Split a set into consecutive “runs” of elements that share the same class.

Parameters

  • cls : 'a element → 'b element that assigns a class to each element.
  • xs : 'a t – the input set to be split.

Returns A list of pairs. Each pair is made of a class (the result of cls for the run) and the subset of the original elements that belong to that run (preserving the original order).

val fused_inter_union : t -> t -> acc:t -> t
val rev_map_elements : t -> (element -> 'b) -> 'b list