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