diff options
author | Marcus Holland-Moritz <mhx-perl@gmx.net> | 2005-01-31 19:22:41 +0000 |
---|---|---|
committer | Marcus Holland-Moritz <mhx-perl@gmx.net> | 2005-01-31 19:22:41 +0000 |
commit | 4c3bbe0f1940fe1418b3633a0eb6151f5eccf740 (patch) | |
tree | 2b72f3b4aa49acee0e3f4c26902f058d2aae920d /toke.c | |
parent | 59887a99f7d62961aaf7cf10962af0a596c4942f (diff) | |
download | perl-4c3bbe0f1940fe1418b3633a0eb6151f5eccf740.tar.gz |
Make Perl_keyword() another 30% faster.
p4raw-id: //depot/perl@23914
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 4641 |
1 files changed, 3325 insertions, 1316 deletions
@@ -5585,1340 +5585,3349 @@ S_pending_ident(pTHX) return WORD; } -/* Weights are the number of occurrences of that keyword in about 135M of - input to Perl_keyword from a lot of real perl. This routine is about 20% - faster than the routine it replaces. */ +/* + * The following code was generated by perl_keyword.pl. + */ I32 -Perl_keyword (pTHX_ char *name, I32 len) { - /* Initially switch on the length of the name. */ - switch (len) { - case 1: - /* Names all of length 1. */ - /* m q s x y */ - /* Offset 0 gives the best switch position. */ - switch (name[0]) { - case 'm': +Perl_keyword (pTHX_ char *name, I32 len) +{ + switch (len) + { + case 1: /* 5 tokens of length 1 */ + switch (name[0]) { - return KEY_m; /* Weight 148776 */ + case 'm': + { /* m */ + return KEY_m; + } + + goto unknown; + + case 'q': + { /* q */ + return KEY_q; + } + + goto unknown; + + case 's': + { /* s */ + return KEY_s; + } + + goto unknown; + + case 'x': + { /* x */ + return -KEY_x; + } + + goto unknown; + + case 'y': + { /* y */ + return KEY_y; + } + + goto unknown; + + default: + goto unknown; } - break; - case 'q': + + case 2: /* 18 tokens of length 2 */ + switch (name[0]) { - return KEY_q; /* Weight 69076 */ + case 'd': + if (name[1] == 'o') + { /* do */ + return KEY_do; + } + + goto unknown; + + case 'e': + if (name[1] == 'q') + { /* eq */ + return -KEY_eq; + } + + goto unknown; + + case 'g': + switch (name[1]) + { + case 'e': + { /* ge */ + return -KEY_ge; + } + + goto unknown; + + case 't': + { /* gt */ + return -KEY_gt; + } + + goto unknown; + + default: + goto unknown; + } + + case 'i': + if (name[1] == 'f') + { /* if */ + return KEY_if; + } + + goto unknown; + + case 'l': + switch (name[1]) + { + case 'c': + { /* lc */ + return -KEY_lc; + } + + goto unknown; + + case 'e': + { /* le */ + return -KEY_le; + } + + goto unknown; + + case 't': + { /* lt */ + return -KEY_lt; + } + + goto unknown; + + default: + goto unknown; + } + + case 'm': + if (name[1] == 'y') + { /* my */ + return KEY_my; + } + + goto unknown; + + case 'n': + switch (name[1]) + { + case 'e': + { /* ne */ + return -KEY_ne; + } + + goto unknown; + + case 'o': + { /* no */ + return KEY_no; + } + + goto unknown; + + default: + goto unknown; + } + + case 'o': + if (name[1] == 'r') + { /* or */ + return -KEY_or; + } + + goto unknown; + + case 'q': + switch (name[1]) + { + case 'q': + { /* qq */ + return KEY_qq; + } + + goto unknown; + + case 'r': + { /* qr */ + return KEY_qr; + } + + goto unknown; + + case 'w': + { /* qw */ + return KEY_qw; + } + + goto unknown; + + case 'x': + { /* qx */ + return KEY_qx; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'r') + { /* tr */ + return KEY_tr; + } + + goto unknown; + + case 'u': + if (name[1] == 'c') + { /* uc */ + return -KEY_uc; + } + + goto unknown; + + default: + goto unknown; } - break; - case 's': + + case 3: /* 28 tokens of length 3 */ + switch (name[0]) { - return KEY_s; /* Weight 403691 */ + case 'E': + if (name[1] == 'N' && + name[2] == 'D') + { /* END */ + return KEY_END; + } + + goto unknown; + + case 'a': + switch (name[1]) + { + case 'b': + if (name[2] == 's') + { /* abs */ + return -KEY_abs; + } + + goto unknown; + + case 'n': + if (name[2] == 'd') + { /* and */ + return -KEY_and; + } + + goto unknown; + + default: + goto unknown; + } + + case 'c': + switch (name[1]) + { + case 'h': + if (name[2] == 'r') + { /* chr */ + return -KEY_chr; + } + + goto unknown; + + case 'm': + if (name[2] == 'p') + { /* cmp */ + return -KEY_cmp; + } + + goto unknown; + + case 'o': + if (name[2] == 's') + { /* cos */ + return -KEY_cos; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'i' && + name[2] == 'e') + { /* die */ + return -KEY_die; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'o': + if (name[2] == 'f') + { /* eof */ + return -KEY_eof; + } + + goto unknown; + + case 'r': + if (name[2] == 'r') + { /* err */ + return -KEY_err; + } + + goto unknown; + + case 'x': + if (name[2] == 'p') + { /* exp */ + return -KEY_exp; + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r') + { /* for */ + return KEY_for; + } + + goto unknown; + + case 'h': + if (name[1] == 'e' && + name[2] == 'x') + { /* hex */ + return -KEY_hex; + } + + goto unknown; + + case 'i': + if (name[1] == 'n' && + name[2] == 't') + { /* int */ + return -KEY_int; + } + + goto unknown; + + case 'l': + if (name[1] == 'o' && + name[2] == 'g') + { /* log */ + return -KEY_log; + } + + goto unknown; + + case 'm': + if (name[1] == 'a' && + name[2] == 'p') + { /* map */ + return KEY_map; + } + + goto unknown; + + case 'n': + if (name[1] == 'o' && + name[2] == 't') + { /* not */ + return -KEY_not; + } + + goto unknown; + + case 'o': + switch (name[1]) + { + case 'c': + if (name[2] == 't') + { /* oct */ + return -KEY_oct; + } + + goto unknown; + + case 'r': + if (name[2] == 'd') + { /* ord */ + return -KEY_ord; + } + + goto unknown; + + case 'u': + if (name[2] == 'r') + { /* our */ + return KEY_our; + } + + goto unknown; + + default: + goto unknown; + } + + case 'p': + if (name[1] == 'o') + { + switch (name[2]) + { + case 'p': + { /* pop */ + return -KEY_pop; + } + + goto unknown; + + case 's': + { /* pos */ + return KEY_pos; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'f') + { /* ref */ + return -KEY_ref; + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'i': + if (name[2] == 'n') + { /* sin */ + return -KEY_sin; + } + + goto unknown; + + case 'u': + if (name[2] == 'b') + { /* sub */ + return KEY_sub; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'i' && + name[2] == 'e') + { /* tie */ + return KEY_tie; + } + + goto unknown; + + case 'u': + if (name[1] == 's' && + name[2] == 'e') + { /* use */ + return KEY_use; + } + + goto unknown; + + case 'v': + if (name[1] == 'e' && + name[2] == 'c') + { /* vec */ + return -KEY_vec; + } + + goto unknown; + + case 'x': + if (name[1] == 'o' && + name[2] == 'r') + { /* xor */ + return -KEY_xor; + } + + goto unknown; + + default: + goto unknown; } - break; - case 'x': + + case 4: /* 40 tokens of length 4 */ + switch (name[0]) { - return -KEY_x; /* Weight 38549 */ + case 'C': + if (name[1] == 'O' && + name[2] == 'R' && + name[3] == 'E') + { /* CORE */ + return -KEY_CORE; + } + + goto unknown; + + case 'I': + if (name[1] == 'N' && + name[2] == 'I' && + name[3] == 'T') + { /* INIT */ + return KEY_INIT; + } + + goto unknown; + + case 'b': + if (name[1] == 'i' && + name[2] == 'n' && + name[3] == 'd') + { /* bind */ + return -KEY_bind; + } + + goto unknown; + + case 'c': + if (name[1] == 'h' && + name[2] == 'o' && + name[3] == 'p') + { /* chop */ + return -KEY_chop; + } + + goto unknown; + + case 'd': + if (name[1] == 'u' && + name[2] == 'm' && + name[3] == 'p') + { /* dump */ + return -KEY_dump; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'a': + if (name[2] == 'c' && + name[3] == 'h') + { /* each */ + return -KEY_each; + } + + goto unknown; + + case 'l': + if (name[2] == 's' && + name[3] == 'e') + { /* else */ + return KEY_else; + } + + goto unknown; + + case 'v': + if (name[2] == 'a' && + name[3] == 'l') + { /* eval */ + return KEY_eval; + } + + goto unknown; + + case 'x': + switch (name[2]) + { + case 'e': + if (name[3] == 'c') + { /* exec */ + return -KEY_exec; + } + + goto unknown; + + case 'i': + if (name[3] == 't') + { /* exit */ + return -KEY_exit; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'k') + { /* fork */ + return -KEY_fork; + } + + goto unknown; + + case 'g': + switch (name[1]) + { + case 'e': + if (name[2] == 't' && + name[3] == 'c') + { /* getc */ + return -KEY_getc; + } + + goto unknown; + + case 'l': + if (name[2] == 'o' && + name[3] == 'b') + { /* glob */ + return KEY_glob; + } + + goto unknown; + + case 'o': + if (name[2] == 't' && + name[3] == 'o') + { /* goto */ + return KEY_goto; + } + + goto unknown; + + case 'r': + if (name[2] == 'e' && + name[3] == 'p') + { /* grep */ + return KEY_grep; + } + + goto unknown; + + default: + goto unknown; + } + + case 'j': + if (name[1] == 'o' && + name[2] == 'i' && + name[3] == 'n') + { /* join */ + return -KEY_join; + } + + goto unknown; + + case 'k': + switch (name[1]) + { + case 'e': + if (name[2] == 'y' && + name[3] == 's') + { /* keys */ + return -KEY_keys; + } + + goto unknown; + + case 'i': + if (name[2] == 'l' && + name[3] == 'l') + { /* kill */ + return -KEY_kill; + } + + goto unknown; + + default: + goto unknown; + } + + case 'l': + switch (name[1]) + { + case 'a': + if (name[2] == 's' && + name[3] == 't') + { /* last */ + return KEY_last; + } + + goto unknown; + + case 'i': + if (name[2] == 'n' && + name[3] == 'k') + { /* link */ + return -KEY_link; + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k') + { /* lock */ + return -KEY_lock; + } + + goto unknown; + + default: + goto unknown; + } + + case 'n': + if (name[1] == 'e' && + name[2] == 'x' && + name[3] == 't') + { /* next */ + return KEY_next; + } + + goto unknown; + + case 'o': + if (name[1] == 'p' && + name[2] == 'e' && + name[3] == 'n') + { /* open */ + return -KEY_open; + } + + goto unknown; + + case 'p': + switch (name[1]) + { + case 'a': + if (name[2] == 'c' && + name[3] == 'k') + { /* pack */ + return -KEY_pack; + } + + goto unknown; + + case 'i': + if (name[2] == 'p' && + name[3] == 'e') + { /* pipe */ + return -KEY_pipe; + } + + goto unknown; + + case 'u': + if (name[2] == 's' && + name[3] == 'h') + { /* push */ + return -KEY_push; + } + + goto unknown; + + default: + goto unknown; + } + + case 'r': + switch (name[1]) + { + case 'a': + if (name[2] == 'n' && + name[3] == 'd') + { /* rand */ + return -KEY_rand; + } + + goto unknown; + + case 'e': + switch (name[2]) + { + case 'a': + if (name[3] == 'd') + { /* read */ + return -KEY_read; + } + + goto unknown; + + case 'c': + if (name[3] == 'v') + { /* recv */ + return -KEY_recv; + } + + goto unknown; + + case 'd': + if (name[3] == 'o') + { /* redo */ + return KEY_redo; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'e': + if (name[3] == 'k') + { /* seek */ + return -KEY_seek; + } + + goto unknown; + + case 'n': + if (name[3] == 'd') + { /* send */ + return -KEY_send; + } + + goto unknown; + + default: + goto unknown; + } + + case 'o': + if (name[2] == 'r' && + name[3] == 't') + { /* sort */ + return KEY_sort; + } + + goto unknown; + + case 'q': + if (name[2] == 'r' && + name[3] == 't') + { /* sqrt */ + return -KEY_sqrt; + } + + goto unknown; + + case 't': + if (name[2] == 'a' && + name[3] == 't') + { /* stat */ + return -KEY_stat; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + switch (name[1]) + { + case 'e': + if (name[2] == 'l' && + name[3] == 'l') + { /* tell */ + return -KEY_tell; + } + + goto unknown; + + case 'i': + switch (name[2]) + { + case 'e': + if (name[3] == 'd') + { /* tied */ + return KEY_tied; + } + + goto unknown; + + case 'm': + if (name[3] == 'e') + { /* time */ + return -KEY_time; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'w': + if (name[1] == 'a') + { + switch (name[2]) + { + case 'i': + if (name[3] == 't') + { /* wait */ + return -KEY_wait; + } + + goto unknown; + + case 'r': + if (name[3] == 'n') + { /* warn */ + return -KEY_warn; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; } - break; - case 'y': + + case 5: /* 36 tokens of length 5 */ + switch (name[0]) { - return KEY_y; /* Weight 567 */ - } - break; - } - break; - case 2: - /* Names all of length 2. */ - /* do eq ge gt if lc le lt my ne no or qq qr qw qx tr uc */ - /* Offset 0 gives the best switch position. */ - switch (name[0]) { - case 'd': - if (name[1] == 'o') { - return KEY_do; /* Weight 96004 */ - } - break; - case 'e': - if (name[1] == 'q') { - return -KEY_eq; /* Weight 797065 */ - } - break; - case 'g': - if (name[1] == 'e') { - return -KEY_ge; /* Weight 5666 */ - } - if (name[1] == 't') { - return -KEY_gt; /* Weight 897 */ - } - break; - case 'i': - if (name[1] == 'f') { - return KEY_if; /* Weight 2482605 */ - } - break; - case 'l': - if (name[1] == 'c') { - return -KEY_lc; /* Weight 38487 */ - } - if (name[1] == 'e') { - return -KEY_le; /* Weight 4052 */ - } - if (name[1] == 't') { - return -KEY_lt; /* Weight 335 */ - } - break; - case 'm': - if (name[1] == 'y') { - return KEY_my; /* Weight 3785925 */ - } - break; - case 'n': - if (name[1] == 'e') { - return -KEY_ne; /* Weight 112906 */ - } - if (name[1] == 'o') { - return KEY_no; /* Weight 61989 */ - } - break; - case 'o': - if (name[1] == 'r') { - return -KEY_or; /* Weight 405163 */ - } - break; - case 'q': - if (name[1] == 'w') { - return KEY_qw; /* Weight 415641 */ - } - if (name[1] == 'q') { - return KEY_qq; /* Weight 55149 */ - } - if (name[1] == 'r') { - return KEY_qr; /* Weight 28519 */ - } - if (name[1] == 'x') { - return KEY_qx; /* Weight 177 */ - } - break; - case 't': - if (name[1] == 'r') { - return KEY_tr; /* Weight 22665 */ - } - break; - case 'u': - if (name[1] == 'c') { - return -KEY_uc; /* Weight 16961 */ - } - break; - } - break; - case 3: - /* Names all of length 3. */ - /* END abs and chr cmp cos die eof err exp for hex int log map not oct ord - our pop pos ref sin sub tie use vec xor */ - /* Offset 0 gives the best switch position. */ - switch (*name++) { - case 'E': - if (name[0] == 'N' && name[1] == 'D') { - return KEY_END; /* Weight 3565 */ - } - break; - case 'a': - if (name[0] == 'n' && name[1] == 'd') { - return -KEY_and; /* Weight 284867 */ - } - if (name[0] == 'b' && name[1] == 's') { - return -KEY_abs; /* Weight 7767 */ - } - break; - case 'c': - if (name[0] == 'h' && name[1] == 'r') { - return -KEY_chr; /* Weight 35654 */ - } - if (name[0] == 'm' && name[1] == 'p') { - return -KEY_cmp; /* Weight 6808 */ - } - if (name[0] == 'o' && name[1] == 's') { - return -KEY_cos; /* Weight 447 */ - } - break; - case 'd': - if (name[0] == 'i' && name[1] == 'e') { - return -KEY_die; /* Weight 192203 */ - } - break; - case 'e': - if (name[0] == 'o' && name[1] == 'f') { - return -KEY_eof; /* Weight 1618 */ - } - if (name[0] == 'r' && name[1] == 'r') { - return -KEY_err; /* Weight 522 */ - } - if (name[0] == 'x' && name[1] == 'p') { - return -KEY_exp; /* Weight 423 */ - } - break; - case 'f': - if (name[0] == 'o' && name[1] == 'r') { - return KEY_for; /* Weight 118158 */ - } - break; - case 'h': - if (name[0] == 'e' && name[1] == 'x') { - return -KEY_hex; /* Weight 3629 */ - } - break; - case 'i': - if (name[0] == 'n' && name[1] == 't') { - return -KEY_int; /* Weight 18549 */ - } - break; - case 'l': - if (name[0] == 'o' && name[1] == 'g') { - return -KEY_log; - } - break; - case 'm': - if (name[0] == 'a' && name[1] == 'p') { - return KEY_map; /* Weight 115207 */ - } - break; - case 'n': - if (name[0] == 'o' && name[1] == 't') { - return -KEY_not; /* Weight 55868 */ - } - break; - case 'o': - if (name[0] == 'u' && name[1] == 'r') { - return KEY_our; /* Weight 194417 */ - } - if (name[0] == 'r' && name[1] == 'd') { - return -KEY_ord; /* Weight 22221 */ - } - if (name[0] == 'c' && name[1] == 't') { - return -KEY_oct; /* Weight 4195 */ - } - break; - case 'p': - if (name[0] == 'o' && name[1] == 'p') { - return -KEY_pop; /* Weight 46933 */ - } - if (name[0] == 'o' && name[1] == 's') { - return KEY_pos; /* Weight 5503 */ - } - break; - case 'r': - if (name[0] == 'e' && name[1] == 'f') { - return -KEY_ref; /* Weight 347102 */ - } - break; - case 's': - if (name[0] == 'u' && name[1] == 'b') { - return KEY_sub; /* Weight 2053554 */ - } - if (name[0] == 'i' && name[1] == 'n') { - return -KEY_sin; /* Weight 499 */ - } - break; - case 't': - if (name[0] == 'i' && name[1] == 'e') { - return KEY_tie; /* Weight 10131 */ - } - break; - case 'u': - if (name[0] == 's' && name[1] == 'e') { - return KEY_use; /* Weight 686081 */ - } - break; - case 'v': - if (name[0] == 'e' && name[1] == 'c') { - return -KEY_vec; /* Weight 110566 */ - } - break; - case 'x': - if (name[0] == 'o' && name[1] == 'r') { - return -KEY_xor; /* Weight 619 */ - } - break; - } - break; - case 4: - /* Names all of length 4. */ - /* CORE INIT bind chop dump each else eval exec exit fork getc glob goto - grep join keys kill last link lock next open pack pipe push rand read - recv redo seek send sort sqrt stat tell tied time wait warn */ - /* Offset 0 gives the best switch position. */ - switch (*name++) { - case 'C': - if (!memcmp(name, "ORE", 3)) { - /* C */ - return -KEY_CORE; /* Weight 47391 */ - } - break; - case 'I': - if (!memcmp(name, "NIT", 3)) { - /* I */ - return KEY_INIT; /* Weight 418 */ - } - break; - case 'b': - if (!memcmp(name, "ind", 3)) { - /* b */ - return -KEY_bind; /* Weight 290 */ - } - break; - case 'c': - if (!memcmp(name, "hop", 3)) { - /* c */ - return -KEY_chop; /* Weight 10172 */ - } - break; - case 'd': - if (!memcmp(name, "ump", 3)) { - /* d */ - return -KEY_dump; /* Weight 274 */ - } - break; - case 'e': - if (!memcmp(name, "lse", 3)) { - /* e */ - return KEY_else; /* Weight 527806 */ - } - if (!memcmp(name, "val", 3)) { - /* e */ - return KEY_eval; /* Weight 136977 */ - } - if (!memcmp(name, "ach", 3)) { - /* e */ - return -KEY_each; /* Weight 18414 */ - } - if (!memcmp(name, "xit", 3)) { - /* e */ - return -KEY_exit; /* Weight 8262 */ - } - if (!memcmp(name, "xec", 3)) { - /* e */ - return -KEY_exec; /* Weight 429 */ - } - break; - case 'f': - if (!memcmp(name, "ork", 3)) { - /* f */ - return -KEY_fork; /* Weight 327 */ - } - break; - case 'g': - if (!memcmp(name, "oto", 3)) { - /* g */ - return KEY_goto; /* Weight 109258 */ - } - if (!memcmp(name, "rep", 3)) { - /* g */ - return KEY_grep; /* Weight 75912 */ - } - if (!memcmp(name, "lob", 3)) { - /* g */ - return KEY_glob; /* Weight 2172 */ - } - if (!memcmp(name, "etc", 3)) { - /* g */ - return -KEY_getc; /* Weight 981 */ - } - break; - case 'j': - if (!memcmp(name, "oin", 3)) { - /* j */ - return -KEY_join; /* Weight 130820 */ - } - break; - case 'k': - if (!memcmp(name, "eys", 3)) { - /* k */ - return -KEY_keys; /* Weight 131427 */ - } - if (!memcmp(name, "ill", 3)) { - /* k */ - return -KEY_kill; /* Weight 382 */ - } - break; - case 'l': - if (!memcmp(name, "ast", 3)) { - /* l */ - return KEY_last; /* Weight 95078 */ - } - if (!memcmp(name, "ock", 3)) { - /* l */ - return -KEY_lock; /* Weight 4210 */ - } - if (!memcmp(name, "ink", 3)) { - /* l */ - return -KEY_link; /* Weight 425 */ - } - break; - case 'n': - if (!memcmp(name, "ext", 3)) { - /* n */ - return KEY_next; /* Weight 153355 */ - } - break; - case 'o': - if (!memcmp(name, "pen", 3)) { - /* o */ - return -KEY_open; /* Weight 39060 */ - } - break; - case 'p': - if (!memcmp(name, "ush", 3)) { - /* p */ - return -KEY_push; /* Weight 256975 */ - } - if (!memcmp(name, "ack", 3)) { - /* p */ - return -KEY_pack; /* Weight 14491 */ - } - if (!memcmp(name, "ipe", 3)) { - /* p */ - return -KEY_pipe; /* Weight 344 */ - } - break; - case 'r': - if (!memcmp(name, "ead", 3)) { - /* r */ - return -KEY_read; /* Weight 9434 */ - } - if (!memcmp(name, "edo", 3)) { - /* r */ - return KEY_redo; /* Weight 5219 */ - } - if (!memcmp(name, "and", 3)) { - /* r */ - return -KEY_rand; /* Weight 1824 */ - } - if (!memcmp(name, "ecv", 3)) { - /* r */ - return -KEY_recv; /* Weight 250 */ - } - break; - case 's': - if (!memcmp(name, "tat", 3)) { - /* s */ - return -KEY_stat; /* Weight 36702 */ - } - if (!memcmp(name, "ort", 3)) { - /* s */ - return KEY_sort; /* Weight 36394 */ - } - if (!memcmp(name, "eek", 3)) { - /* s */ - return -KEY_seek; /* Weight 2174 */ - } - if (!memcmp(name, "qrt", 3)) { - /* s */ - return -KEY_sqrt; /* Weight 766 */ - } - if (!memcmp(name, "end", 3)) { - /* s */ - return -KEY_send; /* Weight 496 */ - } - break; - case 't': - if (!memcmp(name, "ime", 3)) { - /* t */ - return -KEY_time; /* Weight 32168 */ - } - if (!memcmp(name, "ied", 3)) { - /* t */ - return KEY_tied; /* Weight 9749 */ - } - if (!memcmp(name, "ell", 3)) { - /* t */ - return -KEY_tell; /* Weight 2578 */ - } - break; - case 'w': - if (!memcmp(name, "arn", 3)) { - /* w */ - return -KEY_warn; /* Weight 91372 */ - } - if (!memcmp(name, "ait", 3)) { - /* w */ - return -KEY_wait; - } - break; - } - break; - case 5: - /* Names all of length 5. */ - /* BEGIN CHECK alarm atan2 bless chdir chmod chomp chown close crypt elsif - fcntl flock index ioctl local lstat mkdir print reset rmdir semop shift - sleep split srand study times umask undef untie until utime while write - */ - /* Offset 3 gives the best switch position. */ - switch (name[3]) { - case 'C': - if (!memcmp(name, "CHECK", 5)) { - /* ^ */ - return KEY_CHECK; /* Weight 538 */ - } - break; - case 'I': - if (!memcmp(name, "BEGIN", 5)) { - /* ^ */ - return KEY_BEGIN; /* Weight 24125 */ - } - break; - case 'a': - if (!memcmp(name, "local", 5)) { - /* ^ */ - return KEY_local; /* Weight 262973 */ - } - if (!memcmp(name, "lstat", 5)) { - /* ^ */ - return -KEY_lstat; /* Weight 13859 */ - } - break; - case 'c': - if (!memcmp(name, "flock", 5)) { - /* ^ */ - return -KEY_flock; /* Weight 260 */ - } - break; - case 'd': - if (!memcmp(name, "study", 5)) { - /* ^ */ - return KEY_study; /* Weight 1933 */ - } - break; - case 'e': - if (!memcmp(name, "undef", 5)) { - /* ^ */ - return KEY_undef; /* Weight 311156 */ - } - if (!memcmp(name, "index", 5)) { - /* ^ */ - return -KEY_index; /* Weight 51465 */ - } - if (!memcmp(name, "sleep", 5)) { - /* ^ */ - return -KEY_sleep; /* Weight 519 */ - } - if (!memcmp(name, "times", 5)) { - /* ^ */ - return -KEY_times; /* Weight 310 */ - } - if (!memcmp(name, "reset", 5)) { - /* ^ */ - return -KEY_reset; /* Weight 127 */ - } - break; - case 'f': - if (!memcmp(name, "shift", 5)) { - /* ^ */ - return -KEY_shift; /* Weight 904125 */ - } - break; - case 'i': - if (!memcmp(name, "elsif", 5)) { - /* ^ */ - return KEY_elsif; /* Weight 322365 */ - } - if (!memcmp(name, "split", 5)) { - /* ^ */ - return KEY_split; /* Weight 93678 */ - } - if (!memcmp(name, "chdir", 5)) { - /* ^ */ - return -KEY_chdir; /* Weight 20317 */ - } - if (!memcmp(name, "mkdir", 5)) { - /* ^ */ - return -KEY_mkdir; /* Weight 2951 */ - } - if (!memcmp(name, "rmdir", 5)) { - /* ^ */ - return -KEY_rmdir; /* Weight 2493 */ - } - if (!memcmp(name, "until", 5)) { - /* ^ */ - return KEY_until; /* Weight 818 */ - } - if (!memcmp(name, "untie", 5)) { - /* ^ */ - return KEY_untie; /* Weight 420 */ - } - break; - case 'l': - if (!memcmp(name, "while", 5)) { - /* ^ */ - return KEY_while; /* Weight 120305 */ - } - break; - case 'm': - if (!memcmp(name, "chomp", 5)) { - /* ^ */ - return -KEY_chomp; /* Weight 22337 */ - } - if (!memcmp(name, "utime", 5)) { - /* ^ */ - return -KEY_utime; /* Weight 3849 */ - } - break; - case 'n': - if (!memcmp(name, "print", 5)) { - /* ^ */ - return KEY_print; /* Weight 220904 */ - } - if (!memcmp(name, "atan2", 5)) { - /* ^ */ - return -KEY_atan2; /* Weight 350 */ - } - if (!memcmp(name, "srand", 5)) { - /* ^ */ - return -KEY_srand; /* Weight 41 */ - } - break; - case 'o': - if (!memcmp(name, "chmod", 5)) { - /* ^ */ - return -KEY_chmod; /* Weight 18455 */ - } - if (!memcmp(name, "semop", 5)) { - /* ^ */ - return -KEY_semop; - } - break; - case 'p': - if (!memcmp(name, "crypt", 5)) { - /* ^ */ - return -KEY_crypt; /* Weight 8 */ - } - break; - case 'r': - if (!memcmp(name, "alarm", 5)) { - /* ^ */ - return -KEY_alarm; - } - break; - case 's': - if (!memcmp(name, "bless", 5)) { - /* ^ */ - return -KEY_bless; /* Weight 62111 */ - } - if (!memcmp(name, "close", 5)) { - /* ^ */ - return -KEY_close; /* Weight 44077 */ - } - if (!memcmp(name, "umask", 5)) { - /* ^ */ - return -KEY_umask; /* Weight 1658 */ - } - break; - case 't': - if (!memcmp(name, "write", 5)) { - /* ^ */ - return -KEY_write; /* Weight 2525 */ - } - if (!memcmp(name, "fcntl", 5)) { - /* ^ */ - return -KEY_fcntl; /* Weight 1257 */ - } - if (!memcmp(name, "ioctl", 5)) { - /* ^ */ - return -KEY_ioctl; /* Weight 967 */ - } - break; - case 'w': - if (!memcmp(name, "chown", 5)) { - /* ^ */ - return -KEY_chown; /* Weight 34 */ - } - break; - } - break; - case 6: - /* Names all of length 6. */ - /* accept caller chroot delete elseif exists fileno format gmtime length - listen msgctl msgget msgrcv msgsnd printf rename return rindex scalar - select semctl semget shmctl shmget socket splice substr system unless - unlink unpack values */ - /* Offset 3 gives the best switch position. */ - switch (name[3]) { - case 'a': - if (!memcmp(name, "unpack", 6)) { - /* ^ */ - return -KEY_unpack; /* Weight 7849 */ - } - if (!memcmp(name, "rename", 6)) { - /* ^ */ - return -KEY_rename; /* Weight 4918 */ - } - break; - case 'c': - if (!memcmp(name, "semctl", 6)) { - /* ^ */ - return -KEY_semctl; /* Weight 17 */ - } - if (!memcmp(name, "msgctl", 6)) { - /* ^ */ - return -KEY_msgctl; - } - if (!memcmp(name, "shmctl", 6)) { - /* ^ */ - return -KEY_shmctl; - } - break; - case 'd': - if (!memcmp(name, "rindex", 6)) { - /* ^ */ - return -KEY_rindex; /* Weight 5005 */ - } - break; - case 'e': - if (!memcmp(name, "unless", 6)) { - /* ^ */ - return KEY_unless; /* Weight 913955 */ - } - if (!memcmp(name, "delete", 6)) { - /* ^ */ - return KEY_delete; /* Weight 74966 */ - } - if (!memcmp(name, "select", 6)) { - /* ^ */ - return -KEY_select; /* Weight 12209 */ - } - if (!memcmp(name, "fileno", 6)) { - /* ^ */ - return -KEY_fileno; /* Weight 8591 */ - } - if (!memcmp(name, "accept", 6)) { - /* ^ */ - return -KEY_accept; /* Weight 233 */ - } - if (!memcmp(name, "elseif", 6)) { - /* ^ */ - /* This is somewhat hacky. */ - if(ckWARN_d(WARN_SYNTAX)) - Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif"); - break; - } - break; - case 'g': - if (!memcmp(name, "length", 6)) { - /* ^ */ - return -KEY_length; /* Weight 163975 */ - } - if (!memcmp(name, "msgget", 6)) { - /* ^ */ - return -KEY_msgget; - } - if (!memcmp(name, "semget", 6)) { - /* ^ */ - return -KEY_semget; - } - if (!memcmp(name, "shmget", 6)) { - /* ^ */ - return -KEY_shmget; - } - break; - case 'i': - if (!memcmp(name, "splice", 6)) { - /* ^ */ - return -KEY_splice; /* Weight 25143 */ - } - if (!memcmp(name, "unlink", 6)) { - /* ^ */ - return -KEY_unlink; /* Weight 18616 */ - } - if (!memcmp(name, "gmtime", 6)) { - /* ^ */ - return -KEY_gmtime; /* Weight 4040 */ - } - break; - case 'k': - if (!memcmp(name, "socket", 6)) { - /* ^ */ - return -KEY_socket; - } - break; - case 'l': - if (!memcmp(name, "caller", 6)) { - /* ^ */ - return -KEY_caller; /* Weight 148457 */ - } - if (!memcmp(name, "scalar", 6)) { - /* ^ */ - return KEY_scalar; /* Weight 43953 */ - } - break; - case 'm': - if (!memcmp(name, "format", 6)) { - /* ^ */ - return KEY_format; /* Weight 1735 */ - } - break; - case 'n': - if (!memcmp(name, "printf", 6)) { - /* ^ */ - return KEY_printf; /* Weight 6874 */ - } - break; - case 'o': - if (!memcmp(name, "chroot", 6)) { - /* ^ */ - return -KEY_chroot; - } - break; - case 'r': - if (!memcmp(name, "msgrcv", 6)) { - /* ^ */ - return -KEY_msgrcv; - } - break; - case 's': - if (!memcmp(name, "exists", 6)) { - /* ^ */ - return KEY_exists; /* Weight 145939 */ - } - if (!memcmp(name, "substr", 6)) { - /* ^ */ - return -KEY_substr; /* Weight 121344 */ - } - if (!memcmp(name, "msgsnd", 6)) { - /* ^ */ - return -KEY_msgsnd; - } - break; - case 't': - if (!memcmp(name, "system", 6)) { - /* ^ */ - return -KEY_system; /* Weight 4326 */ - } - if (!memcmp(name, "listen", 6)) { - /* ^ */ - return -KEY_listen; - } - break; - case 'u': - if (!memcmp(name, "return", 6)) { - /* ^ */ - return KEY_return; /* Weight 1401629 */ - } - if (!memcmp(name, "values", 6)) { - /* ^ */ - return -KEY_values; /* Weight 10110 */ - } - break; - } - break; - case 7: - /* Names all of length 7. */ - /* DESTROY __END__ binmode connect dbmopen defined foreach getpgrp getppid - lcfirst opendir package readdir require reverse seekdir setpgrp shmread - sprintf symlink syscall sysopen sysread sysseek telldir ucfirst unshift - waitpid */ - /* Offset 3 gives the best switch position. */ - switch (name[3]) { - case 'N': - if (!memcmp(name, "__END__", 7)) { - /* ^ */ - return KEY___END__; /* Weight 112636 */ - } - break; - case 'T': - if (!memcmp(name, "DESTROY", 7)) { - /* ^ */ - return KEY_DESTROY; /* Weight 7 */ - } - break; - case 'c': - if (!memcmp(name, "syscall", 7)) { - /* ^ */ - return -KEY_syscall; /* Weight 560 */ - } - break; - case 'd': - if (!memcmp(name, "readdir", 7)) { - /* ^ */ - return -KEY_readdir; /* Weight 11716 */ - } - break; - case 'e': - if (!memcmp(name, "foreach", 7)) { - /* ^ */ - return KEY_foreach; /* Weight 281720 */ - } - if (!memcmp(name, "reverse", 7)) { - /* ^ */ - return -KEY_reverse; /* Weight 10571 */ - } - break; - case 'h': - if (!memcmp(name, "unshift", 7)) { - /* ^ */ - return -KEY_unshift; /* Weight 36504 */ - } - break; - case 'i': - if (!memcmp(name, "defined", 7)) { - /* ^ */ - return KEY_defined; /* Weight 694277 */ - } - if (!memcmp(name, "sprintf", 7)) { - /* ^ */ - return -KEY_sprintf; /* Weight 72704 */ - } - if (!memcmp(name, "ucfirst", 7)) { - /* ^ */ - return -KEY_ucfirst; /* Weight 1012 */ - } - if (!memcmp(name, "lcfirst", 7)) { - /* ^ */ - return -KEY_lcfirst; /* Weight 165 */ - } - break; - case 'k': - if (!memcmp(name, "package", 7)) { - /* ^ */ - return KEY_package; /* Weight 245661 */ - } - if (!memcmp(name, "seekdir", 7)) { - /* ^ */ - return -KEY_seekdir; /* Weight 20 */ - } - break; - case 'l': - if (!memcmp(name, "symlink", 7)) { - /* ^ */ - return -KEY_symlink; /* Weight 386 */ - } - if (!memcmp(name, "telldir", 7)) { - /* ^ */ - return -KEY_telldir; /* Weight 294 */ - } - break; - case 'm': - if (!memcmp(name, "binmode", 7)) { - /* ^ */ - return -KEY_binmode; /* Weight 12301 */ - } - break; - case 'n': - if (!memcmp(name, "opendir", 7)) { - /* ^ */ - return -KEY_opendir; /* Weight 9007 */ - } - if (!memcmp(name, "connect", 7)) { - /* ^ */ - return -KEY_connect; /* Weight 526 */ - } - break; - case 'o': - if (!memcmp(name, "sysopen", 7)) { - /* ^ */ - return -KEY_sysopen; /* Weight 1230 */ - } - if (!memcmp(name, "dbmopen", 7)) { - /* ^ */ - return -KEY_dbmopen; - } - break; - case 'p': - if (!memcmp(name, "getppid", 7)) { - /* ^ */ - return -KEY_getppid; /* Weight 10 */ - } - if (!memcmp(name, "getpgrp", 7)) { - /* ^ */ - return -KEY_getpgrp; - } - if (!memcmp(name, "setpgrp", 7)) { - /* ^ */ - return -KEY_setpgrp; - } - break; - case 'r': - if (!memcmp(name, "sysread", 7)) { - /* ^ */ - return -KEY_sysread; /* Weight 3729 */ - } - if (!memcmp(name, "shmread", 7)) { - /* ^ */ - return -KEY_shmread; - } - break; - case 's': - if (!memcmp(name, "sysseek", 7)) { - /* ^ */ - return -KEY_sysseek; /* Weight 721 */ - } - break; - case 't': - if (!memcmp(name, "waitpid", 7)) { - /* ^ */ - return -KEY_waitpid; /* Weight 414 */ - } - break; - case 'u': - if (!memcmp(name, "require", 7)) { - /* ^ */ - return KEY_require; /* Weight 375220 */ - } - break; - } - break; - case 8: - /* Names all of length 8. */ - /* AUTOLOAD __DATA__ __FILE__ __LINE__ closedir continue dbmclose endgrent - endpwent formline getgrent getgrgid getgrnam getlogin getpwent getpwnam - getpwuid readline readlink readpipe setgrent setpwent shmwrite shutdown - syswrite truncate */ - /* Offset 3 gives the best switch position. */ - switch (name[3]) { - case 'A': - if (!memcmp(name, "__DATA__", 8)) { - /* ^ */ - return KEY___DATA__; /* Weight 395 */ - } - break; - case 'I': - if (!memcmp(name, "__FILE__", 8)) { - /* ^ */ - return -KEY___FILE__; /* Weight 888 */ - } - if (!memcmp(name, "__LINE__", 8)) { - /* ^ */ - return -KEY___LINE__; /* Weight 209 */ - } - break; - case 'O': - if (!memcmp(name, "AUTOLOAD", 8)) { - /* ^ */ - return KEY_AUTOLOAD; /* Weight 2713 */ - } - break; - case 'c': - if (!memcmp(name, "dbmclose", 8)) { - /* ^ */ - return -KEY_dbmclose; - } - break; - case 'd': - if (!memcmp(name, "readlink", 8)) { - /* ^ */ - return -KEY_readlink; /* Weight 1537 */ - } - if (!memcmp(name, "readline", 8)) { - /* ^ */ - return -KEY_readline; /* Weight 19 */ - } - if (!memcmp(name, "readpipe", 8)) { - /* ^ */ - return -KEY_readpipe; - } - break; - case 'g': - if (!memcmp(name, "getgrgid", 8)) { - /* ^ */ - return -KEY_getgrgid; /* Weight 67 */ - } - if (!memcmp(name, "getgrnam", 8)) { - /* ^ */ - return -KEY_getgrnam; /* Weight 11 */ - } - if (!memcmp(name, "endgrent", 8)) { - /* ^ */ - return -KEY_endgrent; - } - if (!memcmp(name, "getgrent", 8)) { - /* ^ */ - return -KEY_getgrent; - } - if (!memcmp(name, "setgrent", 8)) { - /* ^ */ - return -KEY_setgrent; - } - break; - case 'l': - if (!memcmp(name, "getlogin", 8)) { - /* ^ */ - return -KEY_getlogin; /* Weight 158 */ - } - break; - case 'm': - if (!memcmp(name, "formline", 8)) { - /* ^ */ - return -KEY_formline; /* Weight 959 */ - } - break; - case 'n': - if (!memcmp(name, "truncate", 8)) { - /* ^ */ - return -KEY_truncate; /* Weight 1351 */ - } - break; - case 'p': - if (!memcmp(name, "getpwuid", 8)) { - /* ^ */ - return -KEY_getpwuid; /* Weight 681 */ - } - if (!memcmp(name, "getpwnam", 8)) { - /* ^ */ - return -KEY_getpwnam; /* Weight 483 */ - } - if (!memcmp(name, "getpwent", 8)) { - /* ^ */ - return -KEY_getpwent; /* Weight 12 */ - } - if (!memcmp(name, "endpwent", 8)) { - /* ^ */ - return -KEY_endpwent; - } - if (!memcmp(name, "setpwent", 8)) { - /* ^ */ - return -KEY_setpwent; - } - break; - case 's': - if (!memcmp(name, "closedir", 8)) { - /* ^ */ - return -KEY_closedir; /* Weight 11986 */ - } - break; - case 't': - if (!memcmp(name, "continue", 8)) { - /* ^ */ - return -KEY_continue; /* Weight 2925 */ - } - if (!memcmp(name, "shutdown", 8)) { - /* ^ */ - return -KEY_shutdown; - } - break; - case 'w': - if (!memcmp(name, "syswrite", 8)) { - /* ^ */ - return -KEY_syswrite; /* Weight 4437 */ - } - if (!memcmp(name, "shmwrite", 8)) { - /* ^ */ - return -KEY_shmwrite; - } - break; - } - break; - case 9: - /* Names all of length 9. */ - /* endnetent getnetent localtime prototype quotemeta rewinddir setnetent - wantarray */ - /* Offset 0 gives the best switch position. */ - switch (*name++) { - case 'e': - if (!memcmp(name, "ndnetent", 8)) { - /* e */ - return -KEY_endnetent; - } - break; - case 'g': - if (!memcmp(name, "etnetent", 8)) { - /* g */ - return -KEY_getnetent; - } - break; - case 'l': - if (!memcmp(name, "ocaltime", 8)) { - /* l */ - return -KEY_localtime; /* Weight 7993 */ - } - break; - case 'p': - if (!memcmp(name, "rototype", 8)) { - /* p */ - return KEY_prototype; /* Weight 1602 */ - } - break; - case 'q': - if (!memcmp(name, "uotemeta", 8)) { - /* q */ - return -KEY_quotemeta; /* Weight 3120 */ - } - break; - case 'r': - if (!memcmp(name, "ewinddir", 8)) { - /* r */ - return -KEY_rewinddir; /* Weight 218 */ - } - break; - case 's': - if (!memcmp(name, "etnetent", 8)) { - /* s */ - return -KEY_setnetent; /* Weight 1 */ - } - break; - case 'w': - if (!memcmp(name, "antarray", 8)) { - /* w */ - return -KEY_wantarray; /* Weight 43024 */ - } - break; - } - break; - case 10: - /* Names all of length 10. */ - /* endhostent endservent gethostent getservent getsockopt sethostent - setservent setsockopt socketpair */ - /* Offset 6 gives the best switch position. */ - switch (name[6]) { - case 'k': - if (!memcmp(name, "setsockopt", 10)) { - /* ^ */ - return -KEY_setsockopt; /* Weight 356 */ - } - if (!memcmp(name, "getsockopt", 10)) { - /* ^ */ - return -KEY_getsockopt; /* Weight 243 */ - } - break; - case 'p': - if (!memcmp(name, "socketpair", 10)) { - /* ^ */ - return -KEY_socketpair; - } - break; - case 't': - if (!memcmp(name, "gethostent", 10)) { - /* ^ */ - return -KEY_gethostent; /* Weight 3 */ - } - if (!memcmp(name, "endhostent", 10)) { - /* ^ */ - return -KEY_endhostent; - } - if (!memcmp(name, "sethostent", 10)) { - /* ^ */ - return -KEY_sethostent; - } - break; - case 'v': - if (!memcmp(name, "getservent", 10)) { - /* ^ */ - return -KEY_getservent; /* Weight 4 */ - } - if (!memcmp(name, "endservent", 10)) { - /* ^ */ - return -KEY_endservent; - } - if (!memcmp(name, "setservent", 10)) { - /* ^ */ - return -KEY_setservent; - } - break; - } - break; - case 11: - /* Names all of length 11. */ - /* __PACKAGE__ endprotoent getpeername getpriority getprotoent getsockname - setpriority setprotoent */ - /* Offset 5 gives the best switch position. */ - switch (name[5]) { - case 'K': - if (!memcmp(name, "__PACKAGE__", 11)) { - /* ^ */ - return -KEY___PACKAGE__; /* Weight 36767 */ - } - break; - case 'c': - if (!memcmp(name, "getsockname", 11)) { - /* ^ */ - return -KEY_getsockname; /* Weight 235 */ - } - break; - case 'e': - if (!memcmp(name, "getpeername", 11)) { - /* ^ */ - return -KEY_getpeername; /* Weight 713 */ - } - break; - case 'i': - if (!memcmp(name, "getpriority", 11)) { - /* ^ */ - return -KEY_getpriority; /* Weight 5 */ - } - if (!memcmp(name, "setpriority", 11)) { - /* ^ */ - return -KEY_setpriority; /* Weight 2 */ - } - break; - case 'o': - if (!memcmp(name, "endprotoent", 11)) { - /* ^ */ - return -KEY_endprotoent; - } - if (!memcmp(name, "getprotoent", 11)) { - /* ^ */ - return -KEY_getprotoent; - } - if (!memcmp(name, "setprotoent", 11)) { - /* ^ */ - return -KEY_setprotoent; - } - break; - } - break; - case 12: - /* Names all of length 12. */ - /* getnetbyaddr getnetbyname */ - /* Offset 9 gives the best switch position. */ - switch (name[9]) { - case 'a': - if (!memcmp(name, "getnetbyname", 12)) { - /* ^ */ - return -KEY_getnetbyname; + case 'B': + if (name[1] == 'E' && + name[2] == 'G' && + name[3] == 'I' && + name[4] == 'N') + { /* BEGIN */ + return KEY_BEGIN; + } + + goto unknown; + + case 'C': + if (name[1] == 'H' && + name[2] == 'E' && + name[3] == 'C' && + name[4] == 'K') + { /* CHECK */ + return KEY_CHECK; + } + + goto unknown; + + case 'a': + switch (name[1]) + { + case 'l': + if (name[2] == 'a' && + name[3] == 'r' && + name[4] == 'm') + { /* alarm */ + return -KEY_alarm; + } + + goto unknown; + + case 't': + if (name[2] == 'a' && + name[3] == 'n' && + name[4] == '2') + { /* atan2 */ + return -KEY_atan2; + } + + goto unknown; + + default: + goto unknown; + } + + case 'b': + if (name[1] == 'l' && + name[2] == 'e' && + name[3] == 's' && + name[4] == 's') + { /* bless */ + return -KEY_bless; + } + + goto unknown; + + case 'c': + switch (name[1]) + { + case 'h': + switch (name[2]) + { + case 'd': + if (name[3] == 'i' && + name[4] == 'r') + { /* chdir */ + return -KEY_chdir; + } + + goto unknown; + + case 'm': + if (name[3] == 'o' && + name[4] == 'd') + { /* chmod */ + return -KEY_chmod; + } + + goto unknown; + + case 'o': + switch (name[3]) + { + case 'm': + if (name[4] == 'p') + { /* chomp */ + return -KEY_chomp; + } + + goto unknown; + + case 'w': + if (name[4] == 'n') + { /* chown */ + return -KEY_chown; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'l': + if (name[2] == 'o' && + name[3] == 's' && + name[4] == 'e') + { /* close */ + return -KEY_close; + } + + goto unknown; + + case 'r': + if (name[2] == 'y' && + name[3] == 'p' && + name[4] == 't') + { /* crypt */ + return -KEY_crypt; + } + + goto unknown; + + default: + goto unknown; + } + + case 'e': + if (name[1] == 'l' && + name[2] == 's' && + name[3] == 'i' && + name[4] == 'f') + { /* elsif */ + return KEY_elsif; + } + + goto unknown; + + case 'f': + switch (name[1]) + { + case 'c': + if (name[2] == 'n' && + name[3] == 't' && + name[4] == 'l') + { /* fcntl */ + return -KEY_fcntl; + } + + goto unknown; + + case 'l': + if (name[2] == 'o' && + name[3] == 'c' && + name[4] == 'k') + { /* flock */ + return -KEY_flock; + } + + goto unknown; + + default: + goto unknown; + } + + case 'i': + switch (name[1]) + { + case 'n': + if (name[2] == 'd' && + name[3] == 'e' && + name[4] == 'x') + { /* index */ + return -KEY_index; + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 't' && + name[4] == 'l') + { /* ioctl */ + return -KEY_ioctl; + } + + goto unknown; + + default: + goto unknown; + } + + case 'l': + switch (name[1]) + { + case 'o': + if (name[2] == 'c' && + name[3] == 'a' && + name[4] == 'l') + { /* local */ + return KEY_local; + } + + goto unknown; + + case 's': + if (name[2] == 't' && + name[3] == 'a' && + name[4] == 't') + { /* lstat */ + return -KEY_lstat; + } + + goto unknown; + + default: + goto unknown; + } + + case 'm': + if (name[1] == 'k' && + name[2] == 'd' && + name[3] == 'i' && + name[4] == 'r') + { /* mkdir */ + return -KEY_mkdir; + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'i' && + name[3] == 'n' && + name[4] == 't') + { /* print */ + return KEY_print; + } + + goto unknown; + + case 'r': + switch (name[1]) + { + case 'e': + if (name[2] == 's' && + name[3] == 'e' && + name[4] == 't') + { /* reset */ + return -KEY_reset; + } + + goto unknown; + + case 'm': + if (name[2] == 'd' && + name[3] == 'i' && + name[4] == 'r') + { /* rmdir */ + return -KEY_rmdir; + } + + goto unknown; + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 'm' && + name[3] == 'o' && + name[4] == 'p') + { /* semop */ + return -KEY_semop; + } + + goto unknown; + + case 'h': + if (name[2] == 'i' && + name[3] == 'f' && + name[4] == 't') + { /* shift */ + return -KEY_shift; + } + + goto unknown; + + case 'l': + if (name[2] == 'e' && + name[3] == 'e' && + name[4] == 'p') + { /* sleep */ + return -KEY_sleep; + } + + goto unknown; + + case 'p': + if (name[2] == 'l' && + name[3] == 'i' && + name[4] == 't') + { /* split */ + return KEY_split; + } + + goto unknown; + + case 'r': + if (name[2] == 'a' && + name[3] == 'n' && + name[4] == 'd') + { /* srand */ + return -KEY_srand; + } + + goto unknown; + + case 't': + if (name[2] == 'u' && + name[3] == 'd' && + name[4] == 'y') + { /* study */ + return KEY_study; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'i' && + name[2] == 'm' && + name[3] == 'e' && + name[4] == 's') + { /* times */ + return -KEY_times; + } + + goto unknown; + + case 'u': + switch (name[1]) + { + case 'm': + if (name[2] == 'a' && + name[3] == 's' && + name[4] == 'k') + { /* umask */ + return -KEY_umask; + } + + goto unknown; + + case 'n': + switch (name[2]) + { + case 'd': + if (name[3] == 'e' && + name[4] == 'f') + { /* undef */ + return KEY_undef; + } + + goto unknown; + + case 't': + if (name[3] == 'i') + { + switch (name[4]) + { + case 'e': + { /* untie */ + return KEY_untie; + } + + goto unknown; + + case 'l': + { /* until */ + return KEY_until; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[2] == 'i' && + name[3] == 'm' && + name[4] == 'e') + { /* utime */ + return -KEY_utime; + } + + goto unknown; + + default: + goto unknown; + } + + case 'w': + switch (name[1]) + { + case 'h': + if (name[2] == 'i' && + name[3] == 'l' && + name[4] == 'e') + { /* while */ + return KEY_while; + } + + goto unknown; + + case 'r': + if (name[2] == 'i' && + name[3] == 't' && + name[4] == 'e') + { /* write */ + return -KEY_write; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; } - break; - case 'd': - if (!memcmp(name, "getnetbyaddr", 12)) { - /* ^ */ - return -KEY_getnetbyaddr; + + case 6: /* 33 tokens of length 6 */ + switch (name[0]) + { + case 'a': + if (name[1] == 'c' && + name[2] == 'c' && + name[3] == 'e' && + name[4] == 'p' && + name[5] == 't') + { /* accept */ + return -KEY_accept; + } + + goto unknown; + + case 'c': + switch (name[1]) + { + case 'a': + if (name[2] == 'l' && + name[3] == 'l' && + name[4] == 'e' && + name[5] == 'r') + { /* caller */ + return -KEY_caller; + } + + goto unknown; + + case 'h': + if (name[2] == 'r' && + name[3] == 'o' && + name[4] == 'o' && + name[5] == 't') + { /* chroot */ + return -KEY_chroot; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'e' && + name[2] == 'l' && + name[3] == 'e' && + name[4] == 't' && + name[5] == 'e') + { /* delete */ + return KEY_delete; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'l': + if (name[2] == 's' && + name[3] == 'e' && + name[4] == 'i' && + name[5] == 'f') + { /* elseif */ + if(ckWARN_d(WARN_SYNTAX)) + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif"); + } + + goto unknown; + + case 'x': + if (name[2] == 'i' && + name[3] == 's' && + name[4] == 't' && + name[5] == 's') + { /* exists */ + return KEY_exists; + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + switch (name[1]) + { + case 'i': + if (name[2] == 'l' && + name[3] == 'e' && + name[4] == 'n' && + name[5] == 'o') + { /* fileno */ + return -KEY_fileno; + } + + goto unknown; + + case 'o': + if (name[2] == 'r' && + name[3] == 'm' && + name[4] == 'a' && + name[5] == 't') + { /* format */ + return KEY_format; + } + + goto unknown; + + default: + goto unknown; + } + + case 'g': + if (name[1] == 'm' && + name[2] == 't' && + name[3] == 'i' && + name[4] == 'm' && + name[5] == 'e') + { /* gmtime */ + return -KEY_gmtime; + } + + goto unknown; + + case 'l': + switch (name[1]) + { + case 'e': + if (name[2] == 'n' && + name[3] == 'g' && + name[4] == 't' && + name[5] == 'h') + { /* length */ + return -KEY_length; + } + + goto unknown; + + case 'i': + if (name[2] == 's' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'n') + { /* listen */ + return -KEY_listen; + } + + goto unknown; + + default: + goto unknown; + } + + case 'm': + if (name[1] == 's' && + name[2] == 'g') + { + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* msgctl */ + return -KEY_msgctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* msgget */ + return -KEY_msgget; + } + + goto unknown; + + case 'r': + if (name[4] == 'c' && + name[5] == 'v') + { /* msgrcv */ + return -KEY_msgrcv; + } + + goto unknown; + + case 's': + if (name[4] == 'n' && + name[5] == 'd') + { /* msgsnd */ + return -KEY_msgsnd; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'i' && + name[3] == 'n' && + name[4] == 't' && + name[5] == 'f') + { /* printf */ + return KEY_printf; + } + + goto unknown; + + case 'r': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'n': + if (name[3] == 'a' && + name[4] == 'm' && + name[5] == 'e') + { /* rename */ + return -KEY_rename; + } + + goto unknown; + + case 't': + if (name[3] == 'u' && + name[4] == 'r' && + name[5] == 'n') + { /* return */ + return KEY_return; + } + + goto unknown; + + default: + goto unknown; + } + + case 'i': + if (name[2] == 'n' && + name[3] == 'd' && + name[4] == 'e' && + name[5] == 'x') + { /* rindex */ + return -KEY_rindex; + } + + goto unknown; + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'c': + if (name[2] == 'a' && + name[3] == 'l' && + name[4] == 'a' && + name[5] == 'r') + { /* scalar */ + return KEY_scalar; + } + + goto unknown; + + case 'e': + switch (name[2]) + { + case 'l': + if (name[3] == 'e' && + name[4] == 'c' && + name[5] == 't') + { /* select */ + return -KEY_select; + } + + goto unknown; + + case 'm': + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* semctl */ + return -KEY_semctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* semget */ + return -KEY_semget; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'h': + if (name[2] == 'm') + { + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* shmctl */ + return -KEY_shmctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* shmget */ + return -KEY_shmget; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k' && + name[4] == 'e' && + name[5] == 't') + { /* socket */ + return -KEY_socket; + } + + goto unknown; + + case 'p': + if (name[2] == 'l' && + name[3] == 'i' && + name[4] == 'c' && + name[5] == 'e') + { /* splice */ + return -KEY_splice; + } + + goto unknown; + + case 'u': + if (name[2] == 'b' && + name[3] == 's' && + name[4] == 't' && + name[5] == 'r') + { /* substr */ + return -KEY_substr; + } + + goto unknown; + + case 'y': + if (name[2] == 's' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'm') + { /* system */ + return -KEY_system; + } + + goto unknown; + + default: + goto unknown; + } + + case 'u': + if (name[1] == 'n') + { + switch (name[2]) + { + case 'l': + switch (name[3]) + { + case 'e': + if (name[4] == 's' && + name[5] == 's') + { /* unless */ + return KEY_unless; + } + + goto unknown; + + case 'i': + if (name[4] == 'n' && + name[5] == 'k') + { /* unlink */ + return -KEY_unlink; + } + + goto unknown; + + default: + goto unknown; + } + + case 'p': + if (name[3] == 'a' && + name[4] == 'c' && + name[5] == 'k') + { /* unpack */ + return -KEY_unpack; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'v': + if (name[1] == 'a' && + name[2] == 'l' && + name[3] == 'u' && + name[4] == 'e' && + name[5] == 's') + { /* values */ + return -KEY_values; + } + + goto unknown; + + default: + goto unknown; } - break; - } - break; - case 13: - /* Names all of length 13. */ - /* gethostbyaddr gethostbyname getservbyname getservbyport */ - /* Offset 10 gives the best switch position. */ - switch (name[10]) { - case 'a': - if (!memcmp(name, "gethostbyname", 13)) { - /* ^ */ - return -KEY_gethostbyname; /* Weight 970 */ + + case 7: /* 28 tokens of length 7 */ + switch (name[0]) + { + case 'D': + if (name[1] == 'E' && + name[2] == 'S' && + name[3] == 'T' && + name[4] == 'R' && + name[5] == 'O' && + name[6] == 'Y') + { /* DESTROY */ + return KEY_DESTROY; + } + + goto unknown; + + case '_': + if (name[1] == '_' && + name[2] == 'E' && + name[3] == 'N' && + name[4] == 'D' && + name[5] == '_' && + name[6] == '_') + { /* __END__ */ + return KEY___END__; + } + + goto unknown; + + case 'b': + if (name[1] == 'i' && + name[2] == 'n' && + name[3] == 'm' && + name[4] == 'o' && + name[5] == 'd' && + name[6] == 'e') + { /* binmode */ + return -KEY_binmode; + } + + goto unknown; + + case 'c': + if (name[1] == 'o' && + name[2] == 'n' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 'c' && + name[6] == 't') + { /* connect */ + return -KEY_connect; + } + + goto unknown; + + case 'd': + switch (name[1]) + { + case 'b': + if (name[2] == 'm' && + name[3] == 'o' && + name[4] == 'p' && + name[5] == 'e' && + name[6] == 'n') + { /* dbmopen */ + return -KEY_dbmopen; + } + + goto unknown; + + case 'e': + if (name[2] == 'f' && + name[3] == 'i' && + name[4] == 'n' && + name[5] == 'e' && + name[6] == 'd') + { /* defined */ + return KEY_defined; + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'e' && + name[4] == 'a' && + name[5] == 'c' && + name[6] == 'h') + { /* foreach */ + return KEY_foreach; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'p') + { + switch (name[4]) + { + case 'g': + if (name[5] == 'r' && + name[6] == 'p') + { /* getpgrp */ + return -KEY_getpgrp; + } + + goto unknown; + + case 'p': + if (name[5] == 'i' && + name[6] == 'd') + { /* getppid */ + return -KEY_getppid; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'l': + if (name[1] == 'c' && + name[2] == 'f' && + name[3] == 'i' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 't') + { /* lcfirst */ + return -KEY_lcfirst; + } + + goto unknown; + + case 'o': + if (name[1] == 'p' && + name[2] == 'e' && + name[3] == 'n' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* opendir */ + return -KEY_opendir; + } + + goto unknown; + + case 'p': + if (name[1] == 'a' && + name[2] == 'c' && + name[3] == 'k' && + name[4] == 'a' && + name[5] == 'g' && + name[6] == 'e') + { /* package */ + return KEY_package; + } + + goto unknown; + + case 'r': + if (name[1] == 'e') + { + switch (name[2]) + { + case 'a': + if (name[3] == 'd' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* readdir */ + return -KEY_readdir; + } + + goto unknown; + + case 'q': + if (name[3] == 'u' && + name[4] == 'i' && + name[5] == 'r' && + name[6] == 'e') + { /* require */ + return KEY_require; + } + + goto unknown; + + case 'v': + if (name[3] == 'e' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 'e') + { /* reverse */ + return -KEY_reverse; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'e': + if (name[3] == 'k' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* seekdir */ + return -KEY_seekdir; + } + + goto unknown; + + case 't': + if (name[3] == 'p' && + name[4] == 'g' && + name[5] == 'r' && + name[6] == 'p') + { /* setpgrp */ + return -KEY_setpgrp; + } + + goto unknown; + + default: + goto unknown; + } + + case 'h': + if (name[2] == 'm' && + name[3] == 'r' && + name[4] == 'e' && + name[5] == 'a' && + name[6] == 'd') + { /* shmread */ + return -KEY_shmread; + } + + goto unknown; + + case 'p': + if (name[2] == 'r' && + name[3] == 'i' && + name[4] == 'n' && + name[5] == 't' && + name[6] == 'f') + { /* sprintf */ + return -KEY_sprintf; + } + + goto unknown; + + case 'y': + switch (name[2]) + { + case 'm': + if (name[3] == 'l' && + name[4] == 'i' && + name[5] == 'n' && + name[6] == 'k') + { /* symlink */ + return -KEY_symlink; + } + + goto unknown; + + case 's': + switch (name[3]) + { + case 'c': + if (name[4] == 'a' && + name[5] == 'l' && + name[6] == 'l') + { /* syscall */ + return -KEY_syscall; + } + + goto unknown; + + case 'o': + if (name[4] == 'p' && + name[5] == 'e' && + name[6] == 'n') + { /* sysopen */ + return -KEY_sysopen; + } + + goto unknown; + + case 'r': + if (name[4] == 'e' && + name[5] == 'a' && + name[6] == 'd') + { /* sysread */ + return -KEY_sysread; + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'e' && + name[6] == 'k') + { /* sysseek */ + return -KEY_sysseek; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 't': + if (name[1] == 'e' && + name[2] == 'l' && + name[3] == 'l' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* telldir */ + return -KEY_telldir; + } + + goto unknown; + + case 'u': + switch (name[1]) + { + case 'c': + if (name[2] == 'f' && + name[3] == 'i' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 't') + { /* ucfirst */ + return -KEY_ucfirst; + } + + goto unknown; + + case 'n': + if (name[2] == 's' && + name[3] == 'h' && + name[4] == 'i' && + name[5] == 'f' && + name[6] == 't') + { /* unshift */ + return -KEY_unshift; + } + + goto unknown; + + default: + goto unknown; + } + + case 'w': + if (name[1] == 'a' && + name[2] == 'i' && + name[3] == 't' && + name[4] == 'p' && + name[5] == 'i' && + name[6] == 'd') + { /* waitpid */ + return -KEY_waitpid; + } + + goto unknown; + + default: + goto unknown; + } + + case 8: /* 26 tokens of length 8 */ + switch (name[0]) + { + case 'A': + if (name[1] == 'U' && + name[2] == 'T' && + name[3] == 'O' && + name[4] == 'L' && + name[5] == 'O' && + name[6] == 'A' && + name[7] == 'D') + { /* AUTOLOAD */ + return KEY_AUTOLOAD; + } + + goto unknown; + + case '_': + if (name[1] == '_') + { + switch (name[2]) + { + case 'D': + if (name[3] == 'A' && + name[4] == 'T' && + name[5] == 'A' && + name[6] == '_' && + name[7] == '_') + { /* __DATA__ */ + return KEY___DATA__; + } + + goto unknown; + + case 'F': + if (name[3] == 'I' && + name[4] == 'L' && + name[5] == 'E' && + name[6] == '_' && + name[7] == '_') + { /* __FILE__ */ + return -KEY___FILE__; + } + + goto unknown; + + case 'L': + if (name[3] == 'I' && + name[4] == 'N' && + name[5] == 'E' && + name[6] == '_' && + name[7] == '_') + { /* __LINE__ */ + return -KEY___LINE__; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'c': + switch (name[1]) + { + case 'l': + if (name[2] == 'o' && + name[3] == 's' && + name[4] == 'e' && + name[5] == 'd' && + name[6] == 'i' && + name[7] == 'r') + { /* closedir */ + return -KEY_closedir; + } + + goto unknown; + + case 'o': + if (name[2] == 'n' && + name[3] == 't' && + name[4] == 'i' && + name[5] == 'n' && + name[6] == 'u' && + name[7] == 'e') + { /* continue */ + return -KEY_continue; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'b' && + name[2] == 'm' && + name[3] == 'c' && + name[4] == 'l' && + name[5] == 'o' && + name[6] == 's' && + name[7] == 'e') + { /* dbmclose */ + return -KEY_dbmclose; + } + + goto unknown; + + case 'e': + if (name[1] == 'n' && + name[2] == 'd') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* endgrent */ + return -KEY_endgrent; + } + + goto unknown; + + case 'p': + if (name[4] == 'w' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* endpwent */ + return -KEY_endpwent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'm' && + name[4] == 'l' && + name[5] == 'i' && + name[6] == 'n' && + name[7] == 'e') + { /* formline */ + return -KEY_formline; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r') + { + switch (name[5]) + { + case 'e': + if (name[6] == 'n' && + name[7] == 't') + { /* getgrent */ + return -KEY_getgrent; + } + + goto unknown; + + case 'g': + if (name[6] == 'i' && + name[7] == 'd') + { /* getgrgid */ + return -KEY_getgrgid; + } + + goto unknown; + + case 'n': + if (name[6] == 'a' && + name[7] == 'm') + { /* getgrnam */ + return -KEY_getgrnam; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'l': + if (name[4] == 'o' && + name[5] == 'g' && + name[6] == 'i' && + name[7] == 'n') + { /* getlogin */ + return -KEY_getlogin; + } + + goto unknown; + + case 'p': + if (name[4] == 'w') + { + switch (name[5]) + { + case 'e': + if (name[6] == 'n' && + name[7] == 't') + { /* getpwent */ + return -KEY_getpwent; + } + + goto unknown; + + case 'n': + if (name[6] == 'a' && + name[7] == 'm') + { /* getpwnam */ + return -KEY_getpwnam; + } + + goto unknown; + + case 'u': + if (name[6] == 'i' && + name[7] == 'd') + { /* getpwuid */ + return -KEY_getpwuid; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'a' && + name[3] == 'd') + { + switch (name[4]) + { + case 'l': + if (name[5] == 'i' && + name[6] == 'n') + { + switch (name[7]) + { + case 'e': + { /* readline */ + return -KEY_readline; + } + + goto unknown; + + case 'k': + { /* readlink */ + return -KEY_readlink; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'p': + if (name[5] == 'i' && + name[6] == 'p' && + name[7] == 'e') + { /* readpipe */ + return -KEY_readpipe; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 't') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* setgrent */ + return -KEY_setgrent; + } + + goto unknown; + + case 'p': + if (name[4] == 'w' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* setpwent */ + return -KEY_setpwent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'h': + switch (name[2]) + { + case 'm': + if (name[3] == 'w' && + name[4] == 'r' && + name[5] == 'i' && + name[6] == 't' && + name[7] == 'e') + { /* shmwrite */ + return -KEY_shmwrite; + } + + goto unknown; + + case 'u': + if (name[3] == 't' && + name[4] == 'd' && + name[5] == 'o' && + name[6] == 'w' && + name[7] == 'n') + { /* shutdown */ + return -KEY_shutdown; + } + + goto unknown; + + default: + goto unknown; + } + + case 'y': + if (name[2] == 's' && + name[3] == 'w' && + name[4] == 'r' && + name[5] == 'i' && + name[6] == 't' && + name[7] == 'e') + { /* syswrite */ + return -KEY_syswrite; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'r' && + name[2] == 'u' && + name[3] == 'n' && + name[4] == 'c' && + name[5] == 'a' && + name[6] == 't' && + name[7] == 'e') + { /* truncate */ + return -KEY_truncate; + } + + goto unknown; + + default: + goto unknown; + } + + case 9: /* 8 tokens of length 9 */ + switch (name[0]) + { + case 'e': + if (name[1] == 'n' && + name[2] == 'd' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* endnetent */ + return -KEY_endnetent; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* getnetent */ + return -KEY_getnetent; + } + + goto unknown; + + case 'l': + if (name[1] == 'o' && + name[2] == 'c' && + name[3] == 'a' && + name[4] == 'l' && + name[5] == 't' && + name[6] == 'i' && + name[7] == 'm' && + name[8] == 'e') + { /* localtime */ + return -KEY_localtime; + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'o' && + name[3] == 't' && + name[4] == 'o' && + name[5] == 't' && + name[6] == 'y' && + name[7] == 'p' && + name[8] == 'e') + { /* prototype */ + return KEY_prototype; + } + + goto unknown; + + case 'q': + if (name[1] == 'u' && + name[2] == 'o' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'm' && + name[6] == 'e' && + name[7] == 't' && + name[8] == 'a') + { /* quotemeta */ + return -KEY_quotemeta; + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'w' && + name[3] == 'i' && + name[4] == 'n' && + name[5] == 'd' && + name[6] == 'd' && + name[7] == 'i' && + name[8] == 'r') + { /* rewinddir */ + return -KEY_rewinddir; + } + + goto unknown; + + case 's': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* setnetent */ + return -KEY_setnetent; + } + + goto unknown; + + case 'w': + if (name[1] == 'a' && + name[2] == 'n' && + name[3] == 't' && + name[4] == 'a' && + name[5] == 'r' && + name[6] == 'r' && + name[7] == 'a' && + name[8] == 'y') + { /* wantarray */ + return -KEY_wantarray; + } + + goto unknown; + + default: + goto unknown; + } + + case 10: /* 9 tokens of length 10 */ + switch (name[0]) + { + case 'e': + if (name[1] == 'n' && + name[2] == 'd') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* endhostent */ + return -KEY_endhostent; + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* endservent */ + return -KEY_endservent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* gethostent */ + return -KEY_gethostent; + } + + goto unknown; + + case 's': + switch (name[4]) + { + case 'e': + if (name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* getservent */ + return -KEY_getservent; + } + + goto unknown; + + case 'o': + if (name[5] == 'c' && + name[6] == 'k' && + name[7] == 'o' && + name[8] == 'p' && + name[9] == 't') + { /* getsockopt */ + return -KEY_getsockopt; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* sethostent */ + return -KEY_sethostent; + } + + goto unknown; + + case 's': + switch (name[4]) + { + case 'e': + if (name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* setservent */ + return -KEY_setservent; + } + + goto unknown; + + case 'o': + if (name[5] == 'c' && + name[6] == 'k' && + name[7] == 'o' && + name[8] == 'p' && + name[9] == 't') + { /* setsockopt */ + return -KEY_setsockopt; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'p' && + name[7] == 'a' && + name[8] == 'i' && + name[9] == 'r') + { /* socketpair */ + return -KEY_socketpair; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; } - if (!memcmp(name, "getservbyname", 13)) { - /* ^ */ - return -KEY_getservbyname; /* Weight 299 */ + + case 11: /* 8 tokens of length 11 */ + switch (name[0]) + { + case '_': + if (name[1] == '_' && + name[2] == 'P' && + name[3] == 'A' && + name[4] == 'C' && + name[5] == 'K' && + name[6] == 'A' && + name[7] == 'G' && + name[8] == 'E' && + name[9] == '_' && + name[10] == '_') + { /* __PACKAGE__ */ + return -KEY___PACKAGE__; + } + + goto unknown; + + case 'e': + if (name[1] == 'n' && + name[2] == 'd' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* endprotoent */ + return -KEY_endprotoent; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'p': + switch (name[4]) + { + case 'e': + if (name[5] == 'e' && + name[6] == 'r' && + name[7] == 'n' && + name[8] == 'a' && + name[9] == 'm' && + name[10] == 'e') + { /* getpeername */ + return -KEY_getpeername; + } + + goto unknown; + + case 'r': + switch (name[5]) + { + case 'i': + if (name[6] == 'o' && + name[7] == 'r' && + name[8] == 'i' && + name[9] == 't' && + name[10] == 'y') + { /* getpriority */ + return -KEY_getpriority; + } + + goto unknown; + + case 'o': + if (name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* getprotoent */ + return -KEY_getprotoent; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 's': + if (name[4] == 'o' && + name[5] == 'c' && + name[6] == 'k' && + name[7] == 'n' && + name[8] == 'a' && + name[9] == 'm' && + name[10] == 'e') + { /* getsockname */ + return -KEY_getsockname; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r') + { + switch (name[5]) + { + case 'i': + if (name[6] == 'o' && + name[7] == 'r' && + name[8] == 'i' && + name[9] == 't' && + name[10] == 'y') + { /* setpriority */ + return -KEY_setpriority; + } + + goto unknown; + + case 'o': + if (name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* setprotoent */ + return -KEY_setprotoent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; } - break; - case 'd': - if (!memcmp(name, "gethostbyaddr", 13)) { - /* ^ */ - return -KEY_gethostbyaddr; /* Weight 68 */ + + case 12: /* 2 tokens of length 12 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'b' && + name[7] == 'y') + { + switch (name[8]) + { + case 'a': + if (name[9] == 'd' && + name[10] == 'd' && + name[11] == 'r') + { /* getnetbyaddr */ + return -KEY_getnetbyaddr; + } + + goto unknown; + + case 'n': + if (name[9] == 'a' && + name[10] == 'm' && + name[11] == 'e') + { /* getnetbyname */ + return -KEY_getnetbyname; + } + + goto unknown; + + default: + goto unknown; + } } - break; - case 'o': - if (!memcmp(name, "getservbyport", 13)) { - /* ^ */ - return -KEY_getservbyport; + + goto unknown; + + case 13: /* 4 tokens of length 13 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'b' && + name[8] == 'y') + { + switch (name[9]) + { + case 'a': + if (name[10] == 'd' && + name[11] == 'd' && + name[12] == 'r') + { /* gethostbyaddr */ + return -KEY_gethostbyaddr; + } + + goto unknown; + + case 'n': + if (name[10] == 'a' && + name[11] == 'm' && + name[12] == 'e') + { /* gethostbyname */ + return -KEY_gethostbyname; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'r' && + name[6] == 'v' && + name[7] == 'b' && + name[8] == 'y') + { + switch (name[9]) + { + case 'n': + if (name[10] == 'a' && + name[11] == 'm' && + name[12] == 'e') + { /* getservbyname */ + return -KEY_getservbyname; + } + + goto unknown; + + case 'p': + if (name[10] == 'o' && + name[11] == 'r' && + name[12] == 't') + { /* getservbyport */ + return -KEY_getservbyport; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } } - break; - } - break; - case 14: - if (!memcmp(name, "getprotobyname", 14)) { - return -KEY_getprotobyname; /* Weight 755 */ - } - break; - case 16: - if (!memcmp(name, "getprotobynumber", 16)) { - return -KEY_getprotobynumber; /* Weight 232 */ - } - break; + + goto unknown; + + case 14: /* 1 tokens of length 14 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'b' && + name[9] == 'y' && + name[10] == 'n' && + name[11] == 'a' && + name[12] == 'm' && + name[13] == 'e') + { /* getprotobyname */ + return -KEY_getprotobyname; + } + + goto unknown; + + case 16: /* 1 tokens of length 16 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'b' && + name[9] == 'y' && + name[10] == 'n' && + name[11] == 'u' && + name[12] == 'm' && + name[13] == 'b' && + name[14] == 'e' && + name[15] == 'r') + { /* getprotobynumber */ + return -KEY_getprotobynumber; + } + + goto unknown; + + default: + goto unknown; } + +unknown: return 0; } |