1 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3 * Expression.cs : XPathSorters.Compare() should compare document
4 position. See last sentence of XSLT 1.0 secion 10.
6 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
8 * DefaultContext.cs : Overrode all functions' ToString().
9 XPathFunctions.ToNumber() trims whitespaces at both side.
10 Fixed NullReferenceException in normalize-space().
11 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
12 attribute or namespace node correctly.
13 SlashIterator.Clone() didn't clone "next node iterator" correctly.
14 EnumeratorIterator.ctor() should raise an error (not at Clone())
15 when the target IEnumerator is not ICloneable.
17 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
19 * Expression.cs : namespace axis now traversed in reverse order, so it
21 * Iterator.cs : UnionIterator.Clone() was incomplete.
22 NamespaceItarator() should be reverse order (special handling
23 because of XPathNavigator specification).
25 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
27 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
28 * XPathNavigator.cs : ComparePosition() didn't handle attributes
31 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
33 * Parser.jay, Expression.cs, Iterator.cs :
34 Added ExprParens and ParensIterator classes which is used to handle
35 precedence of parenthesized expressions.
36 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
38 * Expression.cs, Iterator.cs :
39 Added RequireSorting property for each Expr and BaseIterator classes.
40 SlashIterator.MoveNext() now considers correct sorting. But
41 considering performance, it separates two logics, sorted and sortless
42 depending on RequireSorting of left iterator and right expression.
45 SimpleIterator.ctor() should consider when nav is null.
46 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
48 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
50 AncestorIterator.MoveNext() should skip Root if context node is
52 FollowingIterator.MoveNext() should not handle children of context
54 PrecedingIterator.MoveNext() should skip its ancestors.
55 AxisIterator.ReverseAxis should be dependent on its containing iter.
56 UnionIterator.MoveNext() should consider comparison of nodes in
57 different document. The behavior is implementation dependent.
60 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
62 * Added XPathComparer.cs
63 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
64 iterator correctly, and sort results.
66 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
68 * DefaultContext.cs : Imcomplete fix ;-)
70 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
72 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
73 XPathFunctionId.cs : Exposed Id expression.
74 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
75 will be used to solve evaluation precedence problem).
77 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
79 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
80 inconsistent order, and 2)may return duplicate result nodes.
82 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
84 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
85 it inherit from the base class. This made b[2] evaluated on
86 <a /><b /><c /><a /><b /><c /> return the first b node because
87 in the ChildIterator it was the second node and seemed to satsify
90 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
92 * Iterator.cs : Added bool ReverseAxis property to identify whether
93 the iterator is in reverse order or not. Added ComparablePosition
94 for correct position comparison for PredicateIterator and reverse-
95 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
96 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
97 return their nodes in document order. This fixes bugzilla #39079.
99 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
101 * Iterator.cs : DescendantIterator and FollowingIterator also should
102 not MoveNext() after they reached to the end.
104 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
106 * Iterator.cs : Fixed UnionIterator who ignores document order.
107 Fixed SlashIterator whose MoveNext() should finish at its end.
109 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
111 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
112 use NameTable so we dont call strcmp.
114 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
116 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
118 * Iterator.cs, Expression.cs: All axes are
119 SimpleIterators. SimpleIterators are gaurenteed to give the same
120 XPathNavigator in Current. Make AxisIterator take a
121 SimpleIterator, not any old BaseIterator. Will allow us to make
122 NameTable optimizations and avoid quite a few strcmp's.
124 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
126 * Expression.cs: make // work right, must use another slash itr.
128 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
130 * Expression.cs: cant use $$ before assigned.
132 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
134 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
136 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
138 * Expression.cs: num != double.NaN does not work.
140 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
142 * Expression.cs: in NodeTypeTest dont throw an exception if it is
143 an unknown node type (allows for better Pattern debugging).
145 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
147 * DefaultContext.cs: implement sum () and translate ().
149 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
151 * XPathNavigator.cs: Make methods where you pass in the context,
152 so that we dont have to clone expressions so much.
154 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
156 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
157 system functions are actually expressions. Will allow for some
160 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
162 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
163 improvement in the method (5ms/call -> .7 ms / call) measured by
164 monodoc's rendering of N:System.
165 * Expression.cs: Utility methods to support above.
167 2003-08-13 Piers Haken <piersh@friskit.com>
170 fix MergedIterator.Clone(), now clones other's iterators
171 fix DescendantIterator.Clone(), now copies depth
172 make iterator cloning constructors more type-specific
174 2003-08-01 Piers Haken <piersh@friskit.com>
176 * Expression.cs: added NodeNamespaceTest
177 * XPathNavigator.cs: implement Select* with namespaces
179 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
181 * Iterator.cs: Allow creation of an EnumeratorIterator with an
184 2003-07-31 Piers Haken <piersh@friskit.com>
187 Nested predicates (uses ExprFilter instead)
189 make grammar look more like w3c spec
191 remove ExprStep, ExprPredicates
192 NodeTest is now a NodeSet
195 PredicateIterator now only takes a single predicate expression
198 simplified SelectTest
202 2003-07-30 Duncan Mak <duncan@ximian.com>
208 2003-07-29 Piers Haken <piersh@friskit.com>
210 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
212 2003-07-29 Piers Haken <piersh@friskit.com>
216 add typesafe Evaluate* methods
218 2003-07-29 Piers Haken <piersh@friskit.com>
220 * DefaultContext.cs: fix 'substring-after'
222 2003-07-29 Piers Haken <piersh@friskit.com>
224 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
226 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
228 * Iterator.cs: dont throw exceptions on tostring ()
230 2003-07-28 Piers Haken <piersh@friskit.com>
232 * DefaultContext.cs: better handling of null argument lists
233 * XPathNavigator.cs: implement ComparePosition
235 2003-07-28 Piers Haken <piersh@friskit.com>
237 * Expression.cs: boolean operators: handle comparing .Any better
239 2003-07-28 Piers Haken <piersh@friskit.com>
241 * DefaultContext.cs: count() should return a double
242 * Expression.cs: better support for handling non-double numbers
244 2003-07-28 Piers Haken <piersh@friskit.com>
246 * DefaultContext.cs: better function param matching
248 2003-07-27 Piers Haken <piersh@friskit.com>
252 catch FormatExceptions while parsing numbers
254 2003-07-27 Piers Haken <piersh@friskit.com>
257 fix case sorting order
258 allow EvaluateNumber to take XPathResultType.Any
260 2003-07-27 Piers Haken <piersh@friskit.com>
264 don't pass null to XmlQualifiedName constructor
266 2003-07-27 Piers Haken <piersh@friskit.com>
268 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
270 2003-07-27 Piers Haken <piersh@friskit.com>
272 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
274 2003-07-26 Piers Haken <piersh@friskit.com>
276 * Expression.cs: fix function evaluation with ambigous argument types
277 * XPathNavigator.cs: fix silly null reference bug
279 2003-07-26 Piers Haken <piersh@friskit.com>
283 ArrayListIterator->EnumeratorIterator
284 * Expression.cs: add sorting support
286 2003-07-26 Piers Haken <piersh@friskit.com>
290 move QName parsing into tokenizer
292 fix evaluating XPathResultType.Any
293 fix ExprDiv.ToString()
294 fix NodeTypeTest.ToString() (for namespace axis)
296 2003-07-25 Piers Haken <piersh@friskit.com>
298 * Expression.cs: return clone of $var evaluation
300 2003-07-26 Piers Haken <piersh@friskit.com>
302 * Iterator.cs: add setter for NamespaceManager
303 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
304 * Expression.cs: fix func/var exception strings
306 2003-07-25 Piers Haken <piersh@friskit.com>
308 * Expression.cs: implement ExprFilter.Evaluate
310 2003-07-25 Piers Haken <piersh@friskit.com>
312 * Expression.cs: implement ExprVariable.Evaluate
314 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
316 * DefaultContext.cs: implement lang ()
318 2003-07-24 Piers Haken <piersh@friskit.com>
322 allow ExprUNION to take non-nodeset (eg, $var) arguments
324 2003-07-24 Piers Haken <piersh@friskit.com>
326 * Tokenizer.cs: fix variable references
332 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
334 * XPathDocument.cs : removed Driver class and restored authors' name
335 (though it is completely rewrote).
337 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
339 * XPathDocument.cs : Replaced existing stub class with real
340 XPathDocument implementation.
342 2003-04-28 Piers Haken <piersh@friskit.com>
344 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
346 2003-03-07 Piers Haken <piersh@friskit.com>
348 * Tokenizer.cs: allow '.'s in NCNames
350 2003-03-07 Piers Haken <piersh@friskit.com>
354 fixed function argument resolution
356 2003-02-09 Piers Haken <piersh@friskit.com>
360 * Expression.cs: fix namespace handling
362 2003-01-04 Piers Haken <piersh@friskit.com>
364 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
366 2003-02-02 Piers Haken <piersh@friskit.com>
368 * Parser.jay: add token names
369 * Tokenizer.cs: fix NCName tokenization
371 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
373 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
374 (It should be a temporary fix.)
376 2002-09-22 Nick Drochak <ndrochak@gol.com>
378 * Parser.cs: Remove extraneous "using" that was stopping the build.
380 2002-09-21 Piers Haken <piersh@friskit.com>
382 * XPathException: implementation
387 * XPathNavigator.jay:
390 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
392 * Parser.cs: commented out non-existent namespace (it compiles fine
393 with mcs because of a bug that is already on bugzilla).
395 2002-09-12 Piers Haken <piersh@friskit.com>
397 * Tokenizer.cs: fix parsing numbers that start with '.'
398 * DefaultContext.cs: use MS-compatible formatting of doubles
400 2002-09-12 Piers Haken <piersh@friskit.com>
402 * Iterator.cs: added NullIterator to handle unspecified contexts
403 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
404 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
406 2002-09-12 Piers Haken <piersh@friskit.com>
408 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
409 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
410 * DefaultContext.cs: fix id() return type.
412 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
414 * DefaultContext.cs: fixed bug #28840.
415 * Expression.cs: added FIXME.
417 2002-08-17 Jason Diamond <jason@injektilo.org>
419 * XPathNavigator.cs: Fixed matching on patterns that look like
420 absolute XPath expressions.
422 2002-08-17 Jason Diamond <jason@injektilo.org>
424 * XPathNavigator.cs: Added naive (but working) implementation of
427 2002-07-31 Piers Haken <piersh@friskit.com>
429 * XPathDocument.cs: simple, XmlDocument-based implementation
431 2002-07-25 Piers Haken <piersh@friskit.com>
433 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
435 2002-07-17 Piers Haken <piersh@friskit.com>
437 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
438 * Parser.jay: remove redundant production
439 * Expression.cs: add switches for debugging under VS.NET
441 2002-07-17 Piers Haken <piersh@friskit.com>
443 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
445 2002-07-15 Piers Haken <piersh@friskit.com>
448 - rename UnionIterator to MergedIterator,
449 - create new UnionIterator to implment uniqueness for '|' operator
450 - fix position bug in ArrayListIterator.Clone()
451 * Expression.cs: use new UnionIterator constructor syntax
453 2002-07-12 Piers Haken <piersh@friskit.com>
455 * Iterator.cs: PredicateIterator: handle numeric predicates
456 * Parser.jay: add some debugging support: yyparseDebug
457 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
459 2002-06-29 Piers Haken <piersh@friskit.com>
463 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
464 - remove NodeTestTypes enum
465 - remove NodeTestTypeAny (functionality provided by base now)
466 - fix ExprStep to handle wildcard QNames
468 - moved to Mono.Xml.XPath namespace
469 - use XPathResultType
470 - handle wildcard QNames
472 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
474 * XPathNavigator.cs: implement
480 * XPathResultType.cs: fix enum values
482 2002-06-24 Jason Diamond <jason@injektilo.org>
484 * XPathScanner.cs: Removed.
486 2002-06-24 Dick Porter <dick@ximian.com>
488 * XmlCaseOrder.cs: Fix namespace
490 2002-06-23 Piers Haken <piersh@friskit.com>
492 * DefaultContext.cs: implemented XPathFUnctionId
493 * Iterator.cs: new ArrayListIterator for id() support
495 2002-06-23 Piers Haken <piersh@friskit.com>
497 * XPathNavigator.cs: implement:
503 - some forwarding methods
505 * XPathNodeIterator: implement caching Count
507 * Tokenizer.cs: new XPath tokenizer
508 * Parser.jay: new XPath grammar
509 * Parser.cs: new precompiled XPath grammar
510 * Expression.cs: new XPath expression objects
511 * Iterator.cs: new XPath result/context objects
512 * DefaultContext.cs: new XPath function binding context
514 2002-05-08 Tim Coleman <tim@timcoleman.com>
516 * XPathException.cs: New stub files added.
518 2002-04-12 Duncan Mak <duncan@ximian.com>
520 * XmlCaseOrder.cs: Moved to here from System.Xml.
522 2002-03-26 Jason Diamond <jason@injektilo.org>
524 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
525 steps. Both absolution and relative abbreviated location paths.
527 2002-03-25 Jason Diamond <jason@injektilo.org>
529 * XPathScanner.cs: Added new file. This class is supposed to be internal
530 but that would make it impossible to test.
532 2002-03-08 Duncan Mak <duncan@ximian.com>
534 * XPathNamespaceScope.cs:
536 * XPathResultType.cs:
538 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
539 implementation. XPathResultType is interesting as EnumCheck does
540 not show the Navigator element, but shows the String element twice.
542 2002-03-08 Jason Diamond <jason@injektilo.org>
544 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
546 2002-03-06 Jason Diamond <jason@injektilo.org>
548 * ChangeLog: Added to this directory.
550 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
551 XPathResultType.cs: New files.
553 * XPathNavigator.cs: Stubbed out all properties and methods.