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/valmari/Valmari/module-type-INPUT/index.html

Module type Valmari.INPUTSource

include DFA
Sourcetype states

The set of DFA nodes

Sourcetype transitions

The set of DFA transitions

Sourcetype label

The type of labels that annotate transitions

Get the label associated with a transition

Get the source state of the transition

Get the target state of the transition

Sourceval initials : (states Fix.Indexing.index -> unit) -> unit

Iterate on initial states

Sourceval finals : (states Fix.Indexing.index -> unit) -> unit

Iterate final states

Sourceval refinements : ((add:(states Fix.Indexing.index -> unit) -> unit) -> unit) -> unit

The minimization algorithms operate on a DFA plus an optional initial refinement (state that must be distinguished, because of some external properties not observable from the labelled transitions alone).

If no refinements are needed, the minimum implementation is just: let refinements ~refine:_ = ()

Otherwise, the refinements function should invoke the refine function for each set of equivalent states and call the iter for each equivalent state.

E.g if our automata has 5 states, and states 2 and 3 have tag A while states 4 and 5 have tag B, we will do:

let refinements ~refine = refine (fun ~iter -> iter 2; 3); refine (fun ~iter -> iter 4; 5)