22    return string ((
char) code);
 
   24  else if (0x80 <= code && code <= 0x7FF) {
 
   27    str[0]= ((code >> 6) & 0x1F) | 0xC0;
 
   28    str[1]= (code & 0x3F) | 0x80;
 
   31  else if (0x800 <= code && code <= 0xFFFF) {
 
   34    str[0]= ((code >> 12) & 0x0F) | 0xE0;
 
   35    str[1]= ((code >> 6) & 0x3F) | 0x80;
 
   36    str[2]= (code & 0x3F) | 0x80;
 
   39  else if (0x10000 <= code && code <= 0x1FFFFF) {
 
   42    str[0]= ((code >> 18) & 0x07) | 0xF0;
 
   43    str[1]= ((code >> 12) & 0x3F) | 0x80;
 
   44    str[2]= ((code >> 6) & 0x3F) | 0x80;
 
   45    str[3]= (code & 0x3F) | 0x80;
 
 
  100  if (code <= 0x7f) 
return "ascii";
 
  101  else if (code >= 0x80 && code <= 0x37f) 
return "latin";
 
  102  else if (code >= 0x370 && code <= 0x3ff) 
return "greek";
 
  103  else if (code >= 0x400 && code <= 0x4ff) 
return "cyrillic";
 
  104  else if (code >= 0x2460 && code <= 0x24ff) 
return "enclosed_alphanumerics";
 
  105  else if (code >= 0x3000 && code <= 0x303f) 
return "cjk";
 
  106  else if (code >= 0x4e00 && code <= 0x9fcc) 
return "cjk";
 
  107  else if (code >= 0xff00 && code <= 0xffef) 
return "cjk";
 
  108  else if (code >= 0x3040 && code <= 0x309F) 
return "hiragana";
 
  109  else if (code >= 0xac00 && code <= 0xd7af) 
return "hangul";
 
  110  else if (code >= 0x2000 && code <= 0x23ff) 
return "mathsymbols";
 
  111  else if (code >= 0x2900 && code <= 0x2e7f) 
return "mathextra";
 
  112  else if (code >= 0x1d400 && code <= 0x1d7ff) 
return "mathletters";