Merge branch 'handle-stdout'
[SXSI/xpathcomp.git] / src / formula.mli
1 type 'a expr =
2     False
3     | True
4     | Or of 'a * 'a
5     | And of 'a * 'a
6     | Atom of ([ `Left |`Right | `Epsilon ] * bool * State.t)
7     | Pred of Tree.Predicate.t
8
9 type t
10 val hash : t -> int
11 val uid : t -> Uid.t
12 val equal : t -> t -> bool
13 val expr : t -> t expr
14 val st : t -> StateSet.t * StateSet.t
15 val compare : t -> t -> int
16 val size : t -> int
17 val print : Format.formatter -> t -> unit
18 val is_true : t -> bool
19 val is_false : t -> bool
20 val true_ : t
21 val false_ : t
22 val atom_ :
23   [ `Left | `Right | `Epsilon ] -> bool -> StateSet.elt -> t
24 val pred_ : Tree.Predicate.t -> t
25 val not_ : t -> t
26 val or_ : t -> t -> t
27 val and_ : t -> t -> t
28 val of_bool : bool -> t
29 val or_pred : t -> t -> t
30 val and_pred : t -> t -> t
31
32
33 module Infix : sig
34   val ( +| ) : t -> t -> t
35   val ( *& ) : t -> t -> t
36   val ( *+ ) :
37     [ `Left | `Right | `Epsilon ] -> StateSet.elt -> t
38   val ( *- ) :
39     [ `Left | `Right | `Epsilon ] -> StateSet.elt -> t
40 end