📝User-programmable language parser
Some languages allow the user to program the language parser itself.
Examples
- Common Lisp has
*readtable*
(Common Lisp: readtable) that allows to specify a parser function for any character. - Racket allow allows using different parsers (“languages”) with
#lang
. - Forth allows adding new “compiling words” to the dictionary that execute behavior at compile-time, which may include reading from input stream.