package lrgrep
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
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/support/Lrgrep_support/index.html
Module Lrgrep_supportSource
module RT = Lrgrep_runtimeEmit and link bytecode program
Source
type ('clause, 'state) transition_action = {move : (Register.t * Register.t) list;store : Register.t list;clear : Register.t list;priority : ('clause Fix.Indexing.index * RT.priority * RT.priority) list;target : 'state Fix.Indexing.index;
}The action of a transition is pair of:
- a possibly empty list of registers to save the current state to
- a target state (index of the state in the dfa array)
Source
type ('state, 'clause, 'lr1) state = {accept : ('clause Fix.Indexing.index * RT.priority * RT.register option array) list;(*a clause to accept in this state.
*)halting : 'lr1 Utils.IndexSet.t;(*The set of labels that should cause matching to halt (this can be seen as a transition to a "virtual" sink state).
*)transitions : ('lr1 Utils.IndexSet.t * ('clause, 'state) transition_action) list;(*Transitions for this state, as a list of labels and actions.
*)
}The result of compaction is a program, a sparse table, and an array mapping each DFA state to the PC of the instructions that implement this state.
Source
val compact :
'state Fix.Indexing.cardinal ->
('state Fix.Indexing.index -> ('state, _, _) state) ->
compact_dfaRun the compaction algorithm on a dfa
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>