This is the agnostic-lizard Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 04:12:20 2024 GMT+0.
agnostic-lizard/agnostic-lizard.asd
agnostic-lizard/package.lisp
agnostic-lizard/utils.lisp
agnostic-lizard/env-wrappers.lisp
agnostic-lizard/metaenv.lisp
agnostic-lizard/lexenv.lisp
agnostic-lizard/pure-expansion.lisp
agnostic-lizard/special-form-handlers.lisp
agnostic-lizard/generic-walking.lisp
agnostic-lizard/macro-based-walking.lisp
agnostic-lizard/local-variables.lisp
agnostic-lizard/wrapping-reader.lisp
agnostic-lizard/debugger-hooks.lisp
The main system appears first, followed by any subsystem dependency.
agnostic-lizard
A portable code walker that makes a best effort to be correct in most cases
Michael Raskin <38a938c2@rambler.ru>
GPLv3+
readme
(file).
authors
(file).
copying
(file).
gpl-3.0.txt
(file).
examples.lisp
(file).
package.lisp
(file).
utils.lisp
(file).
env-wrappers.lisp
(file).
metaenv.lisp
(file).
lexenv.lisp
(file).
pure-expansion.lisp
(file).
special-form-handlers.lisp
(file).
generic-walking.lisp
(file).
macro-based-walking.lisp
(file).
local-variables.lisp
(file).
wrapping-reader.lisp
(file).
debugger-hooks.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
agnostic-lizard/agnostic-lizard.asd
agnostic-lizard/package.lisp
agnostic-lizard/utils.lisp
agnostic-lizard/env-wrappers.lisp
agnostic-lizard/metaenv.lisp
agnostic-lizard/lexenv.lisp
agnostic-lizard/pure-expansion.lisp
agnostic-lizard/special-form-handlers.lisp
agnostic-lizard/generic-walking.lisp
agnostic-lizard/macro-based-walking.lisp
agnostic-lizard/local-variables.lisp
agnostic-lizard/wrapping-reader.lisp
agnostic-lizard/debugger-hooks.lisp
agnostic-lizard/agnostic-lizard.asd
agnostic-lizard
(system).
agnostic-lizard/utils.lisp
package.lisp
(file).
agnostic-lizard
(system).
function-information
(class).
function-information-arglist
(reader method).
(setf function-information-arglist)
(writer method).
function-information-body
(reader method).
(setf function-information-body)
(writer method).
function-information-declarations
(reader method).
(setf function-information-declarations)
(writer method).
function-information-name
(reader method).
(setf function-information-name)
(writer method).
function-information-named
(reader method).
(setf function-information-named)
(writer method).
function-information-qualifiers
(reader method).
(setf function-information-qualifiers)
(writer method).
separate-declarations
(function).
separate-function-definition-parts
(function).
separate-lambda-expression-parts
(function).
eval-with-current-environment
(macro).
go-tag-p
(function).
lambda-list-variable-names
(function).
agnostic-lizard/env-wrappers.lisp
package.lisp
(file).
agnostic-lizard
(system).
flet-wrap
(function).
let-wrap
(function).
macrolet-code-wrap
(function).
macrolet-wrap
(function).
symbol-macrolet-wrap
(function).
wrap-block-env
(function).
wrap-function-like-env
(function).
wrap-tag-env
(function).
wrap-variable-like-env
(function).
agnostic-lizard/metaenv.lisp
package.lisp
(file).
env-wrappers.lisp
(file).
utils.lisp
(file).
agnostic-lizard
(system).
macro-walker-metaenv
(class).
metaenv
(class).
metaenv-blocks
(generic function).
(setf metaenv-blocks)
(writer method).
metaenv-clone
(generic function).
metaenv-clone-args
(generic function).
metaenv-function-like-entries
(generic function).
(setf metaenv-function-like-entries)
(writer method).
metaenv-tags
(generic function).
(setf metaenv-tags)
(writer method).
metaenv-toplevel
(generic function).
(setf metaenv-toplevel)
(writer method).
metaenv-variable-like-entries
(generic function).
(setf metaenv-variable-like-entries)
(writer method).
print-object
(method).
walker-metaenv
(class).
metaenv-add-block
(generic function).
metaenv-add-function-like-entry
(generic function).
metaenv-add-tag
(generic function).
metaenv-add-variable-like-entry
(generic function).
metaenv-create-macro
(reader method).
(setf metaenv-create-macro)
(writer method).
metaenv-fallback-env
(generic function).
(setf metaenv-fallback-env)
(writer method).
metaenv-irrelevant-for-macroexpand
(function).
metaenv-never-pass-fallback-env
(generic function).
(setf metaenv-never-pass-fallback-env)
(writer method).
metaenv-on-every-atom
(reader method).
(setf metaenv-on-every-atom)
(writer method).
metaenv-on-every-form
(reader method).
(setf metaenv-on-every-form)
(writer method).
metaenv-on-every-form-pre
(reader method).
(setf metaenv-on-every-form-pre)
(writer method).
metaenv-on-function-form
(reader method).
(setf metaenv-on-function-form)
(writer method).
metaenv-on-function-form-pre
(reader method).
(setf metaenv-on-function-form-pre)
(writer method).
metaenv-on-macro-walker-create-macro
(reader method).
(setf metaenv-on-macro-walker-create-macro)
(writer method).
metaenv-on-macroexpanded-form
(reader method).
(setf metaenv-on-macroexpanded-form)
(writer method).
metaenv-on-special-form
(reader method).
(setf metaenv-on-special-form)
(writer method).
metaenv-on-special-form-pre
(reader method).
(setf metaenv-on-special-form-pre)
(writer method).
metaenv-recursive-label
(method).
metaenv-recursive-label
(reader method).
(setf metaenv-recursive-label)
(writer method).
metaenv-wrap-form
(generic function).
with-metaenv-built-env
(function).
agnostic-lizard/lexenv.lisp
package.lisp
(file).
metaenv.lisp
(file).
env-wrappers.lisp
(file).
utils.lisp
(file).
agnostic-lizard
(system).
metaenv-ensure-name-from-environment
(function).
metaenv-ensure-names-from-environment
(function).
environment-entries-for-name
(function).
agnostic-lizard/pure-expansion.lisp
package.lisp
(file).
utils.lisp
(file).
metaenv.lisp
(file).
agnostic-lizard
(system).
macroexpand-all
(function).
metaenv-macroexpand-all
(generic function).
metaenv-map-macroexpand-all
(function).
*hardwired-operators*
(special variable).
metaenv-macroexpand
(function).
metaenv-macroexpand-1
(generic function).
metaenv-macroexpand-all-special-form
(generic function).
metaenv-map-macroexpand-all-after-declarations
(function).
agnostic-lizard/special-form-handlers.lisp
package.lisp
(file).
utils.lisp
(file).
metaenv.lisp
(file).
pure-expansion.lisp
(file).
agnostic-lizard
(system).
define-handle-nfunction
(macro).
metaenv-expand-lambda-expression
(generic function).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form
(method).
metaenv-macroexpand-all-special-form-defun
(generic function).
metaenv-macroexpand-all-special-form-flet
(generic function).
metaenv-macroexpand-all-special-form-function
(generic function).
metaenv-macroexpand-all-special-form-let
(generic function).
metaenv-macroexpand-all-special-form-macrolet
(generic function).
metaenv-macroexpand-all-special-form-progn
(generic function).
metaenv-macroexpand-all-special-form-the
(generic function).
metaenv-macroexpand-lambdalist
(generic function).
agnostic-lizard/generic-walking.lisp
package.lisp
(file).
utils.lisp
(file).
metaenv.lisp
(file).
pure-expansion.lisp
(file).
agnostic-lizard
(system).
metaenv-macroexpand-all
(method).
walk-form
(function).
agnostic-lizard/macro-based-walking.lisp
package.lisp
(file).
utils.lisp
(file).
metaenv.lisp
(file).
pure-expansion.lisp
(file).
agnostic-lizard
(system).
macro-macroexpand-all
(macro).
macro-walk-form
(macro).
metaenv-macro-macroexpand-all
(macro).
metaenv-macroexpand-all
(method).
metaenv-macro-macroexpand-all-wrapper
(macro).
metaenv-macro-walker-turn-to-quoted
(function).
metaenv-macroexpand-1
(method).
agnostic-lizard/local-variables.lisp
package.lisp
(file).
metaenv.lisp
(file).
generic-walking.lisp
(file).
agnostic-lizard
(system).
lexenv-cursor
(function).
list-locfuncs
(function).
list-locvars
(function).
locfunc
(macro).
locvar
(macro).
pry
(function).
with-saved-lexenvs
(macro).
*saved-lexenv-cursor*
(special variable).
*saved-lexenvs*
(special variable).
agnostic-lizard/wrapping-reader.lisp
package.lisp
(file).
agnostic-lizard
(system).
install-wrap-every-form-reader
(function).
with-wrap-every-form-reader
(macro).
wrap-every-form-reader
(function).
wrap-rest-of-input
(macro).
agnostic-lizard/debugger-hooks.lisp
package.lisp
(file).
metaenv.lisp
(file).
generic-walking.lisp
(file).
utils.lisp
(file).
agnostic-lizard
(system).
*debugger-hooks-state*
(special variable).
*local-debugger-hooks*
(special variable).
debugger-hooks-active
(reader method).
(setf debugger-hooks-active)
(writer method).
debugger-hooks-alias
(reader method).
(setf debugger-hooks-alias)
(writer method).
debugger-hooks-assign
(generic function).
debugger-hooks-callback
(reader method).
(setf debugger-hooks-callback)
(writer method).
debugger-hooks-command
(reader method).
(setf debugger-hooks-command)
(writer method).
debugger-hooks-state
(class).
metaenv-clone
(method).
metaenv-clone-args
(method).
metaenv-macroexpand-all
(method).
print-object
(method).
set-local-debugger-hook
(function).
with-debugger-hook-calls
(macro).
with-local-debugger-hook
(macro).
*marker-counter*
(special variable).
debugger-hook-call
(function).
debugger-hook-walker-env
(class).
debugger-hook-walker-function-marker
(reader method).
(setf debugger-hook-walker-function-marker)
(writer method).
debugger-hook-walker-lexenv-p
(reader method).
(setf debugger-hook-walker-lexenv-p)
(writer method).
debugger-hook-walker-pending-functions
(reader method).
(setf debugger-hook-walker-pending-functions)
(writer method).
debugger-hook-walker-pending-variables
(reader method).
(setf debugger-hook-walker-pending-variables)
(writer method).
debugger-hook-walker-replace-form
(function).
debugger-hook-walker-result-var
(reader method).
(setf debugger-hook-walker-result-var)
(writer method).
default-debugger-hook-callback
(function).
metaenv-add-function-like-entry
(method).
metaenv-add-variable-like-entry
(method).
metaenv-expand-lambda-expression
(method).
metaenv-macroexpand-all-special-form-defun
(method).
metaenv-wrap-form
(method).
agnostic-lizard/README
agnostic-lizard/AUTHORS
agnostic-lizard/COPYING
agnostic-lizard/gpl-3.0.txt
agnostic-lizard/examples.lisp
Packages are listed by definition order.
agnostic-lizard-debugger-hooks
agnostic-lizard
.
common-lisp
.
*debugger-hooks-state*
(special variable).
*local-debugger-hooks*
(special variable).
debugger-hooks-active
(generic reader).
(setf debugger-hooks-active)
(generic writer).
debugger-hooks-alias
(generic reader).
(setf debugger-hooks-alias)
(generic writer).
debugger-hooks-assign
(generic function).
debugger-hooks-callback
(generic reader).
(setf debugger-hooks-callback)
(generic writer).
debugger-hooks-command
(generic reader).
(setf debugger-hooks-command)
(generic writer).
debugger-hooks-state
(class).
set-local-debugger-hook
(function).
with-debugger-hook-calls
(macro).
with-local-debugger-hook
(macro).
*marker-counter*
(special variable).
debugger-hook-call
(function).
debugger-hook-walker-env
(class).
debugger-hook-walker-function-marker
(generic reader).
(setf debugger-hook-walker-function-marker)
(generic writer).
debugger-hook-walker-lexenv-p
(generic reader).
(setf debugger-hook-walker-lexenv-p)
(generic writer).
debugger-hook-walker-pending-functions
(generic reader).
(setf debugger-hook-walker-pending-functions)
(generic writer).
debugger-hook-walker-pending-variables
(generic reader).
(setf debugger-hook-walker-pending-variables)
(generic writer).
debugger-hook-walker-replace-form
(function).
debugger-hook-walker-result-var
(generic reader).
(setf debugger-hook-walker-result-var)
(generic writer).
default-debugger-hook-callback
(function).
agnostic-lizard-lexenv-wrapper
agnostic-lizard
.
common-lisp
.
lexenv-cursor
(function).
list-locfuncs
(function).
list-locvars
(function).
locfunc
(macro).
locvar
(macro).
pry
(function).
with-saved-lexenvs
(macro).
*saved-lexenv-cursor*
(special variable).
*saved-lexenvs*
(special variable).
agnostic-lizard
common-lisp
.
function-information
(class).
function-information-arglist
(generic reader).
(setf function-information-arglist)
(generic writer).
function-information-body
(generic reader).
(setf function-information-body)
(generic writer).
function-information-declarations
(generic reader).
(setf function-information-declarations)
(generic writer).
function-information-name
(generic reader).
(setf function-information-name)
(generic writer).
function-information-named
(generic reader).
(setf function-information-named)
(generic writer).
function-information-qualifiers
(generic reader).
(setf function-information-qualifiers)
(generic writer).
install-wrap-every-form-reader
(function).
macro-macroexpand-all
(macro).
macro-walk-form
(macro).
macro-walker-metaenv
(class).
macroexpand-all
(function).
metaenv
(class).
metaenv-blocks
(generic function).
(setf metaenv-blocks)
(generic writer).
metaenv-clone
(generic function).
metaenv-clone-args
(generic function).
metaenv-ensure-name-from-environment
(function).
metaenv-ensure-names-from-environment
(function).
metaenv-function-like-entries
(generic function).
(setf metaenv-function-like-entries)
(generic writer).
metaenv-macro-macroexpand-all
(macro).
metaenv-macroexpand-all
(generic function).
metaenv-map-macroexpand-all
(function).
metaenv-tags
(generic function).
(setf metaenv-tags)
(generic writer).
metaenv-toplevel
(generic function).
(setf metaenv-toplevel)
(generic writer).
metaenv-variable-like-entries
(generic function).
(setf metaenv-variable-like-entries)
(generic writer).
separate-declarations
(function).
separate-function-definition-parts
(function).
separate-lambda-expression-parts
(function).
walk-form
(function).
walker-metaenv
(class).
with-wrap-every-form-reader
(macro).
wrap-every-form-reader
(function).
wrap-rest-of-input
(macro).
*hardwired-operators*
(special variable).
define-handle-nfunction
(macro).
environment-entries-for-name
(function).
eval-with-current-environment
(macro).
flet-wrap
(function).
go-tag-p
(function).
lambda-list-variable-names
(function).
let-wrap
(function).
macrolet-code-wrap
(function).
macrolet-wrap
(function).
metaenv-add-block
(generic function).
metaenv-add-function-like-entry
(generic function).
metaenv-add-tag
(generic function).
metaenv-add-variable-like-entry
(generic function).
metaenv-create-macro
(generic reader).
(setf metaenv-create-macro)
(generic writer).
metaenv-expand-lambda-expression
(generic function).
metaenv-fallback-env
(generic function).
(setf metaenv-fallback-env)
(generic writer).
metaenv-irrelevant-for-macroexpand
(function).
metaenv-macro-macroexpand-all-wrapper
(macro).
metaenv-macro-walker-turn-to-quoted
(function).
metaenv-macroexpand
(function).
metaenv-macroexpand-1
(generic function).
metaenv-macroexpand-all-special-form
(generic function).
metaenv-macroexpand-all-special-form-defun
(generic function).
metaenv-macroexpand-all-special-form-flet
(generic function).
metaenv-macroexpand-all-special-form-function
(generic function).
metaenv-macroexpand-all-special-form-let
(generic function).
metaenv-macroexpand-all-special-form-macrolet
(generic function).
metaenv-macroexpand-all-special-form-progn
(generic function).
metaenv-macroexpand-all-special-form-the
(generic function).
metaenv-macroexpand-lambdalist
(generic function).
metaenv-map-macroexpand-all-after-declarations
(function).
metaenv-never-pass-fallback-env
(generic function).
(setf metaenv-never-pass-fallback-env)
(generic writer).
metaenv-on-every-atom
(generic reader).
(setf metaenv-on-every-atom)
(generic writer).
metaenv-on-every-form
(generic reader).
(setf metaenv-on-every-form)
(generic writer).
metaenv-on-every-form-pre
(generic reader).
(setf metaenv-on-every-form-pre)
(generic writer).
metaenv-on-function-form
(generic reader).
(setf metaenv-on-function-form)
(generic writer).
metaenv-on-function-form-pre
(generic reader).
(setf metaenv-on-function-form-pre)
(generic writer).
metaenv-on-macro-walker-create-macro
(generic reader).
(setf metaenv-on-macro-walker-create-macro)
(generic writer).
metaenv-on-macroexpanded-form
(generic reader).
(setf metaenv-on-macroexpanded-form)
(generic writer).
metaenv-on-special-form
(generic reader).
(setf metaenv-on-special-form)
(generic writer).
metaenv-on-special-form-pre
(generic reader).
(setf metaenv-on-special-form-pre)
(generic writer).
metaenv-recursive-label
(generic function).
(setf metaenv-recursive-label)
(generic writer).
metaenv-wrap-form
(generic function).
symbol-macrolet-wrap
(function).
with-metaenv-built-env
(function).
wrap-block-env
(function).
wrap-function-like-env
(function).
wrap-tag-env
(function).
wrap-variable-like-env
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Produce code returning the full macroexpansion of the form in the current lexical environment.
Optionally, run handlers. :on-every-form will be run before quoting and wrapping in environment handling helpers.
Walk the form inside the current lexical environment using the handlers from handler-definitions.
See walk-form for details about handlers.
The resulting form after walking is returned as the macroexpansion.
A helper macro for recapturing environment
Walk the form wrapping each expression into saving of the lexical environment
Execute body using a modified readtable so that every top-level form read by the reader is modified using the callback
Modify each top-level form in the rest of the current file with the callback
Add an entry to the readtable that reads top-level forms normally, then applies the callback to each form
Recursively expand all macro calls in form with initial environment described by env
Apply metaenv-macroexpand-all to all the forms using the same env
Launch an interactive debugging session
Separate a list of entries into declarations and forms, with a possible docstring, if enabled
Walk the form inside the environment described by env using the handlers from handler-definitions.
Handlers get a form and a walker-metaenv environment description.
The return value of a handler is used instead of the form passed to the handler during further processing.
Handlers can be:
:on-every-form-pre — called before processing each form in an executable position
:on-macroexpanded-form — called for each form after macroexpanding its top operation; hardwired macros are passed unexpanded
:on-special-form-pre — called before processing a special form or a hardwired macro
:on-function-form-pre — called before processing a function call
:on-special-form — called after processing a special form or a hardwired macro
:on-every-atom — called after processing a form expanded to an atom
:on-function-form — called after processing a function call
:on-every-form — called after expanding each form in an executable position
env can be metaenv or walker-metaenv
Prepare a special reader for the readtable that reads every top-level form using normal-readtable, then applies the callback to the form
debugger-hooks-state
)) ¶automatically generated reader method
debugger-hooks-state
)) ¶automatically generated writer method
debugger-hooks-state
)) ¶automatically generated reader method
debugger-hooks-state
)) ¶automatically generated writer method
debugger-hooks-state
) &key active callback command) ¶debugger-hooks-state
)) ¶automatically generated reader method
debugger-hooks-state
)) ¶automatically generated writer method
debugger-hooks-state
)) ¶automatically generated reader method
debugger-hooks-state
)) ¶automatically generated writer method
function-information
)) ¶automatically generated reader method
function-information
)) ¶automatically generated writer method
function-information
)) ¶automatically generated reader method
body
.
function-information
)) ¶automatically generated writer method
body
.
function-information
)) ¶automatically generated reader method
function-information
)) ¶automatically generated writer method
function-information
)) ¶automatically generated reader method
name
.
function-information
)) ¶automatically generated writer method
name
.
function-information
)) ¶automatically generated reader method
function-information
)) ¶automatically generated writer method
function-information
)) ¶automatically generated reader method
function-information
)) ¶automatically generated writer method
Query the list of defined blocks from a metaenv object
Create a copy of a metaenv-related object
debugger-hook-walker-env
) &optional overrides) ¶The needed initargs for copying a metaenv-related object
debugger-hook-walker-env
)) ¶macro-walker-metaenv
)) ¶walker-metaenv
)) ¶Query the list of function-like entries from a metaenv object
Expand all macros on all levels of form in the environment env
debugger-hook-walker-env
)) ¶macro-walker-metaenv
)) ¶walker-metaenv
)) ¶(eql nil)
)) ¶Query the list of defined tags from a metaenv object
Query if a metaenv object represents toplevel environment
Query the list of variable-like entries from a metaenv object
debugger-hook-walker-env
) stream) ¶(setf function-information-arglist)
.
function-information-arglist
.
(setf function-information-body)
.
function-information-body
.
(setf function-information-declarations)
.
function-information-declarations
.
(setf function-information-name)
.
function-information-name
.
(setf function-information-named)
.
function-information-named
.
(setf function-information-qualifiers)
.
function-information-qualifiers
.
:name
:named
:qualifiers
:arglist
:declarations
:body
A version of walker-metaenv that can store additional information for expanding to a form with macro calls.
This approach allows to use Common Lisp implementation’s own handling of environment.
We still keep track of environment just for portable access to the list of discovered lexical environment entries.
Whether to do expansion or just create a macro call that will be able to get proper environment
t
:create-macro
A label to distinguish the forms freshly created in relation to the current environment.
(gensym)
:recursive-label
A handler invoked when macro-walker creates a new macro
(quote values)
:on-macro-walker-create-macro
The basic object holding the lexical environment data for macroexpansion
metaenv-add-block
.
metaenv-add-function-like-entry
.
metaenv-add-tag
.
metaenv-add-variable-like-entry
.
(setf metaenv-blocks)
.
metaenv-blocks
.
metaenv-clone
.
metaenv-clone-args
.
(setf metaenv-fallback-env)
.
metaenv-fallback-env
.
(setf metaenv-function-like-entries)
.
metaenv-function-like-entries
.
metaenv-macroexpand-all
.
(setf metaenv-never-pass-fallback-env)
.
metaenv-never-pass-fallback-env
.
(setf metaenv-tags)
.
metaenv-tags
.
(setf metaenv-toplevel)
.
metaenv-toplevel
.
(setf metaenv-variable-like-entries)
.
metaenv-variable-like-entries
.
metaenv-wrap-form
.
print-object
.
:fn
, :fun
, :func
, :function-like
:var
, :variable-like
:block
, :blocks
:tag
, :tags
:toplevel
A slot for storing environment obtained via an &environment parameter
:env
, :fallback-env
A slot storing the policy switch for never passing the fallback env to macroexpand-1
:never-pass-fallback-env
An extended walker environment object.
Here we keep a few handlers to allow transformations of the code during walking.
metaenv-clone-args
.
metaenv-macroexpand-all
.
(setf metaenv-on-every-atom)
.
metaenv-on-every-atom
.
(setf metaenv-on-every-form)
.
metaenv-on-every-form
.
(setf metaenv-on-every-form-pre)
.
metaenv-on-every-form-pre
.
(setf metaenv-on-function-form)
.
metaenv-on-function-form
.
(setf metaenv-on-function-form-pre)
.
metaenv-on-function-form-pre
.
(setf metaenv-on-macroexpanded-form)
.
metaenv-on-macroexpanded-form
.
(setf metaenv-on-special-form)
.
metaenv-on-special-form
.
(setf metaenv-on-special-form-pre)
.
metaenv-on-special-form-pre
.
(function values)
:on-function-form
(function values)
:on-function-form-pre
(function values)
:on-every-atom
(function values)
:on-every-form
(function values)
:on-every-form-pre
(function values)
:on-special-form-pre
(function values)
:on-special-form
(function values)
:on-macroexpanded-form
The list of hardwired macros; they are code-walked without macroexpansion
The current position on the lexenv stack
A stack of saved lexical environments
Evaluate code in a lexical environment where var is bound to the lexical environment object corresponding to the macro call position
This wrapper does nothing but protects form from metaenv-macro-walker-turn-to-quoted
Create metaenv entries corresponding to environment for name.
Returns a list: variable-like entry, function-like entry.
Wrap a chunk of code with a pseudo-flet;
it is for macroexpansion only, so there is no body
Wrap a chunk of code with a pseudo-let;
it is for macroexpansion only, so there is no body;
some globals don’t like to ever be bound to nil, so try a global value first
Wrap a chunk of code with a macrolet given a literal macrolet definition
Wrap a chunk of code with a macrolet defined by a macro-function
Check if the metaenv obj is the same as the fallback environment for macroexpand-1
Convert a partially walked form into code producing the expansion of the form after the walk is completed
Perform full macroexpansion of the top level of the form in the environment env
Apply metaenv-map-macroexpand-all to all the forms among the entries, but use the declarations as-is
Wrap a chunk of code with a symbol-macrolet
Evaluate code in the lexical environment where var is bound to the lexical environment object described by obj
Wrap a form to make sure all the blocks listed in entries are defined
Wrap a form using the function-like entries.
An entry can be:
(name nil) — not defined in this environment
(name (:plain)) — an flet
(name (:macro macro-function)) — a macrolet, defined by a macro-function
(name (:macro-from environment)) — a macrolet that should be copied from an environment object
(name (:macro-code)) — a macrolet, defined by literal macrolet code
(name (:macro-function-code)) — a macrolet, defined by the code to define the macro-function
Wrap a form to make sure all the tags listed in entries are defined
Wrap a form using variable-like entries.
An entry can be:
(name nil) — not defined in this environment
(name (:plain)) — a let
(name (:macro expansion)) — a symbol-macro, defined by the expansion
(name (:macro-from environment)) — a symbol-macro to be copied from an environment
debugger-hook-walker-env
)) ¶automatically generated reader method
debugger-hook-walker-env
)) ¶automatically generated writer method
debugger-hook-walker-env
)) ¶automatically generated reader method
debugger-hook-walker-env
)) ¶automatically generated writer method
debugger-hook-walker-env
)) ¶automatically generated reader method
debugger-hook-walker-env
)) ¶automatically generated writer method
debugger-hook-walker-env
)) ¶automatically generated reader method
debugger-hook-walker-env
)) ¶automatically generated writer method
debugger-hook-walker-env
)) ¶automatically generated reader method
debugger-hook-walker-env
)) ¶automatically generated writer method
Add a block into the metaenv object.
Add a function-like entry into the metaenv object.
The entry should follow the format described in wrap-function-like-env.
The entry will shadow previously available entries with the same name.
debugger-hook-walker-env
) entry) ¶Add a tag into the metaenv object.
Add a variable-like entry into the metaenv object.
The entry should follow the format described in wrap-variable-like-env.
The entry will shadow previously available entries with the same name.
debugger-hook-walker-env
) entry) ¶macro-walker-metaenv
)) ¶macro-walker-metaenv
)) ¶Whether to do expansion or just create a macro call that will be able to get proper environment
Expand a lambda expression or a named-lambda expression
debugger-hook-walker-env
)) ¶Query the fallback environment object from a metaenv object
Do a single step of macroexpansion on the top level of form in the environment env
macro-walker-metaenv
)) ¶A handler for dispatching macroexpand-all handling of special forms and some macros
(eql cond)
) form env) ¶(eql multiple-value-bind)
) form env) ¶(eql handler-bind)
) form env) ¶(eql labels)
) form env) ¶(eql defmethod)
) form env) ¶(eql defun)
) form env) ¶(eql defmacro)
) form env) ¶(eql flet)
) form env) ¶(eql symbol-macrolet)
) form env) ¶(eql macrolet)
) form env) ¶(eql progv)
) form env) ¶(eql load-time-value)
) form env) ¶(eql locally)
) form env) ¶(eql function)
) form env) ¶(eql eval-when)
) form env) ¶(eql the)
) form env) ¶(eql return-from)
) form env) ¶(eql go)
) form env) ¶(eql quote)
) form env) ¶(eql unwind-protect)
) form env) ¶(eql multiple-value-call)
) form env) ¶(eql multiple-value-prog1)
) form env) ¶(eql catch)
) form env) ¶(eql throw)
) form env) ¶(eql progn)
) form env) ¶(eql if)
) form env) ¶(eql tagbody)
) form env) ¶(eql setq)
) form env) ¶(eql let*)
) form env) ¶(eql let)
) form env) ¶(eql block)
) form env) ¶(eql nil)
)) ¶Expand a form that is similar to defun
debugger-hook-walker-env
)) ¶Expand a form similar to flet
Expand a form similar to function
Expand a form that is similar to let
Expand a form similar to macrolet
Expand a form similar to a funcall or to a progn
Expand a special form similar to the
Macroexpand assignments/default values in entries and destructively add the names to env
list
) env self-visible wait-for-keyword) ¶Query whether the fallback environment object should never be passed to macroexpand-1
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
macro-walker-metaenv
)) ¶macro-walker-metaenv
)) ¶A handler invoked when macro-walker creates a new macro
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
walker-metaenv
)) ¶automatically generated reader method
walker-metaenv
)) ¶automatically generated writer method
macro-walker-metaenv
)) ¶A label to distinguish the forms freshly created in relation to the current environment.
macro-walker-metaenv
)) ¶A label to distinguish the forms freshly created in relation to the current environment.
Wrap the form into environment-setting wrappers corresponding to all the entries of obj.
debugger-hook-walker-env
) form) ¶(setf debugger-hook-walker-function-marker)
.
debugger-hook-walker-function-marker
.
(setf debugger-hook-walker-lexenv-p)
.
debugger-hook-walker-lexenv-p
.
(setf debugger-hook-walker-pending-functions)
.
debugger-hook-walker-pending-functions
.
(setf debugger-hook-walker-pending-variables)
.
debugger-hook-walker-pending-variables
.
(setf debugger-hook-walker-result-var)
.
debugger-hook-walker-result-var
.
metaenv-add-function-like-entry
.
metaenv-add-variable-like-entry
.
metaenv-clone
.
metaenv-clone-args
.
metaenv-expand-lambda-expression
.
metaenv-macroexpand-all
.
metaenv-macroexpand-all-special-form-defun
.
metaenv-wrap-form
.
print-object
.
t
:lexenvp
(gensym)
:result-var
:function-marker
:pending-variables
:pending-functions
Jump to: | (
D E F G I L M P S W |
---|
Jump to: | (
D E F G I L M P S W |
---|
Jump to: | *
A B C D F L N O P Q R S T V |
---|
Jump to: | *
A B C D F L N O P Q R S T V |
---|
Jump to: | A C D E F G L M P R S U W |
---|
Jump to: | A C D E F G L M P R S U W |
---|