summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2019-07-05 12:33:35 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2019-07-05 12:36:41 +0200
commitec982546941b59fdd14e0b08f023baf2e75d71a3 (patch)
tree2266d9f34e7b8370f13d4a1249a46b08881c8b36 /gnu
parent57f815cb6b74dca7e69d44af0f2df819af889359 (diff)
downloadguix-ec982546941b59fdd14e0b08f023baf2e75d71a3.tar.gz
gnu: Add sbcl-cl-xmlspam.
* gnu/packages/lisp.scm (sbcl-cl-xmlspam): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/lisp.scm29
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 3aa2429595..64e5a16939 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6579,3 +6579,32 @@ This system contains the CFFI foreign slot access extension.")))
     (description "Trivia is a pattern matching compiler that is compatible
 with Optima, another pattern matching library for Common Lisp.  It is meant to
 be faster and more extensible than Optima.")))
+
+(define-public sbcl-cl-xmlspam
+  (package
+    (name "sbcl-cl-xmlspam")
+    (build-system asdf-build-system/sbcl)
+    (version "0.0.0")
+    (home-page "https://common-lisp.net/project/cl-xmlspam/")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "http://common-lisp.net/project/cl-xmlspam/cl-xmlspam.tgz")
+       (file-name (string-append name "-" version))
+       (sha256
+        (base32
+         "0r0pjh1yjcj2izxlbd3f3bwfwxllhag56wz8ijdl6442pf3gdazh"))))
+    (inputs
+     `(("cxml" ,sbcl-cxml)
+       ("cl-ppcre" ,sbcl-cl-ppcre)))
+    (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
+    (description "CXML does an excellent job at parsing XML elements, but what
+do you do when you have a XML file that's larger than you want to fit in
+memory, and you want to extract some information from it?  Writing code to deal
+with SAX events, or even using Klacks, quickly becomes tedious.
+@code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
+to write code that mirrors the structure of the XML that it's parsing.  It
+also makes it easy to shift paradigms when necessary - the usual Lisp control
+constructs can be used interchangeably with pattern matching, and the full
+power of CXML is available when necessary.")
+    (license #f)))