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/fix/Fix/Glue/index.html

Module Fix.GlueSource

This module contains glue code that helps use the functors provided by other modules. In particular, it helps build various implementations of association maps.

Types

Sourcemodule CHAR : sig ... end

The type char, packaged as a module of signature TYPE.

Sourcemodule INT : sig ... end

The type int, packaged as a module of signature TYPE.

Sourcemodule STRING : sig ... end

The type string, packaged as a module of signature TYPE.

Ordered and Hashed Types

Sourcemodule TrivialOrderedType (T : sig ... end) : sig ... end

TrivialOrderedType equips an arbitrary type with an ordering function, just by using OCaml's built-in generic comparison function.

Sourcemodule TrivialHashedType (T : sig ... end) : sig ... end

TrivialHashedType equips an arbitrary type with equality and hash functions, just by using OCaml's built-in generic equality and hash functions.

Exploiting Injections

Sourcemodule InjectOrderedType (U : sig ... end) (I : sig ... end) : sig ... end

If there is an injection of t into u, then an ordering on u gives rise to an ordering on t.

Sourcemodule InjectHashedType (U : sig ... end) (I : sig ... end) : sig ... end

If there is an injection of t into u, then a hashed-type structure on u can be transported to t.

Sourcemodule InjectMinimalImperativeMaps (M : sig ... end) (I : sig ... end) : sig ... end

If there is an injection of t into u, then an implementation of minimal imperative maps for the type u can be transported to the type t.

Sourcemodule InjectImperativeMaps (M : sig ... end) (I : sig ... end) (J : sig ... end) : sig ... end

If there is an injection of t into u, and if the inverse mapping can be effectively computed, then an implementation of imperative maps for the type u can be transported to the type t.

Maps

Sourcemodule PersistentMapsToImperativeMaps (M : sig ... end) : sig ... end

An implementation of persistent maps can be made to satisfy the interface of imperative maps. An imperative map is represented as a persistent map, wrapped within a reference cell.

Sourcemodule ArraysAsImperativeMaps (K : sig ... end) : sig ... end

An implementation of imperative maps as arrays is possible if keys are consecutive integers.

Sourcemodule HashTablesAsImperativeMaps (H : sig ... end) : sig ... end

An implementation of imperative maps as a hash table.

Sourcemodule WeakHashTablesAsImperativeMaps (H : sig ... end) : sig ... end

An implementation of imperative maps as a weak hash table. Use with caution: this table can forget some of its entries, and can therefore be unsuitable for use in some applications.

Semi-Lattices

Sourcemodule MinimalSemiLattice (P : sig ... end) : sig ... end

MinimalSemiLattice converts a semi-lattice to a minimal semi-lattice; that is, it implements leq_join in terms of separate leq and join operations.