1 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
3 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
4 to reduce extraneous Matches() trial.
5 * Iterator.cs : Removed unused MergedIterator.
6 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
7 unnecessarily. (Test with NeedAbsoluteMatching).
9 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
11 * Iterator.cs : Added overriden Count properties for some iterators
12 (this fixes the half of #50678).
13 Added ListIterator class (which can reduce GetEnumerator()).
14 In some places we can omit clone for Current property, so added
15 some check logic (It has no effect as yet).
16 * Expression.cs, DefaultContext.cs :
17 use ListIterator instead of EnumeratorIterator.
19 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
21 * DefaultContext.cs, Expression.cs, Iterator.cs :
22 tiny foreach elimination.
24 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
26 * DefaultContext.cs : trivial processing order fix.
28 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
30 * DefaultContext.cs : Avoid exception if possible.
31 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
32 nav was positioned at the first, it incorrectly points itself.
33 Don't add names to name table while it is useless and expensive.
35 2004-01-08 Nick Drochak <ndrochak@ieee.org>
37 * Iterator.cs: Removed unused variable.
39 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
41 * Parser.jay : now it supresses error output from jay.
42 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
43 * Tokenizer.cs : better error message.
44 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
45 (just found MS.NET actually supports it)
47 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
49 * Iterator.cs : On its iteration, moving Current must not affect to
50 MoveNext(). To assure this, Current must be a clone of navigator.
53 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
55 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
56 * Iterator.cs : ParensIterator can inherit from BaseIterator.
57 SlashIterator copy .ctor() always failed to clone. This fixes Count.
59 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
61 * Expression.cs : XPathSorters.Compare() should compare document
62 position. See last sentence of XSLT 1.0 secion 10.
64 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
66 * DefaultContext.cs : Overrode all functions' ToString().
67 XPathFunctions.ToNumber() trims whitespaces at both side.
68 Fixed NullReferenceException in normalize-space().
69 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
70 attribute or namespace node correctly.
71 SlashIterator.Clone() didn't clone "next node iterator" correctly.
72 EnumeratorIterator.ctor() should raise an error (not at Clone())
73 when the target IEnumerator is not ICloneable.
75 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
77 * Expression.cs : namespace axis now traversed in reverse order, so it
79 * Iterator.cs : UnionIterator.Clone() was incomplete.
80 NamespaceItarator() should be reverse order (special handling
81 because of XPathNavigator specification).
83 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
85 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
86 * XPathNavigator.cs : ComparePosition() didn't handle attributes
89 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
91 * Parser.jay, Expression.cs, Iterator.cs :
92 Added ExprParens and ParensIterator classes which is used to handle
93 precedence of parenthesized expressions.
94 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
96 * Expression.cs, Iterator.cs :
97 Added RequireSorting property for each Expr and BaseIterator classes.
98 SlashIterator.MoveNext() now considers correct sorting. But
99 considering performance, it separates two logics, sorted and sortless
100 depending on RequireSorting of left iterator and right expression.
103 SimpleIterator.ctor() should consider when nav is null.
104 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
105 not return any nodes.
106 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
108 AncestorIterator.MoveNext() should skip Root if context node is
110 FollowingIterator.MoveNext() should not handle children of context
112 PrecedingIterator.MoveNext() should skip its ancestors.
113 AxisIterator.ReverseAxis should be dependent on its containing iter.
114 UnionIterator.MoveNext() should consider comparison of nodes in
115 different document. The behavior is implementation dependent.
118 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
120 * Added XPathComparer.cs
121 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
122 iterator correctly, and sort results.
124 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
126 * DefaultContext.cs : Imcomplete fix ;-)
128 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
130 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
131 XPathFunctionId.cs : Exposed Id expression.
132 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
133 will be used to solve evaluation precedence problem).
135 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
137 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
138 inconsistent order, and 2)may return duplicate result nodes.
140 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
142 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
143 it inherit from the base class. This made b[2] evaluated on
144 <a /><b /><c /><a /><b /><c /> return the first b node because
145 in the ChildIterator it was the second node and seemed to satsify
148 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
150 * Iterator.cs : Added bool ReverseAxis property to identify whether
151 the iterator is in reverse order or not. Added ComparablePosition
152 for correct position comparison for PredicateIterator and reverse-
153 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
154 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
155 return their nodes in document order. This fixes bugzilla #39079.
157 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
159 * Iterator.cs : DescendantIterator and FollowingIterator also should
160 not MoveNext() after they reached to the end.
162 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
164 * Iterator.cs : Fixed UnionIterator who ignores document order.
165 Fixed SlashIterator whose MoveNext() should finish at its end.
167 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
169 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
170 use NameTable so we dont call strcmp.
172 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
174 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
176 * Iterator.cs, Expression.cs: All axes are
177 SimpleIterators. SimpleIterators are gaurenteed to give the same
178 XPathNavigator in Current. Make AxisIterator take a
179 SimpleIterator, not any old BaseIterator. Will allow us to make
180 NameTable optimizations and avoid quite a few strcmp's.
182 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
184 * Expression.cs: make // work right, must use another slash itr.
186 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
188 * Expression.cs: cant use $$ before assigned.
190 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
192 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
194 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
196 * Expression.cs: num != double.NaN does not work.
198 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
200 * Expression.cs: in NodeTypeTest dont throw an exception if it is
201 an unknown node type (allows for better Pattern debugging).
203 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
205 * DefaultContext.cs: implement sum () and translate ().
207 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
209 * XPathNavigator.cs: Make methods where you pass in the context,
210 so that we dont have to clone expressions so much.
212 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
214 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
215 system functions are actually expressions. Will allow for some
218 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
220 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
221 improvement in the method (5ms/call -> .7 ms / call) measured by
222 monodoc's rendering of N:System.
223 * Expression.cs: Utility methods to support above.
225 2003-08-13 Piers Haken <piersh@friskit.com>
228 fix MergedIterator.Clone(), now clones other's iterators
229 fix DescendantIterator.Clone(), now copies depth
230 make iterator cloning constructors more type-specific
232 2003-08-01 Piers Haken <piersh@friskit.com>
234 * Expression.cs: added NodeNamespaceTest
235 * XPathNavigator.cs: implement Select* with namespaces
237 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
239 * Iterator.cs: Allow creation of an EnumeratorIterator with an
242 2003-07-31 Piers Haken <piersh@friskit.com>
245 Nested predicates (uses ExprFilter instead)
247 make grammar look more like w3c spec
249 remove ExprStep, ExprPredicates
250 NodeTest is now a NodeSet
253 PredicateIterator now only takes a single predicate expression
256 simplified SelectTest
260 2003-07-30 Duncan Mak <duncan@ximian.com>
266 2003-07-29 Piers Haken <piersh@friskit.com>
268 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
270 2003-07-29 Piers Haken <piersh@friskit.com>
274 add typesafe Evaluate* methods
276 2003-07-29 Piers Haken <piersh@friskit.com>
278 * DefaultContext.cs: fix 'substring-after'
280 2003-07-29 Piers Haken <piersh@friskit.com>
282 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
284 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
286 * Iterator.cs: dont throw exceptions on tostring ()
288 2003-07-28 Piers Haken <piersh@friskit.com>
290 * DefaultContext.cs: better handling of null argument lists
291 * XPathNavigator.cs: implement ComparePosition
293 2003-07-28 Piers Haken <piersh@friskit.com>
295 * Expression.cs: boolean operators: handle comparing .Any better
297 2003-07-28 Piers Haken <piersh@friskit.com>
299 * DefaultContext.cs: count() should return a double
300 * Expression.cs: better support for handling non-double numbers
302 2003-07-28 Piers Haken <piersh@friskit.com>
304 * DefaultContext.cs: better function param matching
306 2003-07-27 Piers Haken <piersh@friskit.com>
310 catch FormatExceptions while parsing numbers
312 2003-07-27 Piers Haken <piersh@friskit.com>
315 fix case sorting order
316 allow EvaluateNumber to take XPathResultType.Any
318 2003-07-27 Piers Haken <piersh@friskit.com>
322 don't pass null to XmlQualifiedName constructor
324 2003-07-27 Piers Haken <piersh@friskit.com>
326 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
328 2003-07-27 Piers Haken <piersh@friskit.com>
330 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
332 2003-07-26 Piers Haken <piersh@friskit.com>
334 * Expression.cs: fix function evaluation with ambigous argument types
335 * XPathNavigator.cs: fix silly null reference bug
337 2003-07-26 Piers Haken <piersh@friskit.com>
341 ArrayListIterator->EnumeratorIterator
342 * Expression.cs: add sorting support
344 2003-07-26 Piers Haken <piersh@friskit.com>
348 move QName parsing into tokenizer
350 fix evaluating XPathResultType.Any
351 fix ExprDiv.ToString()
352 fix NodeTypeTest.ToString() (for namespace axis)
354 2003-07-25 Piers Haken <piersh@friskit.com>
356 * Expression.cs: return clone of $var evaluation
358 2003-07-26 Piers Haken <piersh@friskit.com>
360 * Iterator.cs: add setter for NamespaceManager
361 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
362 * Expression.cs: fix func/var exception strings
364 2003-07-25 Piers Haken <piersh@friskit.com>
366 * Expression.cs: implement ExprFilter.Evaluate
368 2003-07-25 Piers Haken <piersh@friskit.com>
370 * Expression.cs: implement ExprVariable.Evaluate
372 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
374 * DefaultContext.cs: implement lang ()
376 2003-07-24 Piers Haken <piersh@friskit.com>
380 allow ExprUNION to take non-nodeset (eg, $var) arguments
382 2003-07-24 Piers Haken <piersh@friskit.com>
384 * Tokenizer.cs: fix variable references
390 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
392 * XPathDocument.cs : removed Driver class and restored authors' name
393 (though it is completely rewrote).
395 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
397 * XPathDocument.cs : Replaced existing stub class with real
398 XPathDocument implementation.
400 2003-04-28 Piers Haken <piersh@friskit.com>
402 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
404 2003-03-07 Piers Haken <piersh@friskit.com>
406 * Tokenizer.cs: allow '.'s in NCNames
408 2003-03-07 Piers Haken <piersh@friskit.com>
412 fixed function argument resolution
414 2003-02-09 Piers Haken <piersh@friskit.com>
418 * Expression.cs: fix namespace handling
420 2003-01-04 Piers Haken <piersh@friskit.com>
422 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
424 2003-02-02 Piers Haken <piersh@friskit.com>
426 * Parser.jay: add token names
427 * Tokenizer.cs: fix NCName tokenization
429 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
431 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
432 (It should be a temporary fix.)
434 2002-09-22 Nick Drochak <ndrochak@gol.com>
436 * Parser.cs: Remove extraneous "using" that was stopping the build.
438 2002-09-21 Piers Haken <piersh@friskit.com>
440 * XPathException: implementation
445 * XPathNavigator.jay:
448 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
450 * Parser.cs: commented out non-existent namespace (it compiles fine
451 with mcs because of a bug that is already on bugzilla).
453 2002-09-12 Piers Haken <piersh@friskit.com>
455 * Tokenizer.cs: fix parsing numbers that start with '.'
456 * DefaultContext.cs: use MS-compatible formatting of doubles
458 2002-09-12 Piers Haken <piersh@friskit.com>
460 * Iterator.cs: added NullIterator to handle unspecified contexts
461 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
462 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
464 2002-09-12 Piers Haken <piersh@friskit.com>
466 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
467 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
468 * DefaultContext.cs: fix id() return type.
470 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
472 * DefaultContext.cs: fixed bug #28840.
473 * Expression.cs: added FIXME.
475 2002-08-17 Jason Diamond <jason@injektilo.org>
477 * XPathNavigator.cs: Fixed matching on patterns that look like
478 absolute XPath expressions.
480 2002-08-17 Jason Diamond <jason@injektilo.org>
482 * XPathNavigator.cs: Added naive (but working) implementation of
485 2002-07-31 Piers Haken <piersh@friskit.com>
487 * XPathDocument.cs: simple, XmlDocument-based implementation
489 2002-07-25 Piers Haken <piersh@friskit.com>
491 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
493 2002-07-17 Piers Haken <piersh@friskit.com>
495 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
496 * Parser.jay: remove redundant production
497 * Expression.cs: add switches for debugging under VS.NET
499 2002-07-17 Piers Haken <piersh@friskit.com>
501 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
503 2002-07-15 Piers Haken <piersh@friskit.com>
506 - rename UnionIterator to MergedIterator,
507 - create new UnionIterator to implment uniqueness for '|' operator
508 - fix position bug in ArrayListIterator.Clone()
509 * Expression.cs: use new UnionIterator constructor syntax
511 2002-07-12 Piers Haken <piersh@friskit.com>
513 * Iterator.cs: PredicateIterator: handle numeric predicates
514 * Parser.jay: add some debugging support: yyparseDebug
515 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
517 2002-06-29 Piers Haken <piersh@friskit.com>
521 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
522 - remove NodeTestTypes enum
523 - remove NodeTestTypeAny (functionality provided by base now)
524 - fix ExprStep to handle wildcard QNames
526 - moved to Mono.Xml.XPath namespace
527 - use XPathResultType
528 - handle wildcard QNames
530 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
532 * XPathNavigator.cs: implement
538 * XPathResultType.cs: fix enum values
540 2002-06-24 Jason Diamond <jason@injektilo.org>
542 * XPathScanner.cs: Removed.
544 2002-06-24 Dick Porter <dick@ximian.com>
546 * XmlCaseOrder.cs: Fix namespace
548 2002-06-23 Piers Haken <piersh@friskit.com>
550 * DefaultContext.cs: implemented XPathFUnctionId
551 * Iterator.cs: new ArrayListIterator for id() support
553 2002-06-23 Piers Haken <piersh@friskit.com>
555 * XPathNavigator.cs: implement:
561 - some forwarding methods
563 * XPathNodeIterator: implement caching Count
565 * Tokenizer.cs: new XPath tokenizer
566 * Parser.jay: new XPath grammar
567 * Parser.cs: new precompiled XPath grammar
568 * Expression.cs: new XPath expression objects
569 * Iterator.cs: new XPath result/context objects
570 * DefaultContext.cs: new XPath function binding context
572 2002-05-08 Tim Coleman <tim@timcoleman.com>
574 * XPathException.cs: New stub files added.
576 2002-04-12 Duncan Mak <duncan@ximian.com>
578 * XmlCaseOrder.cs: Moved to here from System.Xml.
580 2002-03-26 Jason Diamond <jason@injektilo.org>
582 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
583 steps. Both absolution and relative abbreviated location paths.
585 2002-03-25 Jason Diamond <jason@injektilo.org>
587 * XPathScanner.cs: Added new file. This class is supposed to be internal
588 but that would make it impossible to test.
590 2002-03-08 Duncan Mak <duncan@ximian.com>
592 * XPathNamespaceScope.cs:
594 * XPathResultType.cs:
596 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
597 implementation. XPathResultType is interesting as EnumCheck does
598 not show the Navigator element, but shows the String element twice.
600 2002-03-08 Jason Diamond <jason@injektilo.org>
602 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
604 2002-03-06 Jason Diamond <jason@injektilo.org>
606 * ChangeLog: Added to this directory.
608 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
609 XPathResultType.cs: New files.
611 * XPathNavigator.cs: Stubbed out all properties and methods.