This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Break out the generated function Perl_keywords() into keywords.c, a new file.
[perl5.git] / keywords.c
1 /*
2  *  The following code was generated by perl_keyword.pl.
3  */
4
5 #include "EXTERN.h"
6 #define PERL_IN_KEYWORDS_C
7 #include "perl.h"
8 #include "keywords.h"
9
10 I32
11 Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
12 {
13     dVAR;
14
15     PERL_ARGS_ASSERT_KEYWORD;
16
17   switch (len)
18   {
19     case 1: /* 5 tokens of length 1 */
20       switch (name[0])
21       {
22         case 'm':
23           {                                       /* m                */
24             return KEY_m;
25           }
26
27         case 'q':
28           {                                       /* q                */
29             return KEY_q;
30           }
31
32         case 's':
33           {                                       /* s                */
34             return KEY_s;
35           }
36
37         case 'x':
38           {                                       /* x                */
39             return -KEY_x;
40           }
41
42         case 'y':
43           {                                       /* y                */
44             return KEY_y;
45           }
46
47         default:
48           goto unknown;
49       }
50
51     case 2: /* 18 tokens of length 2 */
52       switch (name[0])
53       {
54         case 'd':
55           if (name[1] == 'o')
56           {                                       /* do               */
57             return KEY_do;
58           }
59
60           goto unknown;
61
62         case 'e':
63           if (name[1] == 'q')
64           {                                       /* eq               */
65             return -KEY_eq;
66           }
67
68           goto unknown;
69
70         case 'g':
71           switch (name[1])
72           {
73             case 'e':
74               {                                   /* ge               */
75                 return -KEY_ge;
76               }
77
78             case 't':
79               {                                   /* gt               */
80                 return -KEY_gt;
81               }
82
83             default:
84               goto unknown;
85           }
86
87         case 'i':
88           if (name[1] == 'f')
89           {                                       /* if               */
90             return KEY_if;
91           }
92
93           goto unknown;
94
95         case 'l':
96           switch (name[1])
97           {
98             case 'c':
99               {                                   /* lc               */
100                 return -KEY_lc;
101               }
102
103             case 'e':
104               {                                   /* le               */
105                 return -KEY_le;
106               }
107
108             case 't':
109               {                                   /* lt               */
110                 return -KEY_lt;
111               }
112
113             default:
114               goto unknown;
115           }
116
117         case 'm':
118           if (name[1] == 'y')
119           {                                       /* my               */
120             return KEY_my;
121           }
122
123           goto unknown;
124
125         case 'n':
126           switch (name[1])
127           {
128             case 'e':
129               {                                   /* ne               */
130                 return -KEY_ne;
131               }
132
133             case 'o':
134               {                                   /* no               */
135                 return KEY_no;
136               }
137
138             default:
139               goto unknown;
140           }
141
142         case 'o':
143           if (name[1] == 'r')
144           {                                       /* or               */
145             return -KEY_or;
146           }
147
148           goto unknown;
149
150         case 'q':
151           switch (name[1])
152           {
153             case 'q':
154               {                                   /* qq               */
155                 return KEY_qq;
156               }
157
158             case 'r':
159               {                                   /* qr               */
160                 return KEY_qr;
161               }
162
163             case 'w':
164               {                                   /* qw               */
165                 return KEY_qw;
166               }
167
168             case 'x':
169               {                                   /* qx               */
170                 return KEY_qx;
171               }
172
173             default:
174               goto unknown;
175           }
176
177         case 't':
178           if (name[1] == 'r')
179           {                                       /* tr               */
180             return KEY_tr;
181           }
182
183           goto unknown;
184
185         case 'u':
186           if (name[1] == 'c')
187           {                                       /* uc               */
188             return -KEY_uc;
189           }
190
191           goto unknown;
192
193         default:
194           goto unknown;
195       }
196
197     case 3: /* 28 tokens of length 3 */
198       switch (name[0])
199       {
200         case 'E':
201           if (name[1] == 'N' &&
202               name[2] == 'D')
203           {                                       /* END              */
204             return KEY_END;
205           }
206
207           goto unknown;
208
209         case 'a':
210           switch (name[1])
211           {
212             case 'b':
213               if (name[2] == 's')
214               {                                   /* abs              */
215                 return -KEY_abs;
216               }
217
218               goto unknown;
219
220             case 'n':
221               if (name[2] == 'd')
222               {                                   /* and              */
223                 return -KEY_and;
224               }
225
226               goto unknown;
227
228             default:
229               goto unknown;
230           }
231
232         case 'c':
233           switch (name[1])
234           {
235             case 'h':
236               if (name[2] == 'r')
237               {                                   /* chr              */
238                 return -KEY_chr;
239               }
240
241               goto unknown;
242
243             case 'm':
244               if (name[2] == 'p')
245               {                                   /* cmp              */
246                 return -KEY_cmp;
247               }
248
249               goto unknown;
250
251             case 'o':
252               if (name[2] == 's')
253               {                                   /* cos              */
254                 return -KEY_cos;
255               }
256
257               goto unknown;
258
259             default:
260               goto unknown;
261           }
262
263         case 'd':
264           if (name[1] == 'i' &&
265               name[2] == 'e')
266           {                                       /* die              */
267             return -KEY_die;
268           }
269
270           goto unknown;
271
272         case 'e':
273           switch (name[1])
274           {
275             case 'o':
276               if (name[2] == 'f')
277               {                                   /* eof              */
278                 return -KEY_eof;
279               }
280
281               goto unknown;
282
283             case 'x':
284               if (name[2] == 'p')
285               {                                   /* exp              */
286                 return -KEY_exp;
287               }
288
289               goto unknown;
290
291             default:
292               goto unknown;
293           }
294
295         case 'f':
296           if (name[1] == 'o' &&
297               name[2] == 'r')
298           {                                       /* for              */
299             return KEY_for;
300           }
301
302           goto unknown;
303
304         case 'h':
305           if (name[1] == 'e' &&
306               name[2] == 'x')
307           {                                       /* hex              */
308             return -KEY_hex;
309           }
310
311           goto unknown;
312
313         case 'i':
314           if (name[1] == 'n' &&
315               name[2] == 't')
316           {                                       /* int              */
317             return -KEY_int;
318           }
319
320           goto unknown;
321
322         case 'l':
323           if (name[1] == 'o' &&
324               name[2] == 'g')
325           {                                       /* log              */
326             return -KEY_log;
327           }
328
329           goto unknown;
330
331         case 'm':
332           if (name[1] == 'a' &&
333               name[2] == 'p')
334           {                                       /* map              */
335             return KEY_map;
336           }
337
338           goto unknown;
339
340         case 'n':
341           if (name[1] == 'o' &&
342               name[2] == 't')
343           {                                       /* not              */
344             return -KEY_not;
345           }
346
347           goto unknown;
348
349         case 'o':
350           switch (name[1])
351           {
352             case 'c':
353               if (name[2] == 't')
354               {                                   /* oct              */
355                 return -KEY_oct;
356               }
357
358               goto unknown;
359
360             case 'r':
361               if (name[2] == 'd')
362               {                                   /* ord              */
363                 return -KEY_ord;
364               }
365
366               goto unknown;
367
368             case 'u':
369               if (name[2] == 'r')
370               {                                   /* our              */
371                 return KEY_our;
372               }
373
374               goto unknown;
375
376             default:
377               goto unknown;
378           }
379
380         case 'p':
381           if (name[1] == 'o')
382           {
383             switch (name[2])
384             {
385               case 'p':
386                 {                                 /* pop              */
387                   return -KEY_pop;
388                 }
389
390               case 's':
391                 {                                 /* pos              */
392                   return KEY_pos;
393                 }
394
395               default:
396                 goto unknown;
397             }
398           }
399
400           goto unknown;
401
402         case 'r':
403           if (name[1] == 'e' &&
404               name[2] == 'f')
405           {                                       /* ref              */
406             return -KEY_ref;
407           }
408
409           goto unknown;
410
411         case 's':
412           switch (name[1])
413           {
414             case 'a':
415               if (name[2] == 'y')
416               {                                   /* say              */
417                 return (all_keywords || FEATURE_IS_ENABLED("say") ? KEY_say : 0);
418               }
419
420               goto unknown;
421
422             case 'i':
423               if (name[2] == 'n')
424               {                                   /* sin              */
425                 return -KEY_sin;
426               }
427
428               goto unknown;
429
430             case 'u':
431               if (name[2] == 'b')
432               {                                   /* sub              */
433                 return KEY_sub;
434               }
435
436               goto unknown;
437
438             default:
439               goto unknown;
440           }
441
442         case 't':
443           if (name[1] == 'i' &&
444               name[2] == 'e')
445           {                                       /* tie              */
446             return -KEY_tie;
447           }
448
449           goto unknown;
450
451         case 'u':
452           if (name[1] == 's' &&
453               name[2] == 'e')
454           {                                       /* use              */
455             return KEY_use;
456           }
457
458           goto unknown;
459
460         case 'v':
461           if (name[1] == 'e' &&
462               name[2] == 'c')
463           {                                       /* vec              */
464             return -KEY_vec;
465           }
466
467           goto unknown;
468
469         case 'x':
470           if (name[1] == 'o' &&
471               name[2] == 'r')
472           {                                       /* xor              */
473             return -KEY_xor;
474           }
475
476           goto unknown;
477
478         default:
479           goto unknown;
480       }
481
482     case 4: /* 41 tokens of length 4 */
483       switch (name[0])
484       {
485         case 'C':
486           if (name[1] == 'O' &&
487               name[2] == 'R' &&
488               name[3] == 'E')
489           {                                       /* CORE             */
490             return -KEY_CORE;
491           }
492
493           goto unknown;
494
495         case 'I':
496           if (name[1] == 'N' &&
497               name[2] == 'I' &&
498               name[3] == 'T')
499           {                                       /* INIT             */
500             return KEY_INIT;
501           }
502
503           goto unknown;
504
505         case 'b':
506           if (name[1] == 'i' &&
507               name[2] == 'n' &&
508               name[3] == 'd')
509           {                                       /* bind             */
510             return -KEY_bind;
511           }
512
513           goto unknown;
514
515         case 'c':
516           if (name[1] == 'h' &&
517               name[2] == 'o' &&
518               name[3] == 'p')
519           {                                       /* chop             */
520             return -KEY_chop;
521           }
522
523           goto unknown;
524
525         case 'd':
526           if (name[1] == 'u' &&
527               name[2] == 'm' &&
528               name[3] == 'p')
529           {                                       /* dump             */
530             return -KEY_dump;
531           }
532
533           goto unknown;
534
535         case 'e':
536           switch (name[1])
537           {
538             case 'a':
539               if (name[2] == 'c' &&
540                   name[3] == 'h')
541               {                                   /* each             */
542                 return -KEY_each;
543               }
544
545               goto unknown;
546
547             case 'l':
548               if (name[2] == 's' &&
549                   name[3] == 'e')
550               {                                   /* else             */
551                 return KEY_else;
552               }
553
554               goto unknown;
555
556             case 'v':
557               if (name[2] == 'a' &&
558                   name[3] == 'l')
559               {                                   /* eval             */
560                 return KEY_eval;
561               }
562
563               goto unknown;
564
565             case 'x':
566               switch (name[2])
567               {
568                 case 'e':
569                   if (name[3] == 'c')
570                   {                               /* exec             */
571                     return -KEY_exec;
572                   }
573
574                   goto unknown;
575
576                 case 'i':
577                   if (name[3] == 't')
578                   {                               /* exit             */
579                     return -KEY_exit;
580                   }
581
582                   goto unknown;
583
584                 default:
585                   goto unknown;
586               }
587
588             default:
589               goto unknown;
590           }
591
592         case 'f':
593           if (name[1] == 'o' &&
594               name[2] == 'r' &&
595               name[3] == 'k')
596           {                                       /* fork             */
597             return -KEY_fork;
598           }
599
600           goto unknown;
601
602         case 'g':
603           switch (name[1])
604           {
605             case 'e':
606               if (name[2] == 't' &&
607                   name[3] == 'c')
608               {                                   /* getc             */
609                 return -KEY_getc;
610               }
611
612               goto unknown;
613
614             case 'l':
615               if (name[2] == 'o' &&
616                   name[3] == 'b')
617               {                                   /* glob             */
618                 return KEY_glob;
619               }
620
621               goto unknown;
622
623             case 'o':
624               if (name[2] == 't' &&
625                   name[3] == 'o')
626               {                                   /* goto             */
627                 return KEY_goto;
628               }
629
630               goto unknown;
631
632             case 'r':
633               if (name[2] == 'e' &&
634                   name[3] == 'p')
635               {                                   /* grep             */
636                 return KEY_grep;
637               }
638
639               goto unknown;
640
641             default:
642               goto unknown;
643           }
644
645         case 'j':
646           if (name[1] == 'o' &&
647               name[2] == 'i' &&
648               name[3] == 'n')
649           {                                       /* join             */
650             return -KEY_join;
651           }
652
653           goto unknown;
654
655         case 'k':
656           switch (name[1])
657           {
658             case 'e':
659               if (name[2] == 'y' &&
660                   name[3] == 's')
661               {                                   /* keys             */
662                 return -KEY_keys;
663               }
664
665               goto unknown;
666
667             case 'i':
668               if (name[2] == 'l' &&
669                   name[3] == 'l')
670               {                                   /* kill             */
671                 return -KEY_kill;
672               }
673
674               goto unknown;
675
676             default:
677               goto unknown;
678           }
679
680         case 'l':
681           switch (name[1])
682           {
683             case 'a':
684               if (name[2] == 's' &&
685                   name[3] == 't')
686               {                                   /* last             */
687                 return KEY_last;
688               }
689
690               goto unknown;
691
692             case 'i':
693               if (name[2] == 'n' &&
694                   name[3] == 'k')
695               {                                   /* link             */
696                 return -KEY_link;
697               }
698
699               goto unknown;
700
701             case 'o':
702               if (name[2] == 'c' &&
703                   name[3] == 'k')
704               {                                   /* lock             */
705                 return -KEY_lock;
706               }
707
708               goto unknown;
709
710             default:
711               goto unknown;
712           }
713
714         case 'n':
715           if (name[1] == 'e' &&
716               name[2] == 'x' &&
717               name[3] == 't')
718           {                                       /* next             */
719             return KEY_next;
720           }
721
722           goto unknown;
723
724         case 'o':
725           if (name[1] == 'p' &&
726               name[2] == 'e' &&
727               name[3] == 'n')
728           {                                       /* open             */
729             return -KEY_open;
730           }
731
732           goto unknown;
733
734         case 'p':
735           switch (name[1])
736           {
737             case 'a':
738               if (name[2] == 'c' &&
739                   name[3] == 'k')
740               {                                   /* pack             */
741                 return -KEY_pack;
742               }
743
744               goto unknown;
745
746             case 'i':
747               if (name[2] == 'p' &&
748                   name[3] == 'e')
749               {                                   /* pipe             */
750                 return -KEY_pipe;
751               }
752
753               goto unknown;
754
755             case 'u':
756               if (name[2] == 's' &&
757                   name[3] == 'h')
758               {                                   /* push             */
759                 return -KEY_push;
760               }
761
762               goto unknown;
763
764             default:
765               goto unknown;
766           }
767
768         case 'r':
769           switch (name[1])
770           {
771             case 'a':
772               if (name[2] == 'n' &&
773                   name[3] == 'd')
774               {                                   /* rand             */
775                 return -KEY_rand;
776               }
777
778               goto unknown;
779
780             case 'e':
781               switch (name[2])
782               {
783                 case 'a':
784                   if (name[3] == 'd')
785                   {                               /* read             */
786                     return -KEY_read;
787                   }
788
789                   goto unknown;
790
791                 case 'c':
792                   if (name[3] == 'v')
793                   {                               /* recv             */
794                     return -KEY_recv;
795                   }
796
797                   goto unknown;
798
799                 case 'd':
800                   if (name[3] == 'o')
801                   {                               /* redo             */
802                     return KEY_redo;
803                   }
804
805                   goto unknown;
806
807                 default:
808                   goto unknown;
809               }
810
811             default:
812               goto unknown;
813           }
814
815         case 's':
816           switch (name[1])
817           {
818             case 'e':
819               switch (name[2])
820               {
821                 case 'e':
822                   if (name[3] == 'k')
823                   {                               /* seek             */
824                     return -KEY_seek;
825                   }
826
827                   goto unknown;
828
829                 case 'n':
830                   if (name[3] == 'd')
831                   {                               /* send             */
832                     return -KEY_send;
833                   }
834
835                   goto unknown;
836
837                 default:
838                   goto unknown;
839               }
840
841             case 'o':
842               if (name[2] == 'r' &&
843                   name[3] == 't')
844               {                                   /* sort             */
845                 return KEY_sort;
846               }
847
848               goto unknown;
849
850             case 'q':
851               if (name[2] == 'r' &&
852                   name[3] == 't')
853               {                                   /* sqrt             */
854                 return -KEY_sqrt;
855               }
856
857               goto unknown;
858
859             case 't':
860               if (name[2] == 'a' &&
861                   name[3] == 't')
862               {                                   /* stat             */
863                 return -KEY_stat;
864               }
865
866               goto unknown;
867
868             default:
869               goto unknown;
870           }
871
872         case 't':
873           switch (name[1])
874           {
875             case 'e':
876               if (name[2] == 'l' &&
877                   name[3] == 'l')
878               {                                   /* tell             */
879                 return -KEY_tell;
880               }
881
882               goto unknown;
883
884             case 'i':
885               switch (name[2])
886               {
887                 case 'e':
888                   if (name[3] == 'd')
889                   {                               /* tied             */
890                     return -KEY_tied;
891                   }
892
893                   goto unknown;
894
895                 case 'm':
896                   if (name[3] == 'e')
897                   {                               /* time             */
898                     return -KEY_time;
899                   }
900
901                   goto unknown;
902
903                 default:
904                   goto unknown;
905               }
906
907             default:
908               goto unknown;
909           }
910
911         case 'w':
912           switch (name[1])
913           {
914             case 'a':
915               switch (name[2])
916               {
917                 case 'i':
918                   if (name[3] == 't')
919                   {                               /* wait             */
920                     return -KEY_wait;
921                   }
922
923                   goto unknown;
924
925                 case 'r':
926                   if (name[3] == 'n')
927                   {                               /* warn             */
928                     return -KEY_warn;
929                   }
930
931                   goto unknown;
932
933                 default:
934                   goto unknown;
935               }
936
937             case 'h':
938               if (name[2] == 'e' &&
939                   name[3] == 'n')
940               {                                   /* when             */
941                 return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_when : 0);
942               }
943
944               goto unknown;
945
946             default:
947               goto unknown;
948           }
949
950         default:
951           goto unknown;
952       }
953
954     case 5: /* 39 tokens of length 5 */
955       switch (name[0])
956       {
957         case 'B':
958           if (name[1] == 'E' &&
959               name[2] == 'G' &&
960               name[3] == 'I' &&
961               name[4] == 'N')
962           {                                       /* BEGIN            */
963             return KEY_BEGIN;
964           }
965
966           goto unknown;
967
968         case 'C':
969           if (name[1] == 'H' &&
970               name[2] == 'E' &&
971               name[3] == 'C' &&
972               name[4] == 'K')
973           {                                       /* CHECK            */
974             return KEY_CHECK;
975           }
976
977           goto unknown;
978
979         case 'a':
980           switch (name[1])
981           {
982             case 'l':
983               if (name[2] == 'a' &&
984                   name[3] == 'r' &&
985                   name[4] == 'm')
986               {                                   /* alarm            */
987                 return -KEY_alarm;
988               }
989
990               goto unknown;
991
992             case 't':
993               if (name[2] == 'a' &&
994                   name[3] == 'n' &&
995                   name[4] == '2')
996               {                                   /* atan2            */
997                 return -KEY_atan2;
998               }
999
1000               goto unknown;
1001
1002             default:
1003               goto unknown;
1004           }
1005
1006         case 'b':
1007           switch (name[1])
1008           {
1009             case 'l':
1010               if (name[2] == 'e' &&
1011                   name[3] == 's' &&
1012                   name[4] == 's')
1013               {                                   /* bless            */
1014                 return -KEY_bless;
1015               }
1016
1017               goto unknown;
1018
1019             case 'r':
1020               if (name[2] == 'e' &&
1021                   name[3] == 'a' &&
1022                   name[4] == 'k')
1023               {                                   /* break            */
1024                 return (all_keywords || FEATURE_IS_ENABLED("switch") ? -KEY_break : 0);
1025               }
1026
1027               goto unknown;
1028
1029             default:
1030               goto unknown;
1031           }
1032
1033         case 'c':
1034           switch (name[1])
1035           {
1036             case 'h':
1037               switch (name[2])
1038               {
1039                 case 'd':
1040                   if (name[3] == 'i' &&
1041                       name[4] == 'r')
1042                   {                               /* chdir            */
1043                     return -KEY_chdir;
1044                   }
1045
1046                   goto unknown;
1047
1048                 case 'm':
1049                   if (name[3] == 'o' &&
1050                       name[4] == 'd')
1051                   {                               /* chmod            */
1052                     return -KEY_chmod;
1053                   }
1054
1055                   goto unknown;
1056
1057                 case 'o':
1058                   switch (name[3])
1059                   {
1060                     case 'm':
1061                       if (name[4] == 'p')
1062                       {                           /* chomp            */
1063                         return -KEY_chomp;
1064                       }
1065
1066                       goto unknown;
1067
1068                     case 'w':
1069                       if (name[4] == 'n')
1070                       {                           /* chown            */
1071                         return -KEY_chown;
1072                       }
1073
1074                       goto unknown;
1075
1076                     default:
1077                       goto unknown;
1078                   }
1079
1080                 default:
1081                   goto unknown;
1082               }
1083
1084             case 'l':
1085               if (name[2] == 'o' &&
1086                   name[3] == 's' &&
1087                   name[4] == 'e')
1088               {                                   /* close            */
1089                 return -KEY_close;
1090               }
1091
1092               goto unknown;
1093
1094             case 'r':
1095               if (name[2] == 'y' &&
1096                   name[3] == 'p' &&
1097                   name[4] == 't')
1098               {                                   /* crypt            */
1099                 return -KEY_crypt;
1100               }
1101
1102               goto unknown;
1103
1104             default:
1105               goto unknown;
1106           }
1107
1108         case 'e':
1109           if (name[1] == 'l' &&
1110               name[2] == 's' &&
1111               name[3] == 'i' &&
1112               name[4] == 'f')
1113           {                                       /* elsif            */
1114             return KEY_elsif;
1115           }
1116
1117           goto unknown;
1118
1119         case 'f':
1120           switch (name[1])
1121           {
1122             case 'c':
1123               if (name[2] == 'n' &&
1124                   name[3] == 't' &&
1125                   name[4] == 'l')
1126               {                                   /* fcntl            */
1127                 return -KEY_fcntl;
1128               }
1129
1130               goto unknown;
1131
1132             case 'l':
1133               if (name[2] == 'o' &&
1134                   name[3] == 'c' &&
1135                   name[4] == 'k')
1136               {                                   /* flock            */
1137                 return -KEY_flock;
1138               }
1139
1140               goto unknown;
1141
1142             default:
1143               goto unknown;
1144           }
1145
1146         case 'g':
1147           if (name[1] == 'i' &&
1148               name[2] == 'v' &&
1149               name[3] == 'e' &&
1150               name[4] == 'n')
1151           {                                       /* given            */
1152             return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_given : 0);
1153           }
1154
1155           goto unknown;
1156
1157         case 'i':
1158           switch (name[1])
1159           {
1160             case 'n':
1161               if (name[2] == 'd' &&
1162                   name[3] == 'e' &&
1163                   name[4] == 'x')
1164               {                                   /* index            */
1165                 return -KEY_index;
1166               }
1167
1168               goto unknown;
1169
1170             case 'o':
1171               if (name[2] == 'c' &&
1172                   name[3] == 't' &&
1173                   name[4] == 'l')
1174               {                                   /* ioctl            */
1175                 return -KEY_ioctl;
1176               }
1177
1178               goto unknown;
1179
1180             default:
1181               goto unknown;
1182           }
1183
1184         case 'l':
1185           switch (name[1])
1186           {
1187             case 'o':
1188               if (name[2] == 'c' &&
1189                   name[3] == 'a' &&
1190                   name[4] == 'l')
1191               {                                   /* local            */
1192                 return KEY_local;
1193               }
1194
1195               goto unknown;
1196
1197             case 's':
1198               if (name[2] == 't' &&
1199                   name[3] == 'a' &&
1200                   name[4] == 't')
1201               {                                   /* lstat            */
1202                 return -KEY_lstat;
1203               }
1204
1205               goto unknown;
1206
1207             default:
1208               goto unknown;
1209           }
1210
1211         case 'm':
1212           if (name[1] == 'k' &&
1213               name[2] == 'd' &&
1214               name[3] == 'i' &&
1215               name[4] == 'r')
1216           {                                       /* mkdir            */
1217             return -KEY_mkdir;
1218           }
1219
1220           goto unknown;
1221
1222         case 'p':
1223           if (name[1] == 'r' &&
1224               name[2] == 'i' &&
1225               name[3] == 'n' &&
1226               name[4] == 't')
1227           {                                       /* print            */
1228             return KEY_print;
1229           }
1230
1231           goto unknown;
1232
1233         case 'r':
1234           switch (name[1])
1235           {
1236             case 'e':
1237               if (name[2] == 's' &&
1238                   name[3] == 'e' &&
1239                   name[4] == 't')
1240               {                                   /* reset            */
1241                 return -KEY_reset;
1242               }
1243
1244               goto unknown;
1245
1246             case 'm':
1247               if (name[2] == 'd' &&
1248                   name[3] == 'i' &&
1249                   name[4] == 'r')
1250               {                                   /* rmdir            */
1251                 return -KEY_rmdir;
1252               }
1253
1254               goto unknown;
1255
1256             default:
1257               goto unknown;
1258           }
1259
1260         case 's':
1261           switch (name[1])
1262           {
1263             case 'e':
1264               if (name[2] == 'm' &&
1265                   name[3] == 'o' &&
1266                   name[4] == 'p')
1267               {                                   /* semop            */
1268                 return -KEY_semop;
1269               }
1270
1271               goto unknown;
1272
1273             case 'h':
1274               if (name[2] == 'i' &&
1275                   name[3] == 'f' &&
1276                   name[4] == 't')
1277               {                                   /* shift            */
1278                 return -KEY_shift;
1279               }
1280
1281               goto unknown;
1282
1283             case 'l':
1284               if (name[2] == 'e' &&
1285                   name[3] == 'e' &&
1286                   name[4] == 'p')
1287               {                                   /* sleep            */
1288                 return -KEY_sleep;
1289               }
1290
1291               goto unknown;
1292
1293             case 'p':
1294               if (name[2] == 'l' &&
1295                   name[3] == 'i' &&
1296                   name[4] == 't')
1297               {                                   /* split            */
1298                 return KEY_split;
1299               }
1300
1301               goto unknown;
1302
1303             case 'r':
1304               if (name[2] == 'a' &&
1305                   name[3] == 'n' &&
1306                   name[4] == 'd')
1307               {                                   /* srand            */
1308                 return -KEY_srand;
1309               }
1310
1311               goto unknown;
1312
1313             case 't':
1314               switch (name[2])
1315               {
1316                 case 'a':
1317                   if (name[3] == 't' &&
1318                       name[4] == 'e')
1319                   {                               /* state            */
1320                     return (all_keywords || FEATURE_IS_ENABLED("state") ? KEY_state : 0);
1321                   }
1322
1323                   goto unknown;
1324
1325                 case 'u':
1326                   if (name[3] == 'd' &&
1327                       name[4] == 'y')
1328                   {                               /* study            */
1329                     return KEY_study;
1330                   }
1331
1332                   goto unknown;
1333
1334                 default:
1335                   goto unknown;
1336               }
1337
1338             default:
1339               goto unknown;
1340           }
1341
1342         case 't':
1343           if (name[1] == 'i' &&
1344               name[2] == 'm' &&
1345               name[3] == 'e' &&
1346               name[4] == 's')
1347           {                                       /* times            */
1348             return -KEY_times;
1349           }
1350
1351           goto unknown;
1352
1353         case 'u':
1354           switch (name[1])
1355           {
1356             case 'm':
1357               if (name[2] == 'a' &&
1358                   name[3] == 's' &&
1359                   name[4] == 'k')
1360               {                                   /* umask            */
1361                 return -KEY_umask;
1362               }
1363
1364               goto unknown;
1365
1366             case 'n':
1367               switch (name[2])
1368               {
1369                 case 'd':
1370                   if (name[3] == 'e' &&
1371                       name[4] == 'f')
1372                   {                               /* undef            */
1373                     return KEY_undef;
1374                   }
1375
1376                   goto unknown;
1377
1378                 case 't':
1379                   if (name[3] == 'i')
1380                   {
1381                     switch (name[4])
1382                     {
1383                       case 'e':
1384                         {                         /* untie            */
1385                           return -KEY_untie;
1386                         }
1387
1388                       case 'l':
1389                         {                         /* until            */
1390                           return KEY_until;
1391                         }
1392
1393                       default:
1394                         goto unknown;
1395                     }
1396                   }
1397
1398                   goto unknown;
1399
1400                 default:
1401                   goto unknown;
1402               }
1403
1404             case 't':
1405               if (name[2] == 'i' &&
1406                   name[3] == 'm' &&
1407                   name[4] == 'e')
1408               {                                   /* utime            */
1409                 return -KEY_utime;
1410               }
1411
1412               goto unknown;
1413
1414             default:
1415               goto unknown;
1416           }
1417
1418         case 'w':
1419           switch (name[1])
1420           {
1421             case 'h':
1422               if (name[2] == 'i' &&
1423                   name[3] == 'l' &&
1424                   name[4] == 'e')
1425               {                                   /* while            */
1426                 return KEY_while;
1427               }
1428
1429               goto unknown;
1430
1431             case 'r':
1432               if (name[2] == 'i' &&
1433                   name[3] == 't' &&
1434                   name[4] == 'e')
1435               {                                   /* write            */
1436                 return -KEY_write;
1437               }
1438
1439               goto unknown;
1440
1441             default:
1442               goto unknown;
1443           }
1444
1445         default:
1446           goto unknown;
1447       }
1448
1449     case 6: /* 33 tokens of length 6 */
1450       switch (name[0])
1451       {
1452         case 'a':
1453           if (name[1] == 'c' &&
1454               name[2] == 'c' &&
1455               name[3] == 'e' &&
1456               name[4] == 'p' &&
1457               name[5] == 't')
1458           {                                       /* accept           */
1459             return -KEY_accept;
1460           }
1461
1462           goto unknown;
1463
1464         case 'c':
1465           switch (name[1])
1466           {
1467             case 'a':
1468               if (name[2] == 'l' &&
1469                   name[3] == 'l' &&
1470                   name[4] == 'e' &&
1471                   name[5] == 'r')
1472               {                                   /* caller           */
1473                 return -KEY_caller;
1474               }
1475
1476               goto unknown;
1477
1478             case 'h':
1479               if (name[2] == 'r' &&
1480                   name[3] == 'o' &&
1481                   name[4] == 'o' &&
1482                   name[5] == 't')
1483               {                                   /* chroot           */
1484                 return -KEY_chroot;
1485               }
1486
1487               goto unknown;
1488
1489             default:
1490               goto unknown;
1491           }
1492
1493         case 'd':
1494           if (name[1] == 'e' &&
1495               name[2] == 'l' &&
1496               name[3] == 'e' &&
1497               name[4] == 't' &&
1498               name[5] == 'e')
1499           {                                       /* delete           */
1500             return KEY_delete;
1501           }
1502
1503           goto unknown;
1504
1505         case 'e':
1506           switch (name[1])
1507           {
1508             case 'l':
1509               if (name[2] == 's' &&
1510                   name[3] == 'e' &&
1511                   name[4] == 'i' &&
1512                   name[5] == 'f')
1513               {                                   /* elseif           */
1514                 Perl_ck_warner_d(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif");
1515               }
1516
1517               goto unknown;
1518
1519             case 'x':
1520               if (name[2] == 'i' &&
1521                   name[3] == 's' &&
1522                   name[4] == 't' &&
1523                   name[5] == 's')
1524               {                                   /* exists           */
1525                 return KEY_exists;
1526               }
1527
1528               goto unknown;
1529
1530             default:
1531               goto unknown;
1532           }
1533
1534         case 'f':
1535           switch (name[1])
1536           {
1537             case 'i':
1538               if (name[2] == 'l' &&
1539                   name[3] == 'e' &&
1540                   name[4] == 'n' &&
1541                   name[5] == 'o')
1542               {                                   /* fileno           */
1543                 return -KEY_fileno;
1544               }
1545
1546               goto unknown;
1547
1548             case 'o':
1549               if (name[2] == 'r' &&
1550                   name[3] == 'm' &&
1551                   name[4] == 'a' &&
1552                   name[5] == 't')
1553               {                                   /* format           */
1554                 return KEY_format;
1555               }
1556
1557               goto unknown;
1558
1559             default:
1560               goto unknown;
1561           }
1562
1563         case 'g':
1564           if (name[1] == 'm' &&
1565               name[2] == 't' &&
1566               name[3] == 'i' &&
1567               name[4] == 'm' &&
1568               name[5] == 'e')
1569           {                                       /* gmtime           */
1570             return -KEY_gmtime;
1571           }
1572
1573           goto unknown;
1574
1575         case 'l':
1576           switch (name[1])
1577           {
1578             case 'e':
1579               if (name[2] == 'n' &&
1580                   name[3] == 'g' &&
1581                   name[4] == 't' &&
1582                   name[5] == 'h')
1583               {                                   /* length           */
1584                 return -KEY_length;
1585               }
1586
1587               goto unknown;
1588
1589             case 'i':
1590               if (name[2] == 's' &&
1591                   name[3] == 't' &&
1592                   name[4] == 'e' &&
1593                   name[5] == 'n')
1594               {                                   /* listen           */
1595                 return -KEY_listen;
1596               }
1597
1598               goto unknown;
1599
1600             default:
1601               goto unknown;
1602           }
1603
1604         case 'm':
1605           if (name[1] == 's' &&
1606               name[2] == 'g')
1607           {
1608             switch (name[3])
1609             {
1610               case 'c':
1611                 if (name[4] == 't' &&
1612                     name[5] == 'l')
1613                 {                                 /* msgctl           */
1614                   return -KEY_msgctl;
1615                 }
1616
1617                 goto unknown;
1618
1619               case 'g':
1620                 if (name[4] == 'e' &&
1621                     name[5] == 't')
1622                 {                                 /* msgget           */
1623                   return -KEY_msgget;
1624                 }
1625
1626                 goto unknown;
1627
1628               case 'r':
1629                 if (name[4] == 'c' &&
1630                     name[5] == 'v')
1631                 {                                 /* msgrcv           */
1632                   return -KEY_msgrcv;
1633                 }
1634
1635                 goto unknown;
1636
1637               case 's':
1638                 if (name[4] == 'n' &&
1639                     name[5] == 'd')
1640                 {                                 /* msgsnd           */
1641                   return -KEY_msgsnd;
1642                 }
1643
1644                 goto unknown;
1645
1646               default:
1647                 goto unknown;
1648             }
1649           }
1650
1651           goto unknown;
1652
1653         case 'p':
1654           if (name[1] == 'r' &&
1655               name[2] == 'i' &&
1656               name[3] == 'n' &&
1657               name[4] == 't' &&
1658               name[5] == 'f')
1659           {                                       /* printf           */
1660             return KEY_printf;
1661           }
1662
1663           goto unknown;
1664
1665         case 'r':
1666           switch (name[1])
1667           {
1668             case 'e':
1669               switch (name[2])
1670               {
1671                 case 'n':
1672                   if (name[3] == 'a' &&
1673                       name[4] == 'm' &&
1674                       name[5] == 'e')
1675                   {                               /* rename           */
1676                     return -KEY_rename;
1677                   }
1678
1679                   goto unknown;
1680
1681                 case 't':
1682                   if (name[3] == 'u' &&
1683                       name[4] == 'r' &&
1684                       name[5] == 'n')
1685                   {                               /* return           */
1686                     return KEY_return;
1687                   }
1688
1689                   goto unknown;
1690
1691                 default:
1692                   goto unknown;
1693               }
1694
1695             case 'i':
1696               if (name[2] == 'n' &&
1697                   name[3] == 'd' &&
1698                   name[4] == 'e' &&
1699                   name[5] == 'x')
1700               {                                   /* rindex           */
1701                 return -KEY_rindex;
1702               }
1703
1704               goto unknown;
1705
1706             default:
1707               goto unknown;
1708           }
1709
1710         case 's':
1711           switch (name[1])
1712           {
1713             case 'c':
1714               if (name[2] == 'a' &&
1715                   name[3] == 'l' &&
1716                   name[4] == 'a' &&
1717                   name[5] == 'r')
1718               {                                   /* scalar           */
1719                 return KEY_scalar;
1720               }
1721
1722               goto unknown;
1723
1724             case 'e':
1725               switch (name[2])
1726               {
1727                 case 'l':
1728                   if (name[3] == 'e' &&
1729                       name[4] == 'c' &&
1730                       name[5] == 't')
1731                   {                               /* select           */
1732                     return -KEY_select;
1733                   }
1734
1735                   goto unknown;
1736
1737                 case 'm':
1738                   switch (name[3])
1739                   {
1740                     case 'c':
1741                       if (name[4] == 't' &&
1742                           name[5] == 'l')
1743                       {                           /* semctl           */
1744                         return -KEY_semctl;
1745                       }
1746
1747                       goto unknown;
1748
1749                     case 'g':
1750                       if (name[4] == 'e' &&
1751                           name[5] == 't')
1752                       {                           /* semget           */
1753                         return -KEY_semget;
1754                       }
1755
1756                       goto unknown;
1757
1758                     default:
1759                       goto unknown;
1760                   }
1761
1762                 default:
1763                   goto unknown;
1764               }
1765
1766             case 'h':
1767               if (name[2] == 'm')
1768               {
1769                 switch (name[3])
1770                 {
1771                   case 'c':
1772                     if (name[4] == 't' &&
1773                         name[5] == 'l')
1774                     {                             /* shmctl           */
1775                       return -KEY_shmctl;
1776                     }
1777
1778                     goto unknown;
1779
1780                   case 'g':
1781                     if (name[4] == 'e' &&
1782                         name[5] == 't')
1783                     {                             /* shmget           */
1784                       return -KEY_shmget;
1785                     }
1786
1787                     goto unknown;
1788
1789                   default:
1790                     goto unknown;
1791                 }
1792               }
1793
1794               goto unknown;
1795
1796             case 'o':
1797               if (name[2] == 'c' &&
1798                   name[3] == 'k' &&
1799                   name[4] == 'e' &&
1800                   name[5] == 't')
1801               {                                   /* socket           */
1802                 return -KEY_socket;
1803               }
1804
1805               goto unknown;
1806
1807             case 'p':
1808               if (name[2] == 'l' &&
1809                   name[3] == 'i' &&
1810                   name[4] == 'c' &&
1811                   name[5] == 'e')
1812               {                                   /* splice           */
1813                 return -KEY_splice;
1814               }
1815
1816               goto unknown;
1817
1818             case 'u':
1819               if (name[2] == 'b' &&
1820                   name[3] == 's' &&
1821                   name[4] == 't' &&
1822                   name[5] == 'r')
1823               {                                   /* substr           */
1824                 return -KEY_substr;
1825               }
1826
1827               goto unknown;
1828
1829             case 'y':
1830               if (name[2] == 's' &&
1831                   name[3] == 't' &&
1832                   name[4] == 'e' &&
1833                   name[5] == 'm')
1834               {                                   /* system           */
1835                 return -KEY_system;
1836               }
1837
1838               goto unknown;
1839
1840             default:
1841               goto unknown;
1842           }
1843
1844         case 'u':
1845           if (name[1] == 'n')
1846           {
1847             switch (name[2])
1848             {
1849               case 'l':
1850                 switch (name[3])
1851                 {
1852                   case 'e':
1853                     if (name[4] == 's' &&
1854                         name[5] == 's')
1855                     {                             /* unless           */
1856                       return KEY_unless;
1857                     }
1858
1859                     goto unknown;
1860
1861                   case 'i':
1862                     if (name[4] == 'n' &&
1863                         name[5] == 'k')
1864                     {                             /* unlink           */
1865                       return -KEY_unlink;
1866                     }
1867
1868                     goto unknown;
1869
1870                   default:
1871                     goto unknown;
1872                 }
1873
1874               case 'p':
1875                 if (name[3] == 'a' &&
1876                     name[4] == 'c' &&
1877                     name[5] == 'k')
1878                 {                                 /* unpack           */
1879                   return -KEY_unpack;
1880                 }
1881
1882                 goto unknown;
1883
1884               default:
1885                 goto unknown;
1886             }
1887           }
1888
1889           goto unknown;
1890
1891         case 'v':
1892           if (name[1] == 'a' &&
1893               name[2] == 'l' &&
1894               name[3] == 'u' &&
1895               name[4] == 'e' &&
1896               name[5] == 's')
1897           {                                       /* values           */
1898             return -KEY_values;
1899           }
1900
1901           goto unknown;
1902
1903         default:
1904           goto unknown;
1905       }
1906
1907     case 7: /* 29 tokens of length 7 */
1908       switch (name[0])
1909       {
1910         case 'D':
1911           if (name[1] == 'E' &&
1912               name[2] == 'S' &&
1913               name[3] == 'T' &&
1914               name[4] == 'R' &&
1915               name[5] == 'O' &&
1916               name[6] == 'Y')
1917           {                                       /* DESTROY          */
1918             return KEY_DESTROY;
1919           }
1920
1921           goto unknown;
1922
1923         case '_':
1924           if (name[1] == '_' &&
1925               name[2] == 'E' &&
1926               name[3] == 'N' &&
1927               name[4] == 'D' &&
1928               name[5] == '_' &&
1929               name[6] == '_')
1930           {                                       /* __END__          */
1931             return KEY___END__;
1932           }
1933
1934           goto unknown;
1935
1936         case 'b':
1937           if (name[1] == 'i' &&
1938               name[2] == 'n' &&
1939               name[3] == 'm' &&
1940               name[4] == 'o' &&
1941               name[5] == 'd' &&
1942               name[6] == 'e')
1943           {                                       /* binmode          */
1944             return -KEY_binmode;
1945           }
1946
1947           goto unknown;
1948
1949         case 'c':
1950           if (name[1] == 'o' &&
1951               name[2] == 'n' &&
1952               name[3] == 'n' &&
1953               name[4] == 'e' &&
1954               name[5] == 'c' &&
1955               name[6] == 't')
1956           {                                       /* connect          */
1957             return -KEY_connect;
1958           }
1959
1960           goto unknown;
1961
1962         case 'd':
1963           switch (name[1])
1964           {
1965             case 'b':
1966               if (name[2] == 'm' &&
1967                   name[3] == 'o' &&
1968                   name[4] == 'p' &&
1969                   name[5] == 'e' &&
1970                   name[6] == 'n')
1971               {                                   /* dbmopen          */
1972                 return -KEY_dbmopen;
1973               }
1974
1975               goto unknown;
1976
1977             case 'e':
1978               if (name[2] == 'f')
1979               {
1980                 switch (name[3])
1981                 {
1982                   case 'a':
1983                     if (name[4] == 'u' &&
1984                         name[5] == 'l' &&
1985                         name[6] == 't')
1986                     {                             /* default          */
1987                       return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_default : 0);
1988                     }
1989
1990                     goto unknown;
1991
1992                   case 'i':
1993                     if (name[4] == 'n' &&
1994                         name[5] == 'e' &&
1995                         name[6] == 'd')
1996                     {                             /* defined          */
1997                       return KEY_defined;
1998                     }
1999
2000                     goto unknown;
2001
2002                   default:
2003                     goto unknown;
2004                 }
2005               }
2006
2007               goto unknown;
2008
2009             default:
2010               goto unknown;
2011           }
2012
2013         case 'f':
2014           if (name[1] == 'o' &&
2015               name[2] == 'r' &&
2016               name[3] == 'e' &&
2017               name[4] == 'a' &&
2018               name[5] == 'c' &&
2019               name[6] == 'h')
2020           {                                       /* foreach          */
2021             return KEY_foreach;
2022           }
2023
2024           goto unknown;
2025
2026         case 'g':
2027           if (name[1] == 'e' &&
2028               name[2] == 't' &&
2029               name[3] == 'p')
2030           {
2031             switch (name[4])
2032             {
2033               case 'g':
2034                 if (name[5] == 'r' &&
2035                     name[6] == 'p')
2036                 {                                 /* getpgrp          */
2037                   return -KEY_getpgrp;
2038                 }
2039
2040                 goto unknown;
2041
2042               case 'p':
2043                 if (name[5] == 'i' &&
2044                     name[6] == 'd')
2045                 {                                 /* getppid          */
2046                   return -KEY_getppid;
2047                 }
2048
2049                 goto unknown;
2050
2051               default:
2052                 goto unknown;
2053             }
2054           }
2055
2056           goto unknown;
2057
2058         case 'l':
2059           if (name[1] == 'c' &&
2060               name[2] == 'f' &&
2061               name[3] == 'i' &&
2062               name[4] == 'r' &&
2063               name[5] == 's' &&
2064               name[6] == 't')
2065           {                                       /* lcfirst          */
2066             return -KEY_lcfirst;
2067           }
2068
2069           goto unknown;
2070
2071         case 'o':
2072           if (name[1] == 'p' &&
2073               name[2] == 'e' &&
2074               name[3] == 'n' &&
2075               name[4] == 'd' &&
2076               name[5] == 'i' &&
2077               name[6] == 'r')
2078           {                                       /* opendir          */
2079             return -KEY_opendir;
2080           }
2081
2082           goto unknown;
2083
2084         case 'p':
2085           if (name[1] == 'a' &&
2086               name[2] == 'c' &&
2087               name[3] == 'k' &&
2088               name[4] == 'a' &&
2089               name[5] == 'g' &&
2090               name[6] == 'e')
2091           {                                       /* package          */
2092             return KEY_package;
2093           }
2094
2095           goto unknown;
2096
2097         case 'r':
2098           if (name[1] == 'e')
2099           {
2100             switch (name[2])
2101             {
2102               case 'a':
2103                 if (name[3] == 'd' &&
2104                     name[4] == 'd' &&
2105                     name[5] == 'i' &&
2106                     name[6] == 'r')
2107                 {                                 /* readdir          */
2108                   return -KEY_readdir;
2109                 }
2110
2111                 goto unknown;
2112
2113               case 'q':
2114                 if (name[3] == 'u' &&
2115                     name[4] == 'i' &&
2116                     name[5] == 'r' &&
2117                     name[6] == 'e')
2118                 {                                 /* require          */
2119                   return KEY_require;
2120                 }
2121
2122                 goto unknown;
2123
2124               case 'v':
2125                 if (name[3] == 'e' &&
2126                     name[4] == 'r' &&
2127                     name[5] == 's' &&
2128                     name[6] == 'e')
2129                 {                                 /* reverse          */
2130                   return -KEY_reverse;
2131                 }
2132
2133                 goto unknown;
2134
2135               default:
2136                 goto unknown;
2137             }
2138           }
2139
2140           goto unknown;
2141
2142         case 's':
2143           switch (name[1])
2144           {
2145             case 'e':
2146               switch (name[2])
2147               {
2148                 case 'e':
2149                   if (name[3] == 'k' &&
2150                       name[4] == 'd' &&
2151                       name[5] == 'i' &&
2152                       name[6] == 'r')
2153                   {                               /* seekdir          */
2154                     return -KEY_seekdir;
2155                   }
2156
2157                   goto unknown;
2158
2159                 case 't':
2160                   if (name[3] == 'p' &&
2161                       name[4] == 'g' &&
2162                       name[5] == 'r' &&
2163                       name[6] == 'p')
2164                   {                               /* setpgrp          */
2165                     return -KEY_setpgrp;
2166                   }
2167
2168                   goto unknown;
2169
2170                 default:
2171                   goto unknown;
2172               }
2173
2174             case 'h':
2175               if (name[2] == 'm' &&
2176                   name[3] == 'r' &&
2177                   name[4] == 'e' &&
2178                   name[5] == 'a' &&
2179                   name[6] == 'd')
2180               {                                   /* shmread          */
2181                 return -KEY_shmread;
2182               }
2183
2184               goto unknown;
2185
2186             case 'p':
2187               if (name[2] == 'r' &&
2188                   name[3] == 'i' &&
2189                   name[4] == 'n' &&
2190                   name[5] == 't' &&
2191                   name[6] == 'f')
2192               {                                   /* sprintf          */
2193                 return -KEY_sprintf;
2194               }
2195
2196               goto unknown;
2197
2198             case 'y':
2199               switch (name[2])
2200               {
2201                 case 'm':
2202                   if (name[3] == 'l' &&
2203                       name[4] == 'i' &&
2204                       name[5] == 'n' &&
2205                       name[6] == 'k')
2206                   {                               /* symlink          */
2207                     return -KEY_symlink;
2208                   }
2209
2210                   goto unknown;
2211
2212                 case 's':
2213                   switch (name[3])
2214                   {
2215                     case 'c':
2216                       if (name[4] == 'a' &&
2217                           name[5] == 'l' &&
2218                           name[6] == 'l')
2219                       {                           /* syscall          */
2220                         return -KEY_syscall;
2221                       }
2222
2223                       goto unknown;
2224
2225                     case 'o':
2226                       if (name[4] == 'p' &&
2227                           name[5] == 'e' &&
2228                           name[6] == 'n')
2229                       {                           /* sysopen          */
2230                         return -KEY_sysopen;
2231                       }
2232
2233                       goto unknown;
2234
2235                     case 'r':
2236                       if (name[4] == 'e' &&
2237                           name[5] == 'a' &&
2238                           name[6] == 'd')
2239                       {                           /* sysread          */
2240                         return -KEY_sysread;
2241                       }
2242
2243                       goto unknown;
2244
2245                     case 's':
2246                       if (name[4] == 'e' &&
2247                           name[5] == 'e' &&
2248                           name[6] == 'k')
2249                       {                           /* sysseek          */
2250                         return -KEY_sysseek;
2251                       }
2252
2253                       goto unknown;
2254
2255                     default:
2256                       goto unknown;
2257                   }
2258
2259                 default:
2260                   goto unknown;
2261               }
2262
2263             default:
2264               goto unknown;
2265           }
2266
2267         case 't':
2268           if (name[1] == 'e' &&
2269               name[2] == 'l' &&
2270               name[3] == 'l' &&
2271               name[4] == 'd' &&
2272               name[5] == 'i' &&
2273               name[6] == 'r')
2274           {                                       /* telldir          */
2275             return -KEY_telldir;
2276           }
2277
2278           goto unknown;
2279
2280         case 'u':
2281           switch (name[1])
2282           {
2283             case 'c':
2284               if (name[2] == 'f' &&
2285                   name[3] == 'i' &&
2286                   name[4] == 'r' &&
2287                   name[5] == 's' &&
2288                   name[6] == 't')
2289               {                                   /* ucfirst          */
2290                 return -KEY_ucfirst;
2291               }
2292
2293               goto unknown;
2294
2295             case 'n':
2296               if (name[2] == 's' &&
2297                   name[3] == 'h' &&
2298                   name[4] == 'i' &&
2299                   name[5] == 'f' &&
2300                   name[6] == 't')
2301               {                                   /* unshift          */
2302                 return -KEY_unshift;
2303               }
2304
2305               goto unknown;
2306
2307             default:
2308               goto unknown;
2309           }
2310
2311         case 'w':
2312           if (name[1] == 'a' &&
2313               name[2] == 'i' &&
2314               name[3] == 't' &&
2315               name[4] == 'p' &&
2316               name[5] == 'i' &&
2317               name[6] == 'd')
2318           {                                       /* waitpid          */
2319             return -KEY_waitpid;
2320           }
2321
2322           goto unknown;
2323
2324         default:
2325           goto unknown;
2326       }
2327
2328     case 8: /* 26 tokens of length 8 */
2329       switch (name[0])
2330       {
2331         case 'A':
2332           if (name[1] == 'U' &&
2333               name[2] == 'T' &&
2334               name[3] == 'O' &&
2335               name[4] == 'L' &&
2336               name[5] == 'O' &&
2337               name[6] == 'A' &&
2338               name[7] == 'D')
2339           {                                       /* AUTOLOAD         */
2340             return KEY_AUTOLOAD;
2341           }
2342
2343           goto unknown;
2344
2345         case '_':
2346           if (name[1] == '_')
2347           {
2348             switch (name[2])
2349             {
2350               case 'D':
2351                 if (name[3] == 'A' &&
2352                     name[4] == 'T' &&
2353                     name[5] == 'A' &&
2354                     name[6] == '_' &&
2355                     name[7] == '_')
2356                 {                                 /* __DATA__         */
2357                   return KEY___DATA__;
2358                 }
2359
2360                 goto unknown;
2361
2362               case 'F':
2363                 if (name[3] == 'I' &&
2364                     name[4] == 'L' &&
2365                     name[5] == 'E' &&
2366                     name[6] == '_' &&
2367                     name[7] == '_')
2368                 {                                 /* __FILE__         */
2369                   return -KEY___FILE__;
2370                 }
2371
2372                 goto unknown;
2373
2374               case 'L':
2375                 if (name[3] == 'I' &&
2376                     name[4] == 'N' &&
2377                     name[5] == 'E' &&
2378                     name[6] == '_' &&
2379                     name[7] == '_')
2380                 {                                 /* __LINE__         */
2381                   return -KEY___LINE__;
2382                 }
2383
2384                 goto unknown;
2385
2386               default:
2387                 goto unknown;
2388             }
2389           }
2390
2391           goto unknown;
2392
2393         case 'c':
2394           switch (name[1])
2395           {
2396             case 'l':
2397               if (name[2] == 'o' &&
2398                   name[3] == 's' &&
2399                   name[4] == 'e' &&
2400                   name[5] == 'd' &&
2401                   name[6] == 'i' &&
2402                   name[7] == 'r')
2403               {                                   /* closedir         */
2404                 return -KEY_closedir;
2405               }
2406
2407               goto unknown;
2408
2409             case 'o':
2410               if (name[2] == 'n' &&
2411                   name[3] == 't' &&
2412                   name[4] == 'i' &&
2413                   name[5] == 'n' &&
2414                   name[6] == 'u' &&
2415                   name[7] == 'e')
2416               {                                   /* continue         */
2417                 return -KEY_continue;
2418               }
2419
2420               goto unknown;
2421
2422             default:
2423               goto unknown;
2424           }
2425
2426         case 'd':
2427           if (name[1] == 'b' &&
2428               name[2] == 'm' &&
2429               name[3] == 'c' &&
2430               name[4] == 'l' &&
2431               name[5] == 'o' &&
2432               name[6] == 's' &&
2433               name[7] == 'e')
2434           {                                       /* dbmclose         */
2435             return -KEY_dbmclose;
2436           }
2437
2438           goto unknown;
2439
2440         case 'e':
2441           if (name[1] == 'n' &&
2442               name[2] == 'd')
2443           {
2444             switch (name[3])
2445             {
2446               case 'g':
2447                 if (name[4] == 'r' &&
2448                     name[5] == 'e' &&
2449                     name[6] == 'n' &&
2450                     name[7] == 't')
2451                 {                                 /* endgrent         */
2452                   return -KEY_endgrent;
2453                 }
2454
2455                 goto unknown;
2456
2457               case 'p':
2458                 if (name[4] == 'w' &&
2459                     name[5] == 'e' &&
2460                     name[6] == 'n' &&
2461                     name[7] == 't')
2462                 {                                 /* endpwent         */
2463                   return -KEY_endpwent;
2464                 }
2465
2466                 goto unknown;
2467
2468               default:
2469                 goto unknown;
2470             }
2471           }
2472
2473           goto unknown;
2474
2475         case 'f':
2476           if (name[1] == 'o' &&
2477               name[2] == 'r' &&
2478               name[3] == 'm' &&
2479               name[4] == 'l' &&
2480               name[5] == 'i' &&
2481               name[6] == 'n' &&
2482               name[7] == 'e')
2483           {                                       /* formline         */
2484             return -KEY_formline;
2485           }
2486
2487           goto unknown;
2488
2489         case 'g':
2490           if (name[1] == 'e' &&
2491               name[2] == 't')
2492           {
2493             switch (name[3])
2494             {
2495               case 'g':
2496                 if (name[4] == 'r')
2497                 {
2498                   switch (name[5])
2499                   {
2500                     case 'e':
2501                       if (name[6] == 'n' &&
2502                           name[7] == 't')
2503                       {                           /* getgrent         */
2504                         return -KEY_getgrent;
2505                       }
2506
2507                       goto unknown;
2508
2509                     case 'g':
2510                       if (name[6] == 'i' &&
2511                           name[7] == 'd')
2512                       {                           /* getgrgid         */
2513                         return -KEY_getgrgid;
2514                       }
2515
2516                       goto unknown;
2517
2518                     case 'n':
2519                       if (name[6] == 'a' &&
2520                           name[7] == 'm')
2521                       {                           /* getgrnam         */
2522                         return -KEY_getgrnam;
2523                       }
2524
2525                       goto unknown;
2526
2527                     default:
2528                       goto unknown;
2529                   }
2530                 }
2531
2532                 goto unknown;
2533
2534               case 'l':
2535                 if (name[4] == 'o' &&
2536                     name[5] == 'g' &&
2537                     name[6] == 'i' &&
2538                     name[7] == 'n')
2539                 {                                 /* getlogin         */
2540                   return -KEY_getlogin;
2541                 }
2542
2543                 goto unknown;
2544
2545               case 'p':
2546                 if (name[4] == 'w')
2547                 {
2548                   switch (name[5])
2549                   {
2550                     case 'e':
2551                       if (name[6] == 'n' &&
2552                           name[7] == 't')
2553                       {                           /* getpwent         */
2554                         return -KEY_getpwent;
2555                       }
2556
2557                       goto unknown;
2558
2559                     case 'n':
2560                       if (name[6] == 'a' &&
2561                           name[7] == 'm')
2562                       {                           /* getpwnam         */
2563                         return -KEY_getpwnam;
2564                       }
2565
2566                       goto unknown;
2567
2568                     case 'u':
2569                       if (name[6] == 'i' &&
2570                           name[7] == 'd')
2571                       {                           /* getpwuid         */
2572                         return -KEY_getpwuid;
2573                       }
2574
2575                       goto unknown;
2576
2577                     default:
2578                       goto unknown;
2579                   }
2580                 }
2581
2582                 goto unknown;
2583
2584               default:
2585                 goto unknown;
2586             }
2587           }
2588
2589           goto unknown;
2590
2591         case 'r':
2592           if (name[1] == 'e' &&
2593               name[2] == 'a' &&
2594               name[3] == 'd')
2595           {
2596             switch (name[4])
2597             {
2598               case 'l':
2599                 if (name[5] == 'i' &&
2600                     name[6] == 'n')
2601                 {
2602                   switch (name[7])
2603                   {
2604                     case 'e':
2605                       {                           /* readline         */
2606                         return -KEY_readline;
2607                       }
2608
2609                     case 'k':
2610                       {                           /* readlink         */
2611                         return -KEY_readlink;
2612                       }
2613
2614                     default:
2615                       goto unknown;
2616                   }
2617                 }
2618
2619                 goto unknown;
2620
2621               case 'p':
2622                 if (name[5] == 'i' &&
2623                     name[6] == 'p' &&
2624                     name[7] == 'e')
2625                 {                                 /* readpipe         */
2626                   return -KEY_readpipe;
2627                 }
2628
2629                 goto unknown;
2630
2631               default:
2632                 goto unknown;
2633             }
2634           }
2635
2636           goto unknown;
2637
2638         case 's':
2639           switch (name[1])
2640           {
2641             case 'e':
2642               if (name[2] == 't')
2643               {
2644                 switch (name[3])
2645                 {
2646                   case 'g':
2647                     if (name[4] == 'r' &&
2648                         name[5] == 'e' &&
2649                         name[6] == 'n' &&
2650                         name[7] == 't')
2651                     {                             /* setgrent         */
2652                       return -KEY_setgrent;
2653                     }
2654
2655                     goto unknown;
2656
2657                   case 'p':
2658                     if (name[4] == 'w' &&
2659                         name[5] == 'e' &&
2660                         name[6] == 'n' &&
2661                         name[7] == 't')
2662                     {                             /* setpwent         */
2663                       return -KEY_setpwent;
2664                     }
2665
2666                     goto unknown;
2667
2668                   default:
2669                     goto unknown;
2670                 }
2671               }
2672
2673               goto unknown;
2674
2675             case 'h':
2676               switch (name[2])
2677               {
2678                 case 'm':
2679                   if (name[3] == 'w' &&
2680                       name[4] == 'r' &&
2681                       name[5] == 'i' &&
2682                       name[6] == 't' &&
2683                       name[7] == 'e')
2684                   {                               /* shmwrite         */
2685                     return -KEY_shmwrite;
2686                   }
2687
2688                   goto unknown;
2689
2690                 case 'u':
2691                   if (name[3] == 't' &&
2692                       name[4] == 'd' &&
2693                       name[5] == 'o' &&
2694                       name[6] == 'w' &&
2695                       name[7] == 'n')
2696                   {                               /* shutdown         */
2697                     return -KEY_shutdown;
2698                   }
2699
2700                   goto unknown;
2701
2702                 default:
2703                   goto unknown;
2704               }
2705
2706             case 'y':
2707               if (name[2] == 's' &&
2708                   name[3] == 'w' &&
2709                   name[4] == 'r' &&
2710                   name[5] == 'i' &&
2711                   name[6] == 't' &&
2712                   name[7] == 'e')
2713               {                                   /* syswrite         */
2714                 return -KEY_syswrite;
2715               }
2716
2717               goto unknown;
2718
2719             default:
2720               goto unknown;
2721           }
2722
2723         case 't':
2724           if (name[1] == 'r' &&
2725               name[2] == 'u' &&
2726               name[3] == 'n' &&
2727               name[4] == 'c' &&
2728               name[5] == 'a' &&
2729               name[6] == 't' &&
2730               name[7] == 'e')
2731           {                                       /* truncate         */
2732             return -KEY_truncate;
2733           }
2734
2735           goto unknown;
2736
2737         default:
2738           goto unknown;
2739       }
2740
2741     case 9: /* 9 tokens of length 9 */
2742       switch (name[0])
2743       {
2744         case 'U':
2745           if (name[1] == 'N' &&
2746               name[2] == 'I' &&
2747               name[3] == 'T' &&
2748               name[4] == 'C' &&
2749               name[5] == 'H' &&
2750               name[6] == 'E' &&
2751               name[7] == 'C' &&
2752               name[8] == 'K')
2753           {                                       /* UNITCHECK        */
2754             return KEY_UNITCHECK;
2755           }
2756
2757           goto unknown;
2758
2759         case 'e':
2760           if (name[1] == 'n' &&
2761               name[2] == 'd' &&
2762               name[3] == 'n' &&
2763               name[4] == 'e' &&
2764               name[5] == 't' &&
2765               name[6] == 'e' &&
2766               name[7] == 'n' &&
2767               name[8] == 't')
2768           {                                       /* endnetent        */
2769             return -KEY_endnetent;
2770           }
2771
2772           goto unknown;
2773
2774         case 'g':
2775           if (name[1] == 'e' &&
2776               name[2] == 't' &&
2777               name[3] == 'n' &&
2778               name[4] == 'e' &&
2779               name[5] == 't' &&
2780               name[6] == 'e' &&
2781               name[7] == 'n' &&
2782               name[8] == 't')
2783           {                                       /* getnetent        */
2784             return -KEY_getnetent;
2785           }
2786
2787           goto unknown;
2788
2789         case 'l':
2790           if (name[1] == 'o' &&
2791               name[2] == 'c' &&
2792               name[3] == 'a' &&
2793               name[4] == 'l' &&
2794               name[5] == 't' &&
2795               name[6] == 'i' &&
2796               name[7] == 'm' &&
2797               name[8] == 'e')
2798           {                                       /* localtime        */
2799             return -KEY_localtime;
2800           }
2801
2802           goto unknown;
2803
2804         case 'p':
2805           if (name[1] == 'r' &&
2806               name[2] == 'o' &&
2807               name[3] == 't' &&
2808               name[4] == 'o' &&
2809               name[5] == 't' &&
2810               name[6] == 'y' &&
2811               name[7] == 'p' &&
2812               name[8] == 'e')
2813           {                                       /* prototype        */
2814             return KEY_prototype;
2815           }
2816
2817           goto unknown;
2818
2819         case 'q':
2820           if (name[1] == 'u' &&
2821               name[2] == 'o' &&
2822               name[3] == 't' &&
2823               name[4] == 'e' &&
2824               name[5] == 'm' &&
2825               name[6] == 'e' &&
2826               name[7] == 't' &&
2827               name[8] == 'a')
2828           {                                       /* quotemeta        */
2829             return -KEY_quotemeta;
2830           }
2831
2832           goto unknown;
2833
2834         case 'r':
2835           if (name[1] == 'e' &&
2836               name[2] == 'w' &&
2837               name[3] == 'i' &&
2838               name[4] == 'n' &&
2839               name[5] == 'd' &&
2840               name[6] == 'd' &&
2841               name[7] == 'i' &&
2842               name[8] == 'r')
2843           {                                       /* rewinddir        */
2844             return -KEY_rewinddir;
2845           }
2846
2847           goto unknown;
2848
2849         case 's':
2850           if (name[1] == 'e' &&
2851               name[2] == 't' &&
2852               name[3] == 'n' &&
2853               name[4] == 'e' &&
2854               name[5] == 't' &&
2855               name[6] == 'e' &&
2856               name[7] == 'n' &&
2857               name[8] == 't')
2858           {                                       /* setnetent        */
2859             return -KEY_setnetent;
2860           }
2861
2862           goto unknown;
2863
2864         case 'w':
2865           if (name[1] == 'a' &&
2866               name[2] == 'n' &&
2867               name[3] == 't' &&
2868               name[4] == 'a' &&
2869               name[5] == 'r' &&
2870               name[6] == 'r' &&
2871               name[7] == 'a' &&
2872               name[8] == 'y')
2873           {                                       /* wantarray        */
2874             return -KEY_wantarray;
2875           }
2876
2877           goto unknown;
2878
2879         default:
2880           goto unknown;
2881       }
2882
2883     case 10: /* 9 tokens of length 10 */
2884       switch (name[0])
2885       {
2886         case 'e':
2887           if (name[1] == 'n' &&
2888               name[2] == 'd')
2889           {
2890             switch (name[3])
2891             {
2892               case 'h':
2893                 if (name[4] == 'o' &&
2894                     name[5] == 's' &&
2895                     name[6] == 't' &&
2896                     name[7] == 'e' &&
2897                     name[8] == 'n' &&
2898                     name[9] == 't')
2899                 {                                 /* endhostent       */
2900                   return -KEY_endhostent;
2901                 }
2902
2903                 goto unknown;
2904
2905               case 's':
2906                 if (name[4] == 'e' &&
2907                     name[5] == 'r' &&
2908                     name[6] == 'v' &&
2909                     name[7] == 'e' &&
2910                     name[8] == 'n' &&
2911                     name[9] == 't')
2912                 {                                 /* endservent       */
2913                   return -KEY_endservent;
2914                 }
2915
2916                 goto unknown;
2917
2918               default:
2919                 goto unknown;
2920             }
2921           }
2922
2923           goto unknown;
2924
2925         case 'g':
2926           if (name[1] == 'e' &&
2927               name[2] == 't')
2928           {
2929             switch (name[3])
2930             {
2931               case 'h':
2932                 if (name[4] == 'o' &&
2933                     name[5] == 's' &&
2934                     name[6] == 't' &&
2935                     name[7] == 'e' &&
2936                     name[8] == 'n' &&
2937                     name[9] == 't')
2938                 {                                 /* gethostent       */
2939                   return -KEY_gethostent;
2940                 }
2941
2942                 goto unknown;
2943
2944               case 's':
2945                 switch (name[4])
2946                 {
2947                   case 'e':
2948                     if (name[5] == 'r' &&
2949                         name[6] == 'v' &&
2950                         name[7] == 'e' &&
2951                         name[8] == 'n' &&
2952                         name[9] == 't')
2953                     {                             /* getservent       */
2954                       return -KEY_getservent;
2955                     }
2956
2957                     goto unknown;
2958
2959                   case 'o':
2960                     if (name[5] == 'c' &&
2961                         name[6] == 'k' &&
2962                         name[7] == 'o' &&
2963                         name[8] == 'p' &&
2964                         name[9] == 't')
2965                     {                             /* getsockopt       */
2966                       return -KEY_getsockopt;
2967                     }
2968
2969                     goto unknown;
2970
2971                   default:
2972                     goto unknown;
2973                 }
2974
2975               default:
2976                 goto unknown;
2977             }
2978           }
2979
2980           goto unknown;
2981
2982         case 's':
2983           switch (name[1])
2984           {
2985             case 'e':
2986               if (name[2] == 't')
2987               {
2988                 switch (name[3])
2989                 {
2990                   case 'h':
2991                     if (name[4] == 'o' &&
2992                         name[5] == 's' &&
2993                         name[6] == 't' &&
2994                         name[7] == 'e' &&
2995                         name[8] == 'n' &&
2996                         name[9] == 't')
2997                     {                             /* sethostent       */
2998                       return -KEY_sethostent;
2999                     }
3000
3001                     goto unknown;
3002
3003                   case 's':
3004                     switch (name[4])
3005                     {
3006                       case 'e':
3007                         if (name[5] == 'r' &&
3008                             name[6] == 'v' &&
3009                             name[7] == 'e' &&
3010                             name[8] == 'n' &&
3011                             name[9] == 't')
3012                         {                         /* setservent       */
3013                           return -KEY_setservent;
3014                         }
3015
3016                         goto unknown;
3017
3018                       case 'o':
3019                         if (name[5] == 'c' &&
3020                             name[6] == 'k' &&
3021                             name[7] == 'o' &&
3022                             name[8] == 'p' &&
3023                             name[9] == 't')
3024                         {                         /* setsockopt       */
3025                           return -KEY_setsockopt;
3026                         }
3027
3028                         goto unknown;
3029
3030                       default:
3031                         goto unknown;
3032                     }
3033
3034                   default:
3035                     goto unknown;
3036                 }
3037               }
3038
3039               goto unknown;
3040
3041             case 'o':
3042               if (name[2] == 'c' &&
3043                   name[3] == 'k' &&
3044                   name[4] == 'e' &&
3045                   name[5] == 't' &&
3046                   name[6] == 'p' &&
3047                   name[7] == 'a' &&
3048                   name[8] == 'i' &&
3049                   name[9] == 'r')
3050               {                                   /* socketpair       */
3051                 return -KEY_socketpair;
3052               }
3053
3054               goto unknown;
3055
3056             default:
3057               goto unknown;
3058           }
3059
3060         default:
3061           goto unknown;
3062       }
3063
3064     case 11: /* 8 tokens of length 11 */
3065       switch (name[0])
3066       {
3067         case '_':
3068           if (name[1] == '_' &&
3069               name[2] == 'P' &&
3070               name[3] == 'A' &&
3071               name[4] == 'C' &&
3072               name[5] == 'K' &&
3073               name[6] == 'A' &&
3074               name[7] == 'G' &&
3075               name[8] == 'E' &&
3076               name[9] == '_' &&
3077               name[10] == '_')
3078           {                                       /* __PACKAGE__      */
3079             return -KEY___PACKAGE__;
3080           }
3081
3082           goto unknown;
3083
3084         case 'e':
3085           if (name[1] == 'n' &&
3086               name[2] == 'd' &&
3087               name[3] == 'p' &&
3088               name[4] == 'r' &&
3089               name[5] == 'o' &&
3090               name[6] == 't' &&
3091               name[7] == 'o' &&
3092               name[8] == 'e' &&
3093               name[9] == 'n' &&
3094               name[10] == 't')
3095           {                                       /* endprotoent      */
3096             return -KEY_endprotoent;
3097           }
3098
3099           goto unknown;
3100
3101         case 'g':
3102           if (name[1] == 'e' &&
3103               name[2] == 't')
3104           {
3105             switch (name[3])
3106             {
3107               case 'p':
3108                 switch (name[4])
3109                 {
3110                   case 'e':
3111                     if (name[5] == 'e' &&
3112                         name[6] == 'r' &&
3113                         name[7] == 'n' &&
3114                         name[8] == 'a' &&
3115                         name[9] == 'm' &&
3116                         name[10] == 'e')
3117                     {                             /* getpeername      */
3118                       return -KEY_getpeername;
3119                     }
3120
3121                     goto unknown;
3122
3123                   case 'r':
3124                     switch (name[5])
3125                     {
3126                       case 'i':
3127                         if (name[6] == 'o' &&
3128                             name[7] == 'r' &&
3129                             name[8] == 'i' &&
3130                             name[9] == 't' &&
3131                             name[10] == 'y')
3132                         {                         /* getpriority      */
3133                           return -KEY_getpriority;
3134                         }
3135
3136                         goto unknown;
3137
3138                       case 'o':
3139                         if (name[6] == 't' &&
3140                             name[7] == 'o' &&
3141                             name[8] == 'e' &&
3142                             name[9] == 'n' &&
3143                             name[10] == 't')
3144                         {                         /* getprotoent      */
3145                           return -KEY_getprotoent;
3146                         }
3147
3148                         goto unknown;
3149
3150                       default:
3151                         goto unknown;
3152                     }
3153
3154                   default:
3155                     goto unknown;
3156                 }
3157
3158               case 's':
3159                 if (name[4] == 'o' &&
3160                     name[5] == 'c' &&
3161                     name[6] == 'k' &&
3162                     name[7] == 'n' &&
3163                     name[8] == 'a' &&
3164                     name[9] == 'm' &&
3165                     name[10] == 'e')
3166                 {                                 /* getsockname      */
3167                   return -KEY_getsockname;
3168                 }
3169
3170                 goto unknown;
3171
3172               default:
3173                 goto unknown;
3174             }
3175           }
3176
3177           goto unknown;
3178
3179         case 's':
3180           if (name[1] == 'e' &&
3181               name[2] == 't' &&
3182               name[3] == 'p' &&
3183               name[4] == 'r')
3184           {
3185             switch (name[5])
3186             {
3187               case 'i':
3188                 if (name[6] == 'o' &&
3189                     name[7] == 'r' &&
3190                     name[8] == 'i' &&
3191                     name[9] == 't' &&
3192                     name[10] == 'y')
3193                 {                                 /* setpriority      */
3194                   return -KEY_setpriority;
3195                 }
3196
3197                 goto unknown;
3198
3199               case 'o':
3200                 if (name[6] == 't' &&
3201                     name[7] == 'o' &&
3202                     name[8] == 'e' &&
3203                     name[9] == 'n' &&
3204                     name[10] == 't')
3205                 {                                 /* setprotoent      */
3206                   return -KEY_setprotoent;
3207                 }
3208
3209                 goto unknown;
3210
3211               default:
3212                 goto unknown;
3213             }
3214           }
3215
3216           goto unknown;
3217
3218         default:
3219           goto unknown;
3220       }
3221
3222     case 12: /* 2 tokens of length 12 */
3223       if (name[0] == 'g' &&
3224           name[1] == 'e' &&
3225           name[2] == 't' &&
3226           name[3] == 'n' &&
3227           name[4] == 'e' &&
3228           name[5] == 't' &&
3229           name[6] == 'b' &&
3230           name[7] == 'y')
3231       {
3232         switch (name[8])
3233         {
3234           case 'a':
3235             if (name[9] == 'd' &&
3236                 name[10] == 'd' &&
3237                 name[11] == 'r')
3238             {                                     /* getnetbyaddr     */
3239               return -KEY_getnetbyaddr;
3240             }
3241
3242             goto unknown;
3243
3244           case 'n':
3245             if (name[9] == 'a' &&
3246                 name[10] == 'm' &&
3247                 name[11] == 'e')
3248             {                                     /* getnetbyname     */
3249               return -KEY_getnetbyname;
3250             }
3251
3252             goto unknown;
3253
3254           default:
3255             goto unknown;
3256         }
3257       }
3258
3259       goto unknown;
3260
3261     case 13: /* 4 tokens of length 13 */
3262       if (name[0] == 'g' &&
3263           name[1] == 'e' &&
3264           name[2] == 't')
3265       {
3266         switch (name[3])
3267         {
3268           case 'h':
3269             if (name[4] == 'o' &&
3270                 name[5] == 's' &&
3271                 name[6] == 't' &&
3272                 name[7] == 'b' &&
3273                 name[8] == 'y')
3274             {
3275               switch (name[9])
3276               {
3277                 case 'a':
3278                   if (name[10] == 'd' &&
3279                       name[11] == 'd' &&
3280                       name[12] == 'r')
3281                   {                               /* gethostbyaddr    */
3282                     return -KEY_gethostbyaddr;
3283                   }
3284
3285                   goto unknown;
3286
3287                 case 'n':
3288                   if (name[10] == 'a' &&
3289                       name[11] == 'm' &&
3290                       name[12] == 'e')
3291                   {                               /* gethostbyname    */
3292                     return -KEY_gethostbyname;
3293                   }
3294
3295                   goto unknown;
3296
3297                 default:
3298                   goto unknown;
3299               }
3300             }
3301
3302             goto unknown;
3303
3304           case 's':
3305             if (name[4] == 'e' &&
3306                 name[5] == 'r' &&
3307                 name[6] == 'v' &&
3308                 name[7] == 'b' &&
3309                 name[8] == 'y')
3310             {
3311               switch (name[9])
3312               {
3313                 case 'n':
3314                   if (name[10] == 'a' &&
3315                       name[11] == 'm' &&
3316                       name[12] == 'e')
3317                   {                               /* getservbyname    */
3318                     return -KEY_getservbyname;
3319                   }
3320
3321                   goto unknown;
3322
3323                 case 'p':
3324                   if (name[10] == 'o' &&
3325                       name[11] == 'r' &&
3326                       name[12] == 't')
3327                   {                               /* getservbyport    */
3328                     return -KEY_getservbyport;
3329                   }
3330
3331                   goto unknown;
3332
3333                 default:
3334                   goto unknown;
3335               }
3336             }
3337
3338             goto unknown;
3339
3340           default:
3341             goto unknown;
3342         }
3343       }
3344
3345       goto unknown;
3346
3347     case 14: /* 1 tokens of length 14 */
3348       if (name[0] == 'g' &&
3349           name[1] == 'e' &&
3350           name[2] == 't' &&
3351           name[3] == 'p' &&
3352           name[4] == 'r' &&
3353           name[5] == 'o' &&
3354           name[6] == 't' &&
3355           name[7] == 'o' &&
3356           name[8] == 'b' &&
3357           name[9] == 'y' &&
3358           name[10] == 'n' &&
3359           name[11] == 'a' &&
3360           name[12] == 'm' &&
3361           name[13] == 'e')
3362       {                                           /* getprotobyname   */
3363         return -KEY_getprotobyname;
3364       }
3365
3366       goto unknown;
3367
3368     case 16: /* 1 tokens of length 16 */
3369       if (name[0] == 'g' &&
3370           name[1] == 'e' &&
3371           name[2] == 't' &&
3372           name[3] == 'p' &&
3373           name[4] == 'r' &&
3374           name[5] == 'o' &&
3375           name[6] == 't' &&
3376           name[7] == 'o' &&
3377           name[8] == 'b' &&
3378           name[9] == 'y' &&
3379           name[10] == 'n' &&
3380           name[11] == 'u' &&
3381           name[12] == 'm' &&
3382           name[13] == 'b' &&
3383           name[14] == 'e' &&
3384           name[15] == 'r')
3385       {                                           /* getprotobynumber */
3386         return -KEY_getprotobynumber;
3387       }
3388
3389       goto unknown;
3390
3391     default:
3392       goto unknown;
3393   }
3394
3395 unknown:
3396   return 0;
3397 }