-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathswank.lisp
More file actions
30 lines (25 loc) · 1.09 KB
/
swank.lisp
File metadata and controls
30 lines (25 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(cl:defpackage :reader+swank
(:use :cl :reader)
(:export
:enable-package-local-reader-syntax
:disable-package-local-reader-syntax))
(in-package :reader+swank)
(defmacro enable-package-local-reader-syntax (&rest reader-macro-identifiers)
`(eval-when (:compile-toplevel :load-toplevel :execute)
(setf (get-val swank:*readtable-alist* (package-name *package*) :test #'string=)
(progn
(setq *readtable* (copy-readtable))
(reader::%enable-reader-syntax *readtable* ,@reader-macro-identifiers)
*readtable*))))
(defmacro disable-package-local-reader-syntax ()
`(eval-when (:compile-toplevel :load-toplevel :execute)
(setf swank:*readtable-alist*
(remove (package-name *package*)
swank:*readtable-alist*
:key #'first
:test #'string=))))
(setf (documentation 'enable-package-local-reader-syntax 'function)
(concatenate 'string
reader::+reader-macro-doc+
(string #\newline)
"Package local refers to CL:*PACKAGE*."))