(***********************************************************************) (* *) (* TAToo *) (* *) (* Lucca Hirschi, LRI UMR8623 *) (* Université Paris-Sud & CNRS *) (* *) (* Copyright 2010-2012 Université Paris-Sud and Centre National de la *) (* Recherche Scientifique. All rights reserved. This file is *) (* distributed under the terms of the GNU Lesser General Public *) (* License, with the special exception on linking described in file *) (* ../LICENSE. *) (* *) (***********************************************************************) (** Implementation of alternating selecting tree automata (ASTA) *) type state = State.t (** The type of states *) type label = QNameSet.t (** The type of labels of the transitions *) type formula = Formula.t (** The type of transition formulae *) type transition = (state*label*formula) (** The type of transitions *) type t (** The type of ASTAs *) val transition : t -> state -> label -> formula (** Give the formula which must hold for a current state and label *) val transitions : t -> state -> (label*formula) list * (label*formula) list (** Give the list of labels and formulae from queries and recognizing transitions for a given state *) val transitions_lab : t -> QName.t -> (state*formula) list *(state*formula) list (** Give the list of states and formulae from queries and recognizing transitions for a given tag *) val empty : t (** The empty automaton *) val any_label : label (** Set of all labels which can occur in a tree *) val new_state : unit -> state (** Give a new state (different from all others states) *) val add_tr : t -> transition -> bool -> unit (** Add a query transition (recognizing transition if flag=false) to an asta *) val add_reco : t -> state -> unit (** Add a state to the recognizing states of an asta *) val add_quer : t -> state -> unit (** Add a state to the query states of an asta *) val add_selec : t -> state -> unit (** Add a state to the selecting states of an asta *) val add_bot : t -> state -> unit (** Add a state to the bottom states of an asta *) val add_top : t -> state -> unit (** Add a state to the top states of an asta *) val init_top : t -> unit (** Remove all top states *) val top_states : t -> state list (** Give the list of top states of an ASTA *) val top_states_s : t -> StateSet.t (** Give the set of top states of an ASTA *) val bot_states_s : t -> StateSet.t (** Give the set of bottom states of an ASTA *) val selec_states : t -> StateSet.t (** Give the list of selecting states of an ASTA *) val print : Format.formatter -> t -> unit (** Pretty printer *) val to_file : out_channel -> t -> unit (** Outputs the description of the automaton on the given out_channel *)