X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2FxPath.mli;h=1e4d26dbf71d41e1e2e0e922359b9ddc8ed58169;hb=ddd758716b1cd691c8748d2e86c179e803b1d3af;hp=44935c3b502f79f09b9f2bcc1e8fc58cc6b3e8fb;hpb=cba2938d929fd5119b1491686ddc224d5af618c6;p=tatoo.git diff --git a/src/xPath.mli b/src/xPath.mli index 44935c3..1e4d26d 100644 --- a/src/xPath.mli +++ b/src/xPath.mli @@ -12,38 +12,35 @@ (* ../LICENSE. *) (* *) (***********************************************************************) - - -(** Abstract syntax tree of XPath queries *) - module Ast : sig - type path = Absolute of step list | AbsoluteDoS of step list - | Relative of step list + type path = single_path list + and single_path = Absolute of step list | Relative of step list + and step = axis * test * expr list + and axis = Self | Attribute | Child | Descendant | DescendantOrSelf | FollowingSibling + | Parent | Ancestor | AncestorOrSelf | PrecedingSibling | Preceding | Following - and step = axis * test * predicate - and axis = Self | Attribute | Child | Descendant | DescendantOrSelf - | FollowingSibling - | Parent | Ancestor | AncestorOrSelf |PrecedingSibling - | Preceding | Following - and test = Simple of QNameSet.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 + and test = QNameSet.t + + and binop = Eq | Neq | Lt | Gt | Lte | Gte | Or | And | Add | Sub | Mult | Div | Mod + and unop = Neg + and expr = + | Number of [ `Int of int | `Float of float ] + | String of string + | Fun_call of QName.t * expr list + | Path of path + | Binop of expr * binop * expr + | Unop of unop * expr type t = path - val print : Format.formatter -> path -> unit + val text : QNameSet.t + val node : QNameSet.t + val star : QNameSet.t + val print_binop : Format.formatter -> binop -> unit + val print_unop : Format.formatter -> unop -> unit + val print_path : Format.formatter -> path -> unit + val print_single_path : Format.formatter -> single_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 + val print_expr : Format.formatter -> expr -> unit + end