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