package lrgrep
Module Kernel.RedgraphSource
Source
type 'g stack_tree = {subs : ('g Info.lr1 Fix.Indexing.index list * 'g Info.terminal Utils.Misc.indexset * 'g stack_tree) list;
}Source
type 'g reduction_closure = {accepting : 'g Info.terminal Utils.Misc.indexset;failing : 'g Info.terminal Utils.Misc.indexset;reductions : ('g Info.nonterminal, 'g Info.terminal Utils.Misc.indexset) Utils.Misc.indexmap list;stacks : 'g stack_tree;
}Source
val dump_closure :
?failing:bool ->
'g Info.grammar ->
('n Fix.Indexing.index -> string) ->
('n, 'g reduction_closure) Fix.Indexing.vector ->
unitSource
type 'g target_trie = private {mutable sub : ('g Info.lr1, 'g target_trie) Utils.Misc.indexmap;mutable immediates : 'g Info.lr1 Utils.Misc.indexset;mutable targets : ('g Info.lr1, 'g target Fix.Indexing.index) Utils.Misc.indexmap;
}Source
val index_targets :
'g Info.grammar ->
('g, 'g Info.lr1) reduction_closures ->
'g target_trie * ('g Info.goto_transition, 'g targets) Fix.Indexing.vectorSource
val make :
'g Info.grammar ->
('g, 'g Info.lr1) reduction_closures ->
('g Info.goto_transition, 'g targets) Fix.Indexing.vector ->
'g graphSource
type 'g transition = {reached : 'g target Utils.Misc.indexset;reachable : 'g target Utils.Misc.indexset;step : 'g step Fix.Indexing.index;
}Source
type 'g action = | Advance of 'g step Fix.Indexing.index| Switch of ('g Info.lr1, 'g transition list) Utils.Misc.indexmap