Go to the first, previous, next, last section, table of contents.


4.13.3 Character Constants

Larch/C++ character constants are the same as C++ (single) character constants.

character-constant ::= [ L ] ' char-const-char '
char-const-char ::= normal-char | std-esc | "
normal-char ::= any character except ', ", \ or a newline
std-esc ::= \n               // newline           LF
      | \t                     // horizontal tab    HT
      | \v                     // vertical tab      VT
      | \b                     // backspace         BS
      | \r                     // carriage return   CR
      | \f                     // form feed         FF
      | \a                     // alert             BEL
      | \\                     // backslash         \ 
      | \?                     // question mark     ? 
      | \'                     // single quote      ' 
      | \"                     // double quote      "
      | \ octal-code         // octal code        o, oo, ooo
      | \x hex-digit [ hex-digit ] ...   // hex code  xhh...
octal-code ::= octal-digit | octal-digit octal-digit
                 | octal-digit octal-digit octal-digit

For example, 'l', '\t', and '\032' are character constants. The sort of a single character constant is char. The meaning of a character constant such as 'a' is not uniquely defined by C++ but depends on "the machine's character set" (section 2.5.2 [Ellis-Stroustrup90]). Therefore in Larch/C++, 'a', has sort char, but its numerical value is not uniquely defined. A constant that starts with L, for example L'a', is a wide character constant of sort wchar_t. Larch/C++ does not support multicharacter constants, as they are not well-defined. (See Section 2.5.2 of [Ellis-Stroustrup90] for a description of multicharacter constants.)

Larch/C++ supports the standard C++ escape sequences. The meaning of such a std-esc is as in C++. In an escape sequence, the octal (or hexadecimal) digit string ends with the first character that is not an octal-digit (or a hex-digit) (see Section 2.5.2 of [Ellis-Stroustrup90]).


Go to the first, previous, next, last section, table of contents.