CONCEPT
        character escape codes

DESCRIPTION
	Character escape codes are used to represent some common
	special characters that would be awkward or impossible to
	enter in the source program directly. The escape characters
	come in two varieties: 'character escapes', which can be
	used to represent some particular formatting and special
	characters, and 'numeric escapes', which allow a character to
	be specified by its numeric encoding.

	Escapes begin always with a backslash '\'. If the following
	characters could not be treated as a valid escape the backslash
	is merely ignored.

	The following character escapes are available in LPC (the code
	may differ from platform to platform):

	  \a    Code 007    Bell
          \b    Code 008    Backspace
          \e    Code 027    Escape
	  \f    Code 012    Formfeed
	  \n    Code 010    Newline
	  \r    Code 013    Carriage-Return
	  \t    Code 009    Tabulator
	  \\    Code 092    Backslash itself
	  \'    Code 039    Single quote
	  \"    Code 034    Double quote

	The single quote may appear without preceding backslash in character
	constants, and the double quote may appear without a backslash in
	string constants.

	The numeric escapes could be used to express a character directly
	by its code in binary, octal, decimal or hexadecimal notation.
	
	  \0b   Beginning of binary notation
	  \0o   Beginning of octal notation
	  \0x   Beginning of hexadecimal notation
	  \x    Beginning of hexadecimal notation

	A backslash followed by a digit ([0-9]) which does not map to one
	of the above starts an escape in decimal notation.

	A numeric escape terminates when N digits have been used up or
	when the first character that is not a valid digit in that
	notation is encountered. N is 2 for hexadeximals, 3 for
	decimals and octals and 8 for binarys.

	If the specified code is greater than 255 a warning is issued and
	the value modulo 256 is used.

EXAMPLES
	Put a newline at the end of user output
	  "You enter.\n"

	Alert the user
	  "Beeep.\a Wake up\n"

	Put a double quote in a string
	  "You say \"hello\"\n"

	Write the line from above
	  "\"You say \\\"hello\\\"\\n\""

	Put a single quote in a string
	  "You say 'hello'\n"

	Some forms to write "abcde"
	  "abcde"
	  "ab\99de"              (with c's code being 99)
	  "ab\099de"
	  "ab\x63de"             (99 = 0x63)
	  "ab\0x63de"

	The following string consists of two characters
	  "\0111"                (\011 and 1)

	The following string consists of three characters
	  "\0o090"               (\000 and 9 and 0)
