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