beowulf.read
This provides the reader required for boostrapping. It’s not a bad reader - it provides feedback on errors found in the input - but it isn’t the real Lisp reader.
Intended deviations from the behaviour of the real Lisp reader are as follows:
- It reads the meta-expression language
MEXPRin addition to the symbolic expression languageSEXPR, which I do not believe the Lisp 1.5 reader ever did; - It treats everything between a double semi-colon and an end of line as a comment, as most modern Lisps do; but I do not believe Lisp 1.5 had this feature.
Both these extensions can be disabled by using the --strict command line switch.
gsp
(gsp s)Shortcut macro - the internals of read; or, if you like, read-string. Argument s should be a string representation of a valid Lisp expression.
READ
(READ)(READ input)An implementation of a Lisp reader sufficient for bootstrapping; not necessarily the final Lisp reader. input should be either a string representation of a LISP expression, or else an input stream. A single form will be read.
read-from-console
(read-from-console)Attempt to read a complete lisp expression from the console. NOTE that this will only really work for S-Expressions, not M-Expressions.
strip-line-comments
(strip-line-comments s)Strip blank lines and comment lines from this string s, expected to be Lisp source.