Next: , Previous: , Up: scheme lex syntax   [Index]


3.4.3.7 Strings

String are represented by sequences of characters enclosed within doublequotes ("). Within a string literal, various escape sequences represent characters other than themselves. Escape sequences always start with a backslash (\):

\a

alarm, U+0007

\b

backspace, U+0008

\t

character tabulation, U+0009

\n

linefeed, U+000A

\v

line tabulation, U+000B

\f

formfeed, U+000C

\r

return, U+000D

\"

doublequote, U+0022

\

backslash, U+005C

\<intraline whitespace><line ending> <intraline whitespace>

nothing

\x<hex scalar value>;

specified character (note the terminating semi–colon).

These escape sequences are case-sensitive, except that the alphabetic digits of a ?hex-scalar-value can be uppercase or lowercase.

Any other character in a string after a backslash is a syntax violation. Except for a line ending, any character outside of an escape sequence and not a doublequote stands for itself in the string literal. A line ending that does not follow a backslash stands for a linefeed character.

Examples:

"abc"           U+0061, U+0062, U+0063
"\x41;bc"       "Abc" ; U+0041, U+0062, U+0063
"\x41; bc"      "A bc"
                U+0041, U+0020, U+0062, U+0063
"\x41bc;"       U+41BC
"\x41"          &lexical exception
"\x;"           &lexical exception
"\x41bx;"       &lexical exception
"\x00000041;"   "A" ; U+0041
"\x0010FFFF;"   U+10FFFF
"\x00110000;"   &lexical exception
                out of range
"\x000000001;"  U+0001
"\xD800;"       &lexical exception
                in excluded range
"A
bc"             U+0041, U+000A, U+0062, U+0063
                if no space occurs after the A