.c	Tuesday  Dec 7,1982  16:00  FM+7D.4H.6M.32S.  -*- Bolio -*-

.headings off
 
.center 5Common Lisp Reader Syntax*
.table 3 90 210 0 0 0
.item \
3\* is the slashification (quoting) character in lan{common
lisp}.  When encountered "normally", it causes the next character to
be treated as a 2consituent*, and not translated.  Thus,
3foo\bar* reads as 3FOObAR*, 3"foo\"bar"* reads as the
string containing the characters 3foo"bar*, 3\12345* as an
atomic symbol with the print name 312345*, and 3\(* as a
one-character atomic symbol.
.item (
Starts a list or cons.
.item )
Ends a list, cons, or other thing utilizing 3(* to start (like
3#(*, for general vectors).
.item |
Superquoted-symbol.  Reads in as a symbol with exactly the characters
between the 3|* and the following 3|*;  3|* and
3\* may be included by preceding them by a 3\*.  (Preceding
things not requiring slashification by a backslash is not harmful.)
.item "
String. Otherwise like 3|*, but uses 3"* instead.
.item #
Reads any immediately following digits as a decimal argument, and
dispatches off of the next character (see below).
.item `
Backquote.  See the Maclisp Extensions Manual for details.
.item ,
Significant to Backquote.  See the Maclisp Extensions Manual.
.item .
Cons dot, if delimited.  Otherwise, may be decimal point in integers
or floats, or constituent in symbols, except that tokens consisting
solely of 3"."*s are considered illegal (error-check for ellipsis
from printing truncation).
.item '
Standard single-quote;  3'2expr** --> 3(quote 2expr*)*.
.end_table
Digits, optionally preceded by a sign character and optionally
followed by a decimal point, form an integer.
.lisp
2[sign]{digit}*decimal-point{digit}+[exponentiation-marker[sign]{digit}+]*
.end_lisp
is the subset of the lan{common lisp} specification for a floating
point number which lan{nil} currently accepts.
2exponentiation-marker* is one of the characters 3S*, 3F*,
3D*, 3L*, 3B*, or 3E*, which correspond to
2short*, 2single*, 2double*, 2long*, 2big*, and
"the default" float formats. (Short, single, double, and the default
are all double in lan{nil}, the remainder being undefined.)
.space 1
.center 5Sharpsign Macro Characters*
.table 3 90 210 0 0 0
.item '
3function* abbreviation, like the 3'* reader macro.
.item (
General-vector syntax.  The list of items up to the following
3)* is converted to a general vector.
.item *
Reads bit-vector;  following 30* and 31* characters, to
delimiter.
.item +
Read-time conditional.  See Maclisp Extensions Manual for details.
.item -
Read-time conditional.  See Maclisp Extensions Manual for details.
.item .
Read-time evaluation;  reads in as the evaluation of the following form.
.item B
Binary rational.  Reads following rational number in base 2.
.item C
Complex.  3#C(2realpart* 2imagpart*)*.
.item O
Octal rational.  Reads following rational number in base 8.
.item R
Reads following rational number in the radix given to 3#* as an
argument.
.item X
Hexadecimal rational.  Reads following rational number in base 16.
.item \
Reads the following character or token, and returns that named
character object.  Thus, 3#\a* is the character object for
lower-case 3a*, 3#\control-a* is the character object
(upper-case) 3A* with the control bit set, 3#\meta-super-\a*
is the character (lower-case) 3a* with the meta and super bits
set, and 3#\hyper-space* is the 2space* character with the
hyper bit on.
.end_table
Not yet supported in lan{nil} are 3:* (read uninterned
symbol), 3#* (reference to a label), 3=* (label a lisp
object), 3,* (load-time evaluation), 3A* (read an array),
and 3S* (3defstruct*-defined structure).

