Commit graph

37 commits

Author SHA1 Message Date
jez
2e1b775e71 changed the handling of RelativeLocationPath token when building a step list. There might be things following the path, and must take them into account. Test position89 exposed a problem prompting this change. 2008-05-28 15:08:35 +00:00
jez
53fbf26ff0 Correctly implemented Namespace Nodes.
The XPath data model requires that namespace nodes are associated with an element, and sort ahead of attribute nodes in document order.  Until now, Arabica's namespace node had no parent, or owner document and so was failing these requirements.  The Xalan position111 test case highlights this requirement.
2008-05-28 08:53:21 +00:00
jez
5d7f3364ba Visual Studio, how I curse your useless warning C4800 2008-05-28 08:45:25 +00:00
jez
f89a2be3cc fix in MultiplicativeExpr rule for Boost 1.35 2008-05-04 18:10:03 +00:00
jez
261f589f47 2008-05-04 14:41:23 +00:00
jez
84d7d9390a spelled underlying_impl wrong all these years and never realised, start work on sorting namespace nodes ahead of attribute nodes 2008-04-23 14:41:00 +00:00
jez
c6564e798c added missing typename 2008-04-23 14:39:11 +00:00
jez
f818f192af fixed match rewriting when there are leading predicates - http://www.jezuk.co.uk/jez/2008April#3711 2008-04-18 09:11:51 +00:00
jez
a049a72c08 fixed sorting bug when reverse sorting a nodeset which includes the root node 2008-04-17 20:32:32 +00:00
jez
0850f50269 tweaking document order across documents - not for any better reason than making a test case pass 2007-12-25 21:56:28 +00:00
jez
2e6c372933 hacked up a ncname test, although it's not working at the moment and I'm tired and can't think 2007-12-22 22:21:26 +00:00
jez
235f81718d Added Expression_scanner and scan (a visitor pattern basically) to allow XPathExpression_impls to be examined. This is used in the match rewriting to search for position() and last() function calls.
To ease implementing scan, BinaryExpression and UnaryExpression now inherit XPathExpression_impl.  Other classes now derived only from Binary|UnaryExpression rather than from XPathExpression_impl as well.
2007-12-21 15:56:04 +00:00
jez
a8ce93f89b First proper go at rewriting positional matches. 2007-12-21 14:13:36 +00:00
jez
cbc9cf3797 it's late 2007-12-20 23:24:16 +00:00
jez
f87c01fc53 2007-12-20 16:23:56 +00:00
jez
cdac22542e added type() to XPath expressions. I need this to allow XSLT match patterns to be rewritten properly - see http://www.jezuk.co.uk/cgi-bin/view/arabica/log?id=3546 - but it will also be useful for compile time checking (should I get sufficiently keen :) 2007-12-18 23:03:16 +00:00
jez
99a5d5cb85 fixed local-name for namespace nodes 2007-11-10 22:23:36 +00:00
jez
a52aafebd5 In XPath node() matches any node of any type. In an XSLT match pattern, node() matches everything except attributes and the document root node. Tweaked that match pattern grammar to introduce a new token in the AST. 2007-10-26 23:24:58 +00:00
jez
229a859c91 whitespace change 2007-10-25 20:58:27 +00:00
jez
af3ebfde60 s/XPathExpressionPtr/XPathExpression/g 2007-10-25 20:42:00 +00:00
jez
a7d050841d s/XPathExpression/XPathExpression_impl/ 2007-10-23 21:37:24 +00:00
jez
fac7cf88de XPathExpressionPtr no longer derives from boost::shared_ptr, it contains it instead 2007-10-22 20:25:35 +00:00
jez
f6b2ed4966 OK, I think that's it. XPathValue is now your man. Existing code using XPathValuePtr should still work, but new stuff should use XPathValue 2007-10-22 17:42:50 +00:00
jez
6e2f594dc9 more reworking on XPathValuePtr -> XPathValue. XPathValue contains rather than derives from boost::shared_ptr. Added operator== so can still compare to 0 to see if the value is null or not. 2007-10-22 14:10:49 +00:00
jez
9b32ed13e4 Some time ago, it was gently suggested to me that XPathValuePtr and XPathExpressionPtr both exposed an implementation detail, because they derive fromboost::shared_ptr, and provided an interface that was inconsisted with the DOM classes, because you accessed the member functions via -> rather than .
At the time, I was just pleased to have got the XPath stuff done and wasn't really fussed, so I left it.  Since then though, it's niggled and niggled away at the back of my mind and now I've decided to do something about it.

XPathValuePtr will become XPathValue, with the member functions accessed through the . operator.  The XPathValuePtr name and -> member access will be retained for the meantime, so that existing code won't be broken.  XPathExpressionPtr will be similarly changed.

This commit is the first bit of that work, now I've satisfied myself it's going to be pretty easy so long as I pay proper attention.
2007-10-19 21:59:24 +00:00
jez
3f156c9fcf reworked MatchExpr so that it doesn't expose its inner XPathExpression 2007-10-14 20:06:27 +00:00
jez
3d5c7995cb added value_type typedef as per Evan Burkitt's suggestion 2007-10-05 14:56:26 +00:00
jez
c3bffa005a renamed include/Utils to include/Arabica 2007-09-10 17:52:04 +00:00
jez
17248585af more namespace and file moving shenanigans 2007-09-10 17:24:17 +00:00
jez
63ed794d58 finished adding string adaptor param to DOM. everything builds and runs now 2007-09-08 22:31:24 +00:00
jez
7b43037a37 Added string_adaptor parameter to DOM classes. DOM and XPath tests compile and run, but still need to add defaults so more "normal" bits of code will go. 2007-09-07 23:52:30 +00:00
jez
7d46f6f4e2 Moved DOM:: into Arabica::DOM:: 2007-09-05 11:47:13 +00:00
jez
7cf3897061 renamed all .h to .hpp 2007-09-04 22:55:47 +00:00
jez
dc6a3ad454 fixed #includes 2007-08-22 12:22:09 +00:00
jez
645247287d see http://www.jezuk.co.uk/cgi-bin/view/SAX/news?id=3285 2007-08-07 14:43:44 +00:00
jez
b95e3afeb2 merged with mangle-dev branch 2007-07-19 17:01:31 +00:00
jez
543f7357df started moving headers out into an include directory 2006-08-07 21:08:11 +00:00