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
MEXPR
in 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.