1 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
3 * DefaultContext.cs : Removed MonoTODO. done.
4 * Expression.cs : handle XPathResultType.Navigator in some places and
5 removed MonoTODO. Mark MonoTODO with explicit comments (though they
6 are mostly pointing out possibilities of optimization).
7 Removed extra check that depended on the old bugs.
8 * XPathResultType.cs : Fixed .Navigator that had the same value as
11 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
13 * Parser.jay : made class internal.
15 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
17 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
18 result of MoveToParent() should be checked.
20 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
22 * XPathNavigator.cs : Only child and attribute axes are allowed for
24 * Expression.cs : Added IsPositional property.
25 * DefaultContext.cs : Added some overrides.
27 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
29 * XPathNavigator.cs : no, its still not ok. comment out now.
31 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
33 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
34 to reduce extraneous Matches() trial.
35 * Iterator.cs : Removed unused MergedIterator.
36 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
37 unnecessarily. (Test with NeedAbsoluteMatching).
39 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
41 * Iterator.cs : Added overriden Count properties for some iterators
42 (this fixes the half of #50678).
43 Added ListIterator class (which can reduce GetEnumerator()).
44 In some places we can omit clone for Current property, so added
45 some check logic (It has no effect as yet).
46 * Expression.cs, DefaultContext.cs :
47 use ListIterator instead of EnumeratorIterator.
49 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
51 * DefaultContext.cs, Expression.cs, Iterator.cs :
52 tiny foreach elimination.
54 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
56 * DefaultContext.cs : trivial processing order fix.
58 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
60 * DefaultContext.cs : Avoid exception if possible.
61 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
62 nav was positioned at the first, it incorrectly points itself.
63 Don't add names to name table while it is useless and expensive.
65 2004-01-08 Nick Drochak <ndrochak@ieee.org>
67 * Iterator.cs: Removed unused variable.
69 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
71 * Parser.jay : now it supresses error output from jay.
72 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
73 * Tokenizer.cs : better error message.
74 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
75 (just found MS.NET actually supports it)
77 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
79 * Iterator.cs : On its iteration, moving Current must not affect to
80 MoveNext(). To assure this, Current must be a clone of navigator.
83 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
85 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
86 * Iterator.cs : ParensIterator can inherit from BaseIterator.
87 SlashIterator copy .ctor() always failed to clone. This fixes Count.
89 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
91 * Expression.cs : XPathSorters.Compare() should compare document
92 position. See last sentence of XSLT 1.0 secion 10.
94 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
96 * DefaultContext.cs : Overrode all functions' ToString().
97 XPathFunctions.ToNumber() trims whitespaces at both side.
98 Fixed NullReferenceException in normalize-space().
99 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
100 attribute or namespace node correctly.
101 SlashIterator.Clone() didn't clone "next node iterator" correctly.
102 EnumeratorIterator.ctor() should raise an error (not at Clone())
103 when the target IEnumerator is not ICloneable.
105 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
107 * Expression.cs : namespace axis now traversed in reverse order, so it
109 * Iterator.cs : UnionIterator.Clone() was incomplete.
110 NamespaceItarator() should be reverse order (special handling
111 because of XPathNavigator specification).
113 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
115 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
116 * XPathNavigator.cs : ComparePosition() didn't handle attributes
119 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
121 * Parser.jay, Expression.cs, Iterator.cs :
122 Added ExprParens and ParensIterator classes which is used to handle
123 precedence of parenthesized expressions.
124 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
126 * Expression.cs, Iterator.cs :
127 Added RequireSorting property for each Expr and BaseIterator classes.
128 SlashIterator.MoveNext() now considers correct sorting. But
129 considering performance, it separates two logics, sorted and sortless
130 depending on RequireSorting of left iterator and right expression.
133 SimpleIterator.ctor() should consider when nav is null.
134 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
135 not return any nodes.
136 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
138 AncestorIterator.MoveNext() should skip Root if context node is
140 FollowingIterator.MoveNext() should not handle children of context
142 PrecedingIterator.MoveNext() should skip its ancestors.
143 AxisIterator.ReverseAxis should be dependent on its containing iter.
144 UnionIterator.MoveNext() should consider comparison of nodes in
145 different document. The behavior is implementation dependent.
148 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
150 * Added XPathComparer.cs
151 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
152 iterator correctly, and sort results.
154 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
156 * DefaultContext.cs : Imcomplete fix ;-)
158 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
160 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
161 XPathFunctionId.cs : Exposed Id expression.
162 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
163 will be used to solve evaluation precedence problem).
165 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
167 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
168 inconsistent order, and 2)may return duplicate result nodes.
170 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
172 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
173 it inherit from the base class. This made b[2] evaluated on
174 <a /><b /><c /><a /><b /><c /> return the first b node because
175 in the ChildIterator it was the second node and seemed to satsify
178 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
180 * Iterator.cs : Added bool ReverseAxis property to identify whether
181 the iterator is in reverse order or not. Added ComparablePosition
182 for correct position comparison for PredicateIterator and reverse-
183 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
184 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
185 return their nodes in document order. This fixes bugzilla #39079.
187 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
189 * Iterator.cs : DescendantIterator and FollowingIterator also should
190 not MoveNext() after they reached to the end.
192 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
194 * Iterator.cs : Fixed UnionIterator who ignores document order.
195 Fixed SlashIterator whose MoveNext() should finish at its end.
197 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
199 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
200 use NameTable so we dont call strcmp.
202 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
204 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
206 * Iterator.cs, Expression.cs: All axes are
207 SimpleIterators. SimpleIterators are gaurenteed to give the same
208 XPathNavigator in Current. Make AxisIterator take a
209 SimpleIterator, not any old BaseIterator. Will allow us to make
210 NameTable optimizations and avoid quite a few strcmp's.
212 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
214 * Expression.cs: make // work right, must use another slash itr.
216 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
218 * Expression.cs: cant use $$ before assigned.
220 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
222 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
224 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
226 * Expression.cs: num != double.NaN does not work.
228 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
230 * Expression.cs: in NodeTypeTest dont throw an exception if it is
231 an unknown node type (allows for better Pattern debugging).
233 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
235 * DefaultContext.cs: implement sum () and translate ().
237 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
239 * XPathNavigator.cs: Make methods where you pass in the context,
240 so that we dont have to clone expressions so much.
242 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
244 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
245 system functions are actually expressions. Will allow for some
248 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
250 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
251 improvement in the method (5ms/call -> .7 ms / call) measured by
252 monodoc's rendering of N:System.
253 * Expression.cs: Utility methods to support above.
255 2003-08-13 Piers Haken <piersh@friskit.com>
258 fix MergedIterator.Clone(), now clones other's iterators
259 fix DescendantIterator.Clone(), now copies depth
260 make iterator cloning constructors more type-specific
262 2003-08-01 Piers Haken <piersh@friskit.com>
264 * Expression.cs: added NodeNamespaceTest
265 * XPathNavigator.cs: implement Select* with namespaces
267 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
269 * Iterator.cs: Allow creation of an EnumeratorIterator with an
272 2003-07-31 Piers Haken <piersh@friskit.com>
275 Nested predicates (uses ExprFilter instead)
277 make grammar look more like w3c spec
279 remove ExprStep, ExprPredicates
280 NodeTest is now a NodeSet
283 PredicateIterator now only takes a single predicate expression
286 simplified SelectTest
290 2003-07-30 Duncan Mak <duncan@ximian.com>
296 2003-07-29 Piers Haken <piersh@friskit.com>
298 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
300 2003-07-29 Piers Haken <piersh@friskit.com>
304 add typesafe Evaluate* methods
306 2003-07-29 Piers Haken <piersh@friskit.com>
308 * DefaultContext.cs: fix 'substring-after'
310 2003-07-29 Piers Haken <piersh@friskit.com>
312 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
314 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
316 * Iterator.cs: dont throw exceptions on tostring ()
318 2003-07-28 Piers Haken <piersh@friskit.com>
320 * DefaultContext.cs: better handling of null argument lists
321 * XPathNavigator.cs: implement ComparePosition
323 2003-07-28 Piers Haken <piersh@friskit.com>
325 * Expression.cs: boolean operators: handle comparing .Any better
327 2003-07-28 Piers Haken <piersh@friskit.com>
329 * DefaultContext.cs: count() should return a double
330 * Expression.cs: better support for handling non-double numbers
332 2003-07-28 Piers Haken <piersh@friskit.com>
334 * DefaultContext.cs: better function param matching
336 2003-07-27 Piers Haken <piersh@friskit.com>
340 catch FormatExceptions while parsing numbers
342 2003-07-27 Piers Haken <piersh@friskit.com>
345 fix case sorting order
346 allow EvaluateNumber to take XPathResultType.Any
348 2003-07-27 Piers Haken <piersh@friskit.com>
352 don't pass null to XmlQualifiedName constructor
354 2003-07-27 Piers Haken <piersh@friskit.com>
356 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
358 2003-07-27 Piers Haken <piersh@friskit.com>
360 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
362 2003-07-26 Piers Haken <piersh@friskit.com>
364 * Expression.cs: fix function evaluation with ambigous argument types
365 * XPathNavigator.cs: fix silly null reference bug
367 2003-07-26 Piers Haken <piersh@friskit.com>
371 ArrayListIterator->EnumeratorIterator
372 * Expression.cs: add sorting support
374 2003-07-26 Piers Haken <piersh@friskit.com>
378 move QName parsing into tokenizer
380 fix evaluating XPathResultType.Any
381 fix ExprDiv.ToString()
382 fix NodeTypeTest.ToString() (for namespace axis)
384 2003-07-25 Piers Haken <piersh@friskit.com>
386 * Expression.cs: return clone of $var evaluation
388 2003-07-26 Piers Haken <piersh@friskit.com>
390 * Iterator.cs: add setter for NamespaceManager
391 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
392 * Expression.cs: fix func/var exception strings
394 2003-07-25 Piers Haken <piersh@friskit.com>
396 * Expression.cs: implement ExprFilter.Evaluate
398 2003-07-25 Piers Haken <piersh@friskit.com>
400 * Expression.cs: implement ExprVariable.Evaluate
402 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
404 * DefaultContext.cs: implement lang ()
406 2003-07-24 Piers Haken <piersh@friskit.com>
410 allow ExprUNION to take non-nodeset (eg, $var) arguments
412 2003-07-24 Piers Haken <piersh@friskit.com>
414 * Tokenizer.cs: fix variable references
420 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
422 * XPathDocument.cs : removed Driver class and restored authors' name
423 (though it is completely rewrote).
425 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
427 * XPathDocument.cs : Replaced existing stub class with real
428 XPathDocument implementation.
430 2003-04-28 Piers Haken <piersh@friskit.com>
432 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
434 2003-03-07 Piers Haken <piersh@friskit.com>
436 * Tokenizer.cs: allow '.'s in NCNames
438 2003-03-07 Piers Haken <piersh@friskit.com>
442 fixed function argument resolution
444 2003-02-09 Piers Haken <piersh@friskit.com>
448 * Expression.cs: fix namespace handling
450 2003-01-04 Piers Haken <piersh@friskit.com>
452 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
454 2003-02-02 Piers Haken <piersh@friskit.com>
456 * Parser.jay: add token names
457 * Tokenizer.cs: fix NCName tokenization
459 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
461 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
462 (It should be a temporary fix.)
464 2002-09-22 Nick Drochak <ndrochak@gol.com>
466 * Parser.cs: Remove extraneous "using" that was stopping the build.
468 2002-09-21 Piers Haken <piersh@friskit.com>
470 * XPathException: implementation
475 * XPathNavigator.jay:
478 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
480 * Parser.cs: commented out non-existent namespace (it compiles fine
481 with mcs because of a bug that is already on bugzilla).
483 2002-09-12 Piers Haken <piersh@friskit.com>
485 * Tokenizer.cs: fix parsing numbers that start with '.'
486 * DefaultContext.cs: use MS-compatible formatting of doubles
488 2002-09-12 Piers Haken <piersh@friskit.com>
490 * Iterator.cs: added NullIterator to handle unspecified contexts
491 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
492 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
494 2002-09-12 Piers Haken <piersh@friskit.com>
496 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
497 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
498 * DefaultContext.cs: fix id() return type.
500 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
502 * DefaultContext.cs: fixed bug #28840.
503 * Expression.cs: added FIXME.
505 2002-08-17 Jason Diamond <jason@injektilo.org>
507 * XPathNavigator.cs: Fixed matching on patterns that look like
508 absolute XPath expressions.
510 2002-08-17 Jason Diamond <jason@injektilo.org>
512 * XPathNavigator.cs: Added naive (but working) implementation of
515 2002-07-31 Piers Haken <piersh@friskit.com>
517 * XPathDocument.cs: simple, XmlDocument-based implementation
519 2002-07-25 Piers Haken <piersh@friskit.com>
521 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
523 2002-07-17 Piers Haken <piersh@friskit.com>
525 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
526 * Parser.jay: remove redundant production
527 * Expression.cs: add switches for debugging under VS.NET
529 2002-07-17 Piers Haken <piersh@friskit.com>
531 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
533 2002-07-15 Piers Haken <piersh@friskit.com>
536 - rename UnionIterator to MergedIterator,
537 - create new UnionIterator to implment uniqueness for '|' operator
538 - fix position bug in ArrayListIterator.Clone()
539 * Expression.cs: use new UnionIterator constructor syntax
541 2002-07-12 Piers Haken <piersh@friskit.com>
543 * Iterator.cs: PredicateIterator: handle numeric predicates
544 * Parser.jay: add some debugging support: yyparseDebug
545 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
547 2002-06-29 Piers Haken <piersh@friskit.com>
551 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
552 - remove NodeTestTypes enum
553 - remove NodeTestTypeAny (functionality provided by base now)
554 - fix ExprStep to handle wildcard QNames
556 - moved to Mono.Xml.XPath namespace
557 - use XPathResultType
558 - handle wildcard QNames
560 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
562 * XPathNavigator.cs: implement
568 * XPathResultType.cs: fix enum values
570 2002-06-24 Jason Diamond <jason@injektilo.org>
572 * XPathScanner.cs: Removed.
574 2002-06-24 Dick Porter <dick@ximian.com>
576 * XmlCaseOrder.cs: Fix namespace
578 2002-06-23 Piers Haken <piersh@friskit.com>
580 * DefaultContext.cs: implemented XPathFUnctionId
581 * Iterator.cs: new ArrayListIterator for id() support
583 2002-06-23 Piers Haken <piersh@friskit.com>
585 * XPathNavigator.cs: implement:
591 - some forwarding methods
593 * XPathNodeIterator: implement caching Count
595 * Tokenizer.cs: new XPath tokenizer
596 * Parser.jay: new XPath grammar
597 * Parser.cs: new precompiled XPath grammar
598 * Expression.cs: new XPath expression objects
599 * Iterator.cs: new XPath result/context objects
600 * DefaultContext.cs: new XPath function binding context
602 2002-05-08 Tim Coleman <tim@timcoleman.com>
604 * XPathException.cs: New stub files added.
606 2002-04-12 Duncan Mak <duncan@ximian.com>
608 * XmlCaseOrder.cs: Moved to here from System.Xml.
610 2002-03-26 Jason Diamond <jason@injektilo.org>
612 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
613 steps. Both absolution and relative abbreviated location paths.
615 2002-03-25 Jason Diamond <jason@injektilo.org>
617 * XPathScanner.cs: Added new file. This class is supposed to be internal
618 but that would make it impossible to test.
620 2002-03-08 Duncan Mak <duncan@ximian.com>
622 * XPathNamespaceScope.cs:
624 * XPathResultType.cs:
626 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
627 implementation. XPathResultType is interesting as EnumCheck does
628 not show the Navigator element, but shows the String element twice.
630 2002-03-08 Jason Diamond <jason@injektilo.org>
632 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
634 2002-03-06 Jason Diamond <jason@injektilo.org>
636 * ChangeLog: Added to this directory.
638 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
639 XPathResultType.cs: New files.
641 * XPathNavigator.cs: Stubbed out all properties and methods.