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