diff options
author | Vincent Ambo <mail@tazj.in> | 2021-12-15T21·51+0300 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-12-15T22·09+0000 |
commit | db742c2035f9cfcf496b4a9b1640d1cf623a2c0f (patch) | |
tree | a9bcaf6632d910ae68185319cc5bcd408667a8d9 /third_party/lisp/s-xml/examples | |
parent | 75ca24c60a57ab894da4d404755b8b4094284ad8 (diff) |
chore(3p/lisp): use nixpkgs sources for s-xml r/3258
this one was a little more difficult because it needs a patch, there's something wonky with the definition order fwiw, the upstream cvs repository ... server errors. Change-Id: I2d99359edec36b578389f1be1fcf077743c29c4e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4342 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'third_party/lisp/s-xml/examples')
-rw-r--r-- | third_party/lisp/s-xml/examples/counter.lisp | 47 | ||||
-rw-r--r-- | third_party/lisp/s-xml/examples/echo.lisp | 64 | ||||
-rw-r--r-- | third_party/lisp/s-xml/examples/remove-markup.lisp | 21 | ||||
-rw-r--r-- | third_party/lisp/s-xml/examples/tracer.lisp | 57 |
4 files changed, 0 insertions, 189 deletions
diff --git a/third_party/lisp/s-xml/examples/counter.lisp b/third_party/lisp/s-xml/examples/counter.lisp deleted file mode 100644 index b26453e6ea66..000000000000 --- a/third_party/lisp/s-xml/examples/counter.lisp +++ /dev/null @@ -1,47 +0,0 @@ -;;;; -*- mode: lisp -*- -;;;; -;;;; $Id: counter.lisp,v 1.2 2004/06/11 11:14:43 scaekenberghe Exp $ -;;;; -;;;; A simple SSAX counter example that can be used as a performance test -;;;; -;;;; Copyright (C) 2004 Sven Van Caekenberghe, Beta Nine BVBA. -;;;; -;;;; You are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser General Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. - -(in-package :s-xml) - -(defclass count-xml-seed () - ((elements :initform 0) - (attributes :initform 0) - (characters :initform 0))) - -(defun count-xml-new-element-hook (name attributes seed) - (declare (ignore name)) - (incf (slot-value seed 'elements)) - (incf (slot-value seed 'attributes) (length attributes)) - seed) - -(defun count-xml-text-hook (string seed) - (incf (slot-value seed 'characters) (length string)) - seed) - -(defun count-xml (in) - "Parse a toplevel XML element from stream in, counting elements, attributes and characters" - (start-parse-xml in - (make-instance 'xml-parser-state - :seed (make-instance 'count-xml-seed) - :new-element-hook #'count-xml-new-element-hook - :text-hook #'count-xml-text-hook))) - -(defun count-xml-file (pathname) - "Parse XMl from the file at pathname, counting elements, attributes and characters" - (with-open-file (in pathname) - (let ((result (count-xml in))) - (with-slots (elements attributes characters) result - (format t - "~a contains ~d XML elements, ~d attributes and ~d characters.~%" - pathname elements attributes characters))))) - -;;;; eof diff --git a/third_party/lisp/s-xml/examples/echo.lisp b/third_party/lisp/s-xml/examples/echo.lisp deleted file mode 100644 index a0befe2cbbbb..000000000000 --- a/third_party/lisp/s-xml/examples/echo.lisp +++ /dev/null @@ -1,64 +0,0 @@ -;;;; -*- mode: lisp -*- -;;;; -;;;; $Id: echo.lisp,v 1.1 2005/08/17 13:44:30 scaekenberghe Exp $ -;;;; -;;;; A simple example as well as a useful tool: parse, echo and pretty print XML -;;;; -;;;; Copyright (C) 2002, 2004 Sven Van Caekenberghe, Beta Nine BVBA. -;;;; -;;;; You are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser General Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. - -(in-package :s-xml) - -(defun indent (stream count) - (loop :repeat (* count 2) :do (write-char #\space stream))) - -(defclass echo-xml-seed () - ((stream :initarg :stream) - (level :initarg :level :initform 0))) - -#+NIL -(defmethod print-object ((seed echo-xml-seed) stream) - (with-slots (stream level) seed - (print-unreadable-object (seed stream :type t) - (format stream "level=~d" level)))) - -(defun echo-xml-new-element-hook (name attributes seed) - (with-slots (stream level) seed - (indent stream level) - (format stream "<~a" name) - (dolist (attribute (reverse attributes)) - (format stream " ~a=\'" (car attribute)) - (print-string-xml (cdr attribute) stream) - (write-char #\' stream)) - (format stream ">~%") - (incf level) - seed)) - -(defun echo-xml-finish-element-hook (name attributes parent-seed seed) - (declare (ignore attributes parent-seed)) - (with-slots (stream level) seed - (decf level) - (indent stream level) - (format stream "</~a>~%" name) - seed)) - -(defun echo-xml-text-hook (string seed) - (with-slots (stream level) seed - (indent stream level) - (print-string-xml string stream) - (terpri stream) - seed)) - -(defun echo-xml (in out) - "Parse a toplevel XML element from stream in, echoing and pretty printing the result to stream out" - (start-parse-xml in - (make-instance 'xml-parser-state - :seed (make-instance 'echo-xml-seed :stream out) - :new-element-hook #'echo-xml-new-element-hook - :finish-element-hook #'echo-xml-finish-element-hook - :text-hook #'echo-xml-text-hook))) - -;;;; eof diff --git a/third_party/lisp/s-xml/examples/remove-markup.lisp b/third_party/lisp/s-xml/examples/remove-markup.lisp deleted file mode 100644 index 41d858b4a8c5..000000000000 --- a/third_party/lisp/s-xml/examples/remove-markup.lisp +++ /dev/null @@ -1,21 +0,0 @@ -;;;; -*- mode: lisp -*- -;;;; -;;;; $Id: remove-markup.lisp,v 1.1 2004/06/11 11:14:43 scaekenberghe Exp $ -;;;; -;;;; Remove markup from an XML document using the SSAX interface -;;;; -;;;; Copyright (C) 2004 Sven Van Caekenberghe, Beta Nine BVBA. -;;;; -;;;; You are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser General Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. - -(in-package :s-xml) - -(defun remove-xml-markup (in) - (let* ((state (make-instance 'xml-parser-state - :text-hook #'(lambda (string seed) (cons string seed)))) - (result (start-parse-xml in state))) - (apply #'concatenate 'string (nreverse result)))) - -;;;; eof \ No newline at end of file diff --git a/third_party/lisp/s-xml/examples/tracer.lisp b/third_party/lisp/s-xml/examples/tracer.lisp deleted file mode 100644 index c8a3eaec1f2b..000000000000 --- a/third_party/lisp/s-xml/examples/tracer.lisp +++ /dev/null @@ -1,57 +0,0 @@ -;;;; -*- mode: lisp -*- -;;;; -;;;; $Id: tracer.lisp,v 1.2 2004/06/11 11:14:43 scaekenberghe Exp $ -;;;; -;;;; A simple SSAX tracer example that can be used to understand how the hooks are called -;;;; -;;;; Copyright (C) 2004 Sven Van Caekenberghe, Beta Nine BVBA. -;;;; -;;;; You are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser General Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. - -(in-package :s-xml) - -(defun trace-xml-log (level msg &rest args) - (indent *standard-output* level) - (apply #'format *standard-output* msg args) - (terpri *standard-output*)) - -(defun trace-xml-new-element-hook (name attributes seed) - (let ((new-seed (cons (1+ (car seed)) (1+ (cdr seed))))) - (trace-xml-log (car seed) - "(new-element :name ~s :attributes ~:[()~;~:*~s~] :seed ~s) => ~s" - name attributes seed new-seed) - new-seed)) - -(defun trace-xml-finish-element-hook (name attributes parent-seed seed) - (let ((new-seed (cons (1- (car seed)) (1+ (cdr seed))))) - (trace-xml-log (car parent-seed) - "(finish-element :name ~s :attributes ~:[()~;~:*~s~] :parent-seed ~s :seed ~s) => ~s" - name attributes parent-seed seed new-seed) - new-seed)) - -(defun trace-xml-text-hook (string seed) - (let ((new-seed (cons (car seed) (1+ (cdr seed))))) - (trace-xml-log (car seed) - "(text :string ~s :seed ~s) => ~s" - string seed new-seed) - new-seed)) - -(defun trace-xml (in) - "Parse and trace a toplevel XML element from stream in" - (start-parse-xml in - (make-instance 'xml-parser-state - :seed (cons 0 0) - ;; seed car is xml element nesting level - ;; seed cdr is ever increasing from element to element - :new-element-hook #'trace-xml-new-element-hook - :finish-element-hook #'trace-xml-finish-element-hook - :text-hook #'trace-xml-text-hook))) - -(defun trace-xml-file (pathname) - "Parse and trace XMl from the file at pathname" - (with-open-file (in pathname) - (trace-xml in))) - -;;;; eof |