📝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.