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/IndexSet/index.html

Module Utils.IndexSetSource

include SetSig.S1 with type 'a t = private IntSet.t and type 'a element = 'a Fix.Indexing.index
type 'a element = 'a Fix.Indexing.index
type 'a t = private IntSet.t
val empty : 'a t
val is_empty : 'a t -> bool
val is_not_empty : 'a t -> bool
val singleton : 'a element -> 'a t
val is_singleton : 'a t -> bool
val cardinal : 'a t -> int
val choose : 'a t -> 'a element
val minimum : 'a t -> 'a element option
val maximum : 'a t -> 'a element option
val mem : 'a element -> 'a t -> bool
val add : 'a element -> 'a t -> 'a t
val remove : 'a element -> 'a t -> 'a t
val union : 'a t -> 'a t -> 'a t
val inter : 'a t -> 'a t -> 'a t
val disjoint : 'a t -> 'a t -> bool
val iter : ('a element -> unit) -> 'a t -> unit
val rev_iter : ('a element -> unit) -> 'a t -> unit
val fold : ('a element -> 'b -> 'b) -> 'a t -> 'b -> 'b
val fold_right : ('a -> 'b element -> 'a) -> 'a -> 'b t -> 'a
val map : ('a element -> 'b element) -> 'a t -> 'b t
val exists : ('a element -> bool) -> 'a t -> bool
val elements : 'a t -> 'a element list
val compare : 'a t -> 'a t -> int
val equal : 'a t -> 'a t -> bool
val subset : 'a t -> 'a t -> bool
val quick_subset : 'a t -> 'a t -> bool
val diff : 'a t -> 'a t -> 'a 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 : 'a t -> 'a t -> int
val extract_unique_prefix : 'a t -> 'a t -> 'a t * 'a t
val extract_shared_prefix : 'a t -> 'a t -> 'a t * ('a t * 'a t)
val sorted_union : 'a t list -> 'a t
val of_list : 'a element list -> 'a t
val init_interval : 'a element -> 'a element -> 'a t
val init_subset : 'a element -> 'a element -> ('a element -> bool) -> 'a t
val filter : ('a element -> bool) -> 'a t -> 'a t
val filter_map : ('a element -> 'b element option) -> 'a t -> 'b t
val split : 'a element -> 'a t -> 'a t * bool * 'a t
val find : ('a element -> bool) -> 'a t -> 'a element
val find_map : ('a element -> 'b option) -> 'a t -> 'b option
val to_seq : 'a t -> 'a element Stdlib.Seq.t
val bind : 'a t -> ('a element -> 'b t) -> 'b t
val split_by_run : ('a element -> 'b element) -> 'a t -> ('b element * 'a 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 : 'a t -> 'a t -> acc:'a t -> 'a t
val rev_map_elements : 'a t -> ('a element -> 'b) -> 'b list
val unsafe_to_indexset : 'a t -> 'b t
val unsafe_of_intset : IntSet.t -> 'a t
Sourceval all : 'a Fix.Indexing.cardinal -> 'a t
Sourceval init_from_set : 'a Fix.Indexing.cardinal -> ('a Fix.Indexing.index -> bool) -> 'a t
module Set : SetSig.StdSetS1 with type 'a t = private IntSetSet.t and type 'a elt = 'a t
module Map : SetSig.StdMapS1 with type ('n, 'a) t = private 'a IntSetMap.t and type 'n key = 'n t