Simplify the automaton encoding a bit (remove redundant predicates in formulae).
[tatoo.git] / src / xpath / ast.ml
index a90a41b..5b322a4 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(*
-  Time-stamp: <Last modified on 2013-04-04 18:43:04 CEST by Kim Nguyen>
-*)
-
-
 type path = single_path list
 and single_path = Absolute of step list | Relative of step list
 and step = axis * test * expr list
@@ -132,15 +127,16 @@ and print_test fmt (ts,kind) =
       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" "<DOCUMENT>"
@@ -186,4 +182,3 @@ let invert_axis = function
 | Preceding -> Following
 | Following -> Preceding
 ;;
-