Commit graph

66 commits

Author SHA1 Message Date
jez
41b0da452f added StringFunction base class 2009-07-13 08:47:46 +01:00
jez
c65cb5c8aa added NumericExpression and NumericFunction base classes 2009-07-13 08:24:52 +01:00
jez
7e3caeb2d0 converted AxisEnumerator to uses Node_impl* internally 2009-05-19 09:24:19 +01:00
jez
4611919eff whitespace changes 2009-05-18 19:33:04 +01:00
jez
a46276eb57 Reworked to reduce number of temporary objects created 2009-05-12 09:18:56 +01:00
jez
9167533dc8 compiled recent changes with GCC so made the necessary standard compliance fixes :) 2009-05-11 19:33:48 +01:00
jez
50e46f3bcc refactored to eliminate temporary object creation 2009-05-11 10:24:51 +01:00
jez
50fbb691cd efactgoring to avoid creating so many temporary objects when evaluation expressions and values 2009-05-11 08:55:52 +01:00
jez
4f28c8ae71 key as match pattern now runs - woo 2009-03-23 19:38:59 +00:00
jez
0a6f2071eb Id and Key match patterns now compile 2009-03-23 19:08:04 +00:00
jez
83cd0cd15b working on the IdKey match pattern - currently crashes 2009-03-17 21:08:26 +00:00
jez
8cb5109ac1 keys now look something up. yay! 2009-02-26 10:16:49 +00:00
jez
b494ffe317 added push_back(NodeSet) 2009-02-26 09:32:02 +00:00
jez
b74514bc58 Shuffled around the Stylesheet class. Stylesheet is now the public face, while CompiledStylesheet is what gets chucked around internally. 2008-11-05 01:33:28 +00:00
jez
db54b7c7bc In XPath numbers do not have leading +, so, while '-1.5' converts to -1.5, '+1.5' converts to NaN. Weird and counter-intuitive, but in the spec. 2008-11-03 18:29:10 +00:00
jez
2f4848bedc Fixed element value when has consecutive text node descendants 2008-09-19 09:03:19 +01:00
jez
93549c451d improved preceding and preceding-sibling in the face of consecutive text nodes 2008-09-18 22:43:56 +01:00
jez
2cf6d009bf added some more following, following-sibling, and child axis tests in the presence of text nodes 2008-09-17 22:58:36 +01:00
jez
49fa53e9b0 Updated child and descendant axis to skip over adjacent text nodes 2008-09-16 08:58:18 +01:00
jez
57e8e9248e Reworked node value to combine consecutive text nodes together into a single value 2008-09-13 18:36:46 +01:00
jez
bc233d68ca Updated NodeTest to match CDATA sections as well as text nodes. 2008-08-26 11:53:14 +01:00
jez
07ef52f308 Added -table option to test executables. It outputs the results as a tab
seperated table, which can be pasted into spreadsheet/google docs/etc.
2008-08-09 23:19:21 +01:00
jez
cd3577292d Ensure an unbound namespace prefix throws an exception 2008-08-09 18:24:34 +01:00
jez
b668bdc3b2 removed TODO comment, because I actually did it sometime ago 2008-08-09 18:24:11 +01:00
jez
a1890d2a31 amazingly, the XPath prefix:* didn't compile. I had no test for it, and had overlooked it. fixed 2008-08-09 17:32:28 +01:00
jez
04af379b54 ensure @xmlns|@xsmlns:* selects no nodes 2008-08-09 17:03:44 +01:00
jez
73d0cdaef9 fixed for other than std::strings 2008-05-30 21:45:27 +00:00
jez
3874438091 Include default namespace when constructing namespace nodes 2008-05-28 16:37:15 +00:00
jez
9ba32a5160 corrected compareNodes for the case where the two nodes are from different documents 2008-05-28 15:08:58 +00:00
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