This is the advanced-readtable Reference Manual, version 1.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 04:12:10 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
advanced-readtable
Advanced customizable readtable
Roman Klochkov <kalimehtar@mail.ru>
BSD
1.0.1
named-readtables
(system).
package.lisp
(file).
finders.lisp
(file).
api.lisp
(file).
readtable.lisp
(file).
hierarchy.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
advanced-readtable/advanced-readtable.asd
advanced-readtable/package.lisp
advanced-readtable/finders.lisp
advanced-readtable/api.lisp
advanced-readtable/readtable.lisp
advanced-readtable/hierarchy.lisp
advanced-readtable/advanced-readtable.asd
advanced-readtable
(system).
advanced-readtable/finders.lisp
package.lisp
(file).
advanced-readtable
(system).
*extra-finders*
(special variable).
*package-finders*
(special variable).
*symbol-finders*
(special variable).
find-package
(function).
find-symbol
(function).
get-macro-symbol
(function).
package-finders
(function).
(setf package-finders)
(function).
set-handler
(macro).
set-macro-symbol
(function).
symbol-finders
(function).
(setf symbol-finders)
(function).
*current-extra-finders*
(special variable).
*local-package-finders*
(special variable).
*local-packages*
(special variable).
*local-symbol-finders*
(special variable).
*symbol-readmacros*
(special variable).
extra-finders
(function).
(setf extra-finders)
(function).
find-local-packages
(function).
funcall-first
(function).
funcall-first-mv
(function).
macro-symbol-handler
(type).
package-designator
(type).
package-handler
(type).
symbol-handler
(type).
advanced-readtable/api.lisp
finders.lisp
(file).
advanced-readtable
(system).
push-import-prefix
(function).
push-local-nickname
(function).
push-local-package
(function).
%set-handler
(macro).
*global-nicknames*
(special variable).
advanced-readtable/readtable.lisp
api.lisp
(file).
advanced-readtable
(system).
!
(function).
*enable-symbol-readmacro*
(special variable).
activate
(function).
read-token-with-colons
(function).
*car-list*
(special variable).
*colon-readtable*
(special variable).
+additional-chars+
(special variable).
chars-to-process
(function).
collect-dots
(function).
count-colons
(function).
does-not-terminate-token-p
(function).
macro-char-p
(function).
multiple-escape-p
(function).
open-paren-reader
(function).
process-symbol-readmacro
(function).
read-after-colon
(function).
read-token
(function).
single-escape-p
(function).
to-process
(function).
whitespace-p
(function).
with-case
(macro).
advanced-readtable/hierarchy.lisp
readtable.lisp
(file).
advanced-readtable
(system).
!!
(function).
activate-cl-substitutes
(function).
defpackage
(macro).
in-package
(macro).
correct-package
(function).
hierarchy-find-package
(function).
normalize-package
(function).
process-local-nicknames
(function).
substitute-symbol
(function).
Packages are listed by definition order.
advanced-readtable
common-lisp
.
editor-hints.named-readtables
.
!
(function).
!!
(function).
*enable-symbol-readmacro*
(special variable).
*extra-finders*
(special variable).
*package-finders*
(special variable).
*symbol-finders*
(special variable).
activate
(function).
activate-cl-substitutes
(function).
defpackage
(macro).
find-package
(function).
find-symbol
(function).
get-macro-symbol
(function).
in-package
(macro).
package-finders
(function).
(setf package-finders)
(function).
push-import-prefix
(function).
push-local-nickname
(function).
push-local-package
(function).
read-token-with-colons
(function).
set-handler
(macro).
set-macro-symbol
(function).
symbol-finders
(function).
(setf symbol-finders)
(function).
%set-handler
(macro).
*car-list*
(special variable).
*colon-readtable*
(special variable).
*current-extra-finders*
(special variable).
*global-nicknames*
(special variable).
*local-package-finders*
(special variable).
*local-packages*
(special variable).
*local-symbol-finders*
(special variable).
*symbol-readmacros*
(special variable).
+additional-chars+
(special variable).
chars-to-process
(function).
collect-dots
(function).
correct-package
(function).
count-colons
(function).
does-not-terminate-token-p
(function).
extra-finders
(function).
(setf extra-finders)
(function).
find-local-packages
(function).
funcall-first
(function).
funcall-first-mv
(function).
hierarchy-find-package
(function).
macro-char-p
(function).
macro-symbol-handler
(type).
multiple-escape-p
(function).
normalize-package
(function).
open-paren-reader
(function).
package-designator
(type).
package-handler
(type).
process-local-nicknames
(function).
process-symbol-readmacro
(function).
read-after-colon
(function).
read-token
(function).
single-escape-p
(function).
substitute-symbol
(function).
symbol-handler
(type).
to-process
(function).
whitespace-p
(function).
with-case
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Enables processing of symbol-readmacro.
Hash symbol -> alist (key . symbol-handler)
Used for PUSH-LOCAL-PACKAGE. It will be searched before CL:FIND-SYMBOL.
Will be checked inside list, where car of list eq SYMBOL.
Alist (equal key . package-handler). Contains global handlers for FIND-PACKAGE.
Alist (equal key . symbol-handler). Contains global handlers for FIND-SYMBOL.
This is middle-level public API for changing handlers for
find-symbol and find-package. There are five lists:
*package-finders* – global for find-package
*symbol-finders* – global for find-symbol
(package-finders package) – per-package for find-package
(symbol-finders package) – per-package for find-symbol
(extra-finders symbol) – per-symbol for (symbol ....) package substitution
Key should be uniq in the sense of EQUAL in the list. SET-HANDLER adds new handler if it is not already there.
We try to find package.
1. By full name with CL:FIND-PACKAGE.
2. By per-package handlers. Here we wil try local-nicknames and so on.
3. By global handlers. Here we may use, for example, hierarchical packages.
We try to find symbol
1. In package set with car of list, for example, PUSH-LOCAL-PACKAGE
2. By CL:FIND-SYMBOL, when package explicitly given
3. By packages added with package:(...)
4. By per-package finders
5. By global finders
6. By CL:FIND-SYMBOL
Syntax is like get-macro-character. Returns function, assigned by set-macro-symbol
Returns alist (key . package-handler) for package
Sets alist (key . package-handler) for package
Enables using package name omitting prefix.
For example, you have packages com.clearly-useful.iterator-protocol, com.clearly-useful.reducers, ...
You may use them as
(push-import-prefix :com.clearly-useful)
(iterator-protocol:do-iterator ...)
(reducers:r/map #’1+ data)
and so on.
Package prefix is enabled per package so it is safe to use it in your package.
If there is package, which name coincides with shortcut, package name has priority.
So, if you make
(defpackage :reducers ...)
after that reducers:... will refer to new package, not com.clearly-useful.reducers.
Enables package nickname in CURRENT-PACKAGE.
For example, you found COM.INFORMATIMAGO.COMMON-LISP.CESARUM.LIST package and want to use
it. But don’t want to USE-PACKAGE them, because some exported symbols from it are clashing
with yours.
You may do it right:
(push-local-nickname :com.informatimago.common-lisp.cesarum.list :ilist)
(ilist:circular-length l)
Local-nicknames are local, so you may use it freely.
If package A wants package LIB version 1, and package B wants package
LIB version 2, one can simply rename LIB version 1 to LIB1 and rename LIB
version 2 to LIB2 and make
(push-local-nickname :lib1 :lib :a)
(push-local-nickname :lib2 :lib :b)
If enabled global-nicknames via enable-global-nicknames,
then also created alias in current package.
For example,
(push-local-nickname :lib1 :lib :a), states, that package A.LIB is eq to LIB1.
Sets local-package for a symbol. Many macroses use there own clauses.
For example, ITERATE uses FOR, COLLECT and so on.
If you don’t want to USE-PACKAGE iterate, this function will help.
(push-local-package ’iter:iter :iterate)
(iter:iter (for i from 1 to 10) (collect i))
Caution: this function enables package substitution in all cases,
where SYMBOL is the car of a list.
For example, this will be error:
(let (iter:iter for) (list iter:iter for))
, because first for is in ITERATE package, but second – is not.
Reads token, then analize package part if needed
Syntax is like set-macro-character,
except that FUNC is binded to SYMBOL, not character
Returns alist (key . symbol-handler) for package
Sets alist (key . symbol-handler) for package
Boolean: iff reader in list and car is not read
Support readtable with colon as whitespace
Alist (key . symbol-handler). Used in PUSH-LOCAL-PACKAGE processing
Package aliases. Hash nickname: string -> package
Hash package -> alist (key . package-handler). Contains per-package handlers for FIND-PACKAGE.
List of packages: for pack:( ... pack2:(...))
Hash package -> alist (equal key . symbol-handler). Contains per-package handlers for FIND-SYMBOL.
Hash symbol -> macro-symbol-handler Contans handlers for macro-symbols.
Fill this, if you need extra characters for packages to begin with
Local macros for push-* functions. No gensyms intended.
DO: Reads colons from STREAM RETURN: number of the colons
Returns alist (key . symbol-handler) for symbol
Sets alist (key . symbol-handler) for symbol
HANDLERS-LIST – alist (key . package-handler).
The function calls handlers until one of them returns not null.
Then the result of last call is returned
HANDLERS-LIST – alist (key . package-handler).
The function calls handlers until one of them returns not null.
Then the result of last call is returned
If C is macro-char, return GET-MACRO-CHARACTER
Returns nil if already normalized.
Replace first section of hierarchy with proper name
Read symbol package:sym or list package:(...)
DO: Reads from STREAM a symbol or number up to whitespace or colon RETURN: symbols name or numbers value
Handler for SET/GET-MACRO-SYMBOL
Argument of CL:FIND-PACKAGE
Type of handlers for package finding.
First arg is a name to find. Second – current package
Type of handlers for symbol finding
First arg is a name to find. Second – current package
Jump to: | !
%
(
A C D E F G H I M N O P R S T W |
---|
Jump to: | !
%
(
A C D E F G H I M N O P R S T W |
---|
Jump to: | *
+
S |
---|
Jump to: | *
+
S |
---|
Jump to: | A F H M P R S T |
---|
Jump to: | A F H M P R S T |
---|