X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fxpath%2Fast.ml;h=5b322a4af56a28c2d01c596756820aaa7ee4f128;hp=64c6c8da6214b7b863feaa28be40c883b5fd4aed;hb=fe2ba1820282783ae8c10fbbbd2b65d3dc4c67f2;hpb=53a0fd29a20e7f4550e0eb5fa5b0d5af6191c36d diff --git a/src/xpath/ast.ml b/src/xpath/ast.ml index 64c6c8d..5b322a4 100644 --- a/src/xpath/ast.ml +++ b/src/xpath/ast.ml @@ -13,12 +13,6 @@ (* *) (***********************************************************************) -(* - Time-stamp: -*) - -open Utils - type path = single_path list and single_path = Absolute of step list | Relative of step list and step = axis * test * expr list @@ -30,7 +24,7 @@ and axis = Self | Attribute | Child | PrecedingSibling | Preceding | Following -and test = QNameSet.t * Tree.Common.NodeKind.t +and test = QNameSet.t * Tree.NodeKind.t and binop = Eq | Neq | Lt | Gt | Lte | Gte | Or | And | Add | Sub | Mult | Div | Mod and unop = Neg @@ -128,20 +122,21 @@ and print_axis fmt a = pp fmt "%s" begin end and print_test fmt (ts,kind) = - let open Tree.Common.NodeKind in + let open Tree.NodeKind in match kind with Text -> pp fmt "%s" "text()" | Element | Attribute -> pp fmt "%s" begin - if ts == star then "*" - else QName.to_string (QNameSet.choose ts) + if QNameSet.is_finite ts then + QName.to_string (QNameSet.choose ts) + else "*" end | Comment -> pp fmt "%s" "comment()" | ProcessingInstruction -> pp fmt "processing-instruction(%s)" begin if ts == star then "" - else "'" ^ (QName.to_string (QNameSet.choose ts)) ^ "'" + else "\"" ^ (QName.to_string (QNameSet.choose ts)) ^ "\"" end | Node -> pp fmt "%s" "node()" | Document -> pp fmt "%s" "" @@ -187,4 +182,3 @@ let invert_axis = function | Preceding -> Following | Following -> Preceding ;; -