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