CLCS

Constituent Traits

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
 Backspaceinvalid{alphabetic_2
 Tabinvalid*}alphabetic_2
 Newlineinvalid*+alphabetic_2, plus sign
 Linefeedinvalid*-alphabetic_2, minus sign
 Pageinvalid*.alphabetic_2, dot, decimal point
 Returninvalid*/alphabetic_2, ratio marker
 Spaceinvalid*A, aalphadigit
 !alphabetic_2B, balphadigit
 "alphabetic_2*C, calphadigit
 #alphabetic_2*D, dalphadigit, double-float exponent marker
 $alphabetic_2E, ealphadigit, float exponent marker
 %alphabetic_2F, falphadigit, single-float exponent marker
 &alphabetic_2G, galphadigit
 ’alphabetic_2*H, halphadigit
 (alphabetic_2* I, ialphadigit
 )alphabetic_2* J, jalphadigit
 *alphabetic_2K, kalphadigit
 ,alphabetic_2* L, lalphadigit, long-float exponent marker
 0-9alphadigitM, malphadigit
 :package markerN, nalphadigit
 ;alphabetic_2* O, oalphadigit
 <alphabetic_2P, palphadigit
 =alphabetic_2Q, qalphadigit
 >alphabetic_2R, ralphadigit
 ?alphabetic_2S, salphadigit, short-float exponent marker
 @alphabetic_2T, talphadigit
 [alphabetic_2U, ualphadigit
 \alphabetic_2* V, valphadigit
 ]alphabetic_2W, walphadigit
 ^alphabetic_2X, xalphadigit
 _alphabetic_2Y, yalphadigit
 ‘alphabetic_2*  Z, zalphadigit
 |alphabetic_2* Ruboutinvalid
 ~alphabetic_2
Figure 2–8: Constituent Traits of Standard Characters and Semi-Standard Characters

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.