1 (***********************************************************************)
5 (* Kim Nguyen, LRI UMR8623 *)
6 (* Université Paris-Sud & CNRS *)
8 (* Copyright 2010-2013 Université Paris-Sud and Centre National de la *)
9 (* Recherche Scientifique. All rights reserved. This file is *)
10 (* distributed under the terms of the GNU Lesser General Public *)
11 (* License, with the special exception on linking described in file *)
14 (***********************************************************************)
17 Time-stamp: <Last modified on 2013-03-15 18:18:23 CET by Kim Nguyen>
28 | Is of Tree.Common.NodeKind.t
32 val is_move : predicate -> bool
34 type atom = predicate * bool * State.t
36 module Atom : Formula.ATOM with type data = atom
40 include module type of Formula.Make(Atom)
41 val mk_atom : predicate -> bool -> State.t -> t
42 val mk_kind : Tree.Common.NodeKind.t -> t
43 val has_first_child : t
44 val has_next_sibling : t
45 val is_first_child : t
46 val is_next_sibling : t
49 val is_processing_instruction : t
51 val first_child : State.t -> t
52 val next_sibling : State.t -> t
53 val parent : State.t -> t
54 val previous_sibling : State.t -> t
55 val stay : State.t -> t
56 val get_states : t -> StateSet.t
60 module Transition : Utils.Hcons.S with
61 type data = State.t * Utils.QNameSet.t * SFormula.t
63 module TransList : sig
64 include Utils.Hlist.S with type elt = Transition.t
65 val print : Format.formatter -> ?sep:string -> t -> unit
71 mutable states : StateSet.t;
72 mutable selection_states: StateSet.t;
73 transitions: (State.t, (Utils.QNameSet.t*SFormula.t) list) Hashtbl.t;
74 mutable cache2 : TransList.t Utils.Cache.N2.t;
75 mutable cache6 : (TransList.t*StateSet.t) Utils.Cache.N6.t;
80 val create : StateSet.t -> StateSet.t -> t
82 val get_trans : t -> Utils.QNameSet.elt -> StateSet.t -> TransList.t
84 val eval_trans : t -> TransList.t
85 -> StateSet.t -> StateSet.t -> StateSet.t -> StateSet.t
86 -> bool -> bool -> bool -> bool -> Tree.Common.NodeKind.t
87 -> TransList.t*StateSet.t
89 val add_trans : t -> State.t -> Utils.QNameSet.t -> SFormula.t -> unit
90 val print : Format.formatter -> t -> unit
91 val complete_transitions : t -> unit
92 val cleanup_states : t -> unit
93 val normalize_negations : t -> unit