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