X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=e38c578c48b4579cbdfefac52c56b91afade3cce;hb=5b9c067131ee63b4afa00d1d71c771377deb6ff9;hp=cbf86a085e5dcdfd75b421471dab6c579c9d5df9;hpb=5f66b61cbe1f2ea985f00c0d9a66153e7a3b6ee1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index cbf86a0..e38c578 100644 --- a/op.h +++ b/op.h @@ -36,6 +36,12 @@ #define OPCODE U16 #endif +#ifdef PERL_MAD +# define MADPROP_IN_BASEOP MADPROP* op_madprop; +#else +# define MADPROP_IN_BASEOP +#endif + #ifdef BASEOP_DEFINITION #define BASEOP BASEOP_DEFINITION #else @@ -43,6 +49,7 @@ OP* op_next; \ OP* op_sibling; \ OP* (CPERLscope(*op_ppaddr))(pTHX); \ + MADPROP_IN_BASEOP \ PADOFFSET op_targ; \ unsigned op_type:9; \ unsigned op_opt:1; \ @@ -549,3 +556,25 @@ struct loop { (var = (OP*)safemalloc(size), memzero(var, size)) #define FreeOp(p) Safefree(p) #endif + +#ifdef PERL_MAD +# define MAD_NULL 1 +# define MAD_PV 2 +# define MAD_OP 3 +# define MAD_SV 4 + +struct madprop { + MADPROP* mad_next; + void *mad_val; + U32 mad_vlen; +/* short mad_count; */ + char mad_key; + char mad_type; +}; + +struct token { + I32 tk_type; + YYSTYPE tk_lval; + MADPROP* tk_mad; +}; +#endif