hu.dwim.walker

API Reference

hu.dwim.walker

Common Lisp form walker and unwalker (to and from CLOS instances).

HU.DWIM.WALKER

A code walker for Common Lisp
  • Function MAKE-EMPTY-LEXICAL-ENVIRONMENT
  • Function PROCLAIMED-SPECIAL-VARIABLE?/GLOBAL (name lexenv)
  • Function DECLARED-VARIABLE-TYPE/GLOBAL (name)
  • Function ITERATE-VARIABLES-IN-LEXENV (visitor lexenv &key include-ignored? (include-specials? t) include-macros?)
  • Function ITERATE-FUNCTIONS-IN-LEXENV (visitor lexenv &key include-macros?)
  • Function ITERATE-BLOCKS-IN-LEXENV (visitor lexenv)
  • Function ITERATE-TAGS-IN-LEXENV (visitor lexenv)
  • Function WALK-FORM (form &rest rest-arg1)
  • Function WALK-FORM/COMPOUND (name form parent environment)
  • Function WALK-FORM/APPLICATION (form parent operator arguments env)
  • Function WALK-FORM/LAMBDA (form parent env)
  • Function WALK-FORM/LAMBDA-LIKE (ast-node args body env &rest rest-arg203)
  • Function UNWALK-FORM (form)
  • Function UNWALK-FORMS (forms)
  • Macro DO-AST-LINKS ((item form &rest flags &key rewrite &allow-other-keys) &body code)
  • Function MAP-AST (visitor form)
  • Function COLLECT-VARIABLE-REFERENCES (top-form &key (type 'variable-reference-form))
  • Function ANNOTATE-BINDING-USAGE (top-form)
  • Function COPY-AST-FORM (form &rest initargs)
    Duplicate an AST form instance
  • Function REWRITE-AST (top-form visitor &key parent parent-field)
  • Function DEEP-COPY-AST (top-form &key replace-cb parent parent-field (lookup-table (make-hash-table :test #'eq)) upper-table)
    Copy a form tree with proper distinction between back and forward refs.
  • Function SUBSTITUTE-AST-IF (new test tree &key in-place first-without-copy)
  • Condition WALKER-CONDITION  (CONDITION)
  • Condition WALKER-ERROR  (WALKER-CONDITION, ERROR)
  • Condition SIMPLE-WALKER-ERROR  (SIMPLE-ERROR, WALKER-ERROR)
  • Function SIMPLE-WALKER-ERROR (message &rest args)
  • Condition WALKER-WARNING  (WALKER-CONDITION, WARNING)
  • Condition WALKER-STYLE-WARNING  (WALKER-WARNING, STYLE-WARNING)
  • Condition SIMPLE-WALKER-STYLE-WARNING  (WALKER-STYLE-WARNING, SIMPLE-STYLE-WARNING)
  • Function SIMPLE-WALKER-STYLE-WARNING (format-control &rest format-arguments)
  • Condition UNDEFINED-REFERENCE  (WALKER-STYLE-WARNING)
  • Condition UNDEFINED-VARIABLE-REFERENCE  (UNDEFINED-REFERENCE)
  • Condition UNDEFINED-FUNCTION-REFERENCE  (UNDEFINED-REFERENCE)
  • Class APPLICATION-FORM  (WALKED-FORM)
    OPERATOR   Accessor: OPERATOR-OF
    ARGUMENTS   Accessor: ARGUMENTS-OF
  • Method COPY-AST-SLOTS ((new application-form) (old application-form))
  • Method ENUM-AST-LINKS ((form application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class LEXICAL-APPLICATION-FORM  (APPLICATION-FORM)
    No slots.
  • Class WALKED-LEXICAL-APPLICATION-FORM  (LEXICAL-APPLICATION-FORM)
    DEFINITION   Accessor: DEFINITION-OF
  • Method COPY-AST-SLOTS ((new walked-lexical-application-form) (old walked-lexical-application-form))
  • Method ENUM-AST-LINKS ((form walked-lexical-application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form walked-lexical-application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class UNWALKED-LEXICAL-APPLICATION-FORM  (LEXICAL-APPLICATION-FORM)
    No slots.
  • Class FREE-APPLICATION-FORM  (APPLICATION-FORM)
    No slots.
  • Class LAMBDA-APPLICATION-FORM  (APPLICATION-FORM)
    OPERATOR   Accessor: OPERATOR-OF
  • Method COPY-AST-SLOTS ((new lambda-application-form) (old lambda-application-form))
  • Method ENUM-AST-LINKS ((form lambda-application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form lambda-application-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class FUNCTION-FORM  (WALKED-FORM)
    No slots.
  • Class ORDINARY-LAMBDA-LIST-FORM-MIXIN  (BINDER-FORM-MIXIN)
    ALLOW-OTHER-KEYS?   Accessor: ALLOW-OTHER-KEYS?
  • Method COPY-AST-SLOTS ((new ordinary-lambda-list-form-mixin) (old ordinary-lambda-list-form-mixin))
  • Class LAMBDA-FUNCTION-FORM  (ORDINARY-LAMBDA-LIST-FORM-MIXIN, FUNCTION-FORM, IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class BLOCK-LAMBDA-FUNCTION-FORM  (LAMBDA-FUNCTION-FORM, BLOCK-FORM)
    No slots.
  • Class FUNCTION-DEFINITION-FORM  (BLOCK-LAMBDA-FUNCTION-FORM, DOCSTRING-MIXIN)
    No slots.
  • Class NAMED-LAMBDA-FUNCTION-FORM  (BLOCK-LAMBDA-FUNCTION-FORM)
    SPECIAL-FORM   Accessor: SPECIAL-FORM-OF
  • Method COPY-AST-SLOTS ((new named-lambda-function-form) (old named-lambda-function-form))
  • Class LEXICAL-FUNCTION-FORM  (BLOCK-LAMBDA-FUNCTION-FORM)
    No slots.
  • Class FUNCTION-OBJECT-FORM  (NAMED-WALKED-FORM)
    No slots.
  • Class LEXICAL-FUNCTION-OBJECT-FORM  (FUNCTION-OBJECT-FORM)
    No slots.
  • Class WALKED-LEXICAL-FUNCTION-OBJECT-FORM  (LEXICAL-FUNCTION-OBJECT-FORM)
    DEFINITION   Accessor: DEFINITION-OF
  • Method COPY-AST-SLOTS ((new walked-lexical-function-object-form) (old walked-lexical-function-object-form))
  • Method ENUM-AST-LINKS ((form walked-lexical-function-object-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form walked-lexical-function-object-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class UNWALKED-LEXICAL-FUNCTION-OBJECT-FORM  (LEXICAL-FUNCTION-OBJECT-FORM)
    No slots.
  • Class FREE-FUNCTION-OBJECT-FORM  (FUNCTION-OBJECT-FORM)
    No slots.
  • Function WALK-ORDINARY-LAMBDA-LIST (lambda-list target-node env &key allow-specializers)
  • Class FUNCTION-ARGUMENT-FORM  (NAME-DEFINITION-FORM)
    No slots.
  • Class REQUIRED-FUNCTION-ARGUMENT-FORM  (FUNCTION-ARGUMENT-FORM)
    No slots.
  • Class SPECIALIZED-FUNCTION-ARGUMENT-FORM  (REQUIRED-FUNCTION-ARGUMENT-FORM)
    SPECIALIZER   Accessor: SPECIALIZER-OF
  • Method COPY-AST-SLOTS ((new specialized-function-argument-form) (old specialized-function-argument-form))
  • Class FUNCTION-ARGUMENT-FORM-WITH-DEFAULT-VALUE  (FUNCTION-ARGUMENT-FORM)
    DEFAULT-VALUE   Accessor: DEFAULT-VALUE-OF
  • Method COPY-AST-SLOTS ((new function-argument-form-with-default-value) (old function-argument-form-with-default-value))
  • Method ENUM-AST-LINKS ((form function-argument-form-with-default-value) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form function-argument-form-with-default-value) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class FUNCTION-ARGUMENT-FORM-WITH-SUPPLIED-P-PARAMETER  (FUNCTION-ARGUMENT-FORM-WITH-DEFAULT-VALUE)
    SUPPLIED-P-PARAMETER-NAME   Accessor: SUPPLIED-P-PARAMETER-NAME-OF
  • Method COPY-AST-SLOTS ((new function-argument-form-with-supplied-p-parameter) (old function-argument-form-with-supplied-p-parameter))
  • Class OPTIONAL-FUNCTION-ARGUMENT-FORM  (FUNCTION-ARGUMENT-FORM-WITH-SUPPLIED-P-PARAMETER)
    No slots.
  • Class KEYWORD-FUNCTION-ARGUMENT-FORM  (FUNCTION-ARGUMENT-FORM-WITH-SUPPLIED-P-PARAMETER)
    KEYWORD-NAME   Accessor: KEYWORD-NAME-OF
  • Method COPY-AST-SLOTS ((new keyword-function-argument-form) (old keyword-function-argument-form))
  • Function EFFECTIVE-KEYWORD-NAME-OF (k)
  • Class REST-FUNCTION-ARGUMENT-FORM  (FUNCTION-ARGUMENT-FORM)
    No slots.
  • Class AUXILIARY-FUNCTION-ARGUMENT-FORM  (FUNCTION-ARGUMENT-FORM-WITH-DEFAULT-VALUE)
    No slots.
  • Function UNWALK-ORDINARY-LAMBDA-LIST (node)
  • Class FUNCTION-BINDING-FORM  (BINDER-FORM-MIXIN, IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class FLET-FORM  (FUNCTION-BINDING-FORM)
    No slots.
  • Class LABELS-FORM  (FUNCTION-BINDING-FORM)
    No slots.
  • Class CONSTANT-FORM  (WALKED-FORM)
    VALUE   Accessor: VALUE-OF
  • Method COPY-AST-SLOTS ((new constant-form) (old constant-form))
  • Class VARIABLE-REFERENCE-FORM  (NAMED-WALKED-FORM)
    DECLARED-TYPE   Accessor: DECLARED-TYPE-OF
  • Method COPY-AST-SLOTS ((new variable-reference-form) (old variable-reference-form))
  • Class LEXICAL-VARIABLE-REFERENCE-FORM  (VARIABLE-REFERENCE-FORM)
    No slots.
  • Class WALKED-LEXICAL-VARIABLE-REFERENCE-FORM  (LEXICAL-VARIABLE-REFERENCE-FORM)
    A reference to a local variable defined in the lexical environment inside the form passed to walk-form.
    DEFINITION   Accessor: DEFINITION-OF
  • Method COPY-AST-SLOTS ((new walked-lexical-variable-reference-form) (old walked-lexical-variable-reference-form))
  • Method ENUM-AST-LINKS ((form walked-lexical-variable-reference-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form walked-lexical-variable-reference-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class UNWALKED-LEXICAL-VARIABLE-REFERENCE-FORM  (LEXICAL-VARIABLE-REFERENCE-FORM)
    A reference to a local variable defined in the lexical environment outside of the form passed to walk-form.
    No slots.
  • Class SPECIAL-VARIABLE-REFERENCE-FORM  (VARIABLE-REFERENCE-FORM)
    No slots.
  • Class FREE-VARIABLE-REFERENCE-FORM  (SPECIAL-VARIABLE-REFERENCE-FORM)
    No slots.
  • Class BLOCK-FORM  (IMPLICIT-PROGN-MIXIN, NAME-DEFINITION-FORM)
    No slots.
  • Class RETURN-FROM-FORM  (WALKED-FORM)
    TARGET-BLOCK   Accessor: TARGET-BLOCK-OF
    RESULT   Accessor: RESULT-OF
  • Method COPY-AST-SLOTS ((new return-from-form) (old return-from-form))
  • Method ENUM-AST-LINKS ((form return-from-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form return-from-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Condition RETURN-FROM-UNKNOWN-BLOCK  (WALKER-ERROR)
  • Class CATCH-FORM  (IMPLICIT-PROGN-MIXIN)
    TAG   Accessor: TAG-OF
  • Method COPY-AST-SLOTS ((new catch-form) (old catch-form))
  • Class THROW-FORM  (WALKED-FORM)
    TAG   Accessor: TAG-OF
    VALUE   Accessor: VALUE-OF
  • Method COPY-AST-SLOTS ((new throw-form) (old throw-form))
  • Method ENUM-AST-LINKS ((form throw-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form throw-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class EVAL-WHEN-FORM  (IMPLICIT-PROGN-MIXIN)
    EVAL-WHEN-TIMES   Accessor: EVAL-WHEN-TIMES-OF
  • Method COPY-AST-SLOTS ((new eval-when-form) (old eval-when-form))
  • Class IF-FORM  (WALKED-FORM)
    CONDITION   Accessor: CONDITION-OF
    THEN   Accessor: THEN-OF
    ELSE   Accessor: ELSE-OF
  • Method COPY-AST-SLOTS ((new if-form) (old if-form))
  • Method ENUM-AST-LINKS ((form if-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form if-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class LEXICAL-VARIABLE-BINDER-FORM  (BINDER-FORM-MIXIN, IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class LEXICAL-VARIABLE-BINDING-FORM  (NAME-DEFINITION-FORM)
    INITIAL-VALUE   Accessor: INITIAL-VALUE-OF
    SPECIAL-BINDING   Accessor: SPECIAL-BINDING?
  • Method COPY-AST-SLOTS ((new lexical-variable-binding-form) (old lexical-variable-binding-form))
  • Method ENUM-AST-LINKS ((form lexical-variable-binding-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form lexical-variable-binding-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class LET-FORM  (LEXICAL-VARIABLE-BINDER-FORM)
    No slots.
  • Class LET*-FORM  (LEXICAL-VARIABLE-BINDER-FORM)
    No slots.
  • Class LOCALLY-FORM  (IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class MACRO-BINDING-FORM  (NAME-DEFINITION-FORM)
    EXPANSION   Accessor: EXPANSION-OF
  • Method COPY-AST-SLOTS ((new macro-binding-form) (old macro-binding-form))
  • Class MACROLET-FORM  (BINDER-FORM-MIXIN, IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class MULTIPLE-VALUE-CALL-FORM  (WALKED-FORM)
    FUNCTION-DESIGNATOR   Accessor: FUNCTION-DESIGNATOR-OF
    ARGUMENTS   Accessor: ARGUMENTS-OF
  • Method COPY-AST-SLOTS ((new multiple-value-call-form) (old multiple-value-call-form))
  • Method ENUM-AST-LINKS ((form multiple-value-call-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form multiple-value-call-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class MULTIPLE-VALUE-PROG1-FORM  (WALKED-FORM)
    FIRST-FORM   Accessor: FIRST-FORM-OF
    OTHER-FORMS   Accessor: OTHER-FORMS-OF
  • Method COPY-AST-SLOTS ((new multiple-value-prog1-form) (old multiple-value-prog1-form))
  • Method ENUM-AST-LINKS ((form multiple-value-prog1-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form multiple-value-prog1-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class PROGN-FORM  (IMPLICIT-PROGN-MIXIN)
    No slots.
  • Class PROGV-FORM  (IMPLICIT-PROGN-MIXIN)
    VARIABLES-FORM   Accessor: VARIABLES-FORM-OF
    VALUES-FORM   Accessor: VALUES-FORM-OF
  • Method COPY-AST-SLOTS ((new progv-form) (old progv-form))
  • Method ENUM-AST-LINKS ((form progv-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form progv-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class SETQ-FORM  (WALKED-FORM)
    VARIABLE   Accessor: VARIABLE-OF
    VALUE   Accessor: VALUE-OF
  • Method COPY-AST-SLOTS ((new setq-form) (old setq-form))
  • Method ENUM-AST-LINKS ((form setq-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form setq-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class SYMBOL-MACROLET-FORM  (BINDER-FORM-MIXIN, IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN)
    No slots.
  • Class GO-TAG-FORM  (NAME-DEFINITION-FORM)
    JUMP-TARGET   Accessor: JUMP-TARGET-OF
  • Class TAGBODY-FORM  (IMPLICIT-PROGN-MIXIN)
    No slots.
  • Class GO-FORM  (NAMED-WALKED-FORM)
    TAG   Accessor: TAG-OF
  • Method COPY-AST-SLOTS ((new go-form) (old go-form))
  • Method ENUM-AST-LINKS ((form go-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form go-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method JUMP-TARGET-OF ((form go-form))
  • Function ENCLOSING-TAGBODY-OF (form)
  • Class THE-FORM  (WALKED-FORM)
    DECLARED-TYPE   Accessor: DECLARED-TYPE-OF
    VALUE   Accessor: VALUE-OF
  • Method COPY-AST-SLOTS ((new the-form) (old the-form))
  • Method ENUM-AST-LINKS ((form the-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form the-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class UNWIND-PROTECT-FORM  (WALKED-FORM)
    PROTECTED-FORM   Accessor: PROTECTED-FORM-OF
    CLEANUP-FORM   Accessor: CLEANUP-FORM-OF
  • Method COPY-AST-SLOTS ((new unwind-protect-form) (old unwind-protect-form))
  • Method ENUM-AST-LINKS ((form unwind-protect-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form unwind-protect-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class LOAD-TIME-VALUE-FORM  (WALKED-FORM)
    BODY   Accessor: BODY-OF
    READ-ONLY   Accessor: READ-ONLY?
    VALUE   Accessor: VALUE-OF
  • Method COPY-AST-SLOTS ((new load-time-value-form) (old load-time-value-form))
  • Method ENUM-AST-LINKS ((form load-time-value-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form load-time-value-form) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Struct WALK-ENVIRONMENT
    FUNCTIONS
    VARIABLES
    BLOCKS
    TAGS
    LEXICAL-ENVIRONMENT
  • Function WALK-ENVIRONMENT/FUNCTIONS (instance)
  • Function (setf WALK-ENVIRONMENT/FUNCTIONS) (value instance)
  • Function WALK-ENVIRONMENT/VARIABLES (instance)
  • Function (setf WALK-ENVIRONMENT/VARIABLES) (value instance)
  • Function WALK-ENVIRONMENT/BLOCKS (instance)
  • Function (setf WALK-ENVIRONMENT/BLOCKS) (value instance)
  • Function WALK-ENVIRONMENT/TAGS (instance)
  • Function (setf WALK-ENVIRONMENT/TAGS) (value instance)
  • Function WALK-ENVIRONMENT/LEXICAL-ENVIRONMENT (instance)
  • Function (setf WALK-ENVIRONMENT/LEXICAL-ENVIRONMENT) (value instance)
  • Function WALK-ENVIRONMENT/COPY (source)
  • Function MACROEXPAND-ALL (form &optional (env (make-empty-lexical-environment)))
  • Function SPECIAL-VARIABLE-NAME? (name &optional lexenv only-globals?)
    Determines if the name has been globally proclaimed special.
  • Function PROCLAIMED-SPECIAL-VARIABLE?/LEXICAL (name lexenv)
  • Function PROCLAIMED-SPECIAL-VARIABLE? (name &optional lexenv only-globals?)
  • Function DECLARED-VARIABLE-TYPE/LEXICAL (name lexenv)
  • Function DECLARED-VARIABLE-TYPE (name &optional lexenv)
  • Function COLLECT-STANDARD-WALKED-FORM-SUBCLASSES
    Returns a list of all the subclasses of hu.dwim.walker:walked-form whose name is in the hu.dwim.walker package. This is useful if you want to generate a complete AST-NODE-TYPE-MAPPING hashtable with a mixin in the class of each walked node.
  • Function MAKE-WALK-ENVIRONMENT (&optional lexenv)
  • Function WALK-ENVIRONMENT/AUGMENT (env type name &optional datum)
  • Macro WALK-ENVIRONMENT/AUGMENT! (env type name &optional datum &rest other-datum)
  • Function WALK-ENVIRONMENT/FIND (environment type name &key (otherwise :error otherwise?))
  • Macro WITH-WALKER-HANDLER-LEXICAL-ENVIRONMENT (&body body)
  • Macro DEFWALKER-HANDLER (name &body body)
  • Macro DEFUNWALKER-HANDLER (class (&rest slots) &body body)
  • Generic-Function COPY-AST-SLOTS (new old)
    Copies slots from old to new
  • Generic-Function ENUM-AST-LINKS (form visitor &key include-main-refs include-back-refs raw-lists)
    Enumerate tree links using the visitor.
  • Method ENUM-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method ENUM-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method ENUM-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Generic-Function REWRITE-AST-LINKS (form visitor &key include-main-refs include-back-refs raw-lists)
    Rewrite tree links using the visitor.
  • Method REWRITE-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form t) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method ENUM-AST-LINKS ((form cons) visitor &key include-main-refs include-back-refs raw-lists)
  • Class WALKED-FORM
    PARENT   Accessor: PARENT-OF
    SOURCE   Accessor: SOURCE-OF
    RESULT-OF-MACROEXPANSION?   Accessor: RESULT-OF-MACROEXPANSION?
    ATTRIBUTES   Accessor: ATTRIBUTES-OF
  • Method COPY-AST-SLOTS ((new walked-form) (old walked-form))
  • Class UNWALKED-FORM  (WALKED-FORM)
    A quote regarding walking, the source slot contains the original form ready to be emitted as-is by UNWALK-FORM.
    No slots.
  • Macro FORM-ATTRIBUTE (form tag &optional default-value)
    Access the attribute plist of a form.
  • Class NAMED-WALKED-FORM  (WALKED-FORM)
    NAME   Accessor: NAME-OF
  • Method COPY-AST-SLOTS ((new named-walked-form) (old named-walked-form))
  • Function FIND-FORM-BY-NAME (name forms &key (type 't))
  • Class NAME-DEFINITION-FORM  (NAMED-WALKED-FORM)
    USAGES   Accessor: USAGES-OF
  • Method COPY-AST-SLOTS ((new docstring-mixin) (old docstring-mixin))
  • Macro WITH-FORM-OBJECT ((variable type parent &rest initargs) &body body)
  • Macro DO-VARIABLES-IN-LEXENV ((lexenv name &key (ignored? (gensym) ignored-provided?) (special? (gensym) special-provided?) (macro? (gensym) macro-provided?) (macro-body (gensym)) (type (gensym) type-provided?)) &body body)
  • Function COLLECT-VARIABLES-IN-LEXENV (lexenv &key include-ignored? (include-specials? t) filter)
  • Function FIND-VARIABLE-IN-LEXENV (name-to-find lexenv &key include-ignored? (include-specials? t))
  • Macro DO-FUNCTIONS-IN-LEXENV ((lexenv name &optional (macro? (gensym) macro-provided?) (macro-function (gensym) macro-function-provided?)) &body body)
  • Function COLLECT-FUNCTIONS-IN-LEXENV (lexenv &key filter)
  • Function FIND-FUNCTION-IN-LEXENV (name-to-find lexenv)
  • Macro DO-MACROS-IN-LEXENV ((lexenv name &optional (macro-fn (gensym) macro-fn-provided?)) &body body &aux (macro? (gensym)))
  • Function COLLECT-MACROS-IN-LEXENV (lexenv &key filter)
  • Function FIND-MACRO-IN-LEXENV (name-to-find lexenv)
  • Macro DO-SYMBOL-MACROS-IN-LEXENV ((lexenv name &optional (definition (gensym) definition-provided?)) &body body)
  • Function COLLECT-SYMBOL-MACROS-IN-LEXENV (lexenv &key filter)
  • Function FIND-SYMBOL-MACRO-IN-LEXENV (name-to-find lexenv)
  • Macro DO-BLOCKS-IN-LEXENV ((lexenv name) &body body)
  • Function COLLECT-BLOCKS-IN-LEXENV (lexenv &key filter)
  • Function FIND-BLOCK-IN-LEXENV (name-to-find lexenv)
  • Macro DO-TAGS-IN-LEXENV ((lexenv name) &body body)
  • Function COLLECT-TAGS-IN-LEXENV (lexenv &key filter)
  • Function FIND-TAG-IN-LEXENV (name-to-find lexenv)
  • Class MACRO-DEFINITION-FORM  (NAMED-WALKED-FORM, DOCSTRING-MIXIN)
    No slots.
  • Class IMPLICIT-PROGN-MIXIN  (WALKED-FORM)
    BODY   Accessor: BODY-OF
  • Method COPY-AST-SLOTS ((new implicit-progn-mixin) (old implicit-progn-mixin))
  • Method ENUM-AST-LINKS ((form implicit-progn-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form implicit-progn-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class IMPLICIT-PROGN-WITH-DECLARATIONS-MIXIN  (IMPLICIT-PROGN-MIXIN)
    DECLARATIONS   Accessor: DECLARATIONS-OF
  • Method COPY-AST-SLOTS ((new implicit-progn-with-declarations-mixin) (old implicit-progn-with-declarations-mixin))
  • Method ENUM-AST-LINKS ((form implicit-progn-with-declarations-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form implicit-progn-with-declarations-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class BINDER-FORM-MIXIN  (WALKED-FORM)
    BINDINGS   Accessor: BINDINGS-OF
  • Method COPY-AST-SLOTS ((new binder-form-mixin) (old binder-form-mixin))
  • Method ENUM-AST-LINKS ((form binder-form-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Method REWRITE-AST-LINKS ((form binder-form-mixin) visitor &key (include-main-refs t) include-back-refs raw-lists)
  • Class DECLARATION-FORM  (WALKED-FORM)
    No slots.
  • Class OPTIMIZE-DECLARATION-FORM  (DECLARATION-FORM)
    SPECIFICATION   Accessor: SPECIFICATION-OF
  • Method COPY-AST-SLOTS ((new optimize-declaration-form) (old optimize-declaration-form))
  • Class VARIABLE-DECLARATION-FORM  (DECLARATION-FORM, NAMED-WALKED-FORM)
    No slots.
  • Class FUNCTION-DECLARATION-FORM  (DECLARATION-FORM, NAMED-WALKED-FORM)
    No slots.
  • Class DYNAMIC-EXTENT-DECLARATION-FORM-MIXIN  (DECLARATION-FORM)
    No slots.
  • Class VARIABLE-DYNAMIC-EXTENT-DECLARATION-FORM  (VARIABLE-DECLARATION-FORM, DYNAMIC-EXTENT-DECLARATION-FORM-MIXIN)
    No slots.
  • Class FUNCTION-DYNAMIC-EXTENT-DECLARATION-FORM  (FUNCTION-DECLARATION-FORM, DYNAMIC-EXTENT-DECLARATION-FORM-MIXIN)
    No slots.
  • Class IGNORABLE-DECLARATION-FORM-MIXIN  (DECLARATION-FORM)
    No slots.
  • Class VARIABLE-IGNORABLE-DECLARATION-FORM  (VARIABLE-DECLARATION-FORM, IGNORABLE-DECLARATION-FORM-MIXIN)
    No slots.
  • Class FUNCTION-IGNORABLE-DECLARATION-FORM  (FUNCTION-DECLARATION-FORM, IGNORABLE-DECLARATION-FORM-MIXIN)
    No slots.
  • Class SPECIAL-VARIABLE-DECLARATION-FORM  (VARIABLE-DECLARATION-FORM)
    No slots.
  • Class TYPE-DECLARATION-FORM  (VARIABLE-DECLARATION-FORM)
    DECLARED-TYPE   Accessor: DECLARED-TYPE-OF
  • Method COPY-AST-SLOTS ((new type-declaration-form) (old type-declaration-form))
  • Class FTYPE-DECLARATION-FORM  (FUNCTION-DECLARATION-FORM)
    DECLARED-TYPE   Accessor: DECLARED-TYPE-OF
  • Method COPY-AST-SLOTS ((new ftype-declaration-form) (old ftype-declaration-form))
  • Class NOTINLINE-DECLARATION-FORM  (FUNCTION-DECLARATION-FORM)
    No slots.
  • Class INLINE-DECLARATION-FORM  (FUNCTION-DECLARATION-FORM)
    No slots.
  • Class UNKNOWN-DECLARATION-FORM  (DECLARATION-FORM)
    DECLARATION-FORM   Accessor: DECLARATION-FORM-OF
  • Method COPY-AST-SLOTS ((new unknown-declaration-form) (old unknown-declaration-form))
  • Method NAME-OF ((self unknown-declaration-form))
  • Function WALK-IMPLICT-PROGN (parent forms walk-env &key declarations-callback docstring-allowed declarations-allowed (whole *current-form*))

Also exports

  • HU.DWIM.DEF:-FORM-
  • HU.DWIM.DEF:-ENVIRONMENT-

hu.dwim.walker.documentation

No packages.