1 type jump_kind = [ `CONTAINS of string | `NOTHING | `TAG of Tag.t ]
4 include Sigs.T with type t = int
10 include Ptset.S with type elt = int
11 val print : Format.formatter -> t -> unit
21 | Atom of ([ `LLeft | `Left | `RRight | `Right ] * bool * State.t)
26 val equal : t -> t -> bool
27 val expr : t -> t expr
30 (StateSet.t * StateSet.t * StateSet.t) *
31 (StateSet.t * StateSet.t * StateSet.t)
33 val print : Format.formatter -> t -> unit
34 val is_true : t -> bool
35 val is_false : t -> bool
39 [ `LLeft | `Left | `RRight | `Right ] ->
40 bool -> StateSet.elt -> t
43 val and_ : t -> t -> t
45 val ( +| ) : t -> t -> t
46 val ( *& ) : t -> t -> t
48 [ `LLeft | `Left | `RRight | `Right ] -> StateSet.elt -> t
50 [ `LLeft | `Left | `RRight | `Right ] -> StateSet.elt -> t
55 type node = State.t * bool * Formula.t * bool
62 val equal : t -> t -> bool
64 val ( ?< ) : State.t -> State.t
65 val ( >< ) : State.t -> TagSet.t * bool -> State.t*(TagSet.t*bool*bool)
66 val ( ><@ ) : State.t -> TagSet.t * bool -> State.t*(TagSet.t*bool*bool)
67 val ( >=> ) : State.t *(TagSet.t*bool*bool) -> Formula.t -> (State.t*TagSet.t*t)
69 val print : Format.formatter -> t -> unit
72 module SetTagKey : Hashtbl.HashedType with type t = StateSet.t*Tag.t
74 module CachedTransTable : Hashtbl.S with type key = SetTagKey.t
76 module Formlist : Ptset.S with type elt = Transition.t
80 mutable states : StateSet.t;
82 starstate : StateSet.t option;
83 trans : (State.t, (TagSet.t * Transition.t) list) Hashtbl.t;
84 query_string : string;
86 val dump : Format.formatter -> 'a t -> unit
88 module type ResultSet =
92 val cons : Tree.t -> t -> t
93 val concat : t -> t -> t
94 val iter : (Tree.t -> unit) -> t -> unit
95 val fold : (Tree.t -> 'a -> 'a) -> t -> 'a -> 'a
96 val map : (Tree.t -> Tree.t) -> t -> t
100 module IdSet : ResultSet
102 val top_down_count : 'a t -> Tree.t -> int
103 val top_down : 'a t -> Tree.t -> IdSet.t
104 val bottom_up_count :
105 'a t -> Tree.t -> [> `CONTAINS of 'b | `TAG of Tag.t ] -> int