version 1.1.1.2, 2012/05/29 12:34:36
|
version 1.1.1.3, 2013/07/22 01:32:16
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Zend Engine | |
| Zend Engine | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) | | | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| This source file is subject to version 2.00 of the Zend license, | |
| This source file is subject to version 2.00 of the Zend license, | |
| that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
Line 33
|
Line 33
|
|
|
#include <errno.h> |
#include <errno.h> |
#include "zend.h" |
#include "zend.h" |
|
#ifdef PHP_WIN32 |
|
# include <Winuser.h> |
|
#endif |
#include "zend_alloc.h" |
#include "zend_alloc.h" |
#include <zend_language_parser.h> |
#include <zend_language_parser.h> |
#include "zend_compile.h" |
#include "zend_compile.h" |
Line 253 ZEND_API void zend_restore_lexical_state(zend_lex_stat
|
Line 256 ZEND_API void zend_restore_lexical_state(zend_lex_stat
|
CG(heredoc) = NULL; |
CG(heredoc) = NULL; |
CG(heredoc_len) = 0; |
CG(heredoc_len) = 0; |
} |
} |
|
RESET_DOC_COMMENT(); |
} |
} |
|
|
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC) |
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC) |
Line 536 ZEND_API int open_file_for_scanning(zend_file_handle *
|
Line 540 ZEND_API int open_file_for_scanning(zend_file_handle *
|
CG(zend_lineno) = 1; |
CG(zend_lineno) = 1; |
} |
} |
|
|
|
RESET_DOC_COMMENT(); |
CG(increment_lineno) = 0; |
CG(increment_lineno) = 0; |
return SUCCESS; |
return SUCCESS; |
} |
} |
Line 575 ZEND_API zend_op_array *compile_file(zend_file_handle
|
Line 580 ZEND_API zend_op_array *compile_file(zend_file_handle
|
init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); |
init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); |
CG(in_compilation) = 1; |
CG(in_compilation) = 1; |
CG(active_op_array) = op_array; |
CG(active_op_array) = op_array; |
|
zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context))); |
zend_init_compiler_context(TSRMLS_C); |
zend_init_compiler_context(TSRMLS_C); |
compiler_result = zendparse(TSRMLS_C); |
compiler_result = zendparse(TSRMLS_C); |
zend_do_return(&retval_znode, 0 TSRMLS_CC); |
zend_do_return(&retval_znode, 0 TSRMLS_CC); |
CG(in_compilation) = original_in_compilation; |
CG(in_compilation) = original_in_compilation; |
if (compiler_result==1) { /* parser error */ | if (compiler_result != 0) { /* parser error */ |
zend_bailout(); |
zend_bailout(); |
} |
} |
compilation_successful=1; |
compilation_successful=1; |
Line 589 ZEND_API zend_op_array *compile_file(zend_file_handle
|
Line 595 ZEND_API zend_op_array *compile_file(zend_file_handle
|
CG(active_op_array) = original_active_op_array; |
CG(active_op_array) = original_active_op_array; |
if (compilation_successful) { |
if (compilation_successful) { |
pass_two(op_array TSRMLS_CC); |
pass_two(op_array TSRMLS_CC); |
zend_release_labels(TSRMLS_C); | zend_release_labels(0 TSRMLS_CC); |
} else { |
} else { |
efree(op_array); |
efree(op_array); |
retval = NULL; |
retval = NULL; |
Line 685 ZEND_API int zend_prepare_string_for_scanning(zval *st
|
Line 691 ZEND_API int zend_prepare_string_for_scanning(zval *st
|
zend_set_compiled_filename(filename TSRMLS_CC); |
zend_set_compiled_filename(filename TSRMLS_CC); |
CG(zend_lineno) = 1; |
CG(zend_lineno) = 1; |
CG(increment_lineno) = 0; |
CG(increment_lineno) = 0; |
|
RESET_DOC_COMMENT(); |
return SUCCESS; |
return SUCCESS; |
} |
} |
|
|
Line 744 zend_op_array *compile_string(zval *source_string, cha
|
Line 751 zend_op_array *compile_string(zval *source_string, cha
|
init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); |
init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); |
CG(interactive) = orig_interactive; |
CG(interactive) = orig_interactive; |
CG(active_op_array) = op_array; |
CG(active_op_array) = op_array; |
|
zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context))); |
zend_init_compiler_context(TSRMLS_C); |
zend_init_compiler_context(TSRMLS_C); |
BEGIN(ST_IN_SCRIPTING); |
BEGIN(ST_IN_SCRIPTING); |
compiler_result = zendparse(TSRMLS_C); |
compiler_result = zendparse(TSRMLS_C); |
Line 753 zend_op_array *compile_string(zval *source_string, cha
|
Line 761 zend_op_array *compile_string(zval *source_string, cha
|
SCNG(script_filtered) = NULL; |
SCNG(script_filtered) = NULL; |
} |
} |
|
|
if (compiler_result==1) { | if (compiler_result != 0) { |
CG(active_op_array) = original_active_op_array; |
CG(active_op_array) = original_active_op_array; |
CG(unclean_shutdown)=1; |
CG(unclean_shutdown)=1; |
destroy_op_array(op_array TSRMLS_CC); |
destroy_op_array(op_array TSRMLS_CC); |
Line 763 zend_op_array *compile_string(zval *source_string, cha
|
Line 771 zend_op_array *compile_string(zval *source_string, cha
|
zend_do_return(NULL, 0 TSRMLS_CC); |
zend_do_return(NULL, 0 TSRMLS_CC); |
CG(active_op_array) = original_active_op_array; |
CG(active_op_array) = original_active_op_array; |
pass_two(op_array TSRMLS_CC); |
pass_two(op_array TSRMLS_CC); |
zend_release_labels(TSRMLS_C); | zend_release_labels(0 TSRMLS_CC); |
retval = op_array; |
retval = op_array; |
} |
} |
} |
} |
Line 905 static void zend_scan_escape_string(zval *zendlval, ch
|
Line 913 static void zend_scan_escape_string(zval *zendlval, ch
|
zendlval->value.str.len--; |
zendlval->value.str.len--; |
break; |
break; |
case 'e': |
case 'e': |
|
#ifdef PHP_WIN32 |
|
*t++ = VK_ESCAPE; |
|
#else |
*t++ = '\e'; |
*t++ = '\e'; |
|
#endif |
zendlval->value.str.len--; |
zendlval->value.str.len--; |
break; |
break; |
case '"': |
case '"': |