2.1.4.2 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.

 constituent traits         constituent traits                                   
 character                  character   
 ________________________________________________________________________________
 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   

 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.