4b9b19abb5398d8f6af868b167dc71b63b1a5dcb
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
1 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
2
3         * DefaultContext.cs : Imcomplete fix ;-)
4
5 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
6
7         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
8           XPathFunctionId.cs : Exposed Id expression.
9         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
10           will be used to solve evaluation precedence problem).
11
12 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
13
14         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
15           inconsistent order, and 2)may return duplicate result nodes.
16
17 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
18
19         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
20         it inherit from the base class. This made b[2] evaluated on 
21         <a /><b /><c /><a /><b /><c /> return the first b node because
22         in the ChildIterator it was the second node and seemed to satsify
23         the predicate.
24
25 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
26
27         * Iterator.cs : Added bool ReverseAxis property to identify whether
28           the iterator is in reverse order or not.  Added ComparablePosition
29           for correct position comparison for PredicateIterator and reverse-
30           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
31           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
32           return their nodes in document order. This fixes bugzilla #39079.
33
34 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
35
36         * Iterator.cs : DescendantIterator and FollowingIterator also should
37           not MoveNext() after they reached to the end.
38
39 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
40
41         * Iterator.cs : Fixed UnionIterator who ignores document order.
42           Fixed SlashIterator whose MoveNext() should finish at its end.
43
44 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
45
46         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
47         use NameTable so we dont call strcmp.
48
49 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
50
51         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
52         not "abc".
53         * Iterator.cs, Expression.cs: All axes are
54         SimpleIterators. SimpleIterators are gaurenteed to give the same
55         XPathNavigator in Current. Make AxisIterator take a
56         SimpleIterator, not any old BaseIterator. Will allow us to make
57         NameTable optimizations and avoid quite a few strcmp's.
58
59 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
60
61         * Expression.cs: make // work right, must use another slash itr.
62
63 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
64
65         * Expression.cs: cant use $$ before assigned.
66
67 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
68
69         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
70
71 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
72
73         * Expression.cs: num != double.NaN does not work.
74
75 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
76
77         * Expression.cs: in NodeTypeTest dont throw an exception if it is
78         an unknown node type (allows for better Pattern debugging).
79
80 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
81
82         * DefaultContext.cs: implement sum () and translate ().
83
84 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
85
86         * XPathNavigator.cs: Make methods where you pass in the context,
87         so that we dont have to clone expressions so much.
88
89 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
90
91         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
92         system functions are actually expressions. Will allow for some
93         nice optimizations.
94
95 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
96
97         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
98         improvement in the method (5ms/call -> .7 ms / call) measured by
99         monodoc's rendering of N:System.
100         * Expression.cs: Utility methods to support above.
101
102 2003-08-13 Piers Haken  <piersh@friskit.com>
103         
104         * Iterator.cs:
105                 fix MergedIterator.Clone(), now clones other's iterators
106                 fix DescendantIterator.Clone(), now copies depth
107                 make iterator cloning constructors more type-specific
108
109 2003-08-01 Piers Haken  <piersh@friskit.com>
110
111         * Expression.cs: added NodeNamespaceTest
112         * XPathNavigator.cs: implement Select* with namespaces
113
114 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
115
116         * Iterator.cs: Allow creation of an EnumeratorIterator with an
117         XmlNamespaceManager.
118         
119 2003-07-31 Piers Haken  <piersh@friskit.com>
120
121         * Parser.jay:
122                 Nested predicates (uses ExprFilter instead)
123                 more type safety
124                 make grammar look more like w3c spec
125         * Expression.cs:
126                 remove ExprStep, ExprPredicates
127                 NodeTest is now a NodeSet
128                 more type-safety
129         * Iterator.cs:
130                 PredicateIterator now only takes a single predicate expression
131                 more type-safety
132         * XPathNavigator.cs:
133                 simplified SelectTest
134         * XPathException.cs:
135                 fixed indenting
136
137 2003-07-30  Duncan Mak  <duncan@ximian.com>
138
139         * XPathException.cs
140         (GetObjectData): 
141         (Message): Added.
142
143 2003-07-29 Piers Haken  <piersh@friskit.com>
144
145         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
146
147 2003-07-29 Piers Haken  <piersh@friskit.com>
148
149         * XPathNavigator.cs:
150         * Expression.cs:
151                 add typesafe Evaluate* methods
152
153 2003-07-29 Piers Haken  <piersh@friskit.com>
154
155         * DefaultContext.cs: fix 'substring-after'
156
157 2003-07-29 Piers Haken  <piersh@friskit.com>
158
159         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
160
161 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
162
163         * Iterator.cs: dont throw exceptions on tostring ()
164         
165 2003-07-28  Piers Haken <piersh@friskit.com>
166
167         * DefaultContext.cs: better handling of null argument lists
168         * XPathNavigator.cs: implement ComparePosition
169
170 2003-07-28  Piers Haken <piersh@friskit.com>
171
172         * Expression.cs: boolean operators: handle comparing .Any better
173
174 2003-07-28  Piers Haken <piersh@friskit.com>
175
176         * DefaultContext.cs: count() should return a double
177         * Expression.cs: better support for handling non-double numbers
178
179 2003-07-28  Piers Haken <piersh@friskit.com>
180
181         * DefaultContext.cs: better function param matching
182
183 2003-07-27  Piers Haken <piersh@friskit.com>
184
185         * Expression.cs:
186         * DefaultContext.cs:
187                 catch FormatExceptions while parsing numbers
188
189 2003-07-27  Piers Haken <piersh@friskit.com>
190
191         * Expression.cs:
192                 fix case sorting order
193                 allow EvaluateNumber to take XPathResultType.Any
194
195 2003-07-27  Piers Haken <piersh@friskit.com>
196
197         * Expression.cs:
198         * Tokenizer.cs:
199                 don't pass null to XmlQualifiedName constructor
200
201 2003-07-27  Piers Haken <piersh@friskit.com>
202
203         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
204
205 2003-07-27  Piers Haken <piersh@friskit.com>
206
207         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
208
209 2003-07-26  Piers Haken <piersh@friskit.com>
210
211         * Expression.cs: fix function evaluation with ambigous argument types
212         * XPathNavigator.cs: fix silly null reference bug
213
214 2003-07-26  Piers Haken <piersh@friskit.com>
215
216         * Iterator.cs:
217         * DefaultContext.cs:
218                 ArrayListIterator->EnumeratorIterator
219         * Expression.cs: add sorting support
220
221 2003-07-26  Piers Haken <piersh@friskit.com>
222
223         * Tokenizer.cs:
224         * Parser.jay:
225                 move QName parsing into tokenizer
226         * Expression.cs:
227                 fix evaluating XPathResultType.Any
228                 fix ExprDiv.ToString()
229                 fix NodeTypeTest.ToString() (for namespace axis)
230
231 2003-07-25  Piers Haken <piersh@friskit.com>
232
233         * Expression.cs: return clone of $var evaluation
234
235 2003-07-26  Piers Haken <piersh@friskit.com>
236
237         * Iterator.cs: add setter for NamespaceManager
238         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
239         * Expression.cs: fix func/var exception strings
240
241 2003-07-25  Piers Haken <piersh@friskit.com>
242
243         * Expression.cs: implement ExprFilter.Evaluate
244
245 2003-07-25  Piers Haken <piersh@friskit.com>
246
247         * Expression.cs: implement ExprVariable.Evaluate
248
249 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
250         
251         * DefaultContext.cs: implement lang ()
252
253 2003-07-24  Piers Haken <piersh@friskit.com>
254
255         * Parser.jay:
256         * Expression.cs:
257                 allow ExprUNION to take non-nodeset (eg, $var) arguments
258
259 2003-07-24  Piers Haken <piersh@friskit.com>
260
261         * Tokenizer.cs: fix variable references
262         * Parser.jay:
263         * Expression.cs:
264         * XPathNavigator.cs:
265                 use XmlQualifiedName
266
267 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
268
269         * XPathDocument.cs : removed Driver class and restored authors' name
270           (though it is completely rewrote).
271
272 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
273
274         * XPathDocument.cs : Replaced existing stub class with real
275           XPathDocument implementation.
276
277 2003-04-28  Piers Haken  <piersh@friskit.com>
278
279         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
280
281 2003-03-07  Piers Haken  <piersh@friskit.com>
282
283         * Tokenizer.cs: allow '.'s in NCNames
284
285 2003-03-07  Piers Haken  <piersh@friskit.com>
286
287         * Exression.cs:
288         * DefaultContext.cs:
289                 fixed function argument resolution
290
291 2003-02-09  Piers Haken  <piersh@friskit.com>
292
293         * XPathNavigator.cs:
294         * Iterator.cs:
295         * Expression.cs: fix namespace handling
296
297 2003-01-04  Piers Haken  <piersh@friskit.com>
298
299         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
300
301 2003-02-02  Piers Haken <piersh@friskit.com>
302
303         * Parser.jay: add token names
304         * Tokenizer.cs: fix NCName tokenization
305
306 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
307
308         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
309                 (It should be a temporary fix.)
310
311 2002-09-22  Nick Drochak  <ndrochak@gol.com>
312
313         * Parser.cs: Remove extraneous "using" that was stopping the build.
314
315 2002-09-21  Piers Haken <piersh@friskit.com>
316
317         * XPathException: implementation
318         * Expression.cs:
319         * Iterator.cs:
320         * Parser.jay:
321         * Tokenizer.jay:
322         * XPathNavigator.jay:
323                 use XPathException.
324
325 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
326
327         * Parser.cs: commented out non-existent namespace (it compiles fine
328         with mcs because of a bug that is already on bugzilla).
329
330 2002-09-12  Piers Haken <piersh@friskit.com>
331
332         * Tokenizer.cs: fix parsing numbers that start with '.'
333         * DefaultContext.cs: use MS-compatible formatting of doubles
334
335 2002-09-12  Piers Haken <piersh@friskit.com>
336
337         * Iterator.cs: added NullIterator to handle unspecified contexts
338         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
339         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
340
341 2002-09-12  Piers Haken <piersh@friskit.com>
342
343         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
344         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
345         * DefaultContext.cs: fix id() return type.
346
347 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
348
349         * DefaultContext.cs: fixed bug #28840.
350         * Expression.cs: added FIXME.
351
352 2002-08-17  Jason Diamond <jason@injektilo.org>
353
354         * XPathNavigator.cs: Fixed matching on patterns that look like
355         absolute XPath expressions.
356
357 2002-08-17  Jason Diamond <jason@injektilo.org>
358
359         * XPathNavigator.cs: Added naive (but working) implementation of
360          Matches.
361
362 2002-07-31  Piers Haken <piersh@friskit.com>
363
364         * XPathDocument.cs: simple, XmlDocument-based implementation
365
366 2002-07-25  Piers Haken <piersh@friskit.com>
367
368         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
369
370 2002-07-17  Piers Haken <piersh@friskit.com>
371         
372         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
373         * Parser.jay: remove redundant production
374         * Expression.cs: add switches for debugging under VS.NET
375
376 2002-07-17  Piers Haken <piersh@friskit.com>
377
378         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
379
380 2002-07-15  Piers Haken <piersh@friskit.com>
381
382         * Iterator.cs:
383                 - rename UnionIterator to MergedIterator, 
384                 - create new UnionIterator to implment uniqueness for '|' operator
385                 - fix position bug in ArrayListIterator.Clone()
386         * Expression.cs: use new UnionIterator constructor syntax
387
388 2002-07-12  Piers Haken <piersh@friskit.com>
389
390         * Iterator.cs: PredicateIterator: handle numeric predicates
391         * Parser.jay: add some debugging support: yyparseDebug
392         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
393
394 2002-06-29  Piers Haken <piersh@friskit.com>
395
396         * Expression.cs:
397                 - remove dead code
398                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
399                 - remove NodeTestTypes enum
400                 - remove NodeTestTypeAny (functionality provided by base now)
401                 - fix ExprStep to handle wildcard QNames
402         * Parser.jay:
403                 - moved to Mono.Xml.XPath namespace
404                 - use XPathResultType
405                 - handle wildcard QNames
406                 
407         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
408         
409         * XPathNavigator.cs: implement
410                 - IsDescendant
411                 - SelectAncestors
412                 - SelectDescendants
413                 - SelectChildren
414                 
415         * XPathResultType.cs: fix enum values
416         
417 2002-06-24  Jason Diamond  <jason@injektilo.org>
418
419         * XPathScanner.cs: Removed.
420
421 2002-06-24  Dick Porter <dick@ximian.com>
422
423         * XmlCaseOrder.cs: Fix namespace
424
425 2002-06-23  Piers Haken <piersh@friskit.com>
426
427         * DefaultContext.cs: implemented XPathFUnctionId
428         * Iterator.cs: new ArrayListIterator for id() support
429
430 2002-06-23  Piers Haken <piersh@friskit.com>
431
432         * XPathNavigator.cs: implement:
433                 - Compile
434                 - Evaluate
435                 - Clone
436                 - Select
437                 - ToString
438                 - some forwarding methods
439
440         * XPathNodeIterator: implement caching Count
441
442         * Tokenizer.cs: new XPath tokenizer
443         * Parser.jay: new XPath grammar
444         * Parser.cs: new precompiled XPath grammar
445         * Expression.cs: new XPath expression objects
446         * Iterator.cs: new XPath result/context objects
447         * DefaultContext.cs: new XPath function binding context
448
449 2002-05-08  Tim Coleman <tim@timcoleman.com>
450         * XPathDocument.cs:
451         * XPathException.cs: New stub files added.
452
453 2002-04-12  Duncan Mak  <duncan@ximian.com>
454
455         * XmlCaseOrder.cs: Moved to here from System.Xml.
456
457 2002-03-26  Jason Diamond  <jason@injektilo.org>
458
459         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
460         steps. Both absolution and relative abbreviated location paths.
461
462 2002-03-25  Jason Diamond  <jason@injektilo.org>
463
464         * XPathScanner.cs: Added new file. This class is supposed to be internal
465         but that would make it impossible to test.
466
467 2002-03-08  Duncan Mak  <duncan@ximian.com>
468
469         * XPathNamespaceScope.cs:
470         * XPathNodeType.cs:
471         * XPathResultType.cs:
472         * XmlDataType.cs:
473         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
474         implementation. XPathResultType is interesting as EnumCheck does
475         not show the Navigator element, but shows the String element twice.
476
477 2002-03-08  Jason Diamond  <jason@injektilo.org>
478
479         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
480
481 2002-03-06  Jason Diamond  <jason@injektilo.org>
482
483         * ChangeLog: Added to this directory.
484
485         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
486         XPathResultType.cs: New files.
487
488         * XPathNavigator.cs: Stubbed out all properties and methods.