Our specification of characters in [RM99] assumes that a certain list of names delimited by single quotes are available as identifiers:
| chr : Nat ->? Char; |
| ord : Char -> Nat; |
The list comprises of 'c', where c is any printing
character except one of the three characters ', " and
\. These characters are represented as '\' ',
'\" ', and '\\'. Further on
this list consists of elements ' \ nnn', where nnn is a
numeral in the range from 0 to 255.
The specification of strings in [RM99] again assumes a special
syntax for characters and lists. For strings (i.e. lists of
characters) we assume the following special syntax: The empty string
"" is allowed as an identifier. Moreover, a string
"c1 ...cn" is parsed as
'c1':: ...:: 'cn' :: "",
where the 'ci' are operation names from the
specification Char and the operation
:: inserts a character in a list. This leads to the specification:
[Char] with
|