<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/fpc.git/packages/fcl-xml/src/xpath.pp, branch avr</title>
<subtitle>svn.freepascal.org: svn/fpc
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/'/>
<entry>
<title>XPath: now when predicate filtering is no longer dependent on axis, it becomes possible to use the same code for TStep and TXPathFilterNode. Inherited TStep from TXPathFilterNode, removed duplicating code.</title>
<updated>2010-07-28T15:25:19+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-28T15:25:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=f81be6dec7062b7f65bf0dca5ac00af184f13c8c'/>
<id>f81be6dec7062b7f65bf0dca5ac00af184f13c8c</id>
<content type='text'>
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15654 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15654 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>XPath: reworked step processing:</title>
<updated>2010-07-28T14:25:08+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-28T14:25:08+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=b3db69d4b16984e12c8894bd347e5d5e56ece446'/>
<id>b3db69d4b16984e12c8894bd347e5d5e56ece446</id>
<content type='text'>
* For ancestor and ancestor-or-self axes, added checks for attribute nodes similar to parent axis.
* For reverse axes, collect and filter nodes in 'natural' (i.e. reversed) order, and only then reverse order while adding to result node set. This is much simpler to implement.
* Fixed memory leak (not destroying TXPathFilterNode.FExpr)


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15652 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* For ancestor and ancestor-or-self axes, added checks for attribute nodes similar to parent axis.
* For reverse axes, collect and filter nodes in 'natural' (i.e. reversed) order, and only then reverse order while adding to result node set. This is much simpler to implement.
* Fixed memory leak (not destroying TXPathFilterNode.FExpr)


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15652 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>* XPath, change parsing of function call so that function arguments are parsed before creating the function node. This way function nodes can validate their arguments at creation time.</title>
<updated>2010-07-26T19:30:26+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-26T19:30:26+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=906df56fbab07fbb26b245f66cff1c5a348a7652'/>
<id>906df56fbab07fbb26b245f66cff1c5a348a7652</id>
<content type='text'>
* also changed function argument container type from TFPList to dynamic array.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15641 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* also changed function argument container type from TFPList to dynamic array.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15641 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>* XPath, fixed parsing of 'prefix:*' node tests:</title>
<updated>2010-07-26T16:35:35+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-26T16:35:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=05b0d84c260ffa1d4058b7253b19361b1551cf65'/>
<id>05b0d84c260ffa1d4058b7253b19361b1551cf65</id>
<content type='text'>
  o The prefix to resolve should not include following ':*' characters
  o NextToken changes CurTokenString, so NextToken must be after reading CurTokenString.
  o Added a test for that
* XPath test suite, fixed comparison of numeric result (it is quite tricky in presence of NaNs).


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15639 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  o The prefix to resolve should not include following ':*' characters
  o NextToken changes CurTokenString, so NextToken must be after reading CurTokenString.
  o Added a test for that
* XPath test suite, fixed comparison of numeric result (it is quite tricky in presence of NaNs).


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15639 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>XPath, use a perfect hash to recognize all possible keywords.</title>
<updated>2010-07-26T13:49:46+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-26T13:49:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=0582030ef239427f8c56605b1bdd8952e7831b13'/>
<id>0582030ef239427f8c56605b1bdd8952e7831b13</id>
<content type='text'>
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15638 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15638 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>XPath improvements:</title>
<updated>2010-07-24T23:15:35+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-24T23:15:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=e4e264b6d0e32197c9de1c2e03b9ad922b358b53'/>
<id>e4e264b6d0e32197c9de1c2e03b9ad922b358b53</id>
<content type='text'>
- Deleted TXPathLocationPathNode, it was too much overhead to store a single bit of information. The path root (if any) is now represented by TStep node with Axis=axisRoot.
* Changed TStep linkage from 'right' to 'left', this is consistent with the way of parsing  expressions and considerably simplifies evaluation.
* Fixed ParsePathExpr procedure so it no longer accepts empty/truncated expressions.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15632 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Deleted TXPathLocationPathNode, it was too much overhead to store a single bit of information. The path root (if any) is now represented by TStep node with Axis=axisRoot.
* Changed TStep linkage from 'right' to 'left', this is consistent with the way of parsing  expressions and considerably simplifies evaluation.
* Fixed ParsePathExpr procedure so it no longer accepts empty/truncated expressions.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15632 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>* TXPathScanner.ParseStep split into two functions in order to reduce complexity and improve readability.</title>
<updated>2010-07-24T03:21:40+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-07-24T03:21:40+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=84d0af27de904f62ac851aed7e3f9a7f73c2d387'/>
<id>84d0af27de904f62ac851aed7e3f9a7f73c2d387</id>
<content type='text'>
* Also modified it so the data is accumulated in local vars, and resulting TStep objects are created only after the parsing is successfully complete.
* TXPathScanner.ParsePrimaryExpr: eliminated variable.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15628 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Also modified it so the data is accumulated in local vars, and resulting TStep objects are created only after the parsing is successfully complete.
* TXPathScanner.ParsePrimaryExpr: eliminated variable.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15628 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>* XPath, fixed parent axis of attribute nodes: it must consist of the owner element of an attribute.</title>
<updated>2010-06-14T21:15:53+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-06-14T21:15:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=9f9dfc1fbe87903ed6609784b761db22e6e1e57b'/>
<id>9f9dfc1fbe87903ed6609784b761db22e6e1e57b</id>
<content type='text'>
+ Tests


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15439 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ Tests


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15439 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>* Fixed XPath functions name() and local-name(), which should behave different from DOM properties of the same names. name() is empty for text, comment and document nodes. local-name() is the same as name() for non-prefixed attributes and processing instructions.</title>
<updated>2010-06-14T17:21:35+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2010-06-14T17:21:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=da1f4e141b93466b6ad65beb80d061f7f5b1e5ed'/>
<id>da1f4e141b93466b6ad65beb80d061f7f5b1e5ed</id>
<content type='text'>
+ Another dozen of tests.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15438 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ Another dozen of tests.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15438 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
<entry>
<title>xpath.pp:</title>
<updated>2009-10-20T22:13:13+00:00</updated>
<author>
<name>sergei</name>
<email>sergei@3ad0048d-3df7-0310-abae-a5850022a9f2</email>
</author>
<published>2009-10-20T22:13:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/fpc.git/commit/?id=b7949e64215257f3fb6b64e7f83161423d492ca5'/>
<id>b7949e64215257f3fb6b64e7f83161423d492ca5</id>
<content type='text'>
* text() selector matches text and CDATA nodes, but not comments
* Names of processing instructions are now matched as they should.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@13915 3ad0048d-3df7-0310-abae-a5850022a9f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* text() selector matches text and CDATA nodes, but not comments
* Names of processing instructions are now matched as they should.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@13915 3ad0048d-3df7-0310-abae-a5850022a9f2
</pre>
</div>
</content>
</entry>
</feed>
