This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix bug in script runs that start with Common
[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: /* 30 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               {
2000                 switch (name[3])
2001                 {
2002                   case 'a':
2003                     if (name[4] == 'u' &&
2004                         name[5] == 'l' &&
2005                         name[6] == 't')
2006                     {                             /* default          */
2007                       return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_default : 0);
2008                     }
2009
2010                     goto unknown;
2011
2012                   case 'i':
2013                     if (name[4] == 'n' &&
2014                         name[5] == 'e' &&
2015                         name[6] == 'd')
2016                     {                             /* defined          */
2017                       return KEY_defined;
2018                     }
2019
2020                     goto unknown;
2021
2022                   default:
2023                     goto unknown;
2024                 }
2025               }
2026
2027               goto unknown;
2028
2029             default:
2030               goto unknown;
2031           }
2032
2033         case 'f':
2034           if (name[1] == 'o' &&
2035               name[2] == 'r' &&
2036               name[3] == 'e' &&
2037               name[4] == 'a' &&
2038               name[5] == 'c' &&
2039               name[6] == 'h')
2040           {                                       /* foreach          */
2041             return KEY_foreach;
2042           }
2043
2044           goto unknown;
2045
2046         case 'g':
2047           if (name[1] == 'e' &&
2048               name[2] == 't' &&
2049               name[3] == 'p')
2050           {
2051             switch (name[4])
2052             {
2053               case 'g':
2054                 if (name[5] == 'r' &&
2055                     name[6] == 'p')
2056                 {                                 /* getpgrp          */
2057                   return -KEY_getpgrp;
2058                 }
2059
2060                 goto unknown;
2061
2062               case 'p':
2063                 if (name[5] == 'i' &&
2064                     name[6] == 'd')
2065                 {                                 /* getppid          */
2066                   return -KEY_getppid;
2067                 }
2068
2069                 goto unknown;
2070
2071               default:
2072                 goto unknown;
2073             }
2074           }
2075
2076           goto unknown;
2077
2078         case 'l':
2079           if (name[1] == 'c' &&
2080               name[2] == 'f' &&
2081               name[3] == 'i' &&
2082               name[4] == 'r' &&
2083               name[5] == 's' &&
2084               name[6] == 't')
2085           {                                       /* lcfirst          */
2086             return -KEY_lcfirst;
2087           }
2088
2089           goto unknown;
2090
2091         case 'o':
2092           if (name[1] == 'p' &&
2093               name[2] == 'e' &&
2094               name[3] == 'n' &&
2095               name[4] == 'd' &&
2096               name[5] == 'i' &&
2097               name[6] == 'r')
2098           {                                       /* opendir          */
2099             return -KEY_opendir;
2100           }
2101
2102           goto unknown;
2103
2104         case 'p':
2105           if (name[1] == 'a' &&
2106               name[2] == 'c' &&
2107               name[3] == 'k' &&
2108               name[4] == 'a' &&
2109               name[5] == 'g' &&
2110               name[6] == 'e')
2111           {                                       /* package          */
2112             return KEY_package;
2113           }
2114
2115           goto unknown;
2116
2117         case 'r':
2118           if (name[1] == 'e')
2119           {
2120             switch (name[2])
2121             {
2122               case 'a':
2123                 if (name[3] == 'd' &&
2124                     name[4] == 'd' &&
2125                     name[5] == 'i' &&
2126                     name[6] == 'r')
2127                 {                                 /* readdir          */
2128                   return -KEY_readdir;
2129                 }
2130
2131                 goto unknown;
2132
2133               case 'q':
2134                 if (name[3] == 'u' &&
2135                     name[4] == 'i' &&
2136                     name[5] == 'r' &&
2137                     name[6] == 'e')
2138                 {                                 /* require          */
2139                   return KEY_require;
2140                 }
2141
2142                 goto unknown;
2143
2144               case 'v':
2145                 if (name[3] == 'e' &&
2146                     name[4] == 'r' &&
2147                     name[5] == 's' &&
2148                     name[6] == 'e')
2149                 {                                 /* reverse          */
2150                   return -KEY_reverse;
2151                 }
2152
2153                 goto unknown;
2154
2155               default:
2156                 goto unknown;
2157             }
2158           }
2159
2160           goto unknown;
2161
2162         case 's':
2163           switch (name[1])
2164           {
2165             case 'e':
2166               switch (name[2])
2167               {
2168                 case 'e':
2169                   if (name[3] == 'k' &&
2170                       name[4] == 'd' &&
2171                       name[5] == 'i' &&
2172                       name[6] == 'r')
2173                   {                               /* seekdir          */
2174                     return -KEY_seekdir;
2175                   }
2176
2177                   goto unknown;
2178
2179                 case 't':
2180                   if (name[3] == 'p' &&
2181                       name[4] == 'g' &&
2182                       name[5] == 'r' &&
2183                       name[6] == 'p')
2184                   {                               /* setpgrp          */
2185                     return -KEY_setpgrp;
2186                   }
2187
2188                   goto unknown;
2189
2190                 default:
2191                   goto unknown;
2192               }
2193
2194             case 'h':
2195               if (name[2] == 'm' &&
2196                   name[3] == 'r' &&
2197                   name[4] == 'e' &&
2198                   name[5] == 'a' &&
2199                   name[6] == 'd')
2200               {                                   /* shmread          */
2201                 return -KEY_shmread;
2202               }
2203
2204               goto unknown;
2205
2206             case 'p':
2207               if (name[2] == 'r' &&
2208                   name[3] == 'i' &&
2209                   name[4] == 'n' &&
2210                   name[5] == 't' &&
2211                   name[6] == 'f')
2212               {                                   /* sprintf          */
2213                 return -KEY_sprintf;
2214               }
2215
2216               goto unknown;
2217
2218             case 'y':
2219               switch (name[2])
2220               {
2221                 case 'm':
2222                   if (name[3] == 'l' &&
2223                       name[4] == 'i' &&
2224                       name[5] == 'n' &&
2225                       name[6] == 'k')
2226                   {                               /* symlink          */
2227                     return -KEY_symlink;
2228                   }
2229
2230                   goto unknown;
2231
2232                 case 's':
2233                   switch (name[3])
2234                   {
2235                     case 'c':
2236                       if (name[4] == 'a' &&
2237                           name[5] == 'l' &&
2238                           name[6] == 'l')
2239                       {                           /* syscall          */
2240                         return -KEY_syscall;
2241                       }
2242
2243                       goto unknown;
2244
2245                     case 'o':
2246                       if (name[4] == 'p' &&
2247                           name[5] == 'e' &&
2248                           name[6] == 'n')
2249                       {                           /* sysopen          */
2250                         return -KEY_sysopen;
2251                       }
2252
2253                       goto unknown;
2254
2255                     case 'r':
2256                       if (name[4] == 'e' &&
2257                           name[5] == 'a' &&
2258                           name[6] == 'd')
2259                       {                           /* sysread          */
2260                         return -KEY_sysread;
2261                       }
2262
2263                       goto unknown;
2264
2265                     case 's':
2266                       if (name[4] == 'e' &&
2267                           name[5] == 'e' &&
2268                           name[6] == 'k')
2269                       {                           /* sysseek          */
2270                         return -KEY_sysseek;
2271                       }
2272
2273                       goto unknown;
2274
2275                     default:
2276                       goto unknown;
2277                   }
2278
2279                 default:
2280                   goto unknown;
2281               }
2282
2283             default:
2284               goto unknown;
2285           }
2286
2287         case 't':
2288           if (name[1] == 'e' &&
2289               name[2] == 'l' &&
2290               name[3] == 'l' &&
2291               name[4] == 'd' &&
2292               name[5] == 'i' &&
2293               name[6] == 'r')
2294           {                                       /* telldir          */
2295             return -KEY_telldir;
2296           }
2297
2298           goto unknown;
2299
2300         case 'u':
2301           switch (name[1])
2302           {
2303             case 'c':
2304               if (name[2] == 'f' &&
2305                   name[3] == 'i' &&
2306                   name[4] == 'r' &&
2307                   name[5] == 's' &&
2308                   name[6] == 't')
2309               {                                   /* ucfirst          */
2310                 return -KEY_ucfirst;
2311               }
2312
2313               goto unknown;
2314
2315             case 'n':
2316               if (name[2] == 's' &&
2317                   name[3] == 'h' &&
2318                   name[4] == 'i' &&
2319                   name[5] == 'f' &&
2320                   name[6] == 't')
2321               {                                   /* unshift          */
2322                 return -KEY_unshift;
2323               }
2324
2325               goto unknown;
2326
2327             default:
2328               goto unknown;
2329           }
2330
2331         case 'w':
2332           if (name[1] == 'a' &&
2333               name[2] == 'i' &&
2334               name[3] == 't' &&
2335               name[4] == 'p' &&
2336               name[5] == 'i' &&
2337               name[6] == 'd')
2338           {                                       /* waitpid          */
2339             return -KEY_waitpid;
2340           }
2341
2342           goto unknown;
2343
2344         default:
2345           goto unknown;
2346       }
2347
2348     case 8: /* 26 tokens of length 8 */
2349       switch (name[0])
2350       {
2351         case 'A':
2352           if (name[1] == 'U' &&
2353               name[2] == 'T' &&
2354               name[3] == 'O' &&
2355               name[4] == 'L' &&
2356               name[5] == 'O' &&
2357               name[6] == 'A' &&
2358               name[7] == 'D')
2359           {                                       /* AUTOLOAD         */
2360             return KEY_AUTOLOAD;
2361           }
2362
2363           goto unknown;
2364
2365         case '_':
2366           if (name[1] == '_')
2367           {
2368             switch (name[2])
2369             {
2370               case 'D':
2371                 if (name[3] == 'A' &&
2372                     name[4] == 'T' &&
2373                     name[5] == 'A' &&
2374                     name[6] == '_' &&
2375                     name[7] == '_')
2376                 {                                 /* __DATA__         */
2377                   return KEY___DATA__;
2378                 }
2379
2380                 goto unknown;
2381
2382               case 'F':
2383                 if (name[3] == 'I' &&
2384                     name[4] == 'L' &&
2385                     name[5] == 'E' &&
2386                     name[6] == '_' &&
2387                     name[7] == '_')
2388                 {                                 /* __FILE__         */
2389                   return -KEY___FILE__;
2390                 }
2391
2392                 goto unknown;
2393
2394               case 'L':
2395                 if (name[3] == 'I' &&
2396                     name[4] == 'N' &&
2397                     name[5] == 'E' &&
2398                     name[6] == '_' &&
2399                     name[7] == '_')
2400                 {                                 /* __LINE__         */
2401                   return -KEY___LINE__;
2402                 }
2403
2404                 goto unknown;
2405
2406               default:
2407                 goto unknown;
2408             }
2409           }
2410
2411           goto unknown;
2412
2413         case 'c':
2414           switch (name[1])
2415           {
2416             case 'l':
2417               if (name[2] == 'o' &&
2418                   name[3] == 's' &&
2419                   name[4] == 'e' &&
2420                   name[5] == 'd' &&
2421                   name[6] == 'i' &&
2422                   name[7] == 'r')
2423               {                                   /* closedir         */
2424                 return -KEY_closedir;
2425               }
2426
2427               goto unknown;
2428
2429             case 'o':
2430               if (name[2] == 'n' &&
2431                   name[3] == 't' &&
2432                   name[4] == 'i' &&
2433                   name[5] == 'n' &&
2434                   name[6] == 'u' &&
2435                   name[7] == 'e')
2436               {                                   /* continue         */
2437                 return -KEY_continue;
2438               }
2439
2440               goto unknown;
2441
2442             default:
2443               goto unknown;
2444           }
2445
2446         case 'd':
2447           if (name[1] == 'b' &&
2448               name[2] == 'm' &&
2449               name[3] == 'c' &&
2450               name[4] == 'l' &&
2451               name[5] == 'o' &&
2452               name[6] == 's' &&
2453               name[7] == 'e')
2454           {                                       /* dbmclose         */
2455             return -KEY_dbmclose;
2456           }
2457
2458           goto unknown;
2459
2460         case 'e':
2461           if (name[1] == 'n' &&
2462               name[2] == 'd')
2463           {
2464             switch (name[3])
2465             {
2466               case 'g':
2467                 if (name[4] == 'r' &&
2468                     name[5] == 'e' &&
2469                     name[6] == 'n' &&
2470                     name[7] == 't')
2471                 {                                 /* endgrent         */
2472                   return -KEY_endgrent;
2473                 }
2474
2475                 goto unknown;
2476
2477               case 'p':
2478                 if (name[4] == 'w' &&
2479                     name[5] == 'e' &&
2480                     name[6] == 'n' &&
2481                     name[7] == 't')
2482                 {                                 /* endpwent         */
2483                   return -KEY_endpwent;
2484                 }
2485
2486                 goto unknown;
2487
2488               default:
2489                 goto unknown;
2490             }
2491           }
2492
2493           goto unknown;
2494
2495         case 'f':
2496           if (name[1] == 'o' &&
2497               name[2] == 'r' &&
2498               name[3] == 'm' &&
2499               name[4] == 'l' &&
2500               name[5] == 'i' &&
2501               name[6] == 'n' &&
2502               name[7] == 'e')
2503           {                                       /* formline         */
2504             return -KEY_formline;
2505           }
2506
2507           goto unknown;
2508
2509         case 'g':
2510           if (name[1] == 'e' &&
2511               name[2] == 't')
2512           {
2513             switch (name[3])
2514             {
2515               case 'g':
2516                 if (name[4] == 'r')
2517                 {
2518                   switch (name[5])
2519                   {
2520                     case 'e':
2521                       if (name[6] == 'n' &&
2522                           name[7] == 't')
2523                       {                           /* getgrent         */
2524                         return -KEY_getgrent;
2525                       }
2526
2527                       goto unknown;
2528
2529                     case 'g':
2530                       if (name[6] == 'i' &&
2531                           name[7] == 'd')
2532                       {                           /* getgrgid         */
2533                         return -KEY_getgrgid;
2534                       }
2535
2536                       goto unknown;
2537
2538                     case 'n':
2539                       if (name[6] == 'a' &&
2540                           name[7] == 'm')
2541                       {                           /* getgrnam         */
2542                         return -KEY_getgrnam;
2543                       }
2544
2545                       goto unknown;
2546
2547                     default:
2548                       goto unknown;
2549                   }
2550                 }
2551
2552                 goto unknown;
2553
2554               case 'l':
2555                 if (name[4] == 'o' &&
2556                     name[5] == 'g' &&
2557                     name[6] == 'i' &&
2558                     name[7] == 'n')
2559                 {                                 /* getlogin         */
2560                   return -KEY_getlogin;
2561                 }
2562
2563                 goto unknown;
2564
2565               case 'p':
2566                 if (name[4] == 'w')
2567                 {
2568                   switch (name[5])
2569                   {
2570                     case 'e':
2571                       if (name[6] == 'n' &&
2572                           name[7] == 't')
2573                       {                           /* getpwent         */
2574                         return -KEY_getpwent;
2575                       }
2576
2577                       goto unknown;
2578
2579                     case 'n':
2580                       if (name[6] == 'a' &&
2581                           name[7] == 'm')
2582                       {                           /* getpwnam         */
2583                         return -KEY_getpwnam;
2584                       }
2585
2586                       goto unknown;
2587
2588                     case 'u':
2589                       if (name[6] == 'i' &&
2590                           name[7] == 'd')
2591                       {                           /* getpwuid         */
2592                         return -KEY_getpwuid;
2593                       }
2594
2595                       goto unknown;
2596
2597                     default:
2598                       goto unknown;
2599                   }
2600                 }
2601
2602                 goto unknown;
2603
2604               default:
2605                 goto unknown;
2606             }
2607           }
2608
2609           goto unknown;
2610
2611         case 'r':
2612           if (name[1] == 'e' &&
2613               name[2] == 'a' &&
2614               name[3] == 'd')
2615           {
2616             switch (name[4])
2617             {
2618               case 'l':
2619                 if (name[5] == 'i' &&
2620                     name[6] == 'n')
2621                 {
2622                   switch (name[7])
2623                   {
2624                     case 'e':
2625                       {                           /* readline         */
2626                         return -KEY_readline;
2627                       }
2628
2629                     case 'k':
2630                       {                           /* readlink         */
2631                         return -KEY_readlink;
2632                       }
2633
2634                     default:
2635                       goto unknown;
2636                   }
2637                 }
2638
2639                 goto unknown;
2640
2641               case 'p':
2642                 if (name[5] == 'i' &&
2643                     name[6] == 'p' &&
2644                     name[7] == 'e')
2645                 {                                 /* readpipe         */
2646                   return -KEY_readpipe;
2647                 }
2648
2649                 goto unknown;
2650
2651               default:
2652                 goto unknown;
2653             }
2654           }
2655
2656           goto unknown;
2657
2658         case 's':
2659           switch (name[1])
2660           {
2661             case 'e':
2662               if (name[2] == 't')
2663               {
2664                 switch (name[3])
2665                 {
2666                   case 'g':
2667                     if (name[4] == 'r' &&
2668                         name[5] == 'e' &&
2669                         name[6] == 'n' &&
2670                         name[7] == 't')
2671                     {                             /* setgrent         */
2672                       return -KEY_setgrent;
2673                     }
2674
2675                     goto unknown;
2676
2677                   case 'p':
2678                     if (name[4] == 'w' &&
2679                         name[5] == 'e' &&
2680                         name[6] == 'n' &&
2681                         name[7] == 't')
2682                     {                             /* setpwent         */
2683                       return -KEY_setpwent;
2684                     }
2685
2686                     goto unknown;
2687
2688                   default:
2689                     goto unknown;
2690                 }
2691               }
2692
2693               goto unknown;
2694
2695             case 'h':
2696               switch (name[2])
2697               {
2698                 case 'm':
2699                   if (name[3] == 'w' &&
2700                       name[4] == 'r' &&
2701                       name[5] == 'i' &&
2702                       name[6] == 't' &&
2703                       name[7] == 'e')
2704                   {                               /* shmwrite         */
2705                     return -KEY_shmwrite;
2706                   }
2707
2708                   goto unknown;
2709
2710                 case 'u':
2711                   if (name[3] == 't' &&
2712                       name[4] == 'd' &&
2713                       name[5] == 'o' &&
2714                       name[6] == 'w' &&
2715                       name[7] == 'n')
2716                   {                               /* shutdown         */
2717                     return -KEY_shutdown;
2718                   }
2719
2720                   goto unknown;
2721
2722                 default:
2723                   goto unknown;
2724               }
2725
2726             case 'y':
2727               if (name[2] == 's' &&
2728                   name[3] == 'w' &&
2729                   name[4] == 'r' &&
2730                   name[5] == 'i' &&
2731                   name[6] == 't' &&
2732                   name[7] == 'e')
2733               {                                   /* syswrite         */
2734                 return -KEY_syswrite;
2735               }
2736
2737               goto unknown;
2738
2739             default:
2740               goto unknown;
2741           }
2742
2743         case 't':
2744           if (name[1] == 'r' &&
2745               name[2] == 'u' &&
2746               name[3] == 'n' &&
2747               name[4] == 'c' &&
2748               name[5] == 'a' &&
2749               name[6] == 't' &&
2750               name[7] == 'e')
2751           {                                       /* truncate         */
2752             return -KEY_truncate;
2753           }
2754
2755           goto unknown;
2756
2757         default:
2758           goto unknown;
2759       }
2760
2761     case 9: /* 10 tokens of length 9 */
2762       switch (name[0])
2763       {
2764         case 'U':
2765           if (name[1] == 'N' &&
2766               name[2] == 'I' &&
2767               name[3] == 'T' &&
2768               name[4] == 'C' &&
2769               name[5] == 'H' &&
2770               name[6] == 'E' &&
2771               name[7] == 'C' &&
2772               name[8] == 'K')
2773           {                                       /* UNITCHECK        */
2774             return KEY_UNITCHECK;
2775           }
2776
2777           goto unknown;
2778
2779         case 'e':
2780           switch (name[1])
2781           {
2782             case 'n':
2783               if (name[2] == 'd' &&
2784                   name[3] == 'n' &&
2785                   name[4] == 'e' &&
2786                   name[5] == 't' &&
2787                   name[6] == 'e' &&
2788                   name[7] == 'n' &&
2789                   name[8] == 't')
2790               {                                   /* endnetent        */
2791                 return -KEY_endnetent;
2792               }
2793
2794               goto unknown;
2795
2796             case 'v':
2797               if (name[2] == 'a' &&
2798                   name[3] == 'l' &&
2799                   name[4] == 'b' &&
2800                   name[5] == 'y' &&
2801                   name[6] == 't' &&
2802                   name[7] == 'e' &&
2803                   name[8] == 's')
2804               {                                   /* evalbytes        */
2805                 return (all_keywords || FEATURE_EVALBYTES_IS_ENABLED ? -KEY_evalbytes : 0);
2806               }
2807
2808               goto unknown;
2809
2810             default:
2811               goto unknown;
2812           }
2813
2814         case 'g':
2815           if (name[1] == 'e' &&
2816               name[2] == 't' &&
2817               name[3] == 'n' &&
2818               name[4] == 'e' &&
2819               name[5] == 't' &&
2820               name[6] == 'e' &&
2821               name[7] == 'n' &&
2822               name[8] == 't')
2823           {                                       /* getnetent        */
2824             return -KEY_getnetent;
2825           }
2826
2827           goto unknown;
2828
2829         case 'l':
2830           if (name[1] == 'o' &&
2831               name[2] == 'c' &&
2832               name[3] == 'a' &&
2833               name[4] == 'l' &&
2834               name[5] == 't' &&
2835               name[6] == 'i' &&
2836               name[7] == 'm' &&
2837               name[8] == 'e')
2838           {                                       /* localtime        */
2839             return -KEY_localtime;
2840           }
2841
2842           goto unknown;
2843
2844         case 'p':
2845           if (name[1] == 'r' &&
2846               name[2] == 'o' &&
2847               name[3] == 't' &&
2848               name[4] == 'o' &&
2849               name[5] == 't' &&
2850               name[6] == 'y' &&
2851               name[7] == 'p' &&
2852               name[8] == 'e')
2853           {                                       /* prototype        */
2854             return KEY_prototype;
2855           }
2856
2857           goto unknown;
2858
2859         case 'q':
2860           if (name[1] == 'u' &&
2861               name[2] == 'o' &&
2862               name[3] == 't' &&
2863               name[4] == 'e' &&
2864               name[5] == 'm' &&
2865               name[6] == 'e' &&
2866               name[7] == 't' &&
2867               name[8] == 'a')
2868           {                                       /* quotemeta        */
2869             return -KEY_quotemeta;
2870           }
2871
2872           goto unknown;
2873
2874         case 'r':
2875           if (name[1] == 'e' &&
2876               name[2] == 'w' &&
2877               name[3] == 'i' &&
2878               name[4] == 'n' &&
2879               name[5] == 'd' &&
2880               name[6] == 'd' &&
2881               name[7] == 'i' &&
2882               name[8] == 'r')
2883           {                                       /* rewinddir        */
2884             return -KEY_rewinddir;
2885           }
2886
2887           goto unknown;
2888
2889         case 's':
2890           if (name[1] == 'e' &&
2891               name[2] == 't' &&
2892               name[3] == 'n' &&
2893               name[4] == 'e' &&
2894               name[5] == 't' &&
2895               name[6] == 'e' &&
2896               name[7] == 'n' &&
2897               name[8] == 't')
2898           {                                       /* setnetent        */
2899             return -KEY_setnetent;
2900           }
2901
2902           goto unknown;
2903
2904         case 'w':
2905           if (name[1] == 'a' &&
2906               name[2] == 'n' &&
2907               name[3] == 't' &&
2908               name[4] == 'a' &&
2909               name[5] == 'r' &&
2910               name[6] == 'r' &&
2911               name[7] == 'a' &&
2912               name[8] == 'y')
2913           {                                       /* wantarray        */
2914             return -KEY_wantarray;
2915           }
2916
2917           goto unknown;
2918
2919         default:
2920           goto unknown;
2921       }
2922
2923     case 10: /* 9 tokens of length 10 */
2924       switch (name[0])
2925       {
2926         case 'e':
2927           if (name[1] == 'n' &&
2928               name[2] == 'd')
2929           {
2930             switch (name[3])
2931             {
2932               case 'h':
2933                 if (name[4] == 'o' &&
2934                     name[5] == 's' &&
2935                     name[6] == 't' &&
2936                     name[7] == 'e' &&
2937                     name[8] == 'n' &&
2938                     name[9] == 't')
2939                 {                                 /* endhostent       */
2940                   return -KEY_endhostent;
2941                 }
2942
2943                 goto unknown;
2944
2945               case 's':
2946                 if (name[4] == 'e' &&
2947                     name[5] == 'r' &&
2948                     name[6] == 'v' &&
2949                     name[7] == 'e' &&
2950                     name[8] == 'n' &&
2951                     name[9] == 't')
2952                 {                                 /* endservent       */
2953                   return -KEY_endservent;
2954                 }
2955
2956                 goto unknown;
2957
2958               default:
2959                 goto unknown;
2960             }
2961           }
2962
2963           goto unknown;
2964
2965         case 'g':
2966           if (name[1] == 'e' &&
2967               name[2] == 't')
2968           {
2969             switch (name[3])
2970             {
2971               case 'h':
2972                 if (name[4] == 'o' &&
2973                     name[5] == 's' &&
2974                     name[6] == 't' &&
2975                     name[7] == 'e' &&
2976                     name[8] == 'n' &&
2977                     name[9] == 't')
2978                 {                                 /* gethostent       */
2979                   return -KEY_gethostent;
2980                 }
2981
2982                 goto unknown;
2983
2984               case 's':
2985                 switch (name[4])
2986                 {
2987                   case 'e':
2988                     if (name[5] == 'r' &&
2989                         name[6] == 'v' &&
2990                         name[7] == 'e' &&
2991                         name[8] == 'n' &&
2992                         name[9] == 't')
2993                     {                             /* getservent       */
2994                       return -KEY_getservent;
2995                     }
2996
2997                     goto unknown;
2998
2999                   case 'o':
3000                     if (name[5] == 'c' &&
3001                         name[6] == 'k' &&
3002                         name[7] == 'o' &&
3003                         name[8] == 'p' &&
3004                         name[9] == 't')
3005                     {                             /* getsockopt       */
3006                       return -KEY_getsockopt;
3007                     }
3008
3009                     goto unknown;
3010
3011                   default:
3012                     goto unknown;
3013                 }
3014
3015               default:
3016                 goto unknown;
3017             }
3018           }
3019
3020           goto unknown;
3021
3022         case 's':
3023           switch (name[1])
3024           {
3025             case 'e':
3026               if (name[2] == 't')
3027               {
3028                 switch (name[3])
3029                 {
3030                   case 'h':
3031                     if (name[4] == 'o' &&
3032                         name[5] == 's' &&
3033                         name[6] == 't' &&
3034                         name[7] == 'e' &&
3035                         name[8] == 'n' &&
3036                         name[9] == 't')
3037                     {                             /* sethostent       */
3038                       return -KEY_sethostent;
3039                     }
3040
3041                     goto unknown;
3042
3043                   case 's':
3044                     switch (name[4])
3045                     {
3046                       case 'e':
3047                         if (name[5] == 'r' &&
3048                             name[6] == 'v' &&
3049                             name[7] == 'e' &&
3050                             name[8] == 'n' &&
3051                             name[9] == 't')
3052                         {                         /* setservent       */
3053                           return -KEY_setservent;
3054                         }
3055
3056                         goto unknown;
3057
3058                       case 'o':
3059                         if (name[5] == 'c' &&
3060                             name[6] == 'k' &&
3061                             name[7] == 'o' &&
3062                             name[8] == 'p' &&
3063                             name[9] == 't')
3064                         {                         /* setsockopt       */
3065                           return -KEY_setsockopt;
3066                         }
3067
3068                         goto unknown;
3069
3070                       default:
3071                         goto unknown;
3072                     }
3073
3074                   default:
3075                     goto unknown;
3076                 }
3077               }
3078
3079               goto unknown;
3080
3081             case 'o':
3082               if (name[2] == 'c' &&
3083                   name[3] == 'k' &&
3084                   name[4] == 'e' &&
3085                   name[5] == 't' &&
3086                   name[6] == 'p' &&
3087                   name[7] == 'a' &&
3088                   name[8] == 'i' &&
3089                   name[9] == 'r')
3090               {                                   /* socketpair       */
3091                 return -KEY_socketpair;
3092               }
3093
3094               goto unknown;
3095
3096             default:
3097               goto unknown;
3098           }
3099
3100         default:
3101           goto unknown;
3102       }
3103
3104     case 11: /* 8 tokens of length 11 */
3105       switch (name[0])
3106       {
3107         case '_':
3108           if (name[1] == '_' &&
3109               name[2] == 'P' &&
3110               name[3] == 'A' &&
3111               name[4] == 'C' &&
3112               name[5] == 'K' &&
3113               name[6] == 'A' &&
3114               name[7] == 'G' &&
3115               name[8] == 'E' &&
3116               name[9] == '_' &&
3117               name[10] == '_')
3118           {                                       /* __PACKAGE__      */
3119             return -KEY___PACKAGE__;
3120           }
3121
3122           goto unknown;
3123
3124         case 'e':
3125           if (name[1] == 'n' &&
3126               name[2] == 'd' &&
3127               name[3] == 'p' &&
3128               name[4] == 'r' &&
3129               name[5] == 'o' &&
3130               name[6] == 't' &&
3131               name[7] == 'o' &&
3132               name[8] == 'e' &&
3133               name[9] == 'n' &&
3134               name[10] == 't')
3135           {                                       /* endprotoent      */
3136             return -KEY_endprotoent;
3137           }
3138
3139           goto unknown;
3140
3141         case 'g':
3142           if (name[1] == 'e' &&
3143               name[2] == 't')
3144           {
3145             switch (name[3])
3146             {
3147               case 'p':
3148                 switch (name[4])
3149                 {
3150                   case 'e':
3151                     if (name[5] == 'e' &&
3152                         name[6] == 'r' &&
3153                         name[7] == 'n' &&
3154                         name[8] == 'a' &&
3155                         name[9] == 'm' &&
3156                         name[10] == 'e')
3157                     {                             /* getpeername      */
3158                       return -KEY_getpeername;
3159                     }
3160
3161                     goto unknown;
3162
3163                   case 'r':
3164                     switch (name[5])
3165                     {
3166                       case 'i':
3167                         if (name[6] == 'o' &&
3168                             name[7] == 'r' &&
3169                             name[8] == 'i' &&
3170                             name[9] == 't' &&
3171                             name[10] == 'y')
3172                         {                         /* getpriority      */
3173                           return -KEY_getpriority;
3174                         }
3175
3176                         goto unknown;
3177
3178                       case 'o':
3179                         if (name[6] == 't' &&
3180                             name[7] == 'o' &&
3181                             name[8] == 'e' &&
3182                             name[9] == 'n' &&
3183                             name[10] == 't')
3184                         {                         /* getprotoent      */
3185                           return -KEY_getprotoent;
3186                         }
3187
3188                         goto unknown;
3189
3190                       default:
3191                         goto unknown;
3192                     }
3193
3194                   default:
3195                     goto unknown;
3196                 }
3197
3198               case 's':
3199                 if (name[4] == 'o' &&
3200                     name[5] == 'c' &&
3201                     name[6] == 'k' &&
3202                     name[7] == 'n' &&
3203                     name[8] == 'a' &&
3204                     name[9] == 'm' &&
3205                     name[10] == 'e')
3206                 {                                 /* getsockname      */
3207                   return -KEY_getsockname;
3208                 }
3209
3210                 goto unknown;
3211
3212               default:
3213                 goto unknown;
3214             }
3215           }
3216
3217           goto unknown;
3218
3219         case 's':
3220           if (name[1] == 'e' &&
3221               name[2] == 't' &&
3222               name[3] == 'p' &&
3223               name[4] == 'r')
3224           {
3225             switch (name[5])
3226             {
3227               case 'i':
3228                 if (name[6] == 'o' &&
3229                     name[7] == 'r' &&
3230                     name[8] == 'i' &&
3231                     name[9] == 't' &&
3232                     name[10] == 'y')
3233                 {                                 /* setpriority      */
3234                   return -KEY_setpriority;
3235                 }
3236
3237                 goto unknown;
3238
3239               case 'o':
3240                 if (name[6] == 't' &&
3241                     name[7] == 'o' &&
3242                     name[8] == 'e' &&
3243                     name[9] == 'n' &&
3244                     name[10] == 't')
3245                 {                                 /* setprotoent      */
3246                   return -KEY_setprotoent;
3247                 }
3248
3249                 goto unknown;
3250
3251               default:
3252                 goto unknown;
3253             }
3254           }
3255
3256           goto unknown;
3257
3258         default:
3259           goto unknown;
3260       }
3261
3262     case 12: /* 2 tokens of length 12 */
3263       if (name[0] == 'g' &&
3264           name[1] == 'e' &&
3265           name[2] == 't' &&
3266           name[3] == 'n' &&
3267           name[4] == 'e' &&
3268           name[5] == 't' &&
3269           name[6] == 'b' &&
3270           name[7] == 'y')
3271       {
3272         switch (name[8])
3273         {
3274           case 'a':
3275             if (name[9] == 'd' &&
3276                 name[10] == 'd' &&
3277                 name[11] == 'r')
3278             {                                     /* getnetbyaddr     */
3279               return -KEY_getnetbyaddr;
3280             }
3281
3282             goto unknown;
3283
3284           case 'n':
3285             if (name[9] == 'a' &&
3286                 name[10] == 'm' &&
3287                 name[11] == 'e')
3288             {                                     /* getnetbyname     */
3289               return -KEY_getnetbyname;
3290             }
3291
3292             goto unknown;
3293
3294           default:
3295             goto unknown;
3296         }
3297       }
3298
3299       goto unknown;
3300
3301     case 13: /* 4 tokens of length 13 */
3302       if (name[0] == 'g' &&
3303           name[1] == 'e' &&
3304           name[2] == 't')
3305       {
3306         switch (name[3])
3307         {
3308           case 'h':
3309             if (name[4] == 'o' &&
3310                 name[5] == 's' &&
3311                 name[6] == 't' &&
3312                 name[7] == 'b' &&
3313                 name[8] == 'y')
3314             {
3315               switch (name[9])
3316               {
3317                 case 'a':
3318                   if (name[10] == 'd' &&
3319                       name[11] == 'd' &&
3320                       name[12] == 'r')
3321                   {                               /* gethostbyaddr    */
3322                     return -KEY_gethostbyaddr;
3323                   }
3324
3325                   goto unknown;
3326
3327                 case 'n':
3328                   if (name[10] == 'a' &&
3329                       name[11] == 'm' &&
3330                       name[12] == 'e')
3331                   {                               /* gethostbyname    */
3332                     return -KEY_gethostbyname;
3333                   }
3334
3335                   goto unknown;
3336
3337                 default:
3338                   goto unknown;
3339               }
3340             }
3341
3342             goto unknown;
3343
3344           case 's':
3345             if (name[4] == 'e' &&
3346                 name[5] == 'r' &&
3347                 name[6] == 'v' &&
3348                 name[7] == 'b' &&
3349                 name[8] == 'y')
3350             {
3351               switch (name[9])
3352               {
3353                 case 'n':
3354                   if (name[10] == 'a' &&
3355                       name[11] == 'm' &&
3356                       name[12] == 'e')
3357                   {                               /* getservbyname    */
3358                     return -KEY_getservbyname;
3359                   }
3360
3361                   goto unknown;
3362
3363                 case 'p':
3364                   if (name[10] == 'o' &&
3365                       name[11] == 'r' &&
3366                       name[12] == 't')
3367                   {                               /* getservbyport    */
3368                     return -KEY_getservbyport;
3369                   }
3370
3371                   goto unknown;
3372
3373                 default:
3374                   goto unknown;
3375               }
3376             }
3377
3378             goto unknown;
3379
3380           default:
3381             goto unknown;
3382         }
3383       }
3384
3385       goto unknown;
3386
3387     case 14: /* 1 tokens of length 14 */
3388       if (name[0] == 'g' &&
3389           name[1] == 'e' &&
3390           name[2] == 't' &&
3391           name[3] == 'p' &&
3392           name[4] == 'r' &&
3393           name[5] == 'o' &&
3394           name[6] == 't' &&
3395           name[7] == 'o' &&
3396           name[8] == 'b' &&
3397           name[9] == 'y' &&
3398           name[10] == 'n' &&
3399           name[11] == 'a' &&
3400           name[12] == 'm' &&
3401           name[13] == 'e')
3402       {                                           /* getprotobyname   */
3403         return -KEY_getprotobyname;
3404       }
3405
3406       goto unknown;
3407
3408     case 16: /* 1 tokens of length 16 */
3409       if (name[0] == 'g' &&
3410           name[1] == 'e' &&
3411           name[2] == 't' &&
3412           name[3] == 'p' &&
3413           name[4] == 'r' &&
3414           name[5] == 'o' &&
3415           name[6] == 't' &&
3416           name[7] == 'o' &&
3417           name[8] == 'b' &&
3418           name[9] == 'y' &&
3419           name[10] == 'n' &&
3420           name[11] == 'u' &&
3421           name[12] == 'm' &&
3422           name[13] == 'b' &&
3423           name[14] == 'e' &&
3424           name[15] == 'r')
3425       {                                           /* getprotobynumber */
3426         return -KEY_getprotobynumber;
3427       }
3428
3429       goto unknown;
3430
3431     default:
3432       goto unknown;
3433   }
3434
3435 unknown:
3436   return 0;
3437 }
3438
3439 /* Generated from:
3440  * db0472e0ad4f44bd0816cad799d63b60d1bbd7e11cef40ea15bf0d00f69669f6 regen/keywords.pl
3441  * ex: set ro: */