2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultContext.cs : Avoid exception if possible.
	* Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
	  nav was positioned at the first, it incorrectly points itself.
	  Don't add names to name table while it is useless and expensive.

2004-01-08  Nick Drochak <ndrochak@ieee.org>

	* Iterator.cs: Removed unused variable.
	
2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Parser.jay : now it supresses error output from jay.
	* DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
	* Tokenizer.cs : better error message.
	* XPathDocument.cs : Use XmlValidatingReader to support id() function.
	  (just found MS.NET actually supports it)

2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : On its iteration, moving Current must not affect to
	  MoveNext(). To assure this, Current must be a clone of navigator.
	  Removed unused code.

2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Tokenizer.cs : Removed some TODOs. (trivial ;-)
	* Iterator.cs : ParensIterator can inherit from BaseIterator.
	  SlashIterator copy .ctor() always failed to clone. This fixes Count.

2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Expression.cs : XPathSorters.Compare() should compare document
	  position. See last sentence of XSLT 1.0 secion 10.

2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* DefaultContext.cs : Overrode all functions' ToString().
	  XPathFunctions.ToNumber() trims whitespaces at both side.
	  Fixed NullReferenceException in normalize-space().
	* Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
	  attribute or namespace node correctly.
	  SlashIterator.Clone() didn't clone "next node iterator" correctly.
	  EnumeratorIterator.ctor() should raise an error (not at Clone())
	  when the target IEnumerator is not ICloneable.

2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Expression.cs : namespace axis now traversed in reverse order, so it
	  requires sorting.
	* Iterator.cs : UnionIterator.Clone() was incomplete. 
	  NamespaceItarator() should be reverse order (special handling
	  because of XPathNavigator specification).

2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
	* XPathNavigator.cs : ComparePosition() didn't handle attributes 
	  correctly.

2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Parser.jay, Expression.cs, Iterator.cs :
	  Added ExprParens and ParensIterator classes which is used to handle
	  precedence of parenthesized expressions.
	  (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )

	* Expression.cs, Iterator.cs :
	  Added RequireSorting property for each Expr and BaseIterator classes.
	  SlashIterator.MoveNext() now considers correct sorting. But
	  considering performance, it separates two logics, sorted and sortless
	  depending on RequireSorting of left iterator and right expression.

	* Iterator.cs :
	  SimpleIterator.ctor() should consider when nav is null.
	  FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
	  not return any nodes.
	  AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
	  positions.
	  AncestorIterator.MoveNext() should skip Root if context node is
	  Root itself.
	  FollowingIterator.MoveNext() should not handle children of context
	  itself.
	  PrecedingIterator.MoveNext() should skip its ancestors.
	  AxisIterator.ReverseAxis should be dependent on its containing iter.
	  UnionIterator.MoveNext() should consider comparison of nodes in 
	  different document. The behavior is implementation dependent.
	  (see XSLT spec 12.1)

2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Added XPathComparer.cs
	* DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
	  iterator correctly, and sort results.

2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* DefaultContext.cs : Imcomplete fix ;-)

2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
	  XPathFunctionId.cs : Exposed Id expression.
	* Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
	  will be used to solve evaluation precedence problem).

2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : Fixed SlashIterator that might return nodes 1)in
	  inconsistent order, and 2)may return duplicate result nodes.

2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
	it inherit from the base class. This made b[2] evaluated on 
	<a /><b /><c /><a /><b /><c /> return the first b node because
	in the ChildIterator it was the second node and seemed to satsify
	the predicate.

2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : Added bool ReverseAxis property to identify whether
	  the iterator is in reverse order or not.  Added ComparablePosition
	  for correct position comparison for PredicateIterator and reverse-
	  order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
	  PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
	  return their nodes in document order. This fixes bugzilla #39079.

2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : DescendantIterator and FollowingIterator also should
	  not MoveNext() after they reached to the end.

2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Iterator.cs : Fixed UnionIterator who ignores document order.
	  Fixed SlashIterator whose MoveNext() should finish at its end.

2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
	use NameTable so we dont call strcmp.

2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>

	* DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
	not "abc".
	* Iterator.cs, Expression.cs: All axes are
	SimpleIterators. SimpleIterators are gaurenteed to give the same
	XPathNavigator in Current. Make AxisIterator take a
	SimpleIterator, not any old BaseIterator. Will allow us to make
	NameTable optimizations and avoid quite a few strcmp's.

2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Expression.cs: make // work right, must use another slash itr.

2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Expression.cs: cant use $$ before assigned.

2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.

2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Expression.cs: num != double.NaN does not work.

2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Expression.cs: in NodeTypeTest dont throw an exception if it is
	an unknown node type (allows for better Pattern debugging).

2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>

	* DefaultContext.cs: implement sum () and translate ().

2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>

	* XPathNavigator.cs: Make methods where you pass in the context,
	so that we dont have to clone expressions so much.

2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>

	* DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
	system functions are actually expressions. Will allow for some
	nice optimizations.

2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>

	* XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
	improvement in the method (5ms/call -> .7 ms / call) measured by
	monodoc's rendering of N:System.
	* Expression.cs: Utility methods to support above.

2003-08-13 Piers Haken	<piersh@friskit.com>
	
	* Iterator.cs:
		fix MergedIterator.Clone(), now clones other's iterators
		fix DescendantIterator.Clone(), now copies depth
		make iterator cloning constructors more type-specific

2003-08-01 Piers Haken	<piersh@friskit.com>

	* Expression.cs: added NodeNamespaceTest
	* XPathNavigator.cs: implement Select* with namespaces

2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Iterator.cs: Allow creation of an EnumeratorIterator with an
	XmlNamespaceManager.
	
2003-07-31 Piers Haken	<piersh@friskit.com>

	* Parser.jay:
		Nested predicates (uses ExprFilter instead)
		more type safety
		make grammar look more like w3c spec
	* Expression.cs:
		remove ExprStep, ExprPredicates
		NodeTest is now a NodeSet
		more type-safety
	* Iterator.cs:
		PredicateIterator now only takes a single predicate expression
		more type-safety
	* XPathNavigator.cs:
		simplified SelectTest
	* XPathException.cs:
		fixed indenting

2003-07-30  Duncan Mak  <duncan@ximian.com>

	* XPathException.cs
	(GetObjectData): 
	(Message): Added.

2003-07-29 Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: 'local-name' returns String, not NodeSet!

2003-07-29 Piers Haken	<piersh@friskit.com>

	* XPathNavigator.cs:
	* Expression.cs:
		add typesafe Evaluate* methods

2003-07-29 Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: fix 'substring-after'

2003-07-29 Piers Haken	<piersh@friskit.com>

	* Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)

2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>

	* Iterator.cs: dont throw exceptions on tostring ()
	
2003-07-28  Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: better handling of null argument lists
	* XPathNavigator.cs: implement ComparePosition

2003-07-28  Piers Haken	<piersh@friskit.com>

	* Expression.cs: boolean operators: handle comparing .Any better

2003-07-28  Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: count() should return a double
	* Expression.cs: better support for handling non-double numbers

2003-07-28  Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: better function param matching

2003-07-27  Piers Haken	<piersh@friskit.com>

	* Expression.cs:
	* DefaultContext.cs:
		catch FormatExceptions while parsing numbers

2003-07-27  Piers Haken	<piersh@friskit.com>

	* Expression.cs:
		fix case sorting order
		allow EvaluateNumber to take XPathResultType.Any

2003-07-27  Piers Haken	<piersh@friskit.com>

	* Expression.cs:
	* Tokenizer.cs:
		don't pass null to XmlQualifiedName constructor

2003-07-27  Piers Haken	<piersh@friskit.com>

	* DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)

2003-07-27  Piers Haken	<piersh@friskit.com>

	* Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Expression.cs: fix function evaluation with ambigous argument types
	* XPathNavigator.cs: fix silly null reference bug

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Iterator.cs:
	* DefaultContext.cs:
		ArrayListIterator->EnumeratorIterator
	* Expression.cs: add sorting support

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Tokenizer.cs:
	* Parser.jay:
		move QName parsing into tokenizer
	* Expression.cs:
		fix evaluating XPathResultType.Any
		fix ExprDiv.ToString()
		fix NodeTypeTest.ToString() (for namespace axis)

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: return clone of $var evaluation

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Iterator.cs: add setter for NamespaceManager
	* XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
	* Expression.cs: fix func/var exception strings

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: implement ExprFilter.Evaluate

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: implement ExprVariable.Evaluate

2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
	
	* DefaultContext.cs: implement lang ()

2003-07-24  Piers Haken	<piersh@friskit.com>

	* Parser.jay:
	* Expression.cs:
		allow ExprUNION to take non-nodeset (eg, $var) arguments

2003-07-24  Piers Haken	<piersh@friskit.com>

	* Tokenizer.cs: fix variable references
	* Parser.jay:
	* Expression.cs:
	* XPathNavigator.cs:
		use XmlQualifiedName

2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* XPathDocument.cs : removed Driver class and restored authors' name
	  (though it is completely rewrote).

2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* XPathDocument.cs : Replaced existing stub class with real
	  XPathDocument implementation.

2003-04-28  Piers Haken  <piersh@friskit.com>

	* Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens

2003-03-07  Piers Haken  <piersh@friskit.com>

	* Tokenizer.cs: allow '.'s in NCNames

2003-03-07  Piers Haken  <piersh@friskit.com>

	* Exression.cs:
	* DefaultContext.cs:
		fixed function argument resolution

2003-02-09  Piers Haken  <piersh@friskit.com>

	* XPathNavigator.cs:
	* Iterator.cs:
	* Expression.cs: fix namespace handling

2003-01-04  Piers Haken  <piersh@friskit.com>

	* Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)

2003-02-02  Piers Haken <piersh@friskit.com>

	* Parser.jay: add token names
	* Tokenizer.cs: fix NCName tokenization

2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Tokenizer.cs : Fixed ParseIdentifier to allow digits.
		(It should be a temporary fix.)

2002-09-22  Nick Drochak  <ndrochak@gol.com>

	* Parser.cs: Remove extraneous "using" that was stopping the build.

2002-09-21  Piers Haken <piersh@friskit.com>

	* XPathException: implementation
	* Expression.cs:
	* Iterator.cs:
	* Parser.jay:
	* Tokenizer.jay:
	* XPathNavigator.jay:
		use XPathException.

2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Parser.cs: commented out non-existent namespace (it compiles fine
	with mcs because of a bug that is already on bugzilla).

2002-09-12  Piers Haken <piersh@friskit.com>

	* Tokenizer.cs: fix parsing numbers that start with '.'
	* DefaultContext.cs: use MS-compatible formatting of doubles

2002-09-12  Piers Haken <piersh@friskit.com>

	* Iterator.cs: added NullIterator to handle unspecified contexts
	* XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
	* XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators

2002-09-12  Piers Haken <piersh@friskit.com>

	* Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
	* Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
	* DefaultContext.cs: fix id() return type.

2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* DefaultContext.cs: fixed bug #28840.
	* Expression.cs: added FIXME.

2002-08-17  Jason Diamond <jason@injektilo.org>

	* XPathNavigator.cs: Fixed matching on patterns that look like
	absolute XPath expressions.

2002-08-17  Jason Diamond <jason@injektilo.org>

	* XPathNavigator.cs: Added naive (but working) implementation of
	 Matches.

2002-07-31  Piers Haken <piersh@friskit.com>

	* XPathDocument.cs: simple, XmlDocument-based implementation

2002-07-25  Piers Haken <piersh@friskit.com>

	* DefaultContext.cs: implement XPathFunctionName 'name()' function.

2002-07-17  Piers Haken <piersh@friskit.com>
	
	* DefaultContext.cs: implement 'string-length()', 'normalize-space()'
	* Parser.jay: remove redundant production
	* Expression.cs: add switches for debugging under VS.NET

2002-07-17  Piers Haken <piersh@friskit.com>

	* Expression.cs: implement nodeset/nodeset comparisons (non-optimal)

2002-07-15  Piers Haken <piersh@friskit.com>

	* Iterator.cs:
		- rename UnionIterator to MergedIterator, 
		- create new UnionIterator to implment uniqueness for '|' operator
		- fix position bug in ArrayListIterator.Clone()
	* Expression.cs: use new UnionIterator constructor syntax

2002-07-12  Piers Haken <piersh@friskit.com>

	* Iterator.cs: PredicateIterator: handle numeric predicates
	* Parser.jay: add some debugging support: yyparseDebug
	* Tokenizer.cs: cleanup, include '-' chars in identifier tokens

2002-06-29  Piers Haken <piersh@friskit.com>

	* Expression.cs:
		- remove dead code
		- NodeTest uses XPathResultType instead of internal NodeTestTypes enum
		- remove NodeTestTypes enum
		- remove NodeTestTypeAny (functionality provided by base now)
		- fix ExprStep to handle wildcard QNames
	* Parser.jay:
		- moved to Mono.Xml.XPath namespace
		- use XPathResultType
		- handle wildcard QNames
		
	* Tokenizer.cs: moved to Mono.Xml.XPath namespace
	
	* XPathNavigator.cs: implement
		- IsDescendant
		- SelectAncestors
		- SelectDescendants
		- SelectChildren
		
	* XPathResultType.cs: fix enum values
	
2002-06-24  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Removed.

2002-06-24  Dick Porter <dick@ximian.com>

	* XmlCaseOrder.cs: Fix namespace

2002-06-23  Piers Haken <piersh@friskit.com>

	* DefaultContext.cs: implemented XPathFUnctionId
	* Iterator.cs: new ArrayListIterator for id() support

2002-06-23  Piers Haken <piersh@friskit.com>

	* XPathNavigator.cs: implement:
		- Compile
		- Evaluate
		- Clone
		- Select
		- ToString
		- some forwarding methods

	* XPathNodeIterator: implement caching Count

	* Tokenizer.cs: new XPath tokenizer
	* Parser.jay: new XPath grammar
	* Parser.cs: new precompiled XPath grammar
	* Expression.cs: new XPath expression objects
	* Iterator.cs: new XPath result/context objects
	* DefaultContext.cs: new XPath function binding context

2002-05-08  Tim Coleman <tim@timcoleman.com>
	* XPathDocument.cs:
	* XPathException.cs: New stub files added.

2002-04-12  Duncan Mak  <duncan@ximian.com>

	* XmlCaseOrder.cs: Moved to here from System.Xml.

2002-03-26  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
	steps. Both absolution and relative abbreviated location paths.

2002-03-25  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Added new file. This class is supposed to be internal
	but that would make it impossible to test.

2002-03-08  Duncan Mak  <duncan@ximian.com>

	* XPathNamespaceScope.cs:
	* XPathNodeType.cs:
	* XPathResultType.cs:
	* XmlDataType.cs:
	* XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
	implementation. XPathResultType is interesting as EnumCheck does
	not show the Navigator element, but shows the String element twice.

2002-03-08  Jason Diamond  <jason@injektilo.org>

	* XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.

2002-03-06  Jason Diamond  <jason@injektilo.org>

	* ChangeLog: Added to this directory.

	* XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
	XPathResultType.cs: New files.

	* XPathNavigator.cs: Stubbed out all properties and methods.
