X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.h;h=6789546b1987e650ac6386de60f96980fcc8e5a4;hb=f025e94b3bdd286f2ee3dc88718b923af2a6e55d;hp=587c138199c482c12ff1eeb45598e0f4bb688e9c;hpb=fc7325bb0fcb956b1876bcf7f14d8081004dc791;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.h b/opcode.h index 587c138..6789546 100644 --- a/opcode.h +++ b/opcode.h @@ -3,7 +3,7 @@ * opcode.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, 2005, 2006 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -386,6 +386,14 @@ EXTCONST char* const PL_op_name[] = { "method_named", "dor", "dorassign", + "entergiven", + "leavegiven", + "enterwhen", + "leavewhen", + "break", + "continue", + "smartmatch", + "say", "custom", }; #endif @@ -747,6 +755,14 @@ EXTCONST char* const PL_op_desc[] = { "method with known name", "defined or (//)", "defined or assignment (//=)", + "given()", + "leave given block", + "when()", + "leave when block", + "break", + "continue", + "smart match", + "say", "unknown custom operator", }; #endif @@ -758,13 +774,16 @@ END_EXTERN_C START_EXTERN_C #ifdef PERL_GLOBAL_STRUCT_INIT +# define PERL_PPADDR_INITED static const Perl_ppaddr_t Gppaddr[] #else # ifndef PERL_GLOBAL_STRUCT +# define PERL_PPADDR_INITED EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ # endif #endif /* PERL_GLOBAL_STRUCT */ #if (defined(DOINIT) && !defined(PERL_GLOBAL_STRUCT)) || defined(PERL_GLOBAL_STRUCT_INIT) +# define PERL_PPADDR_INITED = { MEMBER_TO_FPTR(Perl_pp_null), MEMBER_TO_FPTR(Perl_pp_stub), @@ -858,7 +877,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_sne), MEMBER_TO_FPTR(Perl_pp_scmp), MEMBER_TO_FPTR(Perl_pp_bit_and), - MEMBER_TO_FPTR(Perl_pp_bit_xor), + MEMBER_TO_FPTR(Perl_pp_bit_or), /* Perl_pp_bit_xor */ MEMBER_TO_FPTR(Perl_pp_bit_or), MEMBER_TO_FPTR(Perl_pp_negate), MEMBER_TO_FPTR(Perl_pp_i_negate), @@ -866,21 +885,21 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_complement), MEMBER_TO_FPTR(Perl_pp_atan2), MEMBER_TO_FPTR(Perl_pp_sin), - MEMBER_TO_FPTR(Perl_pp_cos), + MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_cos */ MEMBER_TO_FPTR(Perl_pp_rand), MEMBER_TO_FPTR(Perl_pp_srand), - MEMBER_TO_FPTR(Perl_pp_exp), - MEMBER_TO_FPTR(Perl_pp_log), - MEMBER_TO_FPTR(Perl_pp_sqrt), + MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_exp */ + MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_log */ + MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_sqrt */ MEMBER_TO_FPTR(Perl_pp_int), - MEMBER_TO_FPTR(Perl_pp_hex), + MEMBER_TO_FPTR(Perl_pp_oct), /* Perl_pp_hex */ MEMBER_TO_FPTR(Perl_pp_oct), MEMBER_TO_FPTR(Perl_pp_abs), MEMBER_TO_FPTR(Perl_pp_length), MEMBER_TO_FPTR(Perl_pp_substr), MEMBER_TO_FPTR(Perl_pp_vec), MEMBER_TO_FPTR(Perl_pp_index), - MEMBER_TO_FPTR(Perl_pp_rindex), + MEMBER_TO_FPTR(Perl_pp_index), /* Perl_pp_rindex */ MEMBER_TO_FPTR(Perl_pp_sprintf), MEMBER_TO_FPTR(Perl_pp_formline), MEMBER_TO_FPTR(Perl_pp_ord), @@ -913,7 +932,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_anonhash), MEMBER_TO_FPTR(Perl_pp_splice), MEMBER_TO_FPTR(Perl_pp_push), - MEMBER_TO_FPTR(Perl_pp_pop), + MEMBER_TO_FPTR(Perl_pp_shift), /* Perl_pp_pop */ MEMBER_TO_FPTR(Perl_pp_shift), MEMBER_TO_FPTR(Perl_pp_unshift), MEMBER_TO_FPTR(Perl_pp_sort), @@ -1119,18 +1138,31 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_method_named), MEMBER_TO_FPTR(Perl_pp_defined), /* Perl_pp_dor */ MEMBER_TO_FPTR(Perl_pp_defined), /* Perl_pp_dorassign */ + MEMBER_TO_FPTR(Perl_pp_entergiven), + MEMBER_TO_FPTR(Perl_pp_leavegiven), + MEMBER_TO_FPTR(Perl_pp_enterwhen), + MEMBER_TO_FPTR(Perl_pp_leavewhen), + MEMBER_TO_FPTR(Perl_pp_break), + MEMBER_TO_FPTR(Perl_pp_continue), + MEMBER_TO_FPTR(Perl_pp_smartmatch), + MEMBER_TO_FPTR(Perl_pp_print), /* Perl_pp_say */ } #endif +#ifdef PERL_PPADDR_INITED ; +#endif #ifdef PERL_GLOBAL_STRUCT_INIT +# define PERL_CHECK_INITED static const Perl_check_t Gcheck[] #else # ifndef PERL_GLOBAL_STRUCT +# define PERL_CHECK_INITED EXT Perl_check_t PL_check[] /* or perlvars.h */ # endif #endif #if (defined(DOINIT) && !defined(PERL_GLOBAL_STRUCT)) || defined(PERL_GLOBAL_STRUCT_INIT) +# define PERL_CHECK_INITED = { MEMBER_TO_FPTR(Perl_ck_null), /* null */ MEMBER_TO_FPTR(Perl_ck_null), /* stub */ @@ -1395,7 +1427,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_ftst), /* fttty */ MEMBER_TO_FPTR(Perl_ck_ftst), /* fttext */ MEMBER_TO_FPTR(Perl_ck_ftst), /* ftbinary */ - MEMBER_TO_FPTR(Perl_ck_fun), /* chdir */ + MEMBER_TO_FPTR(Perl_ck_chdir), /* chdir */ MEMBER_TO_FPTR(Perl_ck_fun), /* chown */ MEMBER_TO_FPTR(Perl_ck_fun), /* chroot */ MEMBER_TO_FPTR(Perl_ck_fun), /* unlink */ @@ -1485,17 +1517,27 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_null), /* method_named */ MEMBER_TO_FPTR(Perl_ck_null), /* dor */ MEMBER_TO_FPTR(Perl_ck_null), /* dorassign */ + MEMBER_TO_FPTR(Perl_ck_null), /* entergiven */ + MEMBER_TO_FPTR(Perl_ck_null), /* leavegiven */ + MEMBER_TO_FPTR(Perl_ck_null), /* enterwhen */ + MEMBER_TO_FPTR(Perl_ck_null), /* leavewhen */ + MEMBER_TO_FPTR(Perl_ck_null), /* break */ + MEMBER_TO_FPTR(Perl_ck_null), /* continue */ + MEMBER_TO_FPTR(Perl_ck_smartmatch), /* smartmatch */ + MEMBER_TO_FPTR(Perl_ck_listiob), /* say */ MEMBER_TO_FPTR(Perl_ck_null), /* custom */ } #endif +#ifdef PERL_CHECK_INITED ; +#endif /* #ifdef PERL_CHECK_INITED */ #ifndef PERL_GLOBAL_STRUCT_INIT #ifndef DOINIT -EXT const U32 PL_opargs[]; +EXTCONST U32 PL_opargs[]; #else -EXT const U32 PL_opargs[] = { +EXTCONST U32 PL_opargs[] = { 0x00000000, /* null */ 0x00000000, /* stub */ 0x00003604, /* scalar */ @@ -1520,7 +1562,7 @@ EXT const U32 PL_opargs[] = { 0x00002206, /* srefgen */ 0x0001368c, /* ref */ 0x00122804, /* bless */ - 0x00001608, /* backtick */ + 0x00003608, /* backtick */ 0x00012808, /* glob */ 0x0001d608, /* readline */ 0x00000c08, /* rcatline */ @@ -1849,6 +1891,14 @@ EXT const U32 PL_opargs[] = { 0x00000c40, /* method_named */ 0x00000600, /* dor */ 0x00000604, /* dorassign */ + 0x00000640, /* entergiven */ + 0x00000200, /* leavegiven */ + 0x00000640, /* enterwhen */ + 0x00000200, /* leavewhen */ + 0x00000000, /* break */ + 0x00000000, /* continue */ + 0x00000404, /* smartmatch */ + 0x0005c815, /* say */ 0x00000000, /* custom */ }; #endif