1 type jump_kind = [ `CONTAINS of string | `NOTHING | `TAG of Tag.t ]
4 include Sigs.T with type t = int
7 type merge_conf = NO | ONLY1 | ONLY2 | ONLY12 | MARK | MARK1 | MARK2 | MARK12
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 * TagSet.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 Formlist : Hlist.S with type elt = Transition.t
76 mutable states : StateSet.t;
78 starstate : StateSet.t option;
79 trans : (State.t, (TagSet.t * Transition.t) list) Hashtbl.t;
80 query_string : string;
82 val dump : Format.formatter -> 'a t -> unit
84 module type ResultSet =
87 type elt = [`Tree] Tree.node
89 val cons : elt -> t -> t
90 val concat : t -> t -> t
91 val iter : (elt -> unit) -> t -> unit
92 val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
93 val map : (elt -> elt) -> t -> t
95 val merge : merge_conf -> elt -> t -> t -> t
96 val mk_quick_tag_loop : (elt -> elt -> 'a*t array) -> 'a -> int -> Tree.t -> Tag.t -> (elt -> elt -> 'a*t array)
97 val mk_quick_star_loop : (elt -> elt -> 'a*t array) -> 'a -> int -> Tree.t -> (elt -> elt -> 'a*t array)
100 module IdSet : ResultSet
101 module GResult (Doc : sig val doc : Tree.t end) : ResultSet
103 val top_down_count : 'a t -> Tree.t -> int
104 val top_down : 'a t -> Tree.t -> IdSet.t
105 val bottom_up_count :
106 'a t -> Tree.t -> [> `CONTAINS of 'b | `TAG of Tag.t ] -> int
108 'a t -> Tree.t -> [> `CONTAINS of 'b | `TAG of Tag.t ] -> IdSet.t
110 module Test (Doc : sig val doc : Tree.t end ) :
112 module Results : ResultSet
113 val top_down : 'a t -> Tree.t -> Results.t