Up

module Lr0

: sig
#
type node = int
#
val n : int
#
val entry : node Grammar.ProductionMap.t
#
val items : node -> Item.Set.t
#
type lr1state
#
type concretelr1state = Grammar.TerminalSet.t Item.Map.t
#
val export : lr1state -> concretelr1state
#
val core : lr1state -> node
#
val start : node -> lr1state
#
val transitions : lr1state -> lr1state Grammar.SymbolMap.t
#
val outgoing_symbols : node -> Grammar.Symbol.t list
#
val transition : Grammar.Symbol.t -> lr1state -> lr1state
#
val reductions : lr1state -> (Grammar.TerminalSet.t * Grammar.Production.index) list
#
val equal : lr1state -> lr1state -> bool
#
val subsume : lr1state -> lr1state -> bool
#
val compatible : lr1state -> lr1state -> bool
#
val eos_compatible : lr1state -> lr1state -> bool
#
val error_compatible : lr1state -> lr1state -> bool
#
val union : lr1state -> lr1state -> lr1state
#
val restrict : Grammar.TerminalSet.t -> lr1state -> lr1state
#
val print_concrete : concretelr1state -> string
#
val print : lr1state -> string
#
val print_closure : lr1state -> string
end