Customizable reader for Emacs Lisp
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A custom Lisp reader written in Elisp. This makes it possible to define syntax extensions, similar to what can be done in Common Lisp with set-macro-character.

Once loaded, this library will kick in when loading other .el files, when evaluating expressions in a buffer via C-M-x or via M-x eval-region or when running commands in the REPL (M-x ielm) etc. If there are bugs, they will most probably render your Emacs session unusable.

It's recommended to byte-compile it before loading, otherwise it's quite slow:

emacs --batch --eval '(byte-compile-file "elisp-reader.el")'

This isn't a final product. It's rather a request for brainstorming. It proves that it's possible to implement file-local symbols or a better syntax for RegExp-s; a customizable reader in general—by just doing everything in Lisp rather than in C.

See the commentary inside the file for more information.