diff options
-rw-r--r-- | Cross/Makefile-cross-SH | 2 | ||||
-rw-r--r-- | MANIFEST | 1 | ||||
-rwxr-xr-x | Makefile.SH | 4 | ||||
-rw-r--r-- | Makefile.micro | 5 | ||||
-rw-r--r-- | NetWare/Makefile | 1 | ||||
-rwxr-xr-x | Porting/makerel | 1 | ||||
-rw-r--r-- | embed.fnc | 4 | ||||
-rw-r--r-- | embed.h | 1 | ||||
-rw-r--r-- | keywords.c | 3397 | ||||
-rw-r--r-- | perl.h | 8 | ||||
-rw-r--r-- | perl_keyword.pl | 5 | ||||
-rw-r--r-- | proto.h | 10 | ||||
-rw-r--r-- | toke.c | 3407 | ||||
-rw-r--r-- | vms/descrip_mms.template | 2 | ||||
-rw-r--r-- | win32/Makefile | 1 | ||||
-rw-r--r-- | win32/Makefile.ce | 1 | ||||
-rw-r--r-- | win32/makefile.mk | 1 |
17 files changed, 3436 insertions, 3415 deletions
diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH index c25b144498..cc17671283 100644 --- a/Cross/Makefile-cross-SH +++ b/Cross/Makefile-cross-SH @@ -348,7 +348,7 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5) c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c -c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c +c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c c5 = $(madlysrc) $(mallocsrc) @@ -3765,6 +3765,7 @@ installperl Perl script to do "make install" dirty work INTERN.h Included before domestic .h files intrpvar.h Variables held in each interpreter instance iperlsys.h Perl's interface to the system +keywords.c Perl_keyword(), generated by perl_keyword.pl keywords.h The keyword numbers l1_char_class_tab.h 256 word bit table of character classes (for handy.h) lib/abbrev.pl An abbreviation table builder diff --git a/Makefile.SH b/Makefile.SH index 07f25d2b0a..28c539de80 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -446,14 +446,14 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5) c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c -c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c +c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c c5 = $(madlysrc) $(mallocsrc) c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c obj0 = op$(OBJ_EXT) perl$(OBJ_EXT) -obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) +obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) keywords$(OBJ_EXT) obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) diff --git a/Makefile.micro b/Makefile.micro index 86113322d7..ec47c9b914 100644 --- a/Makefile.micro +++ b/Makefile.micro @@ -21,7 +21,7 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \ uregcomp$(_O) uregexec$(_O) urun$(_O) \ uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \ unumeric$(_O) ulocale$(_O) umathoms$(_O) \ - uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) + uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O) microperl: $(O) $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS) @@ -86,6 +86,9 @@ umro$(_O): $(HE) mro.c uhv$(_O): $(HE) hv.c $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c +ukeywords$(_O): $(HE) keywords.c + $(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c + umg$(_O): $(HE) mg.c $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c diff --git a/NetWare/Makefile b/NetWare/Makefile index 266a6cc04e..335ec1e764 100644 --- a/NetWare/Makefile +++ b/NetWare/Makefile @@ -701,6 +701,7 @@ MICROCORE_SRC = \ ..\gv.c \ ..\mro.c \ ..\hv.c \ + ..\keywords.c \ ..\locale.c \ ..\mathoms.c \ ..\mg.c \ diff --git a/Porting/makerel b/Porting/makerel index 046cd67ac5..ec4dc5ed9b 100755 --- a/Porting/makerel +++ b/Porting/makerel @@ -132,6 +132,7 @@ my @writables = qw( NetWare/config_H.wc NetWare/Makefile keywords.h + keywords.c opcode.h opnames.h pp_proto.h @@ -1950,7 +1950,6 @@ s |U8* |add_utf16_textfilter|NN U8 *const s|bool reversed #endif s |void |checkcomma |NN const char *s|NN const char *name \ |NN const char *what -s |bool |feature_is_enabled|NN const char *const name|STRLEN namelen s |void |force_ident |NN const char *s|int kind s |void |incline |NN const char *s s |int |intuit_method |NN char *s|NULLOK GV *gv|NULLOK CV *cv @@ -2422,4 +2421,7 @@ Anop |void |clone_params_del|NN CLONE_PARAMS *param : Used in perl.c and toke.c op |void |populate_isa |NN const char *name|STRLEN len|... +: Used in keywords.c and toke.c +op |bool |feature_is_enabled|NN const char *const name|STRLEN namelen + : ex: set ts=8 sts=4 sw=4 noet: @@ -1457,7 +1457,6 @@ #define check_uni() S_check_uni(aTHX) #define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c) #define deprecate_commaless_var_list() S_deprecate_commaless_var_list(aTHX) -#define feature_is_enabled(a,b) S_feature_is_enabled(aTHX_ a,b) #define filter_gets(a,b) S_filter_gets(aTHX_ a,b) #define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b) #define force_ident(a,b) S_force_ident(aTHX_ a,b) diff --git a/keywords.c b/keywords.c new file mode 100644 index 0000000000..199eaedf68 --- /dev/null +++ b/keywords.c @@ -0,0 +1,3397 @@ +/* + * The following code was generated by perl_keyword.pl. + */ + +#include "EXTERN.h" +#define PERL_IN_KEYWORDS_C +#include "perl.h" +#include "keywords.h" + +I32 +Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords) +{ + dVAR; + + PERL_ARGS_ASSERT_KEYWORD; + + switch (len) + { + case 1: /* 5 tokens of length 1 */ + switch (name[0]) + { + case 'm': + { /* m */ + return KEY_m; + } + + case 'q': + { /* q */ + return KEY_q; + } + + case 's': + { /* s */ + return KEY_s; + } + + case 'x': + { /* x */ + return -KEY_x; + } + + case 'y': + { /* y */ + return KEY_y; + } + + default: + goto unknown; + } + + case 2: /* 18 tokens of length 2 */ + switch (name[0]) + { + case 'd': + if (name[1] == 'o') + { /* do */ + return KEY_do; + } + + goto unknown; + + case 'e': + if (name[1] == 'q') + { /* eq */ + return -KEY_eq; + } + + goto unknown; + + case 'g': + switch (name[1]) + { + case 'e': + { /* ge */ + return -KEY_ge; + } + + case 't': + { /* gt */ + return -KEY_gt; + } + + default: + goto unknown; + } + + case 'i': + if (name[1] == 'f') + { /* if */ + return KEY_if; + } + + goto unknown; + + case 'l': + switch (name[1]) + { + case 'c': + { /* lc */ + return -KEY_lc; + } + + case 'e': + { /* le */ + return -KEY_le; + } + + case 't': + { /* lt */ + return -KEY_lt; + } + + default: + goto unknown; + } + + case 'm': + if (name[1] == 'y') + { /* my */ + return KEY_my; + } + + goto unknown; + + case 'n': + switch (name[1]) + { + case 'e': + { /* ne */ + return -KEY_ne; + } + + case 'o': + { /* no */ + return KEY_no; + } + + default: + goto unknown; + } + + case 'o': + if (name[1] == 'r') + { /* or */ + return -KEY_or; + } + + goto unknown; + + case 'q': + switch (name[1]) + { + case 'q': + { /* qq */ + return KEY_qq; + } + + case 'r': + { /* qr */ + return KEY_qr; + } + + case 'w': + { /* qw */ + return KEY_qw; + } + + case 'x': + { /* qx */ + return KEY_qx; + } + + default: + goto unknown; + } + + case 't': + if (name[1] == 'r') + { /* tr */ + return KEY_tr; + } + + goto unknown; + + case 'u': + if (name[1] == 'c') + { /* uc */ + return -KEY_uc; + } + + goto unknown; + + default: + goto unknown; + } + + case 3: /* 28 tokens of length 3 */ + switch (name[0]) + { + case 'E': + if (name[1] == 'N' && + name[2] == 'D') + { /* END */ + return KEY_END; + } + + goto unknown; + + case 'a': + switch (name[1]) + { + case 'b': + if (name[2] == 's') + { /* abs */ + return -KEY_abs; + } + + goto unknown; + + case 'n': + if (name[2] == 'd') + { /* and */ + return -KEY_and; + } + + goto unknown; + + default: + goto unknown; + } + + case 'c': + switch (name[1]) + { + case 'h': + if (name[2] == 'r') + { /* chr */ + return -KEY_chr; + } + + goto unknown; + + case 'm': + if (name[2] == 'p') + { /* cmp */ + return -KEY_cmp; + } + + goto unknown; + + case 'o': + if (name[2] == 's') + { /* cos */ + return -KEY_cos; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'i' && + name[2] == 'e') + { /* die */ + return -KEY_die; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'o': + if (name[2] == 'f') + { /* eof */ + return -KEY_eof; + } + + goto unknown; + + case 'x': + if (name[2] == 'p') + { /* exp */ + return -KEY_exp; + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r') + { /* for */ + return KEY_for; + } + + goto unknown; + + case 'h': + if (name[1] == 'e' && + name[2] == 'x') + { /* hex */ + return -KEY_hex; + } + + goto unknown; + + case 'i': + if (name[1] == 'n' && + name[2] == 't') + { /* int */ + return -KEY_int; + } + + goto unknown; + + case 'l': + if (name[1] == 'o' && + name[2] == 'g') + { /* log */ + return -KEY_log; + } + + goto unknown; + + case 'm': + if (name[1] == 'a' && + name[2] == 'p') + { /* map */ + return KEY_map; + } + + goto unknown; + + case 'n': + if (name[1] == 'o' && + name[2] == 't') + { /* not */ + return -KEY_not; + } + + goto unknown; + + case 'o': + switch (name[1]) + { + case 'c': + if (name[2] == 't') + { /* oct */ + return -KEY_oct; + } + + goto unknown; + + case 'r': + if (name[2] == 'd') + { /* ord */ + return -KEY_ord; + } + + goto unknown; + + case 'u': + if (name[2] == 'r') + { /* our */ + return KEY_our; + } + + goto unknown; + + default: + goto unknown; + } + + case 'p': + if (name[1] == 'o') + { + switch (name[2]) + { + case 'p': + { /* pop */ + return -KEY_pop; + } + + case 's': + { /* pos */ + return KEY_pos; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'f') + { /* ref */ + return -KEY_ref; + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'a': + if (name[2] == 'y') + { /* say */ + return (all_keywords || FEATURE_IS_ENABLED("say") ? KEY_say : 0); + } + + goto unknown; + + case 'i': + if (name[2] == 'n') + { /* sin */ + return -KEY_sin; + } + + goto unknown; + + case 'u': + if (name[2] == 'b') + { /* sub */ + return KEY_sub; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'i' && + name[2] == 'e') + { /* tie */ + return -KEY_tie; + } + + goto unknown; + + case 'u': + if (name[1] == 's' && + name[2] == 'e') + { /* use */ + return KEY_use; + } + + goto unknown; + + case 'v': + if (name[1] == 'e' && + name[2] == 'c') + { /* vec */ + return -KEY_vec; + } + + goto unknown; + + case 'x': + if (name[1] == 'o' && + name[2] == 'r') + { /* xor */ + return -KEY_xor; + } + + goto unknown; + + default: + goto unknown; + } + + case 4: /* 41 tokens of length 4 */ + switch (name[0]) + { + case 'C': + if (name[1] == 'O' && + name[2] == 'R' && + name[3] == 'E') + { /* CORE */ + return -KEY_CORE; + } + + goto unknown; + + case 'I': + if (name[1] == 'N' && + name[2] == 'I' && + name[3] == 'T') + { /* INIT */ + return KEY_INIT; + } + + goto unknown; + + case 'b': + if (name[1] == 'i' && + name[2] == 'n' && + name[3] == 'd') + { /* bind */ + return -KEY_bind; + } + + goto unknown; + + case 'c': + if (name[1] == 'h' && + name[2] == 'o' && + name[3] == 'p') + { /* chop */ + return -KEY_chop; + } + + goto unknown; + + case 'd': + if (name[1] == 'u' && + name[2] == 'm' && + name[3] == 'p') + { /* dump */ + return -KEY_dump; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'a': + if (name[2] == 'c' && + name[3] == 'h') + { /* each */ + return -KEY_each; + } + + goto unknown; + + case 'l': + if (name[2] == 's' && + name[3] == 'e') + { /* else */ + return KEY_else; + } + + goto unknown; + + case 'v': + if (name[2] == 'a' && + name[3] == 'l') + { /* eval */ + return KEY_eval; + } + + goto unknown; + + case 'x': + switch (name[2]) + { + case 'e': + if (name[3] == 'c') + { /* exec */ + return -KEY_exec; + } + + goto unknown; + + case 'i': + if (name[3] == 't') + { /* exit */ + return -KEY_exit; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'k') + { /* fork */ + return -KEY_fork; + } + + goto unknown; + + case 'g': + switch (name[1]) + { + case 'e': + if (name[2] == 't' && + name[3] == 'c') + { /* getc */ + return -KEY_getc; + } + + goto unknown; + + case 'l': + if (name[2] == 'o' && + name[3] == 'b') + { /* glob */ + return KEY_glob; + } + + goto unknown; + + case 'o': + if (name[2] == 't' && + name[3] == 'o') + { /* goto */ + return KEY_goto; + } + + goto unknown; + + case 'r': + if (name[2] == 'e' && + name[3] == 'p') + { /* grep */ + return KEY_grep; + } + + goto unknown; + + default: + goto unknown; + } + + case 'j': + if (name[1] == 'o' && + name[2] == 'i' && + name[3] == 'n') + { /* join */ + return -KEY_join; + } + + goto unknown; + + case 'k': + switch (name[1]) + { + case 'e': + if (name[2] == 'y' && + name[3] == 's') + { /* keys */ + return -KEY_keys; + } + + goto unknown; + + case 'i': + if (name[2] == 'l' && + name[3] == 'l') + { /* kill */ + return -KEY_kill; + } + + goto unknown; + + default: + goto unknown; + } + + case 'l': + switch (name[1]) + { + case 'a': + if (name[2] == 's' && + name[3] == 't') + { /* last */ + return KEY_last; + } + + goto unknown; + + case 'i': + if (name[2] == 'n' && + name[3] == 'k') + { /* link */ + return -KEY_link; + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k') + { /* lock */ + return -KEY_lock; + } + + goto unknown; + + default: + goto unknown; + } + + case 'n': + if (name[1] == 'e' && + name[2] == 'x' && + name[3] == 't') + { /* next */ + return KEY_next; + } + + goto unknown; + + case 'o': + if (name[1] == 'p' && + name[2] == 'e' && + name[3] == 'n') + { /* open */ + return -KEY_open; + } + + goto unknown; + + case 'p': + switch (name[1]) + { + case 'a': + if (name[2] == 'c' && + name[3] == 'k') + { /* pack */ + return -KEY_pack; + } + + goto unknown; + + case 'i': + if (name[2] == 'p' && + name[3] == 'e') + { /* pipe */ + return -KEY_pipe; + } + + goto unknown; + + case 'u': + if (name[2] == 's' && + name[3] == 'h') + { /* push */ + return -KEY_push; + } + + goto unknown; + + default: + goto unknown; + } + + case 'r': + switch (name[1]) + { + case 'a': + if (name[2] == 'n' && + name[3] == 'd') + { /* rand */ + return -KEY_rand; + } + + goto unknown; + + case 'e': + switch (name[2]) + { + case 'a': + if (name[3] == 'd') + { /* read */ + return -KEY_read; + } + + goto unknown; + + case 'c': + if (name[3] == 'v') + { /* recv */ + return -KEY_recv; + } + + goto unknown; + + case 'd': + if (name[3] == 'o') + { /* redo */ + return KEY_redo; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'e': + if (name[3] == 'k') + { /* seek */ + return -KEY_seek; + } + + goto unknown; + + case 'n': + if (name[3] == 'd') + { /* send */ + return -KEY_send; + } + + goto unknown; + + default: + goto unknown; + } + + case 'o': + if (name[2] == 'r' && + name[3] == 't') + { /* sort */ + return KEY_sort; + } + + goto unknown; + + case 'q': + if (name[2] == 'r' && + name[3] == 't') + { /* sqrt */ + return -KEY_sqrt; + } + + goto unknown; + + case 't': + if (name[2] == 'a' && + name[3] == 't') + { /* stat */ + return -KEY_stat; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + switch (name[1]) + { + case 'e': + if (name[2] == 'l' && + name[3] == 'l') + { /* tell */ + return -KEY_tell; + } + + goto unknown; + + case 'i': + switch (name[2]) + { + case 'e': + if (name[3] == 'd') + { /* tied */ + return -KEY_tied; + } + + goto unknown; + + case 'm': + if (name[3] == 'e') + { /* time */ + return -KEY_time; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'w': + switch (name[1]) + { + case 'a': + switch (name[2]) + { + case 'i': + if (name[3] == 't') + { /* wait */ + return -KEY_wait; + } + + goto unknown; + + case 'r': + if (name[3] == 'n') + { /* warn */ + return -KEY_warn; + } + + goto unknown; + + default: + goto unknown; + } + + case 'h': + if (name[2] == 'e' && + name[3] == 'n') + { /* when */ + return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_when : 0); + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 5: /* 39 tokens of length 5 */ + switch (name[0]) + { + case 'B': + if (name[1] == 'E' && + name[2] == 'G' && + name[3] == 'I' && + name[4] == 'N') + { /* BEGIN */ + return KEY_BEGIN; + } + + goto unknown; + + case 'C': + if (name[1] == 'H' && + name[2] == 'E' && + name[3] == 'C' && + name[4] == 'K') + { /* CHECK */ + return KEY_CHECK; + } + + goto unknown; + + case 'a': + switch (name[1]) + { + case 'l': + if (name[2] == 'a' && + name[3] == 'r' && + name[4] == 'm') + { /* alarm */ + return -KEY_alarm; + } + + goto unknown; + + case 't': + if (name[2] == 'a' && + name[3] == 'n' && + name[4] == '2') + { /* atan2 */ + return -KEY_atan2; + } + + goto unknown; + + default: + goto unknown; + } + + case 'b': + switch (name[1]) + { + case 'l': + if (name[2] == 'e' && + name[3] == 's' && + name[4] == 's') + { /* bless */ + return -KEY_bless; + } + + goto unknown; + + case 'r': + if (name[2] == 'e' && + name[3] == 'a' && + name[4] == 'k') + { /* break */ + return (all_keywords || FEATURE_IS_ENABLED("switch") ? -KEY_break : 0); + } + + goto unknown; + + default: + goto unknown; + } + + case 'c': + switch (name[1]) + { + case 'h': + switch (name[2]) + { + case 'd': + if (name[3] == 'i' && + name[4] == 'r') + { /* chdir */ + return -KEY_chdir; + } + + goto unknown; + + case 'm': + if (name[3] == 'o' && + name[4] == 'd') + { /* chmod */ + return -KEY_chmod; + } + + goto unknown; + + case 'o': + switch (name[3]) + { + case 'm': + if (name[4] == 'p') + { /* chomp */ + return -KEY_chomp; + } + + goto unknown; + + case 'w': + if (name[4] == 'n') + { /* chown */ + return -KEY_chown; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'l': + if (name[2] == 'o' && + name[3] == 's' && + name[4] == 'e') + { /* close */ + return -KEY_close; + } + + goto unknown; + + case 'r': + if (name[2] == 'y' && + name[3] == 'p' && + name[4] == 't') + { /* crypt */ + return -KEY_crypt; + } + + goto unknown; + + default: + goto unknown; + } + + case 'e': + if (name[1] == 'l' && + name[2] == 's' && + name[3] == 'i' && + name[4] == 'f') + { /* elsif */ + return KEY_elsif; + } + + goto unknown; + + case 'f': + switch (name[1]) + { + case 'c': + if (name[2] == 'n' && + name[3] == 't' && + name[4] == 'l') + { /* fcntl */ + return -KEY_fcntl; + } + + goto unknown; + + case 'l': + if (name[2] == 'o' && + name[3] == 'c' && + name[4] == 'k') + { /* flock */ + return -KEY_flock; + } + + goto unknown; + + default: + goto unknown; + } + + case 'g': + if (name[1] == 'i' && + name[2] == 'v' && + name[3] == 'e' && + name[4] == 'n') + { /* given */ + return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_given : 0); + } + + goto unknown; + + case 'i': + switch (name[1]) + { + case 'n': + if (name[2] == 'd' && + name[3] == 'e' && + name[4] == 'x') + { /* index */ + return -KEY_index; + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 't' && + name[4] == 'l') + { /* ioctl */ + return -KEY_ioctl; + } + + goto unknown; + + default: + goto unknown; + } + + case 'l': + switch (name[1]) + { + case 'o': + if (name[2] == 'c' && + name[3] == 'a' && + name[4] == 'l') + { /* local */ + return KEY_local; + } + + goto unknown; + + case 's': + if (name[2] == 't' && + name[3] == 'a' && + name[4] == 't') + { /* lstat */ + return -KEY_lstat; + } + + goto unknown; + + default: + goto unknown; + } + + case 'm': + if (name[1] == 'k' && + name[2] == 'd' && + name[3] == 'i' && + name[4] == 'r') + { /* mkdir */ + return -KEY_mkdir; + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'i' && + name[3] == 'n' && + name[4] == 't') + { /* print */ + return KEY_print; + } + + goto unknown; + + case 'r': + switch (name[1]) + { + case 'e': + if (name[2] == 's' && + name[3] == 'e' && + name[4] == 't') + { /* reset */ + return -KEY_reset; + } + + goto unknown; + + case 'm': + if (name[2] == 'd' && + name[3] == 'i' && + name[4] == 'r') + { /* rmdir */ + return -KEY_rmdir; + } + + goto unknown; + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 'm' && + name[3] == 'o' && + name[4] == 'p') + { /* semop */ + return -KEY_semop; + } + + goto unknown; + + case 'h': + if (name[2] == 'i' && + name[3] == 'f' && + name[4] == 't') + { /* shift */ + return -KEY_shift; + } + + goto unknown; + + case 'l': + if (name[2] == 'e' && + name[3] == 'e' && + name[4] == 'p') + { /* sleep */ + return -KEY_sleep; + } + + goto unknown; + + case 'p': + if (name[2] == 'l' && + name[3] == 'i' && + name[4] == 't') + { /* split */ + return KEY_split; + } + + goto unknown; + + case 'r': + if (name[2] == 'a' && + name[3] == 'n' && + name[4] == 'd') + { /* srand */ + return -KEY_srand; + } + + goto unknown; + + case 't': + switch (name[2]) + { + case 'a': + if (name[3] == 't' && + name[4] == 'e') + { /* state */ + return (all_keywords || FEATURE_IS_ENABLED("state") ? KEY_state : 0); + } + + goto unknown; + + case 'u': + if (name[3] == 'd' && + name[4] == 'y') + { /* study */ + return KEY_study; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 't': + if (name[1] == 'i' && + name[2] == 'm' && + name[3] == 'e' && + name[4] == 's') + { /* times */ + return -KEY_times; + } + + goto unknown; + + case 'u': + switch (name[1]) + { + case 'm': + if (name[2] == 'a' && + name[3] == 's' && + name[4] == 'k') + { /* umask */ + return -KEY_umask; + } + + goto unknown; + + case 'n': + switch (name[2]) + { + case 'd': + if (name[3] == 'e' && + name[4] == 'f') + { /* undef */ + return KEY_undef; + } + + goto unknown; + + case 't': + if (name[3] == 'i') + { + switch (name[4]) + { + case 'e': + { /* untie */ + return -KEY_untie; + } + + case 'l': + { /* until */ + return KEY_until; + } + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[2] == 'i' && + name[3] == 'm' && + name[4] == 'e') + { /* utime */ + return -KEY_utime; + } + + goto unknown; + + default: + goto unknown; + } + + case 'w': + switch (name[1]) + { + case 'h': + if (name[2] == 'i' && + name[3] == 'l' && + name[4] == 'e') + { /* while */ + return KEY_while; + } + + goto unknown; + + case 'r': + if (name[2] == 'i' && + name[3] == 't' && + name[4] == 'e') + { /* write */ + return -KEY_write; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 6: /* 33 tokens of length 6 */ + switch (name[0]) + { + case 'a': + if (name[1] == 'c' && + name[2] == 'c' && + name[3] == 'e' && + name[4] == 'p' && + name[5] == 't') + { /* accept */ + return -KEY_accept; + } + + goto unknown; + + case 'c': + switch (name[1]) + { + case 'a': + if (name[2] == 'l' && + name[3] == 'l' && + name[4] == 'e' && + name[5] == 'r') + { /* caller */ + return -KEY_caller; + } + + goto unknown; + + case 'h': + if (name[2] == 'r' && + name[3] == 'o' && + name[4] == 'o' && + name[5] == 't') + { /* chroot */ + return -KEY_chroot; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'e' && + name[2] == 'l' && + name[3] == 'e' && + name[4] == 't' && + name[5] == 'e') + { /* delete */ + return KEY_delete; + } + + goto unknown; + + case 'e': + switch (name[1]) + { + case 'l': + if (name[2] == 's' && + name[3] == 'e' && + name[4] == 'i' && + name[5] == 'f') + { /* elseif */ + Perl_ck_warner_d(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif"); + } + + goto unknown; + + case 'x': + if (name[2] == 'i' && + name[3] == 's' && + name[4] == 't' && + name[5] == 's') + { /* exists */ + return KEY_exists; + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + switch (name[1]) + { + case 'i': + if (name[2] == 'l' && + name[3] == 'e' && + name[4] == 'n' && + name[5] == 'o') + { /* fileno */ + return -KEY_fileno; + } + + goto unknown; + + case 'o': + if (name[2] == 'r' && + name[3] == 'm' && + name[4] == 'a' && + name[5] == 't') + { /* format */ + return KEY_format; + } + + goto unknown; + + default: + goto unknown; + } + + case 'g': + if (name[1] == 'm' && + name[2] == 't' && + name[3] == 'i' && + name[4] == 'm' && + name[5] == 'e') + { /* gmtime */ + return -KEY_gmtime; + } + + goto unknown; + + case 'l': + switch (name[1]) + { + case 'e': + if (name[2] == 'n' && + name[3] == 'g' && + name[4] == 't' && + name[5] == 'h') + { /* length */ + return -KEY_length; + } + + goto unknown; + + case 'i': + if (name[2] == 's' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'n') + { /* listen */ + return -KEY_listen; + } + + goto unknown; + + default: + goto unknown; + } + + case 'm': + if (name[1] == 's' && + name[2] == 'g') + { + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* msgctl */ + return -KEY_msgctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* msgget */ + return -KEY_msgget; + } + + goto unknown; + + case 'r': + if (name[4] == 'c' && + name[5] == 'v') + { /* msgrcv */ + return -KEY_msgrcv; + } + + goto unknown; + + case 's': + if (name[4] == 'n' && + name[5] == 'd') + { /* msgsnd */ + return -KEY_msgsnd; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'i' && + name[3] == 'n' && + name[4] == 't' && + name[5] == 'f') + { /* printf */ + return KEY_printf; + } + + goto unknown; + + case 'r': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'n': + if (name[3] == 'a' && + name[4] == 'm' && + name[5] == 'e') + { /* rename */ + return -KEY_rename; + } + + goto unknown; + + case 't': + if (name[3] == 'u' && + name[4] == 'r' && + name[5] == 'n') + { /* return */ + return KEY_return; + } + + goto unknown; + + default: + goto unknown; + } + + case 'i': + if (name[2] == 'n' && + name[3] == 'd' && + name[4] == 'e' && + name[5] == 'x') + { /* rindex */ + return -KEY_rindex; + } + + goto unknown; + + default: + goto unknown; + } + + case 's': + switch (name[1]) + { + case 'c': + if (name[2] == 'a' && + name[3] == 'l' && + name[4] == 'a' && + name[5] == 'r') + { /* scalar */ + return KEY_scalar; + } + + goto unknown; + + case 'e': + switch (name[2]) + { + case 'l': + if (name[3] == 'e' && + name[4] == 'c' && + name[5] == 't') + { /* select */ + return -KEY_select; + } + + goto unknown; + + case 'm': + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* semctl */ + return -KEY_semctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* semget */ + return -KEY_semget; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 'h': + if (name[2] == 'm') + { + switch (name[3]) + { + case 'c': + if (name[4] == 't' && + name[5] == 'l') + { /* shmctl */ + return -KEY_shmctl; + } + + goto unknown; + + case 'g': + if (name[4] == 'e' && + name[5] == 't') + { /* shmget */ + return -KEY_shmget; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k' && + name[4] == 'e' && + name[5] == 't') + { /* socket */ + return -KEY_socket; + } + + goto unknown; + + case 'p': + if (name[2] == 'l' && + name[3] == 'i' && + name[4] == 'c' && + name[5] == 'e') + { /* splice */ + return -KEY_splice; + } + + goto unknown; + + case 'u': + if (name[2] == 'b' && + name[3] == 's' && + name[4] == 't' && + name[5] == 'r') + { /* substr */ + return -KEY_substr; + } + + goto unknown; + + case 'y': + if (name[2] == 's' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'm') + { /* system */ + return -KEY_system; + } + + goto unknown; + + default: + goto unknown; + } + + case 'u': + if (name[1] == 'n') + { + switch (name[2]) + { + case 'l': + switch (name[3]) + { + case 'e': + if (name[4] == 's' && + name[5] == 's') + { /* unless */ + return KEY_unless; + } + + goto unknown; + + case 'i': + if (name[4] == 'n' && + name[5] == 'k') + { /* unlink */ + return -KEY_unlink; + } + + goto unknown; + + default: + goto unknown; + } + + case 'p': + if (name[3] == 'a' && + name[4] == 'c' && + name[5] == 'k') + { /* unpack */ + return -KEY_unpack; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'v': + if (name[1] == 'a' && + name[2] == 'l' && + name[3] == 'u' && + name[4] == 'e' && + name[5] == 's') + { /* values */ + return -KEY_values; + } + + goto unknown; + + default: + goto unknown; + } + + case 7: /* 29 tokens of length 7 */ + switch (name[0]) + { + case 'D': + if (name[1] == 'E' && + name[2] == 'S' && + name[3] == 'T' && + name[4] == 'R' && + name[5] == 'O' && + name[6] == 'Y') + { /* DESTROY */ + return KEY_DESTROY; + } + + goto unknown; + + case '_': + if (name[1] == '_' && + name[2] == 'E' && + name[3] == 'N' && + name[4] == 'D' && + name[5] == '_' && + name[6] == '_') + { /* __END__ */ + return KEY___END__; + } + + goto unknown; + + case 'b': + if (name[1] == 'i' && + name[2] == 'n' && + name[3] == 'm' && + name[4] == 'o' && + name[5] == 'd' && + name[6] == 'e') + { /* binmode */ + return -KEY_binmode; + } + + goto unknown; + + case 'c': + if (name[1] == 'o' && + name[2] == 'n' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 'c' && + name[6] == 't') + { /* connect */ + return -KEY_connect; + } + + goto unknown; + + case 'd': + switch (name[1]) + { + case 'b': + if (name[2] == 'm' && + name[3] == 'o' && + name[4] == 'p' && + name[5] == 'e' && + name[6] == 'n') + { /* dbmopen */ + return -KEY_dbmopen; + } + + goto unknown; + + case 'e': + if (name[2] == 'f') + { + switch (name[3]) + { + case 'a': + if (name[4] == 'u' && + name[5] == 'l' && + name[6] == 't') + { /* default */ + return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_default : 0); + } + + goto unknown; + + case 'i': + if (name[4] == 'n' && + name[5] == 'e' && + name[6] == 'd') + { /* defined */ + return KEY_defined; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'e' && + name[4] == 'a' && + name[5] == 'c' && + name[6] == 'h') + { /* foreach */ + return KEY_foreach; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'p') + { + switch (name[4]) + { + case 'g': + if (name[5] == 'r' && + name[6] == 'p') + { /* getpgrp */ + return -KEY_getpgrp; + } + + goto unknown; + + case 'p': + if (name[5] == 'i' && + name[6] == 'd') + { /* getppid */ + return -KEY_getppid; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'l': + if (name[1] == 'c' && + name[2] == 'f' && + name[3] == 'i' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 't') + { /* lcfirst */ + return -KEY_lcfirst; + } + + goto unknown; + + case 'o': + if (name[1] == 'p' && + name[2] == 'e' && + name[3] == 'n' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* opendir */ + return -KEY_opendir; + } + + goto unknown; + + case 'p': + if (name[1] == 'a' && + name[2] == 'c' && + name[3] == 'k' && + name[4] == 'a' && + name[5] == 'g' && + name[6] == 'e') + { /* package */ + return KEY_package; + } + + goto unknown; + + case 'r': + if (name[1] == 'e') + { + switch (name[2]) + { + case 'a': + if (name[3] == 'd' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* readdir */ + return -KEY_readdir; + } + + goto unknown; + + case 'q': + if (name[3] == 'u' && + name[4] == 'i' && + name[5] == 'r' && + name[6] == 'e') + { /* require */ + return KEY_require; + } + + goto unknown; + + case 'v': + if (name[3] == 'e' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 'e') + { /* reverse */ + return -KEY_reverse; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + switch (name[2]) + { + case 'e': + if (name[3] == 'k' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* seekdir */ + return -KEY_seekdir; + } + + goto unknown; + + case 't': + if (name[3] == 'p' && + name[4] == 'g' && + name[5] == 'r' && + name[6] == 'p') + { /* setpgrp */ + return -KEY_setpgrp; + } + + goto unknown; + + default: + goto unknown; + } + + case 'h': + if (name[2] == 'm' && + name[3] == 'r' && + name[4] == 'e' && + name[5] == 'a' && + name[6] == 'd') + { /* shmread */ + return -KEY_shmread; + } + + goto unknown; + + case 'p': + if (name[2] == 'r' && + name[3] == 'i' && + name[4] == 'n' && + name[5] == 't' && + name[6] == 'f') + { /* sprintf */ + return -KEY_sprintf; + } + + goto unknown; + + case 'y': + switch (name[2]) + { + case 'm': + if (name[3] == 'l' && + name[4] == 'i' && + name[5] == 'n' && + name[6] == 'k') + { /* symlink */ + return -KEY_symlink; + } + + goto unknown; + + case 's': + switch (name[3]) + { + case 'c': + if (name[4] == 'a' && + name[5] == 'l' && + name[6] == 'l') + { /* syscall */ + return -KEY_syscall; + } + + goto unknown; + + case 'o': + if (name[4] == 'p' && + name[5] == 'e' && + name[6] == 'n') + { /* sysopen */ + return -KEY_sysopen; + } + + goto unknown; + + case 'r': + if (name[4] == 'e' && + name[5] == 'a' && + name[6] == 'd') + { /* sysread */ + return -KEY_sysread; + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'e' && + name[6] == 'k') + { /* sysseek */ + return -KEY_sysseek; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 't': + if (name[1] == 'e' && + name[2] == 'l' && + name[3] == 'l' && + name[4] == 'd' && + name[5] == 'i' && + name[6] == 'r') + { /* telldir */ + return -KEY_telldir; + } + + goto unknown; + + case 'u': + switch (name[1]) + { + case 'c': + if (name[2] == 'f' && + name[3] == 'i' && + name[4] == 'r' && + name[5] == 's' && + name[6] == 't') + { /* ucfirst */ + return -KEY_ucfirst; + } + + goto unknown; + + case 'n': + if (name[2] == 's' && + name[3] == 'h' && + name[4] == 'i' && + name[5] == 'f' && + name[6] == 't') + { /* unshift */ + return -KEY_unshift; + } + + goto unknown; + + default: + goto unknown; + } + + case 'w': + if (name[1] == 'a' && + name[2] == 'i' && + name[3] == 't' && + name[4] == 'p' && + name[5] == 'i' && + name[6] == 'd') + { /* waitpid */ + return -KEY_waitpid; + } + + goto unknown; + + default: + goto unknown; + } + + case 8: /* 26 tokens of length 8 */ + switch (name[0]) + { + case 'A': + if (name[1] == 'U' && + name[2] == 'T' && + name[3] == 'O' && + name[4] == 'L' && + name[5] == 'O' && + name[6] == 'A' && + name[7] == 'D') + { /* AUTOLOAD */ + return KEY_AUTOLOAD; + } + + goto unknown; + + case '_': + if (name[1] == '_') + { + switch (name[2]) + { + case 'D': + if (name[3] == 'A' && + name[4] == 'T' && + name[5] == 'A' && + name[6] == '_' && + name[7] == '_') + { /* __DATA__ */ + return KEY___DATA__; + } + + goto unknown; + + case 'F': + if (name[3] == 'I' && + name[4] == 'L' && + name[5] == 'E' && + name[6] == '_' && + name[7] == '_') + { /* __FILE__ */ + return -KEY___FILE__; + } + + goto unknown; + + case 'L': + if (name[3] == 'I' && + name[4] == 'N' && + name[5] == 'E' && + name[6] == '_' && + name[7] == '_') + { /* __LINE__ */ + return -KEY___LINE__; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'c': + switch (name[1]) + { + case 'l': + if (name[2] == 'o' && + name[3] == 's' && + name[4] == 'e' && + name[5] == 'd' && + name[6] == 'i' && + name[7] == 'r') + { /* closedir */ + return -KEY_closedir; + } + + goto unknown; + + case 'o': + if (name[2] == 'n' && + name[3] == 't' && + name[4] == 'i' && + name[5] == 'n' && + name[6] == 'u' && + name[7] == 'e') + { /* continue */ + return -KEY_continue; + } + + goto unknown; + + default: + goto unknown; + } + + case 'd': + if (name[1] == 'b' && + name[2] == 'm' && + name[3] == 'c' && + name[4] == 'l' && + name[5] == 'o' && + name[6] == 's' && + name[7] == 'e') + { /* dbmclose */ + return -KEY_dbmclose; + } + + goto unknown; + + case 'e': + if (name[1] == 'n' && + name[2] == 'd') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* endgrent */ + return -KEY_endgrent; + } + + goto unknown; + + case 'p': + if (name[4] == 'w' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* endpwent */ + return -KEY_endpwent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'f': + if (name[1] == 'o' && + name[2] == 'r' && + name[3] == 'm' && + name[4] == 'l' && + name[5] == 'i' && + name[6] == 'n' && + name[7] == 'e') + { /* formline */ + return -KEY_formline; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r') + { + switch (name[5]) + { + case 'e': + if (name[6] == 'n' && + name[7] == 't') + { /* getgrent */ + return -KEY_getgrent; + } + + goto unknown; + + case 'g': + if (name[6] == 'i' && + name[7] == 'd') + { /* getgrgid */ + return -KEY_getgrgid; + } + + goto unknown; + + case 'n': + if (name[6] == 'a' && + name[7] == 'm') + { /* getgrnam */ + return -KEY_getgrnam; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'l': + if (name[4] == 'o' && + name[5] == 'g' && + name[6] == 'i' && + name[7] == 'n') + { /* getlogin */ + return -KEY_getlogin; + } + + goto unknown; + + case 'p': + if (name[4] == 'w') + { + switch (name[5]) + { + case 'e': + if (name[6] == 'n' && + name[7] == 't') + { /* getpwent */ + return -KEY_getpwent; + } + + goto unknown; + + case 'n': + if (name[6] == 'a' && + name[7] == 'm') + { /* getpwnam */ + return -KEY_getpwnam; + } + + goto unknown; + + case 'u': + if (name[6] == 'i' && + name[7] == 'd') + { /* getpwuid */ + return -KEY_getpwuid; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'a' && + name[3] == 'd') + { + switch (name[4]) + { + case 'l': + if (name[5] == 'i' && + name[6] == 'n') + { + switch (name[7]) + { + case 'e': + { /* readline */ + return -KEY_readline; + } + + case 'k': + { /* readlink */ + return -KEY_readlink; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 'p': + if (name[5] == 'i' && + name[6] == 'p' && + name[7] == 'e') + { /* readpipe */ + return -KEY_readpipe; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 't') + { + switch (name[3]) + { + case 'g': + if (name[4] == 'r' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* setgrent */ + return -KEY_setgrent; + } + + goto unknown; + + case 'p': + if (name[4] == 'w' && + name[5] == 'e' && + name[6] == 'n' && + name[7] == 't') + { /* setpwent */ + return -KEY_setpwent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'h': + switch (name[2]) + { + case 'm': + if (name[3] == 'w' && + name[4] == 'r' && + name[5] == 'i' && + name[6] == 't' && + name[7] == 'e') + { /* shmwrite */ + return -KEY_shmwrite; + } + + goto unknown; + + case 'u': + if (name[3] == 't' && + name[4] == 'd' && + name[5] == 'o' && + name[6] == 'w' && + name[7] == 'n') + { /* shutdown */ + return -KEY_shutdown; + } + + goto unknown; + + default: + goto unknown; + } + + case 'y': + if (name[2] == 's' && + name[3] == 'w' && + name[4] == 'r' && + name[5] == 'i' && + name[6] == 't' && + name[7] == 'e') + { /* syswrite */ + return -KEY_syswrite; + } + + goto unknown; + + default: + goto unknown; + } + + case 't': + if (name[1] == 'r' && + name[2] == 'u' && + name[3] == 'n' && + name[4] == 'c' && + name[5] == 'a' && + name[6] == 't' && + name[7] == 'e') + { /* truncate */ + return -KEY_truncate; + } + + goto unknown; + + default: + goto unknown; + } + + case 9: /* 9 tokens of length 9 */ + switch (name[0]) + { + case 'U': + if (name[1] == 'N' && + name[2] == 'I' && + name[3] == 'T' && + name[4] == 'C' && + name[5] == 'H' && + name[6] == 'E' && + name[7] == 'C' && + name[8] == 'K') + { /* UNITCHECK */ + return KEY_UNITCHECK; + } + + goto unknown; + + case 'e': + if (name[1] == 'n' && + name[2] == 'd' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* endnetent */ + return -KEY_endnetent; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* getnetent */ + return -KEY_getnetent; + } + + goto unknown; + + case 'l': + if (name[1] == 'o' && + name[2] == 'c' && + name[3] == 'a' && + name[4] == 'l' && + name[5] == 't' && + name[6] == 'i' && + name[7] == 'm' && + name[8] == 'e') + { /* localtime */ + return -KEY_localtime; + } + + goto unknown; + + case 'p': + if (name[1] == 'r' && + name[2] == 'o' && + name[3] == 't' && + name[4] == 'o' && + name[5] == 't' && + name[6] == 'y' && + name[7] == 'p' && + name[8] == 'e') + { /* prototype */ + return KEY_prototype; + } + + goto unknown; + + case 'q': + if (name[1] == 'u' && + name[2] == 'o' && + name[3] == 't' && + name[4] == 'e' && + name[5] == 'm' && + name[6] == 'e' && + name[7] == 't' && + name[8] == 'a') + { /* quotemeta */ + return -KEY_quotemeta; + } + + goto unknown; + + case 'r': + if (name[1] == 'e' && + name[2] == 'w' && + name[3] == 'i' && + name[4] == 'n' && + name[5] == 'd' && + name[6] == 'd' && + name[7] == 'i' && + name[8] == 'r') + { /* rewinddir */ + return -KEY_rewinddir; + } + + goto unknown; + + case 's': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'e' && + name[7] == 'n' && + name[8] == 't') + { /* setnetent */ + return -KEY_setnetent; + } + + goto unknown; + + case 'w': + if (name[1] == 'a' && + name[2] == 'n' && + name[3] == 't' && + name[4] == 'a' && + name[5] == 'r' && + name[6] == 'r' && + name[7] == 'a' && + name[8] == 'y') + { /* wantarray */ + return -KEY_wantarray; + } + + goto unknown; + + default: + goto unknown; + } + + case 10: /* 9 tokens of length 10 */ + switch (name[0]) + { + case 'e': + if (name[1] == 'n' && + name[2] == 'd') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* endhostent */ + return -KEY_endhostent; + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* endservent */ + return -KEY_endservent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* gethostent */ + return -KEY_gethostent; + } + + goto unknown; + + case 's': + switch (name[4]) + { + case 'e': + if (name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* getservent */ + return -KEY_getservent; + } + + goto unknown; + + case 'o': + if (name[5] == 'c' && + name[6] == 'k' && + name[7] == 'o' && + name[8] == 'p' && + name[9] == 't') + { /* getsockopt */ + return -KEY_getsockopt; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + switch (name[1]) + { + case 'e': + if (name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* sethostent */ + return -KEY_sethostent; + } + + goto unknown; + + case 's': + switch (name[4]) + { + case 'e': + if (name[5] == 'r' && + name[6] == 'v' && + name[7] == 'e' && + name[8] == 'n' && + name[9] == 't') + { /* setservent */ + return -KEY_setservent; + } + + goto unknown; + + case 'o': + if (name[5] == 'c' && + name[6] == 'k' && + name[7] == 'o' && + name[8] == 'p' && + name[9] == 't') + { /* setsockopt */ + return -KEY_setsockopt; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + } + + goto unknown; + + case 'o': + if (name[2] == 'c' && + name[3] == 'k' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'p' && + name[7] == 'a' && + name[8] == 'i' && + name[9] == 'r') + { /* socketpair */ + return -KEY_socketpair; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 11: /* 8 tokens of length 11 */ + switch (name[0]) + { + case '_': + if (name[1] == '_' && + name[2] == 'P' && + name[3] == 'A' && + name[4] == 'C' && + name[5] == 'K' && + name[6] == 'A' && + name[7] == 'G' && + name[8] == 'E' && + name[9] == '_' && + name[10] == '_') + { /* __PACKAGE__ */ + return -KEY___PACKAGE__; + } + + goto unknown; + + case 'e': + if (name[1] == 'n' && + name[2] == 'd' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* endprotoent */ + return -KEY_endprotoent; + } + + goto unknown; + + case 'g': + if (name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'p': + switch (name[4]) + { + case 'e': + if (name[5] == 'e' && + name[6] == 'r' && + name[7] == 'n' && + name[8] == 'a' && + name[9] == 'm' && + name[10] == 'e') + { /* getpeername */ + return -KEY_getpeername; + } + + goto unknown; + + case 'r': + switch (name[5]) + { + case 'i': + if (name[6] == 'o' && + name[7] == 'r' && + name[8] == 'i' && + name[9] == 't' && + name[10] == 'y') + { /* getpriority */ + return -KEY_getpriority; + } + + goto unknown; + + case 'o': + if (name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* getprotoent */ + return -KEY_getprotoent; + } + + goto unknown; + + default: + goto unknown; + } + + default: + goto unknown; + } + + case 's': + if (name[4] == 'o' && + name[5] == 'c' && + name[6] == 'k' && + name[7] == 'n' && + name[8] == 'a' && + name[9] == 'm' && + name[10] == 'e') + { /* getsockname */ + return -KEY_getsockname; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + if (name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r') + { + switch (name[5]) + { + case 'i': + if (name[6] == 'o' && + name[7] == 'r' && + name[8] == 'i' && + name[9] == 't' && + name[10] == 'y') + { /* setpriority */ + return -KEY_setpriority; + } + + goto unknown; + + case 'o': + if (name[6] == 't' && + name[7] == 'o' && + name[8] == 'e' && + name[9] == 'n' && + name[10] == 't') + { /* setprotoent */ + return -KEY_setprotoent; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + + case 12: /* 2 tokens of length 12 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'n' && + name[4] == 'e' && + name[5] == 't' && + name[6] == 'b' && + name[7] == 'y') + { + switch (name[8]) + { + case 'a': + if (name[9] == 'd' && + name[10] == 'd' && + name[11] == 'r') + { /* getnetbyaddr */ + return -KEY_getnetbyaddr; + } + + goto unknown; + + case 'n': + if (name[9] == 'a' && + name[10] == 'm' && + name[11] == 'e') + { /* getnetbyname */ + return -KEY_getnetbyname; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 13: /* 4 tokens of length 13 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't') + { + switch (name[3]) + { + case 'h': + if (name[4] == 'o' && + name[5] == 's' && + name[6] == 't' && + name[7] == 'b' && + name[8] == 'y') + { + switch (name[9]) + { + case 'a': + if (name[10] == 'd' && + name[11] == 'd' && + name[12] == 'r') + { /* gethostbyaddr */ + return -KEY_gethostbyaddr; + } + + goto unknown; + + case 'n': + if (name[10] == 'a' && + name[11] == 'm' && + name[12] == 'e') + { /* gethostbyname */ + return -KEY_gethostbyname; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 's': + if (name[4] == 'e' && + name[5] == 'r' && + name[6] == 'v' && + name[7] == 'b' && + name[8] == 'y') + { + switch (name[9]) + { + case 'n': + if (name[10] == 'a' && + name[11] == 'm' && + name[12] == 'e') + { /* getservbyname */ + return -KEY_getservbyname; + } + + goto unknown; + + case 'p': + if (name[10] == 'o' && + name[11] == 'r' && + name[12] == 't') + { /* getservbyport */ + return -KEY_getservbyport; + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + default: + goto unknown; + } + } + + goto unknown; + + case 14: /* 1 tokens of length 14 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'b' && + name[9] == 'y' && + name[10] == 'n' && + name[11] == 'a' && + name[12] == 'm' && + name[13] == 'e') + { /* getprotobyname */ + return -KEY_getprotobyname; + } + + goto unknown; + + case 16: /* 1 tokens of length 16 */ + if (name[0] == 'g' && + name[1] == 'e' && + name[2] == 't' && + name[3] == 'p' && + name[4] == 'r' && + name[5] == 'o' && + name[6] == 't' && + name[7] == 'o' && + name[8] == 'b' && + name[9] == 'y' && + name[10] == 'n' && + name[11] == 'u' && + name[12] == 'm' && + name[13] == 'b' && + name[14] == 'e' && + name[15] == 'r') + { /* getprotobynumber */ + return -KEY_getprotobynumber; + } + + goto unknown; + + default: + goto unknown; + } + +unknown: + return 0; +} @@ -6142,6 +6142,14 @@ extern void moncontrol(int); #define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE #define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII +#ifdef PERL_CORE +# define FEATURE_IS_ENABLED(name) \ + ((0 != (PL_hints & HINT_LOCALIZE_HH)) \ + && Perl_feature_is_enabled(aTHX_ STR_WITH_LEN(name))) +/* The longest string we pass in. */ +# define MAX_FEATURE_LEN (sizeof("unicode_strings")-1) +#endif + /* (KEEP THIS LAST IN perl.h!) diff --git a/perl_keyword.pl b/perl_keyword.pl index 63813ab2b2..7eecff60bb 100644 --- a/perl_keyword.pl +++ b/perl_keyword.pl @@ -65,6 +65,11 @@ print <<END; * The following code was generated by $0. */ +#include "EXTERN.h" +#define PERL_IN_KEYWORDS_C +#include "perl.h" +#include "keywords.h" + I32 Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords) { @@ -925,6 +925,11 @@ PERL_CALLCONV char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bige #define PERL_ARGS_ASSERT_FBM_INSTR \ assert(big); assert(bigend); assert(littlestr) +PERL_CALLCONV bool Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \ + assert(name) + PERL_CALLCONV const char * Perl_fetch_cop_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_FETCH_COP_LABEL \ @@ -6378,11 +6383,6 @@ STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what assert(s); assert(name); assert(what) STATIC int S_deprecate_commaless_var_list(pTHX); -STATIC bool S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \ - assert(name) - STATIC char * S_filter_gets(pTHX_ SV *sv, STRLEN append) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -588,18 +588,11 @@ S_missingterm(pTHX_ char *s) Perl_croak(aTHX_ "Can't find string terminator %c%s%c anywhere before EOF",q,s,q); } -#define FEATURE_IS_ENABLED(name) \ - ((0 != (PL_hints & HINT_LOCALIZE_HH)) \ - && S_feature_is_enabled(aTHX_ STR_WITH_LEN(name))) -/* The longest string we pass in. */ -#define MAX_FEATURE_LEN (sizeof("unicode_strings")-1) - /* - * S_feature_is_enabled * Check whether the named feature is enabled. */ -STATIC bool -S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) +bool +Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) { dVAR; HV * const hinthv = GvHV(PL_hintgv); @@ -607,7 +600,8 @@ S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) PERL_ARGS_ASSERT_FEATURE_IS_ENABLED; - assert(namelen <= MAX_FEATURE_LEN); + if (namelen > MAX_FEATURE_LEN) + return FALSE; memcpy(&he_name[8], name, namelen); return (hinthv && hv_exists(hinthv, he_name, 8 + namelen)); @@ -8388,3399 +8382,6 @@ S_pending_ident(pTHX) return WORD; } -/* - * The following code was generated by perl_keyword.pl. - */ - -I32 -Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords) -{ - dVAR; - - PERL_ARGS_ASSERT_KEYWORD; - - switch (len) - { - case 1: /* 5 tokens of length 1 */ - switch (name[0]) - { - case 'm': - { /* m */ - return KEY_m; - } - - case 'q': - { /* q */ - return KEY_q; - } - - case 's': - { /* s */ - return KEY_s; - } - - case 'x': - { /* x */ - return -KEY_x; - } - - case 'y': - { /* y */ - return KEY_y; - } - - default: - goto unknown; - } - - case 2: /* 18 tokens of length 2 */ - switch (name[0]) - { - case 'd': - if (name[1] == 'o') - { /* do */ - return KEY_do; - } - - goto unknown; - - case 'e': - if (name[1] == 'q') - { /* eq */ - return -KEY_eq; - } - - goto unknown; - - case 'g': - switch (name[1]) - { - case 'e': - { /* ge */ - return -KEY_ge; - } - - case 't': - { /* gt */ - return -KEY_gt; - } - - default: - goto unknown; - } - - case 'i': - if (name[1] == 'f') - { /* if */ - return KEY_if; - } - - goto unknown; - - case 'l': - switch (name[1]) - { - case 'c': - { /* lc */ - return -KEY_lc; - } - - case 'e': - { /* le */ - return -KEY_le; - } - - case 't': - { /* lt */ - return -KEY_lt; - } - - default: - goto unknown; - } - - case 'm': - if (name[1] == 'y') - { /* my */ - return KEY_my; - } - - goto unknown; - - case 'n': - switch (name[1]) - { - case 'e': - { /* ne */ - return -KEY_ne; - } - - case 'o': - { /* no */ - return KEY_no; - } - - default: - goto unknown; - } - - case 'o': - if (name[1] == 'r') - { /* or */ - return -KEY_or; - } - - goto unknown; - - case 'q': - switch (name[1]) - { - case 'q': - { /* qq */ - return KEY_qq; - } - - case 'r': - { /* qr */ - return KEY_qr; - } - - case 'w': - { /* qw */ - return KEY_qw; - } - - case 'x': - { /* qx */ - return KEY_qx; - } - - default: - goto unknown; - } - - case 't': - if (name[1] == 'r') - { /* tr */ - return KEY_tr; - } - - goto unknown; - - case 'u': - if (name[1] == 'c') - { /* uc */ - return -KEY_uc; - } - - goto unknown; - - default: - goto unknown; - } - - case 3: /* 29 tokens of length 3 */ - switch (name[0]) - { - case 'E': - if (name[1] == 'N' && - name[2] == 'D') - { /* END */ - return KEY_END; - } - - goto unknown; - - case 'a': - switch (name[1]) - { - case 'b': - if (name[2] == 's') - { /* abs */ - return -KEY_abs; - } - - goto unknown; - - case 'n': - if (name[2] == 'd') - { /* and */ - return -KEY_and; - } - - goto unknown; - - default: - goto unknown; - } - - case 'c': - switch (name[1]) - { - case 'h': - if (name[2] == 'r') - { /* chr */ - return -KEY_chr; - } - - goto unknown; - - case 'm': - if (name[2] == 'p') - { /* cmp */ - return -KEY_cmp; - } - - goto unknown; - - case 'o': - if (name[2] == 's') - { /* cos */ - return -KEY_cos; - } - - goto unknown; - - default: - goto unknown; - } - - case 'd': - if (name[1] == 'i' && - name[2] == 'e') - { /* die */ - return -KEY_die; - } - - goto unknown; - - case 'e': - switch (name[1]) - { - case 'o': - if (name[2] == 'f') - { /* eof */ - return -KEY_eof; - } - - goto unknown; - - case 'x': - if (name[2] == 'p') - { /* exp */ - return -KEY_exp; - } - - goto unknown; - - default: - goto unknown; - } - - case 'f': - if (name[1] == 'o' && - name[2] == 'r') - { /* for */ - return KEY_for; - } - - goto unknown; - - case 'h': - if (name[1] == 'e' && - name[2] == 'x') - { /* hex */ - return -KEY_hex; - } - - goto unknown; - - case 'i': - if (name[1] == 'n' && - name[2] == 't') - { /* int */ - return -KEY_int; - } - - goto unknown; - - case 'l': - if (name[1] == 'o' && - name[2] == 'g') - { /* log */ - return -KEY_log; - } - - goto unknown; - - case 'm': - if (name[1] == 'a' && - name[2] == 'p') - { /* map */ - return KEY_map; - } - - goto unknown; - - case 'n': - if (name[1] == 'o' && - name[2] == 't') - { /* not */ - return -KEY_not; - } - - goto unknown; - - case 'o': - switch (name[1]) - { - case 'c': - if (name[2] == 't') - { /* oct */ - return -KEY_oct; - } - - goto unknown; - - case 'r': - if (name[2] == 'd') - { /* ord */ - return -KEY_ord; - } - - goto unknown; - - case 'u': - if (name[2] == 'r') - { /* our */ - return KEY_our; - } - - goto unknown; - - default: - goto unknown; - } - - case 'p': - if (name[1] == 'o') - { - switch (name[2]) - { - case 'p': - { /* pop */ - return -KEY_pop; - } - - case 's': - { /* pos */ - return KEY_pos; - } - - default: - goto unknown; - } - } - - goto unknown; - - case 'r': - if (name[1] == 'e' && - name[2] == 'f') - { /* ref */ - return -KEY_ref; - } - - goto unknown; - - case 's': - switch (name[1]) - { - case 'a': - if (name[2] == 'y') - { /* say */ - return (all_keywords || FEATURE_IS_ENABLED("say") ? KEY_say : 0); - } - - goto unknown; - - case 'i': - if (name[2] == 'n') - { /* sin */ - return -KEY_sin; - } - - goto unknown; - - case 'u': - if (name[2] == 'b') - { /* sub */ - return KEY_sub; - } - - goto unknown; - - default: - goto unknown; - } - - case 't': - if (name[1] == 'i' && - name[2] == 'e') - { /* tie */ - return -KEY_tie; - } - - goto unknown; - - case 'u': - if (name[1] == 's' && - name[2] == 'e') - { /* use */ - return KEY_use; - } - - goto unknown; - - case 'v': - if (name[1] == 'e' && - name[2] == 'c') - { /* vec */ - return -KEY_vec; - } - - goto unknown; - - case 'x': - if (name[1] == 'o' && - name[2] == 'r') - { /* xor */ - return -KEY_xor; - } - - goto unknown; - - default: - goto unknown; - } - - case 4: /* 41 tokens of length 4 */ - switch (name[0]) - { - case 'C': - if (name[1] == 'O' && - name[2] == 'R' && - name[3] == 'E') - { /* CORE */ - return -KEY_CORE; - } - - goto unknown; - - case 'I': - if (name[1] == 'N' && - name[2] == 'I' && - name[3] == 'T') - { /* INIT */ - return KEY_INIT; - } - - goto unknown; - - case 'b': - if (name[1] == 'i' && - name[2] == 'n' && - name[3] == 'd') - { /* bind */ - return -KEY_bind; - } - - goto unknown; - - case 'c': - if (name[1] == 'h' && - name[2] == 'o' && - name[3] == 'p') - { /* chop */ - return -KEY_chop; - } - - goto unknown; - - case 'd': - if (name[1] == 'u' && - name[2] == 'm' && - name[3] == 'p') - { /* dump */ - return -KEY_dump; - } - - goto unknown; - - case 'e': - switch (name[1]) - { - case 'a': - if (name[2] == 'c' && - name[3] == 'h') - { /* each */ - return -KEY_each; - } - - goto unknown; - - case 'l': - if (name[2] == 's' && - name[3] == 'e') - { /* else */ - return KEY_else; - } - - goto unknown; - - case 'v': - if (name[2] == 'a' && - name[3] == 'l') - { /* eval */ - return KEY_eval; - } - - goto unknown; - - case 'x': - switch (name[2]) - { - case 'e': - if (name[3] == 'c') - { /* exec */ - return -KEY_exec; - } - - goto unknown; - - case 'i': - if (name[3] == 't') - { /* exit */ - return -KEY_exit; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 'f': - if (name[1] == 'o' && - name[2] == 'r' && - name[3] == 'k') - { /* fork */ - return -KEY_fork; - } - - goto unknown; - - case 'g': - switch (name[1]) - { - case 'e': - if (name[2] == 't' && - name[3] == 'c') - { /* getc */ - return -KEY_getc; - } - - goto unknown; - - case 'l': - if (name[2] == 'o' && - name[3] == 'b') - { /* glob */ - return KEY_glob; - } - - goto unknown; - - case 'o': - if (name[2] == 't' && - name[3] == 'o') - { /* goto */ - return KEY_goto; - } - - goto unknown; - - case 'r': - if (name[2] == 'e' && - name[3] == 'p') - { /* grep */ - return KEY_grep; - } - - goto unknown; - - default: - goto unknown; - } - - case 'j': - if (name[1] == 'o' && - name[2] == 'i' && - name[3] == 'n') - { /* join */ - return -KEY_join; - } - - goto unknown; - - case 'k': - switch (name[1]) - { - case 'e': - if (name[2] == 'y' && - name[3] == 's') - { /* keys */ - return -KEY_keys; - } - - goto unknown; - - case 'i': - if (name[2] == 'l' && - name[3] == 'l') - { /* kill */ - return -KEY_kill; - } - - goto unknown; - - default: - goto unknown; - } - - case 'l': - switch (name[1]) - { - case 'a': - if (name[2] == 's' && - name[3] == 't') - { /* last */ - return KEY_last; - } - - goto unknown; - - case 'i': - if (name[2] == 'n' && - name[3] == 'k') - { /* link */ - return -KEY_link; - } - - goto unknown; - - case 'o': - if (name[2] == 'c' && - name[3] == 'k') - { /* lock */ - return -KEY_lock; - } - - goto unknown; - - default: - goto unknown; - } - - case 'n': - if (name[1] == 'e' && - name[2] == 'x' && - name[3] == 't') - { /* next */ - return KEY_next; - } - - goto unknown; - - case 'o': - if (name[1] == 'p' && - name[2] == 'e' && - name[3] == 'n') - { /* open */ - return -KEY_open; - } - - goto unknown; - - case 'p': - switch (name[1]) - { - case 'a': - if (name[2] == 'c' && - name[3] == 'k') - { /* pack */ - return -KEY_pack; - } - - goto unknown; - - case 'i': - if (name[2] == 'p' && - name[3] == 'e') - { /* pipe */ - return -KEY_pipe; - } - - goto unknown; - - case 'u': - if (name[2] == 's' && - name[3] == 'h') - { /* push */ - return -KEY_push; - } - - goto unknown; - - default: - goto unknown; - } - - case 'r': - switch (name[1]) - { - case 'a': - if (name[2] == 'n' && - name[3] == 'd') - { /* rand */ - return -KEY_rand; - } - - goto unknown; - - case 'e': - switch (name[2]) - { - case 'a': - if (name[3] == 'd') - { /* read */ - return -KEY_read; - } - - goto unknown; - - case 'c': - if (name[3] == 'v') - { /* recv */ - return -KEY_recv; - } - - goto unknown; - - case 'd': - if (name[3] == 'o') - { /* redo */ - return KEY_redo; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 's': - switch (name[1]) - { - case 'e': - switch (name[2]) - { - case 'e': - if (name[3] == 'k') - { /* seek */ - return -KEY_seek; - } - - goto unknown; - - case 'n': - if (name[3] == 'd') - { /* send */ - return -KEY_send; - } - - goto unknown; - - default: - goto unknown; - } - - case 'o': - if (name[2] == 'r' && - name[3] == 't') - { /* sort */ - return KEY_sort; - } - - goto unknown; - - case 'q': - if (name[2] == 'r' && - name[3] == 't') - { /* sqrt */ - return -KEY_sqrt; - } - - goto unknown; - - case 't': - if (name[2] == 'a' && - name[3] == 't') - { /* stat */ - return -KEY_stat; - } - - goto unknown; - - default: - goto unknown; - } - - case 't': - switch (name[1]) - { - case 'e': - if (name[2] == 'l' && - name[3] == 'l') - { /* tell */ - return -KEY_tell; - } - - goto unknown; - - case 'i': - switch (name[2]) - { - case 'e': - if (name[3] == 'd') - { /* tied */ - return -KEY_tied; - } - - goto unknown; - - case 'm': - if (name[3] == 'e') - { /* time */ - return -KEY_time; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 'w': - switch (name[1]) - { - case 'a': - switch (name[2]) - { - case 'i': - if (name[3] == 't') - { /* wait */ - return -KEY_wait; - } - - goto unknown; - - case 'r': - if (name[3] == 'n') - { /* warn */ - return -KEY_warn; - } - - goto unknown; - - default: - goto unknown; - } - - case 'h': - if (name[2] == 'e' && - name[3] == 'n') - { /* when */ - return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_when : 0); - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 5: /* 39 tokens of length 5 */ - switch (name[0]) - { - case 'B': - if (name[1] == 'E' && - name[2] == 'G' && - name[3] == 'I' && - name[4] == 'N') - { /* BEGIN */ - return KEY_BEGIN; - } - - goto unknown; - - case 'C': - if (name[1] == 'H' && - name[2] == 'E' && - name[3] == 'C' && - name[4] == 'K') - { /* CHECK */ - return KEY_CHECK; - } - - goto unknown; - - case 'a': - switch (name[1]) - { - case 'l': - if (name[2] == 'a' && - name[3] == 'r' && - name[4] == 'm') - { /* alarm */ - return -KEY_alarm; - } - - goto unknown; - - case 't': - if (name[2] == 'a' && - name[3] == 'n' && - name[4] == '2') - { /* atan2 */ - return -KEY_atan2; - } - - goto unknown; - - default: - goto unknown; - } - - case 'b': - switch (name[1]) - { - case 'l': - if (name[2] == 'e' && - name[3] == 's' && - name[4] == 's') - { /* bless */ - return -KEY_bless; - } - - goto unknown; - - case 'r': - if (name[2] == 'e' && - name[3] == 'a' && - name[4] == 'k') - { /* break */ - return (all_keywords || FEATURE_IS_ENABLED("switch") ? -KEY_break : 0); - } - - goto unknown; - - default: - goto unknown; - } - - case 'c': - switch (name[1]) - { - case 'h': - switch (name[2]) - { - case 'd': - if (name[3] == 'i' && - name[4] == 'r') - { /* chdir */ - return -KEY_chdir; - } - - goto unknown; - - case 'm': - if (name[3] == 'o' && - name[4] == 'd') - { /* chmod */ - return -KEY_chmod; - } - - goto unknown; - - case 'o': - switch (name[3]) - { - case 'm': - if (name[4] == 'p') - { /* chomp */ - return -KEY_chomp; - } - - goto unknown; - - case 'w': - if (name[4] == 'n') - { /* chown */ - return -KEY_chown; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 'l': - if (name[2] == 'o' && - name[3] == 's' && - name[4] == 'e') - { /* close */ - return -KEY_close; - } - - goto unknown; - - case 'r': - if (name[2] == 'y' && - name[3] == 'p' && - name[4] == 't') - { /* crypt */ - return -KEY_crypt; - } - - goto unknown; - - default: - goto unknown; - } - - case 'e': - if (name[1] == 'l' && - name[2] == 's' && - name[3] == 'i' && - name[4] == 'f') - { /* elsif */ - return KEY_elsif; - } - - goto unknown; - - case 'f': - switch (name[1]) - { - case 'c': - if (name[2] == 'n' && - name[3] == 't' && - name[4] == 'l') - { /* fcntl */ - return -KEY_fcntl; - } - - goto unknown; - - case 'l': - if (name[2] == 'o' && - name[3] == 'c' && - name[4] == 'k') - { /* flock */ - return -KEY_flock; - } - - goto unknown; - - default: - goto unknown; - } - - case 'g': - if (name[1] == 'i' && - name[2] == 'v' && - name[3] == 'e' && - name[4] == 'n') - { /* given */ - return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_given : 0); - } - - goto unknown; - - case 'i': - switch (name[1]) - { - case 'n': - if (name[2] == 'd' && - name[3] == 'e' && - name[4] == 'x') - { /* index */ - return -KEY_index; - } - - goto unknown; - - case 'o': - if (name[2] == 'c' && - name[3] == 't' && - name[4] == 'l') - { /* ioctl */ - return -KEY_ioctl; - } - - goto unknown; - - default: - goto unknown; - } - - case 'l': - switch (name[1]) - { - case 'o': - if (name[2] == 'c' && - name[3] == 'a' && - name[4] == 'l') - { /* local */ - return KEY_local; - } - - goto unknown; - - case 's': - if (name[2] == 't' && - name[3] == 'a' && - name[4] == 't') - { /* lstat */ - return -KEY_lstat; - } - - goto unknown; - - default: - goto unknown; - } - - case 'm': - if (name[1] == 'k' && - name[2] == 'd' && - name[3] == 'i' && - name[4] == 'r') - { /* mkdir */ - return -KEY_mkdir; - } - - goto unknown; - - case 'p': - if (name[1] == 'r' && - name[2] == 'i' && - name[3] == 'n' && - name[4] == 't') - { /* print */ - return KEY_print; - } - - goto unknown; - - case 'r': - switch (name[1]) - { - case 'e': - if (name[2] == 's' && - name[3] == 'e' && - name[4] == 't') - { /* reset */ - return -KEY_reset; - } - - goto unknown; - - case 'm': - if (name[2] == 'd' && - name[3] == 'i' && - name[4] == 'r') - { /* rmdir */ - return -KEY_rmdir; - } - - goto unknown; - - default: - goto unknown; - } - - case 's': - switch (name[1]) - { - case 'e': - if (name[2] == 'm' && - name[3] == 'o' && - name[4] == 'p') - { /* semop */ - return -KEY_semop; - } - - goto unknown; - - case 'h': - if (name[2] == 'i' && - name[3] == 'f' && - name[4] == 't') - { /* shift */ - return -KEY_shift; - } - - goto unknown; - - case 'l': - if (name[2] == 'e' && - name[3] == 'e' && - name[4] == 'p') - { /* sleep */ - return -KEY_sleep; - } - - goto unknown; - - case 'p': - if (name[2] == 'l' && - name[3] == 'i' && - name[4] == 't') - { /* split */ - return KEY_split; - } - - goto unknown; - - case 'r': - if (name[2] == 'a' && - name[3] == 'n' && - name[4] == 'd') - { /* srand */ - return -KEY_srand; - } - - goto unknown; - - case 't': - switch (name[2]) - { - case 'a': - if (name[3] == 't' && - name[4] == 'e') - { /* state */ - return (all_keywords || FEATURE_IS_ENABLED("state") ? KEY_state : 0); - } - - goto unknown; - - case 'u': - if (name[3] == 'd' && - name[4] == 'y') - { /* study */ - return KEY_study; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 't': - if (name[1] == 'i' && - name[2] == 'm' && - name[3] == 'e' && - name[4] == 's') - { /* times */ - return -KEY_times; - } - - goto unknown; - - case 'u': - switch (name[1]) - { - case 'm': - if (name[2] == 'a' && - name[3] == 's' && - name[4] == 'k') - { /* umask */ - return -KEY_umask; - } - - goto unknown; - - case 'n': - switch (name[2]) - { - case 'd': - if (name[3] == 'e' && - name[4] == 'f') - { /* undef */ - return KEY_undef; - } - - goto unknown; - - case 't': - if (name[3] == 'i') - { - switch (name[4]) - { - case 'e': - { /* untie */ - return -KEY_untie; - } - - case 'l': - { /* until */ - return KEY_until; - } - - default: - goto unknown; - } - } - - goto unknown; - - default: - goto unknown; - } - - case 't': - if (name[2] == 'i' && - name[3] == 'm' && - name[4] == 'e') - { /* utime */ - return -KEY_utime; - } - - goto unknown; - - default: - goto unknown; - } - - case 'w': - switch (name[1]) - { - case 'h': - if (name[2] == 'i' && - name[3] == 'l' && - name[4] == 'e') - { /* while */ - return KEY_while; - } - - goto unknown; - - case 'r': - if (name[2] == 'i' && - name[3] == 't' && - name[4] == 'e') - { /* write */ - return -KEY_write; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 6: /* 33 tokens of length 6 */ - switch (name[0]) - { - case 'a': - if (name[1] == 'c' && - name[2] == 'c' && - name[3] == 'e' && - name[4] == 'p' && - name[5] == 't') - { /* accept */ - return -KEY_accept; - } - - goto unknown; - - case 'c': - switch (name[1]) - { - case 'a': - if (name[2] == 'l' && - name[3] == 'l' && - name[4] == 'e' && - name[5] == 'r') - { /* caller */ - return -KEY_caller; - } - - goto unknown; - - case 'h': - if (name[2] == 'r' && - name[3] == 'o' && - name[4] == 'o' && - name[5] == 't') - { /* chroot */ - return -KEY_chroot; - } - - goto unknown; - - default: - goto unknown; - } - - case 'd': - if (name[1] == 'e' && - name[2] == 'l' && - name[3] == 'e' && - name[4] == 't' && - name[5] == 'e') - { /* delete */ - return KEY_delete; - } - - goto unknown; - - case 'e': - switch (name[1]) - { - case 'l': - if (name[2] == 's' && - name[3] == 'e' && - name[4] == 'i' && - name[5] == 'f') - { /* elseif */ - Perl_ck_warner_d(aTHX_ packWARN(WARN_SYNTAX), "elseif should be elsif"); - } - - goto unknown; - - case 'x': - if (name[2] == 'i' && - name[3] == 's' && - name[4] == 't' && - name[5] == 's') - { /* exists */ - return KEY_exists; - } - - goto unknown; - - default: - goto unknown; - } - - case 'f': - switch (name[1]) - { - case 'i': - if (name[2] == 'l' && - name[3] == 'e' && - name[4] == 'n' && - name[5] == 'o') - { /* fileno */ - return -KEY_fileno; - } - - goto unknown; - - case 'o': - if (name[2] == 'r' && - name[3] == 'm' && - name[4] == 'a' && - name[5] == 't') - { /* format */ - return KEY_format; - } - - goto unknown; - - default: - goto unknown; - } - - case 'g': - if (name[1] == 'm' && - name[2] == 't' && - name[3] == 'i' && - name[4] == 'm' && - name[5] == 'e') - { /* gmtime */ - return -KEY_gmtime; - } - - goto unknown; - - case 'l': - switch (name[1]) - { - case 'e': - if (name[2] == 'n' && - name[3] == 'g' && - name[4] == 't' && - name[5] == 'h') - { /* length */ - return -KEY_length; - } - - goto unknown; - - case 'i': - if (name[2] == 's' && - name[3] == 't' && - name[4] == 'e' && - name[5] == 'n') - { /* listen */ - return -KEY_listen; - } - - goto unknown; - - default: - goto unknown; - } - - case 'm': - if (name[1] == 's' && - name[2] == 'g') - { - switch (name[3]) - { - case 'c': - if (name[4] == 't' && - name[5] == 'l') - { /* msgctl */ - return -KEY_msgctl; - } - - goto unknown; - - case 'g': - if (name[4] == 'e' && - name[5] == 't') - { /* msgget */ - return -KEY_msgget; - } - - goto unknown; - - case 'r': - if (name[4] == 'c' && - name[5] == 'v') - { /* msgrcv */ - return -KEY_msgrcv; - } - - goto unknown; - - case 's': - if (name[4] == 'n' && - name[5] == 'd') - { /* msgsnd */ - return -KEY_msgsnd; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'p': - if (name[1] == 'r' && - name[2] == 'i' && - name[3] == 'n' && - name[4] == 't' && - name[5] == 'f') - { /* printf */ - return KEY_printf; - } - - goto unknown; - - case 'r': - switch (name[1]) - { - case 'e': - switch (name[2]) - { - case 'n': - if (name[3] == 'a' && - name[4] == 'm' && - name[5] == 'e') - { /* rename */ - return -KEY_rename; - } - - goto unknown; - - case 't': - if (name[3] == 'u' && - name[4] == 'r' && - name[5] == 'n') - { /* return */ - return KEY_return; - } - - goto unknown; - - default: - goto unknown; - } - - case 'i': - if (name[2] == 'n' && - name[3] == 'd' && - name[4] == 'e' && - name[5] == 'x') - { /* rindex */ - return -KEY_rindex; - } - - goto unknown; - - default: - goto unknown; - } - - case 's': - switch (name[1]) - { - case 'c': - if (name[2] == 'a' && - name[3] == 'l' && - name[4] == 'a' && - name[5] == 'r') - { /* scalar */ - return KEY_scalar; - } - - goto unknown; - - case 'e': - switch (name[2]) - { - case 'l': - if (name[3] == 'e' && - name[4] == 'c' && - name[5] == 't') - { /* select */ - return -KEY_select; - } - - goto unknown; - - case 'm': - switch (name[3]) - { - case 'c': - if (name[4] == 't' && - name[5] == 'l') - { /* semctl */ - return -KEY_semctl; - } - - goto unknown; - - case 'g': - if (name[4] == 'e' && - name[5] == 't') - { /* semget */ - return -KEY_semget; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 'h': - if (name[2] == 'm') - { - switch (name[3]) - { - case 'c': - if (name[4] == 't' && - name[5] == 'l') - { /* shmctl */ - return -KEY_shmctl; - } - - goto unknown; - - case 'g': - if (name[4] == 'e' && - name[5] == 't') - { /* shmget */ - return -KEY_shmget; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'o': - if (name[2] == 'c' && - name[3] == 'k' && - name[4] == 'e' && - name[5] == 't') - { /* socket */ - return -KEY_socket; - } - - goto unknown; - - case 'p': - if (name[2] == 'l' && - name[3] == 'i' && - name[4] == 'c' && - name[5] == 'e') - { /* splice */ - return -KEY_splice; - } - - goto unknown; - - case 'u': - if (name[2] == 'b' && - name[3] == 's' && - name[4] == 't' && - name[5] == 'r') - { /* substr */ - return -KEY_substr; - } - - goto unknown; - - case 'y': - if (name[2] == 's' && - name[3] == 't' && - name[4] == 'e' && - name[5] == 'm') - { /* system */ - return -KEY_system; - } - - goto unknown; - - default: - goto unknown; - } - - case 'u': - if (name[1] == 'n') - { - switch (name[2]) - { - case 'l': - switch (name[3]) - { - case 'e': - if (name[4] == 's' && - name[5] == 's') - { /* unless */ - return KEY_unless; - } - - goto unknown; - - case 'i': - if (name[4] == 'n' && - name[5] == 'k') - { /* unlink */ - return -KEY_unlink; - } - - goto unknown; - - default: - goto unknown; - } - - case 'p': - if (name[3] == 'a' && - name[4] == 'c' && - name[5] == 'k') - { /* unpack */ - return -KEY_unpack; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'v': - if (name[1] == 'a' && - name[2] == 'l' && - name[3] == 'u' && - name[4] == 'e' && - name[5] == 's') - { /* values */ - return -KEY_values; - } - - goto unknown; - - default: - goto unknown; - } - - case 7: /* 29 tokens of length 7 */ - switch (name[0]) - { - case 'D': - if (name[1] == 'E' && - name[2] == 'S' && - name[3] == 'T' && - name[4] == 'R' && - name[5] == 'O' && - name[6] == 'Y') - { /* DESTROY */ - return KEY_DESTROY; - } - - goto unknown; - - case '_': - if (name[1] == '_' && - name[2] == 'E' && - name[3] == 'N' && - name[4] == 'D' && - name[5] == '_' && - name[6] == '_') - { /* __END__ */ - return KEY___END__; - } - - goto unknown; - - case 'b': - if (name[1] == 'i' && - name[2] == 'n' && - name[3] == 'm' && - name[4] == 'o' && - name[5] == 'd' && - name[6] == 'e') - { /* binmode */ - return -KEY_binmode; - } - - goto unknown; - - case 'c': - if (name[1] == 'o' && - name[2] == 'n' && - name[3] == 'n' && - name[4] == 'e' && - name[5] == 'c' && - name[6] == 't') - { /* connect */ - return -KEY_connect; - } - - goto unknown; - - case 'd': - switch (name[1]) - { - case 'b': - if (name[2] == 'm' && - name[3] == 'o' && - name[4] == 'p' && - name[5] == 'e' && - name[6] == 'n') - { /* dbmopen */ - return -KEY_dbmopen; - } - - goto unknown; - - case 'e': - if (name[2] == 'f') - { - switch (name[3]) - { - case 'a': - if (name[4] == 'u' && - name[5] == 'l' && - name[6] == 't') - { /* default */ - return (all_keywords || FEATURE_IS_ENABLED("switch") ? KEY_default : 0); - } - - goto unknown; - - case 'i': - if (name[4] == 'n' && - name[5] == 'e' && - name[6] == 'd') - { /* defined */ - return KEY_defined; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - default: - goto unknown; - } - - case 'f': - if (name[1] == 'o' && - name[2] == 'r' && - name[3] == 'e' && - name[4] == 'a' && - name[5] == 'c' && - name[6] == 'h') - { /* foreach */ - return KEY_foreach; - } - - goto unknown; - - case 'g': - if (name[1] == 'e' && - name[2] == 't' && - name[3] == 'p') - { - switch (name[4]) - { - case 'g': - if (name[5] == 'r' && - name[6] == 'p') - { /* getpgrp */ - return -KEY_getpgrp; - } - - goto unknown; - - case 'p': - if (name[5] == 'i' && - name[6] == 'd') - { /* getppid */ - return -KEY_getppid; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'l': - if (name[1] == 'c' && - name[2] == 'f' && - name[3] == 'i' && - name[4] == 'r' && - name[5] == 's' && - name[6] == 't') - { /* lcfirst */ - return -KEY_lcfirst; - } - - goto unknown; - - case 'o': - if (name[1] == 'p' && - name[2] == 'e' && - name[3] == 'n' && - name[4] == 'd' && - name[5] == 'i' && - name[6] == 'r') - { /* opendir */ - return -KEY_opendir; - } - - goto unknown; - - case 'p': - if (name[1] == 'a' && - name[2] == 'c' && - name[3] == 'k' && - name[4] == 'a' && - name[5] == 'g' && - name[6] == 'e') - { /* package */ - return KEY_package; - } - - goto unknown; - - case 'r': - if (name[1] == 'e') - { - switch (name[2]) - { - case 'a': - if (name[3] == 'd' && - name[4] == 'd' && - name[5] == 'i' && - name[6] == 'r') - { /* readdir */ - return -KEY_readdir; - } - - goto unknown; - - case 'q': - if (name[3] == 'u' && - name[4] == 'i' && - name[5] == 'r' && - name[6] == 'e') - { /* require */ - return KEY_require; - } - - goto unknown; - - case 'v': - if (name[3] == 'e' && - name[4] == 'r' && - name[5] == 's' && - name[6] == 'e') - { /* reverse */ - return -KEY_reverse; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 's': - switch (name[1]) - { - case 'e': - switch (name[2]) - { - case 'e': - if (name[3] == 'k' && - name[4] == 'd' && - name[5] == 'i' && - name[6] == 'r') - { /* seekdir */ - return -KEY_seekdir; - } - - goto unknown; - - case 't': - if (name[3] == 'p' && - name[4] == 'g' && - name[5] == 'r' && - name[6] == 'p') - { /* setpgrp */ - return -KEY_setpgrp; - } - - goto unknown; - - default: - goto unknown; - } - - case 'h': - if (name[2] == 'm' && - name[3] == 'r' && - name[4] == 'e' && - name[5] == 'a' && - name[6] == 'd') - { /* shmread */ - return -KEY_shmread; - } - - goto unknown; - - case 'p': - if (name[2] == 'r' && - name[3] == 'i' && - name[4] == 'n' && - name[5] == 't' && - name[6] == 'f') - { /* sprintf */ - return -KEY_sprintf; - } - - goto unknown; - - case 'y': - switch (name[2]) - { - case 'm': - if (name[3] == 'l' && - name[4] == 'i' && - name[5] == 'n' && - name[6] == 'k') - { /* symlink */ - return -KEY_symlink; - } - - goto unknown; - - case 's': - switch (name[3]) - { - case 'c': - if (name[4] == 'a' && - name[5] == 'l' && - name[6] == 'l') - { /* syscall */ - return -KEY_syscall; - } - - goto unknown; - - case 'o': - if (name[4] == 'p' && - name[5] == 'e' && - name[6] == 'n') - { /* sysopen */ - return -KEY_sysopen; - } - - goto unknown; - - case 'r': - if (name[4] == 'e' && - name[5] == 'a' && - name[6] == 'd') - { /* sysread */ - return -KEY_sysread; - } - - goto unknown; - - case 's': - if (name[4] == 'e' && - name[5] == 'e' && - name[6] == 'k') - { /* sysseek */ - return -KEY_sysseek; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 't': - if (name[1] == 'e' && - name[2] == 'l' && - name[3] == 'l' && - name[4] == 'd' && - name[5] == 'i' && - name[6] == 'r') - { /* telldir */ - return -KEY_telldir; - } - - goto unknown; - - case 'u': - switch (name[1]) - { - case 'c': - if (name[2] == 'f' && - name[3] == 'i' && - name[4] == 'r' && - name[5] == 's' && - name[6] == 't') - { /* ucfirst */ - return -KEY_ucfirst; - } - - goto unknown; - - case 'n': - if (name[2] == 's' && - name[3] == 'h' && - name[4] == 'i' && - name[5] == 'f' && - name[6] == 't') - { /* unshift */ - return -KEY_unshift; - } - - goto unknown; - - default: - goto unknown; - } - - case 'w': - if (name[1] == 'a' && - name[2] == 'i' && - name[3] == 't' && - name[4] == 'p' && - name[5] == 'i' && - name[6] == 'd') - { /* waitpid */ - return -KEY_waitpid; - } - - goto unknown; - - default: - goto unknown; - } - - case 8: /* 26 tokens of length 8 */ - switch (name[0]) - { - case 'A': - if (name[1] == 'U' && - name[2] == 'T' && - name[3] == 'O' && - name[4] == 'L' && - name[5] == 'O' && - name[6] == 'A' && - name[7] == 'D') - { /* AUTOLOAD */ - return KEY_AUTOLOAD; - } - - goto unknown; - - case '_': - if (name[1] == '_') - { - switch (name[2]) - { - case 'D': - if (name[3] == 'A' && - name[4] == 'T' && - name[5] == 'A' && - name[6] == '_' && - name[7] == '_') - { /* __DATA__ */ - return KEY___DATA__; - } - - goto unknown; - - case 'F': - if (name[3] == 'I' && - name[4] == 'L' && - name[5] == 'E' && - name[6] == '_' && - name[7] == '_') - { /* __FILE__ */ - return -KEY___FILE__; - } - - goto unknown; - - case 'L': - if (name[3] == 'I' && - name[4] == 'N' && - name[5] == 'E' && - name[6] == '_' && - name[7] == '_') - { /* __LINE__ */ - return -KEY___LINE__; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'c': - switch (name[1]) - { - case 'l': - if (name[2] == 'o' && - name[3] == 's' && - name[4] == 'e' && - name[5] == 'd' && - name[6] == 'i' && - name[7] == 'r') - { /* closedir */ - return -KEY_closedir; - } - - goto unknown; - - case 'o': - if (name[2] == 'n' && - name[3] == 't' && - name[4] == 'i' && - name[5] == 'n' && - name[6] == 'u' && - name[7] == 'e') - { /* continue */ - return -KEY_continue; - } - - goto unknown; - - default: - goto unknown; - } - - case 'd': - if (name[1] == 'b' && - name[2] == 'm' && - name[3] == 'c' && - name[4] == 'l' && - name[5] == 'o' && - name[6] == 's' && - name[7] == 'e') - { /* dbmclose */ - return -KEY_dbmclose; - } - - goto unknown; - - case 'e': - if (name[1] == 'n' && - name[2] == 'd') - { - switch (name[3]) - { - case 'g': - if (name[4] == 'r' && - name[5] == 'e' && - name[6] == 'n' && - name[7] == 't') - { /* endgrent */ - return -KEY_endgrent; - } - - goto unknown; - - case 'p': - if (name[4] == 'w' && - name[5] == 'e' && - name[6] == 'n' && - name[7] == 't') - { /* endpwent */ - return -KEY_endpwent; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'f': - if (name[1] == 'o' && - name[2] == 'r' && - name[3] == 'm' && - name[4] == 'l' && - name[5] == 'i' && - name[6] == 'n' && - name[7] == 'e') - { /* formline */ - return -KEY_formline; - } - - goto unknown; - - case 'g': - if (name[1] == 'e' && - name[2] == 't') - { - switch (name[3]) - { - case 'g': - if (name[4] == 'r') - { - switch (name[5]) - { - case 'e': - if (name[6] == 'n' && - name[7] == 't') - { /* getgrent */ - return -KEY_getgrent; - } - - goto unknown; - - case 'g': - if (name[6] == 'i' && - name[7] == 'd') - { /* getgrgid */ - return -KEY_getgrgid; - } - - goto unknown; - - case 'n': - if (name[6] == 'a' && - name[7] == 'm') - { /* getgrnam */ - return -KEY_getgrnam; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'l': - if (name[4] == 'o' && - name[5] == 'g' && - name[6] == 'i' && - name[7] == 'n') - { /* getlogin */ - return -KEY_getlogin; - } - - goto unknown; - - case 'p': - if (name[4] == 'w') - { - switch (name[5]) - { - case 'e': - if (name[6] == 'n' && - name[7] == 't') - { /* getpwent */ - return -KEY_getpwent; - } - - goto unknown; - - case 'n': - if (name[6] == 'a' && - name[7] == 'm') - { /* getpwnam */ - return -KEY_getpwnam; - } - - goto unknown; - - case 'u': - if (name[6] == 'i' && - name[7] == 'd') - { /* getpwuid */ - return -KEY_getpwuid; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'r': - if (name[1] == 'e' && - name[2] == 'a' && - name[3] == 'd') - { - switch (name[4]) - { - case 'l': - if (name[5] == 'i' && - name[6] == 'n') - { - switch (name[7]) - { - case 'e': - { /* readline */ - return -KEY_readline; - } - - case 'k': - { /* readlink */ - return -KEY_readlink; - } - - default: - goto unknown; - } - } - - goto unknown; - - case 'p': - if (name[5] == 'i' && - name[6] == 'p' && - name[7] == 'e') - { /* readpipe */ - return -KEY_readpipe; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 's': - switch (name[1]) - { - case 'e': - if (name[2] == 't') - { - switch (name[3]) - { - case 'g': - if (name[4] == 'r' && - name[5] == 'e' && - name[6] == 'n' && - name[7] == 't') - { /* setgrent */ - return -KEY_setgrent; - } - - goto unknown; - - case 'p': - if (name[4] == 'w' && - name[5] == 'e' && - name[6] == 'n' && - name[7] == 't') - { /* setpwent */ - return -KEY_setpwent; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'h': - switch (name[2]) - { - case 'm': - if (name[3] == 'w' && - name[4] == 'r' && - name[5] == 'i' && - name[6] == 't' && - name[7] == 'e') - { /* shmwrite */ - return -KEY_shmwrite; - } - - goto unknown; - - case 'u': - if (name[3] == 't' && - name[4] == 'd' && - name[5] == 'o' && - name[6] == 'w' && - name[7] == 'n') - { /* shutdown */ - return -KEY_shutdown; - } - - goto unknown; - - default: - goto unknown; - } - - case 'y': - if (name[2] == 's' && - name[3] == 'w' && - name[4] == 'r' && - name[5] == 'i' && - name[6] == 't' && - name[7] == 'e') - { /* syswrite */ - return -KEY_syswrite; - } - - goto unknown; - - default: - goto unknown; - } - - case 't': - if (name[1] == 'r' && - name[2] == 'u' && - name[3] == 'n' && - name[4] == 'c' && - name[5] == 'a' && - name[6] == 't' && - name[7] == 'e') - { /* truncate */ - return -KEY_truncate; - } - - goto unknown; - - default: - goto unknown; - } - - case 9: /* 9 tokens of length 9 */ - switch (name[0]) - { - case 'U': - if (name[1] == 'N' && - name[2] == 'I' && - name[3] == 'T' && - name[4] == 'C' && - name[5] == 'H' && - name[6] == 'E' && - name[7] == 'C' && - name[8] == 'K') - { /* UNITCHECK */ - return KEY_UNITCHECK; - } - - goto unknown; - - case 'e': - if (name[1] == 'n' && - name[2] == 'd' && - name[3] == 'n' && - name[4] == 'e' && - name[5] == 't' && - name[6] == 'e' && - name[7] == 'n' && - name[8] == 't') - { /* endnetent */ - return -KEY_endnetent; - } - - goto unknown; - - case 'g': - if (name[1] == 'e' && - name[2] == 't' && - name[3] == 'n' && - name[4] == 'e' && - name[5] == 't' && - name[6] == 'e' && - name[7] == 'n' && - name[8] == 't') - { /* getnetent */ - return -KEY_getnetent; - } - - goto unknown; - - case 'l': - if (name[1] == 'o' && - name[2] == 'c' && - name[3] == 'a' && - name[4] == 'l' && - name[5] == 't' && - name[6] == 'i' && - name[7] == 'm' && - name[8] == 'e') - { /* localtime */ - return -KEY_localtime; - } - - goto unknown; - - case 'p': - if (name[1] == 'r' && - name[2] == 'o' && - name[3] == 't' && - name[4] == 'o' && - name[5] == 't' && - name[6] == 'y' && - name[7] == 'p' && - name[8] == 'e') - { /* prototype */ - return KEY_prototype; - } - - goto unknown; - - case 'q': - if (name[1] == 'u' && - name[2] == 'o' && - name[3] == 't' && - name[4] == 'e' && - name[5] == 'm' && - name[6] == 'e' && - name[7] == 't' && - name[8] == 'a') - { /* quotemeta */ - return -KEY_quotemeta; - } - - goto unknown; - - case 'r': - if (name[1] == 'e' && - name[2] == 'w' && - name[3] == 'i' && - name[4] == 'n' && - name[5] == 'd' && - name[6] == 'd' && - name[7] == 'i' && - name[8] == 'r') - { /* rewinddir */ - return -KEY_rewinddir; - } - - goto unknown; - - case 's': - if (name[1] == 'e' && - name[2] == 't' && - name[3] == 'n' && - name[4] == 'e' && - name[5] == 't' && - name[6] == 'e' && - name[7] == 'n' && - name[8] == 't') - { /* setnetent */ - return -KEY_setnetent; - } - - goto unknown; - - case 'w': - if (name[1] == 'a' && - name[2] == 'n' && - name[3] == 't' && - name[4] == 'a' && - name[5] == 'r' && - name[6] == 'r' && - name[7] == 'a' && - name[8] == 'y') - { /* wantarray */ - return -KEY_wantarray; - } - - goto unknown; - - default: - goto unknown; - } - - case 10: /* 9 tokens of length 10 */ - switch (name[0]) - { - case 'e': - if (name[1] == 'n' && - name[2] == 'd') - { - switch (name[3]) - { - case 'h': - if (name[4] == 'o' && - name[5] == 's' && - name[6] == 't' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* endhostent */ - return -KEY_endhostent; - } - - goto unknown; - - case 's': - if (name[4] == 'e' && - name[5] == 'r' && - name[6] == 'v' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* endservent */ - return -KEY_endservent; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 'g': - if (name[1] == 'e' && - name[2] == 't') - { - switch (name[3]) - { - case 'h': - if (name[4] == 'o' && - name[5] == 's' && - name[6] == 't' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* gethostent */ - return -KEY_gethostent; - } - - goto unknown; - - case 's': - switch (name[4]) - { - case 'e': - if (name[5] == 'r' && - name[6] == 'v' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* getservent */ - return -KEY_getservent; - } - - goto unknown; - - case 'o': - if (name[5] == 'c' && - name[6] == 'k' && - name[7] == 'o' && - name[8] == 'p' && - name[9] == 't') - { /* getsockopt */ - return -KEY_getsockopt; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - } - - goto unknown; - - case 's': - switch (name[1]) - { - case 'e': - if (name[2] == 't') - { - switch (name[3]) - { - case 'h': - if (name[4] == 'o' && - name[5] == 's' && - name[6] == 't' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* sethostent */ - return -KEY_sethostent; - } - - goto unknown; - - case 's': - switch (name[4]) - { - case 'e': - if (name[5] == 'r' && - name[6] == 'v' && - name[7] == 'e' && - name[8] == 'n' && - name[9] == 't') - { /* setservent */ - return -KEY_setservent; - } - - goto unknown; - - case 'o': - if (name[5] == 'c' && - name[6] == 'k' && - name[7] == 'o' && - name[8] == 'p' && - name[9] == 't') - { /* setsockopt */ - return -KEY_setsockopt; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - } - - goto unknown; - - case 'o': - if (name[2] == 'c' && - name[3] == 'k' && - name[4] == 'e' && - name[5] == 't' && - name[6] == 'p' && - name[7] == 'a' && - name[8] == 'i' && - name[9] == 'r') - { /* socketpair */ - return -KEY_socketpair; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 11: /* 8 tokens of length 11 */ - switch (name[0]) - { - case '_': - if (name[1] == '_' && - name[2] == 'P' && - name[3] == 'A' && - name[4] == 'C' && - name[5] == 'K' && - name[6] == 'A' && - name[7] == 'G' && - name[8] == 'E' && - name[9] == '_' && - name[10] == '_') - { /* __PACKAGE__ */ - return -KEY___PACKAGE__; - } - - goto unknown; - - case 'e': - if (name[1] == 'n' && - name[2] == 'd' && - name[3] == 'p' && - name[4] == 'r' && - name[5] == 'o' && - name[6] == 't' && - name[7] == 'o' && - name[8] == 'e' && - name[9] == 'n' && - name[10] == 't') - { /* endprotoent */ - return -KEY_endprotoent; - } - - goto unknown; - - case 'g': - if (name[1] == 'e' && - name[2] == 't') - { - switch (name[3]) - { - case 'p': - switch (name[4]) - { - case 'e': - if (name[5] == 'e' && - name[6] == 'r' && - name[7] == 'n' && - name[8] == 'a' && - name[9] == 'm' && - name[10] == 'e') - { /* getpeername */ - return -KEY_getpeername; - } - - goto unknown; - - case 'r': - switch (name[5]) - { - case 'i': - if (name[6] == 'o' && - name[7] == 'r' && - name[8] == 'i' && - name[9] == 't' && - name[10] == 'y') - { /* getpriority */ - return -KEY_getpriority; - } - - goto unknown; - - case 'o': - if (name[6] == 't' && - name[7] == 'o' && - name[8] == 'e' && - name[9] == 'n' && - name[10] == 't') - { /* getprotoent */ - return -KEY_getprotoent; - } - - goto unknown; - - default: - goto unknown; - } - - default: - goto unknown; - } - - case 's': - if (name[4] == 'o' && - name[5] == 'c' && - name[6] == 'k' && - name[7] == 'n' && - name[8] == 'a' && - name[9] == 'm' && - name[10] == 'e') - { /* getsockname */ - return -KEY_getsockname; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 's': - if (name[1] == 'e' && - name[2] == 't' && - name[3] == 'p' && - name[4] == 'r') - { - switch (name[5]) - { - case 'i': - if (name[6] == 'o' && - name[7] == 'r' && - name[8] == 'i' && - name[9] == 't' && - name[10] == 'y') - { /* setpriority */ - return -KEY_setpriority; - } - - goto unknown; - - case 'o': - if (name[6] == 't' && - name[7] == 'o' && - name[8] == 'e' && - name[9] == 'n' && - name[10] == 't') - { /* setprotoent */ - return -KEY_setprotoent; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - default: - goto unknown; - } - - case 12: /* 2 tokens of length 12 */ - if (name[0] == 'g' && - name[1] == 'e' && - name[2] == 't' && - name[3] == 'n' && - name[4] == 'e' && - name[5] == 't' && - name[6] == 'b' && - name[7] == 'y') - { - switch (name[8]) - { - case 'a': - if (name[9] == 'd' && - name[10] == 'd' && - name[11] == 'r') - { /* getnetbyaddr */ - return -KEY_getnetbyaddr; - } - - goto unknown; - - case 'n': - if (name[9] == 'a' && - name[10] == 'm' && - name[11] == 'e') - { /* getnetbyname */ - return -KEY_getnetbyname; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 13: /* 4 tokens of length 13 */ - if (name[0] == 'g' && - name[1] == 'e' && - name[2] == 't') - { - switch (name[3]) - { - case 'h': - if (name[4] == 'o' && - name[5] == 's' && - name[6] == 't' && - name[7] == 'b' && - name[8] == 'y') - { - switch (name[9]) - { - case 'a': - if (name[10] == 'd' && - name[11] == 'd' && - name[12] == 'r') - { /* gethostbyaddr */ - return -KEY_gethostbyaddr; - } - - goto unknown; - - case 'n': - if (name[10] == 'a' && - name[11] == 'm' && - name[12] == 'e') - { /* gethostbyname */ - return -KEY_gethostbyname; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 's': - if (name[4] == 'e' && - name[5] == 'r' && - name[6] == 'v' && - name[7] == 'b' && - name[8] == 'y') - { - switch (name[9]) - { - case 'n': - if (name[10] == 'a' && - name[11] == 'm' && - name[12] == 'e') - { /* getservbyname */ - return -KEY_getservbyname; - } - - goto unknown; - - case 'p': - if (name[10] == 'o' && - name[11] == 'r' && - name[12] == 't') - { /* getservbyport */ - return -KEY_getservbyport; - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - default: - goto unknown; - } - } - - goto unknown; - - case 14: /* 1 tokens of length 14 */ - if (name[0] == 'g' && - name[1] == 'e' && - name[2] == 't' && - name[3] == 'p' && - name[4] == 'r' && - name[5] == 'o' && - name[6] == 't' && - name[7] == 'o' && - name[8] == 'b' && - name[9] == 'y' && - name[10] == 'n' && - name[11] == 'a' && - name[12] == 'm' && - name[13] == 'e') - { /* getprotobyname */ - return -KEY_getprotobyname; - } - - goto unknown; - - case 16: /* 1 tokens of length 16 */ - if (name[0] == 'g' && - name[1] == 'e' && - name[2] == 't' && - name[3] == 'p' && - name[4] == 'r' && - name[5] == 'o' && - name[6] == 't' && - name[7] == 'o' && - name[8] == 'b' && - name[9] == 'y' && - name[10] == 'n' && - name[11] == 'u' && - name[12] == 'm' && - name[13] == 'b' && - name[14] == 'e' && - name[15] == 'r') - { /* getprotobynumber */ - return -KEY_getprotobynumber; - } - - goto unknown; - - default: - goto unknown; - } - -unknown: - return 0; -} - STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what) { diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index dcceff0c5f..73c2a31c10 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -289,7 +289,7 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2) c0 = $(MALLOC_C) $(SOCKC) av.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mro.c c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c perlapi.c perlio.c c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c reentr.c -c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c +c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c keywords.c c = $(c0) $(c1) $(c2) $(c3) obj0 = perl$(O) diff --git a/win32/Makefile b/win32/Makefile index 8e8dbc6d13..db96082a9f 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -620,6 +620,7 @@ MICROCORE_SRC = \ ..\mro.c \ ..\hv.c \ ..\locale.c \ + ..\keywords.c \ ..\mathoms.c \ ..\mg.c \ ..\numeric.c \ diff --git a/win32/Makefile.ce b/win32/Makefile.ce index cc2d06c147..b8bedea5c0 100644 --- a/win32/Makefile.ce +++ b/win32/Makefile.ce @@ -571,6 +571,7 @@ MICROCORE_SRC = \ ..\gv.c \ ..\mro.c \ ..\hv.c \ + ..\keywords.c \ ..\mg.c \ ..\op.c \ ..\pad.c \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 9f76c85963..c8a8b3f091 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -832,6 +832,7 @@ MICROCORE_SRC = \ ..\mro.c \ ..\hv.c \ ..\locale.c \ + ..\keywords.c \ ..\mathoms.c \ ..\mg.c \ ..\numeric.c \ |