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