1 ;;; copyright (c) 2005 David Lichteblau <david@lichteblau.com>
2 ;;; License: Lisp-LGPL (See file COPYING for details).
4 ;;; Rune emulation for the UTF-8-compatible DOM implementation.
5 ;;; Used only with 8 bit characters on non-unicode Lisps.
7 (in-package :utf8-runes
)
9 (deftype rune
() 'character
)
10 (deftype rod
() '(vector rune
))
11 (deftype simple-rod
() '(simple-array rune
))
16 (defun rod-string (rod &optional default
)
17 (declare (ignore default
))
20 (defun string-rod (string)
23 (defun make-rod (size)
24 (make-string size
:element-type
'rune
))
26 (defun rune-reader (stream subchar arg
)
27 (runes::rune-char
(runes::rune-reader stream subchar arg
)))
29 (defun rod-reader (stream subchar arg
)
30 (runes::rod-string
(runes::rod-reader stream subchar arg
)))
32 (setf closure-common-system
:*utf8-runes-readtable
*
33 (let ((rt (copy-readtable)))
34 (set-dispatch-macro-character #\
# #\
/ 'rune-reader rt
)
35 (set-dispatch-macro-character #\
# #\" 'rod-reader rt
)