1 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
4 * Iterator.cs : ParensIterator can inherit from BaseIterator.
5 SlashIterator copy .ctor() always failed to clone. This fixes Count.
7 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
9 * Expression.cs : XPathSorters.Compare() should compare document
10 position. See last sentence of XSLT 1.0 secion 10.
12 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
14 * DefaultContext.cs : Overrode all functions' ToString().
15 XPathFunctions.ToNumber() trims whitespaces at both side.
16 Fixed NullReferenceException in normalize-space().
17 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
18 attribute or namespace node correctly.
19 SlashIterator.Clone() didn't clone "next node iterator" correctly.
20 EnumeratorIterator.ctor() should raise an error (not at Clone())
21 when the target IEnumerator is not ICloneable.
23 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
25 * Expression.cs : namespace axis now traversed in reverse order, so it
27 * Iterator.cs : UnionIterator.Clone() was incomplete.
28 NamespaceItarator() should be reverse order (special handling
29 because of XPathNavigator specification).
31 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
33 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
34 * XPathNavigator.cs : ComparePosition() didn't handle attributes
37 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
39 * Parser.jay, Expression.cs, Iterator.cs :
40 Added ExprParens and ParensIterator classes which is used to handle
41 precedence of parenthesized expressions.
42 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
44 * Expression.cs, Iterator.cs :
45 Added RequireSorting property for each Expr and BaseIterator classes.
46 SlashIterator.MoveNext() now considers correct sorting. But
47 considering performance, it separates two logics, sorted and sortless
48 depending on RequireSorting of left iterator and right expression.
51 SimpleIterator.ctor() should consider when nav is null.
52 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
54 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
56 AncestorIterator.MoveNext() should skip Root if context node is
58 FollowingIterator.MoveNext() should not handle children of context
60 PrecedingIterator.MoveNext() should skip its ancestors.
61 AxisIterator.ReverseAxis should be dependent on its containing iter.
62 UnionIterator.MoveNext() should consider comparison of nodes in
63 different document. The behavior is implementation dependent.
66 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
68 * Added XPathComparer.cs
69 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
70 iterator correctly, and sort results.
72 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
74 * DefaultContext.cs : Imcomplete fix ;-)
76 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
78 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
79 XPathFunctionId.cs : Exposed Id expression.
80 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
81 will be used to solve evaluation precedence problem).
83 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
85 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
86 inconsistent order, and 2)may return duplicate result nodes.
88 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
90 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
91 it inherit from the base class. This made b[2] evaluated on
92 <a /><b /><c /><a /><b /><c /> return the first b node because
93 in the ChildIterator it was the second node and seemed to satsify
96 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
98 * Iterator.cs : Added bool ReverseAxis property to identify whether
99 the iterator is in reverse order or not. Added ComparablePosition
100 for correct position comparison for PredicateIterator and reverse-
101 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
102 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
103 return their nodes in document order. This fixes bugzilla #39079.
105 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
107 * Iterator.cs : DescendantIterator and FollowingIterator also should
108 not MoveNext() after they reached to the end.
110 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
112 * Iterator.cs : Fixed UnionIterator who ignores document order.
113 Fixed SlashIterator whose MoveNext() should finish at its end.
115 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
117 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
118 use NameTable so we dont call strcmp.
120 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
122 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
124 * Iterator.cs, Expression.cs: All axes are
125 SimpleIterators. SimpleIterators are gaurenteed to give the same
126 XPathNavigator in Current. Make AxisIterator take a
127 SimpleIterator, not any old BaseIterator. Will allow us to make
128 NameTable optimizations and avoid quite a few strcmp's.
130 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
132 * Expression.cs: make // work right, must use another slash itr.
134 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
136 * Expression.cs: cant use $$ before assigned.
138 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
140 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
142 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
144 * Expression.cs: num != double.NaN does not work.
146 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
148 * Expression.cs: in NodeTypeTest dont throw an exception if it is
149 an unknown node type (allows for better Pattern debugging).
151 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
153 * DefaultContext.cs: implement sum () and translate ().
155 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
157 * XPathNavigator.cs: Make methods where you pass in the context,
158 so that we dont have to clone expressions so much.
160 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
162 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
163 system functions are actually expressions. Will allow for some
166 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
168 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
169 improvement in the method (5ms/call -> .7 ms / call) measured by
170 monodoc's rendering of N:System.
171 * Expression.cs: Utility methods to support above.
173 2003-08-13 Piers Haken <piersh@friskit.com>
176 fix MergedIterator.Clone(), now clones other's iterators
177 fix DescendantIterator.Clone(), now copies depth
178 make iterator cloning constructors more type-specific
180 2003-08-01 Piers Haken <piersh@friskit.com>
182 * Expression.cs: added NodeNamespaceTest
183 * XPathNavigator.cs: implement Select* with namespaces
185 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
187 * Iterator.cs: Allow creation of an EnumeratorIterator with an
190 2003-07-31 Piers Haken <piersh@friskit.com>
193 Nested predicates (uses ExprFilter instead)
195 make grammar look more like w3c spec
197 remove ExprStep, ExprPredicates
198 NodeTest is now a NodeSet
201 PredicateIterator now only takes a single predicate expression
204 simplified SelectTest
208 2003-07-30 Duncan Mak <duncan@ximian.com>
214 2003-07-29 Piers Haken <piersh@friskit.com>
216 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
218 2003-07-29 Piers Haken <piersh@friskit.com>
222 add typesafe Evaluate* methods
224 2003-07-29 Piers Haken <piersh@friskit.com>
226 * DefaultContext.cs: fix 'substring-after'
228 2003-07-29 Piers Haken <piersh@friskit.com>
230 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
232 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
234 * Iterator.cs: dont throw exceptions on tostring ()
236 2003-07-28 Piers Haken <piersh@friskit.com>
238 * DefaultContext.cs: better handling of null argument lists
239 * XPathNavigator.cs: implement ComparePosition
241 2003-07-28 Piers Haken <piersh@friskit.com>
243 * Expression.cs: boolean operators: handle comparing .Any better
245 2003-07-28 Piers Haken <piersh@friskit.com>
247 * DefaultContext.cs: count() should return a double
248 * Expression.cs: better support for handling non-double numbers
250 2003-07-28 Piers Haken <piersh@friskit.com>
252 * DefaultContext.cs: better function param matching
254 2003-07-27 Piers Haken <piersh@friskit.com>
258 catch FormatExceptions while parsing numbers
260 2003-07-27 Piers Haken <piersh@friskit.com>
263 fix case sorting order
264 allow EvaluateNumber to take XPathResultType.Any
266 2003-07-27 Piers Haken <piersh@friskit.com>
270 don't pass null to XmlQualifiedName constructor
272 2003-07-27 Piers Haken <piersh@friskit.com>
274 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
276 2003-07-27 Piers Haken <piersh@friskit.com>
278 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
280 2003-07-26 Piers Haken <piersh@friskit.com>
282 * Expression.cs: fix function evaluation with ambigous argument types
283 * XPathNavigator.cs: fix silly null reference bug
285 2003-07-26 Piers Haken <piersh@friskit.com>
289 ArrayListIterator->EnumeratorIterator
290 * Expression.cs: add sorting support
292 2003-07-26 Piers Haken <piersh@friskit.com>
296 move QName parsing into tokenizer
298 fix evaluating XPathResultType.Any
299 fix ExprDiv.ToString()
300 fix NodeTypeTest.ToString() (for namespace axis)
302 2003-07-25 Piers Haken <piersh@friskit.com>
304 * Expression.cs: return clone of $var evaluation
306 2003-07-26 Piers Haken <piersh@friskit.com>
308 * Iterator.cs: add setter for NamespaceManager
309 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
310 * Expression.cs: fix func/var exception strings
312 2003-07-25 Piers Haken <piersh@friskit.com>
314 * Expression.cs: implement ExprFilter.Evaluate
316 2003-07-25 Piers Haken <piersh@friskit.com>
318 * Expression.cs: implement ExprVariable.Evaluate
320 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
322 * DefaultContext.cs: implement lang ()
324 2003-07-24 Piers Haken <piersh@friskit.com>
328 allow ExprUNION to take non-nodeset (eg, $var) arguments
330 2003-07-24 Piers Haken <piersh@friskit.com>
332 * Tokenizer.cs: fix variable references
338 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
340 * XPathDocument.cs : removed Driver class and restored authors' name
341 (though it is completely rewrote).
343 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
345 * XPathDocument.cs : Replaced existing stub class with real
346 XPathDocument implementation.
348 2003-04-28 Piers Haken <piersh@friskit.com>
350 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
352 2003-03-07 Piers Haken <piersh@friskit.com>
354 * Tokenizer.cs: allow '.'s in NCNames
356 2003-03-07 Piers Haken <piersh@friskit.com>
360 fixed function argument resolution
362 2003-02-09 Piers Haken <piersh@friskit.com>
366 * Expression.cs: fix namespace handling
368 2003-01-04 Piers Haken <piersh@friskit.com>
370 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
372 2003-02-02 Piers Haken <piersh@friskit.com>
374 * Parser.jay: add token names
375 * Tokenizer.cs: fix NCName tokenization
377 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
379 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
380 (It should be a temporary fix.)
382 2002-09-22 Nick Drochak <ndrochak@gol.com>
384 * Parser.cs: Remove extraneous "using" that was stopping the build.
386 2002-09-21 Piers Haken <piersh@friskit.com>
388 * XPathException: implementation
393 * XPathNavigator.jay:
396 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
398 * Parser.cs: commented out non-existent namespace (it compiles fine
399 with mcs because of a bug that is already on bugzilla).
401 2002-09-12 Piers Haken <piersh@friskit.com>
403 * Tokenizer.cs: fix parsing numbers that start with '.'
404 * DefaultContext.cs: use MS-compatible formatting of doubles
406 2002-09-12 Piers Haken <piersh@friskit.com>
408 * Iterator.cs: added NullIterator to handle unspecified contexts
409 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
410 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
412 2002-09-12 Piers Haken <piersh@friskit.com>
414 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
415 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
416 * DefaultContext.cs: fix id() return type.
418 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
420 * DefaultContext.cs: fixed bug #28840.
421 * Expression.cs: added FIXME.
423 2002-08-17 Jason Diamond <jason@injektilo.org>
425 * XPathNavigator.cs: Fixed matching on patterns that look like
426 absolute XPath expressions.
428 2002-08-17 Jason Diamond <jason@injektilo.org>
430 * XPathNavigator.cs: Added naive (but working) implementation of
433 2002-07-31 Piers Haken <piersh@friskit.com>
435 * XPathDocument.cs: simple, XmlDocument-based implementation
437 2002-07-25 Piers Haken <piersh@friskit.com>
439 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
441 2002-07-17 Piers Haken <piersh@friskit.com>
443 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
444 * Parser.jay: remove redundant production
445 * Expression.cs: add switches for debugging under VS.NET
447 2002-07-17 Piers Haken <piersh@friskit.com>
449 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
451 2002-07-15 Piers Haken <piersh@friskit.com>
454 - rename UnionIterator to MergedIterator,
455 - create new UnionIterator to implment uniqueness for '|' operator
456 - fix position bug in ArrayListIterator.Clone()
457 * Expression.cs: use new UnionIterator constructor syntax
459 2002-07-12 Piers Haken <piersh@friskit.com>
461 * Iterator.cs: PredicateIterator: handle numeric predicates
462 * Parser.jay: add some debugging support: yyparseDebug
463 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
465 2002-06-29 Piers Haken <piersh@friskit.com>
469 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
470 - remove NodeTestTypes enum
471 - remove NodeTestTypeAny (functionality provided by base now)
472 - fix ExprStep to handle wildcard QNames
474 - moved to Mono.Xml.XPath namespace
475 - use XPathResultType
476 - handle wildcard QNames
478 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
480 * XPathNavigator.cs: implement
486 * XPathResultType.cs: fix enum values
488 2002-06-24 Jason Diamond <jason@injektilo.org>
490 * XPathScanner.cs: Removed.
492 2002-06-24 Dick Porter <dick@ximian.com>
494 * XmlCaseOrder.cs: Fix namespace
496 2002-06-23 Piers Haken <piersh@friskit.com>
498 * DefaultContext.cs: implemented XPathFUnctionId
499 * Iterator.cs: new ArrayListIterator for id() support
501 2002-06-23 Piers Haken <piersh@friskit.com>
503 * XPathNavigator.cs: implement:
509 - some forwarding methods
511 * XPathNodeIterator: implement caching Count
513 * Tokenizer.cs: new XPath tokenizer
514 * Parser.jay: new XPath grammar
515 * Parser.cs: new precompiled XPath grammar
516 * Expression.cs: new XPath expression objects
517 * Iterator.cs: new XPath result/context objects
518 * DefaultContext.cs: new XPath function binding context
520 2002-05-08 Tim Coleman <tim@timcoleman.com>
522 * XPathException.cs: New stub files added.
524 2002-04-12 Duncan Mak <duncan@ximian.com>
526 * XmlCaseOrder.cs: Moved to here from System.Xml.
528 2002-03-26 Jason Diamond <jason@injektilo.org>
530 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
531 steps. Both absolution and relative abbreviated location paths.
533 2002-03-25 Jason Diamond <jason@injektilo.org>
535 * XPathScanner.cs: Added new file. This class is supposed to be internal
536 but that would make it impossible to test.
538 2002-03-08 Duncan Mak <duncan@ximian.com>
540 * XPathNamespaceScope.cs:
542 * XPathResultType.cs:
544 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
545 implementation. XPathResultType is interesting as EnumCheck does
546 not show the Navigator element, but shows the String element twice.
548 2002-03-08 Jason Diamond <jason@injektilo.org>
550 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
552 2002-03-06 Jason Diamond <jason@injektilo.org>
554 * ChangeLog: Added to this directory.
556 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
557 XPathResultType.cs: New files.
559 * XPathNavigator.cs: Stubbed out all properties and methods.