Things that help you analyze and write code (code walkers, code transformers, introspection libraries, etc.)

  • agnostic-lizard - An almost correct portable code walker for Common Lisp
  • arrow-macros - Clojure-like arrow macros in Common Lisp
  • bubble-operator-upwards - bubble-operator-upwards is a function that "bubbles an operator upwards" in a form, demultiplexing all alternative branches by way of cartesian product
  • cl-cont - cl-cont is a delimited continuations library for Common Lisp
  • cl-curlex - Leak *LEXENV*, which describes lexical environment, into the runtime
  • cl-indeterminism - Find and manipulate undefined variables and functions in forms
  • cl-walker - cl-walker implements an sexp → CLOS AST tree transformation (and vice versa)
  • Concrete-Syntax-Tree - Concrete Syntax Trees represent s-expressions with source information
  • de.setf.utility - de setf utility is a collection of Common Lisp utilities functions and several purpose-specific libraries
  • deprecations - deprecations allows you to define functions, generic functions, macros and symbol macros as deprecated
  • linewise-template - A Common Lisp library for processing text files and streams as templates conforming to simple line-based hierarchical formats
  • macro-eval - A kind of eval for use at macro-expansion time (such as for constant-folding purposes)
  • macroexpand-dammit - macroexpand-dammit is a code walker by John Fremlin
  • parse-declarations - Parse-Declarations is a metaprogramming library to parse, filter, and build Common Lisp declarations (things like (inline foo))
  • parse-number-range - parse-number-range parses loop's convenient "for-as-arithmetic" syntax into 5 simple values
  • quasiquote-2.0 - An alternative quasiquote syntax aimed at being more suitable for macros that define other macros
  • reader-interception - reader-interception is a library for replacing the lisp reader with your own, so you can define your own syntax or compile other language through Lisp
  • symbol-namespaces - symbol-namespaces defines a new kind of package that's named by a symbol rather than a string