Commented out two optimizations that break predicate tests.
authorFrederic Jolliton <frederic@jolliton.com>
Mon, 12 Sep 2005 03:14:19 +0000 (03:14 +0000)
committerFrederic Jolliton <frederic@jolliton.com>
Mon, 12 Sep 2005 03:14:19 +0000 (03:14 +0000)
 * Commented out two optimizations that were breaking predicate tests
   based on position():

   - descendant-or-self::node()/child::<TEST>[<PRED>] -> descendant::<TEST>[<PRED>]

   - descendant-or-self::node()/attribute::<NAME>[<PRED>] -> ext:descendant-attribute(<NAME>)[PRED]
git-archimport-id: frederic@jolliton.com--2005-main/tx--main--0.1--patch-25

xpath.py

index f647e8c..f0074c6 100644 (file)
--- a/xpath.py
+++ b/xpath.py
@@ -556,10 +556,11 @@ rules = [
                                ( 'child' , 1 ) ) ,
                  To( 'descendant' , 1 ) ) ,
 
-       # descendant-or-self::node()/child::<TEST>[<PRED>] -> descendant::<TEST>[<PRED>]
-       Rule( From( ( 'descendant-or-self' , ( 'node' , ) ) ,
-                               ( 'predicates' , ( 'child' , 1 ) , 2 ) ) ,
-                 To( 'predicates' , ( 'descendant' , 1 ) , 2 ) ) ,
+#   WRONG ! Don't work for //p[1]
+#      # descendant-or-self::node()/child::<TEST>[<PRED>] -> descendant::<TEST>[<PRED>]
+#      Rule( From( ( 'descendant-or-self' , ( 'node' , ) ) ,
+#                              ( 'predicates' , ( 'child' , 1 ) , 2 ) ) ,
+#                To( 'predicates' , ( 'descendant' , 1 ) , 2 ) ) ,
 
        # child::<TEST>/descendant::<TEST> -> descendant::<TEST>
        Rule( From( ( 'child' , 1 ) ,
@@ -576,12 +577,13 @@ rules = [
                                ( 'attribute' , ( 'attribute' , 1 ) ) ) ,
                  To( 'call' , 'ext:descendant-attribute' , ( 'path' , ( 'string' , 1 ) ) ) ) ,
 
-       # descendant-or-self::node()/attribute::<NAME>[<PRED>] -> ext:descendant-attribute(<NAME>)[PRED]
-       Rule( From( ( 'descendant-or-self' , ( 'node' , ) ) ,
-                               ( 'predicates' , ( 'attribute' , ( 'attribute' , 1 ) ) , 2 ) ) ,
-                 To( 'predicates' , ( 'call' , 'ext:descendant-attribute' ,
-                                                          ( 'path' , ( 'string' , 1 ) ) ) ,
-                         2 ) ) ,
+#   WRONG ! Don't work for //@href[1]
+#      # descendant-or-self::node()/attribute::<NAME>[<PRED>] -> ext:descendant-attribute(<NAME>)[PRED]
+#      Rule( From( ( 'descendant-or-self' , ( 'node' , ) ) ,
+#                              ( 'predicates' , ( 'attribute' , ( 'attribute' , 1 ) ) , 2 ) ) ,
+#                To( 'predicates' , ( 'call' , 'ext:descendant-attribute' ,
+#                                                         ( 'path' , ( 'string' , 1 ) ) ) ,
+#                        2 ) ) ,
 
        # descendant-or-self::node()/child::<NAME>[attribute::<ATT>]
        #   -> ext:descendant-attribute(<ATT>)/parent::<NAME>