Commit graph

365 commits

Author SHA1 Message Date
Jez Higgins
181d5eab5c normalize whitespace when extracting CDATA element names 2010-01-02 22:21:38 +00:00
Jez Higgins
29d425528d popped quotes around the wrong thing 2010-01-02 22:20:13 +00:00
Jez Higgins
9d25d0bed0 updated copyright dates 2010-01-01 23:03:33 +00:00
Jez Higgins
7e62969c6c Fixed double delete problem when removing and readding an attribute 2010-01-01 23:03:01 +00:00
Jez Higgins
d7c3b7c260 reverted work on variables - will come back to it another time 2009-12-14 23:55:56 +00:00
Jez Higgins
5fa42997f4 make each variable its own little stack frame. i am, howver, going to back all this stuff out because I'm getting it wrong in some subtle but segfaulty way 2009-12-14 22:40:05 +00:00
Jez Higgins
9eeb67aa3e convert node type from enum to int to silence gcc warning about exceeding the maximum value of the enum 2009-12-14 22:39:15 +00:00
jez
17e93705ae redirect to DOMSink when evaluating variables. This wasn't being done for ResolvedVariables and so everything was exploding. 2009-12-14 14:20:12 +00:00
jez
80da48a661 Ash Berlin's patch for Element.setAttributeNodeNS 2009-12-06 21:39:46 +00:00
jez
719829f10a Ash Berlin's patch to get Text.splitText working properly 2009-12-06 21:34:46 +00:00
jez
57a1f36532 Applied patch from Ash Berlin which silences a pile of compiler warnings about unused parameters. 2009-12-06 20:48:35 +00:00
Ash Berlin
31c13685d1 Remove warnings:
* Unused variable
  * Unsigned value always >= 0
  * Parameter initialization order
  * Virtual destructors for virtual classes
2009-11-28 01:12:28 +00:00
jez
283c48de75 fix to bug identified by Ash Berlin in set/get/removeNamedItemNS 2009-11-25 10:23:27 +00:00
jez
2cb2cc8bbe NamedNodeMap tests and bugfix 2009-11-23 22:36:15 +00:00
jez
3991f80eb2 increment changes with the aim of improviing performance of variables 2009-11-23 21:00:23 +00:00
Alex Ott
2eba62942a add virtual destructors for classes, to avoid warnings when inheriting from these classes 2009-10-06 15:13:17 +02:00
Alex Ott
42f85936fa explicit casting, to avoid warnings 2009-10-06 15:12:43 +02:00
Alex Ott
975cca8c20 Use proper boost includes for different boost versions
starting from boost 1.38, there is boost.spirit v2 in the repository, older version
could be used as 'classic'
2009-10-06 12:38:30 +02:00
jez
6785fd8944 litte bit more work on variable resolution, but train in v wobbly and it giving me a headache 2009-10-05 19:27:24 +01:00
jez
29f73f285b When declaring a parameter, only create a new variable closure if a parameter
hasn't been passed.
2009-08-18 21:16:12 +01:00
jez
db940c9b78 Pass select by const ref not by value 2009-08-18 20:42:37 +01:00
U-isla\jez
2adf2618ed Pulled static const int definitions out into cpp file 2009-08-01 08:48:41 +01:00
jez
9d72ecf556 More work on optimising expression evaluation. 2009-07-31 17:44:54 +01:00
jez
1f12f0a2f0 nodeset functions now use NodeSetXPathFunction base class 2009-07-13 09:24:26 +01:00
jez
b56f09d2d9 added NodeSetXPathFunction base class 2009-07-13 09:24:03 +01:00
jez
428121bab4 moved string functions to use StringXPathFunction base class 2009-07-13 09:13:50 +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
014ea05879 updated TO-DO to include various performance improvement ideas 2009-05-05 19:30:47 +01:00
jez
d681db69b2 Literal result element as stylesheet - done 2009-04-28 20:59:52 +01:00
jez
9f6fbba927 removed left over stuff for foreign element handling 2009-04-28 09:00:05 +01:00
jez
7b1c5c9541 started on literal result elements as stylesheet 2009-04-28 08:57:14 +01:00
jez
bf5799eefd pulled foreign element handling - fixed parameter order inconsistency 2009-04-24 19:02:14 +01:00
jez
6081659b71 neatening 2009-04-24 15:54:13 +01:00
jez
62b24c144d Resolved cdata-section-element names so that unprefixed names are in the default namespace. Merge multiple xsl:output/@cdata-section-elements 2009-04-07 13:39:31 +01:00
jez
b70e521d79 hooked up cdata-section-elements to the output 2009-04-07 10:29:56 +01:00
jez
f6dfa127a1 OK, forget what I said about state machines, let just hack in some flags.
Initial work on CDATA section output.  If I manually populate the set of 
cdata section elements, everything looks great, so I just need to hook that up.
Added operator< to QName so I pop it in a std::set.
2009-04-03 19:01:26 +01:00
jez
89f6585d65 pulled output into its own file 2009-03-31 20:06:06 +01:00
jez
f373a1d01b some work on implementing cdata section output, then realised it would probably be easier if I dropped a state machine in there 2009-03-31 20:00:26 +01:00
jez
7dd3cb4ab4 blow up if we see an extension prefix declaration 2009-03-31 09:15:32 +01:00
jez
94d5a26c6c skip test for two arg version of document() - not yet implemented 2009-03-27 08:30:28 +00: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
9f4c8d213a xsl:stylesheet can have an id attribute 2009-03-17 19:07:00 +00:00
jez
67e8a31360 allow whitespace within xsl:output 2009-03-17 09:07:22 +00:00
jez
334317f422 filename case fixes 2009-03-12 20:00:35 +00:00
jez
8cadf886d0 Got Taggle test passing.
Rework Taggle's internal Element class to use a reference counting scheme, 
so it's passed around by reference, rather than y value (and hence having lots of copying).  I think the ref-counting is correct, but I haven't checked it yet.
2009-03-12 09:49:45 +00:00
jez
55e7094204 whitespace changes 2009-03-09 22:52:34 +00:00
jez
8f97c52f8a added copy constructor to KeyFunction::UriMapper - some compilers want to copy, while the cooler ones can optimise that copy away :) 2009-03-04 20:34:30 +00:00
jez
b01c03f591 exclude attributes in the XSL namespace from literal elements 2009-03-03 18:15:34 +00:00
jez
b6c83a0028 corrected key population when use is a union 2009-03-03 08:12:26 +00:00
jez
9ddbb95491 implemented nodeset version of key() 2009-03-03 07:58:29 +00:00
jez
88150c062e use NodeSet.to_document_order instead of sort 2009-03-03 07:58:14 +00:00
jez
d7602d5a7d Windows compatibility fix - it defines min as a macro, so use bracket function call to defeat it 2009-02-26 14:38:23 +00:00
jez
e33535905a propagating qualified name changes 2009-02-26 14:04:41 +00:00
jez
4af8e6472e keys stored on a per-document basis, as per the end of rec 12.2 2009-02-26 10:30:16 +00:00
jez
8cb5109ac1 keys now look something up. yay! 2009-02-26 10:16:49 +00:00
jez
ff835d03c0 Pass inscope namespaces to key functions so it can resolve key names at runtime
key() now works (bar nodeset argument)
just need to do the key lookup
2009-02-26 09:32:55 +00:00
jez
b494ffe317 added push_back(NodeSet) 2009-02-26 09:32:02 +00:00
jez
9b70ca5187 rather large commit, propagating the QualifiedName changes through the NamespaceSupport and Tracker, simplifying item names in XSLT and so on. 2009-02-24 12:21:35 +00:00
jez
c0659319c4 switch NamespaceSupport over to use QualifiedName 2009-02-23 22:02:17 +00:00
jez
4030057c74 propogating recent edits through 2009-02-23 19:43:20 +00:00
jez
a958b03544 parameterised XML string tests on string_adaptor
hooked into qname parsing
2009-02-23 19:23:12 +00:00
jez
412a7f2204 initial version of parseQName 2009-02-23 09:14:35 +00:00
jez
31b8d99a83 parameterised QualifiedName 2009-02-23 08:38:50 +00:00
jez
32bc0e6597 decided to go with prefixes after all 2009-02-23 07:57:24 +00:00
jez
46d51800aa Fix to uri parsing so that something like
http://www.google.com
finishes up with www.google.com as the host, and not the path.
Yay.
2009-02-20 23:00:01 +00:00
jez
2fd1f52ace starting xsl:key/key()
started qnmae refactoring
2009-02-18 22:48:35 +00:00
jez
297345f3c3 started filling out xsl:key and keys. need to do a bit of refactoring around QNames now, to make everything a little easier 2009-02-18 09:36:41 +00:00
jez
b22708f126 s/XPathValuePtr/XPathValue/ 2009-02-18 08:37:16 +00:00
jez
0b2bb658b9 Skinned up skeleton implementation of key() function. Doesn't do anything yet though :) 2009-02-18 08:37:00 +00:00
jez
4d9c2a485a started work on xsl:key/key() 2009-02-16 22:10:00 +00:00
jez
c7a3f9be3f improved validation on template priority value 2009-01-03 21:41:26 +00:00
jez
2877e7e9b7 escape tab, CR, & LF in attribute values 2009-01-02 23:08:22 +00:00
jez
e944732d82 detects loops in imports as well as includes 2008-12-29 22:29:27 +00:00
jez
8c65657d84 added currentBase - handy for debugging 2008-12-29 22:29:04 +00:00
jez
73a90f502d catch include loops 2008-12-29 21:14:44 +00:00
jez
ab4f951840 fixed top level variable precedence 2008-12-02 11:26:58 +00:00
jez
0a2220dbb0 added operator<< back in for debugging 2008-12-02 11:26:28 +00:00
jez
cd97e2aa58 Correct top level variable declarations 2008-11-25 12:49:25 +00:00
jez
38d2783be3 Finally! Determining import precedence for templates is properly correct. 2008-11-25 12:27:33 +00:00
jez
fe40d482f5 Aha! The push/pop precedence thing is, of course, wrongly wrong. Need to assign the new precedence at the point we encounter the xsl:import, then set that precedence as current when we actually load it. I'll sort that out next time, because it's bedtime for programmers now. 2008-11-24 23:11:22 +00:00
jez
538a8969ad seed the Precedence next generation differently, so can pop as well as just push precedence stack as we unwind imports 2008-11-24 22:26:58 +00:00
jez
6f39b28daa Reworked current_generation stuff to use the templates' Precedence instead of a plain old int 2008-11-24 22:05:16 +00:00
jez
f610d739fe More work on rejigging precedence.
Templates are now constructed with their precedence.
Variables are too, with a tweak to allow for the immediate evaluation of non-topl-level params and vars.
The execution context now no longer needs to track variable precedence, which is good because it will be getting it wrong anyway.
Corresponding simplifications follow to compliation context.
2008-11-19 17:26:07 +00:00
jez
8d0ce36da3 Rework variable handling to use the Precedence class. Currently it has the same (incorrect) behaviour as before, but it's all part of moving to towards (what I hope will be) proper import precedence handling. 2008-11-05 22:55:53 +00:00
jez
e8c0aaa416 Started work on refactoring precedence handling. Need to try and preserver the tree shape it forms, rather than a simple case of monotonically increasing precen
I mean decreasing precedence.
2008-11-05 02:57:18 +00:00
jez
2b2c09b1f3 Took out unparsed-entity-uri(). Not having it is better than have a neutered version. 2008-11-05 02:55:44 +00:00
jez
6c8a3e8404 hmm, I'll be needing this to make the previous checkin actually work 2008-11-05 02:54:49 +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
f74170e268 In XPath numbers do not have leading +, so, while '-1.5' converts to -1.5,
'+1.5' converts to NaN.  Weird and counter-intuitive perhaps, but it's there
in the spec.

Sort now sets context node appropriately, so current() works in sorting 
expressions.
2008-11-03 22:19:59 +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