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/kernel/Kernel/Automata/Machine/index.html

Module Automata.MachineSource

Sourcetype ('g, 'r) label = {
  1. filter : 'g Info.lr1 Utils.Misc.indexset;
    (*

    The set of lr1 states that allow this transition to be taken.

    *)
  2. captures : (Regexp.Capture.t * Lrgrep_support.Register.t) list;
    (*

    The set of variables captured, and the register in which to store the variable, when the transition is taken.

    *)
  3. clear : Lrgrep_support.Register.set;
    (*

    The set of registers to clear when the transition is taken.

    *)
  4. moves : Lrgrep_support.Register.t Lrgrep_support.Register.map;
    (*

    Registers to move when taking this transition. The source register is used as a key and the target as a value.

    *)
  5. priority : (('g, 'r) Spec.branch Fix.Indexing.index * priority * priority) list;
    (*

    Dynamic priority levels to remap. An element (c, p1, p2) means that a match of clause c at priority p1 in the source state corresponds to a match at priority p2 in the target state.

    *)
}
Sourceval label_compare : ('a, 'b) label -> ('a, 'c) label -> int
Sourcetype ('g, 'r, 'st, 'tr) t = {
  1. initial : 'st Fix.Indexing.index option;
  2. source : ('tr, 'st Fix.Indexing.index) Fix.Indexing.vector;
  3. target : ('tr, 'st Fix.Indexing.index) Fix.Indexing.vector;
  4. label : ('tr, ('g, 'r) label) Fix.Indexing.vector;
  5. unhandled : ('st, 'g Info.lr1 Utils.Misc.indexset) Fix.Indexing.vector;
  6. outgoing : ('st, 'tr Utils.Misc.indexset) Fix.Indexing.vector;
  7. accepting : ('st, (('g, 'r) Spec.branch Fix.Indexing.index * priority * Lrgrep_support.Register.t Regexp.Capture.map) list) Fix.Indexing.vector;
  8. branches : ('st, (('g, 'r) Spec.branch Fix.Indexing.index * bool * Lrgrep_support.Register.t Regexp.Capture.map) list) Fix.Indexing.vector;
  9. register_count : int;
  10. partial_captures : Regexp.Capture.set;
}
Sourcetype ('g, 'r) _t =
  1. | T : ('g, 'r, 'st, 'tr) t -> ('g, 'r) _t
Sourceval dump : 'a Kernel__Info.grammar -> ('a, 'b, 'c, 'd) t -> Stdlib.out_channel -> unit
Sourceval minimize : ('g, 'r) Spec.branches -> ('g, 'r, 'dfa) DFA.t -> ('g, 'r, 'dfa) Dataflow.t -> ('g, 'r) _t
Sourceval states : ('a, 'b, 'c, 'd) t -> 'c Fix__Indexing.cardinal