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/lrgrep.runtime/Lrgrep_runtime/Sparse_table/index.html

Module Lrgrep_runtime.Sparse_tableSource

A sparse table stores many partial mapping from 0..k-1 to 0..v-1 (the set of keys and values) and is directly serialized to a string.

The first two bytes are used to encode the size in bytes of keys and values. Possible values are 1, 2, 3, or 4. For instance, a table starting with "\x01\x02..." represents a table with one byte keys and two bytes values.

The rest is just a sequence of cells composed of a key and a value. The size of a table is therefore always of the form: 2 + (size_k + size_v) * n

In the current implementation, keys are lr1 states and values are program counters.

Sourcetype row = int
Sourcetype col = int
Sourcetype value = int
Sourceval get1 : string -> int -> int
Sourceval get2 : string -> int -> int
Sourceval get3 : string -> int -> int
Sourceval get4 : string -> int -> int
Sourcetype t = {
  1. displacement : int -> int;
  2. offset : int;
  3. keys : int -> int;
  4. values : int -> int;
}
Sourceval lookup : t -> row -> col -> value option