Constituent Traits (ANSI and GNU Common Lisp Document)

Next: Invalid Characters, Previous: Constituent Characters, Up: Character Syntax Types

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

Next: Invalid Characters, Previous: Constituent Characters, Up: Character Syntax Types