Commit graph

27 commits

Author SHA1 Message Date
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
2a61c8f9df removed redundant includes 2007-09-11 08:44:00 +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