jez
9d72ecf556
More work on optimising expression evaluation.
2009-07-31 17:44:54 +01:00
jez
b56f09d2d9
added NodeSetXPathFunction base class
2009-07-13 09:24:03 +01:00
jez
bbcae98bec
renamed XPath function base classes, moved out of impl namespace
2009-07-13 09:13:11 +01:00
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