2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
1 2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * Iterator.cs : when PredicateIterator has a numeric predicate, it
4           will never be true twice. So just break up the iteration on true.
5         * XPathNavigator.cs : implemented LookupPrefix().
6         * Expression.cs : ExprParens.Optimize() could just return the content
7           expression.
8
9 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
10
11         * IXPathChangeNavigable.cs,
12           XmlChangeFilters.cs,
13           XPathDocumentNodeChangedAction.cs : removed old files.
14
15 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
16
17         * Iterator.cs : with related to the previous patch, many comments
18           got making no sense. Thanks to Harinath.
19
20 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
21
22         * Iterator.cs : actually I mean this patch.
23
24 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * Iterator.cs : Create _current clone only when required. So just set
27           null when MoveNextCore() succeeded (except for some cases that
28           _current is _nav, such as SelfIterator).
29
30 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
33           it has to collect nodes in prior or not and whether it might return
34           nodes in inconsistent order is different matter.
35           (It still needs to store nodes when either of branches requires
36           sorting, because they might return the same node later.)
37
38 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
39
40         * Iterator.cs : reduced some extraneous ComparePosition() that could
41           be written as IsSamePosition(). ParentIterator doesn't have to be
42           RequireSorting.
43
44 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
45
46         * Iterator.cs : reimplemented AncestorIterator and 
47           AncestorOrSelfIterator just to collect parents and not to move to
48           siblings. In some cases like thousands of siblings, it used to be
49           so slow, while we usually don't have so deep ancestors.
50
51 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
52
53         * Expression.cs : warning removal. Added Optimize() which is not
54           implemented at all.
55         * Tokenizer.cs : warning elimination
56
57 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
58
59         * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
60           IXPathEditable.cs : more removal of oldies.
61
62 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
63
64         * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
65
66 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * Tokenizer.cs : just use raw string instead of char[].
69         * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
70
71 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
72
73         * Iterator.cs :
74           - Made copy constructor certainly different from other constructors.
75           - Position is never computed in each derived type. All MoveNext() are
76             now MoveNextCore().
77           - Most of the protected members could just be private.
78
79 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * Expression.cs, XPathNavigator.cs : hold raw expression field for
82           get_Expression. It is preparation for expression optimization.
83
84 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
85
86         * Iterator.cs : SimpleIterator._current could be cloned only when
87           it is required.
88
89 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
90
91         * Iterator.cs : Some removal of Clone() were harmless.
92
93 2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>
94
95         * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
96           reverted.
97         * XPathEditableNavigator.cs : It will be removed. Right now modified
98           a bit to pass build.
99         * XPathNavigator.cs : Added members that are merged from
100           XPathEditableNavigator. Updated members name.
101
102 2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
103
104         * Iterator.cs :
105           - Added WrapperIterator to return BaseIterator in such case that 
106             variable reference is resolved to XPathNodeIterator. This fixes
107             bug #68267.
108           - Path ".." is reverse axis (actually no effect).
109           - Fixed DescendantIterator.Clone() that missed "_finished" field.
110         * Expression.cs :
111           In ExprVariable.Evaluate(), use WrapperIterator() for custom
112           XPathNodeIterator.
113
114 2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
115
116         * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
117
118 2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>
119
120         * XPathAtomicValue.cs : missing Init() definition for float and string;
121           latter one resulted in infinite loop in Init(object,XmlSchemaType).
122
123 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
124
125         * XPathNavigator.cs : TypedValue could be implemented.
126         * XPathEditableNavigator.cs : removed some MonoTODO since now there 
127           are implementations.
128
129 2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>
130
131         * XPathAtomicValue.cs : All .ctor() are separeted from Init().
132           In .ctor(object, XmlSchemaType):
133           - For lists that contains just one item, Init() recursively.
134           - For XPathAtomicValue, Init() recursively for its content fields.
135           For Value and TypedValue, consider typecode from XmlSchemaType.
136
137 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
138
139         * XPathEditableNavigator.cs :
140           AppendChild(xmlReader) ignored nodes after than first one, and
141           resulted in infinite loop.
142           Added get_OuterXml overrides. set_OuterXml should not move to
143           parent before deleting current.
144
145 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
146
147         * XPathAtomicValue.cs : Value was not returning expected value when
148           it is created as new XPathAtomicValue (object, XmlSchemaType).
149           Compute stringValue and reuse.
150         * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
151           (for checking XQuery implementation).
152
153 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
154
155         * XPathAtomicValue.cs : Handle .ctor() with object parameter more
156           precisely (still not enough, for list argument).
157           Removed commended blocks.
158
159 2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>
160
161         * XPathAtomicValue.cs : DateTime should be convertible to string.
162           Use schemaType's TypeCode for .ctor() that takes object.
163         * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
164         * XPathEditableNavigator.cs : set_InnerXml should be different (new)
165           property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
166           overrides.
167
168 2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
169
170         * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
171
172 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
173
174         * XPathEditableNavigator.cs : implemented some editor support methods.
175
176 2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>
177
178         * XPathDocument.cs :
179           - For .NET 2.0, added a switch to support new XPathDocument2. 
180             If switch is off, then it uses DTM.
181           - Implemented remaining 2.0 bits (except for Obsolete ones).
182
183         To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
184         (It is still too unstable to pass all nunit tests and standalone XSLT
185         tests).
186
187 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
188
189         * XPathNavigator.cs : Implemented ReadSubtree().
190
191 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
192
193         * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it 
194           creates Mono.Xml.XPath.XPathEditableDocument and thus supports
195           IXPathEditable.CreateEditor().
196
197 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
198
199         * XPathEditableNavigator.cs : Implemented InsertAfter() and 
200           PrependChild(); they are virtual, not abstract.
201         * XPathNavigator.cs :
202           Implemented many 2.0 virtual properties and methods that were 
203           abstract in 1.x.
204           Implemented some Select() methods that uses IXmlNamespaceResolver.
205           Implemented most of ValueAsXxx() using XQueryConvert.
206           IsNode is always true. Implemented OuterXml and WriteSubtree() (but
207           actually they don't work because it depends on ReadSubtree()).
208
209 2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
210
211         * XPathDocument.cs : added missing && not-likely-to-be-removed members.
212         * XPathEditableNavigator.cs : added BuildSubTree().
213         * XPathException.cs : added missing methods. Hide Message in NET_2_0.
214
215 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
216
217         * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
218
219 2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
220
221         * XPathExpression.cs, Expression.cs :
222           Added SetContext(IXmlNamespaceResolver).
223         * NodeChangedEventArgs.cs : Added missing [MonoTODO].
224         * XPathAtomicValue.cs : Halfly implemented.
225         * XPathDocument.cs : Added 2.0 members.
226         * XPathDocumentNodeChangedAction.cs : updated member names.
227         * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
228         * XPathNavigator.cs : Added missing 2.0 members.
229           Fixed some members as virtual->override.
230
231 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
232
233         * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
234         * XPathResultType.cs : marked [MonoFIX] on .Navigator.
235
236 2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
237
238         * Expression.cs, Iterator.cs, XPathNavigator.cs :
239           Use IXmlNamespaceResolver for net 2.0. Removed unused code.
240         * XPathEditableNavigator.cs : fixed namespace.
241         * XPathNavigator.cs :
242           Fixed inheritance. Added missing MonoTODO.
243           Removed old .net 1.2 code. 
244
245 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
246
247         * DefaultContext.cs : Globalization.
248         * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
249           in case of empty list. Thus extraneous iteration might happened.
250           Removed unused (and clone unsafe) EnumeratorIterator.
251
252 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
253
254         * XPathDocument.s : The previous patch is still incomplete to close.
255
256 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
257
258         * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
259
260 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
261
262         * Expression.cs : LookupNamespace() only allows already-atomized names.
263         * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and 
264           set_InnerXml().
265
266 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
267
268         * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
269           and ToNavigator().
270         * Expression.cs : In Equality comparison, evaluate XPathNavigator in
271           the same as well as NodeSet. This fixes bug #59134.
272
273 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
274
275         * XPathAtomicValue.cs : missed NET_2_0.
276
277 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * IXPathChangeNavigable.cs,
280           IXPathEditable.cs,
281           NodeChangedEventArgs.cs,
282           NodeChangedEventHandler.cs,
283           XPathAtomicValue.cs,
284           XPathChangeNavigator.cs,
285           XPathDocumentNodeChangedAction.cs,
286           XPathEditableNavigator.cs,
287           XPathItem.cs,
288           XmlChangeFilters.cs,
289           XmlNodeChangeType.cs : added NET_2_0 classes.
290         * XPathDocument.cs,
291           XPathNavigator.cs : updated NET_2_0 members.
292
293 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
294
295         * Expression.cs : We should not catch all kind of exception. Just
296           throwing any kind of exception would be preferable.
297           Added support for XPathNavigator values.
298
299 2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
300
301         * DefaultContext.cs : Removed MonoTODO. done.
302         * Expression.cs : handle XPathResultType.Navigator in some places and
303           removed MonoTODO. Mark MonoTODO with explicit comments (though they
304           are mostly pointing out possibilities of optimization).
305           Removed extra check that depended on the old bugs.
306         * XPathResultType.cs : Fixed .Navigator that had the same value as
307           .String.
308
309 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
310
311         * Parser.jay : made class internal.
312
313 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
314
315         * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the 
316           result of MoveToParent() should be checked.
317
318 2004-02-17  Atsushi Enomoto  <atsushi@ximian.com>
319
320         * XPathNavigator.cs : Only child and attribute axes are allowed for
321           Matches().
322         * Expression.cs : Added IsPositional property.
323         * DefaultContext.cs : Added some overrides.
324
325 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
326
327         * XPathNavigator.cs : no, its still not ok. comment out now.
328
329 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
330
331         * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
332           to reduce extraneous Matches() trial.
333         * Iterator.cs : Removed unused MergedIterator.
334         * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
335           unnecessarily. (Test with NeedAbsoluteMatching).
336
337 2004-02-10  Atsushi Enomoto  <atsushi@ximian.com>
338
339         * Iterator.cs : Added overriden Count properties for some iterators
340           (this fixes the half of #50678).
341           Added ListIterator class (which can reduce GetEnumerator()). 
342           In some places we can omit clone for Current property, so added 
343           some check logic (It has no effect as yet).
344         * Expression.cs, DefaultContext.cs :
345           use ListIterator instead of EnumeratorIterator.
346
347 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
348
349         * DefaultContext.cs, Expression.cs, Iterator.cs :
350           tiny foreach elimination.
351
352 2004-02-05  Atsushi Enomoto  <atsushi@ximian.com>
353
354         * DefaultContext.cs : trivial processing order fix.
355
356 2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>
357
358         * DefaultContext.cs : Avoid exception if possible.
359         * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
360           nav was positioned at the first, it incorrectly points itself.
361           Don't add names to name table while it is useless and expensive.
362
363 2004-01-08  Nick Drochak <ndrochak@ieee.org>
364
365         * Iterator.cs: Removed unused variable.
366         
367 2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
368
369         * Parser.jay : now it supresses error output from jay.
370         * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
371         * Tokenizer.cs : better error message.
372         * XPathDocument.cs : Use XmlValidatingReader to support id() function.
373           (just found MS.NET actually supports it)
374
375 2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
376
377         * Iterator.cs : On its iteration, moving Current must not affect to
378           MoveNext(). To assure this, Current must be a clone of navigator.
379           Removed unused code.
380
381 2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
382
383         * Tokenizer.cs : Removed some TODOs. (trivial ;-)
384         * Iterator.cs : ParensIterator can inherit from BaseIterator.
385           SlashIterator copy .ctor() always failed to clone. This fixes Count.
386
387 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
388
389         * Expression.cs : XPathSorters.Compare() should compare document
390           position. See last sentence of XSLT 1.0 secion 10.
391
392 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
393
394         * DefaultContext.cs : Overrode all functions' ToString().
395           XPathFunctions.ToNumber() trims whitespaces at both side.
396           Fixed NullReferenceException in normalize-space().
397         * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
398           attribute or namespace node correctly.
399           SlashIterator.Clone() didn't clone "next node iterator" correctly.
400           EnumeratorIterator.ctor() should raise an error (not at Clone())
401           when the target IEnumerator is not ICloneable.
402
403 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
404
405         * Expression.cs : namespace axis now traversed in reverse order, so it
406           requires sorting.
407         * Iterator.cs : UnionIterator.Clone() was incomplete. 
408           NamespaceItarator() should be reverse order (special handling
409           because of XPathNavigator specification).
410
411 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
412
413         * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
414         * XPathNavigator.cs : ComparePosition() didn't handle attributes 
415           correctly.
416
417 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
418
419         * Parser.jay, Expression.cs, Iterator.cs :
420           Added ExprParens and ParensIterator classes which is used to handle
421           precedence of parenthesized expressions.
422           (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
423
424         * Expression.cs, Iterator.cs :
425           Added RequireSorting property for each Expr and BaseIterator classes.
426           SlashIterator.MoveNext() now considers correct sorting. But
427           considering performance, it separates two logics, sorted and sortless
428           depending on RequireSorting of left iterator and right expression.
429
430         * Iterator.cs :
431           SimpleIterator.ctor() should consider when nav is null.
432           FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
433           not return any nodes.
434           AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
435           positions.
436           AncestorIterator.MoveNext() should skip Root if context node is
437           Root itself.
438           FollowingIterator.MoveNext() should not handle children of context
439           itself.
440           PrecedingIterator.MoveNext() should skip its ancestors.
441           AxisIterator.ReverseAxis should be dependent on its containing iter.
442           UnionIterator.MoveNext() should consider comparison of nodes in 
443           different document. The behavior is implementation dependent.
444           (see XSLT spec 12.1)
445
446 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
447
448         * Added XPathComparer.cs
449         * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
450           iterator correctly, and sort results.
451
452 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
453
454         * DefaultContext.cs : Imcomplete fix ;-)
455
456 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
457
458         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
459           XPathFunctionId.cs : Exposed Id expression.
460         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
461           will be used to solve evaluation precedence problem).
462
463 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
464
465         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
466           inconsistent order, and 2)may return duplicate result nodes.
467
468 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
469
470         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
471         it inherit from the base class. This made b[2] evaluated on 
472         <a /><b /><c /><a /><b /><c /> return the first b node because
473         in the ChildIterator it was the second node and seemed to satsify
474         the predicate.
475
476 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
477
478         * Iterator.cs : Added bool ReverseAxis property to identify whether
479           the iterator is in reverse order or not.  Added ComparablePosition
480           for correct position comparison for PredicateIterator and reverse-
481           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
482           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
483           return their nodes in document order. This fixes bugzilla #39079.
484
485 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
486
487         * Iterator.cs : DescendantIterator and FollowingIterator also should
488           not MoveNext() after they reached to the end.
489
490 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
491
492         * Iterator.cs : Fixed UnionIterator who ignores document order.
493           Fixed SlashIterator whose MoveNext() should finish at its end.
494
495 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
496
497         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
498         use NameTable so we dont call strcmp.
499
500 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
501
502         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
503         not "abc".
504         * Iterator.cs, Expression.cs: All axes are
505         SimpleIterators. SimpleIterators are gaurenteed to give the same
506         XPathNavigator in Current. Make AxisIterator take a
507         SimpleIterator, not any old BaseIterator. Will allow us to make
508         NameTable optimizations and avoid quite a few strcmp's.
509
510 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
511
512         * Expression.cs: make // work right, must use another slash itr.
513
514 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
515
516         * Expression.cs: cant use $$ before assigned.
517
518 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
519
520         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
521
522 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
523
524         * Expression.cs: num != double.NaN does not work.
525
526 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
527
528         * Expression.cs: in NodeTypeTest dont throw an exception if it is
529         an unknown node type (allows for better Pattern debugging).
530
531 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
532
533         * DefaultContext.cs: implement sum () and translate ().
534
535 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
536
537         * XPathNavigator.cs: Make methods where you pass in the context,
538         so that we dont have to clone expressions so much.
539
540 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
541
542         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
543         system functions are actually expressions. Will allow for some
544         nice optimizations.
545
546 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
547
548         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
549         improvement in the method (5ms/call -> .7 ms / call) measured by
550         monodoc's rendering of N:System.
551         * Expression.cs: Utility methods to support above.
552
553 2003-08-13 Piers Haken  <piersh@friskit.com>
554         
555         * Iterator.cs:
556                 fix MergedIterator.Clone(), now clones other's iterators
557                 fix DescendantIterator.Clone(), now copies depth
558                 make iterator cloning constructors more type-specific
559
560 2003-08-01 Piers Haken  <piersh@friskit.com>
561
562         * Expression.cs: added NodeNamespaceTest
563         * XPathNavigator.cs: implement Select* with namespaces
564
565 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
566
567         * Iterator.cs: Allow creation of an EnumeratorIterator with an
568         XmlNamespaceManager.
569         
570 2003-07-31 Piers Haken  <piersh@friskit.com>
571
572         * Parser.jay:
573                 Nested predicates (uses ExprFilter instead)
574                 more type safety
575                 make grammar look more like w3c spec
576         * Expression.cs:
577                 remove ExprStep, ExprPredicates
578                 NodeTest is now a NodeSet
579                 more type-safety
580         * Iterator.cs:
581                 PredicateIterator now only takes a single predicate expression
582                 more type-safety
583         * XPathNavigator.cs:
584                 simplified SelectTest
585         * XPathException.cs:
586                 fixed indenting
587
588 2003-07-30  Duncan Mak  <duncan@ximian.com>
589
590         * XPathException.cs
591         (GetObjectData): 
592         (Message): Added.
593
594 2003-07-29 Piers Haken  <piersh@friskit.com>
595
596         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
597
598 2003-07-29 Piers Haken  <piersh@friskit.com>
599
600         * XPathNavigator.cs:
601         * Expression.cs:
602                 add typesafe Evaluate* methods
603
604 2003-07-29 Piers Haken  <piersh@friskit.com>
605
606         * DefaultContext.cs: fix 'substring-after'
607
608 2003-07-29 Piers Haken  <piersh@friskit.com>
609
610         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
611
612 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
613
614         * Iterator.cs: dont throw exceptions on tostring ()
615         
616 2003-07-28  Piers Haken <piersh@friskit.com>
617
618         * DefaultContext.cs: better handling of null argument lists
619         * XPathNavigator.cs: implement ComparePosition
620
621 2003-07-28  Piers Haken <piersh@friskit.com>
622
623         * Expression.cs: boolean operators: handle comparing .Any better
624
625 2003-07-28  Piers Haken <piersh@friskit.com>
626
627         * DefaultContext.cs: count() should return a double
628         * Expression.cs: better support for handling non-double numbers
629
630 2003-07-28  Piers Haken <piersh@friskit.com>
631
632         * DefaultContext.cs: better function param matching
633
634 2003-07-27  Piers Haken <piersh@friskit.com>
635
636         * Expression.cs:
637         * DefaultContext.cs:
638                 catch FormatExceptions while parsing numbers
639
640 2003-07-27  Piers Haken <piersh@friskit.com>
641
642         * Expression.cs:
643                 fix case sorting order
644                 allow EvaluateNumber to take XPathResultType.Any
645
646 2003-07-27  Piers Haken <piersh@friskit.com>
647
648         * Expression.cs:
649         * Tokenizer.cs:
650                 don't pass null to XmlQualifiedName constructor
651
652 2003-07-27  Piers Haken <piersh@friskit.com>
653
654         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
655
656 2003-07-27  Piers Haken <piersh@friskit.com>
657
658         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
659
660 2003-07-26  Piers Haken <piersh@friskit.com>
661
662         * Expression.cs: fix function evaluation with ambigous argument types
663         * XPathNavigator.cs: fix silly null reference bug
664
665 2003-07-26  Piers Haken <piersh@friskit.com>
666
667         * Iterator.cs:
668         * DefaultContext.cs:
669                 ArrayListIterator->EnumeratorIterator
670         * Expression.cs: add sorting support
671
672 2003-07-26  Piers Haken <piersh@friskit.com>
673
674         * Tokenizer.cs:
675         * Parser.jay:
676                 move QName parsing into tokenizer
677         * Expression.cs:
678                 fix evaluating XPathResultType.Any
679                 fix ExprDiv.ToString()
680                 fix NodeTypeTest.ToString() (for namespace axis)
681
682 2003-07-25  Piers Haken <piersh@friskit.com>
683
684         * Expression.cs: return clone of $var evaluation
685
686 2003-07-26  Piers Haken <piersh@friskit.com>
687
688         * Iterator.cs: add setter for NamespaceManager
689         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
690         * Expression.cs: fix func/var exception strings
691
692 2003-07-25  Piers Haken <piersh@friskit.com>
693
694         * Expression.cs: implement ExprFilter.Evaluate
695
696 2003-07-25  Piers Haken <piersh@friskit.com>
697
698         * Expression.cs: implement ExprVariable.Evaluate
699
700 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
701         
702         * DefaultContext.cs: implement lang ()
703
704 2003-07-24  Piers Haken <piersh@friskit.com>
705
706         * Parser.jay:
707         * Expression.cs:
708                 allow ExprUNION to take non-nodeset (eg, $var) arguments
709
710 2003-07-24  Piers Haken <piersh@friskit.com>
711
712         * Tokenizer.cs: fix variable references
713         * Parser.jay:
714         * Expression.cs:
715         * XPathNavigator.cs:
716                 use XmlQualifiedName
717
718 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
719
720         * XPathDocument.cs : removed Driver class and restored authors' name
721           (though it is completely rewrote).
722
723 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
724
725         * XPathDocument.cs : Replaced existing stub class with real
726           XPathDocument implementation.
727
728 2003-04-28  Piers Haken  <piersh@friskit.com>
729
730         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
731
732 2003-03-07  Piers Haken  <piersh@friskit.com>
733
734         * Tokenizer.cs: allow '.'s in NCNames
735
736 2003-03-07  Piers Haken  <piersh@friskit.com>
737
738         * Exression.cs:
739         * DefaultContext.cs:
740                 fixed function argument resolution
741
742 2003-02-09  Piers Haken  <piersh@friskit.com>
743
744         * XPathNavigator.cs:
745         * Iterator.cs:
746         * Expression.cs: fix namespace handling
747
748 2003-01-04  Piers Haken  <piersh@friskit.com>
749
750         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
751
752 2003-02-02  Piers Haken <piersh@friskit.com>
753
754         * Parser.jay: add token names
755         * Tokenizer.cs: fix NCName tokenization
756
757 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
758
759         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
760                 (It should be a temporary fix.)
761
762 2002-09-22  Nick Drochak  <ndrochak@gol.com>
763
764         * Parser.cs: Remove extraneous "using" that was stopping the build.
765
766 2002-09-21  Piers Haken <piersh@friskit.com>
767
768         * XPathException: implementation
769         * Expression.cs:
770         * Iterator.cs:
771         * Parser.jay:
772         * Tokenizer.jay:
773         * XPathNavigator.jay:
774                 use XPathException.
775
776 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
777
778         * Parser.cs: commented out non-existent namespace (it compiles fine
779         with mcs because of a bug that is already on bugzilla).
780
781 2002-09-12  Piers Haken <piersh@friskit.com>
782
783         * Tokenizer.cs: fix parsing numbers that start with '.'
784         * DefaultContext.cs: use MS-compatible formatting of doubles
785
786 2002-09-12  Piers Haken <piersh@friskit.com>
787
788         * Iterator.cs: added NullIterator to handle unspecified contexts
789         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
790         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
791
792 2002-09-12  Piers Haken <piersh@friskit.com>
793
794         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
795         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
796         * DefaultContext.cs: fix id() return type.
797
798 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
799
800         * DefaultContext.cs: fixed bug #28840.
801         * Expression.cs: added FIXME.
802
803 2002-08-17  Jason Diamond <jason@injektilo.org>
804
805         * XPathNavigator.cs: Fixed matching on patterns that look like
806         absolute XPath expressions.
807
808 2002-08-17  Jason Diamond <jason@injektilo.org>
809
810         * XPathNavigator.cs: Added naive (but working) implementation of
811          Matches.
812
813 2002-07-31  Piers Haken <piersh@friskit.com>
814
815         * XPathDocument.cs: simple, XmlDocument-based implementation
816
817 2002-07-25  Piers Haken <piersh@friskit.com>
818
819         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
820
821 2002-07-17  Piers Haken <piersh@friskit.com>
822         
823         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
824         * Parser.jay: remove redundant production
825         * Expression.cs: add switches for debugging under VS.NET
826
827 2002-07-17  Piers Haken <piersh@friskit.com>
828
829         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
830
831 2002-07-15  Piers Haken <piersh@friskit.com>
832
833         * Iterator.cs:
834                 - rename UnionIterator to MergedIterator, 
835                 - create new UnionIterator to implment uniqueness for '|' operator
836                 - fix position bug in ArrayListIterator.Clone()
837         * Expression.cs: use new UnionIterator constructor syntax
838
839 2002-07-12  Piers Haken <piersh@friskit.com>
840
841         * Iterator.cs: PredicateIterator: handle numeric predicates
842         * Parser.jay: add some debugging support: yyparseDebug
843         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
844
845 2002-06-29  Piers Haken <piersh@friskit.com>
846
847         * Expression.cs:
848                 - remove dead code
849                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
850                 - remove NodeTestTypes enum
851                 - remove NodeTestTypeAny (functionality provided by base now)
852                 - fix ExprStep to handle wildcard QNames
853         * Parser.jay:
854                 - moved to Mono.Xml.XPath namespace
855                 - use XPathResultType
856                 - handle wildcard QNames
857                 
858         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
859         
860         * XPathNavigator.cs: implement
861                 - IsDescendant
862                 - SelectAncestors
863                 - SelectDescendants
864                 - SelectChildren
865                 
866         * XPathResultType.cs: fix enum values
867         
868 2002-06-24  Jason Diamond  <jason@injektilo.org>
869
870         * XPathScanner.cs: Removed.
871
872 2002-06-24  Dick Porter <dick@ximian.com>
873
874         * XmlCaseOrder.cs: Fix namespace
875
876 2002-06-23  Piers Haken <piersh@friskit.com>
877
878         * DefaultContext.cs: implemented XPathFUnctionId
879         * Iterator.cs: new ArrayListIterator for id() support
880
881 2002-06-23  Piers Haken <piersh@friskit.com>
882
883         * XPathNavigator.cs: implement:
884                 - Compile
885                 - Evaluate
886                 - Clone
887                 - Select
888                 - ToString
889                 - some forwarding methods
890
891         * XPathNodeIterator: implement caching Count
892
893         * Tokenizer.cs: new XPath tokenizer
894         * Parser.jay: new XPath grammar
895         * Parser.cs: new precompiled XPath grammar
896         * Expression.cs: new XPath expression objects
897         * Iterator.cs: new XPath result/context objects
898         * DefaultContext.cs: new XPath function binding context
899
900 2002-05-08  Tim Coleman <tim@timcoleman.com>
901         * XPathDocument.cs:
902         * XPathException.cs: New stub files added.
903
904 2002-04-12  Duncan Mak  <duncan@ximian.com>
905
906         * XmlCaseOrder.cs: Moved to here from System.Xml.
907
908 2002-03-26  Jason Diamond  <jason@injektilo.org>
909
910         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
911         steps. Both absolution and relative abbreviated location paths.
912
913 2002-03-25  Jason Diamond  <jason@injektilo.org>
914
915         * XPathScanner.cs: Added new file. This class is supposed to be internal
916         but that would make it impossible to test.
917
918 2002-03-08  Duncan Mak  <duncan@ximian.com>
919
920         * XPathNamespaceScope.cs:
921         * XPathNodeType.cs:
922         * XPathResultType.cs:
923         * XmlDataType.cs:
924         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
925         implementation. XPathResultType is interesting as EnumCheck does
926         not show the Navigator element, but shows the String element twice.
927
928 2002-03-08  Jason Diamond  <jason@injektilo.org>
929
930         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
931
932 2002-03-06  Jason Diamond  <jason@injektilo.org>
933
934         * ChangeLog: Added to this directory.
935
936         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
937         XPathResultType.cs: New files.
938
939         * XPathNavigator.cs: Stubbed out all properties and methods.