Author: rklochkov Date: Sat Jan 26 11:59:30 2013 New Revision: 15
Log: Refactored. Beta release. Now strong depends on named-readtables
Modified: advanced-readtable.asd package.lisp src.lisp
Modified: advanced-readtable.asd ============================================================================== --- advanced-readtable.asd Fri Jan 25 06:09:35 2013 (r14) +++ advanced-readtable.asd Sat Jan 26 11:59:30 2013 (r15) @@ -1,9 +1,13 @@ (asdf:defsystem #:advanced-readtable :description "Advanced customizable readtable" :author "Roman Klochkov kalimehtar@mail.ru" - :version "0.2.0" + :version "0.8.0" :license "BSD" + :depends-on (#:named-readtables) :serial t :components ((:file "package") - (:file "src"))) + (:file "finders") + (:file "api") + (:file "readtable") + (:file "hierarchy")))
Modified: package.lisp ============================================================================== --- package.lisp Fri Jan 25 06:09:35 2013 (r14) +++ package.lisp Sat Jan 26 11:59:30 2013 (r15) @@ -1,5 +1,6 @@ -(cl:|DEFPACKAGE| #:advanced-readtable - (:use #:cl) +(defpackage #:advanced-readtable + (:use #:cl #:named-readtables) + (:import-from #:named-readtables #:define-api #:=>) (:shadow #:find-package #:find-symbol
Modified: src.lisp ============================================================================== --- src.lisp Fri Jan 25 06:09:35 2013 (r14) +++ src.lisp Sat Jan 26 11:59:30 2013 (r15) @@ -494,27 +494,24 @@ (defun chars-to-process () (let ((*readtable* (copy-readtable nil))) (nconc - (loop :for i :from 1 :to 127 + (loop :for i :from 0 :to 127 :for c = (code-char i) :when (to-process c) :collect c) (loop :for c :across +additional-chars+ :when (to-process c) :collect c))))
(defun make-named-rt () - `(,(cl:find-symbol "DEFREADTABLE" "NAMED-READTABLES") :advanced + `(defreadtable :advanced (:merge :standard) - ,@(loop :for c :in (chars-to-process) - :collect `(:macro-char ,c #'read-token-with-colons t)) + ,@(mapcar (lambda (c) (list :macro-char c #'read-token-with-colons t)) + (chars-to-process)) (:macro-char #( #'open-paren-reader nil))))
(macrolet ((def-advanced-readtable () (make-named-rt))) - (when (cl:find-package "NAMED-READTABLES") - (def-advanced-readtable))) + (def-advanced-readtable))
(defun activate () - (dolist (c (chars-to-process)) - (set-macro-character c #'read-token-with-colons t)) - (set-macro-character #( #'open-paren-reader t)) + (in-readtable :advanced))
(defun ! () (activate))
advanced-readtable-cvs@common-lisp.net