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