summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2021-05-24 11:26:17 +0100
committerMichael Drake <michael.drake@codethink.co.uk>2021-05-24 11:26:17 +0100
commit0f2caec353bc7302168cdc2c0575441e43b44c3e (patch)
tree35d499cb7350e8950dd4b5597b170f18450a8bf0
parent0c89880420c45548b3461e0dab6f8b9720a2b6da (diff)
downloadlibhubbub-0f2caec353bc7302168cdc2c0575441e43b44c3e.tar.gz
libhubbub-0f2caec353bc7302168cdc2c0575441e43b44c3e.tar.bz2
treebuilder: Include generated element type lookup source.
Previously this source was generated at build time, however there was variance in the versions of gperf on all the platforms that we support. The comment at the top of the generated source file contains a command that can be used to regenerate it manually.
-rw-r--r--src/treebuilder/Makefile8
-rw-r--r--src/treebuilder/autogenerated-element-type.c705
2 files changed, 706 insertions, 7 deletions
diff --git a/src/treebuilder/Makefile b/src/treebuilder/Makefile
index ce00a4c..ae2d9c4 100644
--- a/src/treebuilder/Makefile
+++ b/src/treebuilder/Makefile
@@ -6,12 +6,6 @@ DIR_SOURCES := treebuilder.c \
in_cell.c in_select.c in_select_in_table.c \
in_foreign_content.c after_body.c in_frameset.c \
after_frameset.c after_after_body.c after_after_frameset.c \
- generic_rcdata.c element-type.c
-
-$(DIR)element-type.c: $(DIR)element-type.gperf
- $(VQ)$(ECHO) " GPERF: $<"
- $(Q)gperf --output-file=$@ $<
-
-CLEAN_ITEMS := $(DIR)element-type.c
+ generic_rcdata.c autogenerated-element-type.c
include $(NSBUILD)/Makefile.subdir
diff --git a/src/treebuilder/autogenerated-element-type.c b/src/treebuilder/autogenerated-element-type.c
new file mode 100644
index 0000000..f3b4f30
--- /dev/null
+++ b/src/treebuilder/autogenerated-element-type.c
@@ -0,0 +1,705 @@
+/* ANSI-C code produced by gperf version 3.1 */
+/* Command-line: gperf --output-file=src/treebuilder/autogenerated-element-type.c src/treebuilder/element-type.gperf */
+/* Computed positions: -k'1-2,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
+#endif
+
+#line 17 "src/treebuilder/element-type.gperf"
+
+#include <string.h>
+
+#include "treebuilder/element-type.h"
+
+#line 24 "src/treebuilder/element-type.gperf"
+struct element_type_map;
+
+#define TOTAL_KEYWORDS 106
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 14
+#define MIN_HASH_VALUE 1
+#define MAX_HASH_VALUE 219
+/* maximum key range = 219, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+ {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255
+ };
+#endif
+
+#ifndef GPERF_CASE_STRNCMP
+#define GPERF_CASE_STRNCMP 1
+static int
+gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n)
+{
+ for (; n > 0;)
+ {
+ unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+ unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+ if (c1 != 0 && c1 == c2)
+ {
+ n--;
+ continue;
+ }
+ return (int)c1 - (int)c2;
+ }
+ return 0;
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hubbub_element_type_hash (register const char *str, register size_t len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 60,
+ 20, 70, 105, 50, 10, 50, 5, 220, 220, 220,
+ 220, 220, 220, 220, 220, 0, 95, 40, 20, 10,
+ 5, 35, 35, 60, 70, 15, 55, 5, 15, 70,
+ 35, 0, 0, 10, 0, 100, 125, 40, 10, 65,
+ 220, 220, 220, 220, 220, 220, 220, 0, 95, 40,
+ 20, 10, 5, 35, 35, 60, 70, 15, 55, 5,
+ 15, 70, 35, 0, 0, 10, 0, 100, 125, 40,
+ 10, 65, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220
+ };
+ register unsigned int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[1]+2];
+ /*FALLTHROUGH*/
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+const struct element_type_map *
+hubbub_element_type_lookup (register const char *str, register size_t len)
+{
+ static const struct element_type_map wordlist[] =
+ {
+#line 26 "src/treebuilder/element-type.gperf"
+ {"a", A},
+#line 126 "src/treebuilder/element-type.gperf"
+ {"tr", TR},
+#line 30 "src/treebuilder/element-type.gperf"
+ {"area", AREA},
+#line 29 "src/treebuilder/element-type.gperf"
+ {"applet", APPLET},
+#line 60 "src/treebuilder/element-type.gperf"
+ {"font", FONT},
+#line 61 "src/treebuilder/element-type.gperf"
+ {"footer", FOOTER},
+#line 65 "src/treebuilder/element-type.gperf"
+ {"frameset", FRAMESET},
+#line 63 "src/treebuilder/element-type.gperf"
+ {"form", FORM},
+#line 112 "src/treebuilder/element-type.gperf"
+ {"spacer", SPACER},
+#line 31 "src/treebuilder/element-type.gperf"
+ {"article", ARTICLE},
+#line 62 "src/treebuilder/element-type.gperf"
+ {"foreignobject", FOREIGNOBJECT},
+#line 95 "src/treebuilder/element-type.gperf"
+ {"nobr", NOBR},
+#line 64 "src/treebuilder/element-type.gperf"
+ {"frame", FRAME},
+#line 108 "src/treebuilder/element-type.gperf"
+ {"s", S},
+#line 27 "src/treebuilder/element-type.gperf"
+ {"address", ADDRESS},
+#line 98 "src/treebuilder/element-type.gperf"
+ {"noscript", NOSCRIPT},
+#line 109 "src/treebuilder/element-type.gperf"
+ {"script", SCRIPT},
+#line 120 "src/treebuilder/element-type.gperf"
+ {"td", TD},
+#line 57 "src/treebuilder/element-type.gperf"
+ {"fieldset", FIELDSET},
+#line 125 "src/treebuilder/element-type.gperf"
+ {"title", TITLE},
+#line 97 "src/treebuilder/element-type.gperf"
+ {"noframes", NOFRAMES},
+#line 59 "src/treebuilder/element-type.gperf"
+ {"figure", FIGURE},
+#line 73 "src/treebuilder/element-type.gperf"
+ {"hr", HR},
+#line 51 "src/treebuilder/element-type.gperf"
+ {"dir", DIR},
+#line 122 "src/treebuilder/element-type.gperf"
+ {"tfoot", TFOOT},
+#line 96 "src/treebuilder/element-type.gperf"
+ {"noembed", NOEMBED},
+#line 121 "src/treebuilder/element-type.gperf"
+ {"textarea", TEXTAREA},
+#line 88 "src/treebuilder/element-type.gperf"
+ {"meta", META},
+#line 58 "src/treebuilder/element-type.gperf"
+ {"figcaption", FIGCAPTION},
+#line 47 "src/treebuilder/element-type.gperf"
+ {"dd", DD},
+#line 107 "src/treebuilder/element-type.gperf"
+ {"pre", PRE},
+#line 110 "src/treebuilder/element-type.gperf"
+ {"select", SELECT},
+#line 71 "src/treebuilder/element-type.gperf"
+ {"h6", H6},
+#line 118 "src/treebuilder/element-type.gperf"
+ {"table", TABLE},
+#line 91 "src/treebuilder/element-type.gperf"
+ {"mn", MN},
+#line 117 "src/treebuilder/element-type.gperf"
+ {"svg", SVG},
+#line 106 "src/treebuilder/element-type.gperf"
+ {"plaintext", PLAINTEXT},
+#line 85 "src/treebuilder/element-type.gperf"
+ {"marquee", MARQUEE},
+#line 130 "src/treebuilder/element-type.gperf"
+ {"wbr", WBR},
+#line 46 "src/treebuilder/element-type.gperf"
+ {"command", COMMAND},
+#line 84 "src/treebuilder/element-type.gperf"
+ {"malignmark", MALIGNMARK},
+#line 104 "src/treebuilder/element-type.gperf"
+ {"p", P},
+#line 49 "src/treebuilder/element-type.gperf"
+ {"details", DETAILS},
+#line 50 "src/treebuilder/element-type.gperf"
+ {"dialog", DIALOG},
+#line 92 "src/treebuilder/element-type.gperf"
+ {"mo", MO},
+#line 43 "src/treebuilder/element-type.gperf"
+ {"center", CENTER},
+#line 90 "src/treebuilder/element-type.gperf"
+ {"mi", MI},
+#line 45 "src/treebuilder/element-type.gperf"
+ {"colgroup", COLGROUP},
+#line 86 "src/treebuilder/element-type.gperf"
+ {"math", MATH},
+#line 105 "src/treebuilder/element-type.gperf"
+ {"param", PARAM},
+#line 55 "src/treebuilder/element-type.gperf"
+ {"em", EM},
+#line 82 "src/treebuilder/element-type.gperf"
+ {"link", LINK},
+#line 119 "src/treebuilder/element-type.gperf"
+ {"tbody", TBODY},
+#line 102 "src/treebuilder/element-type.gperf"
+ {"option", OPTION},
+#line 53 "src/treebuilder/element-type.gperf"
+ {"dl", DL},
+#line 72 "src/treebuilder/element-type.gperf"
+ {"head", HEAD},
+#line 124 "src/treebuilder/element-type.gperf"
+ {"thead", THEAD},
+#line 99 "src/treebuilder/element-type.gperf"
+ {"object", OBJECT},
+#line 40 "src/treebuilder/element-type.gperf"
+ {"br", BR},
+#line 44 "src/treebuilder/element-type.gperf"
+ {"col", COL},
+#line 48 "src/treebuilder/element-type.gperf"
+ {"desc", DESC},
+#line 79 "src/treebuilder/element-type.gperf"
+ {"input", INPUT},
+#line 42 "src/treebuilder/element-type.gperf"
+ {"caption", CAPTION},
+#line 28 "src/treebuilder/element-type.gperf"
+ {"annotation-xml", ANNOTATION_XML},
+#line 56 "src/treebuilder/element-type.gperf"
+ {"embed", EMBED},
+#line 89 "src/treebuilder/element-type.gperf"
+ {"mglyph", MGLYPH},
+#line 123 "src/treebuilder/element-type.gperf"
+ {"th", TH},
+#line 76 "src/treebuilder/element-type.gperf"
+ {"iframe", IFRAME},
+#line 83 "src/treebuilder/element-type.gperf"
+ {"listing", LISTING},
+#line 101 "src/treebuilder/element-type.gperf"
+ {"optgroup", OPTGROUP},
+#line 32 "src/treebuilder/element-type.gperf"
+ {"aside", ASIDE},
+#line 103 "src/treebuilder/element-type.gperf"
+ {"output", OUTPUT},
+#line 93 "src/treebuilder/element-type.gperf"
+ {"ms", MS},
+#line 131 "src/treebuilder/element-type.gperf"
+ {"xmp", XMP},
+#line 75 "src/treebuilder/element-type.gperf"
+ {"i", I},
+#line 116 "src/treebuilder/element-type.gperf"
+ {"summary", SUMMARY},
+#line 127 "src/treebuilder/element-type.gperf"
+ {"tt", TT},
+#line 38 "src/treebuilder/element-type.gperf"
+ {"blockquote", BLOCKQUOTE},
+#line 81 "src/treebuilder/element-type.gperf"
+ {"li", LI},
+#line 94 "src/treebuilder/element-type.gperf"
+ {"mtext", MTEXT},
+#line 70 "src/treebuilder/element-type.gperf"
+ {"h5", H5},
+#line 111 "src/treebuilder/element-type.gperf"
+ {"small", SMALL},
+#line 100 "src/treebuilder/element-type.gperf"
+ {"ol", OL},
+#line 35 "src/treebuilder/element-type.gperf"
+ {"basefont", BASEFONT},
+#line 87 "src/treebuilder/element-type.gperf"
+ {"menu", MENU},
+#line 77 "src/treebuilder/element-type.gperf"
+ {"image", IMAGE},
+#line 54 "src/treebuilder/element-type.gperf"
+ {"dt", DT},
+#line 37 "src/treebuilder/element-type.gperf"
+ {"big", BIG},
+#line 34 "src/treebuilder/element-type.gperf"
+ {"base", BASE},
+#line 115 "src/treebuilder/element-type.gperf"
+ {"style", STYLE},
+#line 113 "src/treebuilder/element-type.gperf"
+ {"strike", STRIKE},
+#line 69 "src/treebuilder/element-type.gperf"
+ {"h4", H4},
+#line 41 "src/treebuilder/element-type.gperf"
+ {"button", BUTTON},
+#line 68 "src/treebuilder/element-type.gperf"
+ {"h3", H3},
+#line 67 "src/treebuilder/element-type.gperf"
+ {"h2", H2},
+#line 52 "src/treebuilder/element-type.gperf"
+ {"div", DIV},
+#line 39 "src/treebuilder/element-type.gperf"
+ {"body", BODY},
+#line 66 "src/treebuilder/element-type.gperf"
+ {"h1", H1},
+#line 78 "src/treebuilder/element-type.gperf"
+ {"img", IMG},
+#line 129 "src/treebuilder/element-type.gperf"
+ {"ul", UL},
+#line 114 "src/treebuilder/element-type.gperf"
+ {"strong", STRONG},
+#line 80 "src/treebuilder/element-type.gperf"
+ {"isindex", ISINDEX},
+#line 36 "src/treebuilder/element-type.gperf"
+ {"bgsound", BGSOUND},
+#line 33 "src/treebuilder/element-type.gperf"
+ {"b", B},
+#line 128 "src/treebuilder/element-type.gperf"
+ {"u", U},
+#line 74 "src/treebuilder/element-type.gperf"
+ {"html", HTML}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register unsigned int key = hubbub_element_type_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
+ {
+ register const struct element_type_map *resword;
+
+ switch (key - 1)
+ {
+ case 0:
+ resword = &wordlist[0];
+ goto compare;
+ case 1:
+ resword = &wordlist[1];
+ goto compare;
+ case 3:
+ resword = &wordlist[2];
+ goto compare;
+ case 5:
+ resword = &wordlist[3];
+ goto compare;
+ case 8:
+ resword = &wordlist[4];
+ goto compare;
+ case 10:
+ resword = &wordlist[5];
+ goto compare;
+ case 12:
+ resword = &wordlist[6];
+ goto compare;
+ case 13:
+ resword = &wordlist[7];
+ goto compare;
+ case 15:
+ resword = &wordlist[8];
+ goto compare;
+ case 16:
+ resword = &wordlist[9];
+ goto compare;
+ case 17:
+ resword = &wordlist[10];
+ goto compare;
+ case 18:
+ resword = &wordlist[11];
+ goto compare;
+ case 19:
+ resword = &wordlist[12];
+ goto compare;
+ case 20:
+ resword = &wordlist[13];
+ goto compare;
+ case 21:
+ resword = &wordlist[14];
+ goto compare;
+ case 22:
+ resword = &wordlist[15];
+ goto compare;
+ case 25:
+ resword = &wordlist[16];
+ goto compare;
+ case 26:
+ resword = &wordlist[17];
+ goto compare;
+ case 27:
+ resword = &wordlist[18];
+ goto compare;
+ case 29:
+ resword = &wordlist[19];
+ goto compare;
+ case 32:
+ resword = &wordlist[20];
+ goto compare;
+ case 35:
+ resword = &wordlist[21];
+ goto compare;
+ case 36:
+ resword = &wordlist[22];
+ goto compare;
+ case 37:
+ resword = &wordlist[23];
+ goto compare;
+ case 39:
+ resword = &wordlist[24];
+ goto compare;
+ case 41:
+ resword = &wordlist[25];
+ goto compare;
+ case 42:
+ resword = &wordlist[26];
+ goto compare;
+ case 43:
+ resword = &wordlist[27];
+ goto compare;
+ case 44:
+ resword = &wordlist[28];
+ goto compare;
+ case 46:
+ resword = &wordlist[29];
+ goto compare;
+ case 47:
+ resword = &wordlist[30];
+ goto compare;
+ case 50:
+ resword = &wordlist[31];
+ goto compare;
+ case 51:
+ resword = &wordlist[32];
+ goto compare;
+ case 54:
+ resword = &wordlist[33];
+ goto compare;
+ case 56:
+ resword = &wordlist[34];
+ goto compare;
+ case 57:
+ resword = &wordlist[35];
+ goto compare;
+ case 58:
+ resword = &wordlist[36];
+ goto compare;
+ case 61:
+ resword = &wordlist[37];
+ goto compare;
+ case 62:
+ resword = &wordlist[38];
+ goto compare;
+ case 66:
+ resword = &wordlist[39];
+ goto compare;
+ case 69:
+ resword = &wordlist[40];
+ goto compare;
+ case 70:
+ resword = &wordlist[41];
+ goto compare;
+ case 71:
+ resword = &wordlist[42];
+ goto compare;
+ case 75:
+ resword = &wordlist[43];
+ goto compare;
+ case 76:
+ resword = &wordlist[44];
+ goto compare;
+ case 80:
+ resword = &wordlist[45];
+ goto compare;
+ case 81:
+ resword = &wordlist[46];
+ goto compare;
+ case 82:
+ resword = &wordlist[47];
+ goto compare;
+ case 83:
+ resword = &wordlist[48];
+ goto compare;
+ case 84:
+ resword = &wordlist[49];
+ goto compare;
+ case 86:
+ resword = &wordlist[50];
+ goto compare;
+ case 88:
+ resword = &wordlist[51];
+ goto compare;
+ case 89:
+ resword = &wordlist[52];
+ goto compare;
+ case 90:
+ resword = &wordlist[53];
+ goto compare;
+ case 91:
+ resword = &wordlist[54];
+ goto compare;
+ case 93:
+ resword = &wordlist[55];
+ goto compare;
+ case 94:
+ resword = &wordlist[56];
+ goto compare;
+ case 95:
+ resword = &wordlist[57];
+ goto compare;
+ case 96:
+ resword = &wordlist[58];
+ goto compare;
+ case 97:
+ resword = &wordlist[59];
+ goto compare;
+ case 98:
+ resword = &wordlist[60];
+ goto compare;
+ case 99:
+ resword = &wordlist[61];
+ goto compare;
+ case 101:
+ resword = &wordlist[62];
+ goto compare;
+ case 103:
+ resword = &wordlist[63];
+ goto compare;
+ case 104:
+ resword = &wordlist[64];
+ goto compare;
+ case 105:
+ resword = &wordlist[65];
+ goto compare;
+ case 106:
+ resword = &wordlist[66];
+ goto compare;
+ case 110:
+ resword = &wordlist[67];
+ goto compare;
+ case 111:
+ resword = &wordlist[68];
+ goto compare;
+ case 112:
+ resword = &wordlist[69];
+ goto compare;
+ case 114:
+ resword = &wordlist[70];
+ goto compare;
+ case 115:
+ resword = &wordlist[71];
+ goto compare;
+ case 116:
+ resword = &wordlist[72];
+ goto compare;
+ case 117:
+ resword = &wordlist[73];
+ goto compare;
+ case 120:
+ resword = &wordlist[74];
+ goto compare;
+ case 121:
+ resword = &wordlist[75];
+ goto compare;
+ case 126:
+ resword = &wordlist[76];
+ goto compare;
+ case 129:
+ resword = &wordlist[77];
+ goto compare;
+ case 131:
+ resword = &wordlist[78];
+ goto compare;
+ case 134:
+ resword = &wordlist[79];
+ goto compare;
+ case 136:
+ resword = &wordlist[80];
+ goto compare;
+ case 139:
+ resword = &wordlist[81];
+ goto compare;
+ case 141:
+ resword = &wordlist[82];
+ goto compare;
+ case 142:
+ resword = &wordlist[83];
+ goto compare;
+ case 143:
+ resword = &wordlist[84];
+ goto compare;
+ case 144:
+ resword = &wordlist[85];
+ goto compare;
+ case 146:
+ resword = &wordlist[86];
+ goto compare;
+ case 147:
+ resword = &wordlist[87];
+ goto compare;
+ case 148:
+ resword = &wordlist[88];
+ goto compare;
+ case 149:
+ resword = &wordlist[89];
+ goto compare;
+ case 150:
+ resword = &wordlist[90];
+ goto compare;
+ case 151:
+ resword = &wordlist[91];
+ goto compare;
+ case 155:
+ resword = &wordlist[92];
+ goto compare;
+ case 156:
+ resword = &wordlist[93];
+ goto compare;
+ case 161:
+ resword = &wordlist[94];
+ goto compare;
+ case 162:
+ resword = &wordlist[95];
+ goto compare;
+ case 163:
+ resword = &wordlist[96];
+ goto compare;
+ case 166:
+ resword = &wordlist[97];
+ goto compare;
+ case 167:
+ resword = &wordlist[98];
+ goto compare;
+ case 171:
+ resword = &wordlist[99];
+ goto compare;
+ case 175:
+ resword = &wordlist[100];
+ goto compare;
+ case 176:
+ resword = &wordlist[101];
+ goto compare;
+ case 181:
+ resword = &wordlist[102];
+ goto compare;
+ case 190:
+ resword = &wordlist[103];
+ goto compare;
+ case 200:
+ resword = &wordlist[104];
+ goto compare;
+ case 218:
+ resword = &wordlist[105];
+ goto compare;
+ }
+ return 0;
+ compare:
+ {
+ register const char *s = resword->name;
+
+ if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')
+ return resword;
+ }
+ }
+ }
+ return 0;
+}