package lrgrep

  1. Overview
  2. Docs
Detailed error messages for Menhir-generated parsers

Install

dune-project
 Dependency

Authors

Maintainers

Sources

lrgrep-0.9.tbz
sha256=e53de12e4c5cbe6bca00643593266b4f9fa2e3f6a138195eeff7a4329f5c1c75
sha512=7fd7c4d11506fea7cc11c9bbf5aea9142d905643553c0c90e1bb16b794106b0c14a266acf89ae91b6929008dc0ba6515f788642873e2e4ba6c3d49bd45d25127

doc/kernel/Kernel/Coverage/Cover/index.html

Module Coverage.CoverSource

Sourcetype ('g, 'lrc, 'enu) graph =
  1. | Graph : {
    1. enum : ('n, 'g Info.terminal) Enum._graph;
    2. position : 'n Fix.Indexing.index -> ('lrc, 'enu) Fix.Indexing.Sum.n Fix.Indexing.index;
    3. unaccepted : 'n Fix.Indexing.index -> 'g Info.terminal Utils.Misc.indexset;
    4. sinks : 'n Fix.Indexing.index list;
    } -> ('g, 'lrc, 'enu) graph

Computes coverage by constructing a synchronized product of the user's error matching machine with the enumeration graph. States where the machine cannot handle the unaccepted lookaheads of the enumeration graph are identified as uncovered.

Sourceval coverage : 'g Info.grammar -> ('g, 'r) Spec.branches -> ('g, 'r, 'st, 'tr) Automata.Machine.t -> ('g, 'lrc) Automata.stacks -> ('g, 'lrc, 'ao) Andor._graph -> ('g, 'lrc, 'ao, 'en) Deter._graph -> ('g, 'lrc, 'en) graph

Compute the coverage product graph. Each product state pairs a machine state with a position in the enumeration graph (either an LRC state or an Enum node). Unaccepted lookaheads are propagated through the product, filtered by the machine's accepting transitions and branch lookahead sets. Sink states with remaining unaccepted lookaheads are coverage gaps.