module Ast : sig type path = Absolute of step list | AbsoluteDoS of step list| Relative of step list and step = axis * test * predicate and axis = Self | Attribute | Child | Descendant | DescendantOrSelf | FollowingSibling | Parent | Ancestor | AncestorOrSelf |PrecedingSibling | Preceding | Following and test = Simple of TagSet.t | Complex of TagSet.t * Tree.Predicate.t and predicate = Or of predicate*predicate | And of predicate*predicate | Not of predicate | Expr of expression and expression = Path of path | Function of string*expression list | Int of int | String of string | True | False type t = path val print : Format.formatter -> path -> unit val print_step : Format.formatter -> step -> unit val print_axis : Format.formatter -> axis -> unit val print_test : Format.formatter -> test -> unit val print_predicate : Format.formatter -> predicate -> unit val print_expression : Format.formatter -> expression -> unit end val parse : string -> Ast.path