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.