- 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