3.8. CONVERT: ПРЕОБРАЗОВАНИЯ МЕЖДУ РАЗЛИЧНЫМИ ТИПАМИ ДАННЫХ
$func TO-LOWER e.Char = e.Char;
$func TO-UPPER e.Char = e.Char;
$func CHARS-TO-BYTES e.Char = e.Int;
$func BYTES-TO-CHARS e.Int = e.Char;
$func TO-CHARS e.Exp = e.Char;
$func TO-WORD e.Exp = s.Word;
$func? TO-INT e.Exp = s.Int;
<TO-LOWER 'AbCd+'> => 'abcd+'
<TO-LOWER 25> =>
$error(TO-LOWER "Invalid argument")
<TO-UPPER 'AbCd+'> => 'ABCD+'
<TO-UPPER 25> =>
$error(TO-UPPER "Invalid argument")
<CHARS-TO-BYTES 'ABC'> => 65 66 67
Если размер цепочки литер, полученной в результате вышеописанного преобразования, больше, чем допускается реализацией, результатом работы функций является
$error(Fname "Argument too large for conversion").TO-CHARS
выдает полученную цепочку литер в качестве результата.<TO-CHARS "John"> => 'John'
<TO-CHARS 'John'> => 'John'
<TO-CHARS 326> => '326'
<TO-CHARS -326> => '-326'
<TO-CHARS (-326) "John"> => '(-326)John'
TO-WORD
преобразует полученную цепочку литер в слово с соответствующим печатным именем.<TO-WORD "John"> => "John"
<TO-WORD 'John'> => "John"
<TO-WORD 326> => "326"
<TO-WORD -326> => "-326"
<TO-WORD (-326) "John"> => "(-326)John"
TO-INT
преобразует полученную цепочку литер в целое число s.Int. Если эта цепочка литер не является правильным изображением целого числа, результатом является $fail(0). Например:<TO-INT '326'> => 326
<TO-INT '+326'> => 326
<TO-INT "-3" '26'> => -326
<TO-INT -32 006> => -326
<TO-INT 'John'> => $fail(0)