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