This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
change "when" keyword to "whereso"
[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: /* 30 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                   name[5] == 's' &&
2304                   name[6] == 'o')
2305               {                                   /* whereso          */
2306                 return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_whereso : 0);
2307               }
2308
2309               goto unknown;
2310
2311             default:
2312               goto unknown;
2313           }
2314
2315         default:
2316           goto unknown;
2317       }
2318
2319     case 8: /* 26 tokens of length 8 */
2320       switch (name[0])
2321       {
2322         case 'A':
2323           if (name[1] == 'U' &&
2324               name[2] == 'T' &&
2325               name[3] == 'O' &&
2326               name[4] == 'L' &&
2327               name[5] == 'O' &&
2328               name[6] == 'A' &&
2329               name[7] == 'D')
2330           {                                       /* AUTOLOAD         */
2331             return KEY_AUTOLOAD;
2332           }
2333
2334           goto unknown;
2335
2336         case '_':
2337           if (name[1] == '_')
2338           {
2339             switch (name[2])
2340             {
2341               case 'D':
2342                 if (name[3] == 'A' &&
2343                     name[4] == 'T' &&
2344                     name[5] == 'A' &&
2345                     name[6] == '_' &&
2346                     name[7] == '_')
2347                 {                                 /* __DATA__         */
2348                   return KEY___DATA__;
2349                 }
2350
2351                 goto unknown;
2352
2353               case 'F':
2354                 if (name[3] == 'I' &&
2355                     name[4] == 'L' &&
2356                     name[5] == 'E' &&
2357                     name[6] == '_' &&
2358                     name[7] == '_')
2359                 {                                 /* __FILE__         */
2360                   return -KEY___FILE__;
2361                 }
2362
2363                 goto unknown;
2364
2365               case 'L':
2366                 if (name[3] == 'I' &&
2367                     name[4] == 'N' &&
2368                     name[5] == 'E' &&
2369                     name[6] == '_' &&
2370                     name[7] == '_')
2371                 {                                 /* __LINE__         */
2372                   return -KEY___LINE__;
2373                 }
2374
2375                 goto unknown;
2376
2377               default:
2378                 goto unknown;
2379             }
2380           }
2381
2382           goto unknown;
2383
2384         case 'c':
2385           switch (name[1])
2386           {
2387             case 'l':
2388               if (name[2] == 'o' &&
2389                   name[3] == 's' &&
2390                   name[4] == 'e' &&
2391                   name[5] == 'd' &&
2392                   name[6] == 'i' &&
2393                   name[7] == 'r')
2394               {                                   /* closedir         */
2395                 return -KEY_closedir;
2396               }
2397
2398               goto unknown;
2399
2400             case 'o':
2401               if (name[2] == 'n' &&
2402                   name[3] == 't' &&
2403                   name[4] == 'i' &&
2404                   name[5] == 'n' &&
2405                   name[6] == 'u' &&
2406                   name[7] == 'e')
2407               {                                   /* continue         */
2408                 return -KEY_continue;
2409               }
2410
2411               goto unknown;
2412
2413             default:
2414               goto unknown;
2415           }
2416
2417         case 'd':
2418           if (name[1] == 'b' &&
2419               name[2] == 'm' &&
2420               name[3] == 'c' &&
2421               name[4] == 'l' &&
2422               name[5] == 'o' &&
2423               name[6] == 's' &&
2424               name[7] == 'e')
2425           {                                       /* dbmclose         */
2426             return -KEY_dbmclose;
2427           }
2428
2429           goto unknown;
2430
2431         case 'e':
2432           if (name[1] == 'n' &&
2433               name[2] == 'd')
2434           {
2435             switch (name[3])
2436             {
2437               case 'g':
2438                 if (name[4] == 'r' &&
2439                     name[5] == 'e' &&
2440                     name[6] == 'n' &&
2441                     name[7] == 't')
2442                 {                                 /* endgrent         */
2443                   return -KEY_endgrent;
2444                 }
2445
2446                 goto unknown;
2447
2448               case 'p':
2449                 if (name[4] == 'w' &&
2450                     name[5] == 'e' &&
2451                     name[6] == 'n' &&
2452                     name[7] == 't')
2453                 {                                 /* endpwent         */
2454                   return -KEY_endpwent;
2455                 }
2456
2457                 goto unknown;
2458
2459               default:
2460                 goto unknown;
2461             }
2462           }
2463
2464           goto unknown;
2465
2466         case 'f':
2467           if (name[1] == 'o' &&
2468               name[2] == 'r' &&
2469               name[3] == 'm' &&
2470               name[4] == 'l' &&
2471               name[5] == 'i' &&
2472               name[6] == 'n' &&
2473               name[7] == 'e')
2474           {                                       /* formline         */
2475             return -KEY_formline;
2476           }
2477
2478           goto unknown;
2479
2480         case 'g':
2481           if (name[1] == 'e' &&
2482               name[2] == 't')
2483           {
2484             switch (name[3])
2485             {
2486               case 'g':
2487                 if (name[4] == 'r')
2488                 {
2489                   switch (name[5])
2490                   {
2491                     case 'e':
2492                       if (name[6] == 'n' &&
2493                           name[7] == 't')
2494                       {                           /* getgrent         */
2495                         return -KEY_getgrent;
2496                       }
2497
2498                       goto unknown;
2499
2500                     case 'g':
2501                       if (name[6] == 'i' &&
2502                           name[7] == 'd')
2503                       {                           /* getgrgid         */
2504                         return -KEY_getgrgid;
2505                       }
2506
2507                       goto unknown;
2508
2509                     case 'n':
2510                       if (name[6] == 'a' &&
2511                           name[7] == 'm')
2512                       {                           /* getgrnam         */
2513                         return -KEY_getgrnam;
2514                       }
2515
2516                       goto unknown;
2517
2518                     default:
2519                       goto unknown;
2520                   }
2521                 }
2522
2523                 goto unknown;
2524
2525               case 'l':
2526                 if (name[4] == 'o' &&
2527                     name[5] == 'g' &&
2528                     name[6] == 'i' &&
2529                     name[7] == 'n')
2530                 {                                 /* getlogin         */
2531                   return -KEY_getlogin;
2532                 }
2533
2534                 goto unknown;
2535
2536               case 'p':
2537                 if (name[4] == 'w')
2538                 {
2539                   switch (name[5])
2540                   {
2541                     case 'e':
2542                       if (name[6] == 'n' &&
2543                           name[7] == 't')
2544                       {                           /* getpwent         */
2545                         return -KEY_getpwent;
2546                       }
2547
2548                       goto unknown;
2549
2550                     case 'n':
2551                       if (name[6] == 'a' &&
2552                           name[7] == 'm')
2553                       {                           /* getpwnam         */
2554                         return -KEY_getpwnam;
2555                       }
2556
2557                       goto unknown;
2558
2559                     case 'u':
2560                       if (name[6] == 'i' &&
2561                           name[7] == 'd')
2562                       {                           /* getpwuid         */
2563                         return -KEY_getpwuid;
2564                       }
2565
2566                       goto unknown;
2567
2568                     default:
2569                       goto unknown;
2570                   }
2571                 }
2572
2573                 goto unknown;
2574
2575               default:
2576                 goto unknown;
2577             }
2578           }
2579
2580           goto unknown;
2581
2582         case 'r':
2583           if (name[1] == 'e' &&
2584               name[2] == 'a' &&
2585               name[3] == 'd')
2586           {
2587             switch (name[4])
2588             {
2589               case 'l':
2590                 if (name[5] == 'i' &&
2591                     name[6] == 'n')
2592                 {
2593                   switch (name[7])
2594                   {
2595                     case 'e':
2596                       {                           /* readline         */
2597                         return -KEY_readline;
2598                       }
2599
2600                     case 'k':
2601                       {                           /* readlink         */
2602                         return -KEY_readlink;
2603                       }
2604
2605                     default:
2606                       goto unknown;
2607                   }
2608                 }
2609
2610                 goto unknown;
2611
2612               case 'p':
2613                 if (name[5] == 'i' &&
2614                     name[6] == 'p' &&
2615                     name[7] == 'e')
2616                 {                                 /* readpipe         */
2617                   return -KEY_readpipe;
2618                 }
2619
2620                 goto unknown;
2621
2622               default:
2623                 goto unknown;
2624             }
2625           }
2626
2627           goto unknown;
2628
2629         case 's':
2630           switch (name[1])
2631           {
2632             case 'e':
2633               if (name[2] == 't')
2634               {
2635                 switch (name[3])
2636                 {
2637                   case 'g':
2638                     if (name[4] == 'r' &&
2639                         name[5] == 'e' &&
2640                         name[6] == 'n' &&
2641                         name[7] == 't')
2642                     {                             /* setgrent         */
2643                       return -KEY_setgrent;
2644                     }
2645
2646                     goto unknown;
2647
2648                   case 'p':
2649                     if (name[4] == 'w' &&
2650                         name[5] == 'e' &&
2651                         name[6] == 'n' &&
2652                         name[7] == 't')
2653                     {                             /* setpwent         */
2654                       return -KEY_setpwent;
2655                     }
2656
2657                     goto unknown;
2658
2659                   default:
2660                     goto unknown;
2661                 }
2662               }
2663
2664               goto unknown;
2665
2666             case 'h':
2667               switch (name[2])
2668               {
2669                 case 'm':
2670                   if (name[3] == 'w' &&
2671                       name[4] == 'r' &&
2672                       name[5] == 'i' &&
2673                       name[6] == 't' &&
2674                       name[7] == 'e')
2675                   {                               /* shmwrite         */
2676                     return -KEY_shmwrite;
2677                   }
2678
2679                   goto unknown;
2680
2681                 case 'u':
2682                   if (name[3] == 't' &&
2683                       name[4] == 'd' &&
2684                       name[5] == 'o' &&
2685                       name[6] == 'w' &&
2686                       name[7] == 'n')
2687                   {                               /* shutdown         */
2688                     return -KEY_shutdown;
2689                   }
2690
2691                   goto unknown;
2692
2693                 default:
2694                   goto unknown;
2695               }
2696
2697             case 'y':
2698               if (name[2] == 's' &&
2699                   name[3] == 'w' &&
2700                   name[4] == 'r' &&
2701                   name[5] == 'i' &&
2702                   name[6] == 't' &&
2703                   name[7] == 'e')
2704               {                                   /* syswrite         */
2705                 return -KEY_syswrite;
2706               }
2707
2708               goto unknown;
2709
2710             default:
2711               goto unknown;
2712           }
2713
2714         case 't':
2715           if (name[1] == 'r' &&
2716               name[2] == 'u' &&
2717               name[3] == 'n' &&
2718               name[4] == 'c' &&
2719               name[5] == 'a' &&
2720               name[6] == 't' &&
2721               name[7] == 'e')
2722           {                                       /* truncate         */
2723             return -KEY_truncate;
2724           }
2725
2726           goto unknown;
2727
2728         default:
2729           goto unknown;
2730       }
2731
2732     case 9: /* 10 tokens of length 9 */
2733       switch (name[0])
2734       {
2735         case 'U':
2736           if (name[1] == 'N' &&
2737               name[2] == 'I' &&
2738               name[3] == 'T' &&
2739               name[4] == 'C' &&
2740               name[5] == 'H' &&
2741               name[6] == 'E' &&
2742               name[7] == 'C' &&
2743               name[8] == 'K')
2744           {                                       /* UNITCHECK        */
2745             return KEY_UNITCHECK;
2746           }
2747
2748           goto unknown;
2749
2750         case 'e':
2751           switch (name[1])
2752           {
2753             case 'n':
2754               if (name[2] == 'd' &&
2755                   name[3] == 'n' &&
2756                   name[4] == 'e' &&
2757                   name[5] == 't' &&
2758                   name[6] == 'e' &&
2759                   name[7] == 'n' &&
2760                   name[8] == 't')
2761               {                                   /* endnetent        */
2762                 return -KEY_endnetent;
2763               }
2764
2765               goto unknown;
2766
2767             case 'v':
2768               if (name[2] == 'a' &&
2769                   name[3] == 'l' &&
2770                   name[4] == 'b' &&
2771                   name[5] == 'y' &&
2772                   name[6] == 't' &&
2773                   name[7] == 'e' &&
2774                   name[8] == 's')
2775               {                                   /* evalbytes        */
2776                 return (all_keywords || FEATURE_EVALBYTES_IS_ENABLED ? -KEY_evalbytes : 0);
2777               }
2778
2779               goto unknown;
2780
2781             default:
2782               goto unknown;
2783           }
2784
2785         case 'g':
2786           if (name[1] == 'e' &&
2787               name[2] == 't' &&
2788               name[3] == 'n' &&
2789               name[4] == 'e' &&
2790               name[5] == 't' &&
2791               name[6] == 'e' &&
2792               name[7] == 'n' &&
2793               name[8] == 't')
2794           {                                       /* getnetent        */
2795             return -KEY_getnetent;
2796           }
2797
2798           goto unknown;
2799
2800         case 'l':
2801           if (name[1] == 'o' &&
2802               name[2] == 'c' &&
2803               name[3] == 'a' &&
2804               name[4] == 'l' &&
2805               name[5] == 't' &&
2806               name[6] == 'i' &&
2807               name[7] == 'm' &&
2808               name[8] == 'e')
2809           {                                       /* localtime        */
2810             return -KEY_localtime;
2811           }
2812
2813           goto unknown;
2814
2815         case 'p':
2816           if (name[1] == 'r' &&
2817               name[2] == 'o' &&
2818               name[3] == 't' &&
2819               name[4] == 'o' &&
2820               name[5] == 't' &&
2821               name[6] == 'y' &&
2822               name[7] == 'p' &&
2823               name[8] == 'e')
2824           {                                       /* prototype        */
2825             return KEY_prototype;
2826           }
2827
2828           goto unknown;
2829
2830         case 'q':
2831           if (name[1] == 'u' &&
2832               name[2] == 'o' &&
2833               name[3] == 't' &&
2834               name[4] == 'e' &&
2835               name[5] == 'm' &&
2836               name[6] == 'e' &&
2837               name[7] == 't' &&
2838               name[8] == 'a')
2839           {                                       /* quotemeta        */
2840             return -KEY_quotemeta;
2841           }
2842
2843           goto unknown;
2844
2845         case 'r':
2846           if (name[1] == 'e' &&
2847               name[2] == 'w' &&
2848               name[3] == 'i' &&
2849               name[4] == 'n' &&
2850               name[5] == 'd' &&
2851               name[6] == 'd' &&
2852               name[7] == 'i' &&
2853               name[8] == 'r')
2854           {                                       /* rewinddir        */
2855             return -KEY_rewinddir;
2856           }
2857
2858           goto unknown;
2859
2860         case 's':
2861           if (name[1] == 'e' &&
2862               name[2] == 't' &&
2863               name[3] == 'n' &&
2864               name[4] == 'e' &&
2865               name[5] == 't' &&
2866               name[6] == 'e' &&
2867               name[7] == 'n' &&
2868               name[8] == 't')
2869           {                                       /* setnetent        */
2870             return -KEY_setnetent;
2871           }
2872
2873           goto unknown;
2874
2875         case 'w':
2876           if (name[1] == 'a' &&
2877               name[2] == 'n' &&
2878               name[3] == 't' &&
2879               name[4] == 'a' &&
2880               name[5] == 'r' &&
2881               name[6] == 'r' &&
2882               name[7] == 'a' &&
2883               name[8] == 'y')
2884           {                                       /* wantarray        */
2885             return -KEY_wantarray;
2886           }
2887
2888           goto unknown;
2889
2890         default:
2891           goto unknown;
2892       }
2893
2894     case 10: /* 9 tokens of length 10 */
2895       switch (name[0])
2896       {
2897         case 'e':
2898           if (name[1] == 'n' &&
2899               name[2] == 'd')
2900           {
2901             switch (name[3])
2902             {
2903               case 'h':
2904                 if (name[4] == 'o' &&
2905                     name[5] == 's' &&
2906                     name[6] == 't' &&
2907                     name[7] == 'e' &&
2908                     name[8] == 'n' &&
2909                     name[9] == 't')
2910                 {                                 /* endhostent       */
2911                   return -KEY_endhostent;
2912                 }
2913
2914                 goto unknown;
2915
2916               case 's':
2917                 if (name[4] == 'e' &&
2918                     name[5] == 'r' &&
2919                     name[6] == 'v' &&
2920                     name[7] == 'e' &&
2921                     name[8] == 'n' &&
2922                     name[9] == 't')
2923                 {                                 /* endservent       */
2924                   return -KEY_endservent;
2925                 }
2926
2927                 goto unknown;
2928
2929               default:
2930                 goto unknown;
2931             }
2932           }
2933
2934           goto unknown;
2935
2936         case 'g':
2937           if (name[1] == 'e' &&
2938               name[2] == 't')
2939           {
2940             switch (name[3])
2941             {
2942               case 'h':
2943                 if (name[4] == 'o' &&
2944                     name[5] == 's' &&
2945                     name[6] == 't' &&
2946                     name[7] == 'e' &&
2947                     name[8] == 'n' &&
2948                     name[9] == 't')
2949                 {                                 /* gethostent       */
2950                   return -KEY_gethostent;
2951                 }
2952
2953                 goto unknown;
2954
2955               case 's':
2956                 switch (name[4])
2957                 {
2958                   case 'e':
2959                     if (name[5] == 'r' &&
2960                         name[6] == 'v' &&
2961                         name[7] == 'e' &&
2962                         name[8] == 'n' &&
2963                         name[9] == 't')
2964                     {                             /* getservent       */
2965                       return -KEY_getservent;
2966                     }
2967
2968                     goto unknown;
2969
2970                   case 'o':
2971                     if (name[5] == 'c' &&
2972                         name[6] == 'k' &&
2973                         name[7] == 'o' &&
2974                         name[8] == 'p' &&
2975                         name[9] == 't')
2976                     {                             /* getsockopt       */
2977                       return -KEY_getsockopt;
2978                     }
2979
2980                     goto unknown;
2981
2982                   default:
2983                     goto unknown;
2984                 }
2985
2986               default:
2987                 goto unknown;
2988             }
2989           }
2990
2991           goto unknown;
2992
2993         case 's':
2994           switch (name[1])
2995           {
2996             case 'e':
2997               if (name[2] == 't')
2998               {
2999                 switch (name[3])
3000                 {
3001                   case 'h':
3002                     if (name[4] == 'o' &&
3003                         name[5] == 's' &&
3004                         name[6] == 't' &&
3005                         name[7] == 'e' &&
3006                         name[8] == 'n' &&
3007                         name[9] == 't')
3008                     {                             /* sethostent       */
3009                       return -KEY_sethostent;
3010                     }
3011
3012                     goto unknown;
3013
3014                   case 's':
3015                     switch (name[4])
3016                     {
3017                       case 'e':
3018                         if (name[5] == 'r' &&
3019                             name[6] == 'v' &&
3020                             name[7] == 'e' &&
3021                             name[8] == 'n' &&
3022                             name[9] == 't')
3023                         {                         /* setservent       */
3024                           return -KEY_setservent;
3025                         }
3026
3027                         goto unknown;
3028
3029                       case 'o':
3030                         if (name[5] == 'c' &&
3031                             name[6] == 'k' &&
3032                             name[7] == 'o' &&
3033                             name[8] == 'p' &&
3034                             name[9] == 't')
3035                         {                         /* setsockopt       */
3036                           return -KEY_setsockopt;
3037                         }
3038
3039                         goto unknown;
3040
3041                       default:
3042                         goto unknown;
3043                     }
3044
3045                   default:
3046                     goto unknown;
3047                 }
3048               }
3049
3050               goto unknown;
3051
3052             case 'o':
3053               if (name[2] == 'c' &&
3054                   name[3] == 'k' &&
3055                   name[4] == 'e' &&
3056                   name[5] == 't' &&
3057                   name[6] == 'p' &&
3058                   name[7] == 'a' &&
3059                   name[8] == 'i' &&
3060                   name[9] == 'r')
3061               {                                   /* socketpair       */
3062                 return -KEY_socketpair;
3063               }
3064
3065               goto unknown;
3066
3067             default:
3068               goto unknown;
3069           }
3070
3071         default:
3072           goto unknown;
3073       }
3074
3075     case 11: /* 8 tokens of length 11 */
3076       switch (name[0])
3077       {
3078         case '_':
3079           if (name[1] == '_' &&
3080               name[2] == 'P' &&
3081               name[3] == 'A' &&
3082               name[4] == 'C' &&
3083               name[5] == 'K' &&
3084               name[6] == 'A' &&
3085               name[7] == 'G' &&
3086               name[8] == 'E' &&
3087               name[9] == '_' &&
3088               name[10] == '_')
3089           {                                       /* __PACKAGE__      */
3090             return -KEY___PACKAGE__;
3091           }
3092
3093           goto unknown;
3094
3095         case 'e':
3096           if (name[1] == 'n' &&
3097               name[2] == 'd' &&
3098               name[3] == 'p' &&
3099               name[4] == 'r' &&
3100               name[5] == 'o' &&
3101               name[6] == 't' &&
3102               name[7] == 'o' &&
3103               name[8] == 'e' &&
3104               name[9] == 'n' &&
3105               name[10] == 't')
3106           {                                       /* endprotoent      */
3107             return -KEY_endprotoent;
3108           }
3109
3110           goto unknown;
3111
3112         case 'g':
3113           if (name[1] == 'e' &&
3114               name[2] == 't')
3115           {
3116             switch (name[3])
3117             {
3118               case 'p':
3119                 switch (name[4])
3120                 {
3121                   case 'e':
3122                     if (name[5] == 'e' &&
3123                         name[6] == 'r' &&
3124                         name[7] == 'n' &&
3125                         name[8] == 'a' &&
3126                         name[9] == 'm' &&
3127                         name[10] == 'e')
3128                     {                             /* getpeername      */
3129                       return -KEY_getpeername;
3130                     }
3131
3132                     goto unknown;
3133
3134                   case 'r':
3135                     switch (name[5])
3136                     {
3137                       case 'i':
3138                         if (name[6] == 'o' &&
3139                             name[7] == 'r' &&
3140                             name[8] == 'i' &&
3141                             name[9] == 't' &&
3142                             name[10] == 'y')
3143                         {                         /* getpriority      */
3144                           return -KEY_getpriority;
3145                         }
3146
3147                         goto unknown;
3148
3149                       case 'o':
3150                         if (name[6] == 't' &&
3151                             name[7] == 'o' &&
3152                             name[8] == 'e' &&
3153                             name[9] == 'n' &&
3154                             name[10] == 't')
3155                         {                         /* getprotoent      */
3156                           return -KEY_getprotoent;
3157                         }
3158
3159                         goto unknown;
3160
3161                       default:
3162                         goto unknown;
3163                     }
3164
3165                   default:
3166                     goto unknown;
3167                 }
3168
3169               case 's':
3170                 if (name[4] == 'o' &&
3171                     name[5] == 'c' &&
3172                     name[6] == 'k' &&
3173                     name[7] == 'n' &&
3174                     name[8] == 'a' &&
3175                     name[9] == 'm' &&
3176                     name[10] == 'e')
3177                 {                                 /* getsockname      */
3178                   return -KEY_getsockname;
3179                 }
3180
3181                 goto unknown;
3182
3183               default:
3184                 goto unknown;
3185             }
3186           }
3187
3188           goto unknown;
3189
3190         case 's':
3191           if (name[1] == 'e' &&
3192               name[2] == 't' &&
3193               name[3] == 'p' &&
3194               name[4] == 'r')
3195           {
3196             switch (name[5])
3197             {
3198               case 'i':
3199                 if (name[6] == 'o' &&
3200                     name[7] == 'r' &&
3201                     name[8] == 'i' &&
3202                     name[9] == 't' &&
3203                     name[10] == 'y')
3204                 {                                 /* setpriority      */
3205                   return -KEY_setpriority;
3206                 }
3207
3208                 goto unknown;
3209
3210               case 'o':
3211                 if (name[6] == 't' &&
3212                     name[7] == 'o' &&
3213                     name[8] == 'e' &&
3214                     name[9] == 'n' &&
3215                     name[10] == 't')
3216                 {                                 /* setprotoent      */
3217                   return -KEY_setprotoent;
3218                 }
3219
3220                 goto unknown;
3221
3222               default:
3223                 goto unknown;
3224             }
3225           }
3226
3227           goto unknown;
3228
3229         default:
3230           goto unknown;
3231       }
3232
3233     case 12: /* 2 tokens of length 12 */
3234       if (name[0] == 'g' &&
3235           name[1] == 'e' &&
3236           name[2] == 't' &&
3237           name[3] == 'n' &&
3238           name[4] == 'e' &&
3239           name[5] == 't' &&
3240           name[6] == 'b' &&
3241           name[7] == 'y')
3242       {
3243         switch (name[8])
3244         {
3245           case 'a':
3246             if (name[9] == 'd' &&
3247                 name[10] == 'd' &&
3248                 name[11] == 'r')
3249             {                                     /* getnetbyaddr     */
3250               return -KEY_getnetbyaddr;
3251             }
3252
3253             goto unknown;
3254
3255           case 'n':
3256             if (name[9] == 'a' &&
3257                 name[10] == 'm' &&
3258                 name[11] == 'e')
3259             {                                     /* getnetbyname     */
3260               return -KEY_getnetbyname;
3261             }
3262
3263             goto unknown;
3264
3265           default:
3266             goto unknown;
3267         }
3268       }
3269
3270       goto unknown;
3271
3272     case 13: /* 4 tokens of length 13 */
3273       if (name[0] == 'g' &&
3274           name[1] == 'e' &&
3275           name[2] == 't')
3276       {
3277         switch (name[3])
3278         {
3279           case 'h':
3280             if (name[4] == 'o' &&
3281                 name[5] == 's' &&
3282                 name[6] == 't' &&
3283                 name[7] == 'b' &&
3284                 name[8] == 'y')
3285             {
3286               switch (name[9])
3287               {
3288                 case 'a':
3289                   if (name[10] == 'd' &&
3290                       name[11] == 'd' &&
3291                       name[12] == 'r')
3292                   {                               /* gethostbyaddr    */
3293                     return -KEY_gethostbyaddr;
3294                   }
3295
3296                   goto unknown;
3297
3298                 case 'n':
3299                   if (name[10] == 'a' &&
3300                       name[11] == 'm' &&
3301                       name[12] == 'e')
3302                   {                               /* gethostbyname    */
3303                     return -KEY_gethostbyname;
3304                   }
3305
3306                   goto unknown;
3307
3308                 default:
3309                   goto unknown;
3310               }
3311             }
3312
3313             goto unknown;
3314
3315           case 's':
3316             if (name[4] == 'e' &&
3317                 name[5] == 'r' &&
3318                 name[6] == 'v' &&
3319                 name[7] == 'b' &&
3320                 name[8] == 'y')
3321             {
3322               switch (name[9])
3323               {
3324                 case 'n':
3325                   if (name[10] == 'a' &&
3326                       name[11] == 'm' &&
3327                       name[12] == 'e')
3328                   {                               /* getservbyname    */
3329                     return -KEY_getservbyname;
3330                   }
3331
3332                   goto unknown;
3333
3334                 case 'p':
3335                   if (name[10] == 'o' &&
3336                       name[11] == 'r' &&
3337                       name[12] == 't')
3338                   {                               /* getservbyport    */
3339                     return -KEY_getservbyport;
3340                   }
3341
3342                   goto unknown;
3343
3344                 default:
3345                   goto unknown;
3346               }
3347             }
3348
3349             goto unknown;
3350
3351           default:
3352             goto unknown;
3353         }
3354       }
3355
3356       goto unknown;
3357
3358     case 14: /* 1 tokens of length 14 */
3359       if (name[0] == 'g' &&
3360           name[1] == 'e' &&
3361           name[2] == 't' &&
3362           name[3] == 'p' &&
3363           name[4] == 'r' &&
3364           name[5] == 'o' &&
3365           name[6] == 't' &&
3366           name[7] == 'o' &&
3367           name[8] == 'b' &&
3368           name[9] == 'y' &&
3369           name[10] == 'n' &&
3370           name[11] == 'a' &&
3371           name[12] == 'm' &&
3372           name[13] == 'e')
3373       {                                           /* getprotobyname   */
3374         return -KEY_getprotobyname;
3375       }
3376
3377       goto unknown;
3378
3379     case 16: /* 1 tokens of length 16 */
3380       if (name[0] == 'g' &&
3381           name[1] == 'e' &&
3382           name[2] == 't' &&
3383           name[3] == 'p' &&
3384           name[4] == 'r' &&
3385           name[5] == 'o' &&
3386           name[6] == 't' &&
3387           name[7] == 'o' &&
3388           name[8] == 'b' &&
3389           name[9] == 'y' &&
3390           name[10] == 'n' &&
3391           name[11] == 'u' &&
3392           name[12] == 'm' &&
3393           name[13] == 'b' &&
3394           name[14] == 'e' &&
3395           name[15] == 'r')
3396       {                                           /* getprotobynumber */
3397         return -KEY_getprotobynumber;
3398       }
3399
3400       goto unknown;
3401
3402     default:
3403       goto unknown;
3404   }
3405
3406 unknown:
3407   return 0;
3408 }
3409
3410 /* Generated from:
3411  * fa7d552d13fad7c3ad101e3f8d5301a9780147c26623ecb3e75f0ec7f0d24cc3 regen/keywords.pl
3412  * ex: set ro: */