text: /* generated */
  
  #include <assert.h>
  #include <stddef.h>
  
  #include "class.h"
  
  static struct {
  	const struct class *class;
  	const char *name;
  } classes[] = {
  	{ &class_alnum, "alnum" },
  	{ &class_alpha, "alpha" },
  	{ &class_any, "any" },
  	{ &class_ascii, "ascii" },
  	{ &class_cntrl, "cntrl" },
  	{ &class_digit, "digit" },
  	{ &class_graph, "graph" },
  	{ &class_hspace, "hspace" },
  	{ &class_hspace_pcre, "hspace_pcre" },
  	{ &class_lower, "lower" },
  	{ &class_print, "print" },
  	{ &class_punct, "punct" },
  	{ &class_space, "space" },
  	{ &class_spchr, "spchr" },
  	{ &class_upper, "upper" },
  	{ &class_vspace, "vspace" },
  	{ &class_vspace_pcre, "vspace_pcre" },
  	{ &class_word, "word" },
  	{ &class_xdigit, "xdigit" },
  	{ &class_notdigit, "notdigit" },
  	{ &class_nothspace, "nothspace" },
  	{ &class_nothspace_pcre, "nothspace_pcre" },
  	{ &class_notspace, "notspace" },
  	{ &class_notvspace, "notvspace" },
  	{ &class_notvspace_pcre, "notvspace_pcre" },
  	{ &class_notword, "notword" },
  	{ &class_notnl, "notnl" },
  
  	{ &utf8_Adlam, "Adlam" },
  	{ &utf8_Ahom, "Ahom" },
  	{ &utf8_Anatolian_Hieroglyphs, "Anatolian Hieroglyphs" },
  	{ &utf8_Arabic, "Arabic" },
  	{ &utf8_Armenian, "Armenian" },
  	{ &utf8_Avestan, "Avestan" },
  	{ &utf8_Balinese, "Balinese" },
  	{ &utf8_Bamum, "Bamum" },
  	{ &utf8_Bassa_Vah, "Bassa Vah" },
  	{ &utf8_Batak, "Batak" },
  	{ &utf8_Bengali, "Bengali" },
  	{ &utf8_Bhaiksuki, "Bhaiksuki" },
  	{ &utf8_Bopomofo, "Bopomofo" },
  	{ &utf8_Brahmi, "Brahmi" },
  	{ &utf8_Braille, "Braille" },
  	{ &utf8_Buginese, "Buginese" },
  	{ &utf8_Buhid, "Buhid" },
  	{ &utf8_Canadian_Aboriginal, "Canadian Aboriginal" },
  	{ &utf8_Carian, "Carian" },
  	{ &utf8_Caucasian_Albanian, "Caucasian Albanian" },
  	{ &utf8_Chakma, "Chakma" },
  	{ &utf8_Cham, "Cham" },
  	{ &utf8_Cherokee, "Cherokee" },
  	{ &utf8_Common, "Common" },
  	{ &utf8_Coptic, "Coptic" },
  	{ &utf8_Cuneiform, "Cuneiform" },
  	{ &utf8_Cypriot, "Cypriot" },
  	{ &utf8_Cyrillic, "Cyrillic" },
  	{ &utf8_Deseret, "Deseret" },
  	{ &utf8_Devanagari, "Devanagari" },
  	{ &utf8_Duployan, "Duployan" },
  	{ &utf8_Egyptian_Hieroglyphs, "Egyptian Hieroglyphs" },
  	{ &utf8_Elbasan, "Elbasan" },
  	{ &utf8_Ethiopic, "Ethiopic" },
  	{ &utf8_Georgian, "Georgian" },
  	{ &utf8_Glagolitic, "Glagolitic" },
  	{ &utf8_Gothic, "Gothic" },
  	{ &utf8_Grantha, "Grantha" },
  	{ &utf8_Greek, "Greek" },
  	{ &utf8_Gujarati, "Gujarati" },
  	{ &utf8_Gurmukhi, "Gurmukhi" },
  	{ &utf8_Han, "Han" },
  	{ &utf8_Hangul, "Hangul" },
  	{ &utf8_Hanunoo, "Hanunoo" },
  	{ &utf8_Hatran, "Hatran" },
  	{ &utf8_Hebrew, "Hebrew" },
  	{ &utf8_Hiragana, "Hiragana" },
  	{ &utf8_Imperial_Aramaic, "Imperial Aramaic" },
  	{ &utf8_Inherited, "Inherited" },
  	{ &utf8_Inscriptional_Pahlavi, "Inscriptional Pahlavi" },
  	{ &utf8_Inscriptional_Parthian, "Inscriptional Parthian" },
  	{ &utf8_Javanese, "Javanese" },
  	{ &utf8_Kaithi, "Kaithi" },
  	{ &utf8_Kannada, "Kannada" },
  	{ &utf8_Katakana, "Katakana" },
  	{ &utf8_Kayah_Li, "Kayah Li" },
  	{ &utf8_Kharoshthi, "Kharoshthi" },
  	{ &utf8_Khmer, "Khmer" },
  	{ &utf8_Khojki, "Khojki" },
  	{ &utf8_Khudawadi, "Khudawadi" },
  	{ &utf8_Lao, "Lao" },
  	{ &utf8_Latin, "Latin" },
  	{ &utf8_Lepcha, "Lepcha" },
  	{ &utf8_Limbu, "Limbu" },
  	{ &utf8_Linear_A, "Linear A" },
  	{ &utf8_Linear_B, "Linear B" },
  	{ &utf8_Lisu, "Lisu" },
  	{ &utf8_Lycian, "Lycian" },
  	{ &utf8_Lydian, "Lydian" },
  	{ &utf8_Mahajani, "Mahajani" },
  	{ &utf8_Malayalam, "Malayalam" },
  	{ &utf8_Mandaic, "Mandaic" },
  	{ &utf8_Manichaean, "Manichaean" },
  	{ &utf8_Marchen, "Marchen" },
  	{ &utf8_Masaram_Gondi, "Masaram Gondi" },
  	{ &utf8_Meetei_Mayek, "Meetei Mayek" },
  	{ &utf8_Mende_Kikakui, "Mende Kikakui" },
  	{ &utf8_Meroitic_Cursive, "Meroitic Cursive" },
  	{ &utf8_Meroitic_Hieroglyphs, "Meroitic Hieroglyphs" },
  	{ &utf8_Miao, "Miao" },
  	{ &utf8_Modi, "Modi" },
  	{ &utf8_Mongolian, "Mongolian" },
  	{ &utf8_Mro, "Mro" },
  	{ &utf8_Multani, "Multani" },
  	{ &utf8_Myanmar, "Myanmar" },
  	{ &utf8_Nabataean, "Nabataean" },
  	{ &utf8_New_Tai_Lue, "New Tai Lue" },
  	{ &utf8_Newa, "Newa" },
  	{ &utf8_Nko, "Nko" },
  	{ &utf8_Nushu, "Nushu" },
  	{ &utf8_Ogham, "Ogham" },
  	{ &utf8_Ol_Chiki, "Ol Chiki" },
  	{ &utf8_Old_Hungarian, "Old Hungarian" },
  	{ &utf8_Old_Italic, "Old Italic" },
  	{ &utf8_Old_North_Arabian, "Old North Arabian" },
  	{ &utf8_Old_Permic, "Old Permic" },
  	{ &utf8_Old_Persian, "Old Persian" },
  	{ &utf8_Old_South_Arabian, "Old South Arabian" },
  	{ &utf8_Old_Turkic, "Old Turkic" },
  	{ &utf8_Oriya, "Oriya" },
  	{ &utf8_Osage, "Osage" },
  	{ &utf8_Osmanya, "Osmanya" },
  	{ &utf8_Pahawh_Hmong, "Pahawh Hmong" },
  	{ &utf8_Palmyrene, "Palmyrene" },
  	{ &utf8_Pau_Cin_Hau, "Pau Cin Hau" },
  	{ &utf8_Phags_Pa, "Phags Pa" },
  	{ &utf8_Phoenician, "Phoenician" },
  	{ &utf8_Psalter_Pahlavi, "Psalter Pahlavi" },
  	{ &utf8_Rejang, "Rejang" },
  	{ &utf8_Runic, "Runic" },
  	{ &utf8_Samaritan, "Samaritan" },
  	{ &utf8_Saurashtra, "Saurashtra" },
  	{ &utf8_Sharada, "Sharada" },
  	{ &utf8_Shavian, "Shavian" },
  	{ &utf8_Siddham, "Siddham" },
  	{ &utf8_SignWriting, "SignWriting" },
  	{ &utf8_Sinhala, "Sinhala" },
  	{ &utf8_Sora_Sompeng, "Sora Sompeng" },
  	{ &utf8_Soyombo, "Soyombo" },
  	{ &utf8_Sundanese, "Sundanese" },
  	{ &utf8_Syloti_Nagri, "Syloti Nagri" },
  	{ &utf8_Syriac, "Syriac" },
  	{ &utf8_Tagalog, "Tagalog" },
  	{ &utf8_Tagbanwa, "Tagbanwa" },
  	{ &utf8_Tai_Le, "Tai Le" },
  	{ &utf8_Tai_Tham, "Tai Tham" },
  	{ &utf8_Tai_Viet, "Tai Viet" },
  	{ &utf8_Takri, "Takri" },
  	{ &utf8_Tamil, "Tamil" },
  	{ &utf8_Tangut, "Tangut" },
  	{ &utf8_Telugu, "Telugu" },
  	{ &utf8_Thaana, "Thaana" },
  	{ &utf8_Thai, "Thai" },
  	{ &utf8_Tibetan, "Tibetan" },
  	{ &utf8_Tifinagh, "Tifinagh" },
  	{ &utf8_Tirhuta, "Tirhuta" },
  	{ &utf8_Ugaritic, "Ugaritic" },
  	{ &utf8_Vai, "Vai" },
  	{ &utf8_Warang_Citi, "Warang Citi" },
  	{ &utf8_Yi, "Yi" },
  	{ &utf8_Zanabazar_Square, "Zanabazar Square" },
  	{ &utf8_C, "C" },
  	{ &utf8_L, "L" },
  	{ &utf8_M, "M" },
  	{ &utf8_N, "N" },
  	{ &utf8_P, "P" },
  	{ &utf8_S, "S" },
  	{ &utf8_Z, "Z" },
  	{ &utf8_Cf, "Cf" },
  	{ &utf8_Co, "Co" },
  	{ &utf8_Cs, "Cs" },
  	{ &utf8_Ll, "Ll" },
  	{ &utf8_Lm, "Lm" },
  	{ &utf8_Lo, "Lo" },
  	{ &utf8_Lt, "Lt" },
  	{ &utf8_Lu, "Lu" },
  	{ &utf8_Mc, "Mc" },
  	{ &utf8_Me, "Me" },
  	{ &utf8_Mn, "Mn" },
  	{ &utf8_Nd, "Nd" },
  	{ &utf8_Nl, "Nl" },
  	{ &utf8_No, "No" },
  	{ &utf8_Pc, "Pc" },
  	{ &utf8_Pd, "Pd" },
  	{ &utf8_Pe, "Pe" },
  	{ &utf8_Pf, "Pf" },
  	{ &utf8_Pi, "Pi" },
  	{ &utf8_Po, "Po" },
  	{ &utf8_Ps, "Ps" },
  	{ &utf8_Sc, "Sc" },
  	{ &utf8_Sk, "Sk" },
  	{ &utf8_Sm, "Sm" },
  	{ &utf8_So, "So" },
  	{ &utf8_Zl, "Zl" },
  	{ &utf8_Zp, "Zp" },
  	{ &utf8_Zs, "Zs" },
  	{ &utf8_private, "private" },
  	{ &utf8_assigned, "assigned" },
  
  	{ NULL, NULL }
  };
  
  const char *
  class_name(const struct class *class)
  {
  	size_t i;
  
  	assert(class != NULL);
  
  	for (i = 0; i < sizeof classes / sizeof *classes; i++) {
  		if (class == classes[i].class) {
  			return classes[i].name;
  		}
  	}
  
  	return NULL;
  }
  
  