Every character has one or more constituent traits that define how the character is to be interpreted by the Lisp reader when the character is a constituent character. These constituent traits are alphabetic_2, digit, package marker, plus sign, minus sign, dot, decimal point, ratio marker, exponent marker, and invalid. Figure~2–8 shows the constituent traits of the standard characters and of certain semi-standard characters; no mechanism is provided for changing the constituent trait of a character. Any character with the alphadigit constituent trait in that figure is a digit if the current input base is greater than that character’s digit value, otherwise the character is alphabetic_2. Any character quoted by a single escape is treated as an alphabetic_2 constituent, regardless of its normal syntax.
Character | Constituent traits | Character | Constituent traits |
---|---|---|---|
Backspace | invalid | { | alphabetic_2 |
Tab | invalid* | } | alphabetic_2 |
Newline | invalid* | + | alphabetic_2, plus sign |
Linefeed | invalid* | - | alphabetic_2, minus sign |
Page | invalid* | . | alphabetic_2, dot, decimal point |
Return | invalid* | / | alphabetic_2, ratio marker |
Space | invalid* | A, a | alphadigit |
! | alphabetic_2 | B, b | alphadigit |
" | alphabetic_2* | C, c | alphadigit |
# | alphabetic_2* | D, d | alphadigit, double-float exponent marker |
$ | alphabetic_2 | E, e | alphadigit, float exponent marker |
% | alphabetic_2 | F, f | alphadigit, single-float exponent marker |
& | alphabetic_2 | G, g | alphadigit |
’ | alphabetic_2* | H, h | alphadigit |
( | alphabetic_2* | I, i | alphadigit |
) | alphabetic_2* | J, j | alphadigit |
* | alphabetic_2 | K, k | alphadigit |
, | alphabetic_2* | L, l | alphadigit, long-float exponent marker |
0-9 | alphadigit | M, m | alphadigit |
: | package marker | N, n | alphadigit |
; | alphabetic_2* | O, o | alphadigit |
< | alphabetic_2 | P, p | alphadigit |
= | alphabetic_2 | Q, q | alphadigit |
> | alphabetic_2 | R, r | alphadigit |
? | alphabetic_2 | S, s | alphadigit, short-float exponent marker |
@ | alphabetic_2 | T, t | alphadigit |
[ | alphabetic_2 | U, u | alphadigit |
\ | alphabetic_2* | V, v | alphadigit |
] | alphabetic_2 | W, w | alphadigit |
^ | alphabetic_2 | X, x | alphadigit |
_ | alphabetic_2 | Y, y | alphadigit |
‘ | alphabetic_2* | Z, z | alphadigit |
| | alphabetic_2* | Rubout | invalid |
~ | alphabetic_2 |
The interpretations in this table apply only to characters whose syntax type is constituent. Entries marked with an asterisk (*) are normally shadowed_2 because the indicated characters are of syntax type whitespace_2, macro character, single escape, or multiple escape; these constituent traits apply to them only if their syntax types are changed to constituent.