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