Skip to content
Newer
Older
100644 690 lines (524 sloc) 23.8 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
ccfc46b - Happy new year and PHP 5 for rest of the files too..
foobar authored Jan 8, 2004
5 | Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
6 +----------------------------------------------------------------------+
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
7 | This source file is subject to version 2.00 of the Zend license, |
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
8 | that is bundled with this package in the file LICENSE, and is |
f68c7ff updating license information in the headers.
James Cox authored Jun 10, 2003
9 | available through the world-wide-web at the following url: |
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
10 | http://www.zend.com/license/2_00.txt. |
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
11 | If you did not receive a copy of the Zend license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@zend.com so we can mail you a copy immediately. |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@zend.com> |
16 | Zeev Suraski <zeev@zend.com> |
17 +----------------------------------------------------------------------+
18 */
19
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
20 /* $Id$ */
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
21
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
22 #ifndef ZEND_COMPILE_H
23 #define ZEND_COMPILE_H
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
24
25 #include "zend.h"
fa76f0c @zsuraski Compile fix
zsuraski authored Apr 14, 1999
26
009025e * header file cleanup
Stig S. Bakken authored Sep 6, 1999
27 #ifdef HAVE_STDARG_H
28 # include <stdarg.h>
fa76f0c @zsuraski Compile fix
zsuraski authored Apr 14, 1999
29 #endif
30
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
31 #include "zend_llist.h"
32
33 #define DEBUG_ZEND 0
fcaf734 @andigutmans - Don't support interactive mode when thread safe.
andigutmans authored May 2, 1999
34
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
35 #define FREE_PNODE(znode) zval_dtor(&znode->u.constant);
36
1ccf940 @andigutmans - Move SET_UNUSED() to header
andigutmans authored Nov 11, 2000
37 #define SET_UNUSED(op) (op).op_type = IS_UNUSED
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
38
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
39 #define INC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count++); }
40 #define DEC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count--); }
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
41 #define HANDLE_INTERACTIVE() if (CG(interactive)) { execute_new_code(TSRMLS_C); }
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
42
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
43 #define RESET_DOC_COMMENT() \
1885d00 Simplify.
Andrei Zmievski authored Apr 2, 2003
44 { \
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
45 CG(doc_comment) = NULL; \
46 CG(doc_comment_len) = 0; \
1885d00 Simplify.
Andrei Zmievski authored Apr 2, 2003
47 }
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
48
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
49 typedef struct _zend_op_array zend_op_array;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
50 typedef struct _zend_op zend_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
51
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
52 typedef struct _znode {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
53 int op_type;
54 union {
55 zval constant;
56
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
57 zend_uint var;
232b904 @zsuraski Clean up last/size definitions
zsuraski authored Apr 10, 2000
58 zend_uint opline_num; /* Needs to be signed */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
59 zend_op_array *op_array;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
60 zend_op *jmp_addr;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
61 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
62 zend_uint var; /* dummy */
63 zend_uint type;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
64 } EA;
65 } u;
66 } znode;
67
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
68 typedef struct _zend_execute_data zend_execute_data;
69
edb7c7d @andigutmans - Stop using garbage. Please let me know if you find any bugs resulting
andigutmans authored Aug 19, 2004
70 #define ZEND_OPCODE_HANDLER_ARGS zend_execute_data *execute_data TSRMLS_DC
71 #define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU execute_data TSRMLS_CC
536d4d8 @andigutmans - Improve opcode dispatching
andigutmans authored Oct 19, 2002
72
73 typedef int (*opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);
74
f82ed13 @andigutmans - Commit new VM architecture. This one allows people (aka Derick) to
andigutmans authored Sep 23, 2004
75 extern ZEND_API opcode_handler_t *zend_opcode_handlers;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
76
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
77 struct _zend_op {
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
78 opcode_handler_t handler;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
79 znode result;
80 znode op1;
81 znode op2;
39a7f4c @zsuraski This patch is a go. Not fully optimized yet, but working properly.
zsuraski authored Apr 12, 1999
82 ulong extended_value;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
83 uint lineno;
6f9bfe5 @andigutmans - Shift around zend_op members
andigutmans authored Nov 5, 2002
84 zend_uchar opcode;
8010931 @andigutmans - Improve performance of part of the jmps. More to follow.
andigutmans authored Oct 24, 2002
85 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
86
87
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
88 typedef struct _zend_brk_cont_element {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
89 int cont;
90 int brk;
91 int parent;
92 } zend_brk_cont_element;
93
94
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
95 typedef struct _zend_try_catch_element {
96 zend_uint try_op;
97 zend_uint catch_op; /* ketchup! */
98 } zend_try_catch_element;
99
100
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
101 /* method flags (types) */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
102 #define ZEND_ACC_STATIC 0x01
103 #define ZEND_ACC_ABSTRACT 0x02
104 #define ZEND_ACC_FINAL 0x04
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
105 #define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x08
6020ffd Simplify detection of methods that must be called dynamic (with object)
Marcus Boerger authored Jan 23, 2004
106
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
107 /* class flags (types) */
108 /* ZEND_ACC_IMPLICIT_ABSTRACT_CLASS is used for abstract classes (since it is set by any abstract method even interfaces MAY have it set, too). */
109 /* ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */
110 #define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS 0x10
111 #define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS 0x20
112 #define ZEND_ACC_FINAL_CLASS 0x40
113 #define ZEND_ACC_INTERFACE 0x80
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
114
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
115 /* method flags (visibility) */
32b100e @zsuraski - Allow variables to have both 'static' modifier and an access level.
zsuraski authored Dec 9, 2002
116 /* The order of those must be kept - public < protected < private */
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
117 #define ZEND_ACC_PUBLIC 0x100
118 #define ZEND_ACC_PROTECTED 0x200
119 #define ZEND_ACC_PRIVATE 0x400
dc5c790 @zsuraski Treat the absence of an access type just as if 'public' was supplied
zsuraski authored Dec 8, 2002
120 #define ZEND_ACC_PPP_MASK (ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE)
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
121
0338111 @zsuraski Require abstract classes to be explicitly declared 'abstract', in ord…
zsuraski authored Mar 6, 2003
122 #define ZEND_ACC_CHANGED 0x800
123 #define ZEND_ACC_IMPLICIT_PUBLIC 0x1000
77208ec @zsuraski Fix incorrect linkage of access-levels, when using private methods
zsuraski authored Jan 2, 2003
124
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
125 /* method flags (special method detection) */
fbda310 - Flag ctor/dtor methods
Marcus Boerger authored Aug 23, 2003
126 #define ZEND_ACC_CTOR 0x2000
7c2e02d Disallow static declaration of clone
Marcus Boerger authored Jan 23, 2004
127 #define ZEND_ACC_DTOR 0x4000
128 #define ZEND_ACC_CLONE 0x8000
1c2512d - Add fn_flag ZEND_ACC_ALIAS
Marcus Boerger authored Aug 24, 2003
129
50ee116 Clearify the different method/class flags (as discussed with Andi).
Marcus Boerger authored Mar 9, 2004
130 /* method flag (bc only), any method that has this flag can be used statically and non statically. */
131 #define ZEND_ACC_ALLOW_STATIC 0x10000
132
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
133 char *zend_visibility_string(zend_uint fn_flags);
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
134
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
135
136 typedef struct _zend_property_info {
137 zend_uint flags;
138 char *name;
139 int name_length;
140 ulong h;
67a226d - Add ReflectionProperty::getDocComment()
Marcus Boerger authored Apr 19, 2005
141 char *doc_comment;
142 int doc_comment_len;
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
143 } zend_property_info;
144
145
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
146 typedef struct _zend_arg_info {
147 char *name;
148 zend_uint name_len;
149 char *class_name;
150 zend_uint class_name_len;
151 zend_bool allow_null;
152 zend_bool pass_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
153 zend_bool return_reference;
7086634 @zsuraski - Improve ARG_INFO() macros to support supplying required_num_args
zsuraski authored Feb 25, 2004
154 int required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
155 } zend_arg_info;
156
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
157 typedef struct _zend_compiled_variable {
158 char *name;
159 int name_len;
160 ulong hash_value;
161 } zend_compiled_variable;
162
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
163 struct _zend_op_array {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
164 /* Common elements */
165 zend_uchar type;
166 char *function_name;
167 zend_class_entry *scope;
168 zend_uint fn_flags;
169 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
170 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
171 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
172 zend_arg_info *arg_info;
173 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
174 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
175 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
176
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
177 zend_uint *refcount;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
178
179 zend_op *opcodes;
232b904 @zsuraski Clean up last/size definitions
zsuraski authored Apr 10, 2000
180 zend_uint last, size;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
181
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
182 zend_compiled_variable *vars;
183 int last_var, size_var;
184
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
185 zend_uint T;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
186
187 zend_brk_cont_element *brk_cont_array;
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
188 zend_uint last_brk_cont;
189 zend_uint current_brk_cont;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
190
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
191 zend_try_catch_element *try_catch_array;
192 int last_try_catch;
193
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
194 /* static variables support */
195 HashTable *static_variables;
196
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
197 zend_op *start_op;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
198 int backpatch_count;
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
199
42d1529 @zsuraski Fix possible bug with extension dtors being called without the ctors …
zsuraski authored Apr 29, 2000
200 zend_bool done_pass_two;
0ce019f @andigutmans - Fix issues with $this when using it by itself without indirection s…
andigutmans authored Mar 15, 2002
201 zend_bool uses_this;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
202
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
203 char *filename;
5657b83 Multi-purpose patch:
Andrei Zmievski authored Mar 31, 2003
204 zend_uint line_start;
205 zend_uint line_end;
206 char *doc_comment;
207 zend_uint doc_comment_len;
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
208
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
209 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
210 };
211
212
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
213 #define ZEND_RETURN_VALUE 0
214 #define ZEND_RETURN_REFERENCE 1
215 #define ZEND_RETURN_REFERENCE_AGNOSTIC 2
216
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
217 typedef struct _zend_internal_function {
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
218 /* Common elements */
219 zend_uchar type;
220 char *function_name;
221 zend_class_entry *scope;
222 zend_uint fn_flags;
223 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
224 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
225 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
226 zend_arg_info *arg_info;
227 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
228 unsigned char return_reference;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
229 /* END of common elements */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
230
231 void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
232 } zend_internal_function;
233
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
234 #define ZEND_FN_SCOPE_NAME(function) ((function) && (function)->common.scope ? (function)->common.scope->name : "")
e8214a3 @andigutmans - Commit Marcus' cleanup of abstract and static inheritance and improve
andigutmans authored Nov 23, 2002
235
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
236 typedef union _zend_function {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
237 zend_uchar type; /* MUST be the first element of this struct! */
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
238
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
239 struct {
e92f6f1 @andigutmans - define zend_uint and zend_uchar and use them in a few places
andigutmans authored Mar 13, 2000
240 zend_uchar type; /* never used */
7f35cfd @zsuraski *** empty log message ***
zsuraski authored Oct 25, 1999
241 char *function_name;
d1eea3d @andigutmans - Fix bug in nested try/catch's
andigutmans authored Mar 1, 2002
242 zend_class_entry *scope;
01e853c @andigutmans - My personal cleanups
andigutmans authored Nov 23, 2002
243 zend_uint fn_flags;
5097be3 @zsuraski Initial support for enforcing prototype of abstract/interface method …
zsuraski authored Mar 29, 2003
244 union _zend_function *prototype;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
245 zend_uint num_args;
36a7518 @zsuraski - Abstract methods cannot have defaults for arguments
zsuraski authored Feb 25, 2004
246 zend_uint required_num_args;
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
247 zend_arg_info *arg_info;
248 zend_bool pass_rest_by_reference;
e7e0f7d @zsuraski - Check return-by-reference bit when implementing interface prototypes
zsuraski authored Feb 12, 2004
249 unsigned char return_reference;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
250 } common;
251
252 zend_op_array op_array;
253 zend_internal_function internal_function;
254 } zend_function;
255
256
9cb2cf1 @zsuraski Optimize allocations into uninitialized_zval assignments
zsuraski authored May 20, 1999
257 typedef struct _zend_function_state {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
258 HashTable *function_symbol_table;
259 zend_function *function;
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
260 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
261 } zend_function_state;
262
263
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
264 typedef struct _zend_switch_entry {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
265 znode cond;
266 int default_case;
267 int control_var;
268 } zend_switch_entry;
269
270
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
271 typedef struct _list_llist_element {
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
272 znode var;
273 zend_llist dimensions;
274 znode value;
275 } list_llist_element;
276
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
277 union _temp_variable;
278
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
279 struct _zend_execute_data {
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
280 struct _zend_op *opline;
281 zend_function_state function_state;
282 zend_function *fbc; /* Function Being Called */
283 zend_function *fbc_constructor;
41e3f4f @andigutmans - Fix problem with debug_backtrace() reported by Stig. We weren't rep…
andigutmans authored Jul 26, 2002
284 zend_op_array *op_array;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
285 zval *object;
286 union _temp_variable *Ts;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
287 zval ***CVs;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
288 zend_bool original_in_execution;
289 zend_class_entry *calling_scope;
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
290 HashTable *symbol_table;
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
291 struct _zend_execute_data *prev_execute_data;
1327480 @andigutmans - Fix compile warning.
andigutmans authored Oct 19, 2002
292 };
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
293
b66c89c @andigutmans - More debug backtrace work. It still doesn't work very well...
andigutmans authored May 7, 2002
294 #define EX(element) execute_data.element
295
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
296
297 #define IS_CONST (1<<0)
298 #define IS_TMP_VAR (1<<1)
299 #define IS_VAR (1<<2)
300 #define IS_UNUSED (1<<3) /* Unused variable */
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
301 #define IS_CV (1<<4) /* Compiled variable */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
302
303 #define EXT_TYPE_UNUSED (1<<0)
304
df74f1d Add optional support for C0x inline semantics.
Sascha Schumann authored Jun 13, 2000
305 #include "zend_globals.h"
306
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
307 BEGIN_EXTERN_C()
308
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
309 void init_compiler(TSRMLS_D);
310 void shutdown_compiler(TSRMLS_D);
311 void zend_init_compiler_data_structures(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
312
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
313 extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
314
1fd542f @sebastianbergmann Export lex_scan(). Both the PHPDoc and tokenizer extension need this.…
sebastianbergmann authored Feb 10, 2002
315 ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
316 void startup_scanner(TSRMLS_D);
317 void shutdown_scanner(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
318
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
319 ZEND_API char *zend_set_compiled_filename(char *new_compiled_filename TSRMLS_DC);
320 ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
321 ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
322 ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
323
8838c0f @andigutmans - Two new API calls for Derick (retreive CV name and value) by Dmitry
andigutmans authored Jan 22, 2005
324 ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int* name_len);
325
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
326 #ifdef ZTS
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
327 const char *zend_get_zendtext(TSRMLS_D);
328 int zend_get_zendleng(TSRMLS_D);
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
329 #endif
330
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
331
332 /* parser-driven code generators */
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
333 void zend_do_binary_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
334 void zend_do_unary_op(zend_uchar op, znode *result, znode *op1 TSRMLS_DC);
335 void zend_do_binary_assign_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
336 void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC);
337 void zend_do_assign_ref(znode *result, znode *lvar, znode *rvar TSRMLS_DC);
338 void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
339 void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
340 void zend_do_indirect_references(znode *result, znode *num_references, znode *variable TSRMLS_DC);
830c2e0 @smalyshev fix statics - make it behave like $this (fetch type "static")
smalyshev authored Nov 10, 2002
341 void zend_do_fetch_static_variable(znode *varname, znode *static_assignment, int fetch_type TSRMLS_DC);
342 void zend_do_fetch_global_variable(znode *varname, znode *static_assignment, int fetch_type TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
343
344 void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC);
345 void fetch_array_dim(znode *result, znode *parent, znode *dim TSRMLS_DC);
346 void fetch_string_offset(znode *result, znode *parent, znode *offset TSRMLS_DC);
db507dd @andigutmans - Commit the variable fetch optimization.
andigutmans authored Oct 4, 2004
347 void zend_do_fetch_static_member(znode *result, znode *class_znode TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
348 void zend_do_print(znode *result, znode *arg TSRMLS_DC);
349 void zend_do_echo(znode *arg TSRMLS_DC);
8802964 * fix some casts
Sascha Schumann authored May 30, 1999
350 typedef int (*unary_op_type)(zval *, zval *);
351 ZEND_API unary_op_type get_unary_op(int opcode);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
352 ZEND_API void *get_binary_op(int opcode);
353
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
354 void zend_do_while_cond(znode *expr, znode *close_bracket_token TSRMLS_DC);
355 void zend_do_while_end(znode *while_token, znode *close_bracket_token TSRMLS_DC);
356 void zend_do_do_while_begin(TSRMLS_D);
357 void zend_do_do_while_end(znode *do_token, znode *expr_open_bracket, znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
358
359
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
360 void zend_do_if_cond(znode *cond, znode *closing_bracket_token TSRMLS_DC);
361 void zend_do_if_after_statement(znode *closing_bracket_token, unsigned char initialize TSRMLS_DC);
362 void zend_do_if_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
363
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
364 void zend_do_for_cond(znode *expr, znode *second_semicolon_token TSRMLS_DC);
365 void zend_do_for_before_statement(znode *cond_start, znode *second_semicolon_token TSRMLS_DC);
366 void zend_do_for_end(znode *second_semicolon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
367
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
368 void zend_do_pre_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
369 void zend_do_post_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
370
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
371 void zend_do_begin_variable_parse(TSRMLS_D);
372 void zend_do_end_variable_parse(int type, int arg_offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
373
ac7ed46 @andigutmans - Start adding parsed variable checks.
andigutmans authored Dec 16, 2001
374 void zend_check_writable_variable(znode *variable);
375
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
376 void zend_do_free(znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
377
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
378 void zend_do_init_string(znode *result TSRMLS_DC);
379 void zend_do_add_char(znode *result, znode *op1, znode *op2 TSRMLS_DC);
380 void zend_do_add_string(znode *result, znode *op1, znode *op2 TSRMLS_DC);
381 void zend_do_add_variable(znode *result, znode *op1, znode *op2 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
382
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
383 int zend_do_verify_access_types(znode *current_access_type, znode *new_modifier);
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
384 void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC);
e6255b0 Revert portions of the doc comment patch. There should be no parser
Andrei Zmievski authored Apr 2, 2003
385 void zend_do_end_function_declaration(znode *function_token TSRMLS_DC);
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
386 void zend_do_receive_arg(zend_uchar op, znode *var, znode *offset, znode *initialization, znode *class_type, znode *varname, zend_bool pass_by_reference TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
387 int zend_do_begin_function_call(znode *function_name TSRMLS_DC);
2ce4b47 @andigutmans - Initial support for _clone()
andigutmans authored Dec 26, 2001
388 void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC);
8e30d96 @zsuraski Redesign the clone() feature to fix some fundamental flaws in the pre…
zsuraski authored Feb 2, 2004
389 void zend_do_clone(znode *result, znode *expr TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
390 void zend_do_begin_dynamic_function_call(znode *function_name TSRMLS_DC);
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
391 void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC);
d344648 @andigutmans - Fix __autoload() to preserve class case.
andigutmans authored Nov 24, 2003
392 void zend_do_fetch_class_name(znode *result, znode *class_entry, znode *class_name TSRMLS_DC);
d8efe62 @andigutmans - Fix bug #27669 (Dmitry).
andigutmans authored Sep 16, 2004
393 void zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
394 void zend_do_end_function_call(znode *function_name, znode *result, znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
395 void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
396 void zend_do_handle_exception(TSRMLS_D);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
397
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
398 void zend_do_try(znode *try_token TSRMLS_DC);
21b04ff @andigutmans @ Allow a series of consecutive catch() statements (Andi, Zend Engine)
andigutmans authored Feb 13, 2002
399 void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var, zend_bool first_catch TSRMLS_DC);
6197021 @andigutmans - Make it compile in thread-safe mode.
andigutmans authored Aug 30, 2001
400 void zend_do_end_catch(znode *try_token TSRMLS_DC);
401 void zend_do_throw(znode *expr TSRMLS_DC);
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
402
c5d8422 @zsuraski Reinstate early-binding for classes.
zsuraski authored Feb 4, 2004
403 ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_bool compile_time);
404 ZEND_API zend_class_entry *do_bind_class(zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC);
405 ZEND_API zend_class_entry *do_bind_inherited_class(zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC);
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
406 ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC);
407 ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC);
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
408 void zend_do_implements_interface(znode *interface_znode TSRMLS_DC);
f78fa50 @andigutmans - Megapatch to try and support inheritance from sub-classes. Things m…
andigutmans authored Sep 24, 2002
409
3c62b3b Expand Interface C API.
Marcus Boerger authored Oct 22, 2003
410 void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
411 void zend_do_early_binding(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
412
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
413 void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
414
415
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
416 void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
417 void zend_do_boolean_or_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
418 void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
419 void zend_do_boolean_and_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
420
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
421 void zend_do_brk_cont(zend_uchar op, znode *expr TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
422
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
423 void zend_do_switch_cond(znode *cond TSRMLS_DC);
424 void zend_do_switch_end(znode *case_list TSRMLS_DC);
425 void zend_do_case_before_statement(znode *case_list, znode *case_token, znode *case_expr TSRMLS_DC);
426 void zend_do_case_after_statement(znode *result, znode *case_token TSRMLS_DC);
427 void zend_do_default_before_statement(znode *case_list, znode *default_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
428
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
429 void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znode *parent_class_name TSRMLS_DC);
e6255b0 Revert portions of the doc comment patch. There should be no parser
Andrei Zmievski authored Apr 2, 2003
430 void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRMLS_DC);
6317e26 @zsuraski - Treat $this->foo inside class X as an implicit 'public $foo' if X::…
zsuraski authored Feb 10, 2003
431 void zend_do_declare_property(znode *var_name, znode *value, zend_uint access_type TSRMLS_DC);
8d2a4e0 @zsuraski Fix bogus implicit declarations of properties (squash bug #23671)
zsuraski authored Jun 9, 2003
432 void zend_do_declare_implicit_property(TSRMLS_D);
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
433 void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
434
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
435 void zend_do_fetch_property(znode *result, znode *object, znode *property TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
436
437
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
438 void zend_do_push_object(znode *object TSRMLS_DC);
439 void zend_do_pop_object(znode *object TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
440
441
a332f82 @andigutmans - Support instantiation of nested class. The following script now should
andigutmans authored Nov 4, 2001
442 void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC);
443 void zend_do_end_new_object(znode *result, znode *new_token, znode *argument_list TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
444
e858d27 @andigutmans - Initial support for class constants. There are still a few semantic
andigutmans authored Nov 30, 2001
445 void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
446
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
447 void zend_do_shell_exec(znode *result, znode *cmd TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
448
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
449 void zend_do_init_array(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
450 void zend_do_add_array_element(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
f1a9920 @zsuraski Maintain consistency
zsuraski authored Nov 2, 2000
451 void zend_do_add_static_array_element(znode *result, znode *offset, znode *expr);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
452 void zend_do_list_init(TSRMLS_D);
453 void zend_do_list_end(znode *result, znode *expr TSRMLS_DC);
454 void zend_do_add_list_element(znode *element TSRMLS_DC);
455 void zend_do_new_list_begin(TSRMLS_D);
456 void zend_do_new_list_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
457
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
458 void zend_do_cast(znode *result, znode *expr, int type TSRMLS_DC);
459 void zend_do_include_or_eval(int type, znode *result, znode *op1 TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
460
7b68f51 @andigutmans - Nuke delete(). It was a big mistake to introduce it and I finally
andigutmans authored Jul 14, 2002
461 void zend_do_unset(znode *variable TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
462 void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
463
c073b76 @andigutmans - Change "is" to "instanceof" as it explains better what the operator…
andigutmans authored Jan 14, 2003
464 void zend_do_instanceof(znode *result, znode *expr, znode *class_znode, int type TSRMLS_DC);
82c72f2 @- Adding 'is' operator that can be used to check the type of a varia…
Andrei Zmievski authored Jul 30, 2002
465
a29f539 - Cleanup foreach handling
Marcus Boerger authored Feb 11, 2005
466 void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, int variable TSRMLS_DC);
467 void zend_do_foreach_fetch(znode *foreach_token, znode *open_brackets_token, znode *as_token TSRMLS_DC);
468 void zend_do_foreach_cont(znode *foreach_token, znode *as_token, znode *value, znode *key TSRMLS_DC);
469 void zend_do_foreach_end(znode *foreach_token, znode *as_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
470
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
471 void zend_do_declare_begin(TSRMLS_D);
472 void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC);
b806a8e MFZE1 (use token instead of global for opcode counting)
Jason Greene authored Aug 14, 2002
473 void zend_do_declare_end(znode *declare_token TSRMLS_DC);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
474
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
475 void zend_do_end_heredoc(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
476
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
477 void zend_do_exit(znode *result, znode *message TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
478
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
479 void zend_do_begin_silence(znode *strudel_token TSRMLS_DC);
480 void zend_do_end_silence(znode *strudel_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
481
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
482 void zend_do_begin_qm_op(znode *cond, znode *qm_token TSRMLS_DC);
483 void zend_do_qm_true(znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC);
484 void zend_do_qm_false(znode *result, znode *false_value, znode *qm_token, znode *colon_token TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
485
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
486 void zend_do_extended_info(TSRMLS_D);
487 void zend_do_extended_fcall_begin(TSRMLS_D);
488 void zend_do_extended_fcall_end(TSRMLS_D);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
489
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
490 void zend_do_ticks(TSRMLS_D);
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
491
2814504 @zsuraski Improve parser handling of 'abstract'
zsuraski authored Feb 11, 2003
492 void zend_do_abstract_method(znode *function_name, znode *modifiers, znode *body TSRMLS_DC);
227f783 @andigutmans - Fix build (thanks Marcus)
andigutmans authored Nov 20, 2002
493
727398b @andigutmans Add to the API
andigutmans authored Jun 13, 2000
494 ZEND_API void function_add_ref(zend_function *function);
0b7a9ce @zsuraski - Fix Win32 compilation (Use winsock2.h from now on)
zsuraski authored Jun 3, 2000
495
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
496 #define INITIAL_OP_ARRAY_SIZE 64
497
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
498
7b0d92d @zsuraski Unify the names of these last 3 files...
zsuraski authored Oct 29, 2000
499 /* helper functions in zend_language_scanner.l */
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
500 ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC);
501 ZEND_API zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC);
502 ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
819ea51 @zsuraski MFZE1
zsuraski authored Aug 31, 2001
503 ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
504 ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC);
51e797f some type cleanup work
Harald Radi authored Apr 23, 2002
505 ZEND_API void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size TSRMLS_DC);
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
506 ZEND_API void destroy_op_array(zend_op_array *op_array TSRMLS_DC);
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
507 ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC);
5090b1e @smalyshev Fix zend_fiel_handle handling. Should fix URL include
smalyshev authored Aug 13, 2000
508 ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
03f88ac @smalyshev Add additional stage to post-session cleanup.
smalyshev authored Jan 29, 2003
509 ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC);
510 ZEND_API int zend_cleanup_function_data(zend_function *function TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
511
3fc8528 @sebastianbergmann Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_cla…
sebastianbergmann authored Mar 26, 2003
512 ZEND_API void destroy_zend_function(zend_function *function TSRMLS_DC);
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
513 ZEND_API void zend_function_dtor(zend_function *function);
92dd5e6 @smalyshev - make class tables contain class_entry *, not class_entry
smalyshev authored Mar 12, 2002
514 ZEND_API void destroy_zend_class(zend_class_entry **pce);
c8c629b @andigutmans - Fix bug introduced with latest class hash table change.
andigutmans authored Mar 12, 2002
515 void zend_class_add_ref(zend_class_entry **ce);
7c4a083 @zsuraski Various thread safety fixes and DLL updates
zsuraski authored Apr 26, 1999
516
6923a16 - Fixed var_export() to show public, protected and private modifiers …
Derick Rethans authored Jan 3, 2004
517 ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, char *src1, int src1_length, char *src2, int src2_length, int internal);
518 ZEND_API void zend_unmangle_property_name(char *mangled_property, char **prop_name, char **class_name);
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
519
fb5cb59 Fixed Zend Function Destructor to use correct TSRM handle.
Stefan Esser authored Jun 6, 2004
520 #define ZEND_FUNCTION_DTOR (void (*)(void *)) zend_function_dtor
62114c1 @zsuraski Destructors no longer return ints, the low level problem it was inten…
zsuraski authored Jan 17, 2000
521 #define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
81d901b @zsuraski Step 1 in nuking the garbage collector:
zsuraski authored Jul 9, 1999
522
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
523 zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC);
524 void init_op(zend_op *op TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
525 int get_next_op_number(zend_op_array *op_array);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
526 int print_class(zend_class_entry *class_entry TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
527 void print_op_array(zend_op_array *op_array, int optimizations);
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
528 int pass_two(zend_op_array *op_array TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
529 zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array);
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
530 void zend_do_first_catch(znode *open_parentheses TSRMLS_DC);
531 void zend_initialize_try_catch_element(znode *try_token TSRMLS_DC);
532 void zend_do_mark_last_catch(znode *first_catch, znode *last_additional_catch TSRMLS_DC);
4187439 @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 30, 2001
533 ZEND_API zend_bool zend_is_compiling(TSRMLS_D);
b577038 @zsuraski Avoid TSRMLS_FETCH()'s (still lots of work left)
zsuraski authored Jul 30, 2001
534 ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC);
9c909f4 @sebastianbergmann Sync: Export externally used functions.
sebastianbergmann authored Dec 16, 2003
535 ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC);
9d7122f @zsuraski Generalize fetch_class
zsuraski authored Aug 3, 2003
536 int zend_get_class_fetch_type(char *class_name, uint class_name_len);
c17c7a2 @zsuraski Centralize class initialization
zsuraski authored Feb 10, 2003
537
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
538 typedef zend_bool (*zend_auto_global_callback)(char *name, uint name_len TSRMLS_DC);
539 typedef struct _zend_auto_global {
540 char *name;
541 uint name_len;
542 zend_auto_global_callback auto_global_callback;
543 zend_bool armed;
544 } zend_auto_global;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
545
f7b7800 @zsuraski Add infrastructure for JIT initialization of auto globals
zsuraski authored Mar 2, 2003
546 void zend_auto_global_dtor(zend_auto_global *auto_global);
170de9b export functions needed by cli
Shane Caraveo authored Mar 22, 2003
547 ZEND_API int zend_register_auto_global(char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC);
548 ZEND_API zend_bool zend_is_auto_global(char *name, uint name_len TSRMLS_DC);
e2a5ebf @zsuraski Add ability to disable JIT for a particular auto global
zsuraski authored Mar 16, 2004
549 ZEND_API int zend_auto_global_disable_jit(char *varname, zend_uint varname_length TSRMLS_DC);
9d11db1 @andigutmans - Merge new $_GET, $_POST etc. patch from Engine 1 tree
andigutmans authored Aug 8, 2001
550
b4f3b9d @zsuraski Redesigned thread safety mechanism - nua nua
zsuraski authored Jul 28, 2001
551 int zendlex(znode *zendlval TSRMLS_DC);
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
552
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
553 /* BEGIN: OPCODES */
f7f5a5e @smalyshev MEGA-patch: namespaces are R.I.P.
smalyshev authored Jun 2, 2003
554
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
555 #include "zend_vm_opcodes.h"
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
556
a904c1d @andigutmans - Improve comments, docs, code...
andigutmans authored Oct 27, 2004
557 #define ZEND_OP_DATA 137
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
558
5ae7fa4 add markers that make this file easy to parse for external sources
Sterling Hughes authored Apr 7, 2003
559 /* END: OPCODES */
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
560
561
562
563
564 /* global/local fetches */
d2da63f @andigutmans - Support static members. The following script works:
andigutmans authored Nov 25, 2001
565 #define ZEND_FETCH_GLOBAL 0
566 #define ZEND_FETCH_LOCAL 1
567 #define ZEND_FETCH_STATIC 2
568 #define ZEND_FETCH_STATIC_MEMBER 3
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
569
68fa4e5 @zsuraski Get rid of an opcode
zsuraski authored Jul 30, 2003
570
571 /* obj/dim unsets */
572 #define ZEND_UNSET_DIM 1
573 #define ZEND_UNSET_OBJ 2
574
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
575 /* class fetches */
576 #define ZEND_FETCH_CLASS_DEFAULT 0
577 #define ZEND_FETCH_CLASS_SELF 1
b3fd2fa @andigutmans - Support parent:: again
andigutmans authored Dec 27, 2001
578 #define ZEND_FETCH_CLASS_PARENT 2
579 #define ZEND_FETCH_CLASS_MAIN 3
a4c3b2c @smalyshev Namespace patch. Big changes:
smalyshev authored Feb 16, 2003
580 #define ZEND_FETCH_CLASS_GLOBAL 4
9d7122f @zsuraski Generalize fetch_class
zsuraski authored Aug 3, 2003
581 #define ZEND_FETCH_CLASS_AUTO 5
b3fd2fa @andigutmans - Support parent:: again
andigutmans authored Dec 27, 2001
582
74efc41 @andigutmans - Make classes have scope and function/constant lookups default to th…
andigutmans authored Dec 12, 2001
583
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
584 /* variable parsing type (compile-time) */
03b6af0 @zsuraski Support references in foreach()
zsuraski authored Jul 24, 2003
585 #define ZEND_PARSED_MEMBER (1<<0)
586 #define ZEND_PARSED_METHOD_CALL (1<<1)
587 #define ZEND_PARSED_STATIC_MEMBER (1<<2)
588 #define ZEND_PARSED_FUNCTION_CALL (1<<3)
589 #define ZEND_PARSED_VARIABLE (1<<4)
590 #define ZEND_PARSED_REFERENCE_VARIABLE (1<<5)
880e7d8 @andigutmans - Framework for knowing what kind of variable we just parsed.
andigutmans authored Dec 16, 2001
591
592
5af7770 @andigutmans - Sync Engine2 CVS with latest Engine CVS
andigutmans authored Aug 7, 2001
593 /* unset types */
594 #define ZEND_UNSET_REG 0
595
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
596 /* var status for backpatching */
06d04d1 @andigutmans - Fix SEND_VAR problem after fetch'ing a variable and not knowing the…
andigutmans authored Sep 29, 1999
597 #define BP_VAR_R 0
598 #define BP_VAR_W 1
599 #define BP_VAR_RW 2
600 #define BP_VAR_IS 3
601 #define BP_VAR_NA 4 /* if not applicable */
602 #define BP_VAR_FUNC_ARG 5
7fa17e8 @andigutmans - Put in the infrastructure for the unset() fix. Right now it has the…
andigutmans authored Feb 14, 2000
603 #define BP_VAR_UNSET 6
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
604
605
49c4866 @zsuraski - Improve tracking
zsuraski authored Aug 18, 2003
606 #define ZEND_INTERNAL_FUNCTION 1
607 #define ZEND_USER_FUNCTION 2
608 #define ZEND_OVERLOADED_FUNCTION 3
609 #define ZEND_EVAL_CODE 4
610 #define ZEND_OVERLOADED_FUNCTION_TEMPORARY 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
611
62f9eb8 Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
Andrei Zmievski authored Apr 1, 2003
612 #define ZEND_INTERNAL_CLASS 1
613 #define ZEND_USER_CLASS 2
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
614
615 #define ZEND_EVAL (1<<0)
616 #define ZEND_INCLUDE (1<<1)
9cc7044 @andigutmans - Cleanup old IMPORT stuff
andigutmans authored Mar 10, 2000
617 #define ZEND_INCLUDE_ONCE (1<<2)
67b4b3a @zsuraski - require() of a dynamic expression now has the standard require() se…
zsuraski authored Dec 23, 1999
618 #define ZEND_REQUIRE (1<<3)
c06692e @zsuraski The patch we promised - redesigned the compilation/execution API:
zsuraski authored Aug 9, 2000
619 #define ZEND_REQUIRE_ONCE (1<<4)
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
620
621 #define ZEND_ISSET (1<<0)
622 #define ZEND_ISEMPTY (1<<1)
623
624 #define ZEND_CT (1<<0)
625 #define ZEND_RT (1<<1)
626
627
58153df @zsuraski - Improve the file handle closing code
zsuraski authored Nov 26, 1999
628 #define ZEND_HANDLE_FILENAME 0
629 #define ZEND_HANDLE_FD 1
630 #define ZEND_HANDLE_FP 2
631 #define ZEND_HANDLE_STDIOSTREAM 3
632 #define ZEND_HANDLE_FSTREAM 4
e52aac9 @wez Implement simple stream support in the ZE scanners.
wez authored Feb 18, 2003
633 #define ZEND_HANDLE_STREAM 5
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
634
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
635 #define ZEND_FETCH_STANDARD 0
cccd244 @zsuraski Get rid of AiCount completely
zsuraski authored Jul 10, 1999
636 #define ZEND_FETCH_ADD_LOCK 1
1250c43 @zsuraski * Add struct name to all typedef's so that they can be debugged with …
zsuraski authored May 22, 1999
637
993f70c @andigutmans - Don't use magic numbers
andigutmans authored Aug 12, 2004
638 #define ZEND_FE_FETCH_BYREF 1
639 #define ZEND_FE_FETCH_WITH_KEY 2
640
741b816 @zsuraski * Support getThis() for internal functions.
zsuraski authored May 28, 1999
641 #define ZEND_MEMBER_FUNC_CALL 1<<0
642
8d90825 @andigutmans - Allow passing references which are returned from functions and new
andigutmans authored Nov 27, 2000
643 #define ZEND_ARG_SEND_BY_REF (1<<0)
644 #define ZEND_ARG_COMPILE_TIME_BOUND (1<<1)
6ec1acb @zsuraski Phase 3:
zsuraski authored Jul 9, 1999
645
6d988ec @andigutmans - Add support for BYREF_FORCE_REST
andigutmans authored Nov 3, 1999
646 /* Lost In Stupid Parentheses */
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
647 #define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \
648 ( \
649 zf \
650 && ((zend_function *) zf)->common.arg_info \
651 && \
652 ( \
653 ( \
654 arg_num<=((zend_function *) zf)->common.num_args \
f71644b - Revert automatic pass arg_info
Marcus Boerger authored Oct 8, 2004
655 && ((zend_function *) zf)->common.arg_info[arg_num-1].pass_by_reference \
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
656 ) \
657 || ( \
658 arg_num>((zend_function *) zf)->common.num_args \
f71644b - Revert automatic pass arg_info
Marcus Boerger authored Oct 8, 2004
659 && ((zend_function *) zf)->common.pass_rest_by_reference \
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
660 ) \
661 ) \
6d988ec @andigutmans - Add support for BYREF_FORCE_REST
andigutmans authored Nov 3, 1999
662 )
663
f8bbafd @zsuraski ntroduce infrastructure for supplying information about arguments,
zsuraski authored Aug 3, 2003
664
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
665 #define ZEND_RETURN_VAL 0
666 #define ZEND_RETURN_REF 1
667
3a42bab @zsuraski Fix behavior of return-by-reference functions. Remove erroneous warni…
zsuraski authored Dec 14, 2003
668
669 #define ZEND_RETURNS_FUNCTION 1<<0
670
ad115d2 @zsuraski Fix require()
zsuraski authored Jan 29, 2000
671 END_EXTERN_C()
672
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
673 #define ZEND_CLONE_FUNC_NAME "__clone"
674 #define ZEND_CONSTRUCTOR_FUNC_NAME "__construct"
675 #define ZEND_DESTRUCTOR_FUNC_NAME "__destruct"
676 #define ZEND_GET_FUNC_NAME "__get"
677 #define ZEND_SET_FUNC_NAME "__set"
678 #define ZEND_CALL_FUNC_NAME "__call"
5f0433d MFB: Enforce protocol on magic methods/functions
Marcus Boerger authored Aug 2, 2004
679 #define ZEND_AUTOLOAD_FUNC_NAME "__autoload"
d8651c8 @smalyshev Support for __get, __set and __call in classes.
smalyshev authored Sep 4, 2002
680
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
681 #endif /* ZEND_COMPILE_H */
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
682
683 /*
684 * Local variables:
685 * tab-width: 4
686 * c-basic-offset: 4
687 * indent-tabs-mode: t
688 * End:
689 */
Something went wrong with that request. Please try again.