package cfg

  1. Overview
  2. Docs
module Spec : sig ... end
module TSet : sig ... end
module TMap : sig ... end
module NTSet : sig ... end
module NTMap : sig ... end
module ProdSet : sig ... end
module ProdMap : sig ... end
type grammar
type live_grammar
val empty : grammar
val add_prod : grammar -> Spec.nt -> Spec.prod -> Spec.symbol list -> grammar
val remove_nt : grammar -> Spec.nt -> grammar
val union : grammar -> grammar -> grammar
val diff : grammar -> grammar -> grammar
val inter : grammar -> grammar -> grammar
val grammar_of_live : live_grammar -> grammar
val prune_unproductive : grammar -> grammar
val prune_nonlive : grammar -> live_grammar
val prune_unreachable : grammar -> Spec.nt -> grammar
val prune_unreachable_live : live_grammar -> Spec.nt -> live_grammar
val make_sane : grammar -> Spec.nt -> grammar
val make_sane_live : grammar -> Spec.nt -> live_grammar
val grammar_contents : grammar -> ProdSet.t NTMap.t
val deriv_depth_info : live_grammar -> (int * int ProdMap.t) NTMap.t
val nts_in_grammar : grammar -> NTSet.t
val ts_in_grammar : grammar -> TSet.t
val prods_in_grammar : grammar -> ProdSet.t
val bounded_grammar : grammar -> Spec.nt -> int -> (TSet.t * grammar) list