summaryrefslogtreecommitdiff
path: root/op.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-03-07 23:24:55 +0000
committerNicholas Clark <nick@ccl4.org>2006-03-07 23:24:55 +0000
commit598921a7d8d43baa942b750d26a55dadca2c13d5 (patch)
tree504e1749f653a90dd2ac976c96b0689ef6336e85 /op.h
parenta724edfe531a4a4cce2d4bbb94e1f583d86bc9a3 (diff)
downloadperl-598921a7d8d43baa942b750d26a55dadca2c13d5.tar.gz
Some of the MAD structures in headers, plus PL_madskills and PL_xmlfp,
and default definitions for the 2 variables. (Which will save a lot of conditional complilation, by instead letting the C compiler optimiser remove dead code.) p4raw-id: //depot/perl@27408
Diffstat (limited to 'op.h')
-rw-r--r--op.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/op.h b/op.h
index cbf86a085e..e38c578c48 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