2004-06-18 Atsushi Enomoto * DefaultContext.cs : Globalization. * Iterator.cs : In SlashIterator.MoveNext() position might keep 0 in case of empty list. Thus extraneous iteration might happened. Removed unused (and clone unsafe) EnumeratorIterator. 2004-06-06 Atsushi Enomoto * XPathDocument.s : The previous patch is still incomplete to close. 2004-06-05 Atsushi Enomoto * XPathDocument.cs : close self-opened XmlTextReader in .ctor(). 2004-06-03 Atsushi Enomoto * Expression.cs : LookupNamespace() only allows already-atomized names. * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and set_InnerXml(). 2004-05-22 Atsushi Enomoto * DefaultContext.cs : Add XPathNavigator input support for ToBoolean() and ToNavigator(). * Expression.cs : In Equality comparison, evaluate XPathNavigator in the same as well as NodeSet. This fixes bug #59134. 2004-05-22 Atsushi Enomoto * XPathAtomicValue.cs : missed NET_2_0. 2004-05-22 Atsushi Enomoto * IXPathChangeNavigable.cs, IXPathEditable.cs, NodeChangedEventArgs.cs, NodeChangedEventHandler.cs, XPathAtomicValue.cs, XPathChangeNavigator.cs, XPathDocumentNodeChangedAction.cs, XPathEditableNavigator.cs, XPathItem.cs, XmlChangeFilters.cs, XmlNodeChangeType.cs : added NET_2_0 classes. * XPathDocument.cs, XPathNavigator.cs : updated NET_2_0 members. 2004-05-20 Atsushi Enomoto * Expression.cs : We should not catch all kind of exception. Just throwing any kind of exception would be preferable. Added support for XPathNavigator values. 2004-05-13 Atsushi Enomoto * DefaultContext.cs : Removed MonoTODO. done. * Expression.cs : handle XPathResultType.Navigator in some places and removed MonoTODO. Mark MonoTODO with explicit comments (though they are mostly pointing out possibilities of optimization). Removed extra check that depended on the old bugs. * XPathResultType.cs : Fixed .Navigator that had the same value as .String. 2004-05-12 Atsushi Enomoto * Parser.jay : made class internal. 2004-03-16 Atsushi Enomoto * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the result of MoveToParent() should be checked. 2004-02-17 Atsushi Enomoto * XPathNavigator.cs : Only child and attribute axes are allowed for Matches(). * Expression.cs : Added IsPositional property. * DefaultContext.cs : Added some overrides. 2004-02-16 Atsushi Enomoto * XPathNavigator.cs : no, its still not ok. comment out now. 2004-02-16 Atsushi Enomoto * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching to reduce extraneous Matches() trial. * Iterator.cs : Removed unused MergedIterator. * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors unnecessarily. (Test with NeedAbsoluteMatching). 2004-02-10 Atsushi Enomoto * Iterator.cs : Added overriden Count properties for some iterators (this fixes the half of #50678). Added ListIterator class (which can reduce GetEnumerator()). In some places we can omit clone for Current property, so added some check logic (It has no effect as yet). * Expression.cs, DefaultContext.cs : use ListIterator instead of EnumeratorIterator. 2004-02-08 Atsushi Enomoto * DefaultContext.cs, Expression.cs, Iterator.cs : tiny foreach elimination. 2004-02-05 Atsushi Enomoto * DefaultContext.cs : trivial processing order fix. 2004-01-27 Atsushi Enomoto * 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 * Iterator.cs: Removed unused variable. 2003-12-18 Atsushi Enomoto * 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 * 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 * 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 * Expression.cs : XPathSorters.Compare() should compare document position. See last sentence of XSLT 1.0 secion 10. 2003-12-03 Atsushi Enomoto * 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 * 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 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root. * XPathNavigator.cs : ComparePosition() didn't handle attributes correctly. 2003-11-24 Atsushi Enomoto * 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 * Added XPathComparer.cs * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base iterator correctly, and sort results. 2003-11-19 Atsushi Enomoto * DefaultContext.cs : Imcomplete fix ;-) 2003-11-19 Atsushi Enomoto * 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 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in inconsistent order, and 2)may return duplicate result nodes. 2003-11-06 Ben Maurer * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let it inherit from the base class. This made b[2] evaluated on 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 * 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 * Iterator.cs : DescendantIterator and FollowingIterator also should not MoveNext() after they reached to the end. 2003-10-13 Atsushi Enomoto * Iterator.cs : Fixed UnionIterator who ignores document order. Fixed SlashIterator whose MoveNext() should finish at its end. 2003-09-27 Ben Maurer * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator use NameTable so we dont call strcmp. 2003-09-27 Ben Maurer * 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 * Expression.cs: make // work right, must use another slash itr. 2003-09-21 Ben Maurer * Expression.cs: cant use $$ before assigned. 2003-09-21 Ben Maurer * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification. 2003-09-20 Ben Maurer * Expression.cs: num != double.NaN does not work. 2003-09-19 Ben Maurer * 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 * DefaultContext.cs: implement sum () and translate (). 2003-09-13 Ben Maurer * 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 * 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 * 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 * 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 * Expression.cs: added NodeNamespaceTest * XPathNavigator.cs: implement Select* with namespaces 2003-07-31 Ben Maurer * Iterator.cs: Allow creation of an EnumeratorIterator with an XmlNamespaceManager. 2003-07-31 Piers Haken * 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 * XPathException.cs (GetObjectData): (Message): Added. 2003-07-29 Piers Haken * DefaultContext.cs: 'local-name' returns String, not NodeSet! 2003-07-29 Piers Haken * XPathNavigator.cs: * Expression.cs: add typesafe Evaluate* methods 2003-07-29 Piers Haken * DefaultContext.cs: fix 'substring-after' 2003-07-29 Piers Haken * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing) 2003-07-29 Ben Maurer * Iterator.cs: dont throw exceptions on tostring () 2003-07-28 Piers Haken * DefaultContext.cs: better handling of null argument lists * XPathNavigator.cs: implement ComparePosition 2003-07-28 Piers Haken * Expression.cs: boolean operators: handle comparing .Any better 2003-07-28 Piers Haken * DefaultContext.cs: count() should return a double * Expression.cs: better support for handling non-double numbers 2003-07-28 Piers Haken * DefaultContext.cs: better function param matching 2003-07-27 Piers Haken * Expression.cs: * DefaultContext.cs: catch FormatExceptions while parsing numbers 2003-07-27 Piers Haken * Expression.cs: fix case sorting order allow EvaluateNumber to take XPathResultType.Any 2003-07-27 Piers Haken * Expression.cs: * Tokenizer.cs: don't pass null to XmlQualifiedName constructor 2003-07-27 Piers Haken * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?) 2003-07-27 Piers Haken * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any 2003-07-26 Piers Haken * Expression.cs: fix function evaluation with ambigous argument types * XPathNavigator.cs: fix silly null reference bug 2003-07-26 Piers Haken * Iterator.cs: * DefaultContext.cs: ArrayListIterator->EnumeratorIterator * Expression.cs: add sorting support 2003-07-26 Piers Haken * 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 * Expression.cs: return clone of $var evaluation 2003-07-26 Piers Haken * 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 * Expression.cs: implement ExprFilter.Evaluate 2003-07-25 Piers Haken * Expression.cs: implement ExprVariable.Evaluate 2003-07-24 Ben Maurer * DefaultContext.cs: implement lang () 2003-07-24 Piers Haken * Parser.jay: * Expression.cs: allow ExprUNION to take non-nodeset (eg, $var) arguments 2003-07-24 Piers Haken * Tokenizer.cs: fix variable references * Parser.jay: * Expression.cs: * XPathNavigator.cs: use XmlQualifiedName 2003-06-30 Atsushi Enomoto * XPathDocument.cs : removed Driver class and restored authors' name (though it is completely rewrote). 2003-06-30 Atsushi Enomoto * XPathDocument.cs : Replaced existing stub class with real XPathDocument implementation. 2003-04-28 Piers Haken * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens 2003-03-07 Piers Haken * Tokenizer.cs: allow '.'s in NCNames 2003-03-07 Piers Haken * Exression.cs: * DefaultContext.cs: fixed function argument resolution 2003-02-09 Piers Haken * XPathNavigator.cs: * Iterator.cs: * Expression.cs: fix namespace handling 2003-01-04 Piers Haken * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-) 2003-02-02 Piers Haken * Parser.jay: add token names * Tokenizer.cs: fix NCName tokenization 2003-01-02 Atsushi Enomoto * Tokenizer.cs : Fixed ParseIdentifier to allow digits. (It should be a temporary fix.) 2002-09-22 Nick Drochak * Parser.cs: Remove extraneous "using" that was stopping the build. 2002-09-21 Piers Haken * XPathException: implementation * Expression.cs: * Iterator.cs: * Parser.jay: * Tokenizer.jay: * XPathNavigator.jay: use XPathException. 2002-09-13 Gonzalo Paniagua Javier * 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 * Tokenizer.cs: fix parsing numbers that start with '.' * DefaultContext.cs: use MS-compatible formatting of doubles 2002-09-12 Piers Haken * 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 * 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 * DefaultContext.cs: fixed bug #28840. * Expression.cs: added FIXME. 2002-08-17 Jason Diamond * XPathNavigator.cs: Fixed matching on patterns that look like absolute XPath expressions. 2002-08-17 Jason Diamond * XPathNavigator.cs: Added naive (but working) implementation of Matches. 2002-07-31 Piers Haken * XPathDocument.cs: simple, XmlDocument-based implementation 2002-07-25 Piers Haken * DefaultContext.cs: implement XPathFunctionName 'name()' function. 2002-07-17 Piers Haken * 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 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal) 2002-07-15 Piers Haken * 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 * 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 * 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 * XPathScanner.cs: Removed. 2002-06-24 Dick Porter * XmlCaseOrder.cs: Fix namespace 2002-06-23 Piers Haken * DefaultContext.cs: implemented XPathFUnctionId * Iterator.cs: new ArrayListIterator for id() support 2002-06-23 Piers Haken * 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 * XPathDocument.cs: * XPathException.cs: New stub files added. 2002-04-12 Duncan Mak * XmlCaseOrder.cs: Moved to here from System.Xml. 2002-03-26 Jason Diamond * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated steps. Both absolution and relative abbreviated location paths. 2002-03-25 Jason Diamond * 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 * 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 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files. 2002-03-06 Jason Diamond * ChangeLog: Added to this directory. * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs, XPathResultType.cs: New files. * XPathNavigator.cs: Stubbed out all properties and methods.