This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
win32/GNUmakefile: Remove -s option from compiler flags
[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: /* 40 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 'e':
1146           if (name[1] == 'l' &&
1147               name[2] == 's' &&
1148               name[3] == 'i' &&
1149               name[4] == 'f')
1150           {                                       /* elsif            */
1151             return KEY_elsif;
1152           }
1153
1154           goto unknown;
1155
1156         case 'f':
1157           switch (name[1])
1158           {
1159             case 'c':
1160               if (name[2] == 'n' &&
1161                   name[3] == 't' &&
1162                   name[4] == 'l')
1163               {                                   /* fcntl            */
1164                 return -KEY_fcntl;
1165               }
1166
1167               goto unknown;
1168
1169             case 'l':
1170               if (name[2] == 'o' &&
1171                   name[3] == 'c' &&
1172                   name[4] == 'k')
1173               {                                   /* flock            */
1174                 return -KEY_flock;
1175               }
1176
1177               goto unknown;
1178
1179             default:
1180               goto unknown;
1181           }
1182
1183         case 'g':
1184           if (name[1] == 'i' &&
1185               name[2] == 'v' &&
1186               name[3] == 'e' &&
1187               name[4] == 'n')
1188           {                                       /* given            */
1189             return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_given : 0);
1190           }
1191
1192           goto unknown;
1193
1194         case 'i':
1195           switch (name[1])
1196           {
1197             case 'n':
1198               if (name[2] == 'd' &&
1199                   name[3] == 'e' &&
1200                   name[4] == 'x')
1201               {                                   /* index            */
1202                 return -KEY_index;
1203               }
1204
1205               goto unknown;
1206
1207             case 'o':
1208               if (name[2] == 'c' &&
1209                   name[3] == 't' &&
1210                   name[4] == 'l')
1211               {                                   /* ioctl            */
1212                 return -KEY_ioctl;
1213               }
1214
1215               goto unknown;
1216
1217             default:
1218               goto unknown;
1219           }
1220
1221         case 'l':
1222           switch (name[1])
1223           {
1224             case 'o':
1225               if (name[2] == 'c' &&
1226                   name[3] == 'a' &&
1227                   name[4] == 'l')
1228               {                                   /* local            */
1229                 return KEY_local;
1230               }
1231
1232               goto unknown;
1233
1234             case 's':
1235               if (name[2] == 't' &&
1236                   name[3] == 'a' &&
1237                   name[4] == 't')
1238               {                                   /* lstat            */
1239                 return -KEY_lstat;
1240               }
1241
1242               goto unknown;
1243
1244             default:
1245               goto unknown;
1246           }
1247
1248         case 'm':
1249           if (name[1] == 'k' &&
1250               name[2] == 'd' &&
1251               name[3] == 'i' &&
1252               name[4] == 'r')
1253           {                                       /* mkdir            */
1254             return -KEY_mkdir;
1255           }
1256
1257           goto unknown;
1258
1259         case 'p':
1260           if (name[1] == 'r' &&
1261               name[2] == 'i' &&
1262               name[3] == 'n' &&
1263               name[4] == 't')
1264           {                                       /* print            */
1265             return KEY_print;
1266           }
1267
1268           goto unknown;
1269
1270         case 'r':
1271           switch (name[1])
1272           {
1273             case 'e':
1274               if (name[2] == 's' &&
1275                   name[3] == 'e' &&
1276                   name[4] == 't')
1277               {                                   /* reset            */
1278                 return -KEY_reset;
1279               }
1280
1281               goto unknown;
1282
1283             case 'm':
1284               if (name[2] == 'd' &&
1285                   name[3] == 'i' &&
1286                   name[4] == 'r')
1287               {                                   /* rmdir            */
1288                 return -KEY_rmdir;
1289               }
1290
1291               goto unknown;
1292
1293             default:
1294               goto unknown;
1295           }
1296
1297         case 's':
1298           switch (name[1])
1299           {
1300             case 'e':
1301               if (name[2] == 'm' &&
1302                   name[3] == 'o' &&
1303                   name[4] == 'p')
1304               {                                   /* semop            */
1305                 return -KEY_semop;
1306               }
1307
1308               goto unknown;
1309
1310             case 'h':
1311               if (name[2] == 'i' &&
1312                   name[3] == 'f' &&
1313                   name[4] == 't')
1314               {                                   /* shift            */
1315                 return -KEY_shift;
1316               }
1317
1318               goto unknown;
1319
1320             case 'l':
1321               if (name[2] == 'e' &&
1322                   name[3] == 'e' &&
1323                   name[4] == 'p')
1324               {                                   /* sleep            */
1325                 return -KEY_sleep;
1326               }
1327
1328               goto unknown;
1329
1330             case 'p':
1331               if (name[2] == 'l' &&
1332                   name[3] == 'i' &&
1333                   name[4] == 't')
1334               {                                   /* split            */
1335                 return KEY_split;
1336               }
1337
1338               goto unknown;
1339
1340             case 'r':
1341               if (name[2] == 'a' &&
1342                   name[3] == 'n' &&
1343                   name[4] == 'd')
1344               {                                   /* srand            */
1345                 return -KEY_srand;
1346               }
1347
1348               goto unknown;
1349
1350             case 't':
1351               switch (name[2])
1352               {
1353                 case 'a':
1354                   if (name[3] == 't' &&
1355                       name[4] == 'e')
1356                   {                               /* state            */
1357                     return (all_keywords || FEATURE_STATE_IS_ENABLED ? KEY_state : 0);
1358                   }
1359
1360                   goto unknown;
1361
1362                 case 'u':
1363                   if (name[3] == 'd' &&
1364                       name[4] == 'y')
1365                   {                               /* study            */
1366                     return KEY_study;
1367                   }
1368
1369                   goto unknown;
1370
1371                 default:
1372                   goto unknown;
1373               }
1374
1375             default:
1376               goto unknown;
1377           }
1378
1379         case 't':
1380           if (name[1] == 'i' &&
1381               name[2] == 'm' &&
1382               name[3] == 'e' &&
1383               name[4] == 's')
1384           {                                       /* times            */
1385             return -KEY_times;
1386           }
1387
1388           goto unknown;
1389
1390         case 'u':
1391           switch (name[1])
1392           {
1393             case 'm':
1394               if (name[2] == 'a' &&
1395                   name[3] == 's' &&
1396                   name[4] == 'k')
1397               {                                   /* umask            */
1398                 return -KEY_umask;
1399               }
1400
1401               goto unknown;
1402
1403             case 'n':
1404               switch (name[2])
1405               {
1406                 case 'd':
1407                   if (name[3] == 'e' &&
1408                       name[4] == 'f')
1409                   {                               /* undef            */
1410                     return KEY_undef;
1411                   }
1412
1413                   goto unknown;
1414
1415                 case 't':
1416                   if (name[3] == 'i')
1417                   {
1418                     switch (name[4])
1419                     {
1420                       case 'e':
1421                         {                         /* untie            */
1422                           return -KEY_untie;
1423                         }
1424
1425                       case 'l':
1426                         {                         /* until            */
1427                           return KEY_until;
1428                         }
1429
1430                       default:
1431                         goto unknown;
1432                     }
1433                   }
1434
1435                   goto unknown;
1436
1437                 default:
1438                   goto unknown;
1439               }
1440
1441             case 't':
1442               if (name[2] == 'i' &&
1443                   name[3] == 'm' &&
1444                   name[4] == 'e')
1445               {                                   /* utime            */
1446                 return -KEY_utime;
1447               }
1448
1449               goto unknown;
1450
1451             default:
1452               goto unknown;
1453           }
1454
1455         case 'w':
1456           switch (name[1])
1457           {
1458             case 'h':
1459               if (name[2] == 'i' &&
1460                   name[3] == 'l' &&
1461                   name[4] == 'e')
1462               {                                   /* while            */
1463                 return KEY_while;
1464               }
1465
1466               goto unknown;
1467
1468             case 'r':
1469               if (name[2] == 'i' &&
1470                   name[3] == 't' &&
1471                   name[4] == 'e')
1472               {                                   /* write            */
1473                 return -KEY_write;
1474               }
1475
1476               goto unknown;
1477
1478             default:
1479               goto unknown;
1480           }
1481
1482         default:
1483           goto unknown;
1484       }
1485
1486     case 6: /* 33 tokens of length 6 */
1487       switch (name[0])
1488       {
1489         case 'a':
1490           if (name[1] == 'c' &&
1491               name[2] == 'c' &&
1492               name[3] == 'e' &&
1493               name[4] == 'p' &&
1494               name[5] == 't')
1495           {                                       /* accept           */
1496             return -KEY_accept;
1497           }
1498
1499           goto unknown;
1500
1501         case 'c':
1502           switch (name[1])
1503           {
1504             case 'a':
1505               if (name[2] == 'l' &&
1506                   name[3] == 'l' &&
1507                   name[4] == 'e' &&
1508                   name[5] == 'r')
1509               {                                   /* caller           */
1510                 return -KEY_caller;
1511               }
1512
1513               goto unknown;
1514
1515             case 'h':
1516               if (name[2] == 'r' &&
1517                   name[3] == 'o' &&
1518                   name[4] == 'o' &&
1519                   name[5] == 't')
1520               {                                   /* chroot           */
1521                 return -KEY_chroot;
1522               }
1523
1524               goto unknown;
1525
1526             default:
1527               goto unknown;
1528           }
1529
1530         case 'd':
1531           if (name[1] == 'e' &&
1532               name[2] == 'l' &&
1533               name[3] == 'e' &&
1534               name[4] == 't' &&
1535               name[5] == 'e')
1536           {                                       /* delete           */
1537             return KEY_delete;
1538           }
1539
1540           goto unknown;
1541
1542         case 'e':
1543           switch (name[1])
1544           {
1545             case 'l':
1546               if (name[2] == 's' &&
1547                   name[3] == 'e' &&
1548                   name[4] == 'i' &&
1549                   name[5] == 'f')
1550               {                                   /* elseif           */
1551                 Perl_ck_warner_d(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif");
1552               }
1553
1554               goto unknown;
1555
1556             case 'x':
1557               if (name[2] == 'i' &&
1558                   name[3] == 's' &&
1559                   name[4] == 't' &&
1560                   name[5] == 's')
1561               {                                   /* exists           */
1562                 return KEY_exists;
1563               }
1564
1565               goto unknown;
1566
1567             default:
1568               goto unknown;
1569           }
1570
1571         case 'f':
1572           switch (name[1])
1573           {
1574             case 'i':
1575               if (name[2] == 'l' &&
1576                   name[3] == 'e' &&
1577                   name[4] == 'n' &&
1578                   name[5] == 'o')
1579               {                                   /* fileno           */
1580                 return -KEY_fileno;
1581               }
1582
1583               goto unknown;
1584
1585             case 'o':
1586               if (name[2] == 'r' &&
1587                   name[3] == 'm' &&
1588                   name[4] == 'a' &&
1589                   name[5] == 't')
1590               {                                   /* format           */
1591                 return KEY_format;
1592               }
1593
1594               goto unknown;
1595
1596             default:
1597               goto unknown;
1598           }
1599
1600         case 'g':
1601           if (name[1] == 'm' &&
1602               name[2] == 't' &&
1603               name[3] == 'i' &&
1604               name[4] == 'm' &&
1605               name[5] == 'e')
1606           {                                       /* gmtime           */
1607             return -KEY_gmtime;
1608           }
1609
1610           goto unknown;
1611
1612         case 'l':
1613           switch (name[1])
1614           {
1615             case 'e':
1616               if (name[2] == 'n' &&
1617                   name[3] == 'g' &&
1618                   name[4] == 't' &&
1619                   name[5] == 'h')
1620               {                                   /* length           */
1621                 return -KEY_length;
1622               }
1623
1624               goto unknown;
1625
1626             case 'i':
1627               if (name[2] == 's' &&
1628                   name[3] == 't' &&
1629                   name[4] == 'e' &&
1630                   name[5] == 'n')
1631               {                                   /* listen           */
1632                 return -KEY_listen;
1633               }
1634
1635               goto unknown;
1636
1637             default:
1638               goto unknown;
1639           }
1640
1641         case 'm':
1642           if (name[1] == 's' &&
1643               name[2] == 'g')
1644           {
1645             switch (name[3])
1646             {
1647               case 'c':
1648                 if (name[4] == 't' &&
1649                     name[5] == 'l')
1650                 {                                 /* msgctl           */
1651                   return -KEY_msgctl;
1652                 }
1653
1654                 goto unknown;
1655
1656               case 'g':
1657                 if (name[4] == 'e' &&
1658                     name[5] == 't')
1659                 {                                 /* msgget           */
1660                   return -KEY_msgget;
1661                 }
1662
1663                 goto unknown;
1664
1665               case 'r':
1666                 if (name[4] == 'c' &&
1667                     name[5] == 'v')
1668                 {                                 /* msgrcv           */
1669                   return -KEY_msgrcv;
1670                 }
1671
1672                 goto unknown;
1673
1674               case 's':
1675                 if (name[4] == 'n' &&
1676                     name[5] == 'd')
1677                 {                                 /* msgsnd           */
1678                   return -KEY_msgsnd;
1679                 }
1680
1681                 goto unknown;
1682
1683               default:
1684                 goto unknown;
1685             }
1686           }
1687
1688           goto unknown;
1689
1690         case 'p':
1691           if (name[1] == 'r' &&
1692               name[2] == 'i' &&
1693               name[3] == 'n' &&
1694               name[4] == 't' &&
1695               name[5] == 'f')
1696           {                                       /* printf           */
1697             return KEY_printf;
1698           }
1699
1700           goto unknown;
1701
1702         case 'r':
1703           switch (name[1])
1704           {
1705             case 'e':
1706               switch (name[2])
1707               {
1708                 case 'n':
1709                   if (name[3] == 'a' &&
1710                       name[4] == 'm' &&
1711                       name[5] == 'e')
1712                   {                               /* rename           */
1713                     return -KEY_rename;
1714                   }
1715
1716                   goto unknown;
1717
1718                 case 't':
1719                   if (name[3] == 'u' &&
1720                       name[4] == 'r' &&
1721                       name[5] == 'n')
1722                   {                               /* return           */
1723                     return KEY_return;
1724                   }
1725
1726                   goto unknown;
1727
1728                 default:
1729                   goto unknown;
1730               }
1731
1732             case 'i':
1733               if (name[2] == 'n' &&
1734                   name[3] == 'd' &&
1735                   name[4] == 'e' &&
1736                   name[5] == 'x')
1737               {                                   /* rindex           */
1738                 return -KEY_rindex;
1739               }
1740
1741               goto unknown;
1742
1743             default:
1744               goto unknown;
1745           }
1746
1747         case 's':
1748           switch (name[1])
1749           {
1750             case 'c':
1751               if (name[2] == 'a' &&
1752                   name[3] == 'l' &&
1753                   name[4] == 'a' &&
1754                   name[5] == 'r')
1755               {                                   /* scalar           */
1756                 return KEY_scalar;
1757               }
1758
1759               goto unknown;
1760
1761             case 'e':
1762               switch (name[2])
1763               {
1764                 case 'l':
1765                   if (name[3] == 'e' &&
1766                       name[4] == 'c' &&
1767                       name[5] == 't')
1768                   {                               /* select           */
1769                     return -KEY_select;
1770                   }
1771
1772                   goto unknown;
1773
1774                 case 'm':
1775                   switch (name[3])
1776                   {
1777                     case 'c':
1778                       if (name[4] == 't' &&
1779                           name[5] == 'l')
1780                       {                           /* semctl           */
1781                         return -KEY_semctl;
1782                       }
1783
1784                       goto unknown;
1785
1786                     case 'g':
1787                       if (name[4] == 'e' &&
1788                           name[5] == 't')
1789                       {                           /* semget           */
1790                         return -KEY_semget;
1791                       }
1792
1793                       goto unknown;
1794
1795                     default:
1796                       goto unknown;
1797                   }
1798
1799                 default:
1800                   goto unknown;
1801               }
1802
1803             case 'h':
1804               if (name[2] == 'm')
1805               {
1806                 switch (name[3])
1807                 {
1808                   case 'c':
1809                     if (name[4] == 't' &&
1810                         name[5] == 'l')
1811                     {                             /* shmctl           */
1812                       return -KEY_shmctl;
1813                     }
1814
1815                     goto unknown;
1816
1817                   case 'g':
1818                     if (name[4] == 'e' &&
1819                         name[5] == 't')
1820                     {                             /* shmget           */
1821                       return -KEY_shmget;
1822                     }
1823
1824                     goto unknown;
1825
1826                   default:
1827                     goto unknown;
1828                 }
1829               }
1830
1831               goto unknown;
1832
1833             case 'o':
1834               if (name[2] == 'c' &&
1835                   name[3] == 'k' &&
1836                   name[4] == 'e' &&
1837                   name[5] == 't')
1838               {                                   /* socket           */
1839                 return -KEY_socket;
1840               }
1841
1842               goto unknown;
1843
1844             case 'p':
1845               if (name[2] == 'l' &&
1846                   name[3] == 'i' &&
1847                   name[4] == 'c' &&
1848                   name[5] == 'e')
1849               {                                   /* splice           */
1850                 return -KEY_splice;
1851               }
1852
1853               goto unknown;
1854
1855             case 'u':
1856               if (name[2] == 'b' &&
1857                   name[3] == 's' &&
1858                   name[4] == 't' &&
1859                   name[5] == 'r')
1860               {                                   /* substr           */
1861                 return -KEY_substr;
1862               }
1863
1864               goto unknown;
1865
1866             case 'y':
1867               if (name[2] == 's' &&
1868                   name[3] == 't' &&
1869                   name[4] == 'e' &&
1870                   name[5] == 'm')
1871               {                                   /* system           */
1872                 return -KEY_system;
1873               }
1874
1875               goto unknown;
1876
1877             default:
1878               goto unknown;
1879           }
1880
1881         case 'u':
1882           if (name[1] == 'n')
1883           {
1884             switch (name[2])
1885             {
1886               case 'l':
1887                 switch (name[3])
1888                 {
1889                   case 'e':
1890                     if (name[4] == 's' &&
1891                         name[5] == 's')
1892                     {                             /* unless           */
1893                       return KEY_unless;
1894                     }
1895
1896                     goto unknown;
1897
1898                   case 'i':
1899                     if (name[4] == 'n' &&
1900                         name[5] == 'k')
1901                     {                             /* unlink           */
1902                       return -KEY_unlink;
1903                     }
1904
1905                     goto unknown;
1906
1907                   default:
1908                     goto unknown;
1909                 }
1910
1911               case 'p':
1912                 if (name[3] == 'a' &&
1913                     name[4] == 'c' &&
1914                     name[5] == 'k')
1915                 {                                 /* unpack           */
1916                   return -KEY_unpack;
1917                 }
1918
1919                 goto unknown;
1920
1921               default:
1922                 goto unknown;
1923             }
1924           }
1925
1926           goto unknown;
1927
1928         case 'v':
1929           if (name[1] == 'a' &&
1930               name[2] == 'l' &&
1931               name[3] == 'u' &&
1932               name[4] == 'e' &&
1933               name[5] == 's')
1934           {                                       /* values           */
1935             return -KEY_values;
1936           }
1937
1938           goto unknown;
1939
1940         default:
1941           goto unknown;
1942       }
1943
1944     case 7: /* 30 tokens of length 7 */
1945       switch (name[0])
1946       {
1947         case 'D':
1948           if (name[1] == 'E' &&
1949               name[2] == 'S' &&
1950               name[3] == 'T' &&
1951               name[4] == 'R' &&
1952               name[5] == 'O' &&
1953               name[6] == 'Y')
1954           {                                       /* DESTROY          */
1955             return KEY_DESTROY;
1956           }
1957
1958           goto unknown;
1959
1960         case '_':
1961           if (name[1] == '_')
1962           {
1963             switch (name[2])
1964             {
1965               case 'E':
1966                 if (name[3] == 'N' &&
1967                     name[4] == 'D' &&
1968                     name[5] == '_' &&
1969                     name[6] == '_')
1970                 {                                 /* __END__          */
1971                   return KEY___END__;
1972                 }
1973
1974                 goto unknown;
1975
1976               case 'S':
1977                 if (name[3] == 'U' &&
1978                     name[4] == 'B' &&
1979                     name[5] == '_' &&
1980                     name[6] == '_')
1981                 {                                 /* __SUB__          */
1982                   return (all_keywords || FEATURE___SUB___IS_ENABLED ? -KEY___SUB__ : 0);
1983                 }
1984
1985                 goto unknown;
1986
1987               default:
1988                 goto unknown;
1989             }
1990           }
1991
1992           goto unknown;
1993
1994         case 'b':
1995           if (name[1] == 'i' &&
1996               name[2] == 'n' &&
1997               name[3] == 'm' &&
1998               name[4] == 'o' &&
1999               name[5] == 'd' &&
2000               name[6] == 'e')
2001           {                                       /* binmode          */
2002             return -KEY_binmode;
2003           }
2004
2005           goto unknown;
2006
2007         case 'c':
2008           if (name[1] == 'o' &&
2009               name[2] == 'n' &&
2010               name[3] == 'n' &&
2011               name[4] == 'e' &&
2012               name[5] == 'c' &&
2013               name[6] == 't')
2014           {                                       /* connect          */
2015             return -KEY_connect;
2016           }
2017
2018           goto unknown;
2019
2020         case 'd':
2021           switch (name[1])
2022           {
2023             case 'b':
2024               if (name[2] == 'm' &&
2025                   name[3] == 'o' &&
2026                   name[4] == 'p' &&
2027                   name[5] == 'e' &&
2028                   name[6] == 'n')
2029               {                                   /* dbmopen          */
2030                 return -KEY_dbmopen;
2031               }
2032
2033               goto unknown;
2034
2035             case 'e':
2036               if (name[2] == 'f')
2037               {
2038                 switch (name[3])
2039                 {
2040                   case 'a':
2041                     if (name[4] == 'u' &&
2042                         name[5] == 'l' &&
2043                         name[6] == 't')
2044                     {                             /* default          */
2045                       return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_default : 0);
2046                     }
2047
2048                     goto unknown;
2049
2050                   case 'i':
2051                     if (name[4] == 'n' &&
2052                         name[5] == 'e' &&
2053                         name[6] == 'd')
2054                     {                             /* defined          */
2055                       return KEY_defined;
2056                     }
2057
2058                     goto unknown;
2059
2060                   default:
2061                     goto unknown;
2062                 }
2063               }
2064
2065               goto unknown;
2066
2067             default:
2068               goto unknown;
2069           }
2070
2071         case 'f':
2072           if (name[1] == 'o' &&
2073               name[2] == 'r' &&
2074               name[3] == 'e' &&
2075               name[4] == 'a' &&
2076               name[5] == 'c' &&
2077               name[6] == 'h')
2078           {                                       /* foreach          */
2079             return KEY_foreach;
2080           }
2081
2082           goto unknown;
2083
2084         case 'g':
2085           if (name[1] == 'e' &&
2086               name[2] == 't' &&
2087               name[3] == 'p')
2088           {
2089             switch (name[4])
2090             {
2091               case 'g':
2092                 if (name[5] == 'r' &&
2093                     name[6] == 'p')
2094                 {                                 /* getpgrp          */
2095                   return -KEY_getpgrp;
2096                 }
2097
2098                 goto unknown;
2099
2100               case 'p':
2101                 if (name[5] == 'i' &&
2102                     name[6] == 'd')
2103                 {                                 /* getppid          */
2104                   return -KEY_getppid;
2105                 }
2106
2107                 goto unknown;
2108
2109               default:
2110                 goto unknown;
2111             }
2112           }
2113
2114           goto unknown;
2115
2116         case 'l':
2117           if (name[1] == 'c' &&
2118               name[2] == 'f' &&
2119               name[3] == 'i' &&
2120               name[4] == 'r' &&
2121               name[5] == 's' &&
2122               name[6] == 't')
2123           {                                       /* lcfirst          */
2124             return -KEY_lcfirst;
2125           }
2126
2127           goto unknown;
2128
2129         case 'o':
2130           if (name[1] == 'p' &&
2131               name[2] == 'e' &&
2132               name[3] == 'n' &&
2133               name[4] == 'd' &&
2134               name[5] == 'i' &&
2135               name[6] == 'r')
2136           {                                       /* opendir          */
2137             return -KEY_opendir;
2138           }
2139
2140           goto unknown;
2141
2142         case 'p':
2143           if (name[1] == 'a' &&
2144               name[2] == 'c' &&
2145               name[3] == 'k' &&
2146               name[4] == 'a' &&
2147               name[5] == 'g' &&
2148               name[6] == 'e')
2149           {                                       /* package          */
2150             return KEY_package;
2151           }
2152
2153           goto unknown;
2154
2155         case 'r':
2156           if (name[1] == 'e')
2157           {
2158             switch (name[2])
2159             {
2160               case 'a':
2161                 if (name[3] == 'd' &&
2162                     name[4] == 'd' &&
2163                     name[5] == 'i' &&
2164                     name[6] == 'r')
2165                 {                                 /* readdir          */
2166                   return -KEY_readdir;
2167                 }
2168
2169                 goto unknown;
2170
2171               case 'q':
2172                 if (name[3] == 'u' &&
2173                     name[4] == 'i' &&
2174                     name[5] == 'r' &&
2175                     name[6] == 'e')
2176                 {                                 /* require          */
2177                   return KEY_require;
2178                 }
2179
2180                 goto unknown;
2181
2182               case 'v':
2183                 if (name[3] == 'e' &&
2184                     name[4] == 'r' &&
2185                     name[5] == 's' &&
2186                     name[6] == 'e')
2187                 {                                 /* reverse          */
2188                   return -KEY_reverse;
2189                 }
2190
2191                 goto unknown;
2192
2193               default:
2194                 goto unknown;
2195             }
2196           }
2197
2198           goto unknown;
2199
2200         case 's':
2201           switch (name[1])
2202           {
2203             case 'e':
2204               switch (name[2])
2205               {
2206                 case 'e':
2207                   if (name[3] == 'k' &&
2208                       name[4] == 'd' &&
2209                       name[5] == 'i' &&
2210                       name[6] == 'r')
2211                   {                               /* seekdir          */
2212                     return -KEY_seekdir;
2213                   }
2214
2215                   goto unknown;
2216
2217                 case 't':
2218                   if (name[3] == 'p' &&
2219                       name[4] == 'g' &&
2220                       name[5] == 'r' &&
2221                       name[6] == 'p')
2222                   {                               /* setpgrp          */
2223                     return -KEY_setpgrp;
2224                   }
2225
2226                   goto unknown;
2227
2228                 default:
2229                   goto unknown;
2230               }
2231
2232             case 'h':
2233               if (name[2] == 'm' &&
2234                   name[3] == 'r' &&
2235                   name[4] == 'e' &&
2236                   name[5] == 'a' &&
2237                   name[6] == 'd')
2238               {                                   /* shmread          */
2239                 return -KEY_shmread;
2240               }
2241
2242               goto unknown;
2243
2244             case 'p':
2245               if (name[2] == 'r' &&
2246                   name[3] == 'i' &&
2247                   name[4] == 'n' &&
2248                   name[5] == 't' &&
2249                   name[6] == 'f')
2250               {                                   /* sprintf          */
2251                 return -KEY_sprintf;
2252               }
2253
2254               goto unknown;
2255
2256             case 'y':
2257               switch (name[2])
2258               {
2259                 case 'm':
2260                   if (name[3] == 'l' &&
2261                       name[4] == 'i' &&
2262                       name[5] == 'n' &&
2263                       name[6] == 'k')
2264                   {                               /* symlink          */
2265                     return -KEY_symlink;
2266                   }
2267
2268                   goto unknown;
2269
2270                 case 's':
2271                   switch (name[3])
2272                   {
2273                     case 'c':
2274                       if (name[4] == 'a' &&
2275                           name[5] == 'l' &&
2276                           name[6] == 'l')
2277                       {                           /* syscall          */
2278                         return -KEY_syscall;
2279                       }
2280
2281                       goto unknown;
2282
2283                     case 'o':
2284                       if (name[4] == 'p' &&
2285                           name[5] == 'e' &&
2286                           name[6] == 'n')
2287                       {                           /* sysopen          */
2288                         return -KEY_sysopen;
2289                       }
2290
2291                       goto unknown;
2292
2293                     case 'r':
2294                       if (name[4] == 'e' &&
2295                           name[5] == 'a' &&
2296                           name[6] == 'd')
2297                       {                           /* sysread          */
2298                         return -KEY_sysread;
2299                       }
2300
2301                       goto unknown;
2302
2303                     case 's':
2304                       if (name[4] == 'e' &&
2305                           name[5] == 'e' &&
2306                           name[6] == 'k')
2307                       {                           /* sysseek          */
2308                         return -KEY_sysseek;
2309                       }
2310
2311                       goto unknown;
2312
2313                     default:
2314                       goto unknown;
2315                   }
2316
2317                 default:
2318                   goto unknown;
2319               }
2320
2321             default:
2322               goto unknown;
2323           }
2324
2325         case 't':
2326           if (name[1] == 'e' &&
2327               name[2] == 'l' &&
2328               name[3] == 'l' &&
2329               name[4] == 'd' &&
2330               name[5] == 'i' &&
2331               name[6] == 'r')
2332           {                                       /* telldir          */
2333             return -KEY_telldir;
2334           }
2335
2336           goto unknown;
2337
2338         case 'u':
2339           switch (name[1])
2340           {
2341             case 'c':
2342               if (name[2] == 'f' &&
2343                   name[3] == 'i' &&
2344                   name[4] == 'r' &&
2345                   name[5] == 's' &&
2346                   name[6] == 't')
2347               {                                   /* ucfirst          */
2348                 return -KEY_ucfirst;
2349               }
2350
2351               goto unknown;
2352
2353             case 'n':
2354               if (name[2] == 's' &&
2355                   name[3] == 'h' &&
2356                   name[4] == 'i' &&
2357                   name[5] == 'f' &&
2358                   name[6] == 't')
2359               {                                   /* unshift          */
2360                 return -KEY_unshift;
2361               }
2362
2363               goto unknown;
2364
2365             default:
2366               goto unknown;
2367           }
2368
2369         case 'w':
2370           if (name[1] == 'a' &&
2371               name[2] == 'i' &&
2372               name[3] == 't' &&
2373               name[4] == 'p' &&
2374               name[5] == 'i' &&
2375               name[6] == 'd')
2376           {                                       /* waitpid          */
2377             return -KEY_waitpid;
2378           }
2379
2380           goto unknown;
2381
2382         default:
2383           goto unknown;
2384       }
2385
2386     case 8: /* 26 tokens of length 8 */
2387       switch (name[0])
2388       {
2389         case 'A':
2390           if (name[1] == 'U' &&
2391               name[2] == 'T' &&
2392               name[3] == 'O' &&
2393               name[4] == 'L' &&
2394               name[5] == 'O' &&
2395               name[6] == 'A' &&
2396               name[7] == 'D')
2397           {                                       /* AUTOLOAD         */
2398             return KEY_AUTOLOAD;
2399           }
2400
2401           goto unknown;
2402
2403         case '_':
2404           if (name[1] == '_')
2405           {
2406             switch (name[2])
2407             {
2408               case 'D':
2409                 if (name[3] == 'A' &&
2410                     name[4] == 'T' &&
2411                     name[5] == 'A' &&
2412                     name[6] == '_' &&
2413                     name[7] == '_')
2414                 {                                 /* __DATA__         */
2415                   return KEY___DATA__;
2416                 }
2417
2418                 goto unknown;
2419
2420               case 'F':
2421                 if (name[3] == 'I' &&
2422                     name[4] == 'L' &&
2423                     name[5] == 'E' &&
2424                     name[6] == '_' &&
2425                     name[7] == '_')
2426                 {                                 /* __FILE__         */
2427                   return -KEY___FILE__;
2428                 }
2429
2430                 goto unknown;
2431
2432               case 'L':
2433                 if (name[3] == 'I' &&
2434                     name[4] == 'N' &&
2435                     name[5] == 'E' &&
2436                     name[6] == '_' &&
2437                     name[7] == '_')
2438                 {                                 /* __LINE__         */
2439                   return -KEY___LINE__;
2440                 }
2441
2442                 goto unknown;
2443
2444               default:
2445                 goto unknown;
2446             }
2447           }
2448
2449           goto unknown;
2450
2451         case 'c':
2452           switch (name[1])
2453           {
2454             case 'l':
2455               if (name[2] == 'o' &&
2456                   name[3] == 's' &&
2457                   name[4] == 'e' &&
2458                   name[5] == 'd' &&
2459                   name[6] == 'i' &&
2460                   name[7] == 'r')
2461               {                                   /* closedir         */
2462                 return -KEY_closedir;
2463               }
2464
2465               goto unknown;
2466
2467             case 'o':
2468               if (name[2] == 'n' &&
2469                   name[3] == 't' &&
2470                   name[4] == 'i' &&
2471                   name[5] == 'n' &&
2472                   name[6] == 'u' &&
2473                   name[7] == 'e')
2474               {                                   /* continue         */
2475                 return -KEY_continue;
2476               }
2477
2478               goto unknown;
2479
2480             default:
2481               goto unknown;
2482           }
2483
2484         case 'd':
2485           if (name[1] == 'b' &&
2486               name[2] == 'm' &&
2487               name[3] == 'c' &&
2488               name[4] == 'l' &&
2489               name[5] == 'o' &&
2490               name[6] == 's' &&
2491               name[7] == 'e')
2492           {                                       /* dbmclose         */
2493             return -KEY_dbmclose;
2494           }
2495
2496           goto unknown;
2497
2498         case 'e':
2499           if (name[1] == 'n' &&
2500               name[2] == 'd')
2501           {
2502             switch (name[3])
2503             {
2504               case 'g':
2505                 if (name[4] == 'r' &&
2506                     name[5] == 'e' &&
2507                     name[6] == 'n' &&
2508                     name[7] == 't')
2509                 {                                 /* endgrent         */
2510                   return -KEY_endgrent;
2511                 }
2512
2513                 goto unknown;
2514
2515               case 'p':
2516                 if (name[4] == 'w' &&
2517                     name[5] == 'e' &&
2518                     name[6] == 'n' &&
2519                     name[7] == 't')
2520                 {                                 /* endpwent         */
2521                   return -KEY_endpwent;
2522                 }
2523
2524                 goto unknown;
2525
2526               default:
2527                 goto unknown;
2528             }
2529           }
2530
2531           goto unknown;
2532
2533         case 'f':
2534           if (name[1] == 'o' &&
2535               name[2] == 'r' &&
2536               name[3] == 'm' &&
2537               name[4] == 'l' &&
2538               name[5] == 'i' &&
2539               name[6] == 'n' &&
2540               name[7] == 'e')
2541           {                                       /* formline         */
2542             return -KEY_formline;
2543           }
2544
2545           goto unknown;
2546
2547         case 'g':
2548           if (name[1] == 'e' &&
2549               name[2] == 't')
2550           {
2551             switch (name[3])
2552             {
2553               case 'g':
2554                 if (name[4] == 'r')
2555                 {
2556                   switch (name[5])
2557                   {
2558                     case 'e':
2559                       if (name[6] == 'n' &&
2560                           name[7] == 't')
2561                       {                           /* getgrent         */
2562                         return -KEY_getgrent;
2563                       }
2564
2565                       goto unknown;
2566
2567                     case 'g':
2568                       if (name[6] == 'i' &&
2569                           name[7] == 'd')
2570                       {                           /* getgrgid         */
2571                         return -KEY_getgrgid;
2572                       }
2573
2574                       goto unknown;
2575
2576                     case 'n':
2577                       if (name[6] == 'a' &&
2578                           name[7] == 'm')
2579                       {                           /* getgrnam         */
2580                         return -KEY_getgrnam;
2581                       }
2582
2583                       goto unknown;
2584
2585                     default:
2586                       goto unknown;
2587                   }
2588                 }
2589
2590                 goto unknown;
2591
2592               case 'l':
2593                 if (name[4] == 'o' &&
2594                     name[5] == 'g' &&
2595                     name[6] == 'i' &&
2596                     name[7] == 'n')
2597                 {                                 /* getlogin         */
2598                   return -KEY_getlogin;
2599                 }
2600
2601                 goto unknown;
2602
2603               case 'p':
2604                 if (name[4] == 'w')
2605                 {
2606                   switch (name[5])
2607                   {
2608                     case 'e':
2609                       if (name[6] == 'n' &&
2610                           name[7] == 't')
2611                       {                           /* getpwent         */
2612                         return -KEY_getpwent;
2613                       }
2614
2615                       goto unknown;
2616
2617                     case 'n':
2618                       if (name[6] == 'a' &&
2619                           name[7] == 'm')
2620                       {                           /* getpwnam         */
2621                         return -KEY_getpwnam;
2622                       }
2623
2624                       goto unknown;
2625
2626                     case 'u':
2627                       if (name[6] == 'i' &&
2628                           name[7] == 'd')
2629                       {                           /* getpwuid         */
2630                         return -KEY_getpwuid;
2631                       }
2632
2633                       goto unknown;
2634
2635                     default:
2636                       goto unknown;
2637                   }
2638                 }
2639
2640                 goto unknown;
2641
2642               default:
2643                 goto unknown;
2644             }
2645           }
2646
2647           goto unknown;
2648
2649         case 'r':
2650           if (name[1] == 'e' &&
2651               name[2] == 'a' &&
2652               name[3] == 'd')
2653           {
2654             switch (name[4])
2655             {
2656               case 'l':
2657                 if (name[5] == 'i' &&
2658                     name[6] == 'n')
2659                 {
2660                   switch (name[7])
2661                   {
2662                     case 'e':
2663                       {                           /* readline         */
2664                         return -KEY_readline;
2665                       }
2666
2667                     case 'k':
2668                       {                           /* readlink         */
2669                         return -KEY_readlink;
2670                       }
2671
2672                     default:
2673                       goto unknown;
2674                   }
2675                 }
2676
2677                 goto unknown;
2678
2679               case 'p':
2680                 if (name[5] == 'i' &&
2681                     name[6] == 'p' &&
2682                     name[7] == 'e')
2683                 {                                 /* readpipe         */
2684                   return -KEY_readpipe;
2685                 }
2686
2687                 goto unknown;
2688
2689               default:
2690                 goto unknown;
2691             }
2692           }
2693
2694           goto unknown;
2695
2696         case 's':
2697           switch (name[1])
2698           {
2699             case 'e':
2700               if (name[2] == 't')
2701               {
2702                 switch (name[3])
2703                 {
2704                   case 'g':
2705                     if (name[4] == 'r' &&
2706                         name[5] == 'e' &&
2707                         name[6] == 'n' &&
2708                         name[7] == 't')
2709                     {                             /* setgrent         */
2710                       return -KEY_setgrent;
2711                     }
2712
2713                     goto unknown;
2714
2715                   case 'p':
2716                     if (name[4] == 'w' &&
2717                         name[5] == 'e' &&
2718                         name[6] == 'n' &&
2719                         name[7] == 't')
2720                     {                             /* setpwent         */
2721                       return -KEY_setpwent;
2722                     }
2723
2724                     goto unknown;
2725
2726                   default:
2727                     goto unknown;
2728                 }
2729               }
2730
2731               goto unknown;
2732
2733             case 'h':
2734               switch (name[2])
2735               {
2736                 case 'm':
2737                   if (name[3] == 'w' &&
2738                       name[4] == 'r' &&
2739                       name[5] == 'i' &&
2740                       name[6] == 't' &&
2741                       name[7] == 'e')
2742                   {                               /* shmwrite         */
2743                     return -KEY_shmwrite;
2744                   }
2745
2746                   goto unknown;
2747
2748                 case 'u':
2749                   if (name[3] == 't' &&
2750                       name[4] == 'd' &&
2751                       name[5] == 'o' &&
2752                       name[6] == 'w' &&
2753                       name[7] == 'n')
2754                   {                               /* shutdown         */
2755                     return -KEY_shutdown;
2756                   }
2757
2758                   goto unknown;
2759
2760                 default:
2761                   goto unknown;
2762               }
2763
2764             case 'y':
2765               if (name[2] == 's' &&
2766                   name[3] == 'w' &&
2767                   name[4] == 'r' &&
2768                   name[5] == 'i' &&
2769                   name[6] == 't' &&
2770                   name[7] == 'e')
2771               {                                   /* syswrite         */
2772                 return -KEY_syswrite;
2773               }
2774
2775               goto unknown;
2776
2777             default:
2778               goto unknown;
2779           }
2780
2781         case 't':
2782           if (name[1] == 'r' &&
2783               name[2] == 'u' &&
2784               name[3] == 'n' &&
2785               name[4] == 'c' &&
2786               name[5] == 'a' &&
2787               name[6] == 't' &&
2788               name[7] == 'e')
2789           {                                       /* truncate         */
2790             return -KEY_truncate;
2791           }
2792
2793           goto unknown;
2794
2795         default:
2796           goto unknown;
2797       }
2798
2799     case 9: /* 10 tokens of length 9 */
2800       switch (name[0])
2801       {
2802         case 'U':
2803           if (name[1] == 'N' &&
2804               name[2] == 'I' &&
2805               name[3] == 'T' &&
2806               name[4] == 'C' &&
2807               name[5] == 'H' &&
2808               name[6] == 'E' &&
2809               name[7] == 'C' &&
2810               name[8] == 'K')
2811           {                                       /* UNITCHECK        */
2812             return KEY_UNITCHECK;
2813           }
2814
2815           goto unknown;
2816
2817         case 'e':
2818           switch (name[1])
2819           {
2820             case 'n':
2821               if (name[2] == 'd' &&
2822                   name[3] == 'n' &&
2823                   name[4] == 'e' &&
2824                   name[5] == 't' &&
2825                   name[6] == 'e' &&
2826                   name[7] == 'n' &&
2827                   name[8] == 't')
2828               {                                   /* endnetent        */
2829                 return -KEY_endnetent;
2830               }
2831
2832               goto unknown;
2833
2834             case 'v':
2835               if (name[2] == 'a' &&
2836                   name[3] == 'l' &&
2837                   name[4] == 'b' &&
2838                   name[5] == 'y' &&
2839                   name[6] == 't' &&
2840                   name[7] == 'e' &&
2841                   name[8] == 's')
2842               {                                   /* evalbytes        */
2843                 return (all_keywords || FEATURE_EVALBYTES_IS_ENABLED ? -KEY_evalbytes : 0);
2844               }
2845
2846               goto unknown;
2847
2848             default:
2849               goto unknown;
2850           }
2851
2852         case 'g':
2853           if (name[1] == 'e' &&
2854               name[2] == 't' &&
2855               name[3] == 'n' &&
2856               name[4] == 'e' &&
2857               name[5] == 't' &&
2858               name[6] == 'e' &&
2859               name[7] == 'n' &&
2860               name[8] == 't')
2861           {                                       /* getnetent        */
2862             return -KEY_getnetent;
2863           }
2864
2865           goto unknown;
2866
2867         case 'l':
2868           if (name[1] == 'o' &&
2869               name[2] == 'c' &&
2870               name[3] == 'a' &&
2871               name[4] == 'l' &&
2872               name[5] == 't' &&
2873               name[6] == 'i' &&
2874               name[7] == 'm' &&
2875               name[8] == 'e')
2876           {                                       /* localtime        */
2877             return -KEY_localtime;
2878           }
2879
2880           goto unknown;
2881
2882         case 'p':
2883           if (name[1] == 'r' &&
2884               name[2] == 'o' &&
2885               name[3] == 't' &&
2886               name[4] == 'o' &&
2887               name[5] == 't' &&
2888               name[6] == 'y' &&
2889               name[7] == 'p' &&
2890               name[8] == 'e')
2891           {                                       /* prototype        */
2892             return KEY_prototype;
2893           }
2894
2895           goto unknown;
2896
2897         case 'q':
2898           if (name[1] == 'u' &&
2899               name[2] == 'o' &&
2900               name[3] == 't' &&
2901               name[4] == 'e' &&
2902               name[5] == 'm' &&
2903               name[6] == 'e' &&
2904               name[7] == 't' &&
2905               name[8] == 'a')
2906           {                                       /* quotemeta        */
2907             return -KEY_quotemeta;
2908           }
2909
2910           goto unknown;
2911
2912         case 'r':
2913           if (name[1] == 'e' &&
2914               name[2] == 'w' &&
2915               name[3] == 'i' &&
2916               name[4] == 'n' &&
2917               name[5] == 'd' &&
2918               name[6] == 'd' &&
2919               name[7] == 'i' &&
2920               name[8] == 'r')
2921           {                                       /* rewinddir        */
2922             return -KEY_rewinddir;
2923           }
2924
2925           goto unknown;
2926
2927         case 's':
2928           if (name[1] == 'e' &&
2929               name[2] == 't' &&
2930               name[3] == 'n' &&
2931               name[4] == 'e' &&
2932               name[5] == 't' &&
2933               name[6] == 'e' &&
2934               name[7] == 'n' &&
2935               name[8] == 't')
2936           {                                       /* setnetent        */
2937             return -KEY_setnetent;
2938           }
2939
2940           goto unknown;
2941
2942         case 'w':
2943           if (name[1] == 'a' &&
2944               name[2] == 'n' &&
2945               name[3] == 't' &&
2946               name[4] == 'a' &&
2947               name[5] == 'r' &&
2948               name[6] == 'r' &&
2949               name[7] == 'a' &&
2950               name[8] == 'y')
2951           {                                       /* wantarray        */
2952             return -KEY_wantarray;
2953           }
2954
2955           goto unknown;
2956
2957         default:
2958           goto unknown;
2959       }
2960
2961     case 10: /* 9 tokens of length 10 */
2962       switch (name[0])
2963       {
2964         case 'e':
2965           if (name[1] == 'n' &&
2966               name[2] == 'd')
2967           {
2968             switch (name[3])
2969             {
2970               case 'h':
2971                 if (name[4] == 'o' &&
2972                     name[5] == 's' &&
2973                     name[6] == 't' &&
2974                     name[7] == 'e' &&
2975                     name[8] == 'n' &&
2976                     name[9] == 't')
2977                 {                                 /* endhostent       */
2978                   return -KEY_endhostent;
2979                 }
2980
2981                 goto unknown;
2982
2983               case 's':
2984                 if (name[4] == 'e' &&
2985                     name[5] == 'r' &&
2986                     name[6] == 'v' &&
2987                     name[7] == 'e' &&
2988                     name[8] == 'n' &&
2989                     name[9] == 't')
2990                 {                                 /* endservent       */
2991                   return -KEY_endservent;
2992                 }
2993
2994                 goto unknown;
2995
2996               default:
2997                 goto unknown;
2998             }
2999           }
3000
3001           goto unknown;
3002
3003         case 'g':
3004           if (name[1] == 'e' &&
3005               name[2] == 't')
3006           {
3007             switch (name[3])
3008             {
3009               case 'h':
3010                 if (name[4] == 'o' &&
3011                     name[5] == 's' &&
3012                     name[6] == 't' &&
3013                     name[7] == 'e' &&
3014                     name[8] == 'n' &&
3015                     name[9] == 't')
3016                 {                                 /* gethostent       */
3017                   return -KEY_gethostent;
3018                 }
3019
3020                 goto unknown;
3021
3022               case 's':
3023                 switch (name[4])
3024                 {
3025                   case 'e':
3026                     if (name[5] == 'r' &&
3027                         name[6] == 'v' &&
3028                         name[7] == 'e' &&
3029                         name[8] == 'n' &&
3030                         name[9] == 't')
3031                     {                             /* getservent       */
3032                       return -KEY_getservent;
3033                     }
3034
3035                     goto unknown;
3036
3037                   case 'o':
3038                     if (name[5] == 'c' &&
3039                         name[6] == 'k' &&
3040                         name[7] == 'o' &&
3041                         name[8] == 'p' &&
3042                         name[9] == 't')
3043                     {                             /* getsockopt       */
3044                       return -KEY_getsockopt;
3045                     }
3046
3047                     goto unknown;
3048
3049                   default:
3050                     goto unknown;
3051                 }
3052
3053               default:
3054                 goto unknown;
3055             }
3056           }
3057
3058           goto unknown;
3059
3060         case 's':
3061           switch (name[1])
3062           {
3063             case 'e':
3064               if (name[2] == 't')
3065               {
3066                 switch (name[3])
3067                 {
3068                   case 'h':
3069                     if (name[4] == 'o' &&
3070                         name[5] == 's' &&
3071                         name[6] == 't' &&
3072                         name[7] == 'e' &&
3073                         name[8] == 'n' &&
3074                         name[9] == 't')
3075                     {                             /* sethostent       */
3076                       return -KEY_sethostent;
3077                     }
3078
3079                     goto unknown;
3080
3081                   case 's':
3082                     switch (name[4])
3083                     {
3084                       case 'e':
3085                         if (name[5] == 'r' &&
3086                             name[6] == 'v' &&
3087                             name[7] == 'e' &&
3088                             name[8] == 'n' &&
3089                             name[9] == 't')
3090                         {                         /* setservent       */
3091                           return -KEY_setservent;
3092                         }
3093
3094                         goto unknown;
3095
3096                       case 'o':
3097                         if (name[5] == 'c' &&
3098                             name[6] == 'k' &&
3099                             name[7] == 'o' &&
3100                             name[8] == 'p' &&
3101                             name[9] == 't')
3102                         {                         /* setsockopt       */
3103                           return -KEY_setsockopt;
3104                         }
3105
3106                         goto unknown;
3107
3108                       default:
3109                         goto unknown;
3110                     }
3111
3112                   default:
3113                     goto unknown;
3114                 }
3115               }
3116
3117               goto unknown;
3118
3119             case 'o':
3120               if (name[2] == 'c' &&
3121                   name[3] == 'k' &&
3122                   name[4] == 'e' &&
3123                   name[5] == 't' &&
3124                   name[6] == 'p' &&
3125                   name[7] == 'a' &&
3126                   name[8] == 'i' &&
3127                   name[9] == 'r')
3128               {                                   /* socketpair       */
3129                 return -KEY_socketpair;
3130               }
3131
3132               goto unknown;
3133
3134             default:
3135               goto unknown;
3136           }
3137
3138         default:
3139           goto unknown;
3140       }
3141
3142     case 11: /* 8 tokens of length 11 */
3143       switch (name[0])
3144       {
3145         case '_':
3146           if (name[1] == '_' &&
3147               name[2] == 'P' &&
3148               name[3] == 'A' &&
3149               name[4] == 'C' &&
3150               name[5] == 'K' &&
3151               name[6] == 'A' &&
3152               name[7] == 'G' &&
3153               name[8] == 'E' &&
3154               name[9] == '_' &&
3155               name[10] == '_')
3156           {                                       /* __PACKAGE__      */
3157             return -KEY___PACKAGE__;
3158           }
3159
3160           goto unknown;
3161
3162         case 'e':
3163           if (name[1] == 'n' &&
3164               name[2] == 'd' &&
3165               name[3] == 'p' &&
3166               name[4] == 'r' &&
3167               name[5] == 'o' &&
3168               name[6] == 't' &&
3169               name[7] == 'o' &&
3170               name[8] == 'e' &&
3171               name[9] == 'n' &&
3172               name[10] == 't')
3173           {                                       /* endprotoent      */
3174             return -KEY_endprotoent;
3175           }
3176
3177           goto unknown;
3178
3179         case 'g':
3180           if (name[1] == 'e' &&
3181               name[2] == 't')
3182           {
3183             switch (name[3])
3184             {
3185               case 'p':
3186                 switch (name[4])
3187                 {
3188                   case 'e':
3189                     if (name[5] == 'e' &&
3190                         name[6] == 'r' &&
3191                         name[7] == 'n' &&
3192                         name[8] == 'a' &&
3193                         name[9] == 'm' &&
3194                         name[10] == 'e')
3195                     {                             /* getpeername      */
3196                       return -KEY_getpeername;
3197                     }
3198
3199                     goto unknown;
3200
3201                   case 'r':
3202                     switch (name[5])
3203                     {
3204                       case 'i':
3205                         if (name[6] == 'o' &&
3206                             name[7] == 'r' &&
3207                             name[8] == 'i' &&
3208                             name[9] == 't' &&
3209                             name[10] == 'y')
3210                         {                         /* getpriority      */
3211                           return -KEY_getpriority;
3212                         }
3213
3214                         goto unknown;
3215
3216                       case 'o':
3217                         if (name[6] == 't' &&
3218                             name[7] == 'o' &&
3219                             name[8] == 'e' &&
3220                             name[9] == 'n' &&
3221                             name[10] == 't')
3222                         {                         /* getprotoent      */
3223                           return -KEY_getprotoent;
3224                         }
3225
3226                         goto unknown;
3227
3228                       default:
3229                         goto unknown;
3230                     }
3231
3232                   default:
3233                     goto unknown;
3234                 }
3235
3236               case 's':
3237                 if (name[4] == 'o' &&
3238                     name[5] == 'c' &&
3239                     name[6] == 'k' &&
3240                     name[7] == 'n' &&
3241                     name[8] == 'a' &&
3242                     name[9] == 'm' &&
3243                     name[10] == 'e')
3244                 {                                 /* getsockname      */
3245                   return -KEY_getsockname;
3246                 }
3247
3248                 goto unknown;
3249
3250               default:
3251                 goto unknown;
3252             }
3253           }
3254
3255           goto unknown;
3256
3257         case 's':
3258           if (name[1] == 'e' &&
3259               name[2] == 't' &&
3260               name[3] == 'p' &&
3261               name[4] == 'r')
3262           {
3263             switch (name[5])
3264             {
3265               case 'i':
3266                 if (name[6] == 'o' &&
3267                     name[7] == 'r' &&
3268                     name[8] == 'i' &&
3269                     name[9] == 't' &&
3270                     name[10] == 'y')
3271                 {                                 /* setpriority      */
3272                   return -KEY_setpriority;
3273                 }
3274
3275                 goto unknown;
3276
3277               case 'o':
3278                 if (name[6] == 't' &&
3279                     name[7] == 'o' &&
3280                     name[8] == 'e' &&
3281                     name[9] == 'n' &&
3282                     name[10] == 't')
3283                 {                                 /* setprotoent      */
3284                   return -KEY_setprotoent;
3285                 }
3286
3287                 goto unknown;
3288
3289               default:
3290                 goto unknown;
3291             }
3292           }
3293
3294           goto unknown;
3295
3296         default:
3297           goto unknown;
3298       }
3299
3300     case 12: /* 2 tokens of length 12 */
3301       if (name[0] == 'g' &&
3302           name[1] == 'e' &&
3303           name[2] == 't' &&
3304           name[3] == 'n' &&
3305           name[4] == 'e' &&
3306           name[5] == 't' &&
3307           name[6] == 'b' &&
3308           name[7] == 'y')
3309       {
3310         switch (name[8])
3311         {
3312           case 'a':
3313             if (name[9] == 'd' &&
3314                 name[10] == 'd' &&
3315                 name[11] == 'r')
3316             {                                     /* getnetbyaddr     */
3317               return -KEY_getnetbyaddr;
3318             }
3319
3320             goto unknown;
3321
3322           case 'n':
3323             if (name[9] == 'a' &&
3324                 name[10] == 'm' &&
3325                 name[11] == 'e')
3326             {                                     /* getnetbyname     */
3327               return -KEY_getnetbyname;
3328             }
3329
3330             goto unknown;
3331
3332           default:
3333             goto unknown;
3334         }
3335       }
3336
3337       goto unknown;
3338
3339     case 13: /* 4 tokens of length 13 */
3340       if (name[0] == 'g' &&
3341           name[1] == 'e' &&
3342           name[2] == 't')
3343       {
3344         switch (name[3])
3345         {
3346           case 'h':
3347             if (name[4] == 'o' &&
3348                 name[5] == 's' &&
3349                 name[6] == 't' &&
3350                 name[7] == 'b' &&
3351                 name[8] == 'y')
3352             {
3353               switch (name[9])
3354               {
3355                 case 'a':
3356                   if (name[10] == 'd' &&
3357                       name[11] == 'd' &&
3358                       name[12] == 'r')
3359                   {                               /* gethostbyaddr    */
3360                     return -KEY_gethostbyaddr;
3361                   }
3362
3363                   goto unknown;
3364
3365                 case 'n':
3366                   if (name[10] == 'a' &&
3367                       name[11] == 'm' &&
3368                       name[12] == 'e')
3369                   {                               /* gethostbyname    */
3370                     return -KEY_gethostbyname;
3371                   }
3372
3373                   goto unknown;
3374
3375                 default:
3376                   goto unknown;
3377               }
3378             }
3379
3380             goto unknown;
3381
3382           case 's':
3383             if (name[4] == 'e' &&
3384                 name[5] == 'r' &&
3385                 name[6] == 'v' &&
3386                 name[7] == 'b' &&
3387                 name[8] == 'y')
3388             {
3389               switch (name[9])
3390               {
3391                 case 'n':
3392                   if (name[10] == 'a' &&
3393                       name[11] == 'm' &&
3394                       name[12] == 'e')
3395                   {                               /* getservbyname    */
3396                     return -KEY_getservbyname;
3397                   }
3398
3399                   goto unknown;
3400
3401                 case 'p':
3402                   if (name[10] == 'o' &&
3403                       name[11] == 'r' &&
3404                       name[12] == 't')
3405                   {                               /* getservbyport    */
3406                     return -KEY_getservbyport;
3407                   }
3408
3409                   goto unknown;
3410
3411                 default:
3412                   goto unknown;
3413               }
3414             }
3415
3416             goto unknown;
3417
3418           default:
3419             goto unknown;
3420         }
3421       }
3422
3423       goto unknown;
3424
3425     case 14: /* 1 tokens of length 14 */
3426       if (name[0] == 'g' &&
3427           name[1] == 'e' &&
3428           name[2] == 't' &&
3429           name[3] == 'p' &&
3430           name[4] == 'r' &&
3431           name[5] == 'o' &&
3432           name[6] == 't' &&
3433           name[7] == 'o' &&
3434           name[8] == 'b' &&
3435           name[9] == 'y' &&
3436           name[10] == 'n' &&
3437           name[11] == 'a' &&
3438           name[12] == 'm' &&
3439           name[13] == 'e')
3440       {                                           /* getprotobyname   */
3441         return -KEY_getprotobyname;
3442       }
3443
3444       goto unknown;
3445
3446     case 16: /* 1 tokens of length 16 */
3447       if (name[0] == 'g' &&
3448           name[1] == 'e' &&
3449           name[2] == 't' &&
3450           name[3] == 'p' &&
3451           name[4] == 'r' &&
3452           name[5] == 'o' &&
3453           name[6] == 't' &&
3454           name[7] == 'o' &&
3455           name[8] == 'b' &&
3456           name[9] == 'y' &&
3457           name[10] == 'n' &&
3458           name[11] == 'u' &&
3459           name[12] == 'm' &&
3460           name[13] == 'b' &&
3461           name[14] == 'e' &&
3462           name[15] == 'r')
3463       {                                           /* getprotobynumber */
3464         return -KEY_getprotobynumber;
3465       }
3466
3467       goto unknown;
3468
3469     default:
3470       goto unknown;
3471   }
3472
3473 unknown:
3474   return 0;
3475 }
3476
3477 /* Generated from:
3478  * 3a4f2004642b00b871c01cbdc018f6ca5ead6b4e0b2b184120c60b0b62a229dd regen/keywords.pl
3479  * ex: set ro: */