- Dec 07, 2008
-
-
David Lichteblau authored
darcs-hash:bc27636f0f130150de1c0602c8c1c9c573a4c903
-
- May 16, 2008
-
-
David Lichteblau authored
darcs-hash:45334d1ba300293b9a7377fd0ebabaee1019e7e5
-
- Apr 27, 2008
-
-
David Lichteblau authored
darcs-hash:3d7f875f3eecb8fb54fb846ebb5a3fe8d4215cf7
-
- Mar 24, 2008
-
-
David Lichteblau authored
Use XPATH-PROTOCOL:NODE-EQUAL rather than EQ/EQL on nodes. Use HASH-KEY with an EQUAL hash table instead of nodes in an EQL hash table. This change is motivated by the DOM-NAMESPACE and STP-NAMESPACE objects, which are consed up every time they are queried, yet need to be compared later. The alternative solutions would have been - caching of those objects in DOM, which requires changes to the DOM implementation - force use of a navigator for STP and DOM (awkward) Simply allowing duplicate nodes seems easier. darcs-hash:b0ccd40b33df1274fccb89650090ff5340d9276b
-
- Mar 02, 2008
-
-
David Lichteblau authored
"oops" darcs-hash:124414697b6eca4a749814989db32489946b1315
-
- Mar 01, 2008
-
-
Ivan Shvedunov authored
Fixed xnum parsing / unparsing. Fixed comparison operators. Added lang() function. Node sets returned by EVALUATE and EVALUATE-COMPILED now are automatically sorted using document order by default. Fixed following:: axis (again). Fixed NODE-TEST-NAME for namespace nodes. Numbers in XPath expressions are now never parsed into SINGLE-FLOAT. Added SORT-NODE-SET function. darcs-hash:f11136c9917dee6bd41d96f3e8950db389c78b55
-
- Feb 28, 2008
-
-
Ivan Shvedunov authored
darcs-hash:cbeecb1a3180fb0663c8e9f9cae929339ddc16a4
-
- Feb 27, 2008
-
-
Ivan Shvedunov authored
Added atdoc documentation templates (mostly copied from Xuriella). Renamed xpath-protocol:string-value to xpath-protocol:node-text. Added xpath-protocol:node-text method for namespace nodes. Added list->node-set function (a simpler version of xpath-sys:make-node-set). darcs-hash:5157e09c5e43012d65211d1fb22d6b544a75ee54
-
- Feb 25, 2008
-
-
Ivan Shvedunov authored
Fixed :following, :preceding-sibling, :following-sibling and :namespace axes. Fixed contains() (what a shame! I made a mistake in the order of arguments). Fixed translate(). Added get-node-id() and plx:generate-id() (same as generate-id() in XSLT). Added checks for number of arguments passed to XPath functions. Fixed a package-related problem in define-xpath-function/single-type. Fixed xnum-round. darcs-hash:f3bff21d76ef40b125506213bf44f04efd054b8d
-
- Feb 24, 2008
-
-
David Lichteblau authored
darcs-hash:d40b75c09b911dc74c448e12734de19df206bb38
-
Ivan Shvedunov authored
darcs-hash:e7f4e02de3903046839aca68af5ae165e40214e9
-
Ivan Shvedunov authored
darcs-hash:bfacee78d09841b9f911b77239e7c926329b0856
-
Ivan Shvedunov authored
darcs-hash:d3828b9c30d4ea787fb181678a3db979fbd16f09
-
- Feb 20, 2008
-
-
Ivan Shvedunov authored
Switched to dynamic bindings. Fixed "names" of character-data nodes. darcs-hash:24a16eac985183f1bfd66894f0c3c94a001e5f57
-
- Feb 10, 2008
- Dec 30, 2007
-
-
Ivan Shvedunov authored
darcs-hash:9dd87a2a69312e0beb21c574842c778200709655
-
- Dec 20, 2007
-
-
david authored
Always require the second argument to COMPILE-XPATH. We cannot see lexical bindings in this function. Replaced the function EVALUATE with EVALUATE-THUNK, which always takes a closure as an argument, never a string or sexp. (EVALUATE-THUNK is just a working title for this function, perhaps a better name can be found.) New macro EVALUATE, replacing the compiler macro. Removed *LEXICAL-NAMESPACES* and *LEXICAL-VARIABLES*. - don't bind *LEXICAL-NAMESPACES* in WITH-NAMESPACES - don't bind *LEXICAL-VARIABLES* in WITH-VARIABLES Export EVALUATE-THUNK from the package in addition to EVALUATE. Added a test checking that the empty namespace can be used without having to use WITH-NAMESPACES. Removed the call to STRING in TEST-FILTERING. (fixme?) darcs-hash:55b42a4c50757f63616b05dccca0cac08aa84fb4
-
- Dec 08, 2007
-
-
david authored
Helper function of the same name to signal this error. Exported XPATH-ERROR. Added another workaround for the non-error condition that parse-number signals. darcs-hash:868c30fb0b1fd42c9c394405fac7c9cacab3a832
-
- Dec 05, 2007
-
-
david authored
darcs-hash:e0b618d6ff8d77af1719d04706d32b61baa72dc1
-
- Dec 04, 2007
-
-
Ivan Shvedunov authored
darcs-hash:ed5d82a8ecee6fa2ff9f226148004c797a858445
-
Ivan Shvedunov authored
Fixed: map-node-set do-node-set Added node set iterators: make-node-set-iterator node-set-iterator-end-p node-set-iterator-next node-set-iterator-current Exported: node-set-p Added test for empty node sets: node-set-empty-p darcs-hash:9e84b4035564a382ee3af2e16316bd1bb8854ab8
-
- Dec 02, 2007
-
-
david authored
... allow both NIL and "" for the empty prefix. ... normalize to NIL darcs-hash:819b651322611ac596ef0d803fa0e652cd79384e
-
david authored
Reverted CONTEXT-VARIABLE-VALUE. Renamed ENVIRONMENT-VALIDATE-VARIABLE to ENVIRONMENT-FIND-VARIABLE, which now returns a closure rather than just a boolean. New exported macro WITH-VARIABLES for the LEXICAL-ENVIRONMENT. (And tests for that.) darcs-hash:4bf3773ca6bd46e449833192b823a08f248a9175
-
- Dec 01, 2007
-
-
Ivan Shvedunov authored
Moved XPath parser to parser.lisp. Moved some of toplevel API to api.lisp. Added MAP-NODE-SET and DO-NODE-SET. Added proper unary minus handling. Added test cases for string representation of XPath in TEST-XPATH (previously TEST-XPATH/UNABBREVIATED). Made it possible to pass strings to compile-xpath. STRING-VALUE, NUMBER-VALUE, BOOLEAN-VALUE and NODE-SET-VALUE now can handle single nodes. Added XPATH-PROTOCOL:NODE-P. Compiler macro for EVALUATE now issues warning instead of error if EVALUATE is used outside lexical scope of (WITH-NAMESPACES (...) ...) Added some of missing XPath functions - substring(), true(), false(), boolean(), number() darcs-hash:973601a675f33d9ebcd85ef89b6270e702fbaa1d
-
- Nov 25, 2007
-
-
david authored
A new function EVALUATE is provided that... - automatically parses XPath strings. - also accepts sexps in the syntax (xpath (sexp-goes-here)). (The special marker XPATH in the CAR is needed to distinguish literal strings from XPath strings.) - and accepts pre-compiled closures. Users who want to use this function with a customized environment must pass precompiled closures. For the first two cases, the environment is defined lexically using the new macro WITH-NAMESPACES. The context argument to ALL-NODES can be either... - an actual context - or any other node understood by the XPath protocol, and will then be turned into a trivial context automatically A compiler macro on EVALUATE allows pre-compilation of closures at fasl load time. (Macrolet tricks propagate the information from WITH-NAMESPACES into the compiler macro. Thanks to chandler on #lisp for the tip.) darcs-hash:88c7a7985b99372e14071fb9eb8da0bc97d0b054
-
david authored
darcs-hash:2d8860ef9e911e6597859b4fa6ea89a4138523bc
-
david authored
functions.lisp - new function XPATH:UNION for the | operator (not a keyword because not technically an XPath function) lexer.lisp Lots of fixes. node-tests.lisp - NODE-TEST-NAME Added the namespace URI as an optional second argument. - NODE-TEST-NAMESPACE New, checks only the namespace and not the local name. - NODE-TEST-PROCESSING-INSTRUCTION Added the name to check as an optional argument. types.lisp - CONTEXT-VARIABLE-VALUE New generic function looking up variable values during evaluation. - ENVIRONMENT New struct, basically a compilation-time context. - ENVIRONMENT-FIND-NAMESPACE New generic function for prefix -> uri lookups - ENVIRONMENT-FIND-FUNCTION New generic function for (local-name uri) -> function lookups. - ENVIRONMENT-VALIDATE-VARIABLE New generic function that returns true if the variable is declared. - TEST-ENVIRONMENT An environment that pretends to know about every namespace, function, and variable. For use only in parser tests. xpath.lisp - MAKE-LOCATION-STEP Now accepts the list of predicates instead of just one predicate. - COMPILE-PREDICATES helper function for make-location-step - DECODE-QNAME, FIND-NAMESPACE New - COMPILE-XPATH * New second argument `environment'. * For function calls, check if the function name is a string rather than a symbol, and if so, look it up in the enviroment. * New: variables * New: filters - COMPILE-VARIABLE New - COMPILE-NODE-TEST Split qnames. And allow lists as node-tests to handle :namespace, named :processing-instruction, and pre-parsed :qname - COMPILE-LOCATION-STEP * New second argument `environment'. * Accept multiple predicates. - COMPILE-PATH New second argument `environment'. - COMPILE-FILTER-PATH New axis.lisp - new axis :namespace - new axis :following-sibling - new axis :preceding-sibling - new axis :following - new axis :preceding - new axis :ancestor-or-self and - pseudo axis :root -- FIXME: is this right? darcs-hash:828be75c0208ef166e480cfe33eb83b3ac57f285
-
david authored
darcs-hash:b96e13c8d54121d1fbfffc220ff442053e425942
-