| /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| |* *| |
| |* HTML named character reference to UTF-8 translation *| |
| |* *| |
| |* Automatically generated file, do not edit! *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| StringRef translateHTMLNamedCharacterReferenceToUTF8( |
| StringRef Name) { |
| switch (Name.size()) { |
| default: break; |
| case 2: // 15 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'G': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'T': // 1 string to match. |
| return "\x3e"; // "GT" |
| case 't': // 1 string to match. |
| return "\x3e"; // "Gt" |
| } |
| break; |
| case 'L': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'T': // 1 string to match. |
| return "\x3c"; // "LT" |
| case 't': // 1 string to match. |
| return "\x3c"; // "Lt" |
| } |
| break; |
| case 'P': // 1 string to match. |
| if (Name[1] != 'i') |
| break; |
| return "\xce\xa0"; // "Pi" |
| case 'X': // 1 string to match. |
| if (Name[1] != 'i') |
| break; |
| return "\xce\x9e"; // "Xi" |
| case 'g': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'e': // 1 string to match. |
| return "\xe2\x89\xa5"; // "ge" |
| case 't': // 1 string to match. |
| return "\x3e"; // "gt" |
| } |
| break; |
| case 'l': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'e': // 1 string to match. |
| return "\xe2\x89\xa4"; // "le" |
| case 't': // 1 string to match. |
| return "\x3c"; // "lt" |
| } |
| break; |
| case 'm': // 1 string to match. |
| if (Name[1] != 'u') |
| break; |
| return "\xce\xbc"; // "mu" |
| case 'n': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'e': // 1 string to match. |
| return "\xe2\x89\xa0"; // "ne" |
| case 'u': // 1 string to match. |
| return "\xce\xbd"; // "nu" |
| } |
| break; |
| case 'p': // 1 string to match. |
| if (Name[1] != 'i') |
| break; |
| return "\xcf\x80"; // "pi" |
| case 'x': // 1 string to match. |
| if (Name[1] != 'i') |
| break; |
| return "\xce\xbe"; // "xi" |
| } |
| break; |
| case 3: // 16 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'A': // 1 string to match. |
| if (memcmp(Name.data()+1, "MP", 2) != 0) |
| break; |
| return "\x26"; // "AMP" |
| case 'P': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| if (Name[2] != 'i') |
| break; |
| return "\xce\xa6"; // "Phi" |
| case 's': // 1 string to match. |
| if (Name[2] != 'i') |
| break; |
| return "\xce\xa8"; // "Psi" |
| } |
| break; |
| case 'R': // 1 string to match. |
| if (memcmp(Name.data()+1, "EG", 2) != 0) |
| break; |
| return "\xc2\xae"; // "REG" |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+1, "mp", 2) != 0) |
| break; |
| return "\x26"; // "amp" |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+1, "hi", 2) != 0) |
| break; |
| return "\xcf\x87"; // "chi" |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+1, "eg", 2) != 0) |
| break; |
| return "\xc2\xb0"; // "deg" |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+1, "ta", 2) != 0) |
| break; |
| return "\xce\xb7"; // "eta" |
| case 'i': // 1 string to match. |
| if (memcmp(Name.data()+1, "nt", 2) != 0) |
| break; |
| return "\xe2\x88\xab"; // "int" |
| case 'p': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| if (Name[2] != 'i') |
| break; |
| return "\xcf\x86"; // "phi" |
| case 's': // 1 string to match. |
| if (Name[2] != 'i') |
| break; |
| return "\xcf\x88"; // "psi" |
| } |
| break; |
| case 'r': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'e': // 1 string to match. |
| if (Name[2] != 'g') |
| break; |
| return "\xc2\xae"; // "reg" |
| case 'h': // 1 string to match. |
| if (Name[2] != 'o') |
| break; |
| return "\xcf\x81"; // "rho" |
| } |
| break; |
| case 's': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'i': // 1 string to match. |
| if (Name[2] != 'm') |
| break; |
| return "\xe2\x88\xbc"; // "sim" |
| case 'u': // 1 string to match. |
| if (Name[2] != 'm') |
| break; |
| return "\xe2\x88\x91"; // "sum" |
| } |
| break; |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+1, "au", 2) != 0) |
| break; |
| return "\xcf\x84"; // "tau" |
| } |
| break; |
| case 4: // 30 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'A': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\x84"; // "Auml" |
| case 'C': // 1 string to match. |
| if (memcmp(Name.data()+1, "OPY", 3) != 0) |
| break; |
| return "\xc2\xa9"; // "COPY" |
| case 'E': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\x8b"; // "Euml" |
| case 'I': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\x8f"; // "Iuml" |
| case 'O': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\x96"; // "Ouml" |
| case 'Q': // 1 string to match. |
| if (memcmp(Name.data()+1, "UOT", 3) != 0) |
| break; |
| return "\x22"; // "QUOT" |
| case 'U': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\x9c"; // "Uuml" |
| case 'Y': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc5\xb8"; // "Yuml" |
| case 'a': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'p': // 1 string to match. |
| if (memcmp(Name.data()+2, "os", 2) != 0) |
| break; |
| return "\x27"; // "apos" |
| case 'u': // 1 string to match. |
| if (memcmp(Name.data()+2, "ml", 2) != 0) |
| break; |
| return "\xc3\xa4"; // "auml" |
| } |
| break; |
| case 'b': // 1 string to match. |
| if (memcmp(Name.data()+1, "eta", 3) != 0) |
| break; |
| return "\xce\xb2"; // "beta" |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+1, "opy", 3) != 0) |
| break; |
| return "\xc2\xa9"; // "copy" |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\xab"; // "euml" |
| case 'i': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'o': // 1 string to match. |
| if (memcmp(Name.data()+2, "ta", 2) != 0) |
| break; |
| return "\xce\xb9"; // "iota" |
| case 's': // 1 string to match. |
| if (memcmp(Name.data()+2, "in", 2) != 0) |
| break; |
| return "\xe2\x88\x88"; // "isin" |
| case 'u': // 1 string to match. |
| if (memcmp(Name.data()+2, "ml", 2) != 0) |
| break; |
| return "\xc3\xaf"; // "iuml" |
| } |
| break; |
| case 'l': // 1 string to match. |
| if (memcmp(Name.data()+1, "arr", 3) != 0) |
| break; |
| return "\xe2\x86\x90"; // "larr" |
| case 'n': // 1 string to match. |
| if (memcmp(Name.data()+1, "bsp", 3) != 0) |
| break; |
| return "\xc2\xa0"; // "nbsp" |
| case 'o': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\xb6"; // "ouml" |
| case 'p': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "rt", 2) != 0) |
| break; |
| return "\xe2\x88\x82"; // "part" |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+2, "rp", 2) != 0) |
| break; |
| return "\xe2\x8a\xa5"; // "perp" |
| case 'r': // 2 strings to match. |
| if (Name[2] != 'o') |
| break; |
| switch (Name[3]) { |
| default: break; |
| case 'd': // 1 string to match. |
| return "\xe2\x88\x8f"; // "prod" |
| case 'p': // 1 string to match. |
| return "\xe2\x88\x9d"; // "prop" |
| } |
| break; |
| } |
| break; |
| case 'q': // 1 string to match. |
| if (memcmp(Name.data()+1, "uot", 3) != 0) |
| break; |
| return "\x22"; // "quot" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+1, "arr", 3) != 0) |
| break; |
| return "\xe2\x86\x92"; // "rarr" |
| case 's': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+2, "ot", 2) != 0) |
| break; |
| return "\xe2\x8b\x85"; // "sdot" |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+2, "ct", 2) != 0) |
| break; |
| return "\xc2\xa7"; // "sect" |
| } |
| break; |
| case 'u': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\xbc"; // "uuml" |
| case 'y': // 1 string to match. |
| if (memcmp(Name.data()+1, "uml", 3) != 0) |
| break; |
| return "\xc3\xbf"; // "yuml" |
| case 'z': // 1 string to match. |
| if (memcmp(Name.data()+1, "eta", 3) != 0) |
| break; |
| return "\xce\xb6"; // "zeta" |
| } |
| break; |
| case 5: // 48 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'A': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\x82"; // "Acirc" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+2, "ing", 3) != 0) |
| break; |
| return "\xc3\x85"; // "Aring" |
| } |
| break; |
| case 'D': // 1 string to match. |
| if (memcmp(Name.data()+1, "elta", 4) != 0) |
| break; |
| return "\xce\x94"; // "Delta" |
| case 'E': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc3\x8a"; // "Ecirc" |
| case 'G': // 1 string to match. |
| if (memcmp(Name.data()+1, "amma", 4) != 0) |
| break; |
| return "\xce\x93"; // "Gamma" |
| case 'I': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc3\x8e"; // "Icirc" |
| case 'O': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\x94"; // "Ocirc" |
| case 'm': // 1 string to match. |
| if (memcmp(Name.data()+2, "ega", 3) != 0) |
| break; |
| return "\xce\xa9"; // "Omega" |
| } |
| break; |
| case 'P': // 1 string to match. |
| if (memcmp(Name.data()+1, "rime", 4) != 0) |
| break; |
| return "\xe2\x80\xb3"; // "Prime" |
| case 'S': // 1 string to match. |
| if (memcmp(Name.data()+1, "igma", 4) != 0) |
| break; |
| return "\xce\xa3"; // "Sigma" |
| case 'T': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'R': // 1 string to match. |
| if (memcmp(Name.data()+2, "ADE", 3) != 0) |
| break; |
| return "\xe2\x84\xa2"; // "TRADE" |
| case 'h': // 1 string to match. |
| if (memcmp(Name.data()+2, "eta", 3) != 0) |
| break; |
| return "\xce\x98"; // "Theta" |
| } |
| break; |
| case 'U': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc3\x9b"; // "Ucirc" |
| case 'Y': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc5\xb6"; // "Ycirc" |
| case 'a': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\xa2"; // "acirc" |
| case 'l': // 1 string to match. |
| if (memcmp(Name.data()+2, "pha", 3) != 0) |
| break; |
| return "\xce\xb1"; // "alpha" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+2, "ing", 3) != 0) |
| break; |
| return "\xc3\xa5"; // "aring" |
| case 's': // 1 string to match. |
| if (memcmp(Name.data()+2, "ymp", 3) != 0) |
| break; |
| return "\xe2\x89\x88"; // "asymp" |
| } |
| break; |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+1, "elta", 4) != 0) |
| break; |
| return "\xce\xb4"; // "delta" |
| case 'e': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\xaa"; // "ecirc" |
| case 'm': // 1 string to match. |
| if (memcmp(Name.data()+2, "pty", 3) != 0) |
| break; |
| return "\xe2\x88\x85"; // "empty" |
| case 'q': // 1 string to match. |
| if (memcmp(Name.data()+2, "uiv", 3) != 0) |
| break; |
| return "\xe2\x89\xa1"; // "equiv" |
| } |
| break; |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+1, "amma", 4) != 0) |
| break; |
| return "\xce\xb3"; // "gamma" |
| case 'i': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\xae"; // "icirc" |
| case 'n': // 1 string to match. |
| if (memcmp(Name.data()+2, "fin", 3) != 0) |
| break; |
| return "\xe2\x88\x9e"; // "infin" |
| } |
| break; |
| case 'k': // 1 string to match. |
| if (memcmp(Name.data()+1, "appa", 4) != 0) |
| break; |
| return "\xce\xba"; // "kappa" |
| case 'l': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "eil", 3) != 0) |
| break; |
| return "\xe2\x8c\x88"; // "lceil" |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+2, "quo", 3) != 0) |
| break; |
| return "\xe2\x80\x9c"; // "ldquo" |
| case 's': // 1 string to match. |
| if (memcmp(Name.data()+2, "quo", 3) != 0) |
| break; |
| return "\xe2\x80\x98"; // "lsquo" |
| } |
| break; |
| case 'm': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+2, "ash", 3) != 0) |
| break; |
| return "\xe2\x80\x94"; // "mdash" |
| case 'i': // 1 string to match. |
| if (memcmp(Name.data()+2, "nus", 3) != 0) |
| break; |
| return "\xe2\x88\x92"; // "minus" |
| } |
| break; |
| case 'n': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "bla", 3) != 0) |
| break; |
| return "\xe2\x88\x87"; // "nabla" |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+2, "ash", 3) != 0) |
| break; |
| return "\xe2\x80\x93"; // "ndash" |
| case 'o': // 1 string to match. |
| if (memcmp(Name.data()+2, "tin", 3) != 0) |
| break; |
| return "\xe2\x88\x89"; // "notin" |
| } |
| break; |
| case 'o': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "irc", 3) != 0) |
| break; |
| return "\xc3\xb4"; // "ocirc" |
| case 'm': // 1 string to match. |
| if (memcmp(Name.data()+2, "ega", 3) != 0) |
| break; |
| return "\xcf\x89"; // "omega" |
| } |
| break; |
| case 'p': // 1 string to match. |
| if (memcmp(Name.data()+1, "rime", 4) != 0) |
| break; |
| return "\xe2\x80\xb2"; // "prime" |
| case 'r': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "dic", 3) != 0) |
| break; |
| return "\xe2\x88\x9a"; // "radic" |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+2, "eil", 3) != 0) |
| break; |
| return "\xe2\x8c\x89"; // "rceil" |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+2, "quo", 3) != 0) |
| break; |
| return "\xe2\x80\x9d"; // "rdquo" |
| case 's': // 1 string to match. |
| if (memcmp(Name.data()+2, "quo", 3) != 0) |
| break; |
| return "\xe2\x80\x99"; // "rsquo" |
| } |
| break; |
| case 's': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'i': // 1 string to match. |
| if (memcmp(Name.data()+2, "gma", 3) != 0) |
| break; |
| return "\xcf\x83"; // "sigma" |
| case 'z': // 1 string to match. |
| if (memcmp(Name.data()+2, "lig", 3) != 0) |
| break; |
| return "\xc3\x9f"; // "szlig" |
| } |
| break; |
| case 't': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| if (memcmp(Name.data()+2, "eta", 3) != 0) |
| break; |
| return "\xce\xb8"; // "theta" |
| case 'i': // 1 string to match. |
| if (memcmp(Name.data()+2, "mes", 3) != 0) |
| break; |
| return "\xc3\x97"; // "times" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+2, "ade", 3) != 0) |
| break; |
| return "\xe2\x84\xa2"; // "trade" |
| } |
| break; |
| case 'u': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc3\xbb"; // "ucirc" |
| case 'y': // 1 string to match. |
| if (memcmp(Name.data()+1, "circ", 4) != 0) |
| break; |
| return "\xc5\xb7"; // "ycirc" |
| } |
| break; |
| case 6: // 37 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'A': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\x81"; // "Aacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\x80"; // "Agrave" |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+2, "ilde", 4) != 0) |
| break; |
| return "\xc3\x83"; // "Atilde" |
| } |
| break; |
| case 'C': // 1 string to match. |
| if (memcmp(Name.data()+1, "cedil", 5) != 0) |
| break; |
| return "\xc3\x87"; // "Ccedil" |
| case 'E': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\x89"; // "Eacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\x88"; // "Egrave" |
| } |
| break; |
| case 'I': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\x8d"; // "Iacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\x8c"; // "Igrave" |
| } |
| break; |
| case 'L': // 1 string to match. |
| if (memcmp(Name.data()+1, "ambda", 5) != 0) |
| break; |
| return "\xce\x9b"; // "Lambda" |
| case 'N': // 1 string to match. |
| if (memcmp(Name.data()+1, "tilde", 5) != 0) |
| break; |
| return "\xc3\x91"; // "Ntilde" |
| case 'O': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\x93"; // "Oacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\x92"; // "Ograve" |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+2, "ilde", 4) != 0) |
| break; |
| return "\xc3\x95"; // "Otilde" |
| } |
| break; |
| case 'U': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\x9a"; // "Uacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\x99"; // "Ugrave" |
| } |
| break; |
| case 'Y': // 1 string to match. |
| if (memcmp(Name.data()+1, "acute", 5) != 0) |
| break; |
| return "\xc3\x9d"; // "Yacute" |
| case 'a': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xa1"; // "aacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\xa0"; // "agrave" |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+2, "ilde", 4) != 0) |
| break; |
| return "\xc3\xa3"; // "atilde" |
| } |
| break; |
| case 'c': // 1 string to match. |
| if (memcmp(Name.data()+1, "cedil", 5) != 0) |
| break; |
| return "\xc3\xa7"; // "ccedil" |
| case 'e': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xa9"; // "eacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\xa8"; // "egrave" |
| } |
| break; |
| case 'i': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xad"; // "iacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\xac"; // "igrave" |
| } |
| break; |
| case 'l': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "mbda", 4) != 0) |
| break; |
| return "\xce\xbb"; // "lambda" |
| case 'f': // 1 string to match. |
| if (memcmp(Name.data()+2, "loor", 4) != 0) |
| break; |
| return "\xe2\x8c\x8a"; // "lfloor" |
| } |
| break; |
| case 'n': // 1 string to match. |
| if (memcmp(Name.data()+1, "tilde", 5) != 0) |
| break; |
| return "\xc3\xb1"; // "ntilde" |
| case 'o': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xb3"; // "oacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\xb2"; // "ograve" |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+2, "ilde", 4) != 0) |
| break; |
| return "\xc3\xb5"; // "otilde" |
| } |
| break; |
| case 'p': // 1 string to match. |
| if (memcmp(Name.data()+1, "lusmn", 5) != 0) |
| break; |
| return "\xc2\xb1"; // "plusmn" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+1, "floor", 5) != 0) |
| break; |
| return "\xe2\x8c\x8b"; // "rfloor" |
| case 's': // 1 string to match. |
| if (memcmp(Name.data()+1, "igmaf", 5) != 0) |
| break; |
| return "\xcf\x82"; // "sigmaf" |
| case 'u': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xba"; // "uacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xc3\xb9"; // "ugrave" |
| } |
| break; |
| case 'y': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Name.data()+2, "cute", 4) != 0) |
| break; |
| return "\xc3\xbd"; // "yacute" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+2, "rave", 4) != 0) |
| break; |
| return "\xe1\xbb\xb3"; // "ygrave" |
| } |
| break; |
| } |
| break; |
| case 7: // 3 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'U': // 1 string to match. |
| if (memcmp(Name.data()+1, "psilon", 6) != 0) |
| break; |
| return "\xce\xa5"; // "Upsilon" |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+1, "psilon", 6) != 0) |
| break; |
| return "\xce\xb5"; // "epsilon" |
| case 'u': // 1 string to match. |
| if (memcmp(Name.data()+1, "psilon", 6) != 0) |
| break; |
| return "\xcf\x85"; // "upsilon" |
| } |
| break; |
| } |
| return StringRef(); |
| } |
| |