summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
commit2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch)
tree41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /Zend
parentd29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff)
downloadphp-2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b.tar.gz
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'Zend')
-rw-r--r--Zend/Makefile.am2
-rw-r--r--Zend/Zend.dsp8
-rw-r--r--Zend/Zend.m432
-rw-r--r--Zend/ZendTS.dsp8
-rw-r--r--Zend/acconfig.h4
-rw-r--r--Zend/bench.php1
-rw-r--r--Zend/tests/017.phpt82
-rw-r--r--Zend/tests/018.phpt36
-rw-r--r--Zend/tests/add_001.phpt73
-rw-r--r--Zend/tests/add_002.phpt19
-rw-r--r--Zend/tests/add_003.phpt19
-rw-r--r--Zend/tests/add_004.phpt14
-rw-r--r--Zend/tests/add_005.phpt22
-rw-r--r--Zend/tests/add_006.phpt47
-rw-r--r--Zend/tests/add_007.phpt16
-rw-r--r--Zend/tests/and_001.phpt39
-rw-r--r--Zend/tests/bug33282.phpt19
-rwxr-xr-xZend/tests/bug34617.phpt4
-rwxr-xr-xZend/tests/bug35106.phpt14
-rwxr-xr-xZend/tests/bug35634.phpt36
-rwxr-xr-xZend/tests/bug36214.phpt54
-rwxr-xr-xZend/tests/bug37212.phpt2
-rwxr-xr-xZend/tests/bug39297.phpt45
-rwxr-xr-xZend/tests/bug39438.phpt45
-rwxr-xr-xZend/tests/bug39445.phpt16
-rwxr-xr-xZend/tests/bug39449.phpt40
-rwxr-xr-xZend/tests/bug39602.phpt15
-rwxr-xr-xZend/tests/bug39721.phpt30
-rwxr-xr-xZend/tests/bug39775.phpt20
-rwxr-xr-xZend/tests/bug39825.phpt13
-rwxr-xr-xZend/tests/bug39944.phpt88
-rwxr-xr-xZend/tests/bug39990.phpt17
-rwxr-xr-xZend/tests/bug40236.inc10
-rwxr-xr-xZend/tests/bug40236.phpt14
-rwxr-xr-xZend/tests/bug40261.phpt25
-rw-r--r--Zend/tests/bug40621.phpt20
-rwxr-xr-xZend/tests/bug40770.phpt22
-rw-r--r--Zend/tests/bug40784.phpt24
-rwxr-xr-xZend/tests/bug40809.phpt33
-rw-r--r--Zend/tests/bug40815.phpt18
-rwxr-xr-xZend/tests/bug40833.phpt72
-rw-r--r--Zend/tests/bug40899.phpt9
-rw-r--r--Zend/tests/bug41026.phpt26
-rw-r--r--Zend/tests/bug41075.phpt31
-rwxr-xr-xZend/tests/bug41117_1.phpt14
-rw-r--r--Zend/tests/bug41209.phpt46
-rw-r--r--Zend/tests/cast_to_array.phptbin0 -> 986 bytes
-rw-r--r--Zend/tests/cast_to_bool.phpt53
-rw-r--r--Zend/tests/cast_to_double.phpt55
-rw-r--r--Zend/tests/cast_to_int.phpt55
-rw-r--r--Zend/tests/cast_to_object.phptbin0 -> 1106 bytes
-rw-r--r--Zend/tests/cast_to_string.phptbin0 -> 621 bytes
-rw-r--r--Zend/tests/concat_001.phpt78
-rw-r--r--Zend/tests/div_001.phpt32
-rw-r--r--Zend/tests/div_002.phpt15
-rw-r--r--Zend/tests/double_to_string.phpt52
-rw-r--r--Zend/tests/double_to_string_64bit.phpt56
-rw-r--r--Zend/tests/errmsg_001.phpt16
-rw-r--r--Zend/tests/errmsg_002.phpt14
-rw-r--r--Zend/tests/errmsg_003.phpt19
-rw-r--r--Zend/tests/errmsg_004.phpt15
-rw-r--r--Zend/tests/errmsg_005.phpt18
-rw-r--r--Zend/tests/errmsg_006.phpt12
-rw-r--r--Zend/tests/errmsg_007.phpt12
-rw-r--r--Zend/tests/errmsg_008.phpt12
-rw-r--r--Zend/tests/errmsg_009.phpt13
-rw-r--r--Zend/tests/errmsg_010.phpt13
-rw-r--r--Zend/tests/errmsg_011.phpt16
-rw-r--r--Zend/tests/errmsg_012.phpt11
-rw-r--r--Zend/tests/errmsg_013.phpt14
-rw-r--r--Zend/tests/errmsg_014.phpt17
-rw-r--r--Zend/tests/errmsg_015.phpt14
-rw-r--r--Zend/tests/errmsg_016.phpt14
-rw-r--r--Zend/tests/errmsg_017.phpt14
-rw-r--r--Zend/tests/errmsg_018.phpt15
-rw-r--r--Zend/tests/errmsg_019.phpt14
-rw-r--r--Zend/tests/errmsg_020.phpt14
-rw-r--r--Zend/tests/errmsg_021.phpt17
-rw-r--r--Zend/tests/errmsg_022.phpt14
-rw-r--r--Zend/tests/errmsg_023.phpt17
-rw-r--r--Zend/tests/errmsg_024.phpt17
-rw-r--r--Zend/tests/errmsg_025.phpt20
-rw-r--r--Zend/tests/errmsg_026.phpt12
-rw-r--r--Zend/tests/errmsg_027.phpt16
-rw-r--r--Zend/tests/errmsg_028.phpt12
-rw-r--r--Zend/tests/errmsg_029.phpt12
-rw-r--r--Zend/tests/errmsg_030.phpt12
-rw-r--r--Zend/tests/errmsg_031.phpt12
-rw-r--r--Zend/tests/errmsg_032.phpt15
-rw-r--r--Zend/tests/errmsg_033.phpt15
-rw-r--r--Zend/tests/errmsg_034.phpt15
-rw-r--r--Zend/tests/errmsg_035.phpt12
-rw-r--r--Zend/tests/errmsg_036.phpt12
-rw-r--r--Zend/tests/errmsg_037.phpt13
-rw-r--r--Zend/tests/errmsg_038.phpt13
-rw-r--r--Zend/tests/errmsg_039.phpt14
-rw-r--r--Zend/tests/errmsg_040.phpt13
-rw-r--r--Zend/tests/errmsg_041.phpt11
-rw-r--r--Zend/tests/errmsg_042.phpt13
-rw-r--r--Zend/tests/errmsg_043.phpt12
-rw-r--r--Zend/tests/foreach.phpt25
-rw-r--r--Zend/tests/globals.inc15
-rw-r--r--Zend/tests/globals_001.phpt34
-rw-r--r--Zend/tests/globals_002.phpt37
-rw-r--r--Zend/tests/globals_003.phpt43
-rw-r--r--Zend/tests/globals_004.phpt28
-rw-r--r--Zend/tests/halt_compiler1.phpt8
-rw-r--r--Zend/tests/halt_compiler2.phpt23
-rw-r--r--Zend/tests/halt_compiler3.phpt10
-rw-r--r--Zend/tests/halt_compiler4.phpt10
-rw-r--r--Zend/tests/hex_overflow_32bit.phpt29
-rw-r--r--Zend/tests/mod_001.phpt17
-rw-r--r--Zend/tests/mul_001.phpt15
-rw-r--r--Zend/tests/not_001.phpt22
-rw-r--r--Zend/tests/not_002.phpt15
-rw-r--r--Zend/tests/oct_overflow_32bit.phpt31
-rw-r--r--Zend/tests/offset_assign.phpt11
-rw-r--r--Zend/tests/or_001.phpt29
-rw-r--r--Zend/tests/settype_array.phptbin0 -> 1006 bytes
-rw-r--r--Zend/tests/settype_bool.phpt53
-rw-r--r--Zend/tests/settype_double.phpt55
-rw-r--r--Zend/tests/settype_int.phpt55
-rw-r--r--Zend/tests/settype_null.phpt53
-rw-r--r--Zend/tests/settype_object.phptbin0 -> 1126 bytes
-rw-r--r--Zend/tests/settype_resource.phptbin0 -> 1581 bytes
-rw-r--r--Zend/tests/settype_string.phptbin0 -> 747 bytes
-rw-r--r--Zend/tests/shift_001.phpt25
-rw-r--r--Zend/tests/shift_002.phpt25
-rw-r--r--Zend/tests/sub_001.phpt15
-rw-r--r--Zend/tests/unset_cv08.phpt3
-rw-r--r--Zend/tests/xor_001.phpt16
-rw-r--r--Zend/tests/xor_002.phpt39
-rw-r--r--Zend/tests/xor_003.phpt19
-rw-r--r--Zend/zend.c86
-rw-r--r--Zend/zend.h6
-rw-r--r--Zend/zend_API.c94
-rw-r--r--Zend/zend_API.h9
-rw-r--r--Zend/zend_alloc.c1574
-rw-r--r--Zend/zend_alloc.h58
-rw-r--r--Zend/zend_arg_defs.c4
-rw-r--r--Zend/zend_builtin_functions.c55
-rw-r--r--Zend/zend_builtin_functions.h4
-rw-r--r--Zend/zend_compile.c170
-rw-r--r--Zend/zend_compile.h19
-rw-r--r--Zend/zend_config.nw.h4
-rw-r--r--Zend/zend_config.w32.h4
-rw-r--r--Zend/zend_constants.c32
-rw-r--r--Zend/zend_constants.h4
-rw-r--r--Zend/zend_default_classes.c4
-rw-r--r--Zend/zend_dynamic_array.c4
-rw-r--r--Zend/zend_dynamic_array.h4
-rw-r--r--Zend/zend_errors.h4
-rw-r--r--Zend/zend_exceptions.c85
-rw-r--r--Zend/zend_exceptions.h4
-rw-r--r--Zend/zend_execute.c53
-rw-r--r--Zend/zend_execute.h14
-rw-r--r--Zend/zend_execute_API.c48
-rw-r--r--Zend/zend_extensions.c4
-rw-r--r--Zend/zend_extensions.h4
-rw-r--r--Zend/zend_fast_cache.h4
-rw-r--r--Zend/zend_globals.h4
-rw-r--r--Zend/zend_globals_macros.h9
-rw-r--r--Zend/zend_hash.c87
-rw-r--r--Zend/zend_hash.h12
-rw-r--r--Zend/zend_highlight.c4
-rw-r--r--Zend/zend_highlight.h4
-rw-r--r--Zend/zend_indent.c4
-rw-r--r--Zend/zend_indent.h4
-rw-r--r--Zend/zend_ini.c35
-rw-r--r--Zend/zend_ini.h5
-rw-r--r--Zend/zend_ini_scanner.h4
-rwxr-xr-xZend/zend_interfaces.c4
-rwxr-xr-xZend/zend_interfaces.h4
-rw-r--r--Zend/zend_istdiostream.h4
-rwxr-xr-xZend/zend_iterators.c4
-rwxr-xr-xZend/zend_iterators.h4
-rw-r--r--Zend/zend_language_parser.c2685
-rw-r--r--Zend/zend_language_parser.output10432
-rw-r--r--Zend/zend_language_parser.y20
-rw-r--r--Zend/zend_language_scanner.c4681
-rw-r--r--Zend/zend_language_scanner.h4
-rw-r--r--Zend/zend_language_scanner.l101
-rw-r--r--Zend/zend_list.c4
-rw-r--r--Zend/zend_list.h4
-rw-r--r--Zend/zend_llist.c12
-rw-r--r--Zend/zend_llist.h4
-rw-r--r--Zend/zend_mm.c475
-rw-r--r--Zend/zend_mm.h85
-rw-r--r--Zend/zend_modules.h4
-rw-r--r--Zend/zend_multibyte.c4
-rw-r--r--Zend/zend_multibyte.h4
-rw-r--r--Zend/zend_multiply.h8
-rw-r--r--Zend/zend_object_handlers.c27
-rw-r--r--Zend/zend_object_handlers.h4
-rw-r--r--Zend/zend_objects.c4
-rw-r--r--Zend/zend_objects.h4
-rw-r--r--Zend/zend_objects_API.c9
-rw-r--r--Zend/zend_objects_API.h4
-rw-r--r--Zend/zend_opcode.c12
-rw-r--r--Zend/zend_operators.c136
-rw-r--r--Zend/zend_operators.h197
-rw-r--r--Zend/zend_ptr_stack.c4
-rw-r--r--Zend/zend_ptr_stack.h4
-rw-r--r--Zend/zend_qsort.c4
-rw-r--r--Zend/zend_qsort.h4
-rw-r--r--Zend/zend_sprintf.c4
-rw-r--r--Zend/zend_stack.c4
-rw-r--r--Zend/zend_stack.h4
-rw-r--r--Zend/zend_static_allocator.c4
-rw-r--r--Zend/zend_static_allocator.h4
-rw-r--r--Zend/zend_stream.c4
-rw-r--r--Zend/zend_stream.h4
-rw-r--r--Zend/zend_strtod.c1611
-rw-r--r--Zend/zend_strtod.h10
-rw-r--r--Zend/zend_ts_hash.c4
-rw-r--r--Zend/zend_ts_hash.h4
-rw-r--r--Zend/zend_types.h12
-rw-r--r--Zend/zend_variables.c4
-rw-r--r--Zend/zend_variables.h4
-rw-r--r--Zend/zend_vm.h4
-rw-r--r--Zend/zend_vm_def.h47
-rw-r--r--Zend/zend_vm_execute.h191
-rw-r--r--Zend/zend_vm_gen.php6
-rw-r--r--Zend/zend_vm_opcodes.h2
224 files changed, 15377 insertions, 11043 deletions
diff --git a/Zend/Makefile.am b/Zend/Makefile.am
index bd55716b3..3ad54a9d1 100644
--- a/Zend/Makefile.am
+++ b/Zend/Makefile.am
@@ -14,7 +14,7 @@ libZend_la_SOURCES=\
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
- zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
+ zend_objects_API.c zend_ts_hash.c zend_stream.c \
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_multibyte.c
diff --git a/Zend/Zend.dsp b/Zend/Zend.dsp
index 93ecdf90b..a92125d89 100644
--- a/Zend/Zend.dsp
+++ b/Zend/Zend.dsp
@@ -195,10 +195,6 @@ SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
-SOURCE=.\zend_mm.c
-# End Source File
-# Begin Source File
-
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
@@ -371,10 +367,6 @@ SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
-SOURCE=.\zend_mm.h
-# End Source File
-# Begin Source File
-
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
diff --git a/Zend/Zend.m4 b/Zend/Zend.m4
index 2e442135b..3802ef075 100644
--- a/Zend/Zend.m4
+++ b/Zend/Zend.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: Zend.m4,v 1.58.4.2 2006/09/14 09:58:27 dmitry Exp $
+dnl $Id: Zend.m4,v 1.58.4.4 2006/12/20 10:49:32 dmitry Exp $
dnl
dnl This file contains Zend specific autoconf functions.
dnl
@@ -129,13 +129,6 @@ AC_ARG_WITH(zend-vm,
PHP_ZEND_VM=CALL
])
-AC_ARG_ENABLE(malloc-mm,
-[ --enable-malloc-mm Use environment variable for run-time malloc/emalloc
- selection - FOR DEVELOPERS ONLY!!],
-[
- ZEND_USE_MALLOC_MM=$enableval
-])
-
AC_ARG_ENABLE(maintainer-zts,
[ --enable-maintainer-zts Enable thread safety - for code maintainers only!!],[
ZEND_MAINTAINER_ZTS=$enableval
@@ -151,13 +144,6 @@ AC_ARG_ENABLE(inline-optimization,
ZEND_INLINE_OPTIMIZATION=yes
])
-AC_ARG_ENABLE(memory-limit,
-[ --enable-memory-limit Compile with memory limit support], [
- ZEND_MEMORY_LIMIT=$enableval
-],[
- ZEND_MEMORY_LIMIT=no
-])
-
AC_ARG_ENABLE(zend-multibyte,
[ --enable-zend-multibyte Compile with zend multibyte support], [
ZEND_MULTIBYTE=$enableval
@@ -174,9 +160,6 @@ AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
AC_MSG_CHECKING(whether to enable inline optimization for GCC)
AC_MSG_RESULT($ZEND_INLINE_OPTIMIZATION)
-AC_MSG_CHECKING(whether to enable a memory limit)
-AC_MSG_RESULT($ZEND_MEMORY_LIMIT)
-
AC_MSG_CHECKING(whether to enable Zend debugging)
AC_MSG_RESULT($ZEND_DEBUG)
@@ -217,12 +200,6 @@ if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
LIBZEND_CPLUSPLUS_CHECKS
fi
-if test "$ZEND_MEMORY_LIMIT" = "yes"; then
- AC_DEFINE(MEMORY_LIMIT, 1, [Memory limit])
-else
- AC_DEFINE(MEMORY_LIMIT, 0, [Memory limit])
-fi
-
if test "$ZEND_MULTIBYTE" = "yes"; then
AC_DEFINE(ZEND_MULTIBYTE, 1, [ ])
fi
@@ -404,3 +381,10 @@ AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
])
+AC_MSG_CHECKING(whether /dev/urandom exists)
+if test -r "/dev/urandom" && test -c "/dev/urandom"; then
+ AC_DEFINE([HAVE_DEV_URANDOM], 1, [Define if the target system has /dev/urandom device])
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
diff --git a/Zend/ZendTS.dsp b/Zend/ZendTS.dsp
index a3591c6db..e70f123a0 100644
--- a/Zend/ZendTS.dsp
+++ b/Zend/ZendTS.dsp
@@ -229,10 +229,6 @@ SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
-SOURCE=.\zend_mm.c
-# End Source File
-# Begin Source File
-
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
@@ -409,10 +405,6 @@ SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
-SOURCE=.\zend_mm.h
-# End Source File
-# Begin Source File
-
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
diff --git a/Zend/acconfig.h b/Zend/acconfig.h
index 991153073..b423f1025 100644
--- a/Zend/acconfig.h
+++ b/Zend/acconfig.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: acconfig.h,v 1.40.2.1 2006/01/04 23:53:03 andi Exp $ */
+/* $Id: acconfig.h,v 1.40.2.1.2.1 2007/01/01 09:35:45 sebastian Exp $ */
#define ZEND_API
#define ZEND_DLEXPORT
diff --git a/Zend/bench.php b/Zend/bench.php
index f22704a7a..44000d991 100644
--- a/Zend/bench.php
+++ b/Zend/bench.php
@@ -1,4 +1,5 @@
<?php
+date_default_timezone_set("UTC");
function simple() {
$a = 0;
diff --git a/Zend/tests/017.phpt b/Zend/tests/017.phpt
new file mode 100644
index 000000000..e8a5cfe85
--- /dev/null
+++ b/Zend/tests/017.phpt
@@ -0,0 +1,82 @@
+--TEST--
+builtin functions tests
+--FILE--
+<?php
+
+var_dump(get_resource_type());
+var_dump(get_resource_type(""));
+$fp = fopen(__FILE__, "r");
+var_dump(get_resource_type($fp));
+fclose($fp);
+var_dump(get_resource_type($fp));
+
+var_dump(get_loaded_extensions(true));
+var_dump(gettype(get_loaded_extensions()));
+var_dump(count(get_loaded_extensions()));
+
+define("USER_CONSTANT", "test");
+
+var_dump(get_defined_constants(true, true));
+var_dump(gettype(get_defined_constants(true)));
+var_dump(gettype(get_defined_constants()));
+var_dump(count(get_defined_constants()));
+
+function test () {
+}
+
+var_dump(get_defined_functions(true));
+var_dump(gettype(get_defined_functions()));
+var_dump(count(get_defined_functions()));
+
+var_dump(get_declared_interfaces(true));
+var_dump(gettype(get_declared_interfaces()));
+var_dump(count(get_declared_interfaces()));
+
+var_dump(get_extension_funcs());
+var_dump(get_extension_funcs(true));
+var_dump(gettype(get_extension_funcs("standard")));
+var_dump(count(get_extension_funcs("standard")));
+var_dump(gettype(get_extension_funcs("zend")));
+var_dump(count(get_extension_funcs("zend")));
+
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: Wrong parameter count for get_resource_type() in %s on line %d
+NULL
+
+Warning: Supplied argument is not a valid resource handle in %s on line %d
+bool(false)
+string(6) "stream"
+string(7) "Unknown"
+
+Warning: Wrong parameter count for get_loaded_extensions() in %s on line %d
+NULL
+string(5) "array"
+int(%d)
+
+Warning: Wrong parameter count for get_defined_constants() in %s on line %d
+NULL
+string(5) "array"
+string(5) "array"
+int(%d)
+
+Warning: Wrong parameter count for get_defined_functions() in %s on line %d
+NULL
+string(5) "array"
+int(%d)
+
+Warning: Wrong parameter count for get_declared_interfaces() in %s on line %d
+NULL
+string(5) "array"
+int(%d)
+
+Warning: Wrong parameter count for get_extension_funcs() in %s on line %d
+NULL
+bool(false)
+string(5) "array"
+int(%d)
+string(5) "array"
+int(%d)
+Done
diff --git a/Zend/tests/018.phpt b/Zend/tests/018.phpt
new file mode 100644
index 000000000..ea875c678
--- /dev/null
+++ b/Zend/tests/018.phpt
@@ -0,0 +1,36 @@
+--TEST--
+constant() tests
+--FILE--
+<?php
+
+var_dump(constant());
+var_dump(constant("", ""));
+var_dump(constant(""));
+
+var_dump(constant(array()));
+
+define("TEST_CONST", 1);
+var_dump(constant("TEST_CONST"));
+
+define("TEST_CONST2", "test");
+var_dump(constant("TEST_CONST2"));
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: Wrong parameter count for constant() in %s on line %d
+NULL
+
+Warning: Wrong parameter count for constant() in %s on line %d
+NULL
+
+Warning: constant(): Couldn't find constant in %s on line %d
+NULL
+
+Notice: Array to string conversion in %s on line %d
+
+Warning: constant(): Couldn't find constant Array in %s on line %d
+NULL
+int(1)
+string(4) "test"
+Done
diff --git a/Zend/tests/add_001.phpt b/Zend/tests/add_001.phpt
new file mode 100644
index 000000000..8d12aea11
--- /dev/null
+++ b/Zend/tests/add_001.phpt
@@ -0,0 +1,73 @@
+--TEST--
+adding arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array("str", "here");
+
+$c = $a + $b;
+var_dump($c);
+
+$a = array(1,2,3);
+$b = array(1,2,4);
+
+$c = $a + $b;
+var_dump($c);
+
+$a = array("a"=>"aaa",2,3);
+$b = array(1,2,"a"=>"bbbbbb");
+
+$c = $a + $b;
+var_dump($c);
+
+$a += $b;
+var_dump($c);
+
+$a += $a;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(3) {
+ ["a"]=>
+ string(3) "aaa"
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+}
+array(3) {
+ ["a"]=>
+ string(3) "aaa"
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+}
+array(3) {
+ ["a"]=>
+ string(3) "aaa"
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+}
+Done
diff --git a/Zend/tests/add_002.phpt b/Zend/tests/add_002.phpt
new file mode 100644
index 000000000..437ac9113
--- /dev/null
+++ b/Zend/tests/add_002.phpt
@@ -0,0 +1,19 @@
+--TEST--
+adding objects to arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+
+$o = new stdclass;
+$o->prop = "value";
+
+$c = $a + $o;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Notice: Object of class stdClass could not be converted to int in %s on line %d
+
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/add_003.phpt b/Zend/tests/add_003.phpt
new file mode 100644
index 000000000..4223af3f1
--- /dev/null
+++ b/Zend/tests/add_003.phpt
@@ -0,0 +1,19 @@
+--TEST--
+adding arrays to objects
+--FILE--
+<?php
+
+$a = array(1,2,3);
+
+$o = new stdclass;
+$o->prop = "value";
+
+$c = $o + $a;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Notice: Object of class stdClass could not be converted to int in %s on line %d
+
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/add_004.phpt b/Zend/tests/add_004.phpt
new file mode 100644
index 000000000..492ff31ba
--- /dev/null
+++ b/Zend/tests/add_004.phpt
@@ -0,0 +1,14 @@
+--TEST--
+adding numbers to arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+
+$c = $a + 5;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/add_005.phpt b/Zend/tests/add_005.phpt
new file mode 100644
index 000000000..7e9bc25d8
--- /dev/null
+++ b/Zend/tests/add_005.phpt
@@ -0,0 +1,22 @@
+--TEST--
+adding integers to doubles
+--INI--
+precision=14
+--FILE--
+<?php
+
+$i = 75636;
+$d = 2834681123.123123;
+
+$c = $i + $d;
+var_dump($c);
+
+$c = $d + $i;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(2834756759.1231)
+float(2834756759.1231)
+Done
diff --git a/Zend/tests/add_006.phpt b/Zend/tests/add_006.phpt
new file mode 100644
index 000000000..c3f127e9c
--- /dev/null
+++ b/Zend/tests/add_006.phpt
@@ -0,0 +1,47 @@
+--TEST--
+adding numbers to strings
+--FILE--
+<?php
+
+$i = 75636;
+$s1 = "this is a string";
+$s2 = "876222numeric";
+$s3 = "48474874";
+$s4 = "25.68";
+
+$c = $i + $s1;
+var_dump($c);
+
+$c = $i + $s2;
+var_dump($c);
+
+$c = $i + $s3;
+var_dump($c);
+
+$c = $i + $s4;
+var_dump($c);
+
+$c = $s1 + $i;
+var_dump($c);
+
+$c = $s2 + $i;
+var_dump($c);
+
+$c = $s3 + $i;
+var_dump($c);
+
+$c = $s4 + $i;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(75636)
+int(951858)
+int(48550510)
+float(75661.68)
+int(75636)
+int(951858)
+int(48550510)
+float(75661.68)
+Done
diff --git a/Zend/tests/add_007.phpt b/Zend/tests/add_007.phpt
new file mode 100644
index 000000000..b2f1559b7
--- /dev/null
+++ b/Zend/tests/add_007.phpt
@@ -0,0 +1,16 @@
+--TEST--
+adding strings to arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+
+$s1 = "some string";
+
+$c = $a + $s1;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/and_001.phpt b/Zend/tests/and_001.phpt
new file mode 100644
index 000000000..109b2ce99
--- /dev/null
+++ b/Zend/tests/and_001.phpt
@@ -0,0 +1,39 @@
+--TEST--
+bitwise AND and strings
+--FILE--
+<?php
+
+$s = "123";
+$s1 = "234";
+
+var_dump($s & $s1);
+
+$s = "test";
+$s1 = "some";
+
+var_dump($s & $s1);
+
+$s = "test long";
+$s1 = "some";
+
+var_dump($s & $s1);
+
+$s = "test";
+$s1 = "some long";
+
+var_dump($s & $s1);
+
+$s = "test";
+$s &= "some long";
+
+var_dump($s);
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(3) "020"
+string(4) "pead"
+string(4) "pead"
+string(4) "pead"
+string(4) "pead"
+Done
diff --git a/Zend/tests/bug33282.phpt b/Zend/tests/bug33282.phpt
new file mode 100644
index 000000000..65e3c16cf
--- /dev/null
+++ b/Zend/tests/bug33282.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #33282 (Re-assignment by reference does not clear the is_ref flag)
+--FILE--
+<?php
+ $a = array(1, 2, 3);
+ $r = &$a[0];
+ $r = &$a[1];
+ $r = &$a[2];
+ var_dump($a);
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ &int(3)
+}
diff --git a/Zend/tests/bug34617.phpt b/Zend/tests/bug34617.phpt
index 60a07ea6d..826ff1000 100755
--- a/Zend/tests/bug34617.phpt
+++ b/Zend/tests/bug34617.phpt
@@ -1,7 +1,7 @@
--TEST--
Bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called)
--SKIPIF--
-<?php if (!extension_loaded("xml")) print "skip"; ?>
+<?php if (!extension_loaded("xml")) print "skip the xml extension not available"; ?>
--FILE--
<?php
class Thing {}
@@ -15,4 +15,4 @@ function boom()
boom();
?>
--EXPECT--
-ok \ No newline at end of file
+ok
diff --git a/Zend/tests/bug35106.phpt b/Zend/tests/bug35106.phpt
new file mode 100755
index 000000000..a3f166cd5
--- /dev/null
+++ b/Zend/tests/bug35106.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #35106 (nested foreach fails when array variable has a reference)
+--FILE--
+<?php
+$a=array("1","2");
+$b=&$a;
+foreach($a as $i){
+ echo $i;
+ foreach($a as $p);
+}
+echo "\n";
+?>
+--EXPECT--
+12
diff --git a/Zend/tests/bug35634.phpt b/Zend/tests/bug35634.phpt
new file mode 100755
index 000000000..9681b6ad4
--- /dev/null
+++ b/Zend/tests/bug35634.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Bug #35634 (Erroneous "Class declarations may not be nested" error raised)
+--INI--
+error_reporting=0
+--FILE--
+<?php
+if (defined("pass3")) {
+
+ class ErrorClass {
+ }
+
+} else if (defined("pass2")) {
+
+ class TestClass {
+ function __construct() {
+ }
+ function TestClass() {
+ $this->__construct();
+ }
+ }
+
+} else {
+
+ function errorHandler($errorNumber, $errorMessage, $fileName, $lineNumber) {
+ define("pass3", 1);
+ include(__FILE__);
+ die("Error: $errorMessage ($fileName:$lineNumber)\n");
+ }
+
+ set_error_handler('errorHandler');
+ define("pass2", 1);
+ include(__FILE__);
+}
+?>
+--EXPECTF--
+Error: Redefining already defined constructor for class TestClass (%sbug35634.php:12)
diff --git a/Zend/tests/bug36214.phpt b/Zend/tests/bug36214.phpt
new file mode 100755
index 000000000..dae25452c
--- /dev/null
+++ b/Zend/tests/bug36214.phpt
@@ -0,0 +1,54 @@
+--TEST--
+Bug #36214 (__get method works properly only when conditional operator is used)
+--SKIPIF--
+<?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?>
+--FILE--
+<?php
+class context {
+ public $stack = array();
+
+ public function __set($name,$var) {
+ $this->stack[$name] = $var;return;
+ }
+
+ public function &__get($name) {
+ return $this->stack[$name];
+ }
+}
+
+$ctx = new context;
+$ctx->comment_preview = array();
+$ctx->comment_preview[0] = 1;
+$ctx->comment_preview[1] = 2;
+var_dump($ctx->comment_preview);
+
+$comment_preview = array();
+$comment_preview[0] = 1;
+$comment_preview[1] = 2;
+$ctx->comment_preview = $comment_preview;
+var_dump($ctx->comment_preview);
+
+$ctx->comment_preview = new ArrayObject();
+$ctx->comment_preview[0] = 1;
+$ctx->comment_preview[1] = 2;
+var_dump($ctx->comment_preview);
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+}
+array(2) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+}
+object(ArrayObject)#2 (2) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+}
diff --git a/Zend/tests/bug37212.phpt b/Zend/tests/bug37212.phpt
index 5320a6173..81cc34fdb 100755
--- a/Zend/tests/bug37212.phpt
+++ b/Zend/tests/bug37212.phpt
@@ -1,5 +1,5 @@
--TEST--
-Bug #3721 (Access to protected property of common base class)
+Bug #37212 (Access to protected property of common base class)
--FILE--
<?php
diff --git a/Zend/tests/bug39297.phpt b/Zend/tests/bug39297.phpt
new file mode 100755
index 000000000..01e3f9172
--- /dev/null
+++ b/Zend/tests/bug39297.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Bug #39297 (Memory corryption because of indirect modification of overloaded array)
+--FILE--
+<?php
+function compareByRef(&$first, &$second) {
+ return $first === $second;
+}
+
+class MyTree implements ArrayAccess {
+ public $parent;
+ public $children = array();
+
+ public function offsetExists($offset) {
+ }
+
+ public function offsetUnset($offset) {
+ }
+
+ public function offsetSet($offset, $value) {
+ echo "offsetSet()\n";
+ $cannonicalName = strtolower($offset);
+ $this->children[$cannonicalName] = $value;
+ $value->parent = $this;
+ }
+
+ public function offsetGet($offset) {
+ echo "offsetGet()\n";
+ $cannonicalName = strtolower($offset);
+ return $this->children[$cannonicalName];
+ }
+
+}
+
+$id = 'Test';
+
+$root = new MyTree();
+$child = new MyTree();
+$root[$id] = $child;
+
+var_dump(compareByRef($root[$id], $child));
+?>
+--EXPECT--
+offsetSet()
+offsetGet()
+bool(true)
diff --git a/Zend/tests/bug39438.phpt b/Zend/tests/bug39438.phpt
new file mode 100755
index 000000000..2dac58ac6
--- /dev/null
+++ b/Zend/tests/bug39438.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Bug #39438 (Fatal error: Out of memory)
+--INI--
+memory_limit=16M
+--FILE--
+<?php
+$i=0;
+$test2=array(
+ 'a1_teasermenu' => array(
+ 'downloadcounter' => 2777,
+ 'versions' => array(
+ '0.1.0' => array (
+ 'title' => 'A1 Teasermenu',
+ 'description' => 'Displays a teaser for advanced subpages or a selection of advanced pages',
+ 'state' => 'stable',
+ 'reviewstate' => 0,
+ 'category' => 'plugin',
+ 'downloadcounter' => 2787,
+ 'lastuploaddate' => 1088427240,
+ 'dependencies' => array (
+ 'depends' => array(
+ 'typo3' =>'',
+ 'php' =>'',
+ 'cms' => ''
+ ),
+ 'conflicts' => array('' =>'')
+ ),
+ 'authorname' => 'Mirko Balluff',
+ 'authoremail' => 'balluff@amt1.de',
+ 'ownerusername' => 'amt1',
+ 't3xfilemd5' => '3a4ec198b6ea8d0bc2d69d9b7400398f',
+ )
+ )
+ )
+);
+$test=array();
+while($i<1200) {
+ $test[]=$test2;
+ $i++;
+}
+$out=serialize($test);
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug39445.phpt b/Zend/tests/bug39445.phpt
new file mode 100755
index 000000000..87f5f03ff
--- /dev/null
+++ b/Zend/tests/bug39445.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #39445 (Calling debug_backtrace() in the __toString() function produces a crash)
+--FILE--
+<?php
+class test {
+ public function __toString() {
+ debug_backtrace();
+ return 'lowercase';
+ }
+}
+
+ $test = new test();
+ echo strtoupper($test);
+?>
+--EXPECT--
+LOWERCASE
diff --git a/Zend/tests/bug39449.phpt b/Zend/tests/bug39449.phpt
new file mode 100755
index 000000000..725c0d47b
--- /dev/null
+++ b/Zend/tests/bug39449.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Bug #39449 (Overloaded array properties do not work correctly)
+--FILE--
+<?php
+class A {
+ private $keys = array();
+ public function & __get($val) {
+ return $this->keys[$val];
+ }
+ public function __set($k, $v) {
+ $this->keys[$k] = $v;
+ }
+}
+
+$a =new A();
+$a->arr = array('a','b','c');
+
+$b = &$a->arr;
+$b[]= 'd';
+
+foreach ($a->arr as $k => $v) {
+ echo "$k => $v\n";
+}
+
+$a->arr[]='d';
+
+foreach ($a->arr as $k => $v) {
+ echo "$k => $v\n";
+}
+?>
+--EXPECT--
+0 => a
+1 => b
+2 => c
+3 => d
+0 => a
+1 => b
+2 => c
+3 => d
+4 => d
diff --git a/Zend/tests/bug39602.phpt b/Zend/tests/bug39602.phpt
new file mode 100755
index 000000000..daa10e4fd
--- /dev/null
+++ b/Zend/tests/bug39602.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #39602 (Invalid session.save_handler crashes PHP)
+--SKIPIF--
+<?php if (!extension_loaded("session")) die("skip"); ?>
+--INI--
+session.save_handler=qwerty
+error_reporting=0
+--FILE--
+<?php
+ini_set("session.save_handler","files");
+$x = new stdClass();
+echo "ok";
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug39721.phpt b/Zend/tests/bug39721.phpt
new file mode 100755
index 000000000..63edfc23e
--- /dev/null
+++ b/Zend/tests/bug39721.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #39721 (Runtime inheritance causes data corruption)
+--FILE--
+<?php
+class test2 {
+ private static $instances = 0;
+ public $instance;
+
+ public function __construct() {
+ $this->instance = ++self::$instances;
+ }
+
+}
+
+$foo = new test2();
+
+if (is_object($foo)) {
+ class test2_child extends test2 {
+
+ }
+}
+
+$child = new test2_child();
+
+echo $foo->instance . "\n";
+echo $child->instance . "\n";
+?>
+--EXPECT--
+1
+2
diff --git a/Zend/tests/bug39775.phpt b/Zend/tests/bug39775.phpt
new file mode 100755
index 000000000..b06797df8
--- /dev/null
+++ b/Zend/tests/bug39775.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #39775 ("Indirect modification ..." message is not shown)
+--FILE--
+<?php
+class test {
+ var $array = array();
+ function __get($var) {
+ $v =& $this->array;
+ return $this->array;
+ }
+}
+$t = new test;
+$t->anything[] = 'bar';
+print_r($t->anything);
+?>
+--EXPECTF--
+Notice: Indirect modification of overloaded property test::$anything has no effect in %sbug39775.php on line 10
+Array
+(
+)
diff --git a/Zend/tests/bug39825.phpt b/Zend/tests/bug39825.phpt
new file mode 100755
index 000000000..294b32d87
--- /dev/null
+++ b/Zend/tests/bug39825.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #39825 (foreach produces memory error)
+--FILE--
+<?php
+$array = array(1 => 2, "foo" => "bar");
+$obj = (object)$array;
+foreach ($obj as $name => $value) {
+ echo "$name -> $value\n";
+}
+?>
+--EXPECT--
+1 -> 2
+foo -> bar
diff --git a/Zend/tests/bug39944.phpt b/Zend/tests/bug39944.phpt
new file mode 100755
index 000000000..4249988ff
--- /dev/null
+++ b/Zend/tests/bug39944.phpt
@@ -0,0 +1,88 @@
+--TEST--
+Bug #39944 (References broken)
+--FILE--
+<?php
+$intTheValue = 0;
+
+function &getValue() {
+ global $intTheValue;
+ return $intTheValue;
+}
+
+function setValue(&$int, $iNewValue) {
+ $int = $iNewValue;
+}
+
+setValue(getValue(), 10);
+echo "intTheValue = {$intTheValue}\n";
+
+$b = &$intTheValue;
+
+setValue(getValue(), 10);
+echo "intTheValue = {$intTheValue}\n";
+
+/****/
+
+$arrTheArray = array();
+
+function &getArray() {
+ global $arrTheArray;
+ return $arrTheArray;
+}
+
+function addToArray(&$arr, $strToAdd) {
+ $arr[] = $strToAdd;
+}
+
+addToArray(getArray(), "xx1");
+$a = getArray();
+addToArray($a, "xx2");
+$b = &$arrTheArray;
+addToArray($b, "xx3");
+addToArray(getArray(), "xx4");
+$a = getArray();
+addToArray($a, "xx5");
+echo "arrTheArray = " . print_r($arrTheArray, 1);
+
+/****/
+
+class RefTest {
+ protected $arr;
+
+ function Add($strToAdd) {
+ $this->addToArray($this->getArray(), $strToAdd);
+ }
+
+ function &getArray() {
+ if (!$this->arr)
+ $this->arr = array();
+ return $this->arr;
+ }
+
+ private function addToArray(&$arr, $strToAdd) {
+ $arr[] = $strToAdd;
+ }
+}
+
+$objRefTest = new RefTest();
+$objRefTest->Add("xx1");
+$objRefTest->Add("xx2");
+$objRefTest->Add("xx3");
+
+echo "objRefTest->getArray() = " . print_r($objRefTest->getArray(), 1);
+?>
+--EXPECT--
+intTheValue = 10
+intTheValue = 10
+arrTheArray = Array
+(
+ [0] => xx1
+ [1] => xx3
+ [2] => xx4
+)
+objRefTest->getArray() = Array
+(
+ [0] => xx1
+ [1] => xx2
+ [2] => xx3
+)
diff --git a/Zend/tests/bug39990.phpt b/Zend/tests/bug39990.phpt
new file mode 100755
index 000000000..b2df0b540
--- /dev/null
+++ b/Zend/tests/bug39990.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #39990 (Cannot "foreach" over overloaded properties)
+--FILE--
+<?php
+ class Foo {
+ public function __get($name) {
+ return array('Hello', 'World');
+ }
+ }
+
+ $obj=new Foo();
+ foreach($obj->arr as $value)
+ echo "$value\n";
+?>
+--EXPECT--
+Hello
+World
diff --git a/Zend/tests/bug40236.inc b/Zend/tests/bug40236.inc
new file mode 100755
index 000000000..0fbbfc9ff
--- /dev/null
+++ b/Zend/tests/bug40236.inc
@@ -0,0 +1,10 @@
+<?php
+function func1() { }
+function func2() { }
+function func3() { }
+function func4() { }
+function func5() { }
+function func6() { }
+function func7() { }
+print ("ok\n");
+?> \ No newline at end of file
diff --git a/Zend/tests/bug40236.phpt b/Zend/tests/bug40236.phpt
new file mode 100755
index 000000000..9d8f48639
--- /dev/null
+++ b/Zend/tests/bug40236.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #40236 (php -a function allocation eats memory)
+--SKIPIF--
+if (php_sapi_name() != "cli") die("skip CLI only");
+--FILE--
+<?php
+$php = getenv('TEST_PHP_EXECUTABLE');
+$cmd = "$php -d memory_limit=4M -a ".dirname(__FILE__)."/bug40236.inc";
+echo `$cmd`;
+?>
+--EXPECTF--
+Interactive %s
+
+ok
diff --git a/Zend/tests/bug40261.phpt b/Zend/tests/bug40261.phpt
new file mode 100755
index 000000000..93a555708
--- /dev/null
+++ b/Zend/tests/bug40261.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #40261 (Extremely slow data handling due to memory fragmentation)
+--INI--
+memory_limit=128M
+--FILE--
+<?php
+$num = 100000;
+
+$a = Array();
+for ($i=0; $i<$num; $i++) {
+ $a[$i] = Array(1);
+}
+
+for ($i=0; $i<$num; $i++) {
+ $b[$i] = $a[$i][0];
+}
+
+unset($a);
+for ($i=0; $i<$num; $i++) {
+ $b[$i] = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
+}
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug40621.phpt b/Zend/tests/bug40621.phpt
new file mode 100644
index 000000000..564ba55be
--- /dev/null
+++ b/Zend/tests/bug40621.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #40621 (Crash when constructor called inappropriately (statically))
+--FILE--
+<?php
+
+class Foo {
+ private function __construct() { }
+ function get() {
+ self::__construct();
+ }
+}
+
+Foo::get();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Strict Standards: Non-static method Foo::get() should not be called statically in %s on line %d
+
+Fatal error: Non-static method Foo::__construct() cannot be called statically in %s on line %d
diff --git a/Zend/tests/bug40770.phpt b/Zend/tests/bug40770.phpt
new file mode 100755
index 000000000..a73338501
--- /dev/null
+++ b/Zend/tests/bug40770.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #40770 Apache child exits when PHP memory limit reached
+--INI--
+memory_limit=8M
+--SKIPIF--
+<?php
+$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
+if ($zend_mm_enabled === "0") {
+ die("skip Zend MM disabled");
+}
+?>
+--FILE--
+<?php
+ini_set('display_errors',true);
+$mb=148;
+$var = '';
+for ($i=0; $i<=$mb; $i++) {
+ $var.= str_repeat('a',1*1024*1024);
+}
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
diff --git a/Zend/tests/bug40784.phpt b/Zend/tests/bug40784.phpt
new file mode 100644
index 000000000..6da8f2a16
--- /dev/null
+++ b/Zend/tests/bug40784.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #40784 (Case sensivity in constructor's fallback)
+--FILE--
+<?php
+
+class A {
+ function A () { echo "I'm A\n"; }
+}
+
+class B extends A {
+ function __construct() {
+ parent::__construct();
+ parent::__constrUct();
+ }
+}
+
+$b = new B;
+
+echo "Done\n";
+?>
+--EXPECTF--
+I'm A
+I'm A
+Done
diff --git a/Zend/tests/bug40809.phpt b/Zend/tests/bug40809.phpt
new file mode 100755
index 000000000..be27dbd67
--- /dev/null
+++ b/Zend/tests/bug40809.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Bug #40809 Poor perfomance of ".="
+--FILE--
+<?php
+error_reporting(E_ALL|E_STRICT);
+
+$num_increments = 100;
+$num_repeats = 1000;
+$increment = 50;
+
+/* Create some more holes to give the memory allocator something to
+ * work with. */
+$num = 5000;
+$a = Array();
+for ($i=0; $i<$num; $i++) {
+ $a[$i] = Array(1);
+}
+for ($i=0; $i<$num; $i++) {
+ $b[$i] = $a[$i][0];
+}
+unset($a);
+
+for ($i=0;$i<$num_repeats;$i++) {
+ $evil = "";
+ for ($j=0;$j<$num_increments;$j++) {
+ $evil .= str_repeat("a", $increment);
+ }
+ unset($evil);
+}
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug40815.phpt b/Zend/tests/bug40815.phpt
new file mode 100644
index 000000000..6f7477a9e
--- /dev/null
+++ b/Zend/tests/bug40815.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Bug #40815 (using strings like "class::func" and static methods in set_exception_handler() might result in crash).
+--FILE--
+<?php
+
+class ehandle{
+ static public function exh ($ex) {
+ echo 'foo';
+ }
+}
+
+set_exception_handler("ehandle::exh");
+
+throw new Exception ("Whiii");
+echo "Done\n";
+?>
+--EXPECTF--
+foo
diff --git a/Zend/tests/bug40833.phpt b/Zend/tests/bug40833.phpt
new file mode 100755
index 000000000..c56ca4c3b
--- /dev/null
+++ b/Zend/tests/bug40833.phpt
@@ -0,0 +1,72 @@
+--TEST--
+Bug #40833 (Crash when using unset() on an ArrayAccess object retrieved via __get)
+--FILE--
+<?php
+ class entity
+ {
+ private $data;
+ private $modified;
+
+ function __get($name)
+ {
+ if ( isset($this->data[$name]) )
+ return $this->data[$name];
+ else
+ return $this->data[$name] = new set($this);
+ }
+
+ function __set($name, $value)
+ {
+ $this->modified[$name] = $value;
+ }
+ }
+
+ class set implements ArrayAccess
+ {
+ private $entity;
+
+ function __construct($entity)
+ {
+ $this->entity = $entity;
+ $this->entity->whatever = $this;
+ }
+
+ function clear() {
+ $this->entity->whatever = null;
+ }
+
+ function offsetUnset($offset)
+ {
+ $this->clear();
+// $this->entity->{$this->name} = null;
+ }
+
+ function offsetSet($offset, $value)
+ {
+ }
+
+ function offsetGet($offset)
+ {
+ return 'Bogus ';
+ }
+
+ function offsetExists($offset)
+ {
+ }
+ }
+
+ $entity = new entity();
+ echo($entity->whatever[0]);
+
+ //This will crash
+// $entity->whatever->clear();
+ unset($entity->whatever[0]);
+
+ //This will not crash (comment previous & uncomment this to test
+// $test = $entity->whatever; unset($test[0]);
+
+ echo($entity->whatever[0]);
+ echo "ok\n";
+?>
+--EXPECT--
+Bogus Bogus ok
diff --git a/Zend/tests/bug40899.phpt b/Zend/tests/bug40899.phpt
new file mode 100644
index 000000000..7be0f6b8e
--- /dev/null
+++ b/Zend/tests/bug40899.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Bug #40899 (memory leak when nesting list())
+--FILE--
+<?php
+list(list($a,$b),$c)=array(array('a','b'),'c');
+echo "$a$b$c\n";
+?>
+--EXPECT--
+abc
diff --git a/Zend/tests/bug41026.phpt b/Zend/tests/bug41026.phpt
new file mode 100644
index 000000000..7caac215e
--- /dev/null
+++ b/Zend/tests/bug41026.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #41026 (segfault when calling "self::method()" in shutdown functions)
+--FILE--
+<?php
+
+class try_class
+{
+ static public function main ()
+ {
+ register_shutdown_function (array ("self", "on_shutdown"));
+ }
+
+ static public function on_shutdown ()
+ {
+ printf ("CHECKPOINT\n"); /* never reached */
+ }
+}
+
+try_class::main ();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Done
+
+Warning: (Registered shutdown functions) Unable to call self::on_shutdown() - function does not exist in Unknown on line 0
diff --git a/Zend/tests/bug41075.phpt b/Zend/tests/bug41075.phpt
new file mode 100644
index 000000000..ddeb7cc0c
--- /dev/null
+++ b/Zend/tests/bug41075.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Bug #41075(memleak when creating default object caused exception)
+--FILE--
+<?php
+
+function err($errno, $errstr, $errfile, $errline)
+{
+ throw new Exception($errstr);
+}
+
+set_error_handler("err");
+
+class test {
+ function foo() {
+ $var = $this->blah->prop = "string";
+ var_dump($this->blah);
+ }
+}
+
+$t = new test;
+try {
+ $t->foo();
+} catch (Exception $e) {
+ var_dump($e->getMessage());
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(40) "Creating default object from empty value"
+Done
diff --git a/Zend/tests/bug41117_1.phpt b/Zend/tests/bug41117_1.phpt
new file mode 100755
index 000000000..f555b637a
--- /dev/null
+++ b/Zend/tests/bug41117_1.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #41117 (Altering $this via argument)
+--FILE--
+<?php
+class foo {
+ function __construct($this) {
+ echo $this."\n";
+ }
+}
+$obj = new foo("Hello world");
+?>
+--EXPECTF--
+Fatal error: Cannot re-assign $this in %sbug41117_1.php on line 3
+
diff --git a/Zend/tests/bug41209.phpt b/Zend/tests/bug41209.phpt
new file mode 100644
index 000000000..0834b376b
--- /dev/null
+++ b/Zend/tests/bug41209.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #41209 (Segmentation fault with ArrayAccess, set_error_handler and undefined var)
+--FILE--
+<?php
+
+class env
+{
+ public function __construct()
+ {
+ set_error_handler(array(__CLASS__, 'errorHandler'));
+ }
+
+ public static function errorHandler($errno, $errstr, $errfile, $errline)
+ {
+ throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
+ }
+}
+
+class cache implements ArrayAccess
+{
+ private $container = array();
+
+ public function offsetGet($id) {}
+
+ public function offsetSet($id, $value) {}
+
+ public function offsetUnset($id) {}
+
+ public function offsetExists($id)
+ {
+ return isset($this->containers[(string) $id]);
+ }
+}
+
+$env = new env();
+$cache = new cache();
+var_dump(isset($cache[$id]));
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'ErrorException' with message 'Undefined variable: id' in %s:%d
+Stack trace:
+#0 %s(%d): env::errorHandler()
+#1 {main}
+ thrown in %s on line %d
diff --git a/Zend/tests/cast_to_array.phpt b/Zend/tests/cast_to_array.phpt
new file mode 100644
index 000000000..5e351052b
--- /dev/null
+++ b/Zend/tests/cast_to_array.phpt
Binary files differ
diff --git a/Zend/tests/cast_to_bool.phpt b/Zend/tests/cast_to_bool.phpt
new file mode 100644
index 000000000..75ab09d1b
--- /dev/null
+++ b/Zend/tests/cast_to_bool.phpt
@@ -0,0 +1,53 @@
+--TEST--
+casting different variables to boolean
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ $tmp = (bool)$var;
+ var_dump($tmp);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(true)
+Done
diff --git a/Zend/tests/cast_to_double.phpt b/Zend/tests/cast_to_double.phpt
new file mode 100644
index 000000000..7afc2708b
--- /dev/null
+++ b/Zend/tests/cast_to_double.phpt
@@ -0,0 +1,55 @@
+--TEST--
+casting different variables to double
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ $tmp = (double)$var;
+ var_dump($tmp);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(0)
+float(8754456)
+float(0)
+float(0)
+float(9876545)
+float(0.1)
+float(0)
+float(1)
+float(0)
+float(1)
+float(0)
+float(%d)
+
+Notice: Object of class test could not be converted to double in %s on line %d
+float(1)
+Done
diff --git a/Zend/tests/cast_to_int.phpt b/Zend/tests/cast_to_int.phpt
new file mode 100644
index 000000000..28c57ddf6
--- /dev/null
+++ b/Zend/tests/cast_to_int.phpt
@@ -0,0 +1,55 @@
+--TEST--
+casting different variables to integer
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ $tmp = (int)$var;
+ var_dump($tmp);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(0)
+int(8754456)
+int(0)
+int(0)
+int(9876545)
+int(0)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+int(%d)
+
+Notice: Object of class test could not be converted to int in %s on line %d
+int(1)
+Done
diff --git a/Zend/tests/cast_to_object.phpt b/Zend/tests/cast_to_object.phpt
new file mode 100644
index 000000000..f8d487847
--- /dev/null
+++ b/Zend/tests/cast_to_object.phpt
Binary files differ
diff --git a/Zend/tests/cast_to_string.phpt b/Zend/tests/cast_to_string.phpt
new file mode 100644
index 000000000..d06daa2e7
--- /dev/null
+++ b/Zend/tests/cast_to_string.phpt
Binary files differ
diff --git a/Zend/tests/concat_001.phpt b/Zend/tests/concat_001.phpt
new file mode 100644
index 000000000..be1297655
--- /dev/null
+++ b/Zend/tests/concat_001.phpt
@@ -0,0 +1,78 @@
+--TEST--
+concat difffent types
+--INI--
+precision=14
+--FILE--
+<?php
+
+class test {
+ function __toString() {
+ return "this is test object";
+ }
+}
+
+$a = array(1,2,3);
+$o = new test;
+$s = "some string";
+$i = 222;
+$d = 2323.444;
+
+var_dump($a.$o);
+var_dump($a.$s);
+var_dump($a.$i);
+var_dump($a.$d);
+var_dump($a.$a);
+
+var_dump($o.$a);
+var_dump($o.$s);
+var_dump($o.$i);
+var_dump($o.$d);
+var_dump($o.$o);
+
+var_dump($s.$o);
+var_dump($s.$a);
+var_dump($s.$i);
+var_dump($s.$d);
+var_dump($s.$s);
+
+var_dump($i.$a);
+var_dump($i.$o);
+var_dump($i.$s);
+var_dump($i.$d);
+var_dump($i.$i);
+
+var_dump($d.$a);
+var_dump($d.$o);
+var_dump($d.$s);
+var_dump($d.$i);
+var_dump($d.$d);
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(24) "Arraythis is test object"
+string(16) "Arraysome string"
+string(8) "Array222"
+string(13) "Array2323.444"
+string(10) "ArrayArray"
+string(24) "this is test objectArray"
+string(30) "this is test objectsome string"
+string(22) "this is test object222"
+string(27) "this is test object2323.444"
+string(38) "this is test objectthis is test object"
+string(30) "some stringthis is test object"
+string(16) "some stringArray"
+string(14) "some string222"
+string(19) "some string2323.444"
+string(22) "some stringsome string"
+string(8) "222Array"
+string(22) "222this is test object"
+string(14) "222some string"
+string(11) "2222323.444"
+string(6) "222222"
+string(13) "2323.444Array"
+string(27) "2323.444this is test object"
+string(19) "2323.444some string"
+string(11) "2323.444222"
+string(16) "2323.4442323.444"
+Done
diff --git a/Zend/tests/div_001.phpt b/Zend/tests/div_001.phpt
new file mode 100644
index 000000000..5fa264a11
--- /dev/null
+++ b/Zend/tests/div_001.phpt
@@ -0,0 +1,32 @@
+--TEST--
+dividing doubles
+--INI--
+precision=14
+--FILE--
+<?php
+
+$d1 = 1.1;
+$d2 = 434234.234;
+
+$c = $d2 / $d1;
+var_dump($c);
+
+$d1 = 1.1;
+$d2 = "434234.234";
+
+$c = $d2 / $d1;
+var_dump($c);
+
+$d1 = "1.1";
+$d2 = "434234.234";
+
+$c = $d2 / $d1;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(394758.39454545)
+float(394758.39454545)
+float(394758.39454545)
+Done
diff --git a/Zend/tests/div_002.phpt b/Zend/tests/div_002.phpt
new file mode 100644
index 000000000..6ade1d9f5
--- /dev/null
+++ b/Zend/tests/div_002.phpt
@@ -0,0 +1,15 @@
+--TEST--
+dividing arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array(1);
+
+$c = $a / $b;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/double_to_string.phpt b/Zend/tests/double_to_string.phpt
new file mode 100644
index 000000000..d1098e719
--- /dev/null
+++ b/Zend/tests/double_to_string.phpt
@@ -0,0 +1,52 @@
+--TEST--
+double to string conversion tests
+--INI--
+precision=14
+--SKIPIF--
+<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?>
+--FILE--
+<?php
+
+$doubles = array(
+ 290000000000000000,
+ 290000000000000,
+ 29000000000000,
+ 29000000000000.123123,
+ 29000000000000.7123123,
+ 29000.7123123,
+ 239234242.7123123,
+ 0.12345678901234567890,
+ 10000000000000,
+ 100000000000000,
+ 1000000000000000001,
+ 100000000000001,
+ 10000000000,
+ 999999999999999,
+ 9999999999999999,
+ (float)0
+ );
+
+foreach ($doubles as $d) {
+ var_dump((string)$d);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(7) "2.9E+17"
+string(7) "2.9E+14"
+string(14) "29000000000000"
+string(14) "29000000000000"
+string(14) "29000000000001"
+string(13) "29000.7123123"
+string(15) "239234242.71231"
+string(16) "0.12345678901235"
+string(14) "10000000000000"
+string(7) "1.0E+14"
+string(7) "1.0E+18"
+string(7) "1.0E+14"
+string(11) "10000000000"
+string(7) "1.0E+15"
+string(7) "1.0E+16"
+string(1) "0"
+Done
diff --git a/Zend/tests/double_to_string_64bit.phpt b/Zend/tests/double_to_string_64bit.phpt
new file mode 100644
index 000000000..c52c38c57
--- /dev/null
+++ b/Zend/tests/double_to_string_64bit.phpt
@@ -0,0 +1,56 @@
+--TEST--
+double to string conversion tests (64bit)
+--SKIPIF--
+<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?>
+--FILE--
+<?php
+
+$doubles = array(
+ 29000000000000000000000000000000000000,
+ 290000000000000000,
+ 290000000000000,
+ 29000000000000,
+ 29000000000000.123123,
+ 29000000000000.7123123,
+ 29000.7123123,
+ 239234242.7123123,
+ 0.12345678901234567890,
+ 10000000000000000000000000000000000000000000000,
+ 1000000000000000000000000000000000,
+ 100000000000000001,
+ 1000006000000000011,
+ 100000000000001,
+ 10000000000,
+ 999999999999999999,
+ 9999999999999999999,
+ 9999999999999999999999999999999999999,
+ (float)0
+ );
+
+foreach ($doubles as $d) {
+ var_dump((string)$d);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(7) "2.9E+37"
+string(18) "290000000000000000"
+string(15) "290000000000000"
+string(14) "29000000000000"
+string(14) "29000000000000"
+string(14) "29000000000001"
+string(13) "29000.7123123"
+string(15) "239234242.71231"
+string(16) "0.12345678901235"
+string(7) "1.0E+46"
+string(7) "1.0E+33"
+string(18) "100000000000000001"
+string(19) "1000006000000000011"
+string(15) "100000000000001"
+string(11) "10000000000"
+string(18) "999999999999999999"
+string(7) "1.0E+19"
+string(7) "1.0E+37"
+string(1) "0"
+Done
diff --git a/Zend/tests/errmsg_001.phpt b/Zend/tests/errmsg_001.phpt
new file mode 100644
index 000000000..b85e032b9
--- /dev/null
+++ b/Zend/tests/errmsg_001.phpt
@@ -0,0 +1,16 @@
+--TEST--
+errmsg: Non-abstract method must contain body
+--FILE--
+<?php
+
+abstract class test {
+}
+
+class Impl extends Test {
+ function Foo();
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Non-abstract method Impl::Foo() must contain body in %s on line %d
diff --git a/Zend/tests/errmsg_002.phpt b/Zend/tests/errmsg_002.phpt
new file mode 100644
index 000000000..b7330c9f1
--- /dev/null
+++ b/Zend/tests/errmsg_002.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: function cannot be declared private
+--FILE--
+<?php
+
+abstract class test {
+ abstract private function foo() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Abstract function test::foo() cannot be declared private in %s on line %d
diff --git a/Zend/tests/errmsg_003.phpt b/Zend/tests/errmsg_003.phpt
new file mode 100644
index 000000000..64e458781
--- /dev/null
+++ b/Zend/tests/errmsg_003.phpt
@@ -0,0 +1,19 @@
+--TEST--
+errmsg: cannot reassign $this (by ref)
+--FILE--
+<?php
+
+class test {
+ function foo() {
+ $a = new test;
+ $this = &$a;
+ }
+}
+
+$t = new test;
+$t->foo();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot re-assign $this in %s on line %d
diff --git a/Zend/tests/errmsg_004.phpt b/Zend/tests/errmsg_004.phpt
new file mode 100644
index 000000000..e6d22d6ab
--- /dev/null
+++ b/Zend/tests/errmsg_004.phpt
@@ -0,0 +1,15 @@
+--TEST--
+errmsg: can't use function return value in write context
+--FILE--
+<?php
+
+function foo() {
+ return "blah";
+}
+
+foo() = 1;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Can't use function return value in write context in %s on line %d
diff --git a/Zend/tests/errmsg_005.phpt b/Zend/tests/errmsg_005.phpt
new file mode 100644
index 000000000..31c924cbb
--- /dev/null
+++ b/Zend/tests/errmsg_005.phpt
@@ -0,0 +1,18 @@
+--TEST--
+errmsg: can't use method return value in write context
+--FILE--
+<?php
+
+class test {
+ function foo() {
+ return "blah";
+ }
+}
+
+$t = new test;
+$t->foo() = 1;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Can't use method return value in write context in %s on line %d
diff --git a/Zend/tests/errmsg_006.phpt b/Zend/tests/errmsg_006.phpt
new file mode 100644
index 000000000..976093d85
--- /dev/null
+++ b/Zend/tests/errmsg_006.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: can't use [] for reading
+--FILE--
+<?php
+
+$a = array();
+$b = $a[];
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use [] for reading in %s on line %d
diff --git a/Zend/tests/errmsg_007.phpt b/Zend/tests/errmsg_007.phpt
new file mode 100644
index 000000000..1ac296695
--- /dev/null
+++ b/Zend/tests/errmsg_007.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: can't use [] for reading - 2
+--FILE--
+<?php
+
+$a = array();
+isset($a[]);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use [] for reading in %s on line %d
diff --git a/Zend/tests/errmsg_008.phpt b/Zend/tests/errmsg_008.phpt
new file mode 100644
index 000000000..e900603a8
--- /dev/null
+++ b/Zend/tests/errmsg_008.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: can't use [] for unsetting
+--FILE--
+<?php
+
+$a = array();
+unset($a[]);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use [] for unsetting in %s on line %d
diff --git a/Zend/tests/errmsg_009.phpt b/Zend/tests/errmsg_009.phpt
new file mode 100644
index 000000000..4834fa3e7
--- /dev/null
+++ b/Zend/tests/errmsg_009.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: multiple access type modifiers are not allowed (properties)
+--FILE--
+<?php
+
+class test {
+ public private $var;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Multiple access type modifiers are not allowed in %s on line %d
diff --git a/Zend/tests/errmsg_010.phpt b/Zend/tests/errmsg_010.phpt
new file mode 100644
index 000000000..ae2572f7b
--- /dev/null
+++ b/Zend/tests/errmsg_010.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: multiple access type modifiers are not allowed (methods)
+--FILE--
+<?php
+
+class test {
+ private protected function foo() {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Multiple access type modifiers are not allowed in %s on line %d
diff --git a/Zend/tests/errmsg_011.phpt b/Zend/tests/errmsg_011.phpt
new file mode 100644
index 000000000..9cfde0f8b
--- /dev/null
+++ b/Zend/tests/errmsg_011.phpt
@@ -0,0 +1,16 @@
+--TEST--
+errmsg: cannot redeclare (method)
+--FILE--
+<?php
+
+class test {
+
+ function foo() {}
+ function foo() {}
+
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot redeclare test::foo() in %s on line %d
diff --git a/Zend/tests/errmsg_012.phpt b/Zend/tests/errmsg_012.phpt
new file mode 100644
index 000000000..183785be0
--- /dev/null
+++ b/Zend/tests/errmsg_012.phpt
@@ -0,0 +1,11 @@
+--TEST--
+errmsg: __autoload() must take exactly 1 argument
+--FILE--
+<?php
+
+function __autoload($a, $b) {}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: __autoload() must take exactly 1 argument in %s on line %d
diff --git a/Zend/tests/errmsg_013.phpt b/Zend/tests/errmsg_013.phpt
new file mode 100644
index 000000000..d1f248ec2
--- /dev/null
+++ b/Zend/tests/errmsg_013.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: default value for parameters with array type hint can only be an array or NULL
+--FILE--
+<?php
+
+class test {
+ function foo(array $a = "s") {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Default value for parameters with array type hint can only be an array or NULL in %s on line %d
diff --git a/Zend/tests/errmsg_014.phpt b/Zend/tests/errmsg_014.phpt
new file mode 100644
index 000000000..77e12b05e
--- /dev/null
+++ b/Zend/tests/errmsg_014.phpt
@@ -0,0 +1,17 @@
+--TEST--
+errmsg: cannot call __clone() method on objects
+--FILE--
+<?php
+
+class test {
+ function __clone() {
+ }
+}
+
+$t = new test;
+$t->__clone();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot call __clone() method on objects - use 'clone $obj' instead in %s on line %d
diff --git a/Zend/tests/errmsg_015.phpt b/Zend/tests/errmsg_015.phpt
new file mode 100644
index 000000000..8e626e509
--- /dev/null
+++ b/Zend/tests/errmsg_015.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: __clone() cannot accept any arguments
+--FILE--
+<?php
+
+class test {
+ function __clone($var) {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Method test::__clone() cannot accept any arguments in %s on line %d
diff --git a/Zend/tests/errmsg_016.phpt b/Zend/tests/errmsg_016.phpt
new file mode 100644
index 000000000..ccda07b9a
--- /dev/null
+++ b/Zend/tests/errmsg_016.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: __isset() must take exactly 1 argument
+--FILE--
+<?php
+
+class test {
+ function __isset() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Method test::__isset() must take exactly 1 argument in %s on line %d
diff --git a/Zend/tests/errmsg_017.phpt b/Zend/tests/errmsg_017.phpt
new file mode 100644
index 000000000..df2b66568
--- /dev/null
+++ b/Zend/tests/errmsg_017.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: __unset() must take exactly 1 argument
+--FILE--
+<?php
+
+class test {
+ function __unset() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Method test::__unset() must take exactly 1 argument in %s on line %d
diff --git a/Zend/tests/errmsg_018.phpt b/Zend/tests/errmsg_018.phpt
new file mode 100644
index 000000000..fb05cb1a5
--- /dev/null
+++ b/Zend/tests/errmsg_018.phpt
@@ -0,0 +1,15 @@
+--TEST--
+errmsg: static abstract function
+--FILE--
+<?php
+
+class test {
+ static abstract function foo ();
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Strict Standards: Static function test::foo() should not be abstract in %s on line %d
+
+Fatal error: Class test contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (test::foo) in %s on line %d
diff --git a/Zend/tests/errmsg_019.phpt b/Zend/tests/errmsg_019.phpt
new file mode 100644
index 000000000..2b45650cf
--- /dev/null
+++ b/Zend/tests/errmsg_019.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: __destruct() cannot take arguments
+--FILE--
+<?php
+
+class test {
+ function __destruct($var) {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Destructor test::__destruct() cannot take arguments in %s on line %d
diff --git a/Zend/tests/errmsg_020.phpt b/Zend/tests/errmsg_020.phpt
new file mode 100644
index 000000000..8199d5d06
--- /dev/null
+++ b/Zend/tests/errmsg_020.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: disabled function
+--INI--
+disable_functions=phpinfo
+--FILE--
+<?php
+
+phpinfo();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: phpinfo() has been disabled for security reasons in %s on line %d
+Done
diff --git a/Zend/tests/errmsg_021.phpt b/Zend/tests/errmsg_021.phpt
new file mode 100644
index 000000000..4e62f8511
--- /dev/null
+++ b/Zend/tests/errmsg_021.phpt
@@ -0,0 +1,17 @@
+--TEST--
+errmsg: disabled class
+--INI--
+disable_classes=stdclass
+--FILE--
+<?php
+
+class test extends stdclass {
+}
+
+$t = new test;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: test() has been disabled for security reasons in %s on line %d
+Done
diff --git a/Zend/tests/errmsg_022.phpt b/Zend/tests/errmsg_022.phpt
new file mode 100644
index 000000000..ea7b082f9
--- /dev/null
+++ b/Zend/tests/errmsg_022.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: only variables can be passed by reference
+--FILE--
+<?php
+
+function foo (&$var) {
+}
+
+foo(1);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Only variables can be passed by reference in %s on line %d
diff --git a/Zend/tests/errmsg_023.phpt b/Zend/tests/errmsg_023.phpt
new file mode 100644
index 000000000..9fd7804ea
--- /dev/null
+++ b/Zend/tests/errmsg_023.phpt
@@ -0,0 +1,17 @@
+--TEST--
+errmsg: access level must be the same or weaker
+--FILE--
+<?php
+
+class test1 {
+ protected $var;
+}
+
+class test extends test1 {
+ private $var;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Access level to test::$var must be protected (as in class test1) or weaker in %s on line %d
diff --git a/Zend/tests/errmsg_024.phpt b/Zend/tests/errmsg_024.phpt
new file mode 100644
index 000000000..d8d06cbce
--- /dev/null
+++ b/Zend/tests/errmsg_024.phpt
@@ -0,0 +1,17 @@
+--TEST--
+errmsg: cannot change initial value of property
+--FILE--
+<?php
+
+class test1 {
+ static protected $var = 1;
+}
+
+class test extends test1 {
+ static $var = 10;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot change initial value of property static protected test1::$var in class test in %s on line %d
diff --git a/Zend/tests/errmsg_025.phpt b/Zend/tests/errmsg_025.phpt
new file mode 100644
index 000000000..d853f7342
--- /dev/null
+++ b/Zend/tests/errmsg_025.phpt
@@ -0,0 +1,20 @@
+--TEST--
+errmsg: cannot inherit previously inherited constant
+--FILE--
+<?php
+
+interface test1 {
+ const FOO = 10;
+}
+
+interface test2 {
+ const FOO = 10;
+}
+
+class test implements test1, test2 {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot inherit previously-inherited constant FOO from interface test2 in %s on line %d
diff --git a/Zend/tests/errmsg_026.phpt b/Zend/tests/errmsg_026.phpt
new file mode 100644
index 000000000..195412290
--- /dev/null
+++ b/Zend/tests/errmsg_026.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot redeclare class
+--FILE--
+<?php
+
+class stdclass {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot redeclare class stdclass in %s on line %d
diff --git a/Zend/tests/errmsg_027.phpt b/Zend/tests/errmsg_027.phpt
new file mode 100644
index 000000000..f4fec6155
--- /dev/null
+++ b/Zend/tests/errmsg_027.phpt
@@ -0,0 +1,16 @@
+--TEST--
+errmsg: class declarations may not be nested
+--FILE--
+<?php
+
+class test {
+ function foo() {
+ class test2 {
+ }
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Class declarations may not be nested in %s on line %d
diff --git a/Zend/tests/errmsg_028.phpt b/Zend/tests/errmsg_028.phpt
new file mode 100644
index 000000000..3331cb35b
--- /dev/null
+++ b/Zend/tests/errmsg_028.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'self' as class name
+--FILE--
+<?php
+
+class self {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'self' as class name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_029.phpt b/Zend/tests/errmsg_029.phpt
new file mode 100644
index 000000000..73b85ce6a
--- /dev/null
+++ b/Zend/tests/errmsg_029.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'parent' as class name
+--FILE--
+<?php
+
+class parent {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'parent' as class name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_030.phpt b/Zend/tests/errmsg_030.phpt
new file mode 100644
index 000000000..ab6ccbd41
--- /dev/null
+++ b/Zend/tests/errmsg_030.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'self' as parent class name
+--FILE--
+<?php
+
+class test extends self {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'self' as class name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_031.phpt b/Zend/tests/errmsg_031.phpt
new file mode 100644
index 000000000..6e3564854
--- /dev/null
+++ b/Zend/tests/errmsg_031.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'parent' as parent class name
+--FILE--
+<?php
+
+class test extends parent {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'parent' as class name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_032.phpt b/Zend/tests/errmsg_032.phpt
new file mode 100644
index 000000000..6e34604cd
--- /dev/null
+++ b/Zend/tests/errmsg_032.phpt
@@ -0,0 +1,15 @@
+--TEST--
+errmsg: __construct() cannot be static
+--FILE--
+<?php
+
+class test {
+
+ static function __construct() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Constructor test::__construct() cannot be static in %s on line %d
diff --git a/Zend/tests/errmsg_033.phpt b/Zend/tests/errmsg_033.phpt
new file mode 100644
index 000000000..96938900e
--- /dev/null
+++ b/Zend/tests/errmsg_033.phpt
@@ -0,0 +1,15 @@
+--TEST--
+errmsg: __destruct() cannot be static
+--FILE--
+<?php
+
+class test {
+
+ static function __destruct() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Destructor test::__destruct() cannot be static in %s on line %d
diff --git a/Zend/tests/errmsg_034.phpt b/Zend/tests/errmsg_034.phpt
new file mode 100644
index 000000000..1494fe532
--- /dev/null
+++ b/Zend/tests/errmsg_034.phpt
@@ -0,0 +1,15 @@
+--TEST--
+errmsg: __clone() cannot be static
+--FILE--
+<?php
+
+class test {
+
+ static function __clone() {
+ }
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Clone method test::__clone() cannot be static in %s on line %d
diff --git a/Zend/tests/errmsg_035.phpt b/Zend/tests/errmsg_035.phpt
new file mode 100644
index 000000000..76cbe3d48
--- /dev/null
+++ b/Zend/tests/errmsg_035.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'self' as interface name
+--FILE--
+<?php
+
+class test implements self {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'self' as interface name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_036.phpt b/Zend/tests/errmsg_036.phpt
new file mode 100644
index 000000000..d1f4274bd
--- /dev/null
+++ b/Zend/tests/errmsg_036.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot use 'parent' as interface name
+--FILE--
+<?php
+
+class test implements parent {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use 'parent' as interface name as it is reserved in %s on line %d
diff --git a/Zend/tests/errmsg_037.phpt b/Zend/tests/errmsg_037.phpt
new file mode 100644
index 000000000..6b98bb333
--- /dev/null
+++ b/Zend/tests/errmsg_037.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: properties cannot be abstract
+--FILE--
+<?php
+
+class test {
+ abstract $var = 1;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Properties cannot be declared abstract in %s on line %d
diff --git a/Zend/tests/errmsg_038.phpt b/Zend/tests/errmsg_038.phpt
new file mode 100644
index 000000000..fdab803ba
--- /dev/null
+++ b/Zend/tests/errmsg_038.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: properties cannot be final
+--FILE--
+<?php
+
+class test {
+ final $var = 1;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot declare property test::$var final, the final modifier is allowed only for methods in %s on line %d
diff --git a/Zend/tests/errmsg_039.phpt b/Zend/tests/errmsg_039.phpt
new file mode 100644
index 000000000..000081187
--- /dev/null
+++ b/Zend/tests/errmsg_039.phpt
@@ -0,0 +1,14 @@
+--TEST--
+errmsg: cannot redeclare property
+--FILE--
+<?php
+
+class test {
+ var $var;
+ var $var;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot redeclare test::$var in %s on line %d
diff --git a/Zend/tests/errmsg_040.phpt b/Zend/tests/errmsg_040.phpt
new file mode 100644
index 000000000..f3d0afcf0
--- /dev/null
+++ b/Zend/tests/errmsg_040.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: arrays are not allowed in class constants
+--FILE--
+<?php
+
+class test {
+ const TEST = array(1,2,3);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Arrays are not allowed in class constants in %s on line %d
diff --git a/Zend/tests/errmsg_041.phpt b/Zend/tests/errmsg_041.phpt
new file mode 100644
index 000000000..bfcafd261
--- /dev/null
+++ b/Zend/tests/errmsg_041.phpt
@@ -0,0 +1,11 @@
+--TEST--
+errmsg: instanceof expects an object instance, constant given
+--FILE--
+<?php
+
+var_dump("abc" instanceof stdclass);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: instanceof expects an object instance, constant given in %s on line %d
diff --git a/Zend/tests/errmsg_042.phpt b/Zend/tests/errmsg_042.phpt
new file mode 100644
index 000000000..3b4ea7c26
--- /dev/null
+++ b/Zend/tests/errmsg_042.phpt
@@ -0,0 +1,13 @@
+--TEST--
+errmsg: key element cannot be a reference
+--FILE--
+<?php
+
+$a = array(1,2,3);
+foreach ($a as &$k=>$v) {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Key element cannot be a reference in %s on line %d
diff --git a/Zend/tests/errmsg_043.phpt b/Zend/tests/errmsg_043.phpt
new file mode 100644
index 000000000..3de8bc206
--- /dev/null
+++ b/Zend/tests/errmsg_043.phpt
@@ -0,0 +1,12 @@
+--TEST--
+errmsg: cannot create references to temp array
+--FILE--
+<?php
+
+foreach (array(1,2,3) as $k=>&$v) {
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot create references to elements of a temporary array expression in %s on line %d
diff --git a/Zend/tests/foreach.phpt b/Zend/tests/foreach.phpt
new file mode 100644
index 000000000..041a7636e
--- /dev/null
+++ b/Zend/tests/foreach.phpt
@@ -0,0 +1,25 @@
+--TEST--
+foreach() by-ref bug
+--FILE--
+<?php
+$foo = array(1,2,3,4);
+foreach($foo as $key => &$val) {
+ if($val == 3) {
+ $foo[$key] = 0;
+ } else {
+ $val++;
+ }
+}
+var_dump($foo);
+?>
+--EXPECT--
+array(4) {
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+ [2]=>
+ int(0)
+ [3]=>
+ &int(5)
+}
diff --git a/Zend/tests/globals.inc b/Zend/tests/globals.inc
new file mode 100644
index 000000000..976237cf1
--- /dev/null
+++ b/Zend/tests/globals.inc
@@ -0,0 +1,15 @@
+<?php
+
+var_dump(isset($_SERVER));
+var_dump(empty($_SERVER));
+var_dump(gettype($_SERVER));
+var_dump(count($_SERVER));
+
+var_dump($_SERVER['PHP_SELF']);
+unset($_SERVER['PHP_SELF']);
+var_dump($_SERVER['PHP_SELF']);
+
+unset($_SERVER);
+var_dump($_SERVER);
+
+?>
diff --git a/Zend/tests/globals_001.phpt b/Zend/tests/globals_001.phpt
new file mode 100644
index 000000000..b678c5310
--- /dev/null
+++ b/Zend/tests/globals_001.phpt
@@ -0,0 +1,34 @@
+--TEST--
+globals in global scope
+--INIT--
+variables_order="egpcs"
+--FILE--
+<?php
+
+var_dump(isset($_SERVER));
+var_dump(empty($_SERVER));
+var_dump(gettype($_SERVER));
+var_dump(count($_SERVER));
+
+var_dump($_SERVER['PHP_SELF']);
+unset($_SERVER['PHP_SELF']);
+var_dump($_SERVER['PHP_SELF']);
+
+unset($_SERVER);
+var_dump($_SERVER);
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(false)
+string(5) "array"
+int(%d)
+string(%d) "%s"
+
+Notice: Undefined index: PHP_SELF in %s on line %d
+NULL
+
+Notice: Undefined variable: _SERVER in %s on line %d
+NULL
+Done
diff --git a/Zend/tests/globals_002.phpt b/Zend/tests/globals_002.phpt
new file mode 100644
index 000000000..3bc3dae2d
--- /dev/null
+++ b/Zend/tests/globals_002.phpt
@@ -0,0 +1,37 @@
+--TEST--
+globals in local scope
+--INIT--
+variables_order="egpcs"
+--FILE--
+<?php
+function test() {
+ var_dump(isset($_SERVER));
+ var_dump(empty($_SERVER));
+ var_dump(gettype($_SERVER));
+ var_dump(count($_SERVER));
+
+ var_dump($_SERVER['PHP_SELF']);
+ unset($_SERVER['PHP_SELF']);
+ var_dump($_SERVER['PHP_SELF']);
+
+ unset($_SERVER);
+ var_dump($_SERVER);
+}
+
+test();
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(false)
+string(5) "array"
+int(%d)
+string(%d) "%s"
+
+Notice: Undefined index: PHP_SELF in %s on line %d
+NULL
+
+Notice: Undefined variable: _SERVER in %s on line %d
+NULL
+Done
diff --git a/Zend/tests/globals_003.phpt b/Zend/tests/globals_003.phpt
new file mode 100644
index 000000000..dcc7935a9
--- /dev/null
+++ b/Zend/tests/globals_003.phpt
@@ -0,0 +1,43 @@
+--TEST--
+globals in local scope - 2
+--INIT--
+variables_order="egpcs"
+--FILE--
+<?php
+
+class test {
+
+ static function bar() {
+
+ var_dump(isset($_SERVER));
+ var_dump(empty($_SERVER));
+ var_dump(gettype($_SERVER));
+ var_dump(count($_SERVER));
+
+ var_dump($_SERVER['PHP_SELF']);
+ unset($_SERVER['PHP_SELF']);
+ var_dump($_SERVER['PHP_SELF']);
+
+ unset($_SERVER);
+ var_dump($_SERVER);
+
+ }
+}
+
+test::bar();
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(false)
+string(5) "array"
+int(%d)
+string(%d) "%s"
+
+Notice: Undefined index: PHP_SELF in %s on line %d
+NULL
+
+Notice: Undefined variable: _SERVER in %s on line %d
+NULL
+Done
diff --git a/Zend/tests/globals_004.phpt b/Zend/tests/globals_004.phpt
new file mode 100644
index 000000000..e06791e61
--- /dev/null
+++ b/Zend/tests/globals_004.phpt
@@ -0,0 +1,28 @@
+--TEST--
+globals in local scope - 3
+--INIT--
+variables_order="egpcs"
+--FILE--
+<?php
+
+function test() {
+ include dirname(__FILE__)."/globals.inc";
+}
+
+test();
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(false)
+string(5) "array"
+int(%d)
+string(%d) "%s"
+
+Notice: Undefined index: PHP_SELF in %s on line %d
+NULL
+
+Notice: Undefined variable: _SERVER in %s on line %d
+NULL
+Done
diff --git a/Zend/tests/halt_compiler1.phpt b/Zend/tests/halt_compiler1.phpt
new file mode 100644
index 000000000..4987b29b2
--- /dev/null
+++ b/Zend/tests/halt_compiler1.phpt
@@ -0,0 +1,8 @@
+--TEST--
+__HALT_COMPILER();
+--FILE--
+<?php echo 'test'; var_dump(__COMPILER_HALT_OFFSET__); __HALT_COMPILER();
+?>
+===DONE===
+--EXPECT--
+testint(73) \ No newline at end of file
diff --git a/Zend/tests/halt_compiler2.phpt b/Zend/tests/halt_compiler2.phpt
new file mode 100644
index 000000000..0ced2142c
--- /dev/null
+++ b/Zend/tests/halt_compiler2.phpt
@@ -0,0 +1,23 @@
+--TEST--
+__HALT_COMPILER(); 2 files
+--FILE--
+<?php
+$text = "<?php echo 'test'; var_dump(__COMPILER_HALT_OFFSET__); __HALT_COMPILER(); ?>
+hi there";
+file_put_contents(dirname(__FILE__) . '/test1.php', $text);
+$text = "<?php echo 'test2'; var_dump(__COMPILER_HALT_OFFSET__); __HALT_COMPILER(); ?>
+hi there 2";
+file_put_contents(dirname(__FILE__) . '/test2.php', $text);
+include dirname(__FILE__) . '/test1.php';
+include dirname(__FILE__) . '/test2.php';
+?>
+==DONE==
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/test1.php');
+unlink(dirname(__FILE__) . '/test2.php');
+?>
+--EXPECT--
+testint(73)
+test2int(74)
+==DONE== \ No newline at end of file
diff --git a/Zend/tests/halt_compiler3.phpt b/Zend/tests/halt_compiler3.phpt
new file mode 100644
index 000000000..6ee16f79b
--- /dev/null
+++ b/Zend/tests/halt_compiler3.phpt
@@ -0,0 +1,10 @@
+--TEST--
+__HALT_COMPILER(); bad define() of __COMPILER_HALT_OFFSET__ 1
+--FILE--
+<?php
+define ('__COMPILER_HALT_OFFSET__', 1);
+?>
+==DONE==
+--EXPECTF--
+Notice: Constant __COMPILER_HALT_OFFSET__ already defined in %s on line %d
+==DONE== \ No newline at end of file
diff --git a/Zend/tests/halt_compiler4.phpt b/Zend/tests/halt_compiler4.phpt
new file mode 100644
index 000000000..43e532ce7
--- /dev/null
+++ b/Zend/tests/halt_compiler4.phpt
@@ -0,0 +1,10 @@
+--TEST--
+__HALT_COMPILER(); bad define() of __COMPILER_HALT_OFFSET__ 2
+--FILE--
+<?php
+define ('__COMPILER_HALT_OFFSET__', 1);
+__HALT_COMPILER();
+?>
+==DONE==
+--EXPECTF--
+Notice: Constant __COMPILER_HALT_OFFSET__ already defined in %s on line %d \ No newline at end of file
diff --git a/Zend/tests/hex_overflow_32bit.phpt b/Zend/tests/hex_overflow_32bit.phpt
new file mode 100644
index 000000000..36e9a7e9d
--- /dev/null
+++ b/Zend/tests/hex_overflow_32bit.phpt
@@ -0,0 +1,29 @@
+--TEST--
+testing integer overflow (32bit)
+--INI--
+precision=14
+--SKIPIF--
+<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?>
+--FILE--
+<?php
+
+$doubles = array(
+ 0x1736123FFFAAA,
+ 0XFFFFFFFFFFFFFFFFFF,
+ 0xAAAAAAAAAAAAAAEEEEEEEEEBBB,
+ 0x66666666666666666777777,
+ );
+
+foreach ($doubles as $d) {
+ $l = $d;
+ var_dump($l);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(4083360297110%d)
+float(4.7223664828%dE+21)
+float(1.3521606402%dE+31)
+float(1.9807040628%dE+27)
+Done
diff --git a/Zend/tests/mod_001.phpt b/Zend/tests/mod_001.phpt
new file mode 100644
index 000000000..88596f3d5
--- /dev/null
+++ b/Zend/tests/mod_001.phpt
@@ -0,0 +1,17 @@
+--TEST--
+modulus by zero
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array();
+
+$c = $a % $b;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: Division by zero in %s on line %d
+bool(false)
+Done
diff --git a/Zend/tests/mul_001.phpt b/Zend/tests/mul_001.phpt
new file mode 100644
index 000000000..4c5a75e7d
--- /dev/null
+++ b/Zend/tests/mul_001.phpt
@@ -0,0 +1,15 @@
+--TEST--
+multiplying arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array(1);
+
+$c = $a * $b;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/not_001.phpt b/Zend/tests/not_001.phpt
new file mode 100644
index 000000000..6eb0f000c
--- /dev/null
+++ b/Zend/tests/not_001.phpt
@@ -0,0 +1,22 @@
+--TEST--
+bitwise NOT, doubles and strings
+--FILE--
+<?php
+
+$d = 23.67;
+$s = "48484.22";
+$s1 = "test";
+$s2 = "some";
+
+$s = ~$d;
+var_dump($s);
+
+$s1 = ~$s2;
+var_dump(bin2hex($s1));
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(-24)
+string(8) "8c90929a"
+Done
diff --git a/Zend/tests/not_002.phpt b/Zend/tests/not_002.phpt
new file mode 100644
index 000000000..df27772a7
--- /dev/null
+++ b/Zend/tests/not_002.phpt
@@ -0,0 +1,15 @@
+--TEST--
+bitwise NOT and arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array(1,2);
+
+$a = ~$b;
+var_dump($a);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/oct_overflow_32bit.phpt b/Zend/tests/oct_overflow_32bit.phpt
new file mode 100644
index 000000000..d27c1f547
--- /dev/null
+++ b/Zend/tests/oct_overflow_32bit.phpt
@@ -0,0 +1,31 @@
+--TEST--
+testing integer overflow (32bit)
+--INI--
+precision=14
+--SKIPIF--
+<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?>
+--FILE--
+<?php
+
+$doubles = array(
+ 076545676543223,
+ 032325463734,
+ 077777797777777,
+ 07777777777777977777777777,
+ 03333333333333382222222222222,
+ );
+
+foreach ($doubles as $d) {
+ $l = (double)$d;
+ var_dump($l);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(4308640384%d)
+float(3545655%d)
+float(262143)
+float(549755813%d)
+float(1884877076%d)
+Done
diff --git a/Zend/tests/offset_assign.phpt b/Zend/tests/offset_assign.phpt
new file mode 100644
index 000000000..eebf63c4f
--- /dev/null
+++ b/Zend/tests/offset_assign.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Crash on $x['x']['y'] += 1 when $x is string
+--FILE--
+<?php
+$x = "a";
+$x['x']['y'] += 1;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Cannot use string offset as an array in %s on line %d
diff --git a/Zend/tests/or_001.phpt b/Zend/tests/or_001.phpt
new file mode 100644
index 000000000..1e4e5131a
--- /dev/null
+++ b/Zend/tests/or_001.phpt
@@ -0,0 +1,29 @@
+--TEST--
+bitwise OR and strings
+--FILE--
+<?php
+
+$s = "323423";
+$s1 = "2323.555";
+
+var_dump($s | $s1);
+var_dump($s1 | $s);
+
+$s = "some";
+$s1 = "test";
+
+var_dump($s | $s1);
+
+$s = "some";
+$s |= "test";
+
+var_dump($s);
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(8) "3337>755"
+string(8) "3337>755"
+string(4) "wou"
+string(4) "wou"
+Done
diff --git a/Zend/tests/settype_array.phpt b/Zend/tests/settype_array.phpt
new file mode 100644
index 000000000..5da023205
--- /dev/null
+++ b/Zend/tests/settype_array.phpt
Binary files differ
diff --git a/Zend/tests/settype_bool.phpt b/Zend/tests/settype_bool.phpt
new file mode 100644
index 000000000..cf59200b8
--- /dev/null
+++ b/Zend/tests/settype_bool.phpt
@@ -0,0 +1,53 @@
+--TEST--
+casting different variables to boolean using settype()
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ settype($var, "bool");
+ var_dump($var);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(true)
+Done
diff --git a/Zend/tests/settype_double.phpt b/Zend/tests/settype_double.phpt
new file mode 100644
index 000000000..931a3d9df
--- /dev/null
+++ b/Zend/tests/settype_double.phpt
@@ -0,0 +1,55 @@
+--TEST--
+casting different variables to double using settype()
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ settype($var, "double");
+ var_dump($var);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(0)
+float(8754456)
+float(0)
+float(0)
+float(9876545)
+float(0.1)
+float(0)
+float(1)
+float(0)
+float(1)
+float(0)
+float(%d)
+
+Notice: Object of class test could not be converted to double in %s on line %d
+float(1)
+Done
diff --git a/Zend/tests/settype_int.phpt b/Zend/tests/settype_int.phpt
new file mode 100644
index 000000000..7b96cd594
--- /dev/null
+++ b/Zend/tests/settype_int.phpt
@@ -0,0 +1,55 @@
+--TEST--
+casting different variables to integer using settype()
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ settype($var, "int");
+ var_dump($var);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(0)
+int(8754456)
+int(0)
+int(0)
+int(9876545)
+int(0)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+int(%d)
+
+Notice: Object of class test could not be converted to int in %s on line %d
+int(1)
+Done
diff --git a/Zend/tests/settype_null.phpt b/Zend/tests/settype_null.phpt
new file mode 100644
index 000000000..0abf2f981
--- /dev/null
+++ b/Zend/tests/settype_null.phpt
@@ -0,0 +1,53 @@
+--TEST--
+casting different variables to null using settype()
+--FILE--
+<?php
+
+$r = fopen(__FILE__, "r");
+
+class test {
+ function __toString() {
+ return "10";
+ }
+}
+
+$o = new test;
+
+$vars = array(
+ "string",
+ "8754456",
+ "",
+ "\0",
+ 9876545,
+ 0.10,
+ array(),
+ array(1,2,3),
+ false,
+ true,
+ NULL,
+ $r,
+ $o
+);
+
+foreach ($vars as $var) {
+ settype($var, "null");
+ var_dump($var);
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+Done
diff --git a/Zend/tests/settype_object.phpt b/Zend/tests/settype_object.phpt
new file mode 100644
index 000000000..d619dce7e
--- /dev/null
+++ b/Zend/tests/settype_object.phpt
Binary files differ
diff --git a/Zend/tests/settype_resource.phpt b/Zend/tests/settype_resource.phpt
new file mode 100644
index 000000000..cc8cde34f
--- /dev/null
+++ b/Zend/tests/settype_resource.phpt
Binary files differ
diff --git a/Zend/tests/settype_string.phpt b/Zend/tests/settype_string.phpt
new file mode 100644
index 000000000..d3beb54cb
--- /dev/null
+++ b/Zend/tests/settype_string.phpt
Binary files differ
diff --git a/Zend/tests/shift_001.phpt b/Zend/tests/shift_001.phpt
new file mode 100644
index 000000000..aeb399452
--- /dev/null
+++ b/Zend/tests/shift_001.phpt
@@ -0,0 +1,25 @@
+--TEST--
+shifting strings left
+--FILE--
+<?php
+
+$s = "123";
+$s1 = "test";
+$s2 = "45345some";
+
+$s <<= 2;
+var_dump($s);
+
+$s1 <<= 1;
+var_dump($s1);
+
+$s2 <<= 3;
+var_dump($s2);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(492)
+int(0)
+int(362760)
+Done
diff --git a/Zend/tests/shift_002.phpt b/Zend/tests/shift_002.phpt
new file mode 100644
index 000000000..4d8421a56
--- /dev/null
+++ b/Zend/tests/shift_002.phpt
@@ -0,0 +1,25 @@
+--TEST--
+shifting strings right
+--FILE--
+<?php
+
+$s = "123";
+$s1 = "test";
+$s2 = "45345some";
+
+$s >>= 2;
+var_dump($s);
+
+$s1 >>= 1;
+var_dump($s1);
+
+$s2 >>= 3;
+var_dump($s2);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(30)
+int(0)
+int(5668)
+Done
diff --git a/Zend/tests/sub_001.phpt b/Zend/tests/sub_001.phpt
new file mode 100644
index 000000000..2a8b3cdff
--- /dev/null
+++ b/Zend/tests/sub_001.phpt
@@ -0,0 +1,15 @@
+--TEST--
+subtracting arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array(1);
+
+$c = $a - $b;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Unsupported operand types in %s on line %d
diff --git a/Zend/tests/unset_cv08.phpt b/Zend/tests/unset_cv08.phpt
index 04fff3d40..d5d52efdb 100644
--- a/Zend/tests/unset_cv08.phpt
+++ b/Zend/tests/unset_cv08.phpt
@@ -11,6 +11,5 @@ echo "ok\n";
?>
--EXPECTF--
ok
-
-Notice: Undefined variable: b in %sunset_cv08.php on line %d
+ok
ok
diff --git a/Zend/tests/xor_001.phpt b/Zend/tests/xor_001.phpt
new file mode 100644
index 000000000..e1a521dff
--- /dev/null
+++ b/Zend/tests/xor_001.phpt
@@ -0,0 +1,16 @@
+--TEST--
+XORing arrays
+--FILE--
+<?php
+
+$a = array(1,2,3);
+$b = array();
+
+$c = $a ^ $b;
+var_dump($c);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(1)
+Done
diff --git a/Zend/tests/xor_002.phpt b/Zend/tests/xor_002.phpt
new file mode 100644
index 000000000..0cf4054fa
--- /dev/null
+++ b/Zend/tests/xor_002.phpt
@@ -0,0 +1,39 @@
+--TEST--
+XORing strings
+--FILE--
+<?php
+
+$s = "123";
+$s1 = "234";
+var_dump(bin2hex($s ^ $s1));
+
+$s = "1235";
+$s1 = "234";
+var_dump(bin2hex($s ^ $s1));
+
+$s = "some";
+$s1 = "test";
+var_dump(bin2hex($s ^ $s1));
+
+$s = "some long";
+$s1 = "test";
+var_dump(bin2hex($s ^ $s1));
+
+$s = "some";
+$s1 = "test long";
+var_dump(bin2hex($s ^ $s1));
+
+$s = "some";
+$s ^= "test long";
+var_dump(bin2hex($s));
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(6) "030107"
+string(6) "030107"
+string(8) "070a1e11"
+string(8) "070a1e11"
+string(8) "070a1e11"
+string(8) "070a1e11"
+Done
diff --git a/Zend/tests/xor_003.phpt b/Zend/tests/xor_003.phpt
new file mode 100644
index 000000000..8aa1c636b
--- /dev/null
+++ b/Zend/tests/xor_003.phpt
@@ -0,0 +1,19 @@
+--TEST--
+XORing booleans
+--FILE--
+<?php
+
+$t = true;
+$f = false;
+
+var_dump($t ^ $f);
+var_dump($t ^ $t);
+var_dump($f ^ $f);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(1)
+int(0)
+int(0)
+Done
diff --git a/Zend/zend.c b/Zend/zend.c
index 985017594..a2cd84c37 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.c,v 1.308.2.12.2.22 2006/10/16 11:13:08 dmitry Exp $ */
+/* $Id: zend.c,v 1.308.2.12.2.34 2007/04/26 19:08:58 tony2001 Exp $ */
#include "zend.h"
#include "zend_extensions.h"
@@ -101,7 +101,7 @@ ZEND_API zval zval_used_for_init; /* True global variable */
/* version information */
static char *zend_version_info;
static uint zend_version_info_length;
-#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2006 Zend Technologies\n"
+#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2007 Zend Technologies\n"
#define PRINT_ZVAL_INDENT 4
@@ -131,9 +131,9 @@ static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent,
if (is_object) {
char *prop_name, *class_name;
- zend_unmangle_property_name(string_key, str_len-1, &class_name, &prop_name);
+ int mangled = zend_unmangle_property_name(string_key, str_len-1, &class_name, &prop_name);
ZEND_PUTS_EX(prop_name);
- if (class_name) {
+ if (class_name && mangled == SUCCESS) {
if (class_name[0]=='*') {
ZEND_PUTS_EX(":protected");
} else {
@@ -147,7 +147,7 @@ static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent,
case HASH_KEY_IS_LONG:
{
char key[25];
- sprintf(key, "%ld", num_key);
+ snprintf(key, sizeof(key), "%ld", num_key);
ZEND_PUTS_EX(key);
}
break;
@@ -214,8 +214,7 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
}
break;
case IS_RESOURCE:
- expr_copy->value.str.val = (char *) emalloc(sizeof("Resource id #")-1 + MAX_LENGTH_OF_LONG);
- expr_copy->value.str.len = sprintf(expr_copy->value.str.val, "Resource id #%ld", expr->value.lval);
+ expr_copy->value.str.len = zend_spprintf(&expr_copy->value.str.val, 0, "Resource id #%ld", expr->value.lval);
break;
case IS_ARRAY:
expr_copy->value.str.len = sizeof("Array")-1;
@@ -426,13 +425,25 @@ static void register_standard_class(TSRMLS_D)
zend_hash_add(CG(class_table), "stdclass", sizeof("stdclass"), &zend_standard_class_def, sizeof(zend_class_entry *), NULL);
}
+#ifdef ZTS
+static zend_bool asp_tags_default = 0;
+static zend_bool short_tags_default = 1;
+static zend_bool ct_pass_ref_default = 1;
+static zend_bool extended_info_default = 0;
+#else
+# define asp_tags_default 0
+# define short_tags_default 1
+# define ct_pass_ref_default 1
+# define extended_info_default 0
+#endif
+
static void zend_set_default_compile_time_values(TSRMLS_D)
{
/* default compile-time values */
- CG(asp_tags) = 0;
- CG(short_tags) = 1;
- CG(allow_call_time_pass_reference) = 1;
- CG(extended_info) = 0;
+ CG(asp_tags) = asp_tags_default;
+ CG(short_tags) = short_tags_default;
+ CG(allow_call_time_pass_reference) = ct_pass_ref_default;
+ CG(extended_info) = extended_info_default;
}
@@ -522,8 +533,9 @@ static void executor_globals_dtor(zend_executor_globals *executor_globals TSRMLS
static void zend_new_thread_end_handler(THREAD_T thread_id TSRMLS_DC)
{
- zend_copy_ini_directives(TSRMLS_C);
- zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC);
+ if (zend_copy_ini_directives(TSRMLS_C) == SUCCESS) {
+ zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC);
+ }
}
#endif
@@ -570,6 +582,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
fpsetmask(0);
#endif
+ zend_startup_strtod();
zend_startup_extensions_mechanism();
/* Set up utility functions and values */
@@ -693,6 +706,12 @@ void zend_post_startup(TSRMLS_D)
*GLOBAL_FUNCTION_TABLE = *compiler_globals->function_table;
*GLOBAL_CLASS_TABLE = *compiler_globals->class_table;
*GLOBAL_CONSTANTS_TABLE = *executor_globals->zend_constants;
+
+ asp_tags_default = CG(asp_tags);
+ short_tags_default = CG(short_tags);
+ ct_pass_ref_default = CG(allow_call_time_pass_reference);
+ extended_info_default = CG(extended_info);
+
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
free(compiler_globals->function_table);
free(compiler_globals->class_table);
@@ -700,7 +719,7 @@ void zend_post_startup(TSRMLS_D)
free(EG(zend_constants));
executor_globals_ctor(executor_globals, tsrm_ls);
global_persistent_list = &EG(persistent_list);
- zend_new_thread_end_handler(tsrm_thread_id() TSRMLS_CC);
+ zend_copy_ini_directives(TSRMLS_C);
}
#endif
@@ -728,6 +747,7 @@ void zend_shutdown(TSRMLS_D)
zend_hash_destroy(GLOBAL_CONSTANTS_TABLE);
free(GLOBAL_CONSTANTS_TABLE);
+ zend_shutdown_strtod();
#ifdef ZTS
GLOBAL_FUNCTION_TABLE = NULL;
GLOBAL_CLASS_TABLE = NULL;
@@ -897,6 +917,8 @@ ZEND_API void zend_error(int type, const char *format, ...)
char *error_filename;
uint error_lineno;
zval *orig_user_error_handler;
+ zend_bool in_compilation;
+ zend_class_entry *saved_class_entry;
TSRMLS_FETCH();
/* Obtain relevant filename and lineno */
@@ -1004,7 +1026,18 @@ ZEND_API void zend_error(int type, const char *format, ...)
orig_user_error_handler = EG(user_error_handler);
EG(user_error_handler) = NULL;
-
+
+ /* User error handler may include() additinal PHP files.
+ * If an error was generated during comilation PHP will compile
+ * such scripts recursivly, but some CG() variables may be
+ * inconsistent. */
+
+ in_compilation = zend_is_compiling(TSRMLS_C);
+ if (in_compilation) {
+ saved_class_entry = CG(active_class_entry);
+ CG(active_class_entry) = NULL;
+ }
+
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC)==SUCCESS) {
if (retval) {
if (Z_TYPE_P(retval) == IS_BOOL && Z_LVAL_P(retval) == 0) {
@@ -1017,6 +1050,10 @@ ZEND_API void zend_error(int type, const char *format, ...)
zend_error_cb(type, error_filename, error_lineno, format, args);
}
+ if (in_compilation) {
+ CG(active_class_entry) = saved_class_entry;
+ }
+
if (!EG(user_error_handler)) {
EG(user_error_handler) = orig_user_error_handler;
}
@@ -1041,7 +1078,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
}
}
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX)
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn));
#endif
@@ -1096,15 +1133,6 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
EG(return_value_ptr_ptr) = retval ? retval : &local_retval;
zend_execute(EG(active_op_array) TSRMLS_CC);
if (EG(exception)) {
- char ex_class_name[128];
-
- EG(opline_ptr) = NULL;
- if (Z_TYPE_P(EG(exception)) == IS_OBJECT) {
- strncpy(ex_class_name, Z_OBJ_CLASS_NAME_P(EG(exception)), 127);
- ex_class_name[127] = '\0';
- } else {
- strcpy(ex_class_name, "Unknown Exception");
- }
if (EG(user_exception_handler)) {
zval *orig_user_exception_handler;
zval ***params, *retval2, *old_exception;
@@ -1118,6 +1146,9 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
zval_ptr_dtor(&retval2);
}
} else {
+ if (!EG(exception)) {
+ EG(exception) = old_exception;
+ }
zend_exception_error(EG(exception) TSRMLS_CC);
}
efree(params);
@@ -1172,8 +1203,7 @@ ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC)
cur_lineno = 0;
}
- compiled_string_description = emalloc(sizeof(COMPILED_STRING_DESCRIPTION_FORMAT)+strlen(name)+strlen(cur_filename)+MAX_LENGTH_OF_LONG);
- sprintf(compiled_string_description, COMPILED_STRING_DESCRIPTION_FORMAT, cur_filename, cur_lineno, name);
+ zend_spprintf(&compiled_string_description, 0, COMPILED_STRING_DESCRIPTION_FORMAT, cur_filename, cur_lineno, name);
return compiled_string_description;
}
diff --git a/Zend/zend.h b/Zend/zend.h
index 5ca0845f9..15ebabd05 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.h,v 1.293.2.11.2.6 2006/09/14 10:32:45 dmitry Exp $ */
+/* $Id: zend.h,v 1.293.2.11.2.8 2007/04/26 19:08:58 tony2001 Exp $ */
#ifndef ZEND_H
#define ZEND_H
@@ -250,7 +250,7 @@ char *alloca ();
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, return_value_ptr, this_ptr, return_value_used TSRMLS_CC
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX)
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline))
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((noreturn));
#else
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 8381f1187..7d63ff37e 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.c,v 1.296.2.27.2.23 2006/10/03 11:10:32 dmitry Exp $ */
+/* $Id: zend_API.c,v 1.296.2.27.2.29 2007/04/30 19:54:41 johannes Exp $ */
#include "zend.h"
#include "zend_execute.h"
@@ -44,7 +44,7 @@ ZEND_API int zend_get_parameters(int ht, int param_count, ...)
TSRMLS_FETCH();
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (param_count>arg_count) {
return FAILURE;
@@ -82,7 +82,7 @@ ZEND_API int _zend_get_parameters_array(int ht, int param_count, zval **argument
zval *param_ptr;
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (param_count>arg_count) {
return FAILURE;
@@ -122,7 +122,7 @@ ZEND_API int zend_get_parameters_ex(int param_count, ...)
TSRMLS_FETCH();
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (param_count>arg_count) {
return FAILURE;
@@ -145,7 +145,7 @@ ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_arr
int arg_count;
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (param_count>arg_count) {
return FAILURE;
@@ -187,7 +187,7 @@ ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array TS
int arg_count;
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (param_count>arg_count) {
return FAILURE;
@@ -698,7 +698,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
}
p = EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (num_args > arg_count) {
zend_error(E_WARNING, "%s(): could not obtain parameters for parsing",
@@ -878,7 +878,7 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC
zend_update_class_constants(class_type->parent TSRMLS_CC);
}
#if ZTS
- ALLOC_HASHTABLE(CG(static_members)[(long)(class_type->static_members)]);
+ ALLOC_HASHTABLE(CG(static_members)[(zend_intptr_t)(class_type->static_members)]);
#else
ALLOC_HASHTABLE(class_type->static_members);
#endif
@@ -2095,18 +2095,17 @@ static zend_function_entry disabled_class_new[] = {
ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC)
{
- zend_class_entry *disabled_class;
- disabled_class = (zend_class_entry *) emalloc(sizeof(zend_class_entry));
+ zend_class_entry disabled_class;
zend_str_tolower(class_name, class_name_length);
if (zend_hash_del(CG(class_table), class_name, class_name_length+1)==FAILURE) {
return FAILURE;
}
- INIT_CLASS_ENTRY((*disabled_class), class_name, disabled_class_new);
- disabled_class->create_object = display_disabled_class;
- disabled_class->name_length = class_name_length;
- zend_register_internal_class(disabled_class TSRMLS_CC);
- return 1;
+ INIT_CLASS_ENTRY(disabled_class, class_name, disabled_class_new);
+ disabled_class.create_object = display_disabled_class;
+ disabled_class.name_length = class_name_length;
+ zend_register_internal_class(&disabled_class TSRMLS_CC);
+ return SUCCESS;
}
static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, zend_class_entry *ce_org, zval *callable, zend_class_entry **ce_ptr, zend_function **fptr_ptr TSRMLS_DC)
@@ -2263,9 +2262,9 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **
}
lcname = zend_str_tolower_dup(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj));
- if (Z_STRLEN_PP(obj) == sizeof("self") - 1 && memcmp(lcname, "self", sizeof("self")) == 0) {
+ if (Z_STRLEN_PP(obj) == sizeof("self") - 1 && memcmp(lcname, "self", sizeof("self")) == 0 && EG(active_op_array)) {
ce = EG(active_op_array)->scope;
- } else if (Z_STRLEN_PP(obj) == sizeof("parent") - 1 && memcmp(lcname, "parent", sizeof("parent")) == 0 && EG(active_op_array)->scope) {
+ } else if (Z_STRLEN_PP(obj) == sizeof("parent") - 1 && memcmp(lcname, "parent", sizeof("parent")) == 0 && EG(active_op_array) && EG(active_op_array)->scope) {
ce = EG(active_op_array)->scope->parent;
} else if (zend_lookup_class(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), &pce TSRMLS_CC) == SUCCESS) {
ce = *pce;
@@ -2362,35 +2361,64 @@ ZEND_API int zend_fcall_info_init(zval *callable, zend_fcall_info *fci, zend_fca
fci->size = sizeof(*fci);
fci->function_table = ce ? &ce->function_table : EG(function_table);
fci->object_pp = obj;
- fci->function_name = NULL;
+ fci->function_name = callable;
fci->retval_ptr_ptr = NULL;
fci->param_count = 0;
fci->params = NULL;
fci->no_separation = 1;
fci->symbol_table = NULL;
- fcc->initialized = 1;
- fcc->function_handler = func;
- fcc->calling_scope = ce;
- fcc->object_pp = obj;
+ if (strlen(func->common.function_name) == sizeof(ZEND_CALL_FUNC_NAME) - 1 && !memcmp(func->common.function_name, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME))) {
+ fcc->initialized = 0;
+ fcc->function_handler = NULL;
+ fcc->calling_scope = NULL;
+ fcc->object_pp = NULL;
+ } else {
+ fcc->initialized = 1;
+ fcc->function_handler = func;
+ fcc->calling_scope = ce;
+ fcc->object_pp = obj;
+ }
return SUCCESS;
}
-ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args TSRMLS_DC)
+ZEND_API void zend_fcall_info_args_clear(zend_fcall_info *fci, int free_mem)
{
- HashPosition pos;
- zval **arg, ***params;
-
if (fci->params) {
while (fci->param_count) {
zval_ptr_dtor(fci->params[--fci->param_count]);
}
- efree(fci->params);
+ if (free_mem) {
+ efree(fci->params);
+ fci->params = NULL;
+ }
}
- fci->params = NULL;
fci->param_count = 0;
+}
+
+ZEND_API void zend_fcall_info_args_save(zend_fcall_info *fci, int *param_count, zval ****params)
+{
+ *param_count = fci->param_count;
+ *params = fci->params;
+ fci->param_count = 0;
+ fci->params = NULL;
+}
+
+ZEND_API void zend_fcall_info_args_restore(zend_fcall_info *fci, int param_count, zval ***params)
+{
+ zend_fcall_info_args_clear(fci, 1);
+ fci->param_count = param_count;
+ fci->params = params;
+}
+
+ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args TSRMLS_DC)
+{
+ HashPosition pos;
+ zval **arg, ***params;
+
+ zend_fcall_info_args_clear(fci, !args);
if (!args) {
return SUCCESS;
@@ -2404,7 +2432,6 @@ ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args TSRMLS_DC)
fci->params = params = (zval***)safe_emalloc(sizeof(zval**), fci->param_count, 0);
zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(args), &pos);
-
while (zend_hash_get_current_data_ex(Z_ARRVAL_P(args), (void **) &arg, &pos) == SUCCESS) {
*params++ = arg;
(*arg)->refcount++;
@@ -2421,8 +2448,7 @@ ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *f
fci->retval_ptr_ptr = retval_ptr_ptr ? retval_ptr_ptr : &retval;
if (args) {
- org_params = fci->params;
- org_count = fci->param_count;
+ zend_fcall_info_args_save(fci, &org_count, &org_params);
zend_fcall_info_args(fci, args TSRMLS_CC);
}
result = zend_call_function(fci, fcc TSRMLS_CC);
@@ -2431,9 +2457,7 @@ ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *f
zval_ptr_dtor(&retval);
}
if (args) {
- zend_fcall_info_args(fci, NULL TSRMLS_CC);
- fci->params = org_params;
- fci->param_count = org_count;
+ zend_fcall_info_args_restore(fci, org_count, org_params);
}
return result;
}
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index ac8692e9d..713889ead 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.h,v 1.207.2.8.2.5 2006/07/18 09:06:32 dmitry Exp $ */
+/* $Id: zend_API.h,v 1.207.2.8.2.8 2007/04/16 08:09:54 dmitry Exp $ */
#ifndef ZEND_API_H
#define ZEND_API_H
@@ -48,6 +48,9 @@ typedef struct _zend_function_entry {
#define ZEND_FENTRY(zend_name, name, arg_info, flags) { #zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
+#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
+#define ZEND_RAW_NAMED_FE(zend_name, name, arg_info) ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0)
+
#define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0)
#define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)
#define ZEND_DEP_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
@@ -157,7 +160,7 @@ typedef struct _zend_function_entry {
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
#ifdef ZTS
-# define CE_STATIC_MEMBERS(ce) (((ce)->type==ZEND_USER_CLASS)?(ce)->static_members:CG(static_members)[(long)(ce)->static_members])
+# define CE_STATIC_MEMBERS(ce) (((ce)->type==ZEND_USER_CLASS)?(ce)->static_members:CG(static_members)[(zend_intptr_t)(ce)->static_members])
#else
# define CE_STATIC_MEMBERS(ce) ((ce)->static_members)
#endif
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 8873daeb1..ce6b06bdc 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -14,11 +14,11 @@
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
- | Dmitry Sogov <dmitry@zend.com> |
+ | Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: zend_alloc.c,v 1.144.2.3.2.12 2006/10/12 06:46:51 dmitry Exp $ */
+/* $Id: zend_alloc.c,v 1.144.2.3.2.41 2007/04/16 08:09:54 dmitry Exp $ */
#include "zend.h"
#include "zend_alloc.h"
@@ -32,8 +32,32 @@
# include <unistd.h>
#endif
-#ifndef ZEND_USE_MALLOC_MM
-# define ZEND_USE_MALLOC_MM ZEND_DEBUG
+#ifdef ZEND_WIN32
+# define _WIN32_WINNT 0x0400
+# include <wincrypt.h>
+# include <process.h>
+#endif
+
+#ifndef ZEND_MM_HEAP_PROTECTION
+# define ZEND_MM_HEAP_PROTECTION ZEND_DEBUG
+#endif
+
+#ifndef ZEND_MM_SAFE_UNLINKING
+# define ZEND_MM_SAFE_UNLINKING 1
+#endif
+
+#ifndef ZEND_MM_COOKIES
+# define ZEND_MM_COOKIES ZEND_DEBUG
+#endif
+
+#ifdef _WIN64
+# define PTR_FMT "0x%0.16I64x"
+/*
+#elif sizeof(long) == 8
+# define PTR_FMT "0x%0.16lx"
+*/
+#else
+# define PTR_FMT "0x%0.8lx"
#endif
#if ZEND_DEBUG
@@ -54,14 +78,22 @@ void zend_debug_alloc_output(char *format, ...)
}
#endif
+#if (defined (__GNUC__) && __GNUC__ > 2 ) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX)
+# define EXPECTED(condition) __builtin_expect(condition, 1)
+# define UNEXPECTED(condition) __builtin_expect(condition, 0)
+static void zend_mm_panic(const char *message) __attribute__ ((noreturn));
+#else
+# define EXPECTED(condition) (condition)
+# define UNEXPECTED(condition) (condition)
+#endif
+
static void zend_mm_panic(const char *message)
{
fprintf(stderr, "%s\n", message);
#if ZEND_DEBUG && defined(HAVE_KILL) && defined(HAVE_GETPID)
kill(getpid(), SIGSEGV);
-#else
- exit(1);
#endif
+ exit(1);
}
/*******************/
@@ -82,6 +114,10 @@ static void zend_mm_panic(const char *message)
#include <errno.h>
#if defined(HAVE_MEM_MMAP_ANON) || defined(HAVE_MEM_MMAP_ZERO)
+# ifdef HAVE_MREMAP
+# define _GNU_SOURCE
+# define __USE_GNU
+# endif
# include <sys/mman.h>
# ifndef MAP_ANON
# ifdef MAP_ANONYMOUS
@@ -185,35 +221,41 @@ static zend_mm_segment* zend_mm_mem_mmap_zero_alloc(zend_mm_storage *storage, si
#ifdef HAVE_MEM_WIN32
+static zend_mm_storage* zend_mm_mem_win32_init(void *params)
+{
+ HANDLE heap = HeapCreate(HEAP_NO_SERIALIZE, 0, 0);
+ zend_mm_storage* storage;
+
+ if (heap == NULL) {
+ return NULL;
+ }
+ storage = (zend_mm_storage*)malloc(sizeof(zend_mm_storage));
+ storage->data = (void*) heap;
+ return storage;
+}
+
+static void zend_mm_mem_win32_dtor(zend_mm_storage *storage)
+{
+ HeapDestroy((HANDLE)storage->data);
+ free(storage);
+}
+
static zend_mm_segment* zend_mm_mem_win32_alloc(zend_mm_storage *storage, size_t size)
{
- return (zend_mm_segment*) VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
+ return (zend_mm_segment*) HeapAlloc((HANDLE)storage->data, HEAP_NO_SERIALIZE, size);
}
static void zend_mm_mem_win32_free(zend_mm_storage *storage, zend_mm_segment* segment)
{
- VirtualFree(segment, segment->size, MEM_RELEASE);
+ HeapFree((HANDLE)storage->data, HEAP_NO_SERIALIZE, segment);
}
static zend_mm_segment* zend_mm_mem_win32_realloc(zend_mm_storage *storage, zend_mm_segment* segment, size_t size)
{
- if (size < segment->size) {
- VirtualFree((char*)segment + size, segment->size - size, MEM_RELEASE);
- } else if (size > segment->size) {
- if (!VirtualAlloc((char*)segment + segment->size, size - segment->size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE)) {
- zend_mm_segment *ret = zend_mm_mem_win32_alloc(storage, size);
-
- if (ret) {
- memcpy(ret, segment, size > segment->size ? segment->size : size);
- zend_mm_mem_win32_free(storage, segment);
- }
- segment = ret;
- }
- }
- return segment;
+ return (zend_mm_segment*) HeapReAlloc((HANDLE)storage->data, HEAP_NO_SERIALIZE, segment, size);
}
-# define ZEND_MM_MEM_WIN32_DSC {"win32", zend_mm_mem_dummy_init, zend_mm_mem_dummy_dtor, zend_mm_mem_win32_alloc, zend_mm_mem_win32_realloc, zend_mm_mem_win32_free}
+# define ZEND_MM_MEM_WIN32_DSC {"win32", zend_mm_mem_win32_init, zend_mm_mem_win32_dtor, zend_mm_mem_win32_alloc, zend_mm_mem_win32_realloc, zend_mm_mem_win32_free}
#endif
@@ -239,6 +281,9 @@ static void zend_mm_mem_malloc_free(zend_mm_storage *storage, zend_mm_segment *p
#endif
static const zend_mm_mem_handlers mem_handlers[] = {
+#ifdef HAVE_MEM_WIN32
+ ZEND_MM_MEM_WIN32_DSC,
+#endif
#ifdef HAVE_MEM_MALLOC
ZEND_MM_MEM_MALLOC_DSC,
#endif
@@ -248,9 +293,6 @@ static const zend_mm_mem_handlers mem_handlers[] = {
#ifdef HAVE_MEM_MMAP_ZERO
ZEND_MM_MEM_MMAP_ZERO_DSC,
#endif
-#ifdef HAVE_MEM_WIN32
- ZEND_MM_MEM_WIN32_DSC,
-#endif
{NULL, NULL, NULL, NULL, NULL, NULL}
};
@@ -263,86 +305,175 @@ static const zend_mm_mem_handlers mem_handlers[] = {
/* Heap Manager */
/****************/
-typedef enum _mem_magic {
- MEM_BLOCK_VALID = 0x7312F8DC,
- MEM_BLOCK_FREED = 0x99954317,
- MEM_BLOCK_CACHED = 0xFB8277DC,
- MEM_BLOCK_GUARD = 0x2A8FCC84,
- MEM_BLOCK_LEAK = 0x6C5E8F2D
-} mem_magic;
+#define MEM_BLOCK_VALID 0x7312F8DC
+#define MEM_BLOCK_FREED 0x99954317
+#define MEM_BLOCK_CACHED 0xFB8277DC
+#define MEM_BLOCK_GUARD 0x2A8FCC84
+#define MEM_BLOCK_LEAK 0x6C5E8F2D
/* mm block type */
typedef struct _zend_mm_block_info {
+#if ZEND_MM_COOKIES
+ size_t _cookie;
+#endif
size_t _size;
size_t _prev;
} zend_mm_block_info;
+#if ZEND_DEBUG
+
typedef struct _zend_mm_debug_info {
char *filename;
uint lineno;
char *orig_filename;
uint orig_lineno;
size_t size;
+#if ZEND_MM_HEAP_PROTECTION
+ unsigned int start_magic;
+#endif
+} zend_mm_debug_info;
+
+#elif ZEND_MM_HEAP_PROTECTION
+
+typedef struct _zend_mm_debug_info {
+ size_t size;
+ unsigned int start_magic;
} zend_mm_debug_info;
+#endif
+
typedef struct _zend_mm_block {
zend_mm_block_info info;
#if ZEND_DEBUG
- mem_magic magic;
- zend_mm_debug_info debug;
+ unsigned int magic;
# ifdef ZTS
THREAD_T thread_id;
# endif
+ zend_mm_debug_info debug;
+#elif ZEND_MM_HEAP_PROTECTION
+ zend_mm_debug_info debug;
#endif
} zend_mm_block;
+typedef struct _zend_mm_small_free_block {
+ zend_mm_block_info info;
+#if ZEND_DEBUG
+ unsigned int magic;
+# ifdef ZTS
+ THREAD_T thread_id;
+# endif
+#endif
+ struct _zend_mm_free_block *prev_free_block;
+ struct _zend_mm_free_block *next_free_block;
+} zend_mm_small_free_block;
+
typedef struct _zend_mm_free_block {
zend_mm_block_info info;
#if ZEND_DEBUG
- mem_magic magic;
+ unsigned int magic;
+# ifdef ZTS
+ THREAD_T thread_id;
+# endif
#endif
struct _zend_mm_free_block *prev_free_block;
struct _zend_mm_free_block *next_free_block;
+
+ struct _zend_mm_free_block **parent;
+ struct _zend_mm_free_block *child[2];
} zend_mm_free_block;
-#define ZEND_MM_NUM_BUCKETS 32
+#define ZEND_MM_NUM_BUCKETS (sizeof(size_t) << 3)
#define ZEND_MM_CACHE 1
-#define ZEND_MM_CACHE_SIZE (32*1024)
+#define ZEND_MM_CACHE_SIZE (ZEND_MM_NUM_BUCKETS * 2 * 1024)
+
+#ifndef ZEND_MM_CACHE_STAT
+# define ZEND_MM_CACHE_STAT 0
+#endif
struct _zend_mm_heap {
- unsigned int free_bitmap;
+ int use_zend_alloc;
+ size_t free_bitmap;
+ size_t large_free_bitmap;
size_t block_size;
zend_mm_segment *segments_list;
zend_mm_storage *storage;
size_t real_size;
-#if MEMORY_LIMIT
size_t real_peak;
size_t limit;
size_t size;
size_t peak;
-#endif
-#if ZEND_USE_MALLOC_MM
- int use_zend_alloc;
-#endif
- int overflow;
+ size_t reserve_size;
+ void *reserve;
+ int overflow;
+ int internal;
#if ZEND_MM_CACHE
unsigned int cached;
zend_mm_free_block *cache[ZEND_MM_NUM_BUCKETS];
#endif
- zend_mm_free_block free_buckets[ZEND_MM_NUM_BUCKETS];
+ zend_mm_free_block *free_buckets[ZEND_MM_NUM_BUCKETS*2];
+ zend_mm_free_block *large_free_buckets[ZEND_MM_NUM_BUCKETS];
+ zend_mm_free_block *rest_buckets[2];
+#if ZEND_MM_CACHE_STAT
+ struct {
+ int count;
+ int max_count;
+ int hit;
+ int miss;
+ } cache_stat[ZEND_MM_NUM_BUCKETS+1];
+#endif
};
-#define ZEND_MM_TYPE_MASK 0x3L
+#define ZEND_MM_SMALL_FREE_BUCKET(heap, index) \
+ (zend_mm_free_block*) ((char*)&heap->free_buckets[index * 2] + \
+ sizeof(zend_mm_free_block*) * 2 - \
+ sizeof(zend_mm_small_free_block))
+
+#define ZEND_MM_REST_BUCKET(heap) \
+ (zend_mm_free_block*)((char*)&heap->rest_buckets[0] + \
+ sizeof(zend_mm_free_block*) * 2 - \
+ sizeof(zend_mm_small_free_block))
+
+#if ZEND_MM_COOKIES
+
+static unsigned int _zend_mm_cookie = 0;
+
+# define ZEND_MM_COOKIE(block) \
+ (((size_t)(block)) ^ _zend_mm_cookie)
+# define ZEND_MM_SET_COOKIE(block) \
+ (block)->info._cookie = ZEND_MM_COOKIE(block)
+# define ZEND_MM_CHECK_COOKIE(block) \
+ if (UNEXPECTED((block)->info._cookie != ZEND_MM_COOKIE(block))) { \
+ zend_mm_panic("zend_mm_heap corrupted"); \
+ }
+#else
+# define ZEND_MM_SET_COOKIE(block)
+# define ZEND_MM_CHECK_COOKIE(block)
+#endif
+
+/* Default memory segment size */
+#define ZEND_MM_SEG_SIZE (256 * 1024)
+
+/* Reserved space for error reporting in case of memory overflow */
+#define ZEND_MM_RESERVE_SIZE (8*1024)
+
+#ifdef _WIN64
+# define ZEND_MM_LONG_CONST(x) (x##i64)
+#else
+# define ZEND_MM_LONG_CONST(x) (x##L)
+#endif
+
+#define ZEND_MM_TYPE_MASK ZEND_MM_LONG_CONST(0x3)
-#define ZEND_MM_FREE_BLOCK 0x0L
-#define ZEND_MM_USED_BLOCK 0x1L
-#define ZEND_MM_GUARD_BLOCK 0x3L
+#define ZEND_MM_FREE_BLOCK ZEND_MM_LONG_CONST(0x0)
+#define ZEND_MM_USED_BLOCK ZEND_MM_LONG_CONST(0x1)
+#define ZEND_MM_GUARD_BLOCK ZEND_MM_LONG_CONST(0x3)
#define ZEND_MM_BLOCK(b, type, size) do { \
size_t _size = (size); \
(b)->info._size = (type) | _size; \
ZEND_MM_BLOCK_AT(b, _size)->info._prev = (type) | _size; \
+ ZEND_MM_SET_COOKIE(b); \
} while (0);
#define ZEND_MM_LAST_BLOCK(b) do { \
(b)->info._size = ZEND_MM_GUARD_BLOCK | ZEND_MM_ALIGNED_HEADER_SIZE; \
@@ -367,6 +498,11 @@ struct _zend_mm_heap {
#ifndef ZEND_MM_ALIGNMENT
# define ZEND_MM_ALIGNMENT 8
# define ZEND_MM_ALIGNMENT_LOG2 3
+#elif ZEND_MM_ALIGNMENT < 4
+# undef ZEND_MM_ALIGNMENT
+# undef ZEND_MM_ALIGNMENT_LOG2
+# define ZEND_MM_ALIGNMENT 4
+# define ZEND_MM_ALIGNMENT_LOG2 2
#endif
#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1)
@@ -374,17 +510,18 @@ struct _zend_mm_heap {
/* Aligned header size */
#define ZEND_MM_ALIGNED_SIZE(size) ((size + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK)
#define ZEND_MM_ALIGNED_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block))
-#define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_free_block))
-#define ZEND_MM_ALIGNED_MIN_HEADER_SIZE (sizeof(zend_mm_block)+END_MAGIC_SIZE>sizeof(zend_mm_free_block)?ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block)+END_MAGIC_SIZE):ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_free_block)))
+#define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_small_free_block))
+#define ZEND_MM_MIN_ALLOC_BLOCK_SIZE ZEND_MM_ALIGNED_SIZE(ZEND_MM_ALIGNED_HEADER_SIZE + END_MAGIC_SIZE)
+#define ZEND_MM_ALIGNED_MIN_HEADER_SIZE (ZEND_MM_MIN_ALLOC_BLOCK_SIZE>ZEND_MM_ALIGNED_FREE_HEADER_SIZE?ZEND_MM_MIN_ALLOC_BLOCK_SIZE:ZEND_MM_ALIGNED_FREE_HEADER_SIZE)
#define ZEND_MM_ALIGNED_SEGMENT_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_segment))
-#define ZEND_MM_MIN_SIZE (ZEND_MM_ALIGNED_MIN_HEADER_SIZE-(ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE))
+#define ZEND_MM_MIN_SIZE ((ZEND_MM_ALIGNED_MIN_HEADER_SIZE>(ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE))?(ZEND_MM_ALIGNED_MIN_HEADER_SIZE-(ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE)):0)
-#define ZEND_MM_MAX_SMALL_SIZE (((ZEND_MM_NUM_BUCKETS-1)<<ZEND_MM_ALIGNMENT_LOG2)+ZEND_MM_ALIGNED_MIN_HEADER_SIZE)
+#define ZEND_MM_MAX_SMALL_SIZE ((ZEND_MM_NUM_BUCKETS<<ZEND_MM_ALIGNMENT_LOG2)+ZEND_MM_ALIGNED_MIN_HEADER_SIZE)
-#define ZEND_MM_TRUE_SIZE(size) (((long)size<(long)ZEND_MM_MIN_SIZE)?(ZEND_MM_ALIGNED_MIN_HEADER_SIZE):(ZEND_MM_ALIGNED_SIZE(size+ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE)))
+#define ZEND_MM_TRUE_SIZE(size) ((size<ZEND_MM_MIN_SIZE)?(ZEND_MM_ALIGNED_MIN_HEADER_SIZE):(ZEND_MM_ALIGNED_SIZE(size+ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE)))
-#define ZEND_MM_BUCKET_INDEX(true_size) ((true_size>>ZEND_MM_ALIGNMENT_LOG2)-(ZEND_MM_ALIGNED_MIN_HEADER_SIZE>>ZEND_MM_ALIGNMENT_LOG2)+1)
+#define ZEND_MM_BUCKET_INDEX(true_size) ((true_size>>ZEND_MM_ALIGNMENT_LOG2)-(ZEND_MM_ALIGNED_MIN_HEADER_SIZE>>ZEND_MM_ALIGNMENT_LOG2))
#define ZEND_MM_SMALL_SIZE(true_size) (true_size < ZEND_MM_MAX_SMALL_SIZE)
@@ -397,8 +534,11 @@ struct _zend_mm_heap {
#if ZEND_DEBUG
# ifdef ZTS
+# define ZEND_MM_SET_THREAD_ID(block) \
+ ((zend_mm_block*)(block))->thread_id = tsrm_thread_id()
# define ZEND_MM_BAD_THREAD_ID(block) ((block)->thread_id != tsrm_thread_id())
# else
+# define ZEND_MM_SET_THREAD_ID(block)
# define ZEND_MM_BAD_THREAD_ID(block) 0
# endif
@@ -411,116 +551,329 @@ struct _zend_mm_heap {
# define ZEND_MM_CHECK_MAGIC(block, val) do { \
if ((block)->magic != (val)) { \
- zend_mm_panic("Heap corrupted"); \
+ zend_mm_panic("zend_mm_heap corrupted"); \
+ } \
+ } while (0)
+
+# define ZEND_MM_SET_DEBUG_INFO(block, __size, set_valid, set_thread) do { \
+ ((zend_mm_block*)(block))->debug.filename = __zend_filename; \
+ ((zend_mm_block*)(block))->debug.lineno = __zend_lineno; \
+ ((zend_mm_block*)(block))->debug.orig_filename = __zend_orig_filename; \
+ ((zend_mm_block*)(block))->debug.orig_lineno = __zend_orig_lineno; \
+ ZEND_MM_SET_BLOCK_SIZE(block, __size); \
+ if (set_valid) { \
+ ZEND_MM_SET_MAGIC(block, MEM_BLOCK_VALID); \
+ } \
+ if (set_thread) { \
+ ZEND_MM_SET_THREAD_ID(block); \
+ } \
+ } while (0)
+
+#else
+
+# define ZEND_MM_VALID_PTR(ptr) EXPECTED(ptr != NULL)
+
+# define ZEND_MM_SET_MAGIC(block, val)
+
+# define ZEND_MM_CHECK_MAGIC(block, val)
+
+# define ZEND_MM_SET_DEBUG_INFO(block, __size, set_valid, set_thread) ZEND_MM_SET_BLOCK_SIZE(block, __size)
+
+#endif
+
+
+#if ZEND_MM_HEAP_PROTECTION
+
+# define ZEND_MM_CHECK_PROTECTION(block) \
+ do { \
+ if ((block)->debug.start_magic != _mem_block_start_magic || \
+ memcmp(ZEND_MM_END_MAGIC_PTR(block), &_mem_block_end_magic, END_MAGIC_SIZE) != 0) { \
+ zend_mm_panic("zend_mm_heap corrupted"); \
} \
} while (0)
# define ZEND_MM_END_MAGIC_PTR(block) \
- (long*)(((char*)(ZEND_MM_DATA_OF(block))) + ((zend_mm_block*)(block))->debug.size)
+ (((char*)(ZEND_MM_DATA_OF(block))) + ((zend_mm_block*)(block))->debug.size)
-# define ZEND_MM_SET_END_MAGIC(block) do { \
- long *p = ZEND_MM_END_MAGIC_PTR(block); \
+# define END_MAGIC_SIZE sizeof(unsigned int)
+
+# define ZEND_MM_SET_BLOCK_SIZE(block, __size) do { \
+ char *p; \
+ ((zend_mm_block*)(block))->debug.size = (__size); \
+ p = ZEND_MM_END_MAGIC_PTR(block); \
+ ((zend_mm_block*)(block))->debug.start_magic = _mem_block_start_magic; \
memcpy(p, &_mem_block_end_magic, END_MAGIC_SIZE); \
} while (0)
-# define MEM_BLOCK_END_MAGIC 0x2A8FCC84L
+static unsigned int _mem_block_start_magic = 0;
+static unsigned int _mem_block_end_magic = 0;
-# define END_MAGIC_SIZE sizeof(long)
+#else
-static long _mem_block_end_magic = MEM_BLOCK_END_MAGIC;
+# if ZEND_DEBUG
+# define ZEND_MM_SET_BLOCK_SIZE(block, _size) \
+ ((zend_mm_block*)(block))->debug.size = (_size)
+# else
+# define ZEND_MM_SET_BLOCK_SIZE(block, _size)
+# endif
+# define ZEND_MM_CHECK_PROTECTION(block)
+
+# define END_MAGIC_SIZE 0
+
+#endif
+
+#if ZEND_MM_SAFE_UNLINKING
+# define ZEND_MM_CHECK_BLOCK_LINKAGE(block) \
+ if (UNEXPECTED((block)->info._size != ZEND_MM_BLOCK_AT(block, ZEND_MM_FREE_BLOCK_SIZE(block))->info._prev) || \
+ UNEXPECTED(!UNEXPECTED(ZEND_MM_IS_FIRST_BLOCK(block)) && \
+ UNEXPECTED(ZEND_MM_PREV_BLOCK(block)->info._size != (block)->info._prev))) { \
+ zend_mm_panic("zend_mm_heap corrupted"); \
+ }
+#define ZEND_MM_CHECK_TREE(block) \
+ if (UNEXPECTED(*((block)->parent) != (block))) { \
+ zend_mm_panic("zend_mm_heap corrupted"); \
+ }
#else
+# define ZEND_MM_CHECK_BLOCK_LINKAGE(block)
+# define ZEND_MM_CHECK_TREE(block)
+#endif
-# define ZEND_MM_VALID_PTR(ptr) 1
+#define ZEND_MM_LARGE_BUCKET_INDEX(S) zend_mm_high_bit(S)
-# define ZEND_MM_SET_MAGIC(block, val)
+static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
+static void _zend_mm_free_int(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-# define ZEND_MM_SET_END_MAGIC(block)
+static inline unsigned int zend_mm_high_bit(size_t _size)
+{
+#if defined(__GNUC__) && defined(i386)
+ unsigned int n;
-# define ZEND_MM_CHECK_MAGIC(block, val)
+ __asm__("bsrl %1,%0\n\t" : "=r" (n) : "rm" (_size));
+ return n;
+#elif defined(_MSC_VER) && defined(_M_IX86)
+ __asm {
+ bsr eax, _size
+ }
+#else
+ unsigned int n = 0;
+ while (_size != 0) {
+ _size = _size >> 1;
+ n++;
+ }
+ return n-1;
+#endif
+}
-# define END_MAGIC_SIZE 0
+static inline unsigned int zend_mm_low_bit(size_t _size)
+{
+#if defined(__GNUC__) && defined(i386)
+ unsigned int n;
+
+ __asm__("bsfl %1,%0\n\t" : "=r" (n) : "rm" (_size));
+ return n;
+#elif defined(_MSC_VER) && defined(_M_IX86)
+ __asm {
+ bsf eax, _size
+ }
+#else
+ static const int offset[16] = {4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};
+ unsigned int n;
+ unsigned int index = 0;
+ do {
+ n = offset[_size & 15];
+ _size >>= 4;
+ index += n;
+ } while (n == 4);
+ return index;
#endif
+}
-static inline void zend_mm_add_to_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
+static inline void zend_mm_add_to_rest_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
{
zend_mm_free_block *prev, *next;
+
+ ZEND_MM_SET_MAGIC(mm_block, MEM_BLOCK_FREED);
+
+ if (!ZEND_MM_SMALL_SIZE(ZEND_MM_FREE_BLOCK_SIZE(mm_block))) {
+ mm_block->parent = NULL;
+ }
+
+ prev = heap->rest_buckets[0];
+ next = prev->next_free_block;
+ mm_block->prev_free_block = prev;
+ mm_block->next_free_block = next;
+ prev->next_free_block = next->prev_free_block = mm_block;
+}
+
+static inline void zend_mm_add_to_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
+{
size_t size;
+ size_t index;
ZEND_MM_SET_MAGIC(mm_block, MEM_BLOCK_FREED);
size = ZEND_MM_FREE_BLOCK_SIZE(mm_block);
- if (ZEND_MM_SMALL_SIZE(size)) {
- size_t index = ZEND_MM_BUCKET_INDEX(size);
- prev = &heap->free_buckets[index];
+ if (EXPECTED(!ZEND_MM_SMALL_SIZE(size))) {
+ zend_mm_free_block **p;
+
+ index = ZEND_MM_LARGE_BUCKET_INDEX(size);
+ p = &heap->large_free_buckets[index];
+ mm_block->child[0] = mm_block->child[1] = NULL;
+ if (!*p) {
+ *p = mm_block;
+ mm_block->parent = p;
+ mm_block->prev_free_block = mm_block->next_free_block = mm_block;
+ heap->large_free_bitmap |= (ZEND_MM_LONG_CONST(1) << index);
+ } else {
+ size_t m;
- if (prev->prev_free_block == prev) {
- heap->free_bitmap |= (1U << index);
+ for (m = size << (ZEND_MM_NUM_BUCKETS - index); ; m <<= 1) {
+ zend_mm_free_block *prev = *p;
+
+ if (ZEND_MM_FREE_BLOCK_SIZE(prev) != size) {
+ p = &prev->child[(m >> (ZEND_MM_NUM_BUCKETS-1)) & 1];
+ if (!*p) {
+ *p = mm_block;
+ mm_block->parent = p;
+ mm_block->prev_free_block = mm_block->next_free_block = mm_block;
+ break;
+ }
+ } else {
+ zend_mm_free_block *next = prev->next_free_block;
+
+ prev->next_free_block = next->prev_free_block = mm_block;
+ mm_block->next_free_block = next;
+ mm_block->prev_free_block = prev;
+ mm_block->parent = NULL;
+ break;
+ }
+ }
}
} else {
- prev = &heap->free_buckets[0];
+ zend_mm_free_block *prev, *next;
+
+ index = ZEND_MM_BUCKET_INDEX(size);
+
+ prev = ZEND_MM_SMALL_FREE_BUCKET(heap, index);
+ if (prev->prev_free_block == prev) {
+ heap->free_bitmap |= (ZEND_MM_LONG_CONST(1) << index);
+ }
+ next = prev->next_free_block;
+
+ mm_block->prev_free_block = prev;
+ mm_block->next_free_block = next;
+ prev->next_free_block = next->prev_free_block = mm_block;
}
- next = prev->next_free_block;
- mm_block->prev_free_block = prev;
- mm_block->next_free_block = next;
- prev->next_free_block = mm_block;
- next->prev_free_block = mm_block;
}
-
static inline void zend_mm_remove_from_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
{
- zend_mm_free_block *prev, *next;
+ zend_mm_free_block *prev = mm_block->prev_free_block;
+ zend_mm_free_block *next = mm_block->next_free_block;
ZEND_MM_CHECK_MAGIC(mm_block, MEM_BLOCK_FREED);
- prev = mm_block->prev_free_block;
- next = mm_block->next_free_block;
- prev->next_free_block = next;
- next->prev_free_block = prev;
+ if (EXPECTED(prev == mm_block)) {
+ zend_mm_free_block **rp, **cp;
- if (prev == next) {
- size_t size = ZEND_MM_FREE_BLOCK_SIZE(mm_block);
+#if ZEND_MM_SAFE_UNLINKING
+ if (UNEXPECTED(next != mm_block)) {
+ zend_mm_panic("zend_mm_heap corrupted");
+ }
+#endif
- if (ZEND_MM_SMALL_SIZE(size)) {
- size_t index = ZEND_MM_BUCKET_INDEX(size);
+ rp = &mm_block->child[mm_block->child[1] != NULL];
+ prev = *rp;
+ if (EXPECTED(prev == NULL)) {
+ size_t index = ZEND_MM_LARGE_BUCKET_INDEX(ZEND_MM_FREE_BLOCK_SIZE(mm_block));
- heap->free_bitmap &= ~(1U << index);
+ ZEND_MM_CHECK_TREE(mm_block);
+ *mm_block->parent = NULL;
+ if (mm_block->parent == &heap->large_free_buckets[index]) {
+ heap->large_free_bitmap &= ~(ZEND_MM_LONG_CONST(1) << index);
+ }
+ } else {
+ while (*(cp = &(prev->child[prev->child[1] != NULL])) != NULL) {
+ prev = *cp;
+ rp = cp;
+ }
+ *rp = NULL;
+
+subst_block:
+ ZEND_MM_CHECK_TREE(mm_block);
+ *mm_block->parent = prev;
+ prev->parent = mm_block->parent;
+ if ((prev->child[0] = mm_block->child[0])) {
+ ZEND_MM_CHECK_TREE(prev->child[0]);
+ prev->child[0]->parent = &prev->child[0];
+ }
+ if ((prev->child[1] = mm_block->child[1])) {
+ ZEND_MM_CHECK_TREE(prev->child[1]);
+ prev->child[1]->parent = &prev->child[1];
+ }
+ }
+ } else {
+
+#if ZEND_MM_SAFE_UNLINKING
+ if (UNEXPECTED(prev->next_free_block != mm_block) || UNEXPECTED(next->prev_free_block != mm_block)) {
+ zend_mm_panic("zend_mm_heap corrupted");
+ }
+#endif
+
+ prev->next_free_block = next;
+ next->prev_free_block = prev;
+
+ if (EXPECTED(ZEND_MM_SMALL_SIZE(ZEND_MM_FREE_BLOCK_SIZE(mm_block)))) {
+ if (EXPECTED(prev == next)) {
+ size_t index = ZEND_MM_BUCKET_INDEX(ZEND_MM_FREE_BLOCK_SIZE(mm_block));
+
+ if (EXPECTED(heap->free_buckets[index*2] == heap->free_buckets[index*2+1])) {
+ heap->free_bitmap &= ~(ZEND_MM_LONG_CONST(1) << index);
+ }
+ }
+ } else if (UNEXPECTED(mm_block->parent != NULL)) {
+ goto subst_block;
}
}
}
static inline void zend_mm_init(zend_mm_heap *heap)
{
+ zend_mm_free_block* p;
int i;
heap->free_bitmap = 0;
+ heap->large_free_bitmap = 0;
#if ZEND_MM_CACHE
heap->cached = 0;
memset(heap->cache, 0, sizeof(heap->cache));
#endif
+#if ZEND_MM_CACHE_STAT
+ for (i = 0; i < ZEND_MM_NUM_BUCKETS; i++) {
+ heap->cache_stat[i].count = 0;
+ }
+#endif
+ p = ZEND_MM_SMALL_FREE_BUCKET(heap, 0);
for (i = 0; i < ZEND_MM_NUM_BUCKETS; i++) {
- heap->free_buckets[i].next_free_block =
- heap->free_buckets[i].prev_free_block = &heap->free_buckets[i];
+ p->next_free_block = p;
+ p->prev_free_block = p;
+ p = (zend_mm_free_block*)((char*)p + sizeof(zend_mm_free_block*) * 2);
+ heap->large_free_buckets[i] = NULL;
}
+ heap->rest_buckets[0] = heap->rest_buckets[1] = ZEND_MM_REST_BUCKET(heap);
}
static void zend_mm_del_segment(zend_mm_heap *heap, zend_mm_segment *segment)
{
- if (heap->segments_list == segment) {
- heap->segments_list = segment->next_segment;
- } else {
- zend_mm_segment *p = heap->segments_list;
+ zend_mm_segment **p = &heap->segments_list;
- while (p) {
- if (p->next_segment == segment) {
- p->next_segment = segment->next_segment;
- break;
- }
- p = p->next_segment;
- }
+ while (*p != segment) {
+ p = &(*p)->next_segment;
}
+ *p = segment->next_segment;
heap->real_size -= segment->size;
ZEND_MM_STORAGE_FREE(segment);
}
@@ -537,15 +890,14 @@ static void zend_mm_free_cache(zend_mm_heap *heap)
while (mm_block) {
size_t size = ZEND_MM_BLOCK_SIZE(mm_block);
zend_mm_free_block *q = mm_block->prev_free_block;
- zend_mm_block *prev_block = ZEND_MM_PREV_BLOCK(mm_block);
zend_mm_block *next_block = ZEND_MM_NEXT_BLOCK(mm_block);
heap->cached -= size;
- if (ZEND_MM_IS_FREE_BLOCK(prev_block)) {
- size += ZEND_MM_FREE_BLOCK_SIZE(prev_block);
- mm_block = (zend_mm_free_block*)prev_block;
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
+ if (ZEND_MM_PREV_BLOCK_IS_FREE(mm_block)) {
+ mm_block = (zend_mm_free_block*)ZEND_MM_PREV_BLOCK(mm_block);
+ size += ZEND_MM_FREE_BLOCK_SIZE(mm_block);
+ zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block);
}
if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
size += ZEND_MM_FREE_BLOCK_SIZE(next_block);
@@ -563,27 +915,108 @@ static void zend_mm_free_cache(zend_mm_heap *heap)
mm_block = q;
}
heap->cache[i] = NULL;
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[i].count = 0;
+#endif
}
}
}
#endif
+#if ZEND_MM_HEAP_PROTECTION || ZEND_MM_COOKIES
+static void zend_mm_random(unsigned char *buf, size_t size)
+{
+ size_t i = 0;
+ unsigned char t;
+
+#ifdef ZEND_WIN32
+ HCRYPTPROV hCryptProv;
+
+ if (CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) {
+ do {
+ BOOL ret = CryptGenRandom(hCryptProv, size, buf);
+ CryptReleaseContext(hCryptProv, 0);
+ if (ret) {
+ while (i < size && buf[i] != 0) {
+ i++;
+ }
+ if (i == size) {
+ return;
+ }
+ }
+ } while (0);
+ }
+#elif defined(HAVE_DEV_URANDOM)
+ int fd = open("/dev/urandom", 0);
+
+ if (fd >= 0) {
+ if (read(fd, buf, size) == size) {
+ while (i < size && buf[i] != 0) {
+ i++;
+ }
+ if (i == size) {
+ close(fd);
+ return;
+ }
+ }
+ close(fd);
+ }
+#endif
+ t = (unsigned char)getpid();
+ while (i < size) {
+ do {
+ buf[i] = ((unsigned char)rand()) ^ t;
+ } while (buf[i] == 0);
+ t = buf[i++] << 1;
+ }
+}
+#endif
+
/* Notes:
* - This function may alter the block_sizes values to match platform alignment
* - This function does *not* perform sanity checks on the arguments
*/
-ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, size_t block_size, void *params)
+ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, size_t block_size, size_t reserve_size, int internal, void *params)
{
zend_mm_storage *storage;
zend_mm_heap *heap;
#if 0
+ int i;
+
+ printf("ZEND_MM_ALIGNMENT=%d\n", ZEND_MM_ALIGNMENT);
+ printf("ZEND_MM_ALIGNMENT_LOG2=%d\n", ZEND_MM_ALIGNMENT_LOG2);
+ printf("ZEND_MM_MIN_SIZE=%d\n", ZEND_MM_MIN_SIZE);
+ printf("ZEND_MM_MAX_SMALL_SIZE=%d\n", ZEND_MM_MAX_SMALL_SIZE);
+ printf("ZEND_MM_ALIGNED_HEADER_SIZE=%d\n", ZEND_MM_ALIGNED_HEADER_SIZE);
+ printf("ZEND_MM_ALIGNED_FREE_HEADER_SIZE=%d\n", ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
+ printf("ZEND_MM_MIN_ALLOC_BLOCK_SIZE=%d\n", ZEND_MM_MIN_ALLOC_BLOCK_SIZE);
+ printf("ZEND_MM_ALIGNED_MIN_HEADER_SIZE=%d\n", ZEND_MM_ALIGNED_MIN_HEADER_SIZE);
+ printf("ZEND_MM_ALIGNED_SEGMENT_SIZE=%d\n", ZEND_MM_ALIGNED_SEGMENT_SIZE);
for (i = 0; i < ZEND_MM_MAX_SMALL_SIZE; i++) {
printf("%3d%c: %3ld %d %2ld\n", i, (i == ZEND_MM_MIN_SIZE?'*':' '), (long)ZEND_MM_TRUE_SIZE(i), ZEND_MM_SMALL_SIZE(ZEND_MM_TRUE_SIZE(i)), (long)ZEND_MM_BUCKET_INDEX(ZEND_MM_TRUE_SIZE(i)));
}
exit(0);
#endif
+#if ZEND_MM_HEAP_PROTECTION
+ if (_mem_block_start_magic == 0) {
+ zend_mm_random((unsigned char*)&_mem_block_start_magic, sizeof(_mem_block_start_magic));
+ }
+ if (_mem_block_end_magic == 0) {
+ zend_mm_random((unsigned char*)&_mem_block_end_magic, sizeof(_mem_block_end_magic));
+ }
+#endif
+#if ZEND_MM_COOKIES
+ if (_zend_mm_cookie == 0) {
+ zend_mm_random((unsigned char*)&_zend_mm_cookie, sizeof(_zend_mm_cookie));
+ }
+#endif
+
+ if (zend_mm_low_bit(block_size) != zend_mm_high_bit(block_size)) {
+ fprintf(stderr, "'block_size' must be a power of two\n");
+ exit(255);
+ }
storage = handlers->init(params);
if (!storage) {
fprintf(stderr, "Cannot initialize zend_mm storage [%s]\n", handlers->name);
@@ -594,24 +1027,47 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers,
heap = malloc(sizeof(struct _zend_mm_heap));
heap->storage = storage;
- heap->block_size = block_size = ZEND_MM_ALIGNED_SIZE(block_size);
+ heap->block_size = block_size;
heap->segments_list = NULL;
zend_mm_init(heap);
+# if ZEND_MM_CACHE_STAT
+ memset(heap->cache_stat, 0, sizeof(heap->cache_stat));
+# endif
-#if ZEND_USE_MALLOC_MM
heap->use_zend_alloc = 1;
-#endif
-
heap->real_size = 0;
-#if MEMORY_LIMIT
+ heap->overflow = 0;
heap->real_peak = 0;
- heap->limit = 1<<30;
+ heap->limit = ZEND_MM_LONG_CONST(1)<<(ZEND_MM_NUM_BUCKETS-2);
heap->size = 0;
heap->peak = 0;
-#endif
-
- heap->overflow = 0;
+ heap->internal = internal;
+ heap->reserve = NULL;
+ heap->reserve_size = reserve_size;
+ if (reserve_size > 0) {
+ heap->reserve = _zend_mm_alloc_int(heap, reserve_size ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
+ }
+ if (internal) {
+ int i;
+ zend_mm_free_block *p;
+ zend_mm_heap *mm_heap = _zend_mm_alloc_int(heap, sizeof(zend_mm_heap) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
+
+ *mm_heap = *heap;
+
+ p = ZEND_MM_SMALL_FREE_BUCKET(mm_heap, 0);
+ for (i = 0; i < ZEND_MM_NUM_BUCKETS; i++) {
+ p->prev_free_block->next_free_block = p;
+ p->next_free_block->prev_free_block = p;
+ p = (zend_mm_free_block*)((char*)p + sizeof(zend_mm_free_block*) * 2);
+ if (mm_heap->large_free_buckets[i]) {
+ mm_heap->large_free_buckets[i]->parent = &mm_heap->large_free_buckets[i];
+ }
+ }
+ mm_heap->rest_buckets[0]->next_free_block = mm_heap->rest_buckets[1]->prev_free_block = ZEND_MM_REST_BUCKET(mm_heap);
+ free(heap);
+ heap = mm_heap;
+ }
return heap;
}
@@ -645,11 +1101,15 @@ ZEND_API zend_mm_heap *zend_mm_startup(void)
tmp = getenv("ZEND_MM_SEG_SIZE");
if (tmp) {
seg_size = zend_atoi(tmp, 0);
+ if (zend_mm_low_bit(seg_size) != zend_mm_high_bit(seg_size)) {
+ fprintf(stderr, "ZEND_MM_SEG_SIZE must be a power ow two.\n");
+ exit(255);
+ }
} else {
- seg_size = 256 * 1024;
+ seg_size = ZEND_MM_SEG_SIZE;
}
- return zend_mm_startup_ex(handlers, seg_size, NULL);
+ return zend_mm_startup_ex(handlers, seg_size, ZEND_MM_RESERVE_SIZE, 0, NULL);
}
#if ZEND_DEBUG
@@ -660,6 +1120,15 @@ static long zend_mm_find_leaks(zend_mm_segment *segment, zend_mm_block *b)
p = ZEND_MM_NEXT_BLOCK(b);
while (1) {
+ if (ZEND_MM_IS_GUARD_BLOCK(p)) {
+ ZEND_MM_CHECK_MAGIC(p, MEM_BLOCK_GUARD);
+ segment = segment->next_segment;
+ if (!segment) {
+ break;
+ }
+ p = (zend_mm_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
+ continue;
+ }
q = ZEND_MM_NEXT_BLOCK(p);
if (q <= p ||
(char*)q > (char*)segment + segment->size ||
@@ -680,14 +1149,6 @@ static long zend_mm_find_leaks(zend_mm_segment *segment, zend_mm_block *b)
zend_mm_panic("zend_mm_heap corrupted");
}
}
- if (ZEND_MM_IS_GUARD_BLOCK(q)) {
- ZEND_MM_CHECK_MAGIC(q, MEM_BLOCK_GUARD);
- segment = segment->next_segment;
- if (!segment) {
- break;
- }
- q = (zend_mm_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
- }
p = q;
}
return leaks;
@@ -729,7 +1190,7 @@ static void zend_mm_check_leaks(zend_mm_heap *heap)
repeated = zend_mm_find_leaks(segment, p);
total += 1 + repeated;
if (repeated) {
- zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)repeated);
+ zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated);
}
#if ZEND_MM_CACHE
} else if (p->magic == MEM_BLOCK_CACHED) {
@@ -759,7 +1220,6 @@ static int zend_mm_check_ptr(zend_mm_heap *heap, void *ptr, int silent ZEND_FILE
int no_cache_notice = 0;
int had_problems = 0;
int valid_beginning = 1;
- long *end_magic;
if (silent==2) {
silent = 1;
@@ -771,7 +1231,7 @@ static int zend_mm_check_ptr(zend_mm_heap *heap, void *ptr, int silent ZEND_FILE
if (!silent) {
zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL);
zend_debug_alloc_output("---------------------------------------\n");
- zend_debug_alloc_output("%s(%d) : Block 0x%0.8lX status:\n" ZEND_FILE_LINE_RELAY_CC, (long) ptr);
+ zend_debug_alloc_output("%s(%d) : Block "PTR_FMT" status:\n" ZEND_FILE_LINE_RELAY_CC, ptr);
if (__zend_orig_filename) {
zend_debug_alloc_output("%s(%d) : Actual location (location was relayed)\n" ZEND_FILE_LINE_ORIG_RELAY_CC);
}
@@ -803,7 +1263,7 @@ static int zend_mm_check_ptr(zend_mm_heap *heap, void *ptr, int silent ZEND_FILE
if (p->info._size != ZEND_MM_NEXT_BLOCK(p)->info._prev) {
if (!silent) {
- zend_debug_alloc_output("Invalid pointer: ((size=0x%0.8X) != (next.prev=0x%0.8X))\n", p->info._size, ZEND_MM_NEXT_BLOCK(p)->info._prev);
+ zend_debug_alloc_output("Invalid pointer: ((size="PTR_FMT") != (next.prev="PTR_FMT"))\n", p->info._size, ZEND_MM_NEXT_BLOCK(p)->info._prev);
had_problems = 1;
} else {
return zend_mm_check_ptr(heap, ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
@@ -812,7 +1272,7 @@ static int zend_mm_check_ptr(zend_mm_heap *heap, void *ptr, int silent ZEND_FILE
if (p->info._prev != ZEND_MM_GUARD_BLOCK &&
ZEND_MM_PREV_BLOCK(p)->info._size != p->info._prev) {
if (!silent) {
- zend_debug_alloc_output("Invalid pointer: ((prev=0x%0.8X) != (prev.size=0x%0.8X))\n", p->info._prev, ZEND_MM_PREV_BLOCK(p)->info._size);
+ zend_debug_alloc_output("Invalid pointer: ((prev="PTR_FMT") != (prev.size="PTR_FMT"))\n", p->info._prev, ZEND_MM_PREV_BLOCK(p)->info._size);
had_problems = 1;
} else {
return zend_mm_check_ptr(heap, ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
@@ -895,43 +1355,80 @@ static int zend_mm_check_ptr(zend_mm_heap *heap, void *ptr, int silent ZEND_FILE
}
}
- end_magic = ZEND_MM_END_MAGIC_PTR(p);
+#if ZEND_MM_HEAP_PROTECTION
if (!valid_beginning) {
if (!silent) {
- zend_debug_alloc_output("%10s\t", "End:");
+ zend_debug_alloc_output("%10s\t", "Start:");
zend_debug_alloc_output("Unknown\n");
- }
- } else if (memcmp(end_magic, &_mem_block_end_magic, END_MAGIC_SIZE)==0) {
- if (!silent) {
zend_debug_alloc_output("%10s\t", "End:");
- zend_debug_alloc_output("OK\n");
+ zend_debug_alloc_output("Unknown\n");
}
} else {
- char *overflow_ptr, *magic_ptr=(char *) &_mem_block_end_magic;
- int overflows=0;
- long i;
+ char *end_magic = ZEND_MM_END_MAGIC_PTR(p);
- if (silent) {
- return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- }
- had_problems = 1;
- overflow_ptr = (char *) end_magic;
+ if (p->debug.start_magic == _mem_block_start_magic) {
+ if (!silent) {
+ zend_debug_alloc_output("%10s\t", "Start:");
+ zend_debug_alloc_output("OK\n");
+ }
+ } else {
+ char *overflow_ptr, *magic_ptr=(char *) &_mem_block_start_magic;
+ int overflows=0;
+ int i;
- for (i=0; i<(int)sizeof(long); i++) {
- if (overflow_ptr[i]!=magic_ptr[i]) {
- overflows++;
+ if (silent) {
+ return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ }
+ had_problems = 1;
+ overflow_ptr = (char *) &p->debug.start_magic;
+ i = END_MAGIC_SIZE;
+ while (--i >= 0) {
+ if (overflow_ptr[i]!=magic_ptr[i]) {
+ overflows++;
+ }
+ }
+ zend_debug_alloc_output("%10s\t", "Start:");
+ zend_debug_alloc_output("Overflown (magic=0x%0.8X instead of 0x%0.8X)\n", p->debug.start_magic, _mem_block_start_magic);
+ zend_debug_alloc_output("%10s\t","");
+ if (overflows >= END_MAGIC_SIZE) {
+ zend_debug_alloc_output("At least %d bytes overflown\n", END_MAGIC_SIZE);
+ } else {
+ zend_debug_alloc_output("%d byte(s) overflown\n", overflows);
}
}
-
- zend_debug_alloc_output("%10s\t", "End:");
- zend_debug_alloc_output("Overflown (magic=0x%0.8lX instead of 0x%0.8lX)\n", *end_magic, MEM_BLOCK_END_MAGIC);
- zend_debug_alloc_output("%10s\t","");
- if (overflows>=(int)sizeof(long)) {
- zend_debug_alloc_output("At least %d bytes overflown\n", sizeof(long));
+ if (memcmp(end_magic, &_mem_block_end_magic, END_MAGIC_SIZE)==0) {
+ if (!silent) {
+ zend_debug_alloc_output("%10s\t", "End:");
+ zend_debug_alloc_output("OK\n");
+ }
} else {
- zend_debug_alloc_output("%d byte(s) overflown\n", overflows);
+ char *overflow_ptr, *magic_ptr=(char *) &_mem_block_end_magic;
+ int overflows=0;
+ int i;
+
+ if (silent) {
+ return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ }
+ had_problems = 1;
+ overflow_ptr = (char *) end_magic;
+
+ for (i=0; i < END_MAGIC_SIZE; i++) {
+ if (overflow_ptr[i]!=magic_ptr[i]) {
+ overflows++;
+ }
+ }
+
+ zend_debug_alloc_output("%10s\t", "End:");
+ zend_debug_alloc_output("Overflown (magic=0x%0.8X instead of 0x%0.8X)\n", *end_magic, _mem_block_end_magic);
+ zend_debug_alloc_output("%10s\t","");
+ if (overflows >= END_MAGIC_SIZE) {
+ zend_debug_alloc_output("At least %d bytes overflown\n", END_MAGIC_SIZE);
+ } else {
+ zend_debug_alloc_output("%d byte(s) overflown\n", overflows);
+ }
}
}
+#endif
if (!silent) {
zend_debug_alloc_output("---------------------------------------\n");
@@ -983,8 +1480,65 @@ static int zend_mm_check_heap(zend_mm_heap *heap, int silent ZEND_FILE_LINE_DC Z
ZEND_API void zend_mm_shutdown(zend_mm_heap *heap, int full_shutdown, int silent)
{
+ zend_mm_storage *storage;
zend_mm_segment *segment;
zend_mm_segment *prev;
+ int internal;
+
+ if (heap->reserve) {
+#if ZEND_DEBUG
+ if (!silent) {
+ _zend_mm_free_int(heap, heap->reserve ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
+ }
+#endif
+ heap->reserve = NULL;
+ }
+
+#if ZEND_MM_CACHE_STAT
+ if (full_shutdown) {
+ FILE *f;
+
+ f = fopen("zend_mm.log", "w");
+ if (f) {
+ int i,j;
+ size_t size, true_size, min_size, max_size;
+ int hit = 0, miss = 0;
+
+ fprintf(f, "\nidx min_size max_size true_size max_len hits misses\n");
+ size = 0;
+ while (1) {
+ true_size = ZEND_MM_TRUE_SIZE(size);
+ if (ZEND_MM_SMALL_SIZE(true_size)) {
+ min_size = size;
+ i = ZEND_MM_BUCKET_INDEX(true_size);
+ size++;
+ while (1) {
+ true_size = ZEND_MM_TRUE_SIZE(size);
+ if (ZEND_MM_SMALL_SIZE(true_size)) {
+ j = ZEND_MM_BUCKET_INDEX(true_size);
+ if (j > i) {
+ max_size = size-1;
+ break;
+ }
+ } else {
+ max_size = size-1;
+ break;
+ }
+ size++;
+ }
+ hit += heap->cache_stat[i].hit;
+ miss += heap->cache_stat[i].miss;
+ fprintf(f, "%2d %8d %8d %9d %8d %8d %8d\n", i, (int)min_size, (int)max_size, ZEND_MM_TRUE_SIZE(max_size), heap->cache_stat[i].max_count, heap->cache_stat[i].hit, heap->cache_stat[i].miss);
+ } else {
+ break;
+ }
+ }
+ fprintf(f, " %8d %8d\n", hit, miss);
+ fprintf(f, " %8d %8d\n", heap->cache_stat[ZEND_MM_NUM_BUCKETS].hit, heap->cache_stat[ZEND_MM_NUM_BUCKETS].miss);
+ fclose(f);
+ }
+ }
+#endif
#if ZEND_DEBUG
if (!silent) {
@@ -992,6 +1546,8 @@ ZEND_API void zend_mm_shutdown(zend_mm_heap *heap, int full_shutdown, int silent
}
#endif
+ internal = heap->internal;
+ storage = heap->storage;
segment = heap->segments_list;
while (segment) {
prev = segment;
@@ -999,17 +1555,20 @@ ZEND_API void zend_mm_shutdown(zend_mm_heap *heap, int full_shutdown, int silent
ZEND_MM_STORAGE_FREE(prev);
}
if (full_shutdown) {
- ZEND_MM_STORAGE_DTOR();
- free(heap);
+ storage->handlers->dtor(storage);
+ if (!internal) {
+ free(heap);
+ }
} else {
heap->segments_list = NULL;
zend_mm_init(heap);
heap->real_size = 0;
-#if MEMORY_LIMIT
heap->real_peak = 0;
heap->size = 0;
heap->peak = 0;
-#endif
+ if (heap->reserve_size) {
+ heap->reserve = _zend_mm_alloc_int(heap, heap->reserve_size ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
+ }
heap->overflow = 0;
}
}
@@ -1023,6 +1582,10 @@ static void zend_mm_safe_error(zend_mm_heap *heap,
#endif
size_t size)
{
+ if (heap->reserve) {
+ _zend_mm_free_int(heap, heap->reserve ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
+ heap->reserve = NULL;
+ }
if (heap->overflow == 0) {
char *error_filename;
uint error_lineno;
@@ -1042,7 +1605,7 @@ static void zend_mm_safe_error(zend_mm_heap *heap,
}
heap->overflow = 1;
zend_try {
- zend_error(E_ERROR,
+ zend_error_noreturn(E_ERROR,
format,
limit,
#if ZEND_DEBUG
@@ -1070,134 +1633,174 @@ static void zend_mm_safe_error(zend_mm_heap *heap,
zend_bailout();
}
-static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
+static zend_mm_free_block *zend_mm_search_large_block(zend_mm_heap *heap, size_t true_size)
+{
+ zend_mm_free_block *best_fit;
+ size_t index = ZEND_MM_LARGE_BUCKET_INDEX(true_size);
+ size_t bitmap = heap->large_free_bitmap >> index;
+ zend_mm_free_block *p;
+
+ if (bitmap == 0) {
+ return NULL;
+ }
+
+ if (UNEXPECTED((bitmap & 1) != 0)) {
+ /* Search for best "large" free block */
+ zend_mm_free_block *rst = NULL;
+ size_t m;
+ size_t best_size = -1;
+
+ best_fit = NULL;
+ p = heap->large_free_buckets[index];
+ for (m = true_size << (ZEND_MM_NUM_BUCKETS - index); ; m <<= 1) {
+ if (UNEXPECTED(ZEND_MM_FREE_BLOCK_SIZE(p) == true_size)) {
+ return p->next_free_block;
+ } else if (ZEND_MM_FREE_BLOCK_SIZE(p) >= true_size &&
+ ZEND_MM_FREE_BLOCK_SIZE(p) < best_size) {
+ best_size = ZEND_MM_FREE_BLOCK_SIZE(p);
+ best_fit = p;
+ }
+ if ((m & (ZEND_MM_LONG_CONST(1) << (ZEND_MM_NUM_BUCKETS-1))) == 0) {
+ if (p->child[1]) {
+ rst = p->child[1];
+ }
+ if (p->child[0]) {
+ p = p->child[0];
+ } else {
+ break;
+ }
+ } else if (p->child[1]) {
+ p = p->child[1];
+ } else {
+ break;
+ }
+ }
+
+ for (p = rst; p; p = p->child[p->child[0] != NULL]) {
+ if (UNEXPECTED(ZEND_MM_FREE_BLOCK_SIZE(p) == true_size)) {
+ return p->next_free_block;
+ } else if (ZEND_MM_FREE_BLOCK_SIZE(p) > true_size &&
+ ZEND_MM_FREE_BLOCK_SIZE(p) < best_size) {
+ best_size = ZEND_MM_FREE_BLOCK_SIZE(p);
+ best_fit = p;
+ }
+ }
+
+ if (best_fit) {
+ return best_fit->next_free_block;
+ }
+ bitmap = bitmap >> 1;
+ if (!bitmap) {
+ return NULL;
+ }
+ index++;
+ }
+
+ /* Search for smallest "large" free block */
+ best_fit = p = heap->large_free_buckets[index + zend_mm_low_bit(bitmap)];
+ while ((p = p->child[p->child[0] != NULL])) {
+ if (ZEND_MM_FREE_BLOCK_SIZE(p) < ZEND_MM_FREE_BLOCK_SIZE(best_fit)) {
+ best_fit = p;
+ }
+ }
+ return best_fit->next_free_block;
+}
static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
- size_t true_size, best_size = 0x7fffffff;
- zend_mm_free_block *p, *end, *best_fit = NULL;
-
- true_size = ZEND_MM_TRUE_SIZE(size);
+ zend_mm_free_block *best_fit;
+ size_t true_size = ZEND_MM_TRUE_SIZE(size);
+ size_t block_size;
+ size_t remaining_size;
+ size_t segment_size;
+ zend_mm_segment *segment;
- if (ZEND_MM_SMALL_SIZE(true_size)) {
+ if (EXPECTED(ZEND_MM_SMALL_SIZE(true_size))) {
size_t index = ZEND_MM_BUCKET_INDEX(true_size);
- unsigned int bitmap;
+ size_t bitmap;
+ if (UNEXPECTED(true_size < size)) {
+ goto out_of_memory;
+ }
#if ZEND_MM_CACHE
- if (heap->cache[index]) {
+ if (EXPECTED(heap->cache[index] != NULL)) {
/* Get block from cache */
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[index].count--;
+ heap->cache_stat[index].hit++;
+#endif
best_fit = heap->cache[index];
heap->cache[index] = best_fit->prev_free_block;
heap->cached -= true_size;
-#if ZEND_DEBUG
ZEND_MM_CHECK_MAGIC(best_fit, MEM_BLOCK_CACHED);
- ZEND_MM_SET_MAGIC(best_fit, MEM_BLOCK_VALID);
- ((zend_mm_block*)best_fit)->debug.size = size;
- ((zend_mm_block*)best_fit)->debug.filename = __zend_filename;
- ((zend_mm_block*)best_fit)->debug.lineno = __zend_lineno;
- ((zend_mm_block*)best_fit)->debug.orig_filename = __zend_orig_filename;
- ((zend_mm_block*)best_fit)->debug.orig_lineno = __zend_orig_lineno;
- ZEND_MM_SET_END_MAGIC(best_fit);
-#endif
+ ZEND_MM_SET_DEBUG_INFO(best_fit, size, 1, 0);
return ZEND_MM_DATA_OF(best_fit);
- }
+ }
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[index].miss++;
+#endif
#endif
bitmap = heap->free_bitmap >> index;
if (bitmap) {
/* Found some "small" free block that can be used */
- if (bitmap & 1) {
- /* Found "small" free block of exactly the same size */
- best_fit = heap->free_buckets[index].next_free_block;
- goto zend_mm_finished_searching_for_block;
- } else {
- /* Search for bigger "small" block */
- static const int offset[16] = {4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};
- int n;
-
- /* Unrolled loop that search for best "small" block */
- do {
- n = offset[bitmap & 15];
- bitmap >>= 4;
- index += n;
- } while (n == 4);
-
- best_fit = heap->free_buckets[index].next_free_block;
- goto zend_mm_finished_searching_for_block;
- }
- }
- }
-
- end = &heap->free_buckets[0];
- for (p = end->next_free_block; p != end; p = p->next_free_block) {
- size_t s = ZEND_MM_FREE_BLOCK_SIZE(p);
- if (s > true_size) {
- if (s < best_size) { /* better fit */
- best_fit = p;
- best_size = s;
- }
- } else if (s == true_size) {
- /* Found "big" free block of exactly the same size */
- best_fit = p;
+ index += zend_mm_low_bit(bitmap);
+ best_fit = heap->free_buckets[index*2];
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[ZEND_MM_NUM_BUCKETS].hit++;
+#endif
goto zend_mm_finished_searching_for_block;
}
}
- if (best_fit) {
-zend_mm_finished_searching_for_block:
- /* remove from free list */
- HANDLE_BLOCK_INTERRUPTIONS();
-#if ZEND_DEBUG
- ZEND_MM_CHECK_MAGIC(best_fit, MEM_BLOCK_FREED);
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[ZEND_MM_NUM_BUCKETS].miss++;
#endif
- zend_mm_remove_from_free_list(heap, best_fit);
-
- {
- size_t block_size = ZEND_MM_FREE_BLOCK_SIZE(best_fit);
- size_t remaining_size = block_size - true_size;
- if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
- ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, block_size);
- } else {
- zend_mm_free_block *new_free_block;
+ best_fit = zend_mm_search_large_block(heap, true_size);
- /* prepare new free block */
- ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, true_size);
- new_free_block = (zend_mm_free_block *) ZEND_MM_BLOCK_AT(best_fit, true_size);
- ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size);
+ if (!best_fit && heap->real_size >= heap->limit - heap->block_size) {
+ zend_mm_free_block *p = heap->rest_buckets[0];
+ size_t best_size = -1;
- /* add the new free block to the free list */
- zend_mm_add_to_free_list(heap, new_free_block);
+ while (p != ZEND_MM_REST_BUCKET(heap)) {
+ if (UNEXPECTED(ZEND_MM_FREE_BLOCK_SIZE(p) == true_size)) {
+ best_fit = p;
+ goto zend_mm_finished_searching_for_block;
+ } else if (ZEND_MM_FREE_BLOCK_SIZE(p) > true_size &&
+ ZEND_MM_FREE_BLOCK_SIZE(p) < best_size) {
+ best_size = ZEND_MM_FREE_BLOCK_SIZE(p);
+ best_fit = p;
}
+ p = p->prev_free_block;
}
- } else {
- size_t segment_size;
- size_t block_size;
- size_t remaining_size;
- zend_mm_segment *segment;
+ }
- if (true_size + ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE > heap->block_size) {
+ if (!best_fit) {
+ if (true_size > heap->block_size - (ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE)) {
/* Make sure we add a memory block which is big enough,
segment must have header "size" and trailer "guard" block */
segment_size = true_size + ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE;
- segment_size = ((segment_size + (heap->block_size-1)) / heap->block_size) * heap->block_size;
+ segment_size = (segment_size + (heap->block_size-1)) & ~(heap->block_size-1);
} else {
segment_size = heap->block_size;
}
+ HANDLE_BLOCK_INTERRUPTIONS();
-#if MEMORY_LIMIT
- if (heap->real_size + segment_size > heap->limit) {
+ if (segment_size < true_size ||
+ heap->real_size + segment_size > heap->limit) {
/* Memory limit overflow */
+#if ZEND_MM_CACHE
+ zend_mm_free_cache(heap);
+#endif
+ HANDLE_UNBLOCK_INTERRUPTIONS();
#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Allowed memory size of %d bytes exhausted at %s:%d (tried to allocate %d bytes)", heap->limit, __zend_filename, __zend_lineno, size);
+ zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted at %s:%d (tried to allocate %ld bytes)", heap->limit, __zend_filename, __zend_lineno, size);
#else
- zend_mm_safe_error(heap, "Allowed memory size of %d bytes exhausted (tried to allocate %d bytes)", heap->limit, size);
+ zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted (tried to allocate %ld bytes)", heap->limit, size);
#endif
}
-#endif
-
- HANDLE_BLOCK_INTERRUPTIONS();
segment = (zend_mm_segment *) ZEND_MM_STORAGE_ALLOC(segment_size);
@@ -1207,20 +1810,19 @@ zend_mm_finished_searching_for_block:
zend_mm_free_cache(heap);
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
+out_of_memory:
#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Out of memory (allocated %d) at %s:%d (tried to allocate %d bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
+ zend_mm_safe_error(heap, "Out of memory (allocated %ld) at %s:%d (tried to allocate %ld bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
#else
- zend_mm_safe_error(heap, "Out of memory (allocated %d) (tried to allocate %d bytes)", heap->real_size, size);
+ zend_mm_safe_error(heap, "Out of memory (allocated %ld) (tried to allocate %ld bytes)", heap->real_size, size);
#endif
return NULL;
}
heap->real_size += segment_size;
-#if MEMORY_LIMIT
if (heap->real_size > heap->real_peak) {
heap->real_peak = heap->real_size;
}
-#endif
segment->size = segment_size;
segment->next_segment = heap->segments_list;
@@ -1230,44 +1832,44 @@ zend_mm_finished_searching_for_block:
ZEND_MM_MARK_FIRST_BLOCK(best_fit);
block_size = segment_size - ZEND_MM_ALIGNED_SEGMENT_SIZE - ZEND_MM_ALIGNED_HEADER_SIZE;
- remaining_size = block_size - true_size;
ZEND_MM_LAST_BLOCK(ZEND_MM_BLOCK_AT(best_fit, block_size));
- if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
- ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, block_size);
- } else {
- zend_mm_free_block *new_free_block;
+ } else {
+zend_mm_finished_searching_for_block:
+ /* remove from free list */
+ HANDLE_BLOCK_INTERRUPTIONS();
+ ZEND_MM_CHECK_MAGIC(best_fit, MEM_BLOCK_FREED);
+ ZEND_MM_CHECK_COOKIE(best_fit);
+ ZEND_MM_CHECK_BLOCK_LINKAGE(best_fit);
+ zend_mm_remove_from_free_list(heap, best_fit);
- /* prepare new free block */
- ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, true_size);
- new_free_block = (zend_mm_free_block *) ZEND_MM_BLOCK_AT(best_fit, true_size);
- ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size);
+ block_size = ZEND_MM_FREE_BLOCK_SIZE(best_fit);
+ }
- /* add the new free block to the free list */
- zend_mm_add_to_free_list(heap, new_free_block);
- }
+ remaining_size = block_size - true_size;
+
+ if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
+ true_size = block_size;
+ ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, true_size);
+ } else {
+ zend_mm_free_block *new_free_block;
+
+ /* prepare new free block */
+ ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, true_size);
+ new_free_block = (zend_mm_free_block *) ZEND_MM_BLOCK_AT(best_fit, true_size);
+ ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size);
+
+ /* add the new free block to the free list */
+ zend_mm_add_to_free_list(heap, new_free_block);
}
-#if ZEND_DEBUG
- ZEND_MM_SET_MAGIC(best_fit, MEM_BLOCK_VALID);
- ((zend_mm_block*)best_fit)->debug.size = size;
- ((zend_mm_block*)best_fit)->debug.filename = __zend_filename;
- ((zend_mm_block*)best_fit)->debug.lineno = __zend_lineno;
- ((zend_mm_block*)best_fit)->debug.orig_filename = __zend_orig_filename;
- ((zend_mm_block*)best_fit)->debug.orig_lineno = __zend_orig_lineno;
-# ifdef ZTS
- ((zend_mm_block*)best_fit)->thread_id = tsrm_thread_id();
-# endif
- ZEND_MM_SET_END_MAGIC(best_fit);
-#endif
+ ZEND_MM_SET_DEBUG_INFO(best_fit, size, 1, 1);
-#if MEMORY_LIMIT
heap->size += true_size;
if (heap->peak < heap->size) {
heap->peak = heap->size;
}
-#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
@@ -1278,21 +1880,23 @@ zend_mm_finished_searching_for_block:
static void _zend_mm_free_int(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mm_block *mm_block;
- zend_mm_block *prev_block, *next_block;
+ zend_mm_block *next_block;
size_t size;
if (!ZEND_MM_VALID_PTR(p)) {
return;
}
+
mm_block = ZEND_MM_HEADER_OF(p);
size = ZEND_MM_BLOCK_SIZE(mm_block);
+ ZEND_MM_CHECK_PROTECTION(mm_block);
-#if ZEND_DEBUG
+#if ZEND_DEBUG || ZEND_MM_HEAP_PROTECTION
memset(ZEND_MM_DATA_OF(mm_block), 0x5a, mm_block->debug.size);
#endif
#if ZEND_MM_CACHE
- if (ZEND_MM_SMALL_SIZE(size) && heap->cached < ZEND_MM_CACHE_SIZE) {
+ if (EXPECTED(ZEND_MM_SMALL_SIZE(size)) && EXPECTED(heap->cached < ZEND_MM_CACHE_SIZE)) {
size_t index = ZEND_MM_BUCKET_INDEX(size);
zend_mm_free_block **cache = &heap->cache[index];
@@ -1300,70 +1904,34 @@ static void _zend_mm_free_int(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND
*cache = (zend_mm_free_block*)mm_block;
heap->cached += size;
ZEND_MM_SET_MAGIC(mm_block, MEM_BLOCK_CACHED);
+#if ZEND_MM_CACHE_STAT
+ if (++heap->cache_stat[index].count > heap->cache_stat[index].max_count) {
+ heap->cache_stat[index].max_count = heap->cache_stat[index].count;
+ }
+#endif
return;
}
#endif
HANDLE_BLOCK_INTERRUPTIONS();
-#if MEMORY_LIMIT
heap->size -= size;
-#endif
+ next_block = ZEND_MM_BLOCK_AT(mm_block, size);
+ if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
+ zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
+ size += ZEND_MM_FREE_BLOCK_SIZE(next_block);
+ }
if (ZEND_MM_PREV_BLOCK_IS_FREE(mm_block)) {
- next_block = ZEND_MM_NEXT_BLOCK(mm_block);
- if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
- /* merge with previous and next block */
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
- prev_block=ZEND_MM_PREV_BLOCK(mm_block);
- if (ZEND_MM_SMALL_SIZE(ZEND_MM_FREE_BLOCK_SIZE(prev_block))) {
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
- size += ZEND_MM_FREE_BLOCK_SIZE(prev_block) + ZEND_MM_FREE_BLOCK_SIZE(next_block);
- mm_block = prev_block;
- } else {
- ZEND_MM_BLOCK(prev_block, ZEND_MM_FREE_BLOCK, size + ZEND_MM_FREE_BLOCK_SIZE(prev_block) + ZEND_MM_FREE_BLOCK_SIZE(next_block));
- if (ZEND_MM_IS_FIRST_BLOCK(prev_block) &&
- ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_NEXT_BLOCK(prev_block))) {
- mm_block = prev_block;
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block);
- goto free_segment;
- }
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return;
- }
- } else {
- /* merge with previous block */
- prev_block=ZEND_MM_PREV_BLOCK(mm_block);
- if (ZEND_MM_SMALL_SIZE(ZEND_MM_FREE_BLOCK_SIZE(prev_block))) {
- size += ZEND_MM_FREE_BLOCK_SIZE(prev_block);
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
- mm_block = prev_block;
- } else {
- ZEND_MM_BLOCK(prev_block, ZEND_MM_FREE_BLOCK, size + ZEND_MM_FREE_BLOCK_SIZE(prev_block));
- if (ZEND_MM_IS_FIRST_BLOCK(prev_block) &&
- ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_NEXT_BLOCK(prev_block))) {
- mm_block = prev_block;
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block);
- goto free_segment;
- }
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return;
- }
- }
- } else {
- next_block = ZEND_MM_NEXT_BLOCK(mm_block);
- if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
- /* merge with the next block */
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
- size += ZEND_MM_FREE_BLOCK_SIZE(next_block);
- }
+ mm_block = ZEND_MM_PREV_BLOCK(mm_block);
+ zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block);
+ size += ZEND_MM_FREE_BLOCK_SIZE(mm_block);
}
- ZEND_MM_BLOCK(mm_block, ZEND_MM_FREE_BLOCK, size);
if (ZEND_MM_IS_FIRST_BLOCK(mm_block) &&
- ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_NEXT_BLOCK(mm_block))) {
-free_segment:
+ ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_BLOCK_AT(mm_block, size))) {
zend_mm_del_segment(heap, (zend_mm_segment *) ((char *)mm_block - ZEND_MM_ALIGNED_SEGMENT_SIZE));
} else {
+ ZEND_MM_BLOCK(mm_block, ZEND_MM_FREE_BLOCK, size);
zend_mm_add_to_free_list(heap, (zend_mm_free_block *) mm_block);
}
HANDLE_UNBLOCK_INTERRUPTIONS();
@@ -1374,29 +1942,29 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_
zend_mm_block *mm_block = ZEND_MM_HEADER_OF(p);
zend_mm_block *next_block;
size_t true_size;
+ size_t orig_size;
void *ptr;
- if (!p || !ZEND_MM_VALID_PTR(p)) {
+ if (UNEXPECTED(!p) || !ZEND_MM_VALID_PTR(p)) {
return _zend_mm_alloc_int(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
mm_block = ZEND_MM_HEADER_OF(p);
true_size = ZEND_MM_TRUE_SIZE(size);
+ orig_size = ZEND_MM_BLOCK_SIZE(mm_block);
+ ZEND_MM_CHECK_PROTECTION(mm_block);
-#if MEMORY_LIMIT
- heap->size = heap->size + true_size - ZEND_MM_BLOCK_SIZE(mm_block);
- if (heap->peak < heap->size) {
- heap->peak = heap->size;
+ if (UNEXPECTED(true_size < size)) {
+ goto out_of_memory;
}
-#endif
-
- if (true_size <= ZEND_MM_BLOCK_SIZE(mm_block)) {
- size_t remaining_size = ZEND_MM_BLOCK_SIZE(mm_block) - true_size;
+
+ if (true_size <= orig_size) {
+ size_t remaining_size = orig_size - true_size;
if (remaining_size >= ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
zend_mm_free_block *new_free_block;
HANDLE_BLOCK_INTERRUPTIONS();
- next_block = ZEND_MM_NEXT_BLOCK(mm_block);
+ next_block = ZEND_MM_BLOCK_AT(mm_block, orig_size);
if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
remaining_size += ZEND_MM_FREE_BLOCK_SIZE(next_block);
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
@@ -1410,31 +1978,72 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_
/* add the new free block to the free list */
zend_mm_add_to_free_list(heap, new_free_block);
+ heap->size += (true_size - orig_size);
HANDLE_UNBLOCK_INTERRUPTIONS();
}
-#if ZEND_DEBUG
- mm_block->debug.size = size;
- mm_block->debug.filename = __zend_filename;
- mm_block->debug.lineno = __zend_lineno;
- mm_block->debug.orig_filename = __zend_orig_filename;
- mm_block->debug.orig_lineno = __zend_orig_lineno;
- ZEND_MM_SET_END_MAGIC(mm_block);
-#endif
+ ZEND_MM_SET_DEBUG_INFO(mm_block, size, 0, 0);
return p;
}
- next_block = ZEND_MM_NEXT_BLOCK(mm_block);
+#if ZEND_MM_CACHE
+ if (ZEND_MM_SMALL_SIZE(true_size)) {
+ size_t index = ZEND_MM_BUCKET_INDEX(true_size);
+
+ if (heap->cache[index] != NULL) {
+ zend_mm_free_block *best_fit;
+ zend_mm_free_block **cache;
+
+#if ZEND_MM_CACHE_STAT
+ heap->cache_stat[index].count--;
+ heap->cache_stat[index].hit++;
+#endif
+ best_fit = heap->cache[index];
+ heap->cache[index] = best_fit->prev_free_block;
+ ZEND_MM_CHECK_MAGIC(best_fit, MEM_BLOCK_CACHED);
+ ZEND_MM_SET_DEBUG_INFO(best_fit, size, 1, 0);
+
+ ptr = ZEND_MM_DATA_OF(best_fit);
+
+#if ZEND_DEBUG || ZEND_MM_HEAP_PROTECTION
+ memcpy(ptr, p, mm_block->debug.size);
+#else
+ memcpy(ptr, p, orig_size - ZEND_MM_ALIGNED_HEADER_SIZE);
+#endif
+
+ heap->cached -= true_size - orig_size;
+
+ index = ZEND_MM_BUCKET_INDEX(orig_size);
+ cache = &heap->cache[index];
+
+ ((zend_mm_free_block*)mm_block)->prev_free_block = *cache;
+ *cache = (zend_mm_free_block*)mm_block;
+ ZEND_MM_SET_MAGIC(mm_block, MEM_BLOCK_CACHED);
+#if ZEND_MM_CACHE_STAT
+ if (++heap->cache_stat[index].count > heap->cache_stat[index].max_count) {
+ heap->cache_stat[index].max_count = heap->cache_stat[index].count;
+ }
+#endif
+
+ return ptr;
+ }
+ }
+#endif
+
+ next_block = ZEND_MM_BLOCK_AT(mm_block, orig_size);
if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
- if (ZEND_MM_BLOCK_SIZE(mm_block) + ZEND_MM_FREE_BLOCK_SIZE(next_block) >= true_size) {
- size_t block_size = ZEND_MM_BLOCK_SIZE(mm_block) + ZEND_MM_FREE_BLOCK_SIZE(next_block);
+ ZEND_MM_CHECK_COOKIE(next_block);
+ ZEND_MM_CHECK_BLOCK_LINKAGE(next_block);
+ if (orig_size + ZEND_MM_FREE_BLOCK_SIZE(next_block) >= true_size) {
+ size_t block_size = orig_size + ZEND_MM_FREE_BLOCK_SIZE(next_block);
size_t remaining_size = block_size - true_size;
HANDLE_BLOCK_INTERRUPTIONS();
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
- ZEND_MM_BLOCK(mm_block, ZEND_MM_USED_BLOCK, block_size);
+ true_size = block_size;
+ ZEND_MM_BLOCK(mm_block, ZEND_MM_USED_BLOCK, true_size);
} else {
zend_mm_free_block *new_free_block;
@@ -1444,20 +2053,22 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_
ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size);
/* add the new free block to the free list */
- zend_mm_add_to_free_list(heap, new_free_block);
+ if (ZEND_MM_IS_FIRST_BLOCK(mm_block) &&
+ ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_BLOCK_AT(new_free_block, remaining_size))) {
+ zend_mm_add_to_rest_list(heap, new_free_block);
+ } else {
+ zend_mm_add_to_free_list(heap, new_free_block);
+ }
+ }
+ ZEND_MM_SET_DEBUG_INFO(mm_block, size, 0, 0);
+ heap->size = heap->size + true_size - orig_size;
+ if (heap->peak < heap->size) {
+ heap->peak = heap->size;
}
-#if ZEND_DEBUG
- mm_block->debug.size = size;
- mm_block->debug.filename = __zend_filename;
- mm_block->debug.lineno = __zend_lineno;
- mm_block->debug.orig_filename = __zend_orig_filename;
- mm_block->debug.orig_lineno = __zend_orig_lineno;
- ZEND_MM_SET_END_MAGIC(mm_block);
-#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return p;
} else if (ZEND_MM_IS_FIRST_BLOCK(mm_block) &&
- ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_NEXT_BLOCK(next_block))) {
+ ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_BLOCK_AT(next_block, ZEND_MM_FREE_BLOCK_SIZE(next_block)))) {
HANDLE_BLOCK_INTERRUPTIONS();
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
goto realloc_segment;
@@ -1472,57 +2083,58 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_
HANDLE_BLOCK_INTERRUPTIONS();
realloc_segment:
/* segment size, size of block and size of guard block */
- if (true_size+ZEND_MM_ALIGNED_SEGMENT_SIZE+ZEND_MM_ALIGNED_HEADER_SIZE > heap->block_size) {
+ if (true_size > heap->block_size - (ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE)) {
segment_size = true_size+ZEND_MM_ALIGNED_SEGMENT_SIZE+ZEND_MM_ALIGNED_HEADER_SIZE;
- segment_size = ((segment_size + (heap->block_size-1)) / heap->block_size) * heap->block_size;
+ segment_size = (segment_size + (heap->block_size-1)) & ~(heap->block_size-1);
} else {
segment_size = heap->block_size;
}
segment_copy = (zend_mm_segment *) ((char *)mm_block - ZEND_MM_ALIGNED_SEGMENT_SIZE);
-#if MEMORY_LIMIT
- if (heap->real_size + segment_size - segment_copy->size > heap->limit) {
+ if (segment_size < true_size ||
+ heap->real_size + segment_size - segment_copy->size > heap->limit) {
+ if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
+ zend_mm_add_to_free_list(heap, (zend_mm_free_block *) next_block);
+ }
+#if ZEND_MM_CACHE
+ zend_mm_free_cache(heap);
+#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Allowed memory size of %d bytes exhausted at %s:%d (tried to allocate %d bytes)", heap->limit, __zend_filename, __zend_lineno, size);
+ zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted at %s:%d (tried to allocate %ld bytes)", heap->limit, __zend_filename, __zend_lineno, size);
#else
- zend_mm_safe_error(heap, "Allowed memory size of %d bytes exhausted (tried to allocate %d bytes)", heap->limit, size);
+ zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted (tried to allocate %ld bytes)", heap->limit, size);
#endif
return NULL;
}
-#endif
+
segment = ZEND_MM_STORAGE_REALLOC(segment_copy, segment_size);
if (!segment) {
+#if ZEND_MM_CACHE
+ zend_mm_free_cache(heap);
+#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
+out_of_memory:
#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Out of memory (allocated %d) at %s:%d (tried to allocate %d bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
+ zend_mm_safe_error(heap, "Out of memory (allocated %ld) at %s:%d (tried to allocate %ld bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
#else
- zend_mm_safe_error(heap, "Out of memory (allocated %d) (tried to allocate %d bytes)", heap->real_size, size);
+ zend_mm_safe_error(heap, "Out of memory (allocated %ld) (tried to allocate %ld bytes)", heap->real_size, size);
#endif
return NULL;
}
heap->real_size += segment_size - segment->size;
-#if MEMORY_LIMIT
if (heap->real_size > heap->real_peak) {
heap->real_peak = heap->real_size;
}
-#endif
+
segment->size = segment_size;
if (segment != segment_copy) {
- if (heap->segments_list == segment_copy) {
- heap->segments_list = segment;
- } else {
- zend_mm_segment *seg = heap->segments_list;
-
- while (seg) {
- if (seg->next_segment == segment_copy) {
- seg->next_segment = segment;
- break;
- }
- seg = seg->next_segment;
- }
+ zend_mm_segment **seg = &heap->segments_list;
+ while (*seg != segment_copy) {
+ seg = &(*seg)->next_segment;
}
+ *seg = segment;
mm_block = (zend_mm_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
ZEND_MM_MARK_FIRST_BLOCK(mm_block);
}
@@ -1534,7 +2146,8 @@ realloc_segment:
ZEND_MM_LAST_BLOCK(ZEND_MM_BLOCK_AT(mm_block, block_size));
if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) {
- ZEND_MM_BLOCK(mm_block, ZEND_MM_USED_BLOCK, block_size);
+ true_size = block_size;
+ ZEND_MM_BLOCK(mm_block, ZEND_MM_USED_BLOCK, true_size);
} else {
zend_mm_free_block *new_free_block;
@@ -1544,30 +2157,25 @@ realloc_segment:
ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size);
/* add the new free block to the free list */
- zend_mm_add_to_free_list(heap, new_free_block);
+ zend_mm_add_to_rest_list(heap, new_free_block);
+ }
+
+ ZEND_MM_SET_DEBUG_INFO(mm_block, size, 1, 1);
+
+ heap->size = heap->size + true_size - orig_size;
+ if (heap->peak < heap->size) {
+ heap->peak = heap->size;
}
-#if ZEND_DEBUG
- ZEND_MM_SET_MAGIC(mm_block, MEM_BLOCK_VALID);
- mm_block->debug.size = size;
- mm_block->debug.filename = __zend_filename;
- mm_block->debug.lineno = __zend_lineno;
- mm_block->debug.orig_filename = __zend_orig_filename;
- mm_block->debug.orig_lineno = __zend_orig_lineno;
-# ifdef ZTS
- mm_block->thread_id = tsrm_thread_id();
-# endif
- ZEND_MM_SET_END_MAGIC(mm_block);
-#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return ZEND_MM_DATA_OF(mm_block);
}
ptr = _zend_mm_alloc_int(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
-#if ZEND_DEBUG
+#if ZEND_DEBUG || ZEND_MM_HEAP_PROTECTION
memcpy(ptr, p, mm_block->debug.size);
#else
- memcpy(ptr, p, ZEND_MM_BLOCK_SIZE(mm_block) - ZEND_MM_ALIGNED_HEADER_SIZE);
+ memcpy(ptr, p, orig_size - ZEND_MM_ALIGNED_HEADER_SIZE);
#endif
_zend_mm_free_int(heap, p ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
return ptr;
@@ -1596,7 +2204,8 @@ ZEND_API size_t _zend_mm_block_size(zend_mm_heap *heap, void *p ZEND_FILE_LINE_D
return 0;
}
mm_block = ZEND_MM_HEADER_OF(p);
-#if ZEND_DEBUG
+ ZEND_MM_CHECK_PROTECTION(mm_block);
+#if ZEND_DEBUG || ZEND_MM_HEAP_PROTECTION
return mm_block->debug.size;
#else
return ZEND_MM_BLOCK_SIZE(mm_block);
@@ -1621,22 +2230,16 @@ static zend_alloc_globals alloc_globals;
ZEND_API int is_zend_mm(TSRMLS_D)
{
-#if ZEND_USE_MALLOC_MM
return AG(mm_heap)->use_zend_alloc;
-#else
- return 1;
-#endif
}
ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
TSRMLS_FETCH();
-#if ZEND_USE_MALLOC_MM
- if (!AG(mm_heap)->use_zend_alloc) {
+ if (UNEXPECTED(!AG(mm_heap)->use_zend_alloc)) {
return malloc(size);
}
-#endif
return _zend_mm_alloc_int(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
@@ -1644,12 +2247,10 @@ ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
TSRMLS_FETCH();
-#if ZEND_USE_MALLOC_MM
- if (!AG(mm_heap)->use_zend_alloc) {
+ if (UNEXPECTED(!AG(mm_heap)->use_zend_alloc)) {
free(ptr);
return;
}
-#endif
_zend_mm_free_int(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
@@ -1657,83 +2258,85 @@ ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LIN
{
TSRMLS_FETCH();
-#if ZEND_USE_MALLOC_MM
- if (!AG(mm_heap)->use_zend_alloc) {
+ if (UNEXPECTED(!AG(mm_heap)->use_zend_alloc)) {
return realloc(ptr, size);
}
-#endif
return _zend_mm_realloc_int(AG(mm_heap), ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
-#if ZEND_USE_MALLOC_MM
- if (!AG(mm_heap)->use_zend_alloc) {
+ if (UNEXPECTED(!AG(mm_heap)->use_zend_alloc)) {
return 0;
}
-#endif
return _zend_mm_block_size(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
-#include "zend_multiply.h"
+#if defined(__GNUC__) && defined(i386)
-ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
{
+ size_t res = nmemb;
+ unsigned long overflow ;
+
+ __asm__ ("mull %3\n\taddl %4,%0\n\tadcl $0,%1"
+ : "=a"(res), "=d" (overflow)
+ : "%0"(res),
+ "rm"(size),
+ "rm"(offset));
+
+ if (UNEXPECTED(overflow)) {
+ zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zd * %zd + %zd)", nmemb, size, offset);
+ return 0;
+ }
+ return res;
+}
- if (nmemb < LONG_MAX
- && size < LONG_MAX
- && offset < LONG_MAX
- && nmemb >= 0
- && size >= 0
- && offset >= 0) {
- long lval;
- double dval;
- int use_dval;
+#else
- ZEND_SIGNED_MULTIPLY_LONG(nmemb, size, lval, dval, use_dval);
+static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
+{
+ size_t res = nmemb * size + offset;
+ double _d = (double)nmemb * (double)size + (double)offset;
+ double _delta = (double)res - _d;
- if (!use_dval
- && lval < (long) (LONG_MAX - offset)) {
- return emalloc_rel(lval + offset);
- }
+ if (UNEXPECTED((_d + _delta ) != _d)) {
+ zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zd * %zd + %zd)", nmemb, size, offset);
+ return 0;
}
+ return res;
+}
+#endif
- zend_error(E_ERROR, "Possible integer overflow in memory allocation (%zd * %zd + %zd)", nmemb, size, offset);
- return 0;
+
+ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ return emalloc_rel(safe_address(nmemb, size, offset));
}
ZEND_API void *_safe_malloc(size_t nmemb, size_t size, size_t offset)
{
+ return pemalloc(safe_address(nmemb, size, offset), 1);
+}
- if (nmemb < LONG_MAX
- && size < LONG_MAX
- && offset < LONG_MAX
- && nmemb >= 0
- && size >= 0
- && offset >= 0) {
- long lval;
- double dval;
- int use_dval;
-
- ZEND_SIGNED_MULTIPLY_LONG(nmemb, size, lval, dval, use_dval);
-
- if (!use_dval
- && lval < (long) (LONG_MAX - offset)) {
- return pemalloc(lval + offset, 1);
- }
- }
+ZEND_API void *_safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ return erealloc_rel(ptr, safe_address(nmemb, size, offset));
+}
- zend_error(E_ERROR, "Possible integer overflow in memory allocation (%zd * %zd + %zd)", nmemb, size, offset);
- return 0;
+ZEND_API void *_safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset)
+{
+ return perealloc(ptr, safe_address(nmemb, size, offset), 1);
}
+
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *p;
p = _safe_emalloc(nmemb, size, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- if (!p) {
- return (void *) p;
+ if (UNEXPECTED(p == NULL)) {
+ return p;
}
memset(p, 0, size * nmemb);
return p;
@@ -1746,8 +2349,8 @@ ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
length = strlen(s)+1;
p = (char *) _emalloc(length ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- if (!p) {
- return (char *)NULL;
+ if (UNEXPECTED(p == NULL)) {
+ return p;
}
memcpy(p, s, length);
return p;
@@ -1758,8 +2361,8 @@ ZEND_API char *_estrndup(const char *s, uint length ZEND_FILE_LINE_DC ZEND_FILE_
char *p;
p = (char *) _emalloc(length+1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- if (!p) {
- return (char *)NULL;
+ if (UNEXPECTED(p == NULL)) {
+ return p;
}
memcpy(p, s, length);
p[length] = 0;
@@ -1772,8 +2375,8 @@ ZEND_API char *zend_strndup(const char *s, uint length)
char *p;
p = (char *) malloc(length+1);
- if (!p) {
- return (char *)NULL;
+ if (UNEXPECTED(p == NULL)) {
+ return p;
}
if (length) {
memcpy(p, s, length);
@@ -1783,16 +2386,13 @@ ZEND_API char *zend_strndup(const char *s, uint length)
}
-ZEND_API int zend_set_memory_limit(unsigned int memory_limit)
+ZEND_API int zend_set_memory_limit(size_t memory_limit)
{
-#if MEMORY_LIMIT
TSRMLS_FETCH();
- AG(mm_heap)->limit = memory_limit;
+ AG(mm_heap)->limit = (memory_limit >= AG(mm_heap)->block_size) ? memory_limit : AG(mm_heap)->block_size;
+
return SUCCESS;
-#else
- return FAILURE;
-#endif
}
ZEND_API size_t zend_memory_usage(int real_usage TSRMLS_DC)
@@ -1800,25 +2400,17 @@ ZEND_API size_t zend_memory_usage(int real_usage TSRMLS_DC)
if (real_usage) {
return AG(mm_heap)->real_size;
} else {
-#if MEMORY_LIMIT
return AG(mm_heap)->size;
-#else
- return AG(mm_heap)->real_size;
-#endif
}
}
ZEND_API size_t zend_memory_peak_usage(int real_usage TSRMLS_DC)
{
-#if MEMORY_LIMIT
if (real_usage) {
return AG(mm_heap)->real_peak;
} else {
return AG(mm_heap)->peak;
}
-#else
- return 0;
-#endif
}
ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC)
@@ -1828,15 +2420,13 @@ ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC)
static void alloc_globals_ctor(zend_alloc_globals *alloc_globals TSRMLS_DC)
{
+ char *tmp;
alloc_globals->mm_heap = zend_mm_startup();
-#if ZEND_USE_MALLOC_MM
- {
- char *tmp = getenv("USE_ZEND_ALLOC");
- if (tmp) {
- alloc_globals->mm_heap->use_zend_alloc = zend_atoi(tmp, 0);
- }
+
+ tmp = getenv("USE_ZEND_ALLOC");
+ if (tmp) {
+ alloc_globals->mm_heap->use_zend_alloc = zend_atoi(tmp, 0);
}
-#endif
}
#ifdef ZTS
@@ -1864,17 +2454,19 @@ ZEND_API zend_mm_heap *zend_mm_set_heap(zend_mm_heap *new_heap TSRMLS_DC)
return old_heap;
}
+ZEND_API zend_mm_storage *zend_mm_get_storage(zend_mm_heap *heap)
+{
+ return heap->storage;
+}
#if ZEND_DEBUG
ZEND_API int _mem_block_check(void *ptr, int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
TSRMLS_FETCH();
-#if ZEND_USE_MALLOC_MM
if (!AG(mm_heap)->use_zend_alloc) {
return 1;
}
-#endif
return zend_mm_check_ptr(AG(mm_heap), ptr, silent ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
@@ -1884,11 +2476,9 @@ ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_D
int errors;
TSRMLS_FETCH();
-#if ZEND_USE_MALLOC_MM
if (!AG(mm_heap)->use_zend_alloc) {
return;
}
-#endif
zend_debug_alloc_output("------------------------------------------------\n");
zend_debug_alloc_output("Full Memory Check at %s:%d\n" ZEND_FILE_LINE_RELAY_CC);
diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h
index 7bf25d38a..6225f7f6c 100644
--- a/Zend/zend_alloc.h
+++ b/Zend/zend_alloc.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_alloc.h,v 1.63.2.2.2.5 2006/10/12 06:46:51 dmitry Exp $ */
+/* $Id: zend_alloc.h,v 1.63.2.2.2.12 2007/03/20 06:46:48 dmitry Exp $ */
#ifndef ZEND_ALLOC_H
#define ZEND_ALLOC_H
@@ -46,6 +46,8 @@ ZEND_API void *_safe_malloc(size_t nmemb, size_t size, size_t offset) ZEND_ATTRI
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+ZEND_API void *_safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+ZEND_API void *_safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
@@ -56,6 +58,7 @@ ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_
#define efree(ptr) _efree((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define ecalloc(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
+#define safe_erealloc(ptr, nmemb, size, offset) _safe_erealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc_recoverable(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrndup(s, length) _estrndup((s), (length) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
@@ -68,30 +71,60 @@ ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_
#define ecalloc_rel(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_rel(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_recoverable_rel(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
+#define safe_erealloc_rel(ptr, nmemb, size, offset) _safe_erealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrdup_rel(s) _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define zend_mem_block_size_rel(ptr) _zend_mem_block_size((ptr) TSRMLS_CC ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
+inline static void * __zend_malloc(size_t len)
+{
+ void *tmp = malloc(len);
+ if (tmp) {
+ return tmp;
+ }
+ fprintf(stderr, "Out of memory\n");
+ exit(1);
+}
+
+inline static void * __zend_calloc(size_t nmemb, size_t len)
+{
+ void *tmp = _safe_malloc(nmemb, len, 0);
+ memset(tmp, 0, len);
+ return tmp;
+}
+
+inline static void * __zend_realloc(void *p, size_t len)
+{
+ p = realloc(p, len);
+ if (p) {
+ return p;
+ }
+ fprintf(stderr, "Out of memory\n");
+ exit(1);
+}
+
+
/* Selective persistent/non persistent allocation macros */
-#define pemalloc(size, persistent) ((persistent)?malloc(size):emalloc(size))
+#define pemalloc(size, persistent) ((persistent)?__zend_malloc(size):emalloc(size))
#define safe_pemalloc(nmemb, size, offset, persistent) ((persistent)?_safe_malloc(nmemb, size, offset):safe_emalloc(nmemb, size, offset))
#define pefree(ptr, persistent) ((persistent)?free(ptr):efree(ptr))
-#define pecalloc(nmemb, size, persistent) ((persistent)?calloc((nmemb), (size)):ecalloc((nmemb), (size)))
-#define perealloc(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc((ptr), (size)))
-#define perealloc_recoverable(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable((ptr), (size)))
+#define pecalloc(nmemb, size, persistent) ((persistent)?__zend_calloc((nmemb), (size)):ecalloc((nmemb), (size)))
+#define perealloc(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc((ptr), (size)))
+#define safe_perealloc(ptr, nmemb, size, offset, persistent) ((persistent)?_safe_realloc((ptr), (nmemb), (size), (offset)):safe_erealloc((ptr), (nmemb), (size), (offset)))
+#define perealloc_recoverable(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc_recoverable((ptr), (size)))
#define pestrdup(s, persistent) ((persistent)?strdup(s):estrdup(s))
-#define pemalloc_rel(size, persistent) ((persistent)?malloc(size):emalloc_rel(size))
+#define pemalloc_rel(size, persistent) ((persistent)?__zend_malloc(size):emalloc_rel(size))
#define pefree_rel(ptr, persistent) ((persistent)?free(ptr):efree_rel(ptr))
-#define pecalloc_rel(nmemb, size, persistent) ((persistent)?calloc((nmemb), (size)):ecalloc_rel((nmemb), (size)))
-#define perealloc_rel(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_rel((ptr), (size)))
-#define perealloc_recoverable_rel(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable_rel((ptr), (size)))
+#define pecalloc_rel(nmemb, size, persistent) ((persistent)?__zend_calloc((nmemb), (size)):ecalloc_rel((nmemb), (size)))
+#define perealloc_rel(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc_rel((ptr), (size)))
+#define perealloc_recoverable_rel(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc_recoverable_rel((ptr), (size)))
#define pestrdup_rel(s, persistent) ((persistent)?strdup(s):estrdup_rel(s))
#define safe_estrdup(ptr) ((ptr)?(estrdup(ptr)):STR_EMPTY_ALLOC())
#define safe_estrndup(ptr, len) ((ptr)?(estrndup((ptr), (len))):STR_EMPTY_ALLOC())
-ZEND_API int zend_set_memory_limit(unsigned int memory_limit);
+ZEND_API int zend_set_memory_limit(size_t memory_limit);
ZEND_API void start_memory_manager(TSRMLS_D);
ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC);
@@ -195,8 +228,9 @@ struct _zend_mm_storage {
void *data;
};
-ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, size_t block_size, void *params);
+ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, size_t block_size, size_t reserve_size, int internal, void *params);
ZEND_API zend_mm_heap *zend_mm_set_heap(zend_mm_heap *new_heap TSRMLS_DC);
+ZEND_API zend_mm_storage *zend_mm_get_storage(zend_mm_heap *heap);
#endif
diff --git a/Zend/zend_arg_defs.c b/Zend/zend_arg_defs.c
index bec328ad8..090490f9b 100644
--- a/Zend/zend_arg_defs.c
+++ b/Zend/zend_arg_defs.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_arg_defs.c,v 1.2.2.2.2.1 2006/05/09 23:53:23 helly Exp $ */
+/* $Id: zend_arg_defs.c,v 1.2.2.2.2.2 2007/01/01 09:35:46 sebastian Exp $ */
ZEND_BEGIN_ARG_INFO(first_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(1)
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index dc744221c..869a4d59e 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,13 +17,14 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.8 2006/09/26 07:55:09 dmitry Exp $ */
+/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.17 2007/04/16 08:09:54 dmitry Exp $ */
#include "zend.h"
#include "zend_API.h"
#include "zend_builtin_functions.h"
#include "zend_constants.h"
#include "zend_ini.h"
+#include "zend_exceptions.h"
#undef ZEND_TEST_EXCEPTIONS
@@ -171,14 +172,14 @@ ZEND_FUNCTION(func_num_args)
int arg_count;
p = EG(argument_stack).top_element-1-1;
- arg_count = (ulong) *p; /* this is the amount of arguments passed to func_num_args(); */
+ arg_count = (int)(zend_uintptr_t) *p; /* this is the amount of arguments passed to func_num_args(); */
p -= 1+arg_count;
if (*p) {
zend_error(E_ERROR, "func_num_args(): Can't be used as a function parameter");
}
--p;
if (p>=EG(argument_stack).elements) {
- RETURN_LONG((ulong) *p);
+ RETURN_LONG((long)(zend_uintptr_t) *p);
} else {
zend_error(E_WARNING, "func_num_args(): Called from the global scope - no function context");
RETURN_LONG(-1);
@@ -201,7 +202,7 @@ ZEND_FUNCTION(func_get_arg)
RETURN_FALSE;
}
convert_to_long_ex(z_requested_offset);
- requested_offset = (*z_requested_offset)->value.lval;
+ requested_offset = Z_LVAL_PP(z_requested_offset);
if (requested_offset < 0) {
zend_error(E_WARNING, "func_get_arg(): The argument number should be >= 0");
@@ -209,7 +210,7 @@ ZEND_FUNCTION(func_get_arg)
}
p = EG(argument_stack).top_element-1-1;
- arg_count = (ulong) *p; /* this is the amount of arguments passed to func_get_arg(); */
+ arg_count = (int)(zend_uintptr_t) *p; /* this is the amount of arguments passed to func_get_arg(); */
p -= 1+arg_count;
if (*p) {
zend_error(E_ERROR, "func_get_arg(): Can't be used as a function parameter");
@@ -219,7 +220,7 @@ ZEND_FUNCTION(func_get_arg)
zend_error(E_WARNING, "func_get_arg(): Called from the global scope - no function context");
RETURN_FALSE;
}
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
if (requested_offset>=arg_count) {
zend_error(E_WARNING, "func_get_arg(): Argument %ld not passed to function", requested_offset);
@@ -243,7 +244,7 @@ ZEND_FUNCTION(func_get_args)
int i;
p = EG(argument_stack).top_element-1-1;
- arg_count = (ulong) *p; /* this is the amount of arguments passed to func_get_args(); */
+ arg_count = (int)(zend_uintptr_t) *p; /* this is the amount of arguments passed to func_get_args(); */
p -= 1+arg_count;
if (*p) {
zend_error(E_ERROR, "func_get_args(): Can't be used as a function parameter");
@@ -254,7 +255,7 @@ ZEND_FUNCTION(func_get_args)
zend_error(E_WARNING, "func_get_args(): Called from the global scope - no function context");
RETURN_FALSE;
}
- arg_count = (ulong) *p;
+ arg_count = (int)(zend_uintptr_t) *p;
array_init(return_value);
@@ -281,7 +282,7 @@ ZEND_NAMED_FUNCTION(zend_if_strlen)
ZEND_WRONG_PARAM_COUNT();
}
convert_to_string_ex(str);
- RETVAL_LONG((*str)->value.str.len);
+ RETVAL_LONG(Z_STRLEN_PP(str));
}
/* }}} */
@@ -517,8 +518,8 @@ repeat:
zval_ptr_dtor(&val_free);
}
c.flags = case_sensitive; /* non persistent */
- c.name = zend_strndup((*var)->value.str.val, (*var)->value.str.len);
- c.name_len = (*var)->value.str.len+1;
+ c.name = zend_strndup(Z_STRVAL_PP(var), Z_STRLEN_PP(var));
+ c.name_len = Z_STRLEN_PP(var)+1;
c.module_number = PHP_USER_CONSTANT;
if (zend_register_constant(&c TSRMLS_CC) == SUCCESS) {
RETURN_TRUE;
@@ -541,7 +542,7 @@ ZEND_FUNCTION(defined)
}
convert_to_string_ex(var);
- if (zend_get_constant((*var)->value.str.val, (*var)->value.str.len, &c TSRMLS_CC)) {
+ if (zend_get_constant(Z_STRVAL_PP(var), Z_STRLEN_PP(var), &c TSRMLS_CC)) {
zval_dtor(&c);
RETURN_TRUE;
} else {
@@ -1085,9 +1086,9 @@ ZEND_FUNCTION(function_exists)
ZEND_WRONG_PARAM_COUNT();
}
convert_to_string_ex(function_name);
- lcname = zend_str_tolower_dup((*function_name)->value.str.val, (*function_name)->value.str.len);
+ lcname = zend_str_tolower_dup(Z_STRVAL_PP(function_name), Z_STRLEN_PP(function_name));
- retval = (zend_hash_find(EG(function_table), lcname, (*function_name)->value.str.len+1, (void **)&func) == SUCCESS);
+ retval = (zend_hash_find(EG(function_table), lcname, Z_STRLEN_PP(function_name)+1, (void **)&func) == SUCCESS);
efree(lcname);
@@ -1115,7 +1116,7 @@ ZEND_FUNCTION(leak)
if (ZEND_NUM_ARGS()>=1) {
if (zend_get_parameters_ex(1, &leak)==SUCCESS) {
convert_to_long_ex(leak);
- leakbytes = (*leak)->value.lval;
+ leakbytes = Z_LVAL_PP(leak);
}
}
@@ -1172,7 +1173,7 @@ ZEND_FUNCTION(trigger_error)
ZEND_WRONG_PARAM_COUNT();
}
convert_to_long_ex(z_error_type);
- error_type = (*z_error_type)->value.lval;
+ error_type = Z_LVAL_PP(z_error_type);
switch (error_type) {
case E_USER_ERROR:
case E_USER_WARNING:
@@ -1188,7 +1189,7 @@ ZEND_FUNCTION(trigger_error)
ZEND_WRONG_PARAM_COUNT();
}
convert_to_string_ex(z_error_message);
- zend_error(error_type, "%s", (*z_error_message)->value.str.val);
+ zend_error(error_type, "%s", Z_STRVAL_PP(z_error_message));
RETURN_TRUE;
}
/* }}} */
@@ -1416,11 +1417,16 @@ ZEND_FUNCTION(get_defined_functions)
zend_hash_apply_with_arguments(EG(function_table), (apply_func_args_t) copy_function_name, 2, internal, user);
if (zend_hash_add(Z_ARRVAL_P(return_value), "internal", sizeof("internal"), (void **)&internal, sizeof(zval *), NULL) == FAILURE) {
+ zval_ptr_dtor(&internal);
+ zval_ptr_dtor(&user);
+ zval_dtor(return_value);
zend_error(E_WARNING, "Cannot add internal functions to return value from get_defined_functions()");
RETURN_FALSE;
}
if (zend_hash_add(Z_ARRVAL_P(return_value), "user", sizeof("user"), (void **)&user, sizeof(zval *), NULL) == FAILURE) {
+ zval_ptr_dtor(&user);
+ zval_dtor(return_value);
zend_error(E_WARNING, "Cannot add user functions to return value from get_defined_functions()");
RETURN_FALSE;
}
@@ -1466,8 +1472,7 @@ ZEND_FUNCTION(create_function)
+2 /* for the curly braces */
+Z_STRLEN_PP(z_function_code);
- eval_code = (char *) emalloc(eval_code_length);
- sprintf(eval_code, "function " LAMBDA_TEMP_FUNCNAME "(%s){%s}", Z_STRVAL_PP(z_function_args), Z_STRVAL_PP(z_function_code));
+ zend_spprintf(&eval_code, 0, "function " LAMBDA_TEMP_FUNCNAME "(%s){%s}", Z_STRVAL_PP(z_function_args), Z_STRVAL_PP(z_function_code));
eval_name = zend_make_compiled_string_description("runtime-created function" TSRMLS_CC);
retval = zend_eval_string(eval_code, NULL, eval_name TSRMLS_CC);
@@ -1577,7 +1582,7 @@ ZEND_FUNCTION(get_loaded_extensions)
/* }}} */
-/* {{{ proto array get_defined_constants(void)
+/* {{{ proto array get_defined_constants([mixed categorize])
Return an array containing the names and values of all defined constants */
ZEND_FUNCTION(get_defined_constants)
{
@@ -1650,7 +1655,7 @@ static zval *debug_backtrace_get_args(void ***curpos TSRMLS_DC)
{
void **p = *curpos - 2;
zval *arg_array, **arg;
- int arg_count = (ulong) *p;
+ int arg_count = (int)(zend_uintptr_t) *p;
*curpos -= (arg_count+2);
@@ -1661,7 +1666,9 @@ static zval *debug_backtrace_get_args(void ***curpos TSRMLS_DC)
while (--arg_count >= 0) {
arg = (zval **) p++;
if (*arg) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(arg);
+ if (Z_TYPE_PP(arg) != IS_OBJECT) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(arg);
+ }
(*arg)->refcount++;
add_next_index_zval(arg_array, *arg);
} else {
@@ -1924,7 +1931,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
}
/* skip debug_backtrace() */
- if (skip_last--) {
+ if (skip_last-- && ptr) {
int arg_count = *((ulong*)(cur_arg_pos - 2));
cur_arg_pos -= (arg_count + 2);
frames_on_stack--;
diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h
index 073ed3e06..0a2222ab8 100644
--- a/Zend/zend_builtin_functions.h
+++ b/Zend/zend_builtin_functions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_builtin_functions.h,v 1.17.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_builtin_functions.h,v 1.17.2.2.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_BUILTIN_FUNCTIONS_H
#define ZEND_BUILTIN_FUNCTIONS_H
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index d7eb537e9..b928e2799 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.c,v 1.647.2.27.2.20 2006/10/20 02:44:02 iliaa Exp $ */
+/* $Id: zend_compile.c,v 1.647.2.27.2.37 2007/05/02 17:24:15 dmitry Exp $ */
#include <zend_language_parser.h>
#include "zend.h"
@@ -25,6 +25,7 @@
#include "zend_constants.h"
#include "zend_llist.h"
#include "zend_API.h"
+#include "zend_exceptions.h"
#ifdef ZEND_MULTIBYTE
#include "zend_multibyte.h"
@@ -83,14 +84,13 @@ static void build_runtime_defined_function_key(zval *result, char *name, int nam
/* NULL, name length, filename length, last accepting char position length */
result->value.str.len = 1+name_length+strlen(filename)+char_pos_len;
- result->value.str.val = (char *) emalloc(result->value.str.len+1);
#ifdef ZEND_MULTIBYTE
/* must be binary safe */
+ result->value.str.val = (char *) safe_emalloc(result->value.str.len, 1, 1);
result->value.str.val[0] = '\0';
- memcpy(result->value.str.val+1, name, name_length);
- sprintf(result->value.str.val+1+name_length, "%s%s", filename, char_pos_buf);
+ sprintf(result->value.str.val+1, "%s%s%s", name, filename, char_pos_buf);
#else
- sprintf(result->value.str.val, "%c%s%s%s", '\0', name, filename, char_pos_buf);
+ zend_spprintf(&result->value.str.val, 0, "%c%s%s%s", '\0', name, filename, char_pos_buf);
#endif /* ZEND_MULTIBYTE */
result->type = IS_STRING;
result->refcount = 1;
@@ -1067,6 +1067,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
int function_begin_line = function_token->u.opline_num;
zend_uint fn_flags;
char *lcname;
+ zend_bool orig_interactive;
if (is_method) {
if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
@@ -1086,11 +1087,14 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
function_token->u.op_array = CG(active_op_array);
lcname = zend_str_tolower_dup(name, name_len);
+ orig_interactive = CG(interactive);
+ CG(interactive) = 0;
init_op_array(&op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+ CG(interactive) = orig_interactive;
op_array.function_name = name;
op_array.return_reference = return_reference;
- op_array.fn_flags = fn_flags;
+ op_array.fn_flags |= fn_flags;
op_array.pass_rest_by_reference = 0;
op_array.scope = is_method?CG(active_class_entry):NULL;
@@ -1476,12 +1480,15 @@ void zend_do_begin_class_member_function_call(znode *class_name, znode *method_n
opline->op2 = *method_name;
if (opline->op2.op_type == IS_CONST) {
+ char *lcname = zend_str_tolower_dup(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant));
if ((sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == Z_STRLEN(opline->op2.u.constant) &&
- memcmp(Z_STRVAL(opline->op2.u.constant), ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == 0) {
+ memcmp(lcname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == 0) {
zval_dtor(&opline->op2.u.constant);
SET_UNUSED(opline->op2);
+ efree(lcname);
} else {
- zend_str_tolower(opline->op2.u.constant.value.str.val, opline->op2.u.constant.value.str.len);
+ efree(opline->op2.u.constant.value.str.val);
+ opline->op2.u.constant.value.str.val = lcname;
}
}
@@ -1535,11 +1542,10 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC)
if (original_op==ZEND_SEND_REF
&& !CG(allow_call_time_pass_reference)) {
zend_error(E_COMPILE_WARNING,
- "Call-time pass-by-reference has been deprecated - argument passed by value; "
+ "Call-time pass-by-reference has been deprecated; "
"If you would like to pass it by reference, modify the declaration of %s(). "
"If you would like to enable call-time pass-by-reference, you can set "
- "allow_call_time_pass_reference to true in your INI file. "
- "However, future versions may not support this any longer. ",
+ "allow_call_time_pass_reference to true in your INI file. ",
(function_ptr?function_ptr->common.function_name:"[runtime function name]"));
}
@@ -1686,17 +1692,13 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC)
if (expr) {
opline->op1 = *expr;
- } else {
- opline->op1.op_type = IS_CONST;
- INIT_ZVAL(opline->op1.u.constant);
- }
- if (do_end_vparse) {
- if (zend_is_function_or_method_call(expr)) {
+ if (do_end_vparse && zend_is_function_or_method_call(expr)) {
opline->extended_value = ZEND_RETURNS_FUNCTION;
- } else {
- opline->extended_value = 0;
}
+ } else {
+ opline->op1.op_type = IS_CONST;
+ INIT_ZVAL(opline->op1.u.constant);
}
SET_UNUSED(opline->op2);
@@ -1726,16 +1728,35 @@ void zend_do_first_catch(znode *open_parentheses TSRMLS_DC)
void zend_initialize_try_catch_element(znode *try_token TSRMLS_DC)
{
+ int jmp_op_number = get_next_op_number(CG(active_op_array));
+ zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ zend_llist jmp_list;
+ zend_llist *jmp_list_ptr;
+
+ opline->opcode = ZEND_JMP;
+ SET_UNUSED(opline->op1);
+ SET_UNUSED(opline->op2);
+ /* save for backpatching */
+
+ zend_llist_init(&jmp_list, sizeof(int), NULL, 0);
+ zend_stack_push(&CG(bp_stack), (void *) &jmp_list, sizeof(zend_llist));
+ zend_stack_top(&CG(bp_stack), (void **) &jmp_list_ptr);
+ zend_llist_add_element(jmp_list_ptr, &jmp_op_number);
+
zend_add_catch_element(try_token->u.opline_num, get_next_op_number(CG(active_op_array)) TSRMLS_CC);
}
void zend_do_mark_last_catch(znode *first_catch, znode *last_additional_catch TSRMLS_DC)
{
+ CG(active_op_array)->last--;
+ zend_do_if_end(TSRMLS_C);
if (last_additional_catch->u.opline_num == -1) {
CG(active_op_array)->opcodes[first_catch->u.opline_num].op1.u.EA.type = 1;
+ CG(active_op_array)->opcodes[first_catch->u.opline_num].extended_value = get_next_op_number(CG(active_op_array));
} else {
CG(active_op_array)->opcodes[last_additional_catch->u.opline_num].op1.u.EA.type = 1;
+ CG(active_op_array)->opcodes[last_additional_catch->u.opline_num].extended_value = get_next_op_number(CG(active_op_array));
}
DEC_BPC(CG(active_op_array));
}
@@ -1772,6 +1793,18 @@ void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var,
void zend_do_end_catch(znode *try_token TSRMLS_DC)
{
+ int jmp_op_number = get_next_op_number(CG(active_op_array));
+ zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ zend_llist *jmp_list_ptr;
+
+ opline->opcode = ZEND_JMP;
+ SET_UNUSED(opline->op1);
+ SET_UNUSED(opline->op2);
+ /* save for backpatching */
+
+ zend_stack_top(&CG(bp_stack), (void **) &jmp_list_ptr);
+ zend_llist_add_element(jmp_list_ptr, &jmp_op_number);
+
CG(active_op_array)->opcodes[try_token->u.opline_num].extended_value = get_next_op_number(CG(active_op_array));
}
@@ -2189,13 +2222,18 @@ ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, zend_class_entry
}
}
-
-static void inherit_static_prop(zval **p)
+static int inherit_static_prop(zval **p, int num_args, va_list args, zend_hash_key *key)
{
- (*p)->refcount++;
- (*p)->is_ref = 1;
-}
+ HashTable *target = va_arg(args, HashTable*);
+ if (!zend_hash_quick_exists(target, key->arKey, key->nKeyLength, key->h)) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(p);
+ if (zend_hash_quick_add(target, key->arKey, key->nKeyLength, key->h, p, sizeof(zval*), NULL) == SUCCESS) {
+ (*p)->refcount++;
+ }
+ }
+ return ZEND_HASH_APPLY_KEEP;
+}
ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC)
{
@@ -2216,9 +2254,9 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent
if (parent_ce->type != ce->type) {
/* User class extends internal class */
zend_update_class_constants(parent_ce TSRMLS_CC);
- zend_hash_merge(&ce->default_static_members, CE_STATIC_MEMBERS(parent_ce), (void (*)(void *)) inherit_static_prop, NULL, sizeof(zval *), 0);
+ zend_hash_apply_with_arguments(CE_STATIC_MEMBERS(parent_ce), (apply_func_args_t)inherit_static_prop, 1, &ce->default_static_members);
} else {
- zend_hash_merge(&ce->default_static_members, &parent_ce->default_static_members, (void (*)(void *)) inherit_static_prop, NULL, sizeof(zval *), 0);
+ zend_hash_apply_with_arguments(&parent_ce->default_static_members, (apply_func_args_t)inherit_static_prop, 1, &ce->default_static_members TSRMLS_CC);
}
zend_hash_merge_ex(&ce->properties_info, &parent_ce->properties_info, (copy_ctor_func_t) (ce->type & ZEND_INTERNAL_CLASS ? zend_duplicate_property_info_internal : zend_duplicate_property_info), sizeof(zend_property_info), (merge_checker_func_t) do_inherit_property_access_check, ce);
@@ -2735,19 +2773,22 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod
{
zend_op *opline;
int doing_inheritance = 0;
- zend_class_entry *new_class_entry = emalloc(sizeof(zend_class_entry));
- char *lcname = zend_str_tolower_dup(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
+ zend_class_entry *new_class_entry;
+ char *lcname;
if (CG(active_class_entry)) {
zend_error(E_COMPILE_ERROR, "Class declarations may not be nested");
return;
}
+ lcname = zend_str_tolower_dup(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
+
if (!(strcmp(lcname, "self") && strcmp(lcname, "parent"))) {
efree(lcname);
zend_error(E_COMPILE_ERROR, "Cannot use '%s' as class name as it is reserved", class_name->u.constant.value.str.val);
}
+ new_class_entry = emalloc(sizeof(zend_class_entry));
new_class_entry->type = ZEND_USER_CLASS;
new_class_entry->name = class_name->u.constant.value.str.val;
new_class_entry->name_length = class_name->u.constant.value.str.len;
@@ -3060,7 +3101,18 @@ void zend_do_fetch_property(znode *result, znode *object, znode *property TSRMLS
zend_llist_add_element(fetch_list_ptr, &opline);
}
-
+void zend_do_halt_compiler_register(TSRMLS_D)
+{
+ char *name, *cfilename;
+ char haltoff[] = "__COMPILER_HALT_OFFSET__";
+ int len, clen;
+ cfilename = zend_get_compiled_filename(TSRMLS_C);
+ clen = strlen(cfilename);
+ zend_mangle_property_name(&name, &len, haltoff,
+ sizeof("__COMPILER_HALT_OFFSET__") - 1, cfilename, clen, 0);
+ zend_register_long_constant(name, len+1, zend_get_scanned_file_offset(TSRMLS_C), CONST_CS, 0 TSRMLS_CC);
+ pefree(name, 0);
+}
void zend_do_declare_implicit_property(TSRMLS_D)
{
@@ -3382,6 +3434,7 @@ void zend_do_list_end(znode *result, znode *expr TSRMLS_DC)
opline->opcode = ZEND_FETCH_DIM_TMP_VAR;
break;
}
+ opline->extended_value = ZEND_FETCH_ADD_LOCK;
} else {
opline->opcode = ZEND_FETCH_DIM_R;
}
@@ -3393,7 +3446,6 @@ void zend_do_list_end(znode *result, znode *expr TSRMLS_DC)
Z_TYPE(opline->op2.u.constant) = IS_LONG;
Z_LVAL(opline->op2.u.constant) = *((int *) dimension->data);
INIT_PZVAL(&opline->op2.u.constant);
- opline->extended_value = ZEND_FETCH_ADD_LOCK;
last_container = opline->result;
dimension = dimension->next;
}
@@ -3622,6 +3674,10 @@ void zend_do_instanceof(znode *result, znode *expr, znode *class_znode, int type
}
}
+ if (expr->op_type == IS_CONST) {
+ zend_error(E_COMPILE_ERROR, "instanceof expects an object instance, constant given");
+ }
+
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_INSTANCEOF;
opline->result.op_type = IS_TMP_VAR;
@@ -3634,11 +3690,12 @@ void zend_do_instanceof(znode *result, znode *expr, znode *class_znode, int type
}
-void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, int variable TSRMLS_DC)
+void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC)
{
zend_op *opline;
zend_bool is_variable;
zend_bool push_container = 0;
+ zend_op dummy_opline;
if (variable) {
if (zend_is_function_or_method_call(array)) {
@@ -3646,6 +3703,8 @@ void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, zno
} else {
is_variable = 1;
}
+ /* save the location of FETCH_W instruction(s) */
+ open_brackets_token->u.opline_num = get_next_op_number(CG(active_op_array));
zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC);
if (CG(active_op_array)->last > 0 &&
CG(active_op_array)->opcodes[CG(active_op_array)->last-1].opcode == ZEND_FETCH_OBJ_W) {
@@ -3657,6 +3716,7 @@ void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, zno
}
} else {
is_variable = 0;
+ open_brackets_token->u.opline_num = get_next_op_number(CG(active_op_array));
}
/* save the location of FE_RESET */
@@ -3671,28 +3731,17 @@ void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, zno
opline->op1 = *array;
SET_UNUSED(opline->op2);
opline->extended_value = is_variable ? ZEND_FE_RESET_VARIABLE : 0;
- *open_brackets_token = opline->result;
-
- {
- zend_op dummy_opline;
- dummy_opline.result = opline->result;
- if (push_container) {
- dummy_opline.op1 = CG(active_op_array)->opcodes[CG(active_op_array)->last-2].op1;
- } else {
- znode tmp;
+ dummy_opline.result = opline->result;
+ if (push_container) {
+ dummy_opline.op1 = CG(active_op_array)->opcodes[CG(active_op_array)->last-2].op1;
+ } else {
+ znode tmp;
- tmp.op_type = IS_UNUSED;
- dummy_opline.op1 = tmp;
- }
- zend_stack_push(&CG(foreach_copy_stack), (void *) &dummy_opline, sizeof(zend_op));
+ tmp.op_type = IS_UNUSED;
+ dummy_opline.op1 = tmp;
}
-}
-
-
-void zend_do_foreach_fetch(znode *foreach_token, znode *open_brackets_token, znode *as_token TSRMLS_DC)
-{
- zend_op *opline;
+ zend_stack_push(&CG(foreach_copy_stack), (void *) &dummy_opline, sizeof(zend_op));
/* save the location of FE_FETCH */
as_token->u.opline_num = get_next_op_number(CG(active_op_array));
@@ -3701,7 +3750,7 @@ void zend_do_foreach_fetch(znode *foreach_token, znode *open_brackets_token, zno
opline->opcode = ZEND_FE_FETCH;
opline->result.op_type = IS_VAR;
opline->result.u.var = get_temporary_variable(CG(active_op_array));
- opline->op1 = *open_brackets_token;
+ opline->op1 = dummy_opline.result;
opline->extended_value = 0;
SET_UNUSED(opline->op2);
@@ -3713,7 +3762,7 @@ void zend_do_foreach_fetch(znode *foreach_token, znode *open_brackets_token, zno
}
-void zend_do_foreach_cont(znode *foreach_token, znode *as_token, znode *value, znode *key TSRMLS_DC)
+void zend_do_foreach_cont(znode *foreach_token, znode *open_brackets_token, znode *as_token, znode *value, znode *key TSRMLS_DC)
{
zend_op *opline;
znode dummy, value_node;
@@ -3744,6 +3793,19 @@ void zend_do_foreach_cont(znode *foreach_token, znode *as_token, znode *value, z
/* Mark extended_value for assign-by-reference */
opline->extended_value |= ZEND_FE_FETCH_BYREF;
CG(active_op_array)->opcodes[foreach_token->u.opline_num].extended_value |= ZEND_FE_RESET_REFERENCE;
+ } else {
+ zend_op *foreach_copy;
+ zend_op *fetch = &CG(active_op_array)->opcodes[foreach_token->u.opline_num];
+ zend_op *end = &CG(active_op_array)->opcodes[open_brackets_token->u.opline_num];
+
+ /* Change "write context" into "read context" */
+ fetch->extended_value = 0; /* reset ZEND_FE_RESET_VARIABLE */
+ while (fetch != end) {
+ (--fetch)->opcode -= 3; /* FETCH_W -> FETCH_R */
+ }
+ /* prevent double SWITCH_FREE */
+ zend_stack_top(&CG(foreach_copy_stack), (void **) &foreach_copy);
+ foreach_copy->op1.op_type = IS_UNUSED;
}
value_node = opline->result;
@@ -4127,7 +4189,7 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify
CG(static_members) = realloc(CG(static_members), (n+1)*sizeof(HashTable*));
CG(static_members)[n] = NULL;
}
- ce->static_members = (HashTable*)n;
+ ce->static_members = (HashTable*)(zend_intptr_t)n;
#else
ce->static_members = NULL;
#endif
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index a2f90e288..ee20491c7 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.h,v 1.316.2.8.2.7 2006/09/26 10:30:50 dmitry Exp $ */
+/* $Id: zend_compile.h,v 1.316.2.8.2.11 2007/04/04 00:42:42 iliaa Exp $ */
#ifndef ZEND_COMPILE_H
#define ZEND_COMPILE_H
@@ -36,9 +36,9 @@
#define SET_UNUSED(op) (op).op_type = IS_UNUSED
-#define INC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count++); }
-#define DEC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count--); }
-#define HANDLE_INTERACTIVE() if (CG(interactive)) { execute_new_code(TSRMLS_C); }
+#define INC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count++); }
+#define DEC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count--); }
+#define HANDLE_INTERACTIVE() if (CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE) { execute_new_code(TSRMLS_C); }
#define RESET_DOC_COMMENT() \
{ \
@@ -116,6 +116,9 @@ typedef struct _zend_try_catch_element {
#define ZEND_ACC_FINAL_CLASS 0x40
#define ZEND_ACC_INTERFACE 0x80
+/* op_array flags */
+#define ZEND_ACC_INTERACTIVE 0x10
+
/* method flags (visibility) */
/* The order of those must be kept - public < protected < private */
#define ZEND_ACC_PUBLIC 0x100
@@ -447,6 +450,7 @@ void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC);
void zend_do_fetch_property(znode *result, znode *object, znode *property TSRMLS_DC);
+void zend_do_halt_compiler_register(TSRMLS_D);
void zend_do_push_object(znode *object TSRMLS_DC);
void zend_do_pop_object(znode *object TSRMLS_DC);
@@ -476,9 +480,8 @@ void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC
void zend_do_instanceof(znode *result, znode *expr, znode *class_znode, int type TSRMLS_DC);
-void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, int variable TSRMLS_DC);
-void zend_do_foreach_fetch(znode *foreach_token, znode *open_brackets_token, znode *as_token TSRMLS_DC);
-void zend_do_foreach_cont(znode *foreach_token, znode *as_token, znode *value, znode *key TSRMLS_DC);
+void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC);
+void zend_do_foreach_cont(znode *foreach_token, znode *open_brackets_token, znode *as_token, znode *value, znode *key TSRMLS_DC);
void zend_do_foreach_end(znode *foreach_token, znode *as_token TSRMLS_DC);
void zend_do_declare_begin(TSRMLS_D);
diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h
index 47a0df8c2..2f6cab90f 100644
--- a/Zend/zend_config.nw.h
+++ b/Zend/zend_config.nw.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_config.nw.h,v 1.8.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_config.nw.h,v 1.8.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_CONFIG_NW_H
#define ZEND_CONFIG_NW_H
diff --git a/Zend/zend_config.w32.h b/Zend/zend_config.w32.h
index 8c9d9e563..13edf5a45 100644
--- a/Zend/zend_config.w32.h
+++ b/Zend/zend_config.w32.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_config.w32.h,v 1.39.2.2.2.1 2006/07/18 09:06:32 dmitry Exp $ */
+/* $Id: zend_config.w32.h,v 1.39.2.2.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_CONFIG_W32_H
#define ZEND_CONFIG_W32_H
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index 8e8affb56..ac1bdc770 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_constants.c,v 1.71.2.5.2.3 2006/10/18 17:17:18 johannes Exp $ */
+/* $Id: zend_constants.c,v 1.71.2.5.2.5 2007/04/04 00:42:42 iliaa Exp $ */
#include "zend.h"
#include "zend_constants.h"
@@ -274,10 +274,10 @@ ZEND_API int zend_get_constant_ex(char *name, uint name_len, zval *result, zend_
*result = **ret_constant;
zval_copy_ctor(result);
}
-
+
return retval;
}
-
+
if (zend_hash_find(EG(zend_constants), name, name_len+1, (void **) &c) == FAILURE) {
lookup_name = estrndup(name, name_len);
zend_str_tolower(lookup_name, name_len);
@@ -287,7 +287,26 @@ ZEND_API int zend_get_constant_ex(char *name, uint name_len, zval *result, zend_
retval=0;
}
} else {
- retval=0;
+ char haltoff[] = "__COMPILER_HALT_OFFSET__";
+ if (!EG(in_execution)) {
+ retval = 0;
+ } else if (name_len == sizeof("__COMPILER_HALT_OFFSET__") - 1 && memcmp(haltoff, name, name_len) == 0) {
+ char *cfilename, *haltname;
+ int len, clen;
+ cfilename = zend_get_executed_filename(TSRMLS_C);
+ clen = strlen(cfilename);
+ /* check for __COMPILER_HALT_OFFSET__ */
+ zend_mangle_property_name(&haltname, &len, haltoff,
+ sizeof("__COMPILER_HALT_OFFSET__") - 1, cfilename, clen, 0);
+ if (zend_hash_find(EG(zend_constants), haltname, len+1, (void **) &c) == SUCCESS) {
+ retval = 1;
+ } else {
+ retval=0;
+ }
+ pefree(haltname, 0);
+ } else {
+ retval = 0;
+ }
}
efree(lookup_name);
}
@@ -326,7 +345,8 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
name = c->name;
}
- if (zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
+ if ((strncmp(name, "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__") - 1) == 0) ||
+ zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
zend_error(E_NOTICE,"Constant %s already defined", name);
free(c->name);
if (!(c->flags & CONST_PERSISTENT)) {
diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h
index 1716a8347..295121c85 100644
--- a/Zend/zend_constants.h
+++ b/Zend/zend_constants.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_constants.h,v 1.31.2.2.2.1 2006/10/18 16:35:15 johannes Exp $ */
+/* $Id: zend_constants.h,v 1.31.2.2.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_CONSTANTS_H
#define ZEND_CONSTANTS_H
diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c
index 50f67cc4d..3139e035d 100644
--- a/Zend/zend_default_classes.c
+++ b/Zend/zend_default_classes.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_default_classes.c,v 1.59.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_default_classes.c,v 1.59.2.2.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
#include "zend_API.h"
diff --git a/Zend/zend_dynamic_array.c b/Zend/zend_dynamic_array.c
index 871c1c5bb..402e0724f 100644
--- a/Zend/zend_dynamic_array.c
+++ b/Zend/zend_dynamic_array.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_dynamic_array.c,v 1.13.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_dynamic_array.c,v 1.13.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
diff --git a/Zend/zend_dynamic_array.h b/Zend/zend_dynamic_array.h
index 02008c2e1..17ecfe3f2 100644
--- a/Zend/zend_dynamic_array.h
+++ b/Zend/zend_dynamic_array.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_dynamic_array.h,v 1.14.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_dynamic_array.h,v 1.14.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_DYNAMIC_ARRAY_H
#define ZEND_DYNAMIC_ARRAY_H
diff --git a/Zend/zend_errors.h b/Zend/zend_errors.h
index 9768c7442..224b0a29d 100644
--- a/Zend/zend_errors.h
+++ b/Zend/zend_errors.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_errors.h,v 1.18.2.1.2.4 2006/05/17 19:07:45 helly Exp $ */
+/* $Id: zend_errors.h,v 1.18.2.1.2.5 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_ERRORS_H
#define ZEND_ERRORS_H
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index 06eb5dfc1..fe0bf4117 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_exceptions.c,v 1.79.2.6.2.5 2006/07/21 08:39:30 dmitry Exp $ */
+/* $Id: zend_exceptions.c,v 1.79.2.6.2.8 2007/01/18 12:20:15 tony2001 Exp $ */
#include "zend.h"
#include "zend_API.h"
@@ -32,8 +32,7 @@ zend_class_entry *error_exception_ce;
static zend_object_handlers default_exception_handlers;
ZEND_API void (*zend_throw_exception_hook)(zval *ex TSRMLS_DC);
-
-void zend_throw_exception_internal(zval *exception TSRMLS_DC)
+void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */
{
if (exception != NULL) {
if (EG(exception)) {
@@ -58,11 +57,9 @@ void zend_throw_exception_internal(zval *exception TSRMLS_DC)
EG(opline_before_exception) = EG(current_execute_data)->opline;
EG(current_execute_data)->opline = &EG(active_op_array)->opcodes[EG(active_op_array)->last-1-1];
}
+/* }}} */
-
-
-
-ZEND_API void zend_clear_exception(TSRMLS_D)
+ZEND_API void zend_clear_exception(TSRMLS_D) /* {{{ */
{
if (!EG(exception)) {
return;
@@ -74,8 +71,9 @@ ZEND_API void zend_clear_exception(TSRMLS_D)
EG(opline_before_exception) = NULL;
#endif
}
+/* }}} */
-static zend_object_value zend_default_exception_new_ex(zend_class_entry *class_type, int skip_top_traces TSRMLS_DC)
+static zend_object_value zend_default_exception_new_ex(zend_class_entry *class_type, int skip_top_traces TSRMLS_DC) /* {{{ */
{
zval tmp, obj;
zend_object *object;
@@ -99,17 +97,19 @@ static zend_object_value zend_default_exception_new_ex(zend_class_entry *class_t
return Z_OBJVAL(obj);
}
+/* }}} */
-static zend_object_value zend_default_exception_new(zend_class_entry *class_type TSRMLS_DC)
+static zend_object_value zend_default_exception_new(zend_class_entry *class_type TSRMLS_DC) /* {{{ */
{
return zend_default_exception_new_ex(class_type, 0 TSRMLS_CC);
}
+/* }}} */
-static zend_object_value zend_error_exception_new(zend_class_entry *class_type TSRMLS_DC)
+static zend_object_value zend_error_exception_new(zend_class_entry *class_type TSRMLS_DC) /* {{{ */
{
return zend_default_exception_new_ex(class_type, 2 TSRMLS_CC);
}
-
+/* }}} */
/* {{{ proto Exception Exception::__clone()
Clone the exception object */
@@ -120,7 +120,6 @@ ZEND_METHOD(exception, __clone)
}
/* }}} */
-
/* {{{ proto Exception::__construct(string message, int code)
Exception constructor */
ZEND_METHOD(exception, __construct)
@@ -146,7 +145,6 @@ ZEND_METHOD(exception, __construct)
}
/* }}} */
-
/* {{{ proto ErrorException::__construct(string message, int code, int severity [, string filename [, int lineno]])
ErrorException constructor */
ZEND_METHOD(error_exception, __construct)
@@ -187,7 +185,7 @@ ZEND_METHOD(error_exception, __construct)
ZEND_WRONG_PARAM_COUNT(); \
}
-static void _default_exception_get_entry(zval *object, char *name, int name_len, zval *return_value TSRMLS_DC)
+static void _default_exception_get_entry(zval *object, char *name, int name_len, zval *return_value TSRMLS_DC) /* {{{ */
{
zval *value;
@@ -197,7 +195,7 @@ static void _default_exception_get_entry(zval *object, char *name, int name_len,
zval_copy_ctor(return_value);
INIT_PZVAL(return_value);
}
-
+/* }}} */
/* {{{ proto string Exception::getFile()
Get the file in which the exception occurred */
@@ -209,7 +207,6 @@ ZEND_METHOD(exception, getFile)
}
/* }}} */
-
/* {{{ proto int Exception::getLine()
Get the line in which the exception occurred */
ZEND_METHOD(exception, getLine)
@@ -220,7 +217,6 @@ ZEND_METHOD(exception, getLine)
}
/* }}} */
-
/* {{{ proto string Exception::getMessage()
Get the exception message */
ZEND_METHOD(exception, getMessage)
@@ -231,7 +227,6 @@ ZEND_METHOD(exception, getMessage)
}
/* }}} */
-
/* {{{ proto int Exception::getCode()
Get the exception code */
ZEND_METHOD(exception, getCode)
@@ -242,7 +237,6 @@ ZEND_METHOD(exception, getCode)
}
/* }}} */
-
/* {{{ proto array Exception::getTrace()
Get the stack trace for the location in which the exception occurred */
ZEND_METHOD(exception, getTrace)
@@ -253,7 +247,6 @@ ZEND_METHOD(exception, getTrace)
}
/* }}} */
-
/* {{{ proto int ErrorException::getSeverity()
Get the exception severity */
ZEND_METHOD(error_exception, getSeverity)
@@ -264,7 +257,7 @@ ZEND_METHOD(error_exception, getSeverity)
}
/* }}} */
-/* {{{ ZEND_METHOD(exception, gettraceasstring) */
+/* {{{ gettraceasstring() macros */
#define TRACE_APPEND_CHR(chr) \
*str = (char*)erealloc(*str, *len + 1 + 1); \
(*str)[(*len)++] = chr
@@ -285,7 +278,9 @@ ZEND_METHOD(error_exception, getSeverity)
TRACE_APPEND_STRL(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)); \
}
-static int _build_trace_args(zval **arg, int num_args, va_list args, zend_hash_key *hash_key)
+/* }}} */
+
+static int _build_trace_args(zval **arg, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
{
char **str;
int *len;
@@ -381,8 +376,9 @@ static int _build_trace_args(zval **arg, int num_args, va_list args, zend_hash_k
}
return ZEND_HASH_APPLY_KEEP;
}
+/* }}} */
-static int _build_trace_string(zval **frame, int num_args, va_list args, zend_hash_key *hash_key)
+static int _build_trace_string(zval **frame, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
{
char *s_tmp, **str;
int *len, *num;
@@ -404,7 +400,7 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha
} else {
line = 0;
}
- s_tmp = emalloc(Z_STRLEN_PP(file) + MAX_LENGTH_OF_LONG + 2 + 1);
+ s_tmp = emalloc(Z_STRLEN_PP(file) + MAX_LENGTH_OF_LONG + 4 + 1);
sprintf(s_tmp, "%s(%ld): ", Z_STRVAL_PP(file), line);
TRACE_APPEND_STRL(s_tmp, strlen(s_tmp));
efree(s_tmp);
@@ -425,7 +421,7 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha
TRACE_APPEND_STR(")\n");
return ZEND_HASH_APPLY_KEEP;
}
-
+/* }}} */
/* {{{ proto string Exception::getTraceAsString()
Obtain the backtrace for the exception as a string (instead of an array) */
@@ -448,7 +444,7 @@ ZEND_METHOD(exception, getTraceAsString)
}
/* }}} */
-int zend_spprintf(char **message, int max_len, char *format, ...)
+int zend_spprintf(char **message, int max_len, char *format, ...) /* {{{ */
{
va_list arg;
int len;
@@ -458,7 +454,7 @@ int zend_spprintf(char **message, int max_len, char *format, ...)
va_end(arg);
return len;
}
-
+/* }}} */
/* {{{ proto string Exception::__toString()
Obtain the string representation of the Exception object */
@@ -522,6 +518,7 @@ ZEND_METHOD(exception, __toString)
}
/* }}} */
+/* {{{ internal structs */
/* All functions that may be used in uncaught exception handlers must be final
* and must not throw exceptions. Otherwise we would need a facility to handle
* such exceptions in that handler.
@@ -564,8 +561,9 @@ static zend_function_entry error_exception_functions[] = {
ZEND_ME(error_exception, getSeverity, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
{NULL, NULL, NULL}
};
+/* }}} */
-void zend_register_default_exception(TSRMLS_D)
+void zend_register_default_exception(TSRMLS_D) /* {{{ */
{
zend_class_entry ce;
@@ -587,19 +585,21 @@ void zend_register_default_exception(TSRMLS_D)
error_exception_ce->create_object = zend_error_exception_new;
zend_declare_property_long(error_exception_ce, "severity", sizeof("severity")-1, E_ERROR, ZEND_ACC_PROTECTED TSRMLS_CC);
}
+/* }}} */
-ZEND_API zend_class_entry *zend_exception_get_default(TSRMLS_D)
+ZEND_API zend_class_entry *zend_exception_get_default(TSRMLS_D) /* {{{ */
{
return default_exception_ce;
}
+/* }}} */
-ZEND_API zend_class_entry *zend_get_error_exception(TSRMLS_D)
+ZEND_API zend_class_entry *zend_get_error_exception(TSRMLS_D) /* {{{ */
{
return error_exception_ce;
}
+/* }}} */
-
-ZEND_API zval * zend_throw_exception(zend_class_entry *exception_ce, char *message, long code TSRMLS_DC)
+ZEND_API zval * zend_throw_exception(zend_class_entry *exception_ce, char *message, long code TSRMLS_DC) /* {{{ */
{
zval *ex;
@@ -625,9 +625,9 @@ ZEND_API zval * zend_throw_exception(zend_class_entry *exception_ce, char *messa
zend_throw_exception_internal(ex TSRMLS_CC);
return ex;
}
+/* }}} */
-
-ZEND_API zval * zend_throw_exception_ex(zend_class_entry *exception_ce, long code TSRMLS_DC, char *format, ...)
+ZEND_API zval * zend_throw_exception_ex(zend_class_entry *exception_ce, long code TSRMLS_DC, char *format, ...) /* {{{ */
{
va_list arg;
char *message;
@@ -640,16 +640,17 @@ ZEND_API zval * zend_throw_exception_ex(zend_class_entry *exception_ce, long cod
efree(message);
return zexception;
}
+/* }}} */
-
-ZEND_API zval * zend_throw_error_exception(zend_class_entry *exception_ce, char *message, long code, int severity TSRMLS_DC)
+ZEND_API zval * zend_throw_error_exception(zend_class_entry *exception_ce, char *message, long code, int severity TSRMLS_DC) /* {{{ */
{
zval *ex = zend_throw_exception(exception_ce, message, code TSRMLS_CC);
zend_update_property_long(default_exception_ce, ex, "severity", sizeof("severity")-1, severity TSRMLS_CC);
return ex;
}
+/* }}} */
-static void zend_error_va(int type, const char *file, uint lineno, const char *format, ...)
+static void zend_error_va(int type, const char *file, uint lineno, const char *format, ...) /* {{{ */
{
va_list args;
@@ -657,9 +658,10 @@ static void zend_error_va(int type, const char *file, uint lineno, const char *f
zend_error_cb(type, file, lineno, format, args);
va_end(args);
}
+/* }}} */
/* This function doesn't return as it calls E_ERROR */
-ZEND_API void zend_exception_error(zval *exception TSRMLS_DC)
+ZEND_API void zend_exception_error(zval *exception TSRMLS_DC) /* {{{ */
{
zend_class_entry *ce_exception = Z_OBJCE_P(exception);
if (instanceof_function(ce_exception, default_exception_ce TSRMLS_CC)) {
@@ -698,9 +700,9 @@ ZEND_API void zend_exception_error(zval *exception TSRMLS_DC)
zend_error(E_ERROR, "Uncaught exception '%s'", ce_exception->name);
}
}
+/* }}} */
-
-ZEND_API void zend_throw_exception_object(zval *exception TSRMLS_DC)
+ZEND_API void zend_throw_exception_object(zval *exception TSRMLS_DC) /* {{{ */
{
zend_class_entry *exception_ce;
@@ -715,6 +717,7 @@ ZEND_API void zend_throw_exception_object(zval *exception TSRMLS_DC)
}
zend_throw_exception_internal(exception TSRMLS_CC);
}
+/* }}} */
/*
* Local variables:
diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h
index 2b08d94ba..683bd502a 100644
--- a/Zend/zend_exceptions.h
+++ b/Zend/zend_exceptions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_exceptions.h,v 1.21.2.1.2.1 2006/05/09 23:53:23 helly Exp $ */
+/* $Id: zend_exceptions.h,v 1.21.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_EXCEPTIONS_H
#define ZEND_EXCEPTIONS_H
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 3b27bcefb..4b3631cd7 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.716.2.12.2.12 2006/10/02 11:09:52 tony2001 Exp $ */
+/* $Id: zend_execute.c,v 1.716.2.12.2.19 2007/04/16 08:09:54 dmitry Exp $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -64,7 +64,7 @@ static void zend_extension_fcall_end_handler(zend_extension *extension, zend_op_
#define TEMP_VAR_STACK_LIMIT 2000
-static inline void zend_pzval_unlock_func(zval *z, zend_free_op *should_free)
+static inline void zend_pzval_unlock_func(zval *z, zend_free_op *should_free, int unref)
{
if (!--z->refcount) {
z->refcount = 1;
@@ -73,7 +73,7 @@ static inline void zend_pzval_unlock_func(zval *z, zend_free_op *should_free)
/* should_free->is_var = 1; */
} else {
should_free->var = 0;
- if (z->is_ref && z->refcount == 1) {
+ if (unref && z->is_ref && z->refcount == 1) {
z->is_ref = 0;
}
}
@@ -87,7 +87,8 @@ static inline void zend_pzval_unlock_free_func(zval *z)
}
}
-#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f)
+#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f, 1)
+#define PZVAL_UNLOCK_EX(z, f, u) zend_pzval_unlock_func(z, f, u)
#define PZVAL_UNLOCK_FREE(z) zend_pzval_unlock_free_func(z)
#define PZVAL_LOCK(z) (z)->refcount++
#define RETURN_VALUE_UNUSED(pzn) (((pzn)->u.EA.type & EXT_TYPE_UNUSED))
@@ -103,15 +104,15 @@ static inline void zend_pzval_unlock_free_func(zval *z)
#define FREE_OP(should_free) \
if (should_free.var) { \
- if ((long)should_free.var & 1L) { \
- zval_dtor((zval*)((long)should_free.var & ~1L)); \
+ if ((zend_uintptr_t)should_free.var & 1L) { \
+ zval_dtor((zval*)((zend_uintptr_t)should_free.var & ~1L)); \
} else { \
zval_ptr_dtor(&should_free.var); \
} \
}
#define FREE_OP_IF_VAR(should_free) \
- if (should_free.var != NULL && (((long)should_free.var & 1L) == 0)) { \
+ if (should_free.var != NULL && (((zend_uintptr_t)should_free.var & 1L) == 0)) { \
zval_ptr_dtor(&should_free.var); \
}
@@ -120,9 +121,9 @@ static inline void zend_pzval_unlock_free_func(zval *z)
zval_ptr_dtor(&should_free.var); \
}
-#define TMP_FREE(z) (zval*)(((long)(z)) | 1L)
+#define TMP_FREE(z) (zval*)(((zend_uintptr_t)(z)) | 1L)
-#define IS_TMP_FREE(should_free) ((long)should_free.var & 1L)
+#define IS_TMP_FREE(should_free) ((zend_uintptr_t)should_free.var & 1L)
#define INIT_PZVAL_COPY(z,v) \
(z)->value = (v)->value; \
@@ -411,11 +412,7 @@ static void zend_assign_to_variable_reference(zval **variable_ptr_ptr, zval **va
*variable_ptr_ptr = value_ptr;
value_ptr->refcount++;
- variable_ptr->refcount--;
- if (variable_ptr->refcount==0) {
- zendi_zval_dtor(*variable_ptr);
- FREE_ZVAL(variable_ptr);
- }
+ zval_ptr_dtor(&variable_ptr);
} else if (!variable_ptr->is_ref) {
if (variable_ptr_ptr == value_ptr_ptr) {
SEPARATE_ZVAL(variable_ptr_ptr);
@@ -614,7 +611,7 @@ static inline void zend_assign_to_object(znode *result, zval **object_ptr, znode
Z_OBJ_HT_P(object)->write_dimension(object, property_name, value TSRMLS_CC);
}
- if (result && !RETURN_VALUE_UNUSED(result)) {
+ if (result && !RETURN_VALUE_UNUSED(result) && !EG(exception)) {
T(result->u.var).var.ptr = value;
T(result->u.var).var.ptr_ptr = &T(result->u.var).var.ptr; /* this is so that we could use it in FETCH_DIM_R, etc. - see bug #27876 */
PZVAL_LOCK(value);
@@ -1166,16 +1163,22 @@ static void zend_fetch_dimension_address(temp_variable *result, zval **container
overloaded_result = Z_OBJ_HT_P(container)->read_dimension(container, dim, type TSRMLS_CC);
if (overloaded_result) {
- switch (type) {
- case BP_VAR_RW:
- case BP_VAR_W:
- if (Z_TYPE_P(overloaded_result) != IS_OBJECT
- && !overloaded_result->is_ref) {
- zend_error_noreturn(E_ERROR, "Objects used as arrays in post/pre increment/decrement must return values by reference");
- }
- break;
+ if (!overloaded_result->is_ref &&
+ (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET)) {
+ if (overloaded_result->refcount > 0) {
+ zval *tmp = overloaded_result;
+
+ ALLOC_ZVAL(overloaded_result);
+ *overloaded_result = *tmp;
+ zval_copy_ctor(overloaded_result);
+ overloaded_result->is_ref = 0;
+ overloaded_result->refcount = 0;
+ }
+ if (Z_TYPE_P(overloaded_result) != IS_OBJECT) {
+ zend_class_entry *ce = Z_OBJCE_P(container);
+ zend_error(E_NOTICE, "Indirect modification of overloaded element of %s has no effect", ce->name);
+ }
}
-
retval = &overloaded_result;
} else {
retval = &EG(error_zval_ptr);
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 6abe48b08..38dd15204 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.h,v 1.84.2.4.2.4 2006/10/18 16:35:15 johannes Exp $ */
+/* $Id: zend_execute.h,v 1.84.2.4.2.7 2007/04/16 08:09:54 dmitry Exp $ */
#ifndef ZEND_EXECUTE_H
#define ZEND_EXECUTE_H
@@ -41,6 +41,12 @@ typedef union _temp_variable {
zval *str;
zend_uint offset;
} str_offset;
+ struct {
+ zval **ptr_ptr;
+ zval *ptr;
+ zend_bool fcall_returned_reference;
+ HashPointer fe_pos;
+ } fe;
zend_class_entry *class_entry;
} temp_variable;
@@ -140,7 +146,7 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
static inline void zend_ptr_stack_clear_multiple(TSRMLS_D)
{
void **p = EG(argument_stack).top_element-2;
- int delete_count = (ulong) *p;
+ int delete_count = (int)(zend_uintptr_t) *p;
EG(argument_stack).top -= (delete_count+2);
while (--delete_count>=0) {
@@ -154,7 +160,7 @@ static inline void zend_ptr_stack_clear_multiple(TSRMLS_D)
static inline int zend_ptr_stack_get_arg(int requested_arg, void **data TSRMLS_DC)
{
void **p = EG(argument_stack).top_element-2;
- int arg_count = (ulong) *p;
+ int arg_count = (int)(zend_uintptr_t) *p;
if (requested_arg>arg_count) {
return FAILURE;
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index cf14a2b98..b7b9cef7f 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.20.2.10 2006/10/18 17:04:49 johannes Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.20.2.19 2007/04/27 08:12:24 tony2001 Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -451,7 +451,7 @@ ZEND_API int zend_is_true(zval *op)
ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *scope TSRMLS_DC)
{
zval *p = *pp;
- zend_bool inline_change = (zend_bool) (unsigned long) arg;
+ zend_bool inline_change = (zend_bool) (zend_uintptr_t) arg;
zval const_value;
if (Z_TYPE_P(p) == IS_CONSTANT) {
@@ -622,6 +622,8 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
char *fname, *colon;
int fname_len;
+ *fci->retval_ptr_ptr = NULL;
+
if (!EG(active)) {
return FAILURE; /* executor is already inactive */
}
@@ -652,11 +654,6 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
memset(&execute_data, 0, sizeof(zend_execute_data));
}
- /* we may return SUCCESS, and yet retval may be uninitialized,
- * if there was an exception...
- */
- *fci->retval_ptr_ptr = NULL;
-
if (!fci_cache || !fci_cache->initialized) {
if (Z_TYPE_P(fci->function_name)==IS_ARRAY) { /* assume array($obj, $name) couple */
zval **tmp_object_ptr, **tmp_real_function_name;
@@ -750,7 +747,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
fname = Z_STRVAL_P(fci->function_name);
fname_len = Z_STRLEN_P(fci->function_name);
- if (calling_scope && (colon = strstr(fname, "::")) != NULL) {
+ if ((colon = strstr(fname, "::")) != NULL) {
int clen = colon - fname;
int mlen = fname_len - clen - 2;
zend_class_entry **pce, *ce_child = NULL;
@@ -867,9 +864,14 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
if (fci->no_separation) {
if(i) {
/* hack to clean up the stack */
- zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) (long) i, NULL);
+ zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) (zend_uintptr_t) i, NULL);
zend_ptr_stack_clear_multiple(TSRMLS_C);
}
+
+ if (call_via_handler) {
+ zval_ptr_dtor(&method_name);
+ zval_ptr_dtor(&params_array);
+ }
return FAILURE;
}
ALLOC_ZVAL(new_zval);
@@ -903,7 +905,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
fci->param_count = 2;
}
- zend_ptr_stack_2_push(&EG(argument_stack), (void *) (long) fci->param_count, NULL);
+ zend_ptr_stack_2_push(&EG(argument_stack), (void *) (zend_uintptr_t) fci->param_count, NULL);
original_function_state_ptr = EG(function_state_ptr);
EG(function_state_ptr) = &EX(function_state);
@@ -1013,7 +1015,7 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload,
zend_fcall_info fcall_info;
zend_fcall_info_cache fcall_cache;
- if (name == NULL) {
+ if (name == NULL || !name_length) {
return FAILURE;
}
@@ -1113,11 +1115,14 @@ ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name TSR
int retval;
if (retval_ptr) {
- pv.value.str.len = strlen(str)+sizeof("return ;")-1;
- pv.value.str.val = emalloc(pv.value.str.len+1);
- strcpy(pv.value.str.val, "return ");
- strcat(pv.value.str.val, str);
- strcat(pv.value.str.val, " ;");
+ int l = strlen(str);
+ Z_STRLEN(pv) = l+sizeof("return ;")-1;
+ Z_STRVAL(pv) = emalloc(Z_STRLEN(pv) + 1);
+ memcpy(Z_STRVAL(pv), "return ", sizeof("return ")-1);
+ memcpy(Z_STRVAL(pv) + sizeof("return ")-1, str, l);
+ Z_STRVAL(pv)[Z_STRLEN(pv)-2] = ' ';
+ Z_STRVAL(pv)[Z_STRLEN(pv)-1] = ';';
+ Z_STRVAL(pv)[Z_STRLEN(pv)] = '\0';
} else {
pv.value.str.len = strlen(str);
pv.value.str.val = estrndup(str, pv.value.str.len);
@@ -1189,7 +1194,7 @@ void execute_new_code(TSRMLS_D)
zend_op *ret_opline;
zval *local_retval=NULL;
- if (!CG(interactive)
+ if (!(CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE)
|| CG(active_op_array)->backpatch_count>0
|| CG(active_op_array)->function_name
|| CG(active_op_array)->type!=ZEND_USER_FUNCTION) {
@@ -1381,6 +1386,9 @@ void zend_set_timeout(long seconds)
TSRMLS_FETCH();
EG(timeout_seconds) = seconds;
+ if(!seconds) {
+ return;
+ }
#ifdef ZEND_WIN32
if (timeout_thread_initialized==0 && InterlockedIncrement(&timeout_thread_initialized)==1) {
/* We start up this process-wide thread here and not in zend_startup(), because if Zend
@@ -1419,7 +1427,9 @@ void zend_set_timeout(long seconds)
void zend_unset_timeout(TSRMLS_D)
{
#ifdef ZEND_WIN32
- PostThreadMessage(timeout_thread_id, WM_UNREGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) 0);
+ if(timeout_thread_initialized) {
+ PostThreadMessage(timeout_thread_id, WM_UNREGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) 0);
+ }
#else
# ifdef HAVE_SETITIMER
{
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c
index 11fa6881e..22322f5a6 100644
--- a/Zend/zend_extensions.c
+++ b/Zend/zend_extensions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_extensions.c,v 1.48.2.1.2.1 2006/05/09 23:53:23 helly Exp $ */
+/* $Id: zend_extensions.c,v 1.48.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend_extensions.h"
diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h
index 4006035d5..84a8c0ef7 100644
--- a/Zend/zend_extensions.h
+++ b/Zend/zend_extensions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_extensions.h,v 1.67.2.3.2.2 2006/05/19 06:09:14 dmitry Exp $ */
+/* $Id: zend_extensions.h,v 1.67.2.3.2.3 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_EXTENSIONS_H
#define ZEND_EXTENSIONS_H
diff --git a/Zend/zend_fast_cache.h b/Zend/zend_fast_cache.h
index 1fb5bca07..885d17432 100644
--- a/Zend/zend_fast_cache.h
+++ b/Zend/zend_fast_cache.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_fast_cache.h,v 1.21.2.1.2.1 2006/07/18 09:06:33 dmitry Exp $ */
+/* $Id: zend_fast_cache.h,v 1.21.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#if 0
#ifndef ZEND_FAST_CACHE_H
#define ZEND_FAST_CACHE_H
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h
index 4bc99cfee..1371ac763 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_globals.h,v 1.141.2.3.2.6 2006/09/11 14:30:03 tony2001 Exp $ */
+/* $Id: zend_globals.h,v 1.141.2.3.2.7 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_GLOBALS_H
#define ZEND_GLOBALS_H
diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h
index f18296647..129400863 100644
--- a/Zend/zend_globals_macros.h
+++ b/Zend/zend_globals_macros.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_globals_macros.h,v 1.22.2.1.2.2 2006/07/18 09:06:33 dmitry Exp $ */
+/* $Id: zend_globals_macros.h,v 1.22.2.1.2.4 2007/02/16 08:54:17 dmitry Exp $ */
#ifndef ZEND_GLOBALS_MACROS_H
#define ZEND_GLOBALS_MACROS_H
@@ -26,12 +26,12 @@ typedef struct _zend_compiler_globals zend_compiler_globals;
typedef struct _zend_executor_globals zend_executor_globals;
typedef struct _zend_scanner_globals zend_scanner_globals;
+BEGIN_EXTERN_C()
+
/* Compiler */
#ifdef ZTS
# define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v)
-BEGIN_EXTERN_C()
int zendparse(void *compiler_globals);
-END_EXTERN_C()
#else
# define CG(v) (compiler_globals.v)
extern ZEND_API struct _zend_compiler_globals compiler_globals;
@@ -66,6 +66,7 @@ extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
extern ZEND_API zend_scanner_globals ini_scanner_globals;
#endif
+END_EXTERN_C()
/* For limited downwards source compatibility */
#define CLS_FETCH()
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index f637ecef2..f2099fe21 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_hash.c,v 1.121.2.4.2.1 2006/08/24 09:42:35 dmitry Exp $ */
+/* $Id: zend_hash.c,v 1.121.2.4.2.7 2007/02/21 14:11:00 dmitry Exp $ */
#include "zend.h"
@@ -141,11 +141,16 @@ ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunctio
SET_INCONSISTENT(HT_OK);
- while ((1U << i) < nSize) {
- i++;
+ if (nSize >= 0x80000000) {
+ /* prevent overflow */
+ ht->nTableSize = 0x80000000;
+ } else {
+ while ((1U << i) < nSize) {
+ i++;
+ }
+ ht->nTableSize = 1 << i;
}
- ht->nTableSize = 1 << i;
ht->nTableMask = ht->nTableSize - 1;
ht->pDestructor = pDestructor;
ht->arBuckets = NULL;
@@ -647,12 +652,15 @@ ZEND_API void zend_hash_graceful_reverse_destroy(HashTable *ht)
SET_INCONSISTENT(HT_DESTROYED);
}
-/* This is used to selectively delete certain entries from a hashtable.
- * destruct() receives the data and decides if the entry should be deleted
- * or not
+/* This is used to recurse elements and selectively delete certain entries
+ * from a hashtable. apply_func() receives the data and decides if the entry
+ * should be deleted or recursion should be stopped. The following three
+ * return codes are possible:
+ * ZEND_HASH_APPLY_KEEP - continue
+ * ZEND_HASH_APPLY_STOP - stop iteration
+ * ZEND_HASH_APPLY_REMOVE - delete the element, combineable with the former
*/
-
ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
{
Bucket *p;
@@ -662,11 +670,16 @@ ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
HASH_PROTECT_RECURSION(ht);
p = ht->pListHead;
while (p != NULL) {
- if (apply_func(p->pData TSRMLS_CC)) {
+ int result = apply_func(p->pData TSRMLS_CC);
+
+ if (result & ZEND_HASH_APPLY_REMOVE) {
p = zend_hash_apply_deleter(ht, p);
} else {
p = p->pListNext;
}
+ if (result & ZEND_HASH_APPLY_STOP) {
+ break;
+ }
}
HASH_UNPROTECT_RECURSION(ht);
}
@@ -681,17 +694,22 @@ ZEND_API void zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t appl
HASH_PROTECT_RECURSION(ht);
p = ht->pListHead;
while (p != NULL) {
- if (apply_func(p->pData, argument TSRMLS_CC)) {
+ int result = apply_func(p->pData, argument TSRMLS_CC);
+
+ if (result & ZEND_HASH_APPLY_REMOVE) {
p = zend_hash_apply_deleter(ht, p);
} else {
p = p->pListNext;
}
+ if (result & ZEND_HASH_APPLY_STOP) {
+ break;
+ }
}
HASH_UNPROTECT_RECURSION(ht);
}
-ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t destruct, int num_args, ...)
+ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t apply_func, int num_args, ...)
{
Bucket *p;
va_list args;
@@ -703,15 +721,21 @@ ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t de
p = ht->pListHead;
while (p != NULL) {
+ int result;
va_start(args, num_args);
hash_key.arKey = p->arKey;
hash_key.nKeyLength = p->nKeyLength;
hash_key.h = p->h;
- if (destruct(p->pData, num_args, args, &hash_key)) {
+ result = apply_func(p->pData, num_args, args, &hash_key);
+
+ if (result & ZEND_HASH_APPLY_REMOVE) {
p = zend_hash_apply_deleter(ht, p);
} else {
p = p->pListNext;
}
+ if (result & ZEND_HASH_APPLY_STOP) {
+ break;
+ }
va_end(args);
}
@@ -754,7 +778,7 @@ ZEND_API void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_fun
p = source->pListHead;
while (p) {
if (p->nKeyLength) {
- zend_hash_update(target, p->arKey, p->nKeyLength, p->pData, size, &new_entry);
+ zend_hash_quick_update(target, p->arKey, p->nKeyLength, p->h, p->pData, size, &new_entry);
} else {
zend_hash_index_update(target, p->h, p->pData, size, &new_entry);
}
@@ -779,7 +803,7 @@ ZEND_API void _zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_f
p = source->pListHead;
while (p) {
if (p->nKeyLength>0) {
- if (_zend_hash_add_or_update(target, p->arKey, p->nKeyLength, p->pData, size, &t, mode ZEND_FILE_LINE_RELAY_CC)==SUCCESS && pCopyConstructor) {
+ if (_zend_hash_quick_add_or_update(target, p->arKey, p->nKeyLength, p->h, p->pData, size, &t, mode ZEND_FILE_LINE_RELAY_CC)==SUCCESS && pCopyConstructor) {
pCopyConstructor(t);
}
} else {
@@ -987,6 +1011,39 @@ ZEND_API int zend_hash_num_elements(HashTable *ht)
}
+ZEND_API int zend_hash_get_pointer(HashTable *ht, HashPointer *ptr)
+{
+ ptr->pos = ht->pInternalPointer;
+ if (ht->pInternalPointer) {
+ ptr->h = ht->pInternalPointer->h;
+ return 1;
+ } else {
+ ptr->h = 0;
+ return 0;
+ }
+}
+
+ZEND_API int zend_hash_set_pointer(HashTable *ht, const HashPointer *ptr)
+{
+ if (ptr->pos == NULL) {
+ ht->pInternalPointer = NULL;
+ } else if (ht->pInternalPointer != ptr->pos) {
+ Bucket *p;
+
+ IS_CONSISTENT(ht);
+ p = ht->arBuckets[ptr->h & ht->nTableMask];
+ while (p != NULL) {
+ if (p == ptr->pos) {
+ ht->pInternalPointer = p;
+ return 1;
+ }
+ p = p->pNext;
+ }
+ return 0;
+ }
+ return 1;
+}
+
ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos)
{
IS_CONSISTENT(ht);
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 3fab17b45..f110663bd 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_hash.h,v 1.78.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_hash.h,v 1.78.2.2.2.2 2007/01/10 15:58:07 dmitry Exp $ */
#ifndef ZEND_HASH_H
#define ZEND_HASH_H
@@ -176,6 +176,14 @@ ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *p
ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, char *str_index, uint str_length, ulong num_index, HashPosition *pos);
+typedef struct _HashPointer {
+ HashPosition pos;
+ ulong h;
+} HashPointer;
+
+ZEND_API int zend_hash_get_pointer(HashTable *ht, HashPointer *ptr);
+ZEND_API int zend_hash_set_pointer(HashTable *ht, const HashPointer *ptr);
+
#define zend_hash_has_more_elements(ht) \
zend_hash_has_more_elements_ex(ht, NULL)
#define zend_hash_move_forward(ht) \
diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c
index 86f111868..aae51e218 100644
--- a/Zend/zend_highlight.c
+++ b/Zend/zend_highlight.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_highlight.c,v 1.49.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_highlight.c,v 1.49.2.3.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
#include <zend_language_parser.h>
diff --git a/Zend/zend_highlight.h b/Zend/zend_highlight.h
index e90d1dd56..805220b6a 100644
--- a/Zend/zend_highlight.h
+++ b/Zend/zend_highlight.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_highlight.h,v 1.25.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_highlight.h,v 1.25.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_HIGHLIGHT_H
#define ZEND_HIGHLIGHT_H
diff --git a/Zend/zend_indent.c b/Zend/zend_indent.c
index 7d6fb4abf..5b2340fd5 100644
--- a/Zend/zend_indent.c
+++ b/Zend/zend_indent.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_indent.c,v 1.24.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_indent.c,v 1.24.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
/* This indenter doesn't really work, it's here for no particular reason. */
diff --git a/Zend/zend_indent.h b/Zend/zend_indent.h
index f4fdfc7c1..9c720e4c9 100644
--- a/Zend/zend_indent.h
+++ b/Zend/zend_indent.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_indent.h,v 1.17.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_indent.h,v 1.17.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_INDENT_H
#define ZEND_INDENT_H
diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c
index d17abf22a..d3311c10c 100644
--- a/Zend/zend_ini.c
+++ b/Zend/zend_ini.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini.c,v 1.39.2.2.2.3 2006/09/06 08:54:44 dmitry Exp $ */
+/* $Id: zend_ini.c,v 1.39.2.2.2.8 2007/04/16 08:09:54 dmitry Exp $ */
#include "zend.h"
#include "zend_qsort.h"
@@ -126,7 +126,6 @@ ZEND_API int zend_copy_ini_directives(TSRMLS_D)
return FAILURE;
}
zend_hash_copy(EG(ini_directives), registered_zend_ini_directives, NULL, &ini_entry, sizeof(zend_ini_entry));
- zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC);
return SUCCESS;
}
#endif
@@ -214,6 +213,7 @@ ZEND_API void zend_unregister_ini_entries(int module_number TSRMLS_DC)
}
+#ifdef ZTS
static int zend_ini_refresh_cache(zend_ini_entry *p, int stage TSRMLS_DC)
{
if (p->on_modify) {
@@ -225,8 +225,9 @@ static int zend_ini_refresh_cache(zend_ini_entry *p, int stage TSRMLS_DC)
ZEND_API void zend_ini_refresh_caches(int stage TSRMLS_DC)
{
- zend_hash_apply_with_argument(EG(ini_directives), (apply_func_arg_t) zend_ini_refresh_cache, (void *)(long) stage TSRMLS_CC);
+ zend_hash_apply_with_argument(EG(ini_directives), (apply_func_arg_t) zend_ini_refresh_cache, (void *)(zend_intptr_t) stage TSRMLS_CC);
}
+#endif
ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type, int stage)
@@ -356,7 +357,7 @@ ZEND_API char *zend_ini_string(char *name, uint name_length, int orig)
return "";
}
-
+#if TONY_20070307
static void zend_ini_displayer_cb(zend_ini_entry *ini_entry, int type)
{
if (ini_entry->displayer) {
@@ -393,7 +394,7 @@ static void zend_ini_displayer_cb(zend_ini_entry *ini_entry, int type)
ZEND_WRITE(display_string, display_string_length);
}
}
-
+#endif
ZEND_INI_DISP(zend_ini_boolean_displayer_cb)
{
@@ -529,6 +530,28 @@ ZEND_API ZEND_INI_MH(OnUpdateLong)
return SUCCESS;
}
+ZEND_API ZEND_INI_MH(OnUpdateLongGEZero)
+{
+ long *p, tmp;
+#ifndef ZTS
+ char *base = (char *) mh_arg2;
+#else
+ char *base;
+
+ base = (char *) ts_resource(*((int *) mh_arg2));
+#endif
+
+ tmp = zend_atoi(new_value, new_value_length);
+ if (tmp < 0) {
+ return FAILURE;
+ }
+
+ p = (long *) (base+(size_t) mh_arg1);
+ *p = tmp;
+
+ return SUCCESS;
+}
+
ZEND_API ZEND_INI_MH(OnUpdateReal)
{
diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h
index 0880b9537..b23cca359 100644
--- a/Zend/zend_ini.h
+++ b/Zend/zend_ini.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini.h,v 1.34.2.1.2.1 2006/09/19 20:33:12 dmitry Exp $ */
+/* $Id: zend_ini.h,v 1.34.2.1.2.3 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_INI_H
#define ZEND_INI_H
@@ -175,6 +175,7 @@ END_EXTERN_C()
BEGIN_EXTERN_C()
ZEND_API ZEND_INI_MH(OnUpdateBool);
ZEND_API ZEND_INI_MH(OnUpdateLong);
+ZEND_API ZEND_INI_MH(OnUpdateLongGEZero);
ZEND_API ZEND_INI_MH(OnUpdateReal);
ZEND_API ZEND_INI_MH(OnUpdateString);
ZEND_API ZEND_INI_MH(OnUpdateStringUnempty);
diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h
index 9be3a1530..ed849c70b 100644
--- a/Zend/zend_ini_scanner.h
+++ b/Zend/zend_ini_scanner.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini_scanner.h,v 1.14.2.1.2.1 2006/09/19 20:33:12 dmitry Exp $ */
+/* $Id: zend_ini_scanner.h,v 1.14.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef _ZEND_INI_SCANNER_H
#define _ZEND_INI_SCANNER_H
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 3be8a56c5..0b386092d 100755
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_interfaces.c,v 1.33.2.4.2.4 2006/08/28 10:27:58 tony2001 Exp $ */
+/* $Id: zend_interfaces.c,v 1.33.2.4.2.5 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
#include "zend_API.h"
diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h
index 1b69c43d2..94464c50f 100755
--- a/Zend/zend_interfaces.h
+++ b/Zend/zend_interfaces.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_interfaces.h,v 1.11.2.1.2.1 2006/05/11 08:11:45 helly Exp $ */
+/* $Id: zend_interfaces.h,v 1.11.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_INTERFACES_H
#define ZEND_INTERFACES_H
diff --git a/Zend/zend_istdiostream.h b/Zend/zend_istdiostream.h
index 27f57081d..a06fa97be 100644
--- a/Zend/zend_istdiostream.h
+++ b/Zend/zend_istdiostream.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_istdiostream.h,v 1.6.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_istdiostream.h,v 1.6.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef _ZEND_STDIOSTREAM
#define _ZEND_STDIOSTREAM
diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c
index eef5e6b05..8ea7ca8ca 100755
--- a/Zend/zend_iterators.c
+++ b/Zend/zend_iterators.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_iterators.c,v 1.12.2.1.2.1 2006/05/09 23:53:23 helly Exp $ */
+/* $Id: zend_iterators.c,v 1.12.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
#include "zend_API.h"
diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h
index 264130eb9..adb3fcc19 100755
--- a/Zend/zend_iterators.h
+++ b/Zend/zend_iterators.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_iterators.h,v 1.10.2.1.2.1 2006/05/09 23:53:23 helly Exp $ */
+/* $Id: zend_iterators.h,v 1.10.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */
/* These iterators were designed to operate within the foreach()
* structures provided by the engine, but could be extended for use
diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c
index 154f71c47..28af7793d 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -339,7 +339,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y,v 1.160.2.4.2.1 2006/05/11 21:07:39 helly Exp $ */
+/* $Id: zend_language_parser.y,v 1.160.2.4.2.4 2007/04/04 00:42:42 iliaa Exp $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -615,16 +615,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4041
+#define YYLAST 4077
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 150
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 170
+#define YYNNTS 168
/* YYNRULES -- Number of rules. */
-#define YYNRULES 424
+#define YYNRULES 422
/* YYNRULES -- Number of states. */
-#define YYNSTATES 787
+#define YYNSTATES 785
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -686,186 +686,185 @@ static const yytype_uint16 yyprhs[] =
46, 47, 57, 58, 59, 72, 73, 74, 82, 83,
84, 94, 95, 96, 97, 110, 111, 118, 121, 125,
128, 132, 135, 139, 143, 147, 151, 155, 157, 160,
- 164, 170, 171, 172, 173, 185, 186, 187, 188, 200,
- 201, 208, 210, 211, 212, 213, 214, 215, 234, 238,
- 240, 241, 243, 246, 247, 248, 259, 261, 265, 267,
- 269, 273, 275, 277, 278, 280, 281, 282, 294, 295,
- 304, 305, 313, 315, 318, 321, 322, 325, 327, 328,
- 331, 332, 335, 337, 341, 342, 345, 347, 350, 352,
- 357, 359, 364, 366, 371, 375, 381, 385, 390, 395,
- 401, 402, 403, 410, 411, 417, 419, 421, 423, 428,
- 429, 430, 438, 439, 440, 449, 450, 453, 454, 458,
- 460, 461, 464, 468, 474, 479, 484, 490, 498, 505,
- 506, 508, 510, 512, 513, 515, 517, 520, 524, 528,
- 533, 537, 539, 541, 544, 549, 553, 559, 561, 565,
- 568, 569, 570, 575, 578, 579, 580, 591, 593, 597,
- 599, 601, 602, 604, 606, 609, 611, 613, 615, 617,
- 619, 621, 625, 631, 633, 637, 643, 648, 652, 654,
- 655, 657, 658, 663, 665, 666, 674, 678, 683, 684,
- 692, 693, 698, 701, 705, 709, 713, 717, 721, 725,
- 729, 733, 737, 741, 745, 748, 751, 754, 757, 758,
- 763, 764, 769, 770, 775, 776, 781, 785, 789, 793,
- 797, 801, 805, 809, 813, 817, 821, 825, 829, 832,
- 835, 838, 841, 845, 849, 853, 857, 861, 865, 869,
- 873, 877, 881, 882, 883, 891, 893, 896, 899, 902,
- 905, 908, 911, 914, 917, 918, 922, 924, 929, 933,
- 936, 937, 943, 944, 952, 953, 961, 962, 968, 970,
- 972, 974, 975, 976, 983, 985, 988, 989, 992, 993,
- 996, 1000, 1001, 1005, 1007, 1009, 1011, 1013, 1015, 1017,
- 1019, 1021, 1023, 1025, 1028, 1031, 1036, 1038, 1042, 1044,
- 1046, 1048, 1050, 1054, 1058, 1062, 1063, 1066, 1067, 1069,
- 1075, 1079, 1083, 1085, 1087, 1089, 1091, 1092, 1095, 1096,
- 1099, 1100, 1101, 1109, 1111, 1114, 1115, 1116, 1121, 1122,
- 1127, 1128, 1130, 1133, 1137, 1139, 1141, 1143, 1146, 1148,
- 1153, 1158, 1160, 1162, 1167, 1168, 1170, 1172, 1173, 1176,
- 1181, 1186, 1188, 1190, 1194, 1196, 1199, 1203, 1205, 1207,
- 1208, 1214, 1215, 1216, 1219, 1225, 1229, 1233, 1235, 1242,
- 1247, 1252, 1255, 1258, 1261, 1264, 1267, 1270, 1273, 1276,
- 1279, 1282, 1285, 1288, 1289, 1291, 1292, 1298, 1302, 1306,
- 1313, 1317, 1319, 1321, 1323, 1328, 1333, 1336, 1339, 1344,
- 1347, 1350, 1352, 1353, 1358
+ 164, 170, 171, 172, 183, 184, 185, 196, 197, 204,
+ 206, 207, 208, 209, 210, 211, 230, 234, 236, 237,
+ 239, 242, 243, 244, 255, 257, 261, 263, 265, 269,
+ 271, 273, 274, 276, 277, 278, 290, 291, 300, 301,
+ 309, 311, 314, 317, 318, 321, 323, 324, 327, 328,
+ 331, 333, 337, 338, 341, 343, 346, 348, 353, 355,
+ 360, 362, 367, 371, 377, 381, 386, 391, 397, 398,
+ 399, 406, 407, 413, 415, 417, 419, 424, 425, 426,
+ 434, 435, 436, 445, 446, 449, 450, 454, 456, 457,
+ 460, 464, 470, 475, 480, 486, 494, 501, 502, 504,
+ 506, 508, 509, 511, 513, 516, 520, 524, 529, 533,
+ 535, 537, 540, 545, 549, 555, 557, 561, 564, 565,
+ 566, 571, 574, 575, 576, 587, 589, 593, 595, 597,
+ 598, 600, 602, 605, 607, 609, 611, 613, 615, 617,
+ 621, 627, 629, 633, 639, 644, 648, 650, 651, 653,
+ 654, 659, 661, 662, 670, 674, 679, 680, 688, 689,
+ 694, 697, 701, 705, 709, 713, 717, 721, 725, 729,
+ 733, 737, 741, 744, 747, 750, 753, 754, 759, 760,
+ 765, 766, 771, 772, 777, 781, 785, 789, 793, 797,
+ 801, 805, 809, 813, 817, 821, 825, 828, 831, 834,
+ 837, 841, 845, 849, 853, 857, 861, 865, 869, 873,
+ 877, 878, 879, 887, 889, 892, 895, 898, 901, 904,
+ 907, 910, 913, 914, 918, 920, 925, 929, 932, 933,
+ 939, 940, 948, 949, 957, 958, 964, 966, 968, 970,
+ 971, 972, 979, 981, 984, 985, 988, 989, 992, 996,
+ 997, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017,
+ 1019, 1021, 1024, 1027, 1032, 1034, 1038, 1040, 1042, 1044,
+ 1046, 1050, 1054, 1058, 1059, 1062, 1063, 1065, 1071, 1075,
+ 1079, 1081, 1083, 1085, 1087, 1088, 1091, 1092, 1095, 1096,
+ 1097, 1105, 1107, 1110, 1111, 1112, 1117, 1118, 1123, 1124,
+ 1126, 1129, 1133, 1135, 1137, 1139, 1142, 1144, 1149, 1154,
+ 1156, 1158, 1163, 1164, 1166, 1168, 1169, 1172, 1177, 1182,
+ 1184, 1186, 1190, 1192, 1195, 1199, 1201, 1203, 1204, 1210,
+ 1211, 1212, 1215, 1221, 1225, 1229, 1231, 1238, 1243, 1248,
+ 1251, 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278,
+ 1281, 1284, 1285, 1287, 1288, 1294, 1298, 1302, 1309, 1313,
+ 1315, 1317, 1319, 1324, 1329, 1332, 1335, 1340, 1343, 1346,
+ 1348, 1349, 1354
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
151, 0, -1, 152, -1, -1, 152, 153, 154, -1,
- -1, 158, -1, 192, -1, 193, -1, 115, 140, 141,
+ -1, 158, -1, 190, -1, 191, -1, 115, 140, 141,
142, -1, -1, 155, 156, 157, -1, -1, 158, -1,
- 192, -1, 193, -1, 115, 140, 141, 142, -1, 159,
- -1, 143, 155, 144, -1, -1, -1, 65, 140, 281,
- 141, 160, 158, 161, 219, 223, -1, -1, -1, 65,
- 140, 281, 141, 26, 162, 155, 163, 221, 224, 68,
- 142, -1, -1, -1, 82, 140, 164, 281, 141, 165,
- 218, -1, -1, -1, 81, 166, 158, 82, 140, 167,
- 281, 141, 142, -1, -1, -1, -1, 84, 140, 246,
- 142, 168, 246, 142, 169, 246, 141, 170, 209, -1,
- -1, 91, 140, 281, 141, 171, 213, -1, 95, 142,
- -1, 95, 281, 142, -1, 96, 142, -1, 96, 281,
- 142, -1, 99, 142, -1, 99, 249, 142, -1, 99,
- 287, 142, -1, 104, 230, 142, -1, 110, 232, 142,
- -1, 80, 245, 142, -1, 75, -1, 281, 142, -1,
- 103, 191, 142, -1, 112, 140, 189, 141, 142, -1,
- -1, -1, -1, 86, 140, 287, 172, 90, 173, 208,
- 207, 141, 174, 210, -1, -1, -1, -1, 86, 140,
- 249, 175, 90, 176, 287, 207, 141, 177, 210, -1,
- -1, 88, 178, 140, 212, 141, 211, -1, 142, -1,
- -1, -1, -1, -1, -1, 100, 179, 143, 155, 144,
- 101, 140, 180, 265, 181, 73, 141, 182, 143, 155,
- 144, 183, 184, -1, 102, 281, 142, -1, 185, -1,
- -1, 186, -1, 185, 186, -1, -1, -1, 101, 140,
- 265, 187, 73, 141, 188, 143, 155, 144, -1, 190,
- -1, 189, 8, 190, -1, 287, -1, 79, -1, 140,
- 79, 141, -1, 195, -1, 198, -1, -1, 31, -1,
- -1, -1, 97, 196, 194, 71, 197, 140, 225, 141,
- 143, 155, 144, -1, -1, 201, 71, 202, 199, 205,
- 143, 233, 144, -1, -1, 203, 71, 200, 204, 143,
- 233, 144, -1, 116, -1, 109, 116, -1, 108, 116,
- -1, -1, 118, 265, -1, 117, -1, -1, 118, 206,
- -1, -1, 119, 206, -1, 265, -1, 206, 8, 265,
- -1, -1, 121, 208, -1, 287, -1, 31, 287, -1,
- 158, -1, 26, 155, 85, 142, -1, 158, -1, 26,
- 155, 87, 142, -1, 158, -1, 26, 155, 89, 142,
- -1, 71, 13, 275, -1, 212, 8, 71, 13, 275,
- -1, 143, 214, 144, -1, 143, 142, 214, 144, -1,
- 26, 214, 92, 142, -1, 26, 142, 214, 92, 142,
- -1, -1, -1, 214, 93, 281, 217, 215, 155, -1,
- -1, 214, 94, 217, 216, 155, -1, 26, -1, 142,
- -1, 158, -1, 26, 155, 83, 142, -1, -1, -1,
- 219, 66, 140, 281, 141, 220, 158, -1, -1, -1,
- 221, 66, 140, 281, 141, 26, 222, 155, -1, -1,
- 67, 158, -1, -1, 67, 26, 155, -1, 226, -1,
- -1, 227, 73, -1, 227, 31, 73, -1, 227, 31,
- 73, 13, 275, -1, 227, 73, 13, 275, -1, 226,
- 8, 227, 73, -1, 226, 8, 227, 31, 73, -1,
- 226, 8, 227, 31, 73, 13, 275, -1, 226, 8,
- 227, 73, 13, 275, -1, -1, 71, -1, 123, -1,
- 229, -1, -1, 249, -1, 287, -1, 31, 283, -1,
- 229, 8, 249, -1, 229, 8, 287, -1, 229, 8,
- 31, 283, -1, 230, 8, 231, -1, 231, -1, 73,
- -1, 145, 282, -1, 145, 143, 281, 144, -1, 232,
- 8, 73, -1, 232, 8, 73, 13, 275, -1, 73,
- -1, 73, 13, 275, -1, 233, 234, -1, -1, -1,
- 239, 235, 243, 142, -1, 244, 142, -1, -1, -1,
- 240, 97, 236, 194, 71, 237, 140, 225, 141, 238,
- -1, 142, -1, 143, 155, 144, -1, 241, -1, 111,
- -1, -1, 241, -1, 242, -1, 241, 242, -1, 105,
- -1, 106, -1, 107, -1, 110, -1, 109, -1, 108,
- -1, 243, 8, 73, -1, 243, 8, 73, 13, 275,
- -1, 73, -1, 73, 13, 275, -1, 244, 8, 71,
- 13, 275, -1, 98, 71, 13, 275, -1, 245, 8,
- 281, -1, 281, -1, -1, 247, -1, -1, 247, 8,
- 248, 281, -1, 281, -1, -1, 122, 140, 250, 307,
- 141, 13, 281, -1, 287, 13, 281, -1, 287, 13,
- 31, 287, -1, -1, 287, 13, 31, 63, 266, 251,
- 273, -1, -1, 63, 266, 252, 273, -1, 62, 281,
- -1, 287, 24, 281, -1, 287, 23, 281, -1, 287,
- 22, 281, -1, 287, 21, 281, -1, 287, 20, 281,
- -1, 287, 19, 281, -1, 287, 18, 281, -1, 287,
- 17, 281, -1, 287, 16, 281, -1, 287, 15, 281,
- -1, 287, 14, 281, -1, 285, 60, -1, 60, 285,
- -1, 285, 59, -1, 59, 285, -1, -1, 281, 27,
- 253, 281, -1, -1, 281, 28, 254, 281, -1, -1,
- 281, 9, 255, 281, -1, -1, 281, 11, 256, 281,
- -1, 281, 10, 281, -1, 281, 29, 281, -1, 281,
- 31, 281, -1, 281, 30, 281, -1, 281, 44, 281,
- -1, 281, 42, 281, -1, 281, 43, 281, -1, 281,
- 45, 281, -1, 281, 46, 281, -1, 281, 47, 281,
- -1, 281, 41, 281, -1, 281, 40, 281, -1, 42,
- 281, -1, 43, 281, -1, 48, 281, -1, 50, 281,
- -1, 281, 33, 281, -1, 281, 32, 281, -1, 281,
- 35, 281, -1, 281, 34, 281, -1, 281, 36, 281,
- -1, 281, 39, 281, -1, 281, 37, 281, -1, 281,
- 38, 281, -1, 281, 49, 266, -1, 140, 281, 141,
- -1, -1, -1, 281, 25, 257, 281, 26, 258, 281,
- -1, 316, -1, 58, 281, -1, 57, 281, -1, 56,
- 281, -1, 55, 281, -1, 54, 281, -1, 53, 281,
- -1, 52, 281, -1, 64, 272, -1, -1, 51, 259,
- 281, -1, 277, -1, 123, 140, 310, 141, -1, 146,
- 312, 146, -1, 12, 281, -1, -1, 71, 140, 261,
- 228, 141, -1, -1, 265, 139, 71, 140, 262, 228,
- 141, -1, -1, 265, 139, 295, 140, 263, 228, 141,
- -1, -1, 295, 140, 264, 228, 141, -1, 71, -1,
- 71, -1, 267, -1, -1, -1, 298, 120, 268, 302,
- 269, 270, -1, 298, -1, 270, 271, -1, -1, 120,
- 302, -1, -1, 140, 141, -1, 140, 281, 141, -1,
- -1, 140, 228, 141, -1, 69, -1, 70, -1, 79,
- -1, 127, -1, 128, -1, 124, -1, 125, -1, 126,
- -1, 274, -1, 71, -1, 42, 275, -1, 43, 275,
- -1, 123, 140, 278, 141, -1, 276, -1, 71, 139,
- 71, -1, 71, -1, 72, -1, 319, -1, 274, -1,
- 147, 312, 147, -1, 148, 312, 148, -1, 135, 312,
- 136, -1, -1, 280, 279, -1, -1, 8, -1, 280,
- 8, 275, 121, 275, -1, 280, 8, 275, -1, 275,
- 121, 275, -1, 275, -1, 282, -1, 249, -1, 287,
- -1, -1, 287, 284, -1, -1, 287, 286, -1, -1,
- -1, 297, 120, 288, 302, 289, 293, 290, -1, 297,
- -1, 290, 291, -1, -1, -1, 120, 302, 292, 293,
- -1, -1, 140, 294, 228, 141, -1, -1, 299, -1,
- 306, 299, -1, 265, 139, 295, -1, 298, -1, 260,
- -1, 299, -1, 306, 299, -1, 296, -1, 299, 61,
- 301, 149, -1, 299, 143, 281, 144, -1, 300, -1,
- 73, -1, 145, 143, 281, 144, -1, -1, 281, -1,
- 304, -1, -1, 295, 303, -1, 304, 61, 301, 149,
- -1, 304, 143, 281, 144, -1, 305, -1, 71, -1,
- 143, 281, 144, -1, 145, -1, 306, 145, -1, 307,
- 8, 308, -1, 308, -1, 287, -1, -1, 122, 140,
- 309, 307, 141, -1, -1, -1, 311, 279, -1, 311,
- 8, 281, 121, 281, -1, 311, 8, 281, -1, 281,
- 121, 281, -1, 281, -1, 311, 8, 281, 121, 31,
- 283, -1, 311, 8, 31, 283, -1, 281, 121, 31,
- 283, -1, 31, 283, -1, 312, 313, -1, 312, 71,
- -1, 312, 74, -1, 312, 78, -1, 312, 76, -1,
- 312, 77, -1, 312, 61, -1, 312, 149, -1, 312,
- 143, -1, 312, 144, -1, 312, 120, -1, -1, 73,
- -1, -1, 73, 61, 314, 315, 149, -1, 73, 120,
- 71, -1, 137, 281, 144, -1, 137, 72, 61, 281,
- 149, 144, -1, 138, 287, 144, -1, 71, -1, 74,
- -1, 73, -1, 113, 140, 317, 141, -1, 114, 140,
- 287, 141, -1, 7, 281, -1, 6, 281, -1, 5,
- 140, 281, 141, -1, 4, 281, -1, 3, 281, -1,
- 287, -1, -1, 317, 8, 318, 287, -1, 265, 139,
- 71, -1
+ 190, -1, 191, -1, 115, 140, 141, 142, -1, 159,
+ -1, 143, 155, 144, -1, -1, -1, 65, 140, 279,
+ 141, 160, 158, 161, 217, 221, -1, -1, -1, 65,
+ 140, 279, 141, 26, 162, 155, 163, 219, 222, 68,
+ 142, -1, -1, -1, 82, 140, 164, 279, 141, 165,
+ 216, -1, -1, -1, 81, 166, 158, 82, 140, 167,
+ 279, 141, 142, -1, -1, -1, -1, 84, 140, 244,
+ 142, 168, 244, 142, 169, 244, 141, 170, 207, -1,
+ -1, 91, 140, 279, 141, 171, 211, -1, 95, 142,
+ -1, 95, 279, 142, -1, 96, 142, -1, 96, 279,
+ 142, -1, 99, 142, -1, 99, 247, 142, -1, 99,
+ 285, 142, -1, 104, 228, 142, -1, 110, 230, 142,
+ -1, 80, 243, 142, -1, 75, -1, 279, 142, -1,
+ 103, 189, 142, -1, 112, 140, 187, 141, 142, -1,
+ -1, -1, 86, 140, 285, 90, 172, 206, 205, 141,
+ 173, 208, -1, -1, -1, 86, 140, 247, 90, 174,
+ 285, 205, 141, 175, 208, -1, -1, 88, 176, 140,
+ 210, 141, 209, -1, 142, -1, -1, -1, -1, -1,
+ -1, 100, 177, 143, 155, 144, 101, 140, 178, 263,
+ 179, 73, 141, 180, 143, 155, 144, 181, 182, -1,
+ 102, 279, 142, -1, 183, -1, -1, 184, -1, 183,
+ 184, -1, -1, -1, 101, 140, 263, 185, 73, 141,
+ 186, 143, 155, 144, -1, 188, -1, 187, 8, 188,
+ -1, 285, -1, 79, -1, 140, 79, 141, -1, 193,
+ -1, 196, -1, -1, 31, -1, -1, -1, 97, 194,
+ 192, 71, 195, 140, 223, 141, 143, 155, 144, -1,
+ -1, 199, 71, 200, 197, 203, 143, 231, 144, -1,
+ -1, 201, 71, 198, 202, 143, 231, 144, -1, 116,
+ -1, 109, 116, -1, 108, 116, -1, -1, 118, 263,
+ -1, 117, -1, -1, 118, 204, -1, -1, 119, 204,
+ -1, 263, -1, 204, 8, 263, -1, -1, 121, 206,
+ -1, 285, -1, 31, 285, -1, 158, -1, 26, 155,
+ 85, 142, -1, 158, -1, 26, 155, 87, 142, -1,
+ 158, -1, 26, 155, 89, 142, -1, 71, 13, 273,
+ -1, 210, 8, 71, 13, 273, -1, 143, 212, 144,
+ -1, 143, 142, 212, 144, -1, 26, 212, 92, 142,
+ -1, 26, 142, 212, 92, 142, -1, -1, -1, 212,
+ 93, 279, 215, 213, 155, -1, -1, 212, 94, 215,
+ 214, 155, -1, 26, -1, 142, -1, 158, -1, 26,
+ 155, 83, 142, -1, -1, -1, 217, 66, 140, 279,
+ 141, 218, 158, -1, -1, -1, 219, 66, 140, 279,
+ 141, 26, 220, 155, -1, -1, 67, 158, -1, -1,
+ 67, 26, 155, -1, 224, -1, -1, 225, 73, -1,
+ 225, 31, 73, -1, 225, 31, 73, 13, 273, -1,
+ 225, 73, 13, 273, -1, 224, 8, 225, 73, -1,
+ 224, 8, 225, 31, 73, -1, 224, 8, 225, 31,
+ 73, 13, 273, -1, 224, 8, 225, 73, 13, 273,
+ -1, -1, 71, -1, 123, -1, 227, -1, -1, 247,
+ -1, 285, -1, 31, 281, -1, 227, 8, 247, -1,
+ 227, 8, 285, -1, 227, 8, 31, 281, -1, 228,
+ 8, 229, -1, 229, -1, 73, -1, 145, 280, -1,
+ 145, 143, 279, 144, -1, 230, 8, 73, -1, 230,
+ 8, 73, 13, 273, -1, 73, -1, 73, 13, 273,
+ -1, 231, 232, -1, -1, -1, 237, 233, 241, 142,
+ -1, 242, 142, -1, -1, -1, 238, 97, 234, 192,
+ 71, 235, 140, 223, 141, 236, -1, 142, -1, 143,
+ 155, 144, -1, 239, -1, 111, -1, -1, 239, -1,
+ 240, -1, 239, 240, -1, 105, -1, 106, -1, 107,
+ -1, 110, -1, 109, -1, 108, -1, 241, 8, 73,
+ -1, 241, 8, 73, 13, 273, -1, 73, -1, 73,
+ 13, 273, -1, 242, 8, 71, 13, 273, -1, 98,
+ 71, 13, 273, -1, 243, 8, 279, -1, 279, -1,
+ -1, 245, -1, -1, 245, 8, 246, 279, -1, 279,
+ -1, -1, 122, 140, 248, 305, 141, 13, 279, -1,
+ 285, 13, 279, -1, 285, 13, 31, 285, -1, -1,
+ 285, 13, 31, 63, 264, 249, 271, -1, -1, 63,
+ 264, 250, 271, -1, 62, 279, -1, 285, 24, 279,
+ -1, 285, 23, 279, -1, 285, 22, 279, -1, 285,
+ 21, 279, -1, 285, 20, 279, -1, 285, 19, 279,
+ -1, 285, 18, 279, -1, 285, 17, 279, -1, 285,
+ 16, 279, -1, 285, 15, 279, -1, 285, 14, 279,
+ -1, 283, 60, -1, 60, 283, -1, 283, 59, -1,
+ 59, 283, -1, -1, 279, 27, 251, 279, -1, -1,
+ 279, 28, 252, 279, -1, -1, 279, 9, 253, 279,
+ -1, -1, 279, 11, 254, 279, -1, 279, 10, 279,
+ -1, 279, 29, 279, -1, 279, 31, 279, -1, 279,
+ 30, 279, -1, 279, 44, 279, -1, 279, 42, 279,
+ -1, 279, 43, 279, -1, 279, 45, 279, -1, 279,
+ 46, 279, -1, 279, 47, 279, -1, 279, 41, 279,
+ -1, 279, 40, 279, -1, 42, 279, -1, 43, 279,
+ -1, 48, 279, -1, 50, 279, -1, 279, 33, 279,
+ -1, 279, 32, 279, -1, 279, 35, 279, -1, 279,
+ 34, 279, -1, 279, 36, 279, -1, 279, 39, 279,
+ -1, 279, 37, 279, -1, 279, 38, 279, -1, 279,
+ 49, 264, -1, 140, 279, 141, -1, -1, -1, 279,
+ 25, 255, 279, 26, 256, 279, -1, 314, -1, 58,
+ 279, -1, 57, 279, -1, 56, 279, -1, 55, 279,
+ -1, 54, 279, -1, 53, 279, -1, 52, 279, -1,
+ 64, 270, -1, -1, 51, 257, 279, -1, 275, -1,
+ 123, 140, 308, 141, -1, 146, 310, 146, -1, 12,
+ 279, -1, -1, 71, 140, 259, 226, 141, -1, -1,
+ 263, 139, 71, 140, 260, 226, 141, -1, -1, 263,
+ 139, 293, 140, 261, 226, 141, -1, -1, 293, 140,
+ 262, 226, 141, -1, 71, -1, 71, -1, 265, -1,
+ -1, -1, 296, 120, 266, 300, 267, 268, -1, 296,
+ -1, 268, 269, -1, -1, 120, 300, -1, -1, 140,
+ 141, -1, 140, 279, 141, -1, -1, 140, 226, 141,
+ -1, 69, -1, 70, -1, 79, -1, 127, -1, 128,
+ -1, 124, -1, 125, -1, 126, -1, 272, -1, 71,
+ -1, 42, 273, -1, 43, 273, -1, 123, 140, 276,
+ 141, -1, 274, -1, 71, 139, 71, -1, 71, -1,
+ 72, -1, 317, -1, 272, -1, 147, 310, 147, -1,
+ 148, 310, 148, -1, 135, 310, 136, -1, -1, 278,
+ 277, -1, -1, 8, -1, 278, 8, 273, 121, 273,
+ -1, 278, 8, 273, -1, 273, 121, 273, -1, 273,
+ -1, 280, -1, 247, -1, 285, -1, -1, 285, 282,
+ -1, -1, 285, 284, -1, -1, -1, 295, 120, 286,
+ 300, 287, 291, 288, -1, 295, -1, 288, 289, -1,
+ -1, -1, 120, 300, 290, 291, -1, -1, 140, 292,
+ 226, 141, -1, -1, 297, -1, 304, 297, -1, 263,
+ 139, 293, -1, 296, -1, 258, -1, 297, -1, 304,
+ 297, -1, 294, -1, 297, 61, 299, 149, -1, 297,
+ 143, 279, 144, -1, 298, -1, 73, -1, 145, 143,
+ 279, 144, -1, -1, 279, -1, 302, -1, -1, 293,
+ 301, -1, 302, 61, 299, 149, -1, 302, 143, 279,
+ 144, -1, 303, -1, 71, -1, 143, 279, 144, -1,
+ 145, -1, 304, 145, -1, 305, 8, 306, -1, 306,
+ -1, 285, -1, -1, 122, 140, 307, 305, 141, -1,
+ -1, -1, 309, 277, -1, 309, 8, 279, 121, 279,
+ -1, 309, 8, 279, -1, 279, 121, 279, -1, 279,
+ -1, 309, 8, 279, 121, 31, 281, -1, 309, 8,
+ 31, 281, -1, 279, 121, 31, 281, -1, 31, 281,
+ -1, 310, 311, -1, 310, 71, -1, 310, 74, -1,
+ 310, 78, -1, 310, 76, -1, 310, 77, -1, 310,
+ 61, -1, 310, 149, -1, 310, 143, -1, 310, 144,
+ -1, 310, 120, -1, -1, 73, -1, -1, 73, 61,
+ 312, 313, 149, -1, 73, 120, 71, -1, 137, 279,
+ 144, -1, 137, 72, 61, 279, 149, 144, -1, 138,
+ 285, 144, -1, 71, -1, 74, -1, 73, -1, 113,
+ 140, 315, 141, -1, 114, 140, 285, 141, -1, 7,
+ 279, -1, 6, 279, -1, 5, 140, 279, 141, -1,
+ 4, 279, -1, 3, 279, -1, 285, -1, -1, 315,
+ 8, 316, 285, -1, 263, 139, 71, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -876,44 +875,44 @@ static const yytype_uint16 yyrline[] =
189, 189, 190, 190, 190, 191, 191, 191, 192, 192,
192, 196, 198, 200, 193, 202, 202, 203, 204, 205,
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 217, 221, 222, 223, 221, 225,
- 225, 226, 227, 228, 229, 230, 231, 227, 233, 238,
- 239, 243, 244, 249, 249, 249, 254, 255, 259, 263,
- 264, 269, 273, 278, 279, 284, 284, 284, 290, 289,
- 296, 295, 305, 306, 307, 311, 312, 316, 319, 321,
- 324, 326, 330, 331, 335, 336, 341, 342, 346, 347,
- 352, 353, 358, 359, 364, 365, 370, 371, 372, 373,
- 378, 379, 379, 380, 380, 385, 386, 391, 392, 397,
- 399, 399, 403, 405, 405, 409, 411, 415, 417, 422,
- 423, 428, 429, 430, 431, 432, 433, 434, 435, 440,
- 441, 442, 447, 448, 453, 454, 455, 456, 457, 458,
- 462, 463, 468, 469, 470, 475, 476, 477, 478, 484,
- 485, 490, 490, 491, 492, 492, 492, 498, 499, 503,
- 504, 508, 509, 513, 514, 518, 519, 520, 521, 522,
- 523, 527, 528, 529, 530, 534, 535, 539, 540, 545,
- 546, 550, 550, 551, 555, 555, 556, 557, 558, 558,
- 559, 559, 560, 561, 562, 563, 564, 565, 566, 567,
- 568, 569, 570, 571, 572, 573, 574, 575, 576, 576,
- 577, 577, 578, 578, 579, 579, 580, 581, 582, 583,
- 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
- 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
- 604, 605, 606, 607, 606, 609, 610, 611, 612, 613,
- 614, 615, 616, 617, 618, 618, 619, 620, 621, 622,
- 626, 626, 629, 629, 632, 632, 635, 635, 641, 645,
- 646, 651, 652, 651, 654, 659, 660, 665, 669, 670,
- 671, 676, 677, 682, 683, 684, 685, 686, 687, 688,
- 689, 694, 695, 696, 697, 698, 699, 703, 707, 708,
- 709, 710, 711, 712, 713, 718, 719, 722, 724, 728,
- 729, 730, 731, 735, 736, 741, 746, 746, 751, 751,
- 756, 757, 756, 759, 763, 764, 769, 769, 773, 773,
- 777, 781, 782, 786, 791, 792, 797, 798, 799, 803,
- 804, 805, 810, 811, 815, 816, 821, 822, 822, 826,
- 827, 828, 832, 833, 837, 838, 842, 843, 848, 849,
- 849, 850, 855, 856, 860, 861, 862, 863, 864, 865,
- 866, 867, 871, 872, 873, 874, 875, 876, 877, 878,
- 879, 880, 881, 882, 889, 890, 890, 891, 892, 893,
- 894, 899, 900, 901, 906, 907, 908, 909, 910, 911,
- 912, 916, 917, 917, 921
+ 216, 218, 219, 217, 222, 223, 221, 225, 225, 226,
+ 227, 228, 229, 230, 231, 227, 233, 238, 239, 243,
+ 244, 249, 249, 249, 254, 255, 259, 263, 264, 269,
+ 273, 278, 279, 284, 284, 284, 290, 289, 296, 295,
+ 305, 306, 307, 311, 312, 316, 319, 321, 324, 326,
+ 330, 331, 335, 336, 341, 342, 346, 347, 352, 353,
+ 358, 359, 364, 365, 370, 371, 372, 373, 378, 379,
+ 379, 380, 380, 385, 386, 391, 392, 397, 399, 399,
+ 403, 405, 405, 409, 411, 415, 417, 422, 423, 428,
+ 429, 430, 431, 432, 433, 434, 435, 440, 441, 442,
+ 447, 448, 453, 454, 455, 456, 457, 458, 462, 463,
+ 468, 469, 470, 475, 476, 477, 478, 484, 485, 490,
+ 490, 491, 492, 492, 492, 498, 499, 503, 504, 508,
+ 509, 513, 514, 518, 519, 520, 521, 522, 523, 527,
+ 528, 529, 530, 534, 535, 539, 540, 545, 546, 550,
+ 550, 551, 555, 555, 556, 557, 558, 558, 559, 559,
+ 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
+ 570, 571, 572, 573, 574, 575, 576, 576, 577, 577,
+ 578, 578, 579, 579, 580, 581, 582, 583, 584, 585,
+ 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
+ 596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 606, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 618, 618, 619, 620, 621, 622, 626, 626,
+ 629, 629, 632, 632, 635, 635, 641, 645, 646, 651,
+ 652, 651, 654, 659, 660, 665, 669, 670, 671, 676,
+ 677, 682, 683, 684, 685, 686, 687, 688, 689, 694,
+ 695, 696, 697, 698, 699, 703, 707, 708, 709, 710,
+ 711, 712, 713, 718, 719, 722, 724, 728, 729, 730,
+ 731, 735, 736, 741, 746, 746, 751, 751, 756, 757,
+ 756, 759, 763, 764, 769, 769, 773, 773, 777, 781,
+ 782, 786, 791, 792, 797, 798, 799, 803, 804, 805,
+ 810, 811, 815, 816, 821, 822, 822, 826, 827, 828,
+ 832, 833, 837, 838, 842, 843, 848, 849, 849, 850,
+ 855, 856, 860, 861, 862, 863, 864, 865, 866, 867,
+ 871, 872, 873, 874, 875, 876, 877, 878, 879, 880,
+ 881, 882, 889, 890, 890, 891, 892, 893, 894, 899,
+ 900, 901, 906, 907, 908, 909, 910, 911, 912, 916,
+ 917, 917, 921
};
#endif
@@ -955,46 +954,46 @@ static const char *const yytname[] =
"inner_statement_list", "@2", "inner_statement", "statement",
"unticked_statement", "@3", "@4", "@5", "@6", "@7", "@8", "@9", "@10",
"@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20",
- "@21", "@22", "@23", "@24", "@25", "@26", "additional_catches",
- "non_empty_additional_catches", "additional_catch", "@27", "@28",
+ "@21", "@22", "@23", "@24", "additional_catches",
+ "non_empty_additional_catches", "additional_catch", "@25", "@26",
"unset_variables", "unset_variable", "use_filename",
"function_declaration_statement", "class_declaration_statement",
- "is_reference", "unticked_function_declaration_statement", "@29", "@30",
- "unticked_class_declaration_statement", "@31", "@32", "class_entry_type",
+ "is_reference", "unticked_function_declaration_statement", "@27", "@28",
+ "unticked_class_declaration_statement", "@29", "@30", "class_entry_type",
"extends_from", "interface_entry", "interface_extends_list",
"implements_list", "interface_list", "foreach_optional_arg",
"foreach_variable", "for_statement", "foreach_statement",
"declare_statement", "declare_list", "switch_case_list", "case_list",
- "@33", "@34", "case_separator", "while_statement", "elseif_list", "@35",
- "new_elseif_list", "@36", "else_single", "new_else_single",
+ "@31", "@32", "case_separator", "while_statement", "elseif_list", "@33",
+ "new_elseif_list", "@34", "else_single", "new_else_single",
"parameter_list", "non_empty_parameter_list", "optional_class_type",
"function_call_parameter_list", "non_empty_function_call_parameter_list",
"global_var_list", "global_var", "static_var_list",
- "class_statement_list", "class_statement", "@37", "@38", "@39",
+ "class_statement_list", "class_statement", "@35", "@36", "@37",
"method_body", "variable_modifiers", "method_modifiers",
"non_empty_member_modifiers", "member_modifier",
"class_variable_declaration", "class_constant_declaration",
- "echo_expr_list", "for_expr", "non_empty_for_expr", "@40",
- "expr_without_variable", "@41", "@42", "@43", "@44", "@45", "@46", "@47",
- "@48", "@49", "@50", "function_call", "@51", "@52", "@53", "@54",
+ "echo_expr_list", "for_expr", "non_empty_for_expr", "@38",
+ "expr_without_variable", "@39", "@40", "@41", "@42", "@43", "@44", "@45",
+ "@46", "@47", "@48", "function_call", "@49", "@50", "@51", "@52",
"fully_qualified_class_name", "class_name_reference",
- "dynamic_class_name_reference", "@55", "@56",
+ "dynamic_class_name_reference", "@53", "@54",
"dynamic_class_name_variable_properties",
"dynamic_class_name_variable_property", "exit_expr", "ctor_arguments",
"common_scalar", "static_scalar", "static_class_constant", "scalar",
"static_array_pair_list", "possible_comma",
"non_empty_static_array_pair_list", "expr", "r_variable", "w_variable",
- "@57", "rw_variable", "@58", "variable", "@59", "@60",
- "variable_properties", "variable_property", "@61", "method_or_not",
- "@62", "variable_without_objects", "static_member",
+ "@55", "rw_variable", "@56", "variable", "@57", "@58",
+ "variable_properties", "variable_property", "@59", "method_or_not",
+ "@60", "variable_without_objects", "static_member",
"base_variable_with_function_calls", "base_variable",
"reference_variable", "compound_variable", "dim_offset",
- "object_property", "@63", "object_dim_list", "variable_name",
+ "object_property", "@61", "object_dim_list", "variable_name",
"simple_indirect_reference", "assignment_list",
- "assignment_list_element", "@64", "array_pair_list",
- "non_empty_array_pair_list", "encaps_list", "encaps_var", "@65",
+ "assignment_list_element", "@62", "array_pair_list",
+ "non_empty_array_pair_list", "encaps_list", "encaps_var", "@63",
"encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
- "@66", "class_constant", 0
+ "@64", "class_constant", 0
};
#endif
@@ -1029,44 +1028,44 @@ static const yytype_uint16 yyr1[] =
161, 159, 162, 163, 159, 164, 165, 159, 166, 167,
159, 168, 169, 170, 159, 171, 159, 159, 159, 159,
159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 172, 173, 174, 159, 175, 176, 177, 159, 178,
- 159, 159, 179, 180, 181, 182, 183, 159, 159, 184,
- 184, 185, 185, 187, 188, 186, 189, 189, 190, 191,
- 191, 192, 193, 194, 194, 196, 197, 195, 199, 198,
- 200, 198, 201, 201, 201, 202, 202, 203, 204, 204,
- 205, 205, 206, 206, 207, 207, 208, 208, 209, 209,
- 210, 210, 211, 211, 212, 212, 213, 213, 213, 213,
- 214, 215, 214, 216, 214, 217, 217, 218, 218, 219,
- 220, 219, 221, 222, 221, 223, 223, 224, 224, 225,
- 225, 226, 226, 226, 226, 226, 226, 226, 226, 227,
- 227, 227, 228, 228, 229, 229, 229, 229, 229, 229,
- 230, 230, 231, 231, 231, 232, 232, 232, 232, 233,
- 233, 235, 234, 234, 236, 237, 234, 238, 238, 239,
- 239, 240, 240, 241, 241, 242, 242, 242, 242, 242,
- 242, 243, 243, 243, 243, 244, 244, 245, 245, 246,
- 246, 248, 247, 247, 250, 249, 249, 249, 251, 249,
- 252, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 249, 249, 253, 249,
- 254, 249, 255, 249, 256, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 257, 258, 249, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 259, 249, 249, 249, 249, 249,
- 261, 260, 262, 260, 263, 260, 264, 260, 265, 266,
- 266, 268, 269, 267, 267, 270, 270, 271, 272, 272,
- 272, 273, 273, 274, 274, 274, 274, 274, 274, 274,
- 274, 275, 275, 275, 275, 275, 275, 276, 277, 277,
- 277, 277, 277, 277, 277, 278, 278, 279, 279, 280,
- 280, 280, 280, 281, 281, 282, 284, 283, 286, 285,
- 288, 289, 287, 287, 290, 290, 292, 291, 294, 293,
- 293, 295, 295, 296, 297, 297, 298, 298, 298, 299,
- 299, 299, 300, 300, 301, 301, 302, 303, 302, 304,
- 304, 304, 305, 305, 306, 306, 307, 307, 308, 309,
- 308, 308, 310, 310, 311, 311, 311, 311, 311, 311,
- 311, 311, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 313, 314, 313, 313, 313, 313,
- 313, 315, 315, 315, 316, 316, 316, 316, 316, 316,
- 316, 317, 318, 317, 319
+ 159, 172, 173, 159, 174, 175, 159, 176, 159, 159,
+ 177, 178, 179, 180, 181, 159, 159, 182, 182, 183,
+ 183, 185, 186, 184, 187, 187, 188, 189, 189, 190,
+ 191, 192, 192, 194, 195, 193, 197, 196, 198, 196,
+ 199, 199, 199, 200, 200, 201, 202, 202, 203, 203,
+ 204, 204, 205, 205, 206, 206, 207, 207, 208, 208,
+ 209, 209, 210, 210, 211, 211, 211, 211, 212, 213,
+ 212, 214, 212, 215, 215, 216, 216, 217, 218, 217,
+ 219, 220, 219, 221, 221, 222, 222, 223, 223, 224,
+ 224, 224, 224, 224, 224, 224, 224, 225, 225, 225,
+ 226, 226, 227, 227, 227, 227, 227, 227, 228, 228,
+ 229, 229, 229, 230, 230, 230, 230, 231, 231, 233,
+ 232, 232, 234, 235, 232, 236, 236, 237, 237, 238,
+ 238, 239, 239, 240, 240, 240, 240, 240, 240, 241,
+ 241, 241, 241, 242, 242, 243, 243, 244, 244, 246,
+ 245, 245, 248, 247, 247, 247, 249, 247, 250, 247,
+ 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 247, 247, 247, 247, 251, 247, 252, 247,
+ 253, 247, 254, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
+ 255, 256, 247, 247, 247, 247, 247, 247, 247, 247,
+ 247, 247, 257, 247, 247, 247, 247, 247, 259, 258,
+ 260, 258, 261, 258, 262, 258, 263, 264, 264, 266,
+ 267, 265, 265, 268, 268, 269, 270, 270, 270, 271,
+ 271, 272, 272, 272, 272, 272, 272, 272, 272, 273,
+ 273, 273, 273, 273, 273, 274, 275, 275, 275, 275,
+ 275, 275, 275, 276, 276, 277, 277, 278, 278, 278,
+ 278, 279, 279, 280, 282, 281, 284, 283, 286, 287,
+ 285, 285, 288, 288, 290, 289, 292, 291, 291, 293,
+ 293, 294, 295, 295, 296, 296, 296, 297, 297, 297,
+ 298, 298, 299, 299, 300, 301, 300, 302, 302, 302,
+ 303, 303, 304, 304, 305, 305, 306, 307, 306, 306,
+ 308, 308, 309, 309, 309, 309, 309, 309, 309, 309,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 311, 312, 311, 311, 311, 311, 311, 313,
+ 313, 313, 314, 314, 314, 314, 314, 314, 314, 315,
+ 316, 315, 317
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1077,44 +1076,44 @@ static const yytype_uint8 yyr2[] =
0, 9, 0, 0, 12, 0, 0, 7, 0, 0,
9, 0, 0, 0, 12, 0, 6, 2, 3, 2,
3, 2, 3, 3, 3, 3, 3, 1, 2, 3,
- 5, 0, 0, 0, 11, 0, 0, 0, 11, 0,
- 6, 1, 0, 0, 0, 0, 0, 18, 3, 1,
- 0, 1, 2, 0, 0, 10, 1, 3, 1, 1,
- 3, 1, 1, 0, 1, 0, 0, 11, 0, 8,
- 0, 7, 1, 2, 2, 0, 2, 1, 0, 2,
- 0, 2, 1, 3, 0, 2, 1, 2, 1, 4,
- 1, 4, 1, 4, 3, 5, 3, 4, 4, 5,
- 0, 0, 6, 0, 5, 1, 1, 1, 4, 0,
- 0, 7, 0, 0, 8, 0, 2, 0, 3, 1,
- 0, 2, 3, 5, 4, 4, 5, 7, 6, 0,
- 1, 1, 1, 0, 1, 1, 2, 3, 3, 4,
- 3, 1, 1, 2, 4, 3, 5, 1, 3, 2,
- 0, 0, 4, 2, 0, 0, 10, 1, 3, 1,
- 1, 0, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 3, 5, 1, 3, 5, 4, 3, 1, 0,
- 1, 0, 4, 1, 0, 7, 3, 4, 0, 7,
- 0, 4, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 2, 2, 2, 2, 0, 4,
- 0, 4, 0, 4, 0, 4, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
- 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 0, 0, 7, 1, 2, 2, 2, 2,
- 2, 2, 2, 2, 0, 3, 1, 4, 3, 2,
- 0, 5, 0, 7, 0, 7, 0, 5, 1, 1,
- 1, 0, 0, 6, 1, 2, 0, 2, 0, 2,
- 3, 0, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 2, 4, 1, 3, 1, 1,
- 1, 1, 3, 3, 3, 0, 2, 0, 1, 5,
- 3, 3, 1, 1, 1, 1, 0, 2, 0, 2,
- 0, 0, 7, 1, 2, 0, 0, 4, 0, 4,
- 0, 1, 2, 3, 1, 1, 1, 2, 1, 4,
- 4, 1, 1, 4, 0, 1, 1, 0, 2, 4,
- 4, 1, 1, 3, 1, 2, 3, 1, 1, 0,
- 5, 0, 0, 2, 5, 3, 3, 1, 6, 4,
- 4, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 0, 1, 0, 5, 3, 3, 6,
- 3, 1, 1, 1, 4, 4, 2, 2, 4, 2,
- 2, 1, 0, 4, 3
+ 5, 0, 0, 10, 0, 0, 10, 0, 6, 1,
+ 0, 0, 0, 0, 0, 18, 3, 1, 0, 1,
+ 2, 0, 0, 10, 1, 3, 1, 1, 3, 1,
+ 1, 0, 1, 0, 0, 11, 0, 8, 0, 7,
+ 1, 2, 2, 0, 2, 1, 0, 2, 0, 2,
+ 1, 3, 0, 2, 1, 2, 1, 4, 1, 4,
+ 1, 4, 3, 5, 3, 4, 4, 5, 0, 0,
+ 6, 0, 5, 1, 1, 1, 4, 0, 0, 7,
+ 0, 0, 8, 0, 2, 0, 3, 1, 0, 2,
+ 3, 5, 4, 4, 5, 7, 6, 0, 1, 1,
+ 1, 0, 1, 1, 2, 3, 3, 4, 3, 1,
+ 1, 2, 4, 3, 5, 1, 3, 2, 0, 0,
+ 4, 2, 0, 0, 10, 1, 3, 1, 1, 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 3,
+ 5, 1, 3, 5, 4, 3, 1, 0, 1, 0,
+ 4, 1, 0, 7, 3, 4, 0, 7, 0, 4,
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 2, 2, 2, 2, 0, 4, 0, 4,
+ 0, 4, 0, 4, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 0, 0, 7, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 0, 3, 1, 4, 3, 2, 0, 5,
+ 0, 7, 0, 7, 0, 5, 1, 1, 1, 0,
+ 0, 6, 1, 2, 0, 2, 0, 2, 3, 0,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 4, 1, 3, 1, 1, 1, 1,
+ 3, 3, 3, 0, 2, 0, 1, 5, 3, 3,
+ 1, 1, 1, 1, 0, 2, 0, 2, 0, 0,
+ 7, 1, 2, 0, 0, 4, 0, 4, 0, 1,
+ 2, 3, 1, 1, 1, 2, 1, 4, 4, 1,
+ 1, 4, 0, 1, 1, 0, 2, 4, 4, 1,
+ 1, 3, 1, 2, 3, 1, 1, 0, 5, 0,
+ 0, 2, 5, 3, 3, 1, 6, 4, 4, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 0, 1, 0, 5, 3, 3, 6, 3, 1,
+ 1, 1, 4, 4, 2, 2, 4, 2, 2, 1,
+ 0, 4, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1123,347 +1122,359 @@ static const yytype_uint8 yyr2[] =
static const yytype_uint16 yydefact[] =
{
5, 0, 3, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 274, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 298, 0, 303,
- 304, 318, 319, 362, 47, 305, 0, 28, 0, 0,
- 0, 59, 0, 0, 0, 85, 0, 62, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 92, 97,
- 0, 0, 308, 309, 310, 306, 307, 403, 0, 61,
- 12, 374, 403, 403, 403, 4, 6, 17, 7, 8,
- 81, 82, 0, 0, 334, 355, 0, 321, 276, 0,
- 333, 0, 335, 0, 358, 343, 354, 356, 361, 0,
- 265, 320, 420, 419, 0, 417, 416, 279, 248, 249,
- 250, 251, 0, 272, 271, 270, 269, 268, 267, 266,
- 288, 0, 227, 338, 225, 212, 289, 0, 210, 290,
- 294, 356, 0, 0, 273, 0, 280, 0, 198, 0,
- 25, 199, 0, 0, 0, 37, 0, 39, 0, 83,
- 41, 334, 0, 335, 0, 0, 79, 0, 0, 162,
- 0, 0, 161, 94, 93, 167, 0, 0, 0, 0,
- 0, 204, 382, 0, 0, 10, 0, 0, 0, 0,
- 95, 90, 0, 232, 0, 234, 262, 228, 230, 0,
+ 0, 0, 0, 0, 0, 272, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 296, 0, 301,
+ 302, 316, 317, 360, 47, 303, 0, 28, 0, 0,
+ 0, 57, 0, 0, 0, 83, 0, 60, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 90, 95,
+ 0, 0, 306, 307, 308, 304, 305, 401, 0, 59,
+ 12, 372, 401, 401, 401, 4, 6, 17, 7, 8,
+ 79, 80, 0, 0, 332, 353, 0, 319, 274, 0,
+ 331, 0, 333, 0, 356, 341, 352, 354, 359, 0,
+ 263, 318, 418, 417, 0, 415, 414, 277, 246, 247,
+ 248, 249, 0, 270, 269, 268, 267, 266, 265, 264,
+ 286, 0, 225, 336, 223, 210, 287, 0, 208, 288,
+ 292, 354, 0, 0, 271, 0, 278, 0, 196, 0,
+ 25, 197, 0, 0, 0, 37, 0, 39, 0, 81,
+ 41, 332, 0, 333, 0, 0, 77, 0, 0, 160,
+ 0, 0, 159, 92, 91, 165, 0, 0, 0, 0,
+ 0, 202, 380, 0, 0, 10, 0, 0, 0, 0,
+ 93, 88, 0, 230, 0, 232, 260, 226, 228, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
- 226, 224, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 339, 286, 340, 364, 0, 375,
- 357, 0, 275, 0, 0, 301, 291, 357, 299, 0,
- 0, 153, 0, 46, 0, 0, 0, 200, 203, 334,
- 335, 0, 0, 38, 40, 84, 0, 42, 43, 12,
- 68, 0, 49, 0, 163, 335, 0, 44, 0, 0,
- 45, 0, 76, 78, 421, 0, 0, 0, 381, 0,
- 387, 0, 327, 398, 393, 404, 394, 396, 397, 395,
- 402, 324, 0, 0, 400, 401, 399, 392, 261, 18,
- 0, 0, 278, 322, 323, 0, 88, 98, 424, 353,
- 351, 0, 0, 236, 0, 0, 0, 0, 237, 239,
- 238, 253, 252, 255, 254, 256, 258, 259, 257, 247,
- 246, 241, 242, 240, 243, 244, 245, 260, 0, 206,
- 223, 222, 221, 220, 219, 218, 217, 216, 215, 214,
- 213, 153, 0, 365, 0, 0, 418, 0, 353, 153,
- 211, 0, 300, 19, 0, 0, 152, 334, 335, 197,
- 0, 0, 31, 201, 0, 0, 0, 0, 35, 86,
- 10, 80, 0, 160, 0, 0, 312, 0, 311, 168,
- 316, 165, 0, 0, 422, 414, 415, 9, 0, 378,
- 0, 377, 391, 336, 0, 277, 328, 383, 405, 0,
- 319, 0, 0, 0, 11, 13, 14, 15, 363, 288,
- 96, 100, 0, 0, 282, 284, 352, 233, 235, 0,
- 229, 231, 0, 207, 0, 372, 0, 367, 341, 366,
- 371, 359, 360, 0, 292, 22, 0, 156, 281, 0,
- 29, 26, 199, 0, 56, 52, 0, 0, 0, 0,
- 0, 0, 164, 313, 314, 0, 325, 0, 77, 50,
- 0, 379, 381, 0, 337, 0, 386, 0, 385, 0,
- 407, 0, 408, 410, 0, 0, 0, 99, 102, 170,
- 153, 153, 263, 208, 287, 0, 368, 350, 364, 0,
- 302, 296, 12, 20, 0, 334, 335, 0, 0, 0,
- 202, 0, 0, 114, 0, 12, 112, 60, 120, 120,
- 36, 149, 0, 317, 332, 0, 327, 166, 423, 381,
- 376, 0, 390, 389, 0, 411, 413, 412, 0, 0,
- 0, 101, 170, 0, 181, 0, 0, 0, 301, 373,
- 348, 345, 0, 0, 293, 10, 129, 159, 0, 12,
- 127, 27, 32, 104, 0, 104, 106, 0, 10, 120,
- 0, 120, 0, 150, 151, 0, 139, 0, 63, 0,
- 315, 328, 326, 0, 205, 0, 384, 406, 0, 16,
- 181, 103, 0, 185, 186, 187, 190, 189, 188, 180,
- 91, 169, 171, 0, 179, 183, 0, 283, 285, 264,
- 209, 153, 342, 369, 370, 0, 295, 132, 135, 0,
- 10, 199, 0, 0, 107, 0, 115, 0, 0, 0,
- 0, 0, 0, 116, 0, 149, 0, 141, 0, 331,
- 330, 380, 388, 409, 89, 0, 0, 174, 184, 0,
- 173, 0, 0, 344, 297, 137, 0, 0, 21, 30,
- 0, 0, 105, 57, 53, 113, 0, 118, 0, 125,
- 126, 123, 117, 12, 0, 142, 0, 64, 0, 0,
- 193, 0, 83, 0, 349, 346, 0, 0, 0, 0,
- 136, 128, 33, 0, 0, 119, 121, 12, 10, 0,
- 145, 0, 144, 0, 329, 196, 0, 0, 172, 0,
- 0, 350, 0, 12, 0, 0, 0, 12, 110, 58,
- 54, 12, 10, 87, 146, 0, 143, 0, 194, 191,
- 175, 195, 347, 0, 10, 24, 130, 12, 108, 34,
- 10, 10, 0, 148, 65, 0, 0, 0, 0, 10,
- 0, 147, 0, 192, 149, 133, 131, 0, 111, 12,
- 0, 12, 109, 10, 0, 10, 66, 177, 12, 176,
- 70, 10, 0, 67, 69, 71, 178, 0, 72, 73,
- 0, 0, 74, 0, 12, 10, 75
+ 224, 222, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 337, 284, 338, 362, 0, 373,
+ 355, 0, 273, 0, 0, 299, 289, 355, 297, 0,
+ 0, 151, 0, 46, 0, 0, 0, 198, 201, 332,
+ 333, 0, 0, 38, 40, 82, 0, 42, 43, 12,
+ 66, 0, 49, 0, 161, 333, 0, 44, 0, 0,
+ 45, 0, 74, 76, 419, 0, 0, 0, 379, 0,
+ 385, 0, 325, 396, 391, 402, 392, 394, 395, 393,
+ 400, 322, 0, 0, 398, 399, 397, 390, 259, 18,
+ 0, 0, 276, 320, 321, 0, 86, 96, 422, 351,
+ 349, 0, 0, 234, 0, 0, 0, 0, 235, 237,
+ 236, 251, 250, 253, 252, 254, 256, 257, 255, 245,
+ 244, 239, 240, 238, 241, 242, 243, 258, 0, 204,
+ 221, 220, 219, 218, 217, 216, 215, 214, 213, 212,
+ 211, 151, 0, 363, 0, 0, 416, 0, 351, 151,
+ 209, 0, 298, 19, 0, 0, 150, 332, 333, 195,
+ 0, 0, 31, 199, 54, 51, 0, 0, 35, 84,
+ 10, 78, 0, 158, 0, 0, 310, 0, 309, 166,
+ 314, 163, 0, 0, 420, 412, 413, 9, 0, 376,
+ 0, 375, 389, 334, 0, 275, 326, 381, 403, 0,
+ 317, 0, 0, 0, 11, 13, 14, 15, 361, 286,
+ 94, 98, 0, 0, 280, 282, 350, 231, 233, 0,
+ 227, 229, 0, 205, 0, 370, 0, 365, 339, 364,
+ 369, 357, 358, 0, 290, 22, 0, 154, 279, 0,
+ 29, 26, 197, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 162, 311, 312, 0, 323, 0, 75, 50,
+ 0, 377, 379, 0, 335, 0, 384, 0, 383, 0,
+ 405, 0, 406, 408, 0, 0, 0, 97, 100, 168,
+ 151, 151, 261, 206, 285, 0, 366, 348, 362, 0,
+ 300, 294, 12, 20, 0, 332, 333, 0, 0, 0,
+ 200, 102, 0, 102, 104, 112, 0, 12, 110, 58,
+ 118, 118, 36, 147, 0, 315, 330, 0, 325, 164,
+ 421, 379, 374, 0, 388, 387, 0, 409, 411, 410,
+ 0, 0, 0, 99, 168, 0, 179, 0, 0, 0,
+ 299, 371, 346, 343, 0, 0, 291, 10, 127, 157,
+ 0, 12, 125, 27, 32, 0, 0, 105, 0, 0,
+ 10, 118, 0, 118, 0, 148, 149, 0, 137, 0,
+ 61, 0, 313, 326, 324, 0, 203, 0, 382, 404,
+ 0, 16, 179, 101, 0, 183, 184, 185, 188, 187,
+ 186, 178, 89, 167, 169, 0, 177, 181, 0, 281,
+ 283, 262, 207, 151, 340, 367, 368, 0, 293, 130,
+ 133, 0, 10, 197, 103, 55, 52, 113, 0, 0,
+ 0, 0, 0, 0, 114, 0, 147, 0, 139, 0,
+ 329, 328, 378, 386, 407, 87, 0, 0, 172, 182,
+ 0, 171, 0, 0, 342, 295, 135, 0, 0, 21,
+ 30, 0, 0, 0, 0, 111, 0, 116, 0, 123,
+ 124, 121, 115, 12, 0, 140, 0, 62, 0, 0,
+ 191, 0, 81, 0, 347, 344, 0, 0, 0, 0,
+ 134, 126, 33, 12, 108, 56, 53, 117, 119, 12,
+ 10, 0, 143, 0, 142, 0, 327, 194, 0, 0,
+ 170, 0, 0, 348, 0, 12, 0, 0, 0, 10,
+ 12, 10, 85, 144, 0, 141, 0, 192, 189, 173,
+ 193, 345, 0, 10, 24, 128, 12, 106, 34, 0,
+ 10, 0, 146, 63, 0, 0, 0, 0, 10, 109,
+ 145, 0, 190, 147, 131, 129, 0, 12, 0, 12,
+ 107, 10, 0, 10, 64, 175, 12, 174, 68, 10,
+ 0, 65, 67, 69, 176, 0, 70, 71, 0, 0,
+ 72, 0, 12, 10, 73
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 2, 4, 75, 175, 300, 414, 718, 77,
- 446, 556, 502, 617, 245, 508, 139, 507, 452, 621,
- 716, 459, 375, 512, 694, 374, 511, 693, 143, 154,
- 638, 703, 752, 770, 773, 774, 775, 780, 783, 271,
- 272, 158, 78, 79, 256, 80, 149, 460, 81, 421,
- 307, 82, 306, 83, 423, 486, 487, 623, 565, 739,
- 719, 517, 377, 520, 570, 721, 697, 671, 561, 618,
- 748, 655, 761, 658, 688, 575, 576, 577, 365, 366,
- 161, 162, 166, 544, 601, 646, 682, 746, 769, 602,
- 603, 604, 605, 681, 606, 137, 246, 247, 453, 84,
- 278, 548, 235, 316, 317, 312, 314, 315, 547, 112,
- 85, 241, 490, 491, 351, 86, 128, 129, 361, 501,
- 554, 616, 134, 360, 87, 389, 390, 88, 525, 407,
- 526, 89, 90, 402, 474, 91, 224, 92, 352, 497,
- 612, 653, 711, 551, 611, 93, 94, 95, 96, 97,
- 98, 354, 438, 496, 439, 440, 99, 400, 401, 529,
- 281, 282, 173, 297, 479, 538, 100, 275, 470, 101
+ -1, 1, 2, 4, 75, 175, 300, 414, 694, 77,
+ 446, 558, 502, 619, 245, 508, 139, 507, 452, 623,
+ 718, 459, 455, 664, 454, 663, 143, 154, 639, 705,
+ 751, 768, 771, 772, 773, 778, 781, 271, 272, 158,
+ 78, 79, 256, 80, 149, 460, 81, 421, 307, 82,
+ 306, 83, 423, 486, 487, 566, 513, 738, 695, 519,
+ 377, 522, 572, 720, 699, 671, 563, 620, 747, 656,
+ 759, 659, 688, 577, 578, 579, 365, 366, 161, 162,
+ 166, 546, 603, 647, 682, 745, 767, 604, 605, 606,
+ 607, 681, 608, 137, 246, 247, 453, 84, 278, 550,
+ 235, 316, 317, 312, 314, 315, 549, 112, 85, 241,
+ 490, 491, 351, 86, 128, 129, 361, 501, 556, 618,
+ 134, 360, 87, 389, 390, 88, 527, 407, 528, 89,
+ 90, 402, 474, 91, 224, 92, 352, 497, 614, 654,
+ 713, 553, 613, 93, 94, 95, 96, 97, 98, 354,
+ 438, 496, 439, 440, 99, 400, 401, 531, 281, 282,
+ 173, 297, 479, 540, 100, 275, 470, 101
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -447
+#define YYPACT_NINF -445
static const yytype_int16 yypact[] =
{
- -447, 55, 78, -447, 820, 3088, 3088, -78, 3088, 3088,
- 3088, 3088, 3088, 3088, 3088, -447, 3088, 3088, 3088, 3088,
- 3088, 3088, 3088, 49, 49, 3088, 99, -75, -58, -447,
- -447, -89, -447, -447, -447, -447, 3088, -447, -44, 2,
- 23, -447, 34, 1702, 1828, -447, 1954, -447, 3088, 110,
- -27, 43, 60, 127, 114, 141, 155, 170, -447, -447,
- 171, 174, -447, -447, -447, -447, -447, -447, 3088, -447,
- -447, 156, -447, -447, -447, -447, -447, -447, -447, -447,
- -447, -447, 69, 247, -447, -447, 182, -447, -447, 3341,
- -447, -2, 762, 184, -447, 207, -447, -9, -447, 56,
- -447, -447, 2766, 2766, 3088, 2766, 2766, 3141, 239, 239,
- 293, -447, 3088, -447, -447, -447, -447, -447, -447, -447,
- 191, 211, -447, -447, -447, -447, 213, 214, -447, -447,
- 223, 22, 56, 2080, -447, 3088, -447, -1, 2766, 1576,
- -447, 3088, 3088, 215, 3088, -447, 3386, -447, 3427, 326,
- -447, 218, 2766, 963, 227, 3468, -447, 309, 236, -447,
- -54, 1, -447, -447, -447, 381, 5, 49, 49, 49,
- 256, -447, 2206, 202, 3509, 262, 3088, 252, 669, 1088,
- 289, -447, 100, -447, 3088, -447, -447, -447, -447, 3088,
- 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3088,
- 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3088, 99, -447,
- -447, -447, 2332, 3088, 3088, 3088, 3088, 3088, 3088, 3088,
- 3088, 3088, 3088, 3088, -447, -447, -447, 3088, 3088, 156,
- 26, 3550, -447, 126, 57, 260, -447, 22, -447, 3591,
- 3632, 2458, 3088, -447, 328, 3088, 269, 410, 2766, 330,
- 1341, 350, 3673, -447, -447, -447, 351, -447, -447, -447,
- -447, 284, -447, 3088, -447, -447, -27, -447, 501, 355,
- -447, 16, -447, -447, -447, 19, 290, 288, -55, 49,
- 70, 291, 415, -447, -447, 137, -447, -447, -447, -447,
- -447, -447, 3214, 49, -447, -447, -447, -447, -447, -447,
- 946, 1884, -447, -447, -447, 362, -447, 316, 295, 296,
- 22, 56, 3088, 3017, 3088, 3088, 3088, 3088, 3992, 1568,
- 1693, 1819, 1819, 1819, 1819, 1441, 1441, 1441, 1441, 319,
- 319, 239, 239, 239, 293, 293, 293, -447, 62, 3141,
- 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141,
- 3141, 2458, 50, 2766, 294, 2010, -447, 295, -447, 2458,
- -447, 50, -447, 411, 49, 297, 431, 27, 664, 2766,
- 300, 3714, -447, -447, 352, 354, 432, 39, -447, -447,
- 304, -447, 2136, -447, 501, 501, 311, 313, -447, -447,
- -447, 438, 49, 317, -447, -447, -447, -447, 315, -447,
- 40, -447, -447, -447, 2584, -447, 2710, -447, -447, 389,
- 400, 2262, 320, 323, -447, -447, -447, -447, -447, -447,
- -447, 346, 362, 324, -447, -447, 22, 2891, 3141, 2640,
- 3951, 3972, 99, -447, 325, -447, 3088, -447, -447, 24,
- -447, -447, -447, 327, -447, -447, 1576, -447, -447, 2836,
- -447, -447, 3088, 3088, -447, -447, 501, 403, 1072, -15,
- 335, 378, -447, -447, -447, 409, 501, 501, -447, -447,
- 49, -447, -55, 469, -447, 49, 2766, 49, 3878, 216,
- -447, 3088, -447, -447, 342, 362, 341, 477, -447, -447,
- 2458, 2458, -447, -447, -447, 2388, -447, 347, 3088, 3088,
- -447, -447, -447, -447, 49, 41, 828, 3088, 1198, 348,
- 2766, 49, 13, -447, 479, -447, -447, -447, 353, 358,
- -447, 65, 356, -447, 372, 361, 486, -447, -447, -55,
- -447, 3088, -447, -447, 2962, -447, -447, -447, 360, 1759,
- 363, 477, -447, 362, 275, 366, 371, 3088, 260, -447,
- -447, -447, 364, 2514, 377, 241, -447, -447, 3755, -447,
- -447, -447, -447, 382, 49, 382, -447, 501, 425, -447,
- 282, -447, 173, -447, -447, 375, 496, 243, -447, 501,
- -447, 501, -447, 45, 3141, 49, 2766, -447, 373, -447,
- 593, -447, 450, -447, -447, -447, -447, -447, -447, -447,
- -447, -447, -447, 428, -36, -447, 6, -447, -447, 3911,
- -447, 2458, 402, -447, -447, 50, -447, -447, 9, 384,
- 445, 3088, 13, 388, -447, 391, -447, 392, 299, 394,
- 3088, -16, 204, -447, 387, 67, 460, 524, 362, -447,
- 419, -447, -447, -447, -447, 532, 473, -447, -447, 476,
- -447, 408, 50, -447, -447, 235, 416, 1576, -447, -447,
- 418, 420, -447, -447, -447, -447, 421, -447, 3270, -447,
- -447, -447, -447, -447, 246, 537, 501, -447, 501, 501,
- 544, 7, 326, 551, -447, -447, 426, 539, 500, 3088,
- -447, -447, -447, 1324, 1324, -447, -447, -447, 429, 502,
- 556, 501, -447, 503, -447, -447, 501, 505, -447, 510,
- 501, 347, 3088, -447, 440, 3796, 1450, -447, -447, -447,
- -447, -447, 159, -447, 561, 501, -447, 443, -447, 572,
- -447, -447, -447, 3837, 519, -447, -447, -447, -447, -447,
- 504, 200, 501, -447, -447, 501, 448, 563, 1576, 507,
- 451, -447, 447, -447, 65, -447, -447, 452, -447, -447,
- 454, -447, -447, 453, -50, 336, -447, -447, -447, -447,
- 497, 456, 461, -447, 497, -447, -447, 362, -447, -447,
- 530, 464, -447, 463, -447, 467, -447
+ -445, 51, 83, -445, 814, 3082, 3082, -115, 3082, 3082,
+ 3082, 3082, 3082, 3082, 3082, -445, 3082, 3082, 3082, 3082,
+ 3082, 3082, 3082, 15, 15, 3082, 28, -40, -20, -445,
+ -445, 159, -445, -445, -445, -445, 3082, -445, -11, -8,
+ 3, -445, 26, 1696, 1822, -445, 1948, -445, 3082, 24,
+ -37, 22, 56, 53, 52, 54, 63, 120, -445, -445,
+ 124, 127, -445, -445, -445, -445, -445, -445, 3082, -445,
+ -445, -7, -445, -445, -445, -445, -445, -445, -445, -445,
+ -445, -445, 119, 125, -445, -445, 130, -445, -445, 3335,
+ -445, 246, 1209, 139, -445, 163, -445, -50, -445, -26,
+ -445, -445, 2760, 2760, 3082, 2760, 2760, 3135, 64, 64,
+ 254, -445, 3082, -445, -445, -445, -445, -445, -445, -445,
+ 168, 171, -445, -445, -445, -445, 173, 175, -445, -445,
+ 206, -46, -26, 2074, -445, 3082, -445, 5, 2760, 1570,
+ -445, 3082, 3082, 194, 3082, -445, 3380, -445, 3421, 318,
+ -445, 212, 2760, 579, 213, 3462, -445, 279, 226, -445,
+ -21, 8, -445, -445, -445, 360, 10, 15, 15, 15,
+ 233, -445, 2200, 547, 3503, 232, 3082, 830, 654, 956,
+ 259, -445, 43, -445, 3082, -445, -445, -445, -445, 3082,
+ 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082,
+ 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 28, -445,
+ -445, -445, 2326, 3082, 3082, 3082, 3082, 3082, 3082, 3082,
+ 3082, 3082, 3082, 3082, -445, -445, -445, 3082, 3082, -7,
+ -49, 3544, -445, 50, -14, 238, -445, -46, -445, 3585,
+ 3626, 2452, 3082, -445, 297, 3082, 239, 375, 2760, 295,
+ 723, 316, 3667, -445, -445, -445, 317, -445, -445, -445,
+ -445, 265, -445, 3082, -445, -445, -37, -445, 1734, 325,
+ -445, -1, -445, -445, -445, 20, 269, 270, -10, 15,
+ 3872, 274, 403, -445, -445, 31, -445, -445, -445, -445,
+ -445, -445, 3208, 15, -445, -445, -445, -445, -445, -445,
+ 940, 1878, -445, -445, -445, 343, -445, 298, 277, 278,
+ -46, -26, 3082, 3011, 3082, 3082, 3082, 3082, 3943, 1562,
+ 1687, 1939, 1939, 1939, 1939, 718, 718, 718, 718, 358,
+ 358, 64, 64, 64, 254, 254, 254, -445, -3, 3135,
+ 3135, 3135, 3135, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
+ 3135, 2452, 25, 2760, 271, 2004, -445, 277, -445, 2452,
+ -445, 25, -445, 393, 15, 281, 413, 36, 58, 2760,
+ 283, 3708, -445, -445, -445, -445, 411, 40, -445, -445,
+ 282, -445, 2130, -445, 1734, 1734, 290, 293, -445, -445,
+ -445, 421, 15, 294, -445, -445, -445, -445, 300, -445,
+ 41, -445, -445, -445, 2578, -445, 2704, -445, -445, 364,
+ 376, 2256, 299, 301, -445, -445, -445, -445, -445, -445,
+ -445, 319, 343, 302, -445, -445, -46, 2885, 3135, 2634,
+ 4007, 4028, 28, -445, 303, -445, 3082, -445, -445, -41,
+ -445, -445, -445, 305, -445, -445, 1570, -445, -445, 2830,
+ -445, -445, 3082, 3082, 15, 14, 1734, 371, 1066, -16,
+ 310, 350, -445, -445, -445, 382, 1734, 1734, -445, -445,
+ 15, -445, -10, 442, -445, 15, 2760, 15, 3913, 33,
+ -445, 3082, -445, -445, 315, 343, 321, 450, -445, -445,
+ 2452, 2452, -445, -445, -445, 2382, -445, 326, 3082, 3082,
+ -445, -445, -445, -445, 15, 45, 272, 3082, 1192, 327,
+ 2760, 338, 15, 338, -445, -445, 448, -445, -445, -445,
+ 329, 330, -445, 34, 328, -445, 346, 337, 471, -445,
+ -445, -10, -445, 3082, -445, -445, 2956, -445, -445, -445,
+ 331, 1753, 340, 450, -445, 343, 167, 344, 345, 3082,
+ 238, -445, -445, -445, 339, 2508, 367, 257, -445, -445,
+ 3749, -445, -445, -445, -445, 14, 349, -445, 351, 1734,
+ 402, -445, 236, -445, 157, -445, -445, 352, 486, 103,
+ -445, 1734, -445, 1734, -445, 46, 3135, 15, 2760, -445,
+ 353, -445, 211, -445, 424, -445, -445, -445, -445, -445,
+ -445, -445, -445, -445, -445, 399, 287, -445, 11, -445,
+ -445, 3967, -445, 2452, 379, -445, -445, 25, -445, -445,
+ 273, 361, 422, 3082, -445, -445, -445, -445, 362, 251,
+ 372, 3082, -12, 160, -445, 366, 44, 440, 503, 343,
+ -445, 396, -445, -445, -445, -445, 508, 452, -445, -445,
+ 455, -445, 386, 25, -445, -445, 280, 383, 1570, -445,
+ -445, 387, 389, 1318, 1318, -445, 390, -445, 3264, -445,
+ -445, -445, -445, -445, 227, 518, 1734, -445, 1734, 1734,
+ 520, 13, 318, 521, -445, -445, 395, 510, 469, 3082,
+ -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+ 394, 466, 528, 1734, -445, 470, -445, -445, 1734, 473,
+ -445, 476, 1734, 326, 3082, -445, 407, 3790, 1444, 457,
+ -445, 108, -445, 537, 1734, -445, 410, -445, 539, -445,
+ -445, -445, 3831, 485, -445, -445, -445, -445, -445, 414,
+ 115, 1734, -445, -445, 1734, 423, 536, 1570, 482, -445,
+ -445, 425, -445, 34, -445, -445, 427, -445, 430, -445,
+ -445, 428, 223, 285, -445, -445, -445, -445, 474, 432,
+ 434, -445, 474, -445, -445, 343, -445, -445, 504, 437,
+ -445, 436, -445, 439, -445
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -447, -447, -447, -447, -447, -182, -447, -447, 0, -447,
- -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
- -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
- -447, -447, -447, -447, -447, -447, -167, -447, -447, -447,
- 221, -447, 308, 314, -66, -447, -447, -447, -447, -447,
- -447, -447, -447, -447, -447, -447, 132, 53, 10, -447,
- -74, -447, -447, -447, -311, -447, -447, -47, -447, -447,
- -447, -447, -447, -447, -447, -132, -447, -12, -339, -447,
- -447, 367, -447, 88, -447, -447, -447, -447, -447, -447,
- -447, -447, 30, -447, -447, -447, -446, -447, -447, 8,
- -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
- -447, -447, -447, -447, -447, -23, -186, -447, -447, -447,
- -447, -447, -447, 87, 86, 92, -447, -447, -447, 112,
- -447, 20, 480, -321, -447, 281, -447, 245, -447, -447,
- -447, -447, -447, -72, -447, -174, -447, -447, -24, -5,
- -447, 138, -356, -447, -447, -447, -3, 113, 172, -447,
- -447, -447, 343, -447, -447, -447, -447, -447, -447, -447
+ -445, -445, -445, -445, -445, -175, -445, -445, 2, -445,
+ -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+ -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+ -445, -445, -445, -445, -192, -445, -445, -445, 193, -445,
+ 288, 304, -95, -445, -445, -445, -445, -445, -445, -445,
+ -445, -445, -445, -445, 104, 77, 47, -445, -59, -445,
+ -445, -445, -382, -445, -445, -62, -445, -445, -445, -445,
+ -445, -445, -445, -144, -445, -25, -342, -445, -445, 356,
+ -445, 66, -445, -445, -445, -445, -445, -445, -445, -445,
+ 27, -445, -445, -445, -444, -445, -445, 16, -445, -445,
+ -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+ -445, -445, -445, -23, -185, -445, -445, -445, -445, -445,
+ -445, 67, 92, 99, -445, -445, -445, 91, -445, 21,
+ 467, -306, -445, 347, -445, 222, -445, -445, -445, -445,
+ -445, -87, -445, -178, -445, -445, -24, -4, -445, 132,
+ -356, -445, -445, -445, -2, 97, 164, -445, -445, -445,
+ 289, -445, -445, -445, -445, -445, -445, -445
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -353
+#define YYTABLE_NINF -351
static const yytype_int16 yytable[] =
{
- 121, 121, 130, 127, 76, 444, 509, 242, 309, 266,
- 669, 518, 434, 269, 649, 707, 120, 120, 33, 33,
- 443, 131, 337, 132, 392, 102, 103, 394, 105, 106,
- 107, 108, 109, 110, 111, -154, 113, 114, 115, 116,
- 117, 118, 119, 447, 564, 125, 159, 457, 472, -157,
- -288, 136, 227, 472, 151, 3, 138, 210, 211, 309,
- 358, -182, 104, 146, 148, 133, 152, 398, 155, 593,
- 594, 595, 596, 597, 598, 656, 657, 380, -2, 183,
- 184, 185, 135, 227, 120, 498, 33, 227, 174, 263,
- 71, 71, 767, 768, 230, 186, 140, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 160, 208,
- 120, 435, 33, 33, 231, 432, 670, 237, 519, 33,
- 33, -351, 232, 120, 228, 33, 573, 121, 573, 244,
- 180, 243, 141, 267, 121, 121, 121, 270, 650, 708,
- 249, 545, 546, 239, 532, 240, 533, 393, 71, 163,
- 395, 248, 152, 142, 252, 228, -352, 499, -154, 228,
- 126, 308, 33, 33, 144, 661, 164, 310, 437, 311,
- 458, 473, -157, 557, 130, 127, 641, 437, 574, 156,
- 574, 404, 280, 436, 71, 71, 301, 357, 408, 33,
- 165, 229, 71, 131, 313, 132, -140, 71, 572, 318,
- 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 332, 333, 334, 335, 336, 310, 310,
- 311, 311, 339, 340, 341, 342, 343, 344, 345, 346,
- 347, 348, 349, 350, 71, 71, 493, 353, 355, 367,
- 157, -124, -124, -124, 167, 121, 121, 409, 628, 654,
- 632, 152, 369, 283, 642, 371, 630, 631, 123, 123,
- 121, 71, 651, 284, 636, 285, 286, 699, 287, 288,
- 289, 168, 420, 382, 205, 206, 207, 535, 208, 536,
- 537, 153, -122, -122, -122, 169, 685, 630, 631, 176,
- 415, 686, 687, -124, 122, 124, 426, -23, -23, -23,
- 170, 171, 411, 283, 172, 121, 637, 633, 181, 700,
- 555, 182, 290, 284, 225, 285, 286, 226, 287, 288,
- 289, 136, 427, 568, 428, 429, 430, 431, 291, 292,
- 293, 121, 208, 236, -122, 294, 295, 310, 672, 311,
- 233, 296, -288, 234, 388, 251, 310, 255, 311, 367,
- 257, 202, 203, 204, 205, 206, 207, 367, 208, 121,
- 259, 152, 290, 592, 629, 630, 631, 620, 262, 152,
- 593, 594, 595, 596, 597, 598, 599, 250, 261, 292,
- 293, 666, 630, 631, 268, 294, 295, 277, 302, 488,
- 359, 296, -134, -134, -134, 265, 299, 305, 130, 127,
- 370, 372, 273, 274, 276, 177, 178, 179, 373, 600,
- -55, 376, 379, 406, 476, 381, 478, 131, 391, 132,
- 397, 396, 405, 419, 422, 424, 425, 445, 448, 449,
- 450, 437, 454, 441, 455, 456, 503, 121, 461, 121,
- 465, 467, 121, 466, 121, 471, 495, 505, 516, 469,
- 480, 481, 488, 484, 483, 485, 494, 489, 500, 152,
- 388, 388, 248, 510, 514, 521, 463, 464, 437, 522,
- 523, 121, 531, 540, 542, 543, 368, 550, 121, 121,
- 562, 698, 567, 579, 581, 569, 578, 615, 367, 367,
- 571, 539, 580, 622, 635, 589, 121, 607, 560, 587,
- 152, 152, 608, 613, 627, 722, 634, 643, 353, 553,
- 591, 645, 652, 399, 403, 647, 659, 558, 660, 663,
- 673, 734, 664, 675, 665, 740, 667, 676, 412, 741,
- 678, 121, 388, 384, 385, 679, 680, 683, 513, 684,
- 701, 584, 388, 388, 586, 749, 689, 706, 524, 527,
- 691, 692, 121, 695, 710, 713, 712, 609, 714, 725,
- 29, 30, 386, 723, 742, 724, 727, 763, 729, 765,
- 35, 730, 735, 433, 744, 745, 771, -138, 754, 755,
- 759, 750, 757, 758, 762, 764, 368, 766, 772, 121,
- 776, 777, 785, 781, 368, 782, 784, 778, 416, 403,
- 310, 786, 311, 468, 417, 677, 709, 541, 625, 367,
- 720, 696, 760, 674, 387, 62, 63, 64, 65, 66,
- 590, 152, 662, 383, 648, 610, 552, 273, 582, 732,
- 264, 248, 583, 0, 530, 0, 0, 310, 0, 311,
- 668, 0, 0, 388, 0, 0, 0, 690, 0, 626,
- 0, 0, 0, 0, 0, 388, 0, 388, 0, 0,
- 0, 639, -155, 640, 0, 0, 0, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 0,
- 0, 592, 0, 0, 506, 0, 0, 0, 593, 594,
- 595, 596, 597, 598, 599, 0, 0, 0, 0, 715,
- 0, 0, 0, 0, 0, 528, 738, 399, 0, 0,
- 403, 0, 403, -338, -338, 0, 0, 0, 0, 0,
- 283, 0, 733, 0, 0, 368, 368, 644, 0, 0,
- 284, 0, 285, 286, 0, 287, 288, 289, 756, 403,
- 0, 0, 0, 0, 779, 0, 563, 566, 0, 0,
- 0, 0, 388, 0, 388, 388, 0, 0, 702, 0,
- 704, 705, 0, 0, 399, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 388, 0, 290,
- 0, 0, 388, 726, 0, 0, 388, 0, 728, 0,
- 0, 0, 731, 0, 0, -155, 292, 293, 0, 624,
- 0, 388, 294, 295, 0, 0, 303, 743, 296, 0,
- 0, -338, -338, 5, 6, 7, 8, 9, 388, 0,
- 403, 388, 10, 0, 751, 0, -158, 753, 0, 0,
- 0, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 0, 0, 0, 368, 0, 0, 0,
- 0, 0, 11, 12, 0, 0, 0, 566, 13, 0,
+ 121, 121, 130, 127, 309, 444, 76, 392, 509, 434,
+ 520, 227, 227, 242, 669, 227, 266, 443, 269, 650,
+ 498, 709, 131, 337, 132, 104, 102, 103, 394, 105,
+ 106, 107, 108, 109, 110, 111, 159, 113, 114, 115,
+ 116, 117, 118, 119, -152, 512, 125, 33, 457, 472,
+ 120, 3, 33, -155, 472, 309, 358, 138, 447, 33,
+ 432, 120, 151, 33, 146, 148, -153, 152, 120, 155,
+ 33, 212, 213, 214, 215, 216, 217, 218, 219, 220,
+ 221, 222, 223, -2, 380, 120, 120, 33, 33, 174,
+ -349, -350, 408, 228, 228, 230, 435, 228, 33, 126,
+ 133, 33, 499, 156, 537, 575, 538, 539, 160, 205,
+ 206, 207, 398, 208, 308, 575, 33, -336, -336, 229,
+ 135, 357, 263, 33, 71, 231, 165, 521, 237, 140,
+ 670, 71, 141, 232, 637, 71, 176, 121, 163, 574,
+ 393, 244, 71, 142, 121, 121, 121, 243, 547, 548,
+ 267, 409, 270, 651, 239, 710, 240, 576, 249, 71,
+ 71, 395, 248, 152, 157, 252, 144, 576, 436, 534,
+ 71, 535, 164, 71, 437, -138, 638, -152, 310, 662,
+ 311, 458, 473, 437, 130, 127, -155, 642, 71, 629,
+ 180, 633, 167, 280, 168, 71, 181, 301, 559, -153,
+ -122, -122, -122, 169, 131, 313, 132, -120, -120, -120,
+ 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 310,
+ 310, 311, 311, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, 349, 350, 123, 123, 493, 353, 355,
+ 631, 632, -122, 631, 632, 121, 121, 367, 701, -120,
+ 170, 655, 152, 369, 171, 594, 371, 172, 153, 182,
+ 121, 652, 595, 596, 597, 598, 599, 600, 601, 225,
+ -156, 643, 420, 226, 382, 212, 213, 214, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 685, -286, 136,
+ 702, 634, 415, 208, 672, 210, 211, 426, 136, 594,
+ 233, 602, -286, 411, 234, 121, 595, 596, 597, 598,
+ 599, 600, 601, -23, -23, -23, 236, 557, 630, 631,
+ 632, -336, -336, 427, 251, 428, 429, 430, 431, 657,
+ 658, 121, 570, 666, 631, 632, 686, 687, 310, 255,
+ 311, -132, -132, -132, 257, 645, 259, 310, 261, 311,
+ 388, 177, 178, 179, 250, 765, 766, 367, 262, 121,
+ 122, 124, 152, 268, 277, 367, 299, 305, 359, 370,
+ 152, 372, 265, 373, -180, 374, 622, 376, 379, 273,
+ 274, 276, 595, 596, 597, 598, 599, 600, 391, 488,
+ 202, 203, 204, 205, 206, 207, 381, 208, 130, 127,
+ 396, 406, 397, -156, 419, 405, 422, 424, 425, 445,
+ 441, 449, 448, 450, 456, 476, 461, 478, 131, 465,
+ 132, 121, 121, 466, 467, 480, 469, 481, 485, 437,
+ 471, 484, 516, 483, 494, 489, 500, 121, 503, 121,
+ 523, 524, 121, 525, 121, 533, 542, 495, 545, 565,
+ 518, 569, 488, 368, 544, 505, 552, 581, 580, 564,
+ 152, 571, 573, 248, 510, 437, 388, 388, 582, 583,
+ 589, 121, 591, 463, 464, 609, 610, 617, 615, 121,
+ 625, 628, 626, 635, 636, 646, 648, 644, 700, 653,
+ 399, 403, 541, 660, 665, 661, 367, 367, 121, 673,
+ 562, 152, 152, 675, 667, 412, 676, 678, 719, 353,
+ 555, 679, 593, 689, 721, 680, 683, 684, 560, 691,
+ 692, 703, 697, 708, 712, 714, 715, 716, 722, 723,
+ 733, 724, 121, 726, 739, 740, 728, 729, 388, 734,
+ 741, 743, 744, -136, 586, 515, 749, 588, 388, 388,
+ 433, 748, 754, 753, 121, 526, 529, 756, 757, 760,
+ 611, 762, 764, 368, 775, 770, 774, 779, 780, 782,
+ 776, 368, 761, 784, 763, 468, 403, 711, 416, 543,
+ 568, 769, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 417, 696, 698, 783, 283, 758,
+ 592, 674, 624, 310, 273, 311, 677, 612, 284, 584,
+ 285, 286, 383, 287, 288, 289, 731, 264, 585, 367,
+ 554, 0, 0, 649, 152, 0, 532, 0, -336, -336,
+ 0, 0, 0, 0, 248, 0, 0, 0, 0, 310,
+ 0, 311, 668, 0, 0, 0, 0, 0, 0, 0,
+ 690, 388, 0, 0, 0, 0, 0, 290, 627, 0,
+ 0, 506, 0, 388, 0, 388, 511, 514, 0, 0,
+ 640, 0, 641, 291, 292, 293, 0, 0, 0, 0,
+ 294, 295, 530, 0, 399, 0, 296, 403, 0, 403,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 717, 0, 368, 368, 0, 283, 0, 0, 0, 0,
+ 737, 258, 0, 0, 0, 284, 403, 285, 286, 0,
+ 287, 288, 289, 0, 567, 732, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 0, 755,
+ 0, 0, 777, 399, -351, -351, -351, -351, 200, 201,
+ 202, 203, 204, 205, 206, 207, 0, 208, 388, 0,
+ 388, 388, 0, 0, 290, 704, 0, 706, 707, 0,
+ 0, 0, -336, -336, 0, 0, 0, 514, 0, 0,
+ 0, 292, 293, 0, 0, 388, 0, 294, 295, 0,
+ 388, 303, 725, 296, 388, 0, 0, 727, 0, 403,
+ 0, 730, 0, 375, 0, 0, 388, 5, 6, 7,
+ 8, 9, 0, 742, 0, 0, 10, 0, 0, 0,
+ 0, 0, 0, 388, 0, 368, 388, 0, 0, 0,
+ 750, 0, 0, 752, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
+ 0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
+ 0, 0, 0, 29, 30, 31, 32, 33, 0, 34,
+ 0, 283, 0, 35, 36, 37, 38, 0, 39, 0,
+ 40, 284, 41, 285, 286, 42, 287, 288, 289, 43,
+ 44, 45, 0, 46, 47, 0, 48, 49, 50, 0,
+ 0, 0, 51, 52, 53, 0, 54, 55, 56, 57,
+ 58, 59, 0, 0, 0, 0, 60, 61, 62, 63,
+ 64, 65, 66, 5, 6, 7, 8, 9, 0, 67,
+ 290, 0, 10, 0, 68, 0, 69, 70, 0, 71,
+ 72, 73, 74, 0, 0, 0, 0, 292, 293, 0,
+ 0, 0, 0, 294, 295, 0, 302, 0, 0, 296,
+ 0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 0, 25, 26, 27, 28, 0, -338, -338, 29,
- 30, 31, 32, 33, 0, 34, 0, 0, 0, 35,
- 36, 37, 38, 0, 39, 0, 40, 0, 41, 0,
- 0, 42, 0, 0, 0, 43, 44, 45, 0, 46,
+ 24, 0, 25, 26, 27, 28, 0, 0, 0, 29,
+ 30, 31, 32, 33, 0, 34, 0, 283, 0, 35,
+ 36, 37, 38, 0, 39, 0, 40, 284, 41, 285,
+ 286, 42, 287, 288, 289, 43, 44, 45, 0, 46,
47, 0, 48, 49, 50, 0, 0, 0, 51, 52,
- 53, 0, 54, 55, 56, 57, 58, 59, 0, 0,
+ 53, 0, 54, 55, 56, 413, 58, 59, 0, 0,
0, 0, 60, 61, 62, 63, 64, 65, 66, 5,
- 6, 7, 8, 9, 0, 67, 0, 0, 10, 0,
- 68, 0, 69, 70, 0, 71, 72, 73, 74, -158,
- 0, 0, 0, 0, 0, 0, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 11, 12,
+ 6, 7, 8, 9, 0, 67, 290, 0, 10, 0,
+ 68, 0, 69, 70, 0, 71, 72, 73, 74, 0,
+ 0, 0, 517, 292, 293, 0, 0, 0, 0, 294,
+ 295, 0, 0, 0, 304, 296, 0, 0, 11, 12,
0, 0, 0, 0, 13, 0, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
27, 28, 0, 0, 0, 29, 30, 31, 32, 33,
- 0, 34, -338, -338, 0, 35, 36, 37, 38, 0,
+ 0, 34, 0, 0, 0, 35, 36, 37, 38, 0,
39, 0, 40, 0, 41, 0, 0, 42, 0, 0,
- 0, 43, 44, 45, 0, 46, 47, 0, 48, 49,
- 50, 0, 0, 0, 51, 52, 53, 0, 54, 55,
- 56, 413, 58, 59, 0, 0, 0, 0, 60, 61,
+ 0, 43, 44, 0, 0, 46, 47, 0, 48, 49,
+ 50, 0, 0, 0, 0, 0, 53, 0, 54, 55,
+ 56, 0, 0, 0, 0, 0, 0, 0, 60, 61,
62, 63, 64, 65, 66, 5, 6, 7, 8, 9,
0, 67, 0, 0, 10, 0, 68, 0, 69, 70,
- 0, 71, 72, 73, 74, 0, 0, 0, 515, 0,
- 0, 0, 0, 0, 0, 258, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 0, 0, 0, 0,
+ 0, 71, 72, 73, 74, 0, 0, 0, 561, 0,
+ 0, 0, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 11, 12, 0, 0, 0, 0,
13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 0, 25, 26, 27, 28, 0, 0,
- 0, 29, 30, 31, 32, 33, 0, 34, 0, 283,
- 0, 35, 36, 37, 38, 0, 39, 0, 40, 284,
- 41, 285, 286, 42, 287, 288, 289, 43, 44, 0,
+ 0, 29, 30, 31, 32, 33, 0, 34, -336, -336,
+ 0, 35, 36, 37, 38, 0, 39, 0, 40, 0,
+ 41, 0, 0, 42, 0, 0, 0, 43, 44, 0,
0, 46, 47, 0, 48, 49, 50, 0, 0, 0,
0, 0, 53, 0, 54, 55, 56, 0, 0, 0,
0, 0, 0, 0, 60, 61, 62, 63, 64, 65,
- 66, 5, 6, 7, 8, 9, 0, 67, 290, 0,
+ 66, 5, 6, 7, 8, 9, 0, 67, 0, 0,
10, 0, 68, 0, 69, 70, 0, 71, 72, 73,
- 74, 0, 0, 0, 559, 292, 293, 0, 0, 0,
- 0, 294, 295, 0, 0, 0, 304, 296, 0, 0,
+ 74, 0, 0, 0, 693, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11, 12, 0, 0, 0, 0, 13, 0, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
25, 26, 27, 28, 0, 0, 0, 29, 30, 31,
@@ -1475,21 +1486,21 @@ static const yytype_int16 yytable[] =
60, 61, 62, 63, 64, 65, 66, 5, 6, 7,
8, 9, 0, 67, 0, 0, 10, 0, 68, 0,
69, 70, 0, 71, 72, 73, 74, 0, 0, 0,
- 717, 0, 0, 0, 212, 213, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 223, 11, 12, 0, 0,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
0, 0, 0, 29, 30, 31, 32, 33, 0, 34,
- -338, -338, 0, 35, 36, 37, 38, 0, 39, 0,
+ 0, 0, 0, 35, 36, 37, 38, 0, 39, 0,
40, 0, 41, 0, 0, 42, 0, 0, 0, 43,
44, 0, 0, 46, 47, 0, 48, 49, 50, 0,
- 0, -51, 0, 0, 53, 0, 54, 55, 56, 0,
+ 0, 0, 0, 0, 53, 0, 54, 55, 56, 0,
0, 0, 0, 0, 0, 0, 60, 61, 62, 63,
64, 65, 66, 5, 6, 7, 8, 9, 0, 67,
0, 0, 10, 0, 68, 0, 69, 70, 0, 71,
- 72, 73, 74, 0, 0, 0, 737, -353, -353, -353,
- -353, 200, 201, 202, 203, 204, 205, 206, 207, 0,
- 208, 0, 11, 12, 0, 0, 0, 0, 13, 0,
+ 72, 73, 74, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 0, 208, 11, 12, 0, 0, 0, 0, 13, 0,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 0, 25, 26, 27, 28, 0, 0, 0, 29,
30, 31, 32, 33, 0, 34, 0, 0, 0, 35,
@@ -1499,76 +1510,76 @@ static const yytype_int16 yytable[] =
53, 0, 54, 55, 56, 0, 0, 0, 0, 0,
0, 0, 60, 61, 62, 63, 64, 65, 66, 5,
6, 7, 8, 9, 0, 67, 0, 0, 10, 0,
- 68, 0, 69, 70, 0, 71, 72, 73, 74, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 0, 208, 11, 12,
+ 68, 0, 69, 70, 0, 71, 72, 73, 74, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 0, 208, 0, 11, 12,
0, 0, 0, 0, 13, 0, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
- 27, 28, 0, 0, 0, 29, 30, 31, 32, 33,
- 0, 34, 0, 0, 0, 35, 36, 37, 38, 0,
- 39, 0, 40, 0, 41, 0, 0, 42, 0, 0,
- 0, 43, 44, 0, 0, 46, 47, 0, 48, 49,
- 50, 0, 0, 0, 0, 0, 53, 0, 54, 55,
- 56, 0, 0, 0, 0, 0, 0, 0, 60, 61,
- 62, 63, 64, 65, 66, 5, 6, 7, 8, 9,
- 0, 67, 0, 0, 10, 0, 68, 0, 69, 70,
- 0, 71, 72, 73, 74, 192, 193, 194, 195, 196,
+ 27, 0, 183, 184, 185, 29, 30, 31, 32, 33,
+ 0, 0, 0, 0, 0, 35, 384, 385, 186, 0,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 0, 208, 0, 11, 12, 0, 0, 0, 0,
+ 207, 0, 208, 29, 30, 386, 0, 0, 0, 55,
+ 56, 0, 0, 35, 0, 0, 0, 0, 60, 61,
+ 62, 63, 64, 65, 66, 5, 6, 7, 8, 9,
+ 0, 67, 0, 0, 10, 0, 68, 0, 145, 0,
+ 0, 71, 72, 73, 74, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 387, 62, 63,
+ 64, 65, 66, 0, 11, 12, 0, 0, 0, 0,
13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 0, 25, 26, 27, 0, 183, 184,
- 185, 29, 30, 31, 32, 33, 0, 0, 0, 0,
- 0, 35, 0, 0, 186, 0, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 0, 208, 0,
+ 22, 23, 24, 0, 25, 26, 27, 183, 184, 185,
+ 0, 29, 30, 31, 32, 33, 0, 0, 0, 0,
+ 0, 35, 590, 186, 0, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 0, 208, 0, 0,
0, 0, 0, 0, 0, 55, 56, 0, 0, 0,
0, 0, 0, 0, 60, 61, 62, 63, 64, 65,
66, 5, 6, 7, 8, 9, 0, 67, 0, 0,
- 10, 0, 68, 0, 145, 0, 0, 71, 72, 73,
- 74, -353, -353, -353, -353, 196, 197, 198, 199, 200,
+ 10, 0, 68, 0, 147, 0, 0, 71, 72, 73,
+ 74, -351, -351, -351, -351, 196, 197, 198, 199, 200,
201, 202, 203, 204, 205, 206, 207, 0, 208, 0,
11, 12, 0, 0, 0, 0, 13, 0, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
25, 26, 27, 183, 184, 185, 0, 29, 30, 31,
- 32, 33, 0, 0, 0, 0, 0, 35, 588, 186,
+ 32, 33, 418, 0, 0, 0, 0, 35, 0, 186,
0, 187, 188, 189, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
206, 207, 0, 208, 0, 0, 0, 0, 0, 0,
0, 55, 56, 0, 0, 0, 0, 0, 0, 0,
60, 61, 62, 63, 64, 65, 66, 5, 6, 7,
8, 9, 0, 67, 0, 0, 10, 0, 68, 0,
- 147, 0, 0, 71, 72, 73, 74, 0, 0, 0,
+ 150, 0, 0, 71, 72, 73, 74, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 183,
- 184, 185, 0, 29, 30, 31, 32, 33, 418, 0,
+ 184, 185, 0, 29, 30, 31, 32, 33, 442, 0,
0, 0, 0, 35, 0, 186, 0, 187, 188, 189,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, 202, 203, 204, 205, 206, 207, 0, 208,
0, 0, 0, 0, 0, 0, 0, 55, 56, 0,
0, 0, 0, 0, 0, 0, 60, 61, 62, 63,
64, 65, 66, 5, 6, 7, 8, 9, 0, 67,
- 0, 0, 10, 0, 68, 0, 150, 0, 0, 71,
+ 0, 0, 10, 0, 68, 238, 0, 0, 0, 71,
72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 279, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 0, 25, 26, 27, 183, 184, 185, 0, 29,
- 30, 31, 32, 33, 442, 0, 0, 0, 0, 35,
+ 30, 31, 32, 33, 462, 0, 0, 0, 0, 35,
0, 186, 0, 187, 188, 189, 190, 191, 192, 193,
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
204, 205, 206, 207, 0, 208, 0, 0, 0, 0,
0, 0, 0, 55, 56, 0, 0, 0, 0, 0,
0, 0, 60, 61, 62, 63, 64, 65, 66, 5,
6, 7, 8, 9, 0, 67, 0, 0, 10, 0,
- 68, 238, 0, 0, 0, 71, 72, 73, 74, 0,
- 0, 0, 0, 0, 0, 0, 0, 279, 0, 0,
+ 68, 0, 0, 0, 0, 71, 72, 73, 74, 0,
+ 0, 0, 0, 0, 0, 0, 0, 338, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
0, 0, 0, 0, 13, 0, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
27, 183, 184, 185, 0, 29, 30, 31, 32, 33,
- 462, 0, 0, 0, 0, 35, 0, 186, 0, 187,
+ 482, 0, 0, 0, 0, 35, 0, 186, 0, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
0, 208, 0, 0, 0, 0, 0, 0, 0, 55,
@@ -1576,11 +1587,11 @@ static const yytype_int16 yytable[] =
62, 63, 64, 65, 66, 5, 6, 7, 8, 9,
0, 67, 0, 0, 10, 0, 68, 0, 0, 0,
0, 71, 72, 73, 74, 0, 0, 0, 0, 0,
- 0, 0, 0, 338, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 364, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 11, 12, 0, 0, 0, 0,
13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 0, 25, 26, 27, 183, 184, 185,
- 0, 29, 30, 31, 32, 33, 482, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 551, 0, 0, 0,
0, 35, 0, 186, 0, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
202, 203, 204, 205, 206, 207, 0, 208, 0, 0,
@@ -1588,25 +1599,25 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 60, 61, 62, 63, 64, 65,
66, 5, 6, 7, 8, 9, 0, 67, 0, 0,
10, 0, 68, 0, 0, 0, 0, 71, 72, 73,
- 74, 0, 0, 0, 0, 0, 0, 0, 0, 364,
+ 74, 0, 0, 0, 0, 0, 0, 0, 0, 475,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11, 12, 0, 0, 0, 0, 13, 0, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
25, 26, 27, 183, 184, 185, 0, 29, 30, 31,
- 32, 33, 549, 0, 0, 0, 0, 35, 0, 186,
- 0, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 32, 33, 616, 0, 0, 0, 0, 35, 0, 186,
+ 492, 187, 188, 189, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
206, 207, 0, 208, 0, 0, 0, 0, 0, 0,
0, 55, 56, 0, 0, 0, 0, 0, 0, 0,
60, 61, 62, 63, 64, 65, 66, 5, 6, 7,
8, 9, 0, 67, 0, 0, 10, 0, 68, 0,
0, 0, 0, 71, 72, 73, 74, 0, 0, 0,
- 0, 0, 0, 0, 0, 475, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 477, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 183,
- 184, 185, 0, 29, 30, 31, 32, 33, 614, 0,
- 0, 0, 0, 35, 0, 186, 492, 187, 188, 189,
+ 184, 185, 0, 29, 30, 31, 32, 33, 0, 0,
+ 0, 0, 0, 35, 0, 186, 0, 187, 188, 189,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, 202, 203, 204, 205, 206, 207, 0, 208,
0, 0, 0, 0, 0, 0, 0, 55, 56, 0,
@@ -1614,23 +1625,23 @@ static const yytype_int16 yytable[] =
64, 65, 66, 5, 6, 7, 8, 9, 0, 67,
0, 0, 10, 0, 68, 0, 0, 0, 0, 71,
72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
- 0, 477, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 504, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 0, 25, 26, 27, 183, 184, 185, 0, 29,
+ 24, 0, 25, 26, 27, 184, 185, 0, 0, 29,
30, 31, 32, 33, 0, 0, 0, 0, 0, 35,
- 0, 186, 0, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 0, 208, 0, 0, 0, 0,
+ 186, 0, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 0, 208, 0, 0, 0, 0, 0,
0, 0, 0, 55, 56, 0, 0, 0, 0, 0,
0, 0, 60, 61, 62, 63, 64, 65, 66, 5,
6, 7, 8, 9, 0, 67, 0, 0, 10, 0,
68, 0, 0, 0, 0, 71, 72, 73, 74, 0,
- 0, 0, 0, 0, 0, 0, 0, 504, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 587, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
0, 0, 0, 0, 13, 0, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
- 27, 184, 185, 0, 0, 29, 30, 31, 32, 33,
+ 27, 0, 185, 0, 0, 29, 30, 31, 32, 33,
0, 0, 0, 0, 0, 35, 186, 0, 187, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, 202, 203, 204, 205, 206, 207, 0,
@@ -1639,14 +1650,14 @@ static const yytype_int16 yytable[] =
62, 63, 64, 65, 66, 5, 6, 7, 8, 9,
0, 67, 0, 0, 10, 0, 68, 0, 0, 0,
0, 71, 72, 73, 74, 0, 0, 0, 0, 0,
- 0, 0, 0, 585, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 11, 12, 0, 0, 0, 0,
13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 0, 25, 26, 27, 0, 185, 0,
+ 22, 23, 24, 0, 25, 26, 27, 0, 0, 0,
0, 29, 30, 31, 32, 33, 0, 0, 0, 0,
- 0, 35, 186, 0, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 0, 208, 0, 0, 0,
+ 186, 35, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 0, 208, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 55, 56, 0, 0, 0,
0, 0, 0, 0, 60, 61, 62, 63, 64, 65,
66, 5, 6, 7, 8, 9, 0, 67, 0, 0,
@@ -1655,224 +1666,227 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11, 12, 0, 0, 0, 0, 13, 0, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
- 25, 26, 27, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 0, 0, 0, 0, 186, 35, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 0,
- 208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 25, 26, 27, 183, 184, 185, 0, 29, 30, 31,
+ 410, 33, 0, 0, 0, 0, 0, 35, 0, 186,
+ 669, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 0, 208, 0, 0, 0, 0, 0, 0,
0, 55, 56, 0, 0, 0, 0, 0, 0, 0,
- 60, 61, 62, 63, 64, 65, 66, 5, 6, 7,
- 8, 9, 0, 67, 0, 0, 10, 0, 68, 0,
+ 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
+ 0, 0, 0, 67, 183, 184, 185, 0, 68, 0,
0, 0, 0, 71, 72, 73, 74, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
- 0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 0, 25, 26, 27, 183,
- 184, 185, 0, 29, 30, 31, 410, 33, 0, 0,
- 0, 0, 0, 35, 0, 186, 669, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 0, 208,
- 0, 0, 0, 0, 0, 0, 0, 55, 56, 0,
- 0, 0, 0, 0, 0, 0, 60, 61, 62, 63,
- 64, 65, 66, 0, 0, 0, 0, 0, 0, 67,
- 183, 184, 185, 0, 68, 0, 0, 0, 0, 71,
- 72, 73, 74, 0, 0, 0, 186, 0, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 0,
- 208, 0, 0, 0, 0, 183, 184, 185, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 186, 670, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 0, 208, 183, 184, 185, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 186, 0, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 0, 208, 183, 184, 185,
- 0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 186, 0, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 0, 208, 183, 184,
- 185, 0, 0, 0, 0, 0, 0, 0, 253, 0,
- 0, 0, 0, 0, 186, 0, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 0, 208, 183,
- 184, 185, 0, 0, 0, 0, 0, 0, 0, 254,
- 0, 0, 0, 0, 0, 186, 0, 187, 188, 189,
+ 186, 0, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 0, 208, 0, 0, 0, 0, 183,
+ 184, 185, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 186, 670, 187, 188, 189,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, 202, 203, 204, 205, 206, 207, 0, 208,
183, 184, 185, 0, 0, 0, 0, 0, 0, 0,
- 260, 0, 0, 0, 0, 0, 186, 0, 187, 188,
+ 0, 0, 0, 0, 0, 0, 186, 0, 187, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, 202, 203, 204, 205, 206, 207, 0,
- 208, 183, 184, 185, 0, 0, 0, 0, 0, 0,
- 298, 0, 0, 0, 0, 0, 0, 186, 0, 187,
+ 208, 183, 184, 185, 0, 0, 0, 209, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 186, 0, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
0, 208, 183, 184, 185, 0, 0, 0, 0, 0,
- 0, 356, 0, 0, 0, 0, 0, 0, 186, 0,
+ 0, 0, 253, 0, 0, 0, 0, 0, 186, 0,
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
207, 0, 208, 183, 184, 185, 0, 0, 0, 0,
- 0, 0, 362, 0, 0, 0, 0, 0, 0, 186,
+ 0, 0, 0, 254, 0, 0, 0, 0, 0, 186,
0, 187, 188, 189, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
206, 207, 0, 208, 183, 184, 185, 0, 0, 0,
- 0, 0, 0, 363, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 260, 0, 0, 0, 0, 0,
186, 0, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
205, 206, 207, 0, 208, 183, 184, 185, 0, 0,
- 0, 0, 0, 0, 378, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 0, 0, 0, 0,
0, 186, 0, 187, 188, 189, 190, 191, 192, 193,
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
204, 205, 206, 207, 0, 208, 183, 184, 185, 0,
- 0, 0, 0, 0, 0, 451, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 356, 0, 0, 0, 0,
0, 0, 186, 0, 187, 188, 189, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
203, 204, 205, 206, 207, 0, 208, 183, 184, 185,
- 0, 0, 0, 0, 0, 0, 619, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 362, 0, 0, 0,
0, 0, 0, 186, 0, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 0, 208, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 736, 187, 188,
+ 202, 203, 204, 205, 206, 207, 0, 208, 183, 184,
+ 185, 0, 0, 0, 0, 0, 0, 363, 0, 0,
+ 0, 0, 0, 0, 186, 0, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+ 201, 202, 203, 204, 205, 206, 207, 0, 208, 183,
+ 184, 185, 0, 0, 0, 0, 0, 0, 378, 0,
+ 0, 0, 0, 0, 0, 186, 0, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 0, 208,
+ 183, 184, 185, 0, 0, 0, 0, 0, 0, 451,
+ 0, 0, 0, 0, 0, 0, 186, 0, 187, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, 202, 203, 204, 205, 206, 207, 0,
- 208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 747, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 534,
- 208, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 0, 208, 190, 191, 192, 193, 194, 195, 196, 197,
+ 208, 183, 184, 185, 0, 0, 0, 0, 0, 0,
+ 621, 0, 0, 0, 0, 0, 0, 186, 0, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 0, 208
+ 0, 208, 183, 184, 185, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 186, 0,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 0, 208, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 746, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 0, 208, 404, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 0, 208, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 536, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 0, 208, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 0, 208
};
static const yytype_int16 yycheck[] =
{
- 23, 24, 26, 26, 4, 361, 452, 8, 182, 8,
- 26, 26, 351, 8, 8, 8, 71, 71, 73, 73,
- 359, 26, 208, 26, 8, 5, 6, 8, 8, 9,
- 10, 11, 12, 13, 14, 8, 16, 17, 18, 19,
- 20, 21, 22, 364, 31, 25, 73, 8, 8, 8,
- 139, 140, 61, 8, 46, 0, 36, 59, 60, 233,
- 234, 97, 140, 43, 44, 140, 46, 122, 48, 105,
- 106, 107, 108, 109, 110, 66, 67, 259, 0, 9,
- 10, 11, 140, 61, 71, 61, 73, 61, 68, 143,
- 145, 145, 142, 143, 99, 25, 140, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 145, 49,
- 71, 71, 73, 73, 104, 63, 142, 132, 143, 73,
- 73, 140, 112, 71, 143, 73, 71, 160, 71, 139,
- 71, 142, 140, 142, 167, 168, 169, 142, 142, 142,
- 142, 490, 491, 133, 475, 135, 477, 141, 145, 116,
- 141, 141, 142, 140, 144, 143, 140, 143, 141, 143,
- 71, 71, 73, 73, 140, 621, 116, 182, 352, 182,
- 141, 141, 141, 504, 208, 208, 141, 361, 123, 79,
- 123, 121, 172, 143, 145, 145, 176, 71, 61, 73,
- 73, 145, 145, 208, 184, 208, 141, 145, 519, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 233, 234,
- 233, 234, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 145, 145, 432, 227, 228, 241,
- 140, 92, 93, 94, 140, 278, 279, 120, 569, 615,
- 571, 241, 242, 61, 585, 245, 93, 94, 23, 24,
- 293, 145, 611, 71, 31, 73, 74, 31, 76, 77,
- 78, 140, 305, 263, 45, 46, 47, 71, 49, 73,
- 74, 46, 92, 93, 94, 140, 652, 93, 94, 143,
- 300, 66, 67, 144, 23, 24, 311, 66, 67, 68,
- 140, 140, 292, 61, 140, 338, 73, 144, 71, 73,
- 502, 139, 120, 71, 140, 73, 74, 120, 76, 77,
- 78, 140, 312, 515, 314, 315, 316, 317, 136, 137,
- 138, 364, 49, 120, 144, 143, 144, 352, 144, 352,
- 139, 149, 139, 139, 268, 140, 361, 31, 361, 351,
- 142, 42, 43, 44, 45, 46, 47, 359, 49, 392,
- 143, 351, 120, 98, 92, 93, 94, 559, 142, 359,
- 105, 106, 107, 108, 109, 110, 111, 142, 79, 137,
- 138, 92, 93, 94, 13, 143, 144, 141, 146, 422,
- 140, 149, 66, 67, 68, 160, 144, 118, 432, 432,
- 82, 142, 167, 168, 169, 72, 73, 74, 8, 144,
- 90, 71, 71, 8, 404, 141, 406, 432, 73, 432,
- 142, 141, 141, 71, 118, 140, 140, 26, 141, 8,
- 140, 615, 90, 149, 90, 13, 446, 470, 144, 472,
- 139, 13, 475, 140, 477, 140, 436, 449, 458, 142,
- 71, 61, 485, 140, 144, 119, 141, 143, 141, 449,
- 384, 385, 452, 453, 71, 140, 384, 385, 652, 101,
- 71, 504, 13, 141, 143, 8, 241, 140, 511, 512,
- 142, 673, 13, 121, 8, 142, 140, 120, 490, 491,
- 142, 481, 141, 121, 8, 142, 529, 141, 508, 149,
- 490, 491, 141, 149, 89, 697, 141, 144, 498, 499,
- 543, 71, 120, 278, 279, 97, 142, 507, 83, 141,
- 143, 713, 141, 73, 142, 717, 142, 13, 293, 721,
- 121, 564, 456, 42, 43, 13, 73, 71, 456, 141,
- 13, 531, 466, 467, 534, 737, 140, 13, 466, 467,
- 142, 141, 585, 142, 13, 26, 140, 547, 68, 13,
- 69, 70, 71, 144, 13, 73, 73, 759, 73, 761,
- 79, 71, 142, 338, 141, 13, 768, 68, 140, 26,
- 143, 87, 85, 142, 142, 141, 351, 144, 101, 622,
- 144, 140, 784, 73, 359, 141, 143, 774, 300, 364,
- 615, 144, 615, 392, 300, 638, 682, 485, 565, 611,
- 694, 668, 754, 635, 123, 124, 125, 126, 127, 128,
- 542, 611, 622, 266, 604, 548, 498, 392, 526, 711,
- 160, 621, 529, -1, 472, -1, -1, 652, -1, 652,
- 630, -1, -1, 567, -1, -1, -1, 657, -1, 567,
- -1, -1, -1, -1, -1, 579, -1, 581, -1, -1,
- -1, 579, 8, 581, -1, -1, -1, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, -1,
- -1, 98, -1, -1, 449, -1, -1, -1, 105, 106,
- 107, 108, 109, 110, 111, -1, -1, -1, -1, 689,
- -1, -1, -1, -1, -1, 470, 716, 472, -1, -1,
- 475, -1, 477, 59, 60, -1, -1, -1, -1, -1,
- 61, -1, 712, -1, -1, 490, 491, 144, -1, -1,
- 71, -1, 73, 74, -1, 76, 77, 78, 748, 504,
- -1, -1, -1, -1, 777, -1, 511, 512, -1, -1,
- -1, -1, 676, -1, 678, 679, -1, -1, 676, -1,
- 678, 679, -1, -1, 529, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 701, -1, 120,
- -1, -1, 706, 701, -1, -1, 710, -1, 706, -1,
- -1, -1, 710, -1, -1, 141, 137, 138, -1, 564,
- -1, 725, 143, 144, -1, -1, 147, 725, 149, -1,
- -1, 59, 60, 3, 4, 5, 6, 7, 742, -1,
- 585, 745, 12, -1, 742, -1, 8, 745, -1, -1,
- -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, -1, -1, -1, 611, -1, -1, -1,
- -1, -1, 42, 43, -1, -1, -1, 622, 48, -1,
+ 23, 24, 26, 26, 182, 361, 4, 8, 452, 351,
+ 26, 61, 61, 8, 26, 61, 8, 359, 8, 8,
+ 61, 8, 26, 208, 26, 140, 5, 6, 8, 8,
+ 9, 10, 11, 12, 13, 14, 73, 16, 17, 18,
+ 19, 20, 21, 22, 8, 31, 25, 73, 8, 8,
+ 71, 0, 73, 8, 8, 233, 234, 36, 364, 73,
+ 63, 71, 46, 73, 43, 44, 8, 46, 71, 48,
+ 73, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 0, 259, 71, 71, 73, 73, 68,
+ 140, 140, 61, 143, 143, 99, 71, 143, 73, 71,
+ 140, 73, 143, 79, 71, 71, 73, 74, 145, 45,
+ 46, 47, 122, 49, 71, 71, 73, 59, 60, 145,
+ 140, 71, 143, 73, 145, 104, 73, 143, 132, 140,
+ 142, 145, 140, 112, 31, 145, 143, 160, 116, 521,
+ 141, 139, 145, 140, 167, 168, 169, 142, 490, 491,
+ 142, 120, 142, 142, 133, 142, 135, 123, 142, 145,
+ 145, 141, 141, 142, 140, 144, 140, 123, 143, 475,
+ 145, 477, 116, 145, 352, 141, 73, 141, 182, 623,
+ 182, 141, 141, 361, 208, 208, 141, 141, 145, 571,
+ 71, 573, 140, 172, 140, 145, 71, 176, 504, 141,
+ 92, 93, 94, 140, 208, 184, 208, 92, 93, 94,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 233,
+ 234, 233, 234, 212, 213, 214, 215, 216, 217, 218,
+ 219, 220, 221, 222, 223, 23, 24, 432, 227, 228,
+ 93, 94, 144, 93, 94, 278, 279, 241, 31, 144,
+ 140, 617, 241, 242, 140, 98, 245, 140, 46, 139,
+ 293, 613, 105, 106, 107, 108, 109, 110, 111, 140,
+ 8, 587, 305, 120, 263, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 653, 139, 140,
+ 73, 144, 300, 49, 144, 59, 60, 311, 140, 98,
+ 139, 144, 139, 292, 139, 338, 105, 106, 107, 108,
+ 109, 110, 111, 66, 67, 68, 120, 502, 92, 93,
+ 94, 59, 60, 312, 140, 314, 315, 316, 317, 66,
+ 67, 364, 517, 92, 93, 94, 66, 67, 352, 31,
+ 352, 66, 67, 68, 142, 144, 143, 361, 79, 361,
+ 268, 72, 73, 74, 142, 142, 143, 351, 142, 392,
+ 23, 24, 351, 13, 141, 359, 144, 118, 140, 82,
+ 359, 142, 160, 8, 97, 90, 561, 71, 71, 167,
+ 168, 169, 105, 106, 107, 108, 109, 110, 73, 422,
+ 42, 43, 44, 45, 46, 47, 141, 49, 432, 432,
+ 141, 8, 142, 141, 71, 141, 118, 140, 140, 26,
+ 149, 8, 141, 140, 13, 404, 144, 406, 432, 139,
+ 432, 454, 455, 140, 13, 71, 142, 61, 119, 617,
+ 140, 140, 71, 144, 141, 143, 141, 470, 446, 472,
+ 140, 101, 475, 71, 477, 13, 141, 436, 8, 121,
+ 458, 13, 485, 241, 143, 449, 140, 121, 140, 142,
+ 449, 142, 142, 452, 453, 653, 384, 385, 141, 8,
+ 149, 504, 142, 384, 385, 141, 141, 120, 149, 512,
+ 141, 89, 141, 141, 8, 71, 97, 144, 673, 120,
+ 278, 279, 481, 142, 142, 83, 490, 491, 531, 143,
+ 508, 490, 491, 73, 142, 293, 13, 121, 693, 498,
+ 499, 13, 545, 140, 699, 73, 71, 141, 507, 142,
+ 141, 13, 142, 13, 13, 140, 26, 68, 144, 73,
+ 715, 13, 565, 73, 87, 720, 73, 71, 456, 142,
+ 13, 141, 13, 68, 533, 456, 142, 536, 466, 467,
+ 338, 736, 26, 140, 587, 466, 467, 85, 143, 142,
+ 549, 141, 144, 351, 140, 101, 144, 73, 141, 143,
+ 772, 359, 757, 144, 759, 392, 364, 682, 300, 485,
+ 513, 766, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 300, 664, 668, 782, 61, 753,
+ 544, 636, 565, 617, 392, 617, 639, 550, 71, 528,
+ 73, 74, 266, 76, 77, 78, 713, 160, 531, 613,
+ 498, -1, -1, 606, 613, -1, 472, -1, 59, 60,
+ -1, -1, -1, -1, 623, -1, -1, -1, -1, 653,
+ -1, 653, 631, -1, -1, -1, -1, -1, -1, -1,
+ 658, 569, -1, -1, -1, -1, -1, 120, 569, -1,
+ -1, 449, -1, 581, -1, 583, 454, 455, -1, -1,
+ 581, -1, 583, 136, 137, 138, -1, -1, -1, -1,
+ 143, 144, 470, -1, 472, -1, 149, 475, -1, 477,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 689, -1, 490, 491, -1, 61, -1, -1, -1, -1,
+ 718, 142, -1, -1, -1, 71, 504, 73, 74, -1,
+ 76, 77, 78, -1, 512, 714, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, -1, 747,
+ -1, -1, 775, 531, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, -1, 49, 676, -1,
+ 678, 679, -1, -1, 120, 676, -1, 678, 679, -1,
+ -1, -1, 59, 60, -1, -1, -1, 565, -1, -1,
+ -1, 137, 138, -1, -1, 703, -1, 143, 144, -1,
+ 708, 147, 703, 149, 712, -1, -1, 708, -1, 587,
+ -1, 712, -1, 90, -1, -1, 724, 3, 4, 5,
+ 6, 7, -1, 724, -1, -1, 12, -1, -1, -1,
+ -1, -1, -1, 741, -1, 613, 744, -1, -1, -1,
+ 741, -1, -1, 744, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
+ -1, -1, 48, -1, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, -1, 62, 63, 64, 65,
+ -1, -1, -1, 69, 70, 71, 72, 73, -1, 75,
+ -1, 61, -1, 79, 80, 81, 82, -1, 84, -1,
+ 86, 71, 88, 73, 74, 91, 76, 77, 78, 95,
+ 96, 97, -1, 99, 100, -1, 102, 103, 104, -1,
+ -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
+ 116, 117, -1, -1, -1, -1, 122, 123, 124, 125,
+ 126, 127, 128, 3, 4, 5, 6, 7, -1, 135,
+ 120, -1, 12, -1, 140, -1, 142, 143, -1, 145,
+ 146, 147, 148, -1, -1, -1, -1, 137, 138, -1,
+ -1, -1, -1, 143, 144, -1, 146, -1, -1, 149,
+ -1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, -1, 62, 63, 64, 65, -1, 59, 60, 69,
- 70, 71, 72, 73, -1, 75, -1, -1, -1, 79,
- 80, 81, 82, -1, 84, -1, 86, -1, 88, -1,
- -1, 91, -1, -1, -1, 95, 96, 97, -1, 99,
+ 60, -1, 62, 63, 64, 65, -1, -1, -1, 69,
+ 70, 71, 72, 73, -1, 75, -1, 61, -1, 79,
+ 80, 81, 82, -1, 84, -1, 86, 71, 88, 73,
+ 74, 91, 76, 77, 78, 95, 96, 97, -1, 99,
100, -1, 102, 103, 104, -1, -1, -1, 108, 109,
110, -1, 112, 113, 114, 115, 116, 117, -1, -1,
-1, -1, 122, 123, 124, 125, 126, 127, 128, 3,
- 4, 5, 6, 7, -1, 135, -1, -1, 12, -1,
- 140, -1, 142, 143, -1, 145, 146, 147, 148, 141,
- -1, -1, -1, -1, -1, -1, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 42, 43,
+ 4, 5, 6, 7, -1, 135, 120, -1, 12, -1,
+ 140, -1, 142, 143, -1, 145, 146, 147, 148, -1,
+ -1, -1, 26, 137, 138, -1, -1, -1, -1, 143,
+ 144, -1, -1, -1, 148, 149, -1, -1, 42, 43,
-1, -1, -1, -1, 48, -1, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, 73,
- -1, 75, 59, 60, -1, 79, 80, 81, 82, -1,
+ -1, 75, -1, -1, -1, 79, 80, 81, 82, -1,
84, -1, 86, -1, 88, -1, -1, 91, -1, -1,
- -1, 95, 96, 97, -1, 99, 100, -1, 102, 103,
- 104, -1, -1, -1, 108, 109, 110, -1, 112, 113,
- 114, 115, 116, 117, -1, -1, -1, -1, 122, 123,
+ -1, 95, 96, -1, -1, 99, 100, -1, 102, 103,
+ 104, -1, -1, -1, -1, -1, 110, -1, 112, 113,
+ 114, -1, -1, -1, -1, -1, -1, -1, 122, 123,
124, 125, 126, 127, 128, 3, 4, 5, 6, 7,
-1, 135, -1, -1, 12, -1, 140, -1, 142, 143,
-1, 145, 146, 147, 148, -1, -1, -1, 26, -1,
- -1, -1, -1, -1, -1, 142, -1, -1, -1, -1,
- -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
+ -1, -1, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 42, 43, -1, -1, -1, -1,
48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, -1, 62, 63, 64, 65, -1, -1,
- -1, 69, 70, 71, 72, 73, -1, 75, -1, 61,
- -1, 79, 80, 81, 82, -1, 84, -1, 86, 71,
- 88, 73, 74, 91, 76, 77, 78, 95, 96, -1,
+ -1, 69, 70, 71, 72, 73, -1, 75, 59, 60,
+ -1, 79, 80, 81, 82, -1, 84, -1, 86, -1,
+ 88, -1, -1, 91, -1, -1, -1, 95, 96, -1,
-1, 99, 100, -1, 102, 103, 104, -1, -1, -1,
-1, -1, 110, -1, 112, 113, 114, -1, -1, -1,
-1, -1, -1, -1, 122, 123, 124, 125, 126, 127,
- 128, 3, 4, 5, 6, 7, -1, 135, 120, -1,
+ 128, 3, 4, 5, 6, 7, -1, 135, -1, -1,
12, -1, 140, -1, 142, 143, -1, 145, 146, 147,
- 148, -1, -1, -1, 26, 137, 138, -1, -1, -1,
- -1, 143, 144, -1, -1, -1, 148, 149, -1, -1,
+ 148, -1, -1, -1, 26, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
42, 43, -1, -1, -1, -1, 48, -1, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
@@ -1884,21 +1898,21 @@ static const yytype_int16 yycheck[] =
122, 123, 124, 125, 126, 127, 128, 3, 4, 5,
6, 7, -1, 135, -1, -1, 12, -1, 140, -1,
142, 143, -1, 145, 146, 147, 148, -1, -1, -1,
- 26, -1, -1, -1, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 42, 43, -1, -1,
+ 26, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
-1, -1, 48, -1, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, -1, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, 73, -1, 75,
- 59, 60, -1, 79, 80, 81, 82, -1, 84, -1,
+ -1, -1, -1, 79, 80, 81, 82, -1, 84, -1,
86, -1, 88, -1, -1, 91, -1, -1, -1, 95,
96, -1, -1, 99, 100, -1, 102, 103, 104, -1,
- -1, 90, -1, -1, 110, -1, 112, 113, 114, -1,
+ -1, -1, -1, -1, 110, -1, 112, 113, 114, -1,
-1, -1, -1, -1, -1, -1, 122, 123, 124, 125,
126, 127, 128, 3, 4, 5, 6, 7, -1, 135,
-1, -1, 12, -1, 140, -1, 142, 143, -1, 145,
- 146, 147, 148, -1, -1, -1, 26, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, 42, 43, -1, -1, -1, -1, 48, -1,
+ 146, 147, 148, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ -1, 49, 42, 43, -1, -1, -1, -1, 48, -1,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, -1, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, 73, -1, 75, -1, -1, -1, 79,
@@ -1908,28 +1922,28 @@ static const yytype_int16 yycheck[] =
110, -1, 112, 113, 114, -1, -1, -1, -1, -1,
-1, -1, 122, 123, 124, 125, 126, 127, 128, 3,
4, 5, 6, 7, -1, 135, -1, -1, 12, -1,
- 140, -1, 142, 143, -1, 145, 146, 147, 148, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, 42, 43,
+ 140, -1, 142, 143, -1, 145, 146, 147, 148, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, 42, 43,
-1, -1, -1, -1, 48, -1, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
- 64, 65, -1, -1, -1, 69, 70, 71, 72, 73,
- -1, 75, -1, -1, -1, 79, 80, 81, 82, -1,
- 84, -1, 86, -1, 88, -1, -1, 91, -1, -1,
- -1, 95, 96, -1, -1, 99, 100, -1, 102, 103,
- 104, -1, -1, -1, -1, -1, 110, -1, 112, 113,
- 114, -1, -1, -1, -1, -1, -1, -1, 122, 123,
- 124, 125, 126, 127, 128, 3, 4, 5, 6, 7,
- -1, 135, -1, -1, 12, -1, 140, -1, 142, 143,
- -1, 145, 146, 147, 148, 32, 33, 34, 35, 36,
+ 64, -1, 9, 10, 11, 69, 70, 71, 72, 73,
+ -1, -1, -1, -1, -1, 79, 42, 43, 25, -1,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, 42, 43, -1, -1, -1, -1,
+ 47, -1, 49, 69, 70, 71, -1, -1, -1, 113,
+ 114, -1, -1, 79, -1, -1, -1, -1, 122, 123,
+ 124, 125, 126, 127, 128, 3, 4, 5, 6, 7,
+ -1, 135, -1, -1, 12, -1, 140, -1, 142, -1,
+ -1, 145, 146, 147, 148, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 123, 124, 125,
+ 126, 127, 128, -1, 42, 43, -1, -1, -1, -1,
48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, -1, 62, 63, 64, -1, 9, 10,
- 11, 69, 70, 71, 72, 73, -1, -1, -1, -1,
- -1, 79, -1, -1, 25, -1, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ 58, 59, 60, -1, 62, 63, 64, 9, 10, 11,
+ -1, 69, 70, 71, 72, 73, -1, -1, -1, -1,
+ -1, 79, 149, 25, -1, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
-1, -1, -1, -1, -1, 113, 114, -1, -1, -1,
-1, -1, -1, -1, 122, 123, 124, 125, 126, 127,
128, 3, 4, 5, 6, 7, -1, 135, -1, -1,
@@ -1939,7 +1953,7 @@ static const yytype_int16 yycheck[] =
42, 43, -1, -1, -1, -1, 48, -1, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
62, 63, 64, 9, 10, 11, -1, 69, 70, 71,
- 72, 73, -1, -1, -1, -1, -1, 79, 149, 25,
+ 72, 73, 144, -1, -1, -1, -1, 79, -1, 25,
-1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, -1, 49, -1, -1, -1, -1, -1, -1,
@@ -1958,9 +1972,9 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 113, 114, -1,
-1, -1, -1, -1, -1, -1, 122, 123, 124, 125,
126, 127, 128, 3, 4, 5, 6, 7, -1, 135,
- -1, -1, 12, -1, 140, -1, 142, -1, -1, 145,
+ -1, -1, 12, -1, 140, 141, -1, -1, -1, 145,
146, 147, 148, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 31, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, -1, 62, 63, 64, 9, 10, 11, -1, 69,
@@ -1971,7 +1985,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 113, 114, -1, -1, -1, -1, -1,
-1, -1, 122, 123, 124, 125, 126, 127, 128, 3,
4, 5, 6, 7, -1, 135, -1, -1, 12, -1,
- 140, 141, -1, -1, -1, 145, 146, 147, 148, -1,
+ 140, -1, -1, -1, -1, 145, 146, 147, 148, -1,
-1, -1, -1, -1, -1, -1, -1, 31, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 42, 43,
-1, -1, -1, -1, 48, -1, 50, 51, 52, 53,
@@ -2003,7 +2017,7 @@ static const yytype_int16 yycheck[] =
52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
62, 63, 64, 9, 10, 11, -1, 69, 70, 71,
72, 73, 144, -1, -1, -1, -1, 79, -1, 25,
- -1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, -1, 49, -1, -1, -1, -1, -1, -1,
-1, 113, 114, -1, -1, -1, -1, -1, -1, -1,
@@ -2014,8 +2028,8 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
-1, -1, 48, -1, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, -1, 62, 63, 64, 9,
- 10, 11, -1, 69, 70, 71, 72, 73, 144, -1,
- -1, -1, -1, 79, -1, 25, 26, 27, 28, 29,
+ 10, 11, -1, 69, 70, 71, 72, 73, -1, -1,
+ -1, -1, -1, 79, -1, 25, -1, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, -1, -1, -1, -1, -1, 113, 114, -1,
@@ -2026,11 +2040,11 @@ static const yytype_int16 yycheck[] =
-1, 31, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, -1, 62, 63, 64, 9, 10, 11, -1, 69,
+ 60, -1, 62, 63, 64, 10, 11, -1, -1, 69,
70, 71, 72, 73, -1, -1, -1, -1, -1, 79,
- -1, 25, -1, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, -1, -1,
+ 25, -1, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, -1, -1, -1,
-1, -1, -1, 113, 114, -1, -1, -1, -1, -1,
-1, -1, 122, 123, 124, 125, 126, 127, 128, 3,
4, 5, 6, 7, -1, 135, -1, -1, 12, -1,
@@ -2039,7 +2053,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, 42, 43,
-1, -1, -1, -1, 48, -1, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
- 64, 10, 11, -1, -1, 69, 70, 71, 72, 73,
+ 64, -1, 11, -1, -1, 69, 70, 71, 72, 73,
-1, -1, -1, -1, -1, 79, 25, -1, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
@@ -2048,14 +2062,14 @@ static const yytype_int16 yycheck[] =
124, 125, 126, 127, 128, 3, 4, 5, 6, 7,
-1, 135, -1, -1, 12, -1, 140, -1, -1, -1,
-1, 145, 146, 147, 148, -1, -1, -1, -1, -1,
- -1, -1, -1, 31, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, -1, 62, 63, 64, -1, 11, -1,
+ 58, 59, 60, -1, 62, 63, 64, -1, -1, -1,
-1, 69, 70, 71, 72, 73, -1, -1, -1, -1,
- -1, 79, 25, -1, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, -1,
+ 25, 79, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 113, 114, -1, -1, -1,
-1, -1, -1, -1, 122, 123, 124, 125, 126, 127,
128, 3, 4, 5, 6, 7, -1, 135, -1, -1,
@@ -2064,69 +2078,40 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
42, 43, -1, -1, -1, -1, 48, -1, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
- 62, 63, 64, -1, -1, -1, -1, 69, 70, 71,
- 72, 73, -1, -1, -1, -1, 25, 79, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 62, 63, 64, 9, 10, 11, -1, 69, 70, 71,
+ 72, 73, -1, -1, -1, -1, -1, 79, -1, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, -1, -1, -1, -1,
-1, 113, 114, -1, -1, -1, -1, -1, -1, -1,
- 122, 123, 124, 125, 126, 127, 128, 3, 4, 5,
- 6, 7, -1, 135, -1, -1, 12, -1, 140, -1,
+ 122, 123, 124, 125, 126, 127, 128, -1, -1, -1,
+ -1, -1, -1, 135, 9, 10, 11, -1, 140, -1,
-1, -1, -1, 145, 146, 147, 148, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
- -1, -1, 48, -1, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, -1, 62, 63, 64, 9,
- 10, 11, -1, 69, 70, 71, 72, 73, -1, -1,
- -1, -1, -1, 79, -1, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, -1, -1, -1, -1, -1, 113, 114, -1,
- -1, -1, -1, -1, -1, -1, 122, 123, 124, 125,
- 126, 127, 128, -1, -1, -1, -1, -1, -1, 135,
- 9, 10, 11, -1, 140, -1, -1, -1, -1, 145,
- 146, 147, 148, -1, -1, -1, 25, -1, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, -1, -1, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 25, 142, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, 9, 10, 11, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, -1, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, 49, 9, 10, 11,
- -1, -1, -1, 142, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, -1, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, 9, 10,
- 11, -1, -1, -1, -1, -1, -1, -1, 142, -1,
- -1, -1, -1, -1, 25, -1, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, -1, 49, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, 142,
- -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
+ 25, -1, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, -1, -1, 9,
+ 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 142, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
- 142, -1, -1, -1, -1, -1, 25, -1, 27, 28,
+ -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- 141, -1, -1, -1, -1, -1, -1, 25, -1, 27,
+ 49, 9, 10, 11, -1, -1, -1, 142, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 25, -1, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-1, 49, 9, 10, 11, -1, -1, -1, -1, -1,
- -1, 141, -1, -1, -1, -1, -1, -1, 25, -1,
+ -1, -1, 142, -1, -1, -1, -1, -1, 25, -1,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, -1, 49, 9, 10, 11, -1, -1, -1, -1,
- -1, -1, 141, -1, -1, -1, -1, -1, -1, 25,
+ -1, -1, -1, 142, -1, -1, -1, -1, -1, 25,
-1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, -1, 49, 9, 10, 11, -1, -1, -1,
- -1, -1, -1, 141, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 142, -1, -1, -1, -1, -1,
25, -1, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, -1, 49, 9, 10, 11, -1, -1,
@@ -2141,19 +2126,39 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, 141, -1, -1, -1,
-1, -1, -1, 25, -1, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 141, 27, 28,
+ 42, 43, 44, 45, 46, 47, -1, 49, 9, 10,
+ 11, -1, -1, -1, -1, -1, -1, 141, -1, -1,
+ -1, -1, -1, -1, 25, -1, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, -1, 49, 9,
+ 10, 11, -1, -1, -1, -1, -1, -1, 141, -1,
+ -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, 141,
+ -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 141, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 121,
- 49, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- -1, 49, 30, 31, 32, 33, 34, 35, 36, 37,
+ 49, 9, 10, 11, -1, -1, -1, -1, -1, -1,
+ 141, -1, -1, -1, -1, -1, -1, 25, -1, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- -1, 49
+ -1, 49, 9, 10, 11, -1, -1, -1, -1, -1,
+ -1, 141, -1, -1, -1, -1, -1, -1, 25, -1,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 141, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, -1, 49, 121, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 121, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, -1, 49, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, -1, 49
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2167,78 +2172,78 @@ static const yytype_uint16 yystos[] =
86, 88, 91, 95, 96, 97, 99, 100, 102, 103,
104, 108, 109, 110, 112, 113, 114, 115, 116, 117,
122, 123, 124, 125, 126, 127, 128, 135, 140, 142,
- 143, 145, 146, 147, 148, 154, 158, 159, 192, 193,
- 195, 198, 201, 203, 249, 260, 265, 274, 277, 281,
- 282, 285, 287, 295, 296, 297, 298, 299, 300, 306,
- 316, 319, 281, 281, 140, 281, 281, 281, 281, 281,
- 281, 281, 259, 281, 281, 281, 281, 281, 281, 281,
- 71, 265, 285, 287, 285, 281, 71, 265, 266, 267,
- 298, 299, 306, 140, 272, 140, 140, 245, 281, 166,
- 140, 140, 140, 178, 140, 142, 281, 142, 281, 196,
- 142, 249, 281, 287, 179, 281, 79, 140, 191, 73,
- 145, 230, 231, 116, 116, 73, 232, 140, 140, 140,
- 140, 140, 140, 312, 281, 155, 143, 312, 312, 312,
+ 143, 145, 146, 147, 148, 154, 158, 159, 190, 191,
+ 193, 196, 199, 201, 247, 258, 263, 272, 275, 279,
+ 280, 283, 285, 293, 294, 295, 296, 297, 298, 304,
+ 314, 317, 279, 279, 140, 279, 279, 279, 279, 279,
+ 279, 279, 257, 279, 279, 279, 279, 279, 279, 279,
+ 71, 263, 283, 285, 283, 279, 71, 263, 264, 265,
+ 296, 297, 304, 140, 270, 140, 140, 243, 279, 166,
+ 140, 140, 140, 176, 140, 142, 279, 142, 279, 194,
+ 142, 247, 279, 285, 177, 279, 79, 140, 189, 73,
+ 145, 228, 229, 116, 116, 73, 230, 140, 140, 140,
+ 140, 140, 140, 310, 279, 155, 143, 310, 310, 310,
71, 71, 139, 9, 10, 11, 25, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 49, 142,
59, 60, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 286, 140, 120, 61, 143, 145,
- 299, 281, 281, 139, 139, 252, 120, 299, 141, 281,
- 281, 261, 8, 142, 158, 164, 246, 247, 281, 249,
- 287, 140, 281, 142, 142, 31, 194, 142, 142, 143,
- 142, 79, 142, 143, 282, 287, 8, 142, 13, 8,
- 142, 189, 190, 287, 287, 317, 287, 141, 250, 31,
- 281, 310, 311, 61, 71, 73, 74, 76, 77, 78,
- 120, 136, 137, 138, 143, 144, 149, 313, 141, 144,
- 156, 281, 146, 147, 148, 118, 202, 200, 71, 295,
- 299, 306, 255, 281, 256, 257, 253, 254, 281, 281,
- 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
- 281, 281, 281, 281, 281, 281, 281, 266, 31, 281,
- 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
- 281, 264, 288, 281, 301, 281, 141, 71, 295, 140,
- 273, 268, 141, 141, 31, 228, 229, 249, 287, 281,
- 82, 281, 142, 8, 175, 172, 71, 212, 141, 71,
- 155, 141, 281, 231, 42, 43, 71, 123, 274, 275,
- 276, 73, 8, 141, 8, 141, 141, 142, 122, 287,
- 307, 308, 283, 287, 121, 141, 8, 279, 61, 120,
- 72, 281, 287, 115, 157, 158, 192, 193, 144, 71,
- 265, 199, 118, 204, 140, 140, 299, 281, 281, 281,
- 281, 281, 63, 287, 228, 71, 143, 295, 302, 304,
- 305, 149, 144, 228, 302, 26, 160, 283, 141, 8,
- 140, 141, 168, 248, 90, 90, 13, 8, 141, 171,
- 197, 144, 144, 275, 275, 139, 140, 13, 190, 142,
- 318, 140, 8, 141, 284, 31, 281, 31, 281, 314,
- 71, 61, 144, 144, 140, 119, 205, 206, 265, 143,
- 262, 263, 26, 266, 141, 281, 303, 289, 61, 143,
- 141, 269, 162, 158, 31, 249, 287, 167, 165, 246,
- 281, 176, 173, 275, 71, 26, 158, 211, 26, 143,
- 213, 140, 101, 71, 275, 278, 280, 275, 287, 309,
- 308, 13, 283, 283, 121, 71, 73, 74, 315, 281,
- 141, 206, 143, 8, 233, 228, 228, 258, 251, 144,
- 140, 293, 301, 281, 270, 155, 161, 283, 281, 26,
- 158, 218, 142, 287, 31, 208, 287, 13, 155, 142,
- 214, 142, 214, 71, 123, 225, 226, 227, 140, 121,
- 141, 8, 279, 307, 281, 31, 281, 149, 149, 142,
- 233, 265, 98, 105, 106, 107, 108, 109, 110, 111,
- 144, 234, 239, 240, 241, 242, 244, 141, 141, 281,
- 273, 294, 290, 149, 144, 120, 271, 163, 219, 141,
- 155, 169, 121, 207, 287, 207, 275, 89, 214, 92,
- 93, 94, 214, 144, 141, 8, 31, 73, 180, 275,
- 275, 141, 283, 144, 144, 71, 235, 97, 242, 8,
- 142, 228, 120, 291, 302, 221, 66, 67, 223, 142,
- 83, 246, 208, 141, 141, 142, 92, 142, 281, 26,
- 142, 217, 144, 143, 227, 73, 13, 265, 121, 13,
- 73, 243, 236, 71, 141, 302, 66, 67, 224, 140,
- 158, 142, 141, 177, 174, 142, 217, 216, 155, 31,
- 73, 13, 275, 181, 275, 275, 13, 8, 142, 194,
- 13, 292, 140, 26, 68, 281, 170, 26, 158, 210,
- 210, 215, 155, 144, 73, 13, 275, 73, 275, 73,
- 71, 275, 293, 281, 155, 142, 141, 26, 158, 209,
- 155, 155, 13, 275, 141, 13, 237, 141, 220, 155,
- 87, 275, 182, 275, 140, 26, 158, 85, 142, 143,
- 225, 222, 142, 155, 141, 155, 144, 142, 143, 238,
- 183, 155, 101, 184, 185, 186, 144, 140, 186, 265,
- 187, 73, 141, 188, 143, 155, 144
+ 21, 22, 23, 24, 284, 140, 120, 61, 143, 145,
+ 297, 279, 279, 139, 139, 250, 120, 297, 141, 279,
+ 279, 259, 8, 142, 158, 164, 244, 245, 279, 247,
+ 285, 140, 279, 142, 142, 31, 192, 142, 142, 143,
+ 142, 79, 142, 143, 280, 285, 8, 142, 13, 8,
+ 142, 187, 188, 285, 285, 315, 285, 141, 248, 31,
+ 279, 308, 309, 61, 71, 73, 74, 76, 77, 78,
+ 120, 136, 137, 138, 143, 144, 149, 311, 141, 144,
+ 156, 279, 146, 147, 148, 118, 200, 198, 71, 293,
+ 297, 304, 253, 279, 254, 255, 251, 252, 279, 279,
+ 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
+ 279, 279, 279, 279, 279, 279, 279, 264, 31, 279,
+ 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
+ 279, 262, 286, 279, 299, 279, 141, 71, 293, 140,
+ 271, 266, 141, 141, 31, 226, 227, 247, 285, 279,
+ 82, 279, 142, 8, 90, 90, 71, 210, 141, 71,
+ 155, 141, 279, 229, 42, 43, 71, 123, 272, 273,
+ 274, 73, 8, 141, 8, 141, 141, 142, 122, 285,
+ 305, 306, 281, 285, 121, 141, 8, 277, 61, 120,
+ 72, 279, 285, 115, 157, 158, 190, 191, 144, 71,
+ 263, 197, 118, 202, 140, 140, 297, 279, 279, 279,
+ 279, 279, 63, 285, 226, 71, 143, 293, 300, 302,
+ 303, 149, 144, 226, 300, 26, 160, 281, 141, 8,
+ 140, 141, 168, 246, 174, 172, 13, 8, 141, 171,
+ 195, 144, 144, 273, 273, 139, 140, 13, 188, 142,
+ 316, 140, 8, 141, 282, 31, 279, 31, 279, 312,
+ 71, 61, 144, 144, 140, 119, 203, 204, 263, 143,
+ 260, 261, 26, 264, 141, 279, 301, 287, 61, 143,
+ 141, 267, 162, 158, 31, 247, 285, 167, 165, 244,
+ 279, 285, 31, 206, 285, 273, 71, 26, 158, 209,
+ 26, 143, 211, 140, 101, 71, 273, 276, 278, 273,
+ 285, 307, 306, 13, 281, 281, 121, 71, 73, 74,
+ 313, 279, 141, 204, 143, 8, 231, 226, 226, 256,
+ 249, 144, 140, 291, 299, 279, 268, 155, 161, 281,
+ 279, 26, 158, 216, 142, 121, 205, 285, 205, 13,
+ 155, 142, 212, 142, 212, 71, 123, 223, 224, 225,
+ 140, 121, 141, 8, 277, 305, 279, 31, 279, 149,
+ 149, 142, 231, 263, 98, 105, 106, 107, 108, 109,
+ 110, 111, 144, 232, 237, 238, 239, 240, 242, 141,
+ 141, 279, 271, 292, 288, 149, 144, 120, 269, 163,
+ 217, 141, 155, 169, 206, 141, 141, 273, 89, 212,
+ 92, 93, 94, 212, 144, 141, 8, 31, 73, 178,
+ 273, 273, 141, 281, 144, 144, 71, 233, 97, 240,
+ 8, 142, 226, 120, 289, 300, 219, 66, 67, 221,
+ 142, 83, 244, 175, 173, 142, 92, 142, 279, 26,
+ 142, 215, 144, 143, 225, 73, 13, 263, 121, 13,
+ 73, 241, 234, 71, 141, 300, 66, 67, 222, 140,
+ 158, 142, 141, 26, 158, 208, 208, 142, 215, 214,
+ 155, 31, 73, 13, 273, 179, 273, 273, 13, 8,
+ 142, 192, 13, 290, 140, 26, 68, 279, 170, 155,
+ 213, 155, 144, 73, 13, 273, 73, 273, 73, 71,
+ 273, 291, 279, 155, 142, 141, 26, 158, 207, 87,
+ 155, 13, 273, 141, 13, 235, 141, 218, 155, 142,
+ 273, 180, 273, 140, 26, 158, 85, 143, 223, 220,
+ 142, 155, 141, 155, 144, 142, 143, 236, 181, 155,
+ 101, 182, 183, 184, 144, 140, 184, 263, 185, 73,
+ 141, 186, 143, 155, 144
};
#define yyerrok (yyerrstatus = 0)
@@ -3074,7 +3079,7 @@ yyreduce:
case 9:
- { REGISTER_MAIN_LONG_CONSTANT("__COMPILER_HALT_OFFSET__", zend_get_scanned_file_offset(TSRMLS_C), CONST_CS); YYACCEPT; }
+ { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; }
break;
case 10:
@@ -3239,1094 +3244,1094 @@ yyreduce:
case 51:
- { zend_do_foreach_begin(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]), 1 TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
case 52:
- { zend_do_foreach_fetch(&(yyvsp[(1) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
+ { zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
case 53:
- { zend_do_foreach_cont(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]), &(yyvsp[(8) - (9)]) TSRMLS_CC); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
case 54:
- { zend_do_foreach_end(&(yyvsp[(1) - (11)]), &(yyvsp[(5) - (11)]) TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
break;
case 55:
- { zend_do_foreach_begin(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(6) - (8)])); zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
case 56:
- { zend_do_foreach_fetch(&(yyvsp[(1) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
case 57:
- { zend_check_writable_variable(&(yyvsp[(7) - (9)])); zend_do_foreach_cont(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]), &(yyvsp[(8) - (9)]) TSRMLS_CC); }
- break;
-
- case 58:
-
- { zend_do_foreach_end(&(yyvsp[(1) - (11)]), &(yyvsp[(5) - (11)]) TSRMLS_CC); }
- break;
-
- case 59:
-
{ (yyvsp[(1) - (1)]).u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
break;
- case 60:
+ case 58:
{ zend_do_declare_end(&(yyvsp[(1) - (6)]) TSRMLS_CC); }
break;
- case 62:
+ case 60:
{ zend_do_try(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 63:
+ case 61:
{ zend_initialize_try_catch_element(&(yyvsp[(1) - (7)]) TSRMLS_CC); }
break;
- case 64:
+ case 62:
{ zend_do_first_catch(&(yyvsp[(7) - (9)]) TSRMLS_CC); }
break;
- case 65:
+ case 63:
{ zend_do_begin_catch(&(yyvsp[(1) - (12)]), &(yyvsp[(9) - (12)]), &(yyvsp[(11) - (12)]), 1 TSRMLS_CC); }
break;
- case 66:
+ case 64:
{ zend_do_end_catch(&(yyvsp[(1) - (16)]) TSRMLS_CC); }
break;
- case 67:
+ case 65:
{ zend_do_mark_last_catch(&(yyvsp[(7) - (18)]), &(yyvsp[(18) - (18)]) TSRMLS_CC); }
break;
- case 68:
+ case 66:
{ zend_do_throw(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 69:
+ case 67:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 70:
+ case 68:
{ (yyval).u.opline_num = -1; }
break;
- case 71:
+ case 69:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 72:
+ case 70:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 73:
+ case 71:
{ (yyval).u.opline_num = get_next_op_number(CG(active_op_array)); }
break;
- case 74:
+ case 72:
{ zend_do_begin_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(5) - (6)]), 0 TSRMLS_CC); }
break;
- case 75:
+ case 73:
{ zend_do_end_catch(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
break;
- case 78:
+ case 76:
{ zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 79:
+ case 77:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 80:
+ case 78:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 81:
+ case 79:
{ zend_do_ticks(TSRMLS_C); }
break;
- case 82:
+ case 80:
{ zend_do_ticks(TSRMLS_C); }
break;
- case 83:
+ case 81:
{ (yyval).op_type = ZEND_RETURN_VAL; }
break;
- case 84:
+ case 82:
{ (yyval).op_type = ZEND_RETURN_REF; }
break;
- case 85:
+ case 83:
{ (yyvsp[(1) - (1)]).u.opline_num = CG(zend_lineno); }
break;
- case 86:
+ case 84:
{ zend_do_begin_function_declaration(&(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), 0, (yyvsp[(3) - (4)]).op_type, NULL TSRMLS_CC); }
break;
- case 87:
+ case 85:
{ zend_do_end_function_declaration(&(yyvsp[(1) - (11)]) TSRMLS_CC); }
break;
- case 88:
+ case 86:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 89:
+ case 87:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]) TSRMLS_CC); }
break;
- case 90:
+ case 88:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), NULL TSRMLS_CC); }
break;
- case 91:
+ case 89:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (7)]), &(yyvsp[(2) - (7)]) TSRMLS_CC); }
break;
- case 92:
+ case 90:
{ (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = 0; }
break;
- case 93:
+ case 91:
{ (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
break;
- case 94:
+ case 92:
{ (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_FINAL_CLASS; }
break;
- case 95:
+ case 93:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 96:
+ case 94:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 97:
+ case 95:
{ (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_INTERFACE; }
break;
- case 102:
+ case 100:
{ zend_do_implements_interface(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 103:
+ case 101:
{ zend_do_implements_interface(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 104:
+ case 102:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 105:
+ case 103:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 106:
+ case 104:
{ zend_check_writable_variable(&(yyvsp[(1) - (1)])); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 107:
+ case 105:
{ zend_check_writable_variable(&(yyvsp[(2) - (2)])); (yyval) = (yyvsp[(2) - (2)]); (yyval).u.EA.type |= ZEND_PARSED_REFERENCE_VARIABLE; }
break;
- case 114:
+ case 112:
{ zend_do_declare_stmt(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 115:
+ case 113:
{ zend_do_declare_stmt(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 116:
+ case 114:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 117:
+ case 115:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 118:
+ case 116:
{ (yyval) = (yyvsp[(2) - (4)]); }
break;
- case 119:
+ case 117:
{ (yyval) = (yyvsp[(3) - (5)]); }
break;
- case 120:
+ case 118:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 121:
+ case 119:
{ zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 122:
+ case 120:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (6)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 123:
+ case 121:
{ zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 124:
+ case 122:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (5)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 130:
+ case 128:
{ zend_do_if_cond(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 131:
+ case 129:
{ zend_do_if_after_statement(&(yyvsp[(5) - (7)]), 0 TSRMLS_CC); }
break;
- case 133:
+ case 131:
{ zend_do_if_cond(&(yyvsp[(4) - (6)]), &(yyvsp[(5) - (6)]) TSRMLS_CC); }
break;
- case 134:
+ case 132:
{ zend_do_if_after_statement(&(yyvsp[(5) - (8)]), 0 TSRMLS_CC); }
break;
- case 141:
+ case 139:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(2) - (2)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; Z_LVAL((yyval).u.constant)=1; Z_TYPE((yyval).u.constant)=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), 0 TSRMLS_CC); }
break;
- case 142:
+ case 140:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; Z_LVAL((yyval).u.constant)=1; Z_TYPE((yyval).u.constant)=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 1 TSRMLS_CC); }
break;
- case 143:
+ case 141:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; Z_LVAL((yyval).u.constant)=1; Z_TYPE((yyval).u.constant)=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(1) - (5)]), &(yyvsp[(3) - (5)]), 1 TSRMLS_CC); }
break;
- case 144:
+ case 142:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; Z_LVAL((yyval).u.constant)=1; Z_TYPE((yyval).u.constant)=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); }
break;
- case 145:
+ case 143:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (4)]); Z_LVAL((yyval).u.constant)++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
break;
- case 146:
+ case 144:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(5) - (5)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (5)]); Z_LVAL((yyval).u.constant)++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), 1 TSRMLS_CC); }
break;
- case 147:
+ case 145:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(5) - (7)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (7)]); Z_LVAL((yyval).u.constant)++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(3) - (7)]), &(yyvsp[(5) - (7)]), 1 TSRMLS_CC); }
break;
- case 148:
+ case 146:
{ znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(4) - (6)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (6)]); Z_LVAL((yyval).u.constant)++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(4) - (6)]), 0 TSRMLS_CC); }
break;
- case 149:
+ case 147:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 150:
+ case 148:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 151:
+ case 149:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant)=IS_NULL;}
break;
- case 152:
+ case 150:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 153:
+ case 151:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 154:
+ case 152:
{ Z_LVAL((yyval).u.constant) = 1; zend_do_pass_param(&(yyvsp[(1) - (1)]), ZEND_SEND_VAL, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 155:
+ case 153:
{ Z_LVAL((yyval).u.constant) = 1; zend_do_pass_param(&(yyvsp[(1) - (1)]), ZEND_SEND_VAR, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 156:
+ case 154:
{ Z_LVAL((yyval).u.constant) = 1; zend_do_pass_param(&(yyvsp[(2) - (2)]), ZEND_SEND_REF, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 157:
+ case 155:
{ Z_LVAL((yyval).u.constant)=Z_LVAL((yyvsp[(1) - (3)]).u.constant)+1; zend_do_pass_param(&(yyvsp[(3) - (3)]), ZEND_SEND_VAL, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 158:
+ case 156:
{ Z_LVAL((yyval).u.constant)=Z_LVAL((yyvsp[(1) - (3)]).u.constant)+1; zend_do_pass_param(&(yyvsp[(3) - (3)]), ZEND_SEND_VAR, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 159:
+ case 157:
{ Z_LVAL((yyval).u.constant)=Z_LVAL((yyvsp[(1) - (4)]).u.constant)+1; zend_do_pass_param(&(yyvsp[(4) - (4)]), ZEND_SEND_REF, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 160:
+ case 158:
{ zend_do_fetch_global_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 161:
+ case 159:
{ zend_do_fetch_global_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 162:
+ case 160:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 163:
+ case 161:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 164:
+ case 162:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 165:
+ case 163:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 166:
+ case 164:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 167:
+ case 165:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 168:
+ case 166:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 171:
+ case 169:
{ CG(access_type) = Z_LVAL((yyvsp[(1) - (1)]).u.constant); }
break;
- case 174:
+ case 172:
{ (yyvsp[(2) - (2)]).u.opline_num = CG(zend_lineno); }
break;
- case 175:
+ case 173:
{ zend_do_begin_function_declaration(&(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]), 1, (yyvsp[(4) - (5)]).op_type, &(yyvsp[(1) - (5)]) TSRMLS_CC); }
break;
- case 176:
+ case 174:
{ zend_do_abstract_method(&(yyvsp[(5) - (10)]), &(yyvsp[(1) - (10)]), &(yyvsp[(10) - (10)]) TSRMLS_CC); zend_do_end_function_declaration(&(yyvsp[(2) - (10)]) TSRMLS_CC); }
break;
- case 177:
+ case 175:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 178:
+ case 176:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 179:
+ case 177:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 180:
+ case 178:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 181:
+ case 179:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 182:
+ case 180:
{ (yyval) = (yyvsp[(1) - (1)]); if (!(Z_LVAL((yyval).u.constant) & ZEND_ACC_PPP_MASK)) { Z_LVAL((yyval).u.constant) |= ZEND_ACC_PUBLIC; } }
break;
- case 183:
+ case 181:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 184:
+ case 182:
{ Z_LVAL((yyval).u.constant) = zend_do_verify_access_types(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); }
break;
- case 185:
+ case 183:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 186:
+ case 184:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PROTECTED; }
break;
- case 187:
+ case 185:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PRIVATE; }
break;
- case 188:
+ case 186:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_STATIC; }
break;
- case 189:
+ case 187:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 190:
+ case 188:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_FINAL; }
break;
- case 191:
+ case 189:
{ zend_do_declare_property(&(yyvsp[(3) - (3)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 192:
+ case 190:
{ zend_do_declare_property(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), CG(access_type) TSRMLS_CC); }
break;
- case 193:
+ case 191:
{ zend_do_declare_property(&(yyvsp[(1) - (1)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 194:
+ case 192:
{ zend_do_declare_property(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), CG(access_type) TSRMLS_CC); }
break;
- case 195:
+ case 193:
{ zend_do_declare_class_constant(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 196:
+ case 194:
{ zend_do_declare_class_constant(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 197:
+ case 195:
{ zend_do_echo(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 198:
+ case 196:
{ zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 199:
+ case 197:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant) = IS_BOOL; Z_LVAL((yyval).u.constant) = 1; }
break;
- case 200:
+ case 198:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 201:
+ case 199:
{ zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 202:
+ case 200:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 203:
+ case 201:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 204:
+ case 202:
{ zend_do_list_init(TSRMLS_C); }
break;
- case 205:
+ case 203:
{ zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
- case 206:
+ case 204:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 207:
+ case 205:
{ zend_check_writable_variable(&(yyvsp[(1) - (4)])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 208:
+ case 206:
{ zend_error(E_STRICT, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&(yyvsp[(1) - (5)])); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 209:
+ case 207:
{ zend_do_end_new_object(&(yyvsp[(3) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (7)]), &(yyvsp[(3) - (7)]) TSRMLS_CC); }
break;
- case 210:
+ case 208:
{ zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 211:
+ case 209:
{ zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 212:
+ case 210:
{ zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 213:
+ case 211:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 214:
+ case 212:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 215:
+ case 213:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 216:
+ case 214:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 217:
+ case 215:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 218:
+ case 216:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 219:
+ case 217:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 220:
+ case 218:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 221:
+ case 219:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 222:
+ case 220:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 223:
+ case 221:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 224:
+ case 222:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); }
break;
- case 225:
+ case 223:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); }
break;
- case 226:
+ case 224:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); }
break;
- case 227:
+ case 225:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); }
break;
- case 228:
+ case 226:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 229:
+ case 227:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 230:
+ case 228:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 231:
+ case 229:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 232:
+ case 230:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 233:
+ case 231:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 234:
+ case 232:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 235:
+ case 233:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 236:
+ case 234:
{ zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 237:
+ case 235:
{ zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 238:
+ case 236:
{ zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 239:
+ case 237:
{ zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 240:
+ case 238:
{ zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 241:
+ case 239:
{ zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 242:
+ case 240:
{ zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 243:
+ case 241:
{ zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 244:
+ case 242:
{ zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 245:
+ case 243:
{ zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 246:
+ case 244:
{ zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 247:
+ case 245:
{ zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 248:
+ case 246:
{ Z_LVAL((yyvsp[(1) - (2)]).u.constant)=0; Z_TYPE((yyvsp[(1) - (2)]).u.constant)=IS_LONG; (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 249:
+ case 247:
{ Z_LVAL((yyvsp[(1) - (2)]).u.constant)=0; Z_TYPE((yyvsp[(1) - (2)]).u.constant)=IS_LONG; (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 250:
+ case 248:
{ zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 251:
+ case 249:
{ zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 252:
+ case 250:
{ zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 253:
+ case 251:
{ zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 254:
+ case 252:
{ zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 255:
+ case 253:
{ zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 256:
+ case 254:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 257:
+ case 255:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 258:
+ case 256:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 259:
+ case 257:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 260:
+ case 258:
{ zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 261:
+ case 259:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 262:
+ case 260:
{ zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 263:
+ case 261:
{ zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 264:
+ case 262:
{ zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
break;
- case 265:
+ case 263:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 266:
+ case 264:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); }
break;
- case 267:
+ case 265:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); }
break;
- case 268:
+ case 266:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); }
break;
- case 269:
+ case 267:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); }
break;
- case 270:
+ case 268:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); }
break;
- case 271:
+ case 269:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); }
break;
- case 272:
+ case 270:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); }
break;
- case 273:
+ case 271:
{ zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 274:
+ case 272:
{ zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 275:
+ case 273:
{ zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 276:
+ case 274:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 277:
+ case 275:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 278:
+ case 276:
{ zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 279:
+ case 277:
{ zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 280:
+ case 278:
{ (yyvsp[(2) - (2)]).u.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 281:
+ case 279:
{ zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, (yyvsp[(2) - (5)]).u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 282:
+ case 280:
{ zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 283:
+ case 281:
{ zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 284:
+ case 282:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 285:
+ case 283:
{ zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 286:
+ case 284:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 287:
+ case 285:
{ zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 288:
+ case 286:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 289:
+ case 287:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 290:
+ case 288:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 291:
+ case 289:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 292:
+ case 290:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
break;
- case 293:
+ case 291:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_MEMBER; }
break;
- case 294:
+ case 292:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 297:
+ case 295:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
break;
- case 298:
+ case 296:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
- case 299:
+ case 297:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
+ case 298:
+
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+ case 299:
+
+ { Z_LVAL((yyval).u.constant)=0; }
+ break;
+
case 300:
{ (yyval) = (yyvsp[(2) - (3)]); }
@@ -4334,12 +4339,12 @@ yyreduce:
case 301:
- { Z_LVAL((yyval).u.constant)=0; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 302:
- { (yyval) = (yyvsp[(2) - (3)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 303:
@@ -4379,47 +4384,47 @@ yyreduce:
case 310:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT TSRMLS_CC); }
break;
case 311:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 312:
- { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT TSRMLS_CC); }
+ { zval minus_one; Z_TYPE(minus_one) = IS_LONG; Z_LVAL(minus_one) = -1; mul_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant, &minus_one TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); }
break;
case 313:
- { (yyval) = (yyvsp[(2) - (2)]); }
+ { (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
break;
case 314:
- { zval minus_one; Z_TYPE(minus_one) = IS_LONG; Z_LVAL(minus_one) = -1; mul_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant, &minus_one TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 315:
- { (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
+ { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT TSRMLS_CC); }
break;
case 316:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT TSRMLS_CC); }
break;
case 317:
- { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 318:
- { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 319:
@@ -4429,506 +4434,496 @@ yyreduce:
case 320:
- { (yyval) = (yyvsp[(1) - (1)]); }
- break;
-
- case 321:
-
- { (yyval) = (yyvsp[(1) - (1)]); }
- break;
-
- case 322:
-
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 323:
+ case 321:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 324:
+ case 322:
{ (yyval) = (yyvsp[(2) - (3)]); zend_do_end_heredoc(TSRMLS_C); }
break;
- case 325:
+ case 323:
{ (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); }
break;
- case 326:
+ case 324:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 329:
+ case 327:
{ zend_do_add_static_array_element(&(yyval), &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)])); }
break;
- case 330:
+ case 328:
{ zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(3) - (3)])); }
break;
- case 331:
+ case 329:
{ (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)])); }
break;
- case 332:
+ case 330:
{ (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(1) - (1)])); }
break;
- case 333:
+ case 331:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 334:
+ case 332:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 335:
+ case 333:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 336:
+ case 334:
{ zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 337:
+ case 335:
{ zend_check_writable_variable(&(yyvsp[(1) - (2)])); }
break;
- case 338:
+ case 336:
{ zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 339:
+ case 337:
{ zend_check_writable_variable(&(yyvsp[(1) - (2)])); }
break;
- case 340:
+ case 338:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 341:
+ case 339:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 342:
+ case 340:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = (yyvsp[(1) - (7)]).u.EA.type | ((yyvsp[(7) - (7)]).u.EA.type ? (yyvsp[(7) - (7)]).u.EA.type : (yyvsp[(6) - (7)]).u.EA.type); }
break;
- case 343:
+ case 341:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 344:
+ case 342:
{ (yyval).u.EA.type = (yyvsp[(2) - (2)]).u.EA.type; }
break;
- case 345:
+ case 343:
{ (yyval).u.EA.type = 0; }
break;
- case 346:
+ case 344:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 347:
+ case 345:
{ (yyval).u.EA.type = (yyvsp[(4) - (4)]).u.EA.type; }
break;
- case 348:
+ case 346:
{ zend_do_pop_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 349:
+ case 347:
{ zend_do_end_function_call(&(yyvsp[(1) - (4)]), &(yyval), &(yyvsp[(3) - (4)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);
zend_do_push_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_METHOD_CALL; }
break;
- case 350:
+ case 348:
{ zend_do_declare_implicit_property(TSRMLS_C); (yyval).u.EA.type = ZEND_PARSED_MEMBER; }
break;
- case 351:
+ case 349:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 352:
+ case 350:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 353:
+ case 351:
{ (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 354:
+ case 352:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 355:
+ case 353:
{ zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_FUNCTION_CALL; }
break;
- case 356:
+ case 354:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; }
break;
- case 357:
+ case 355:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; }
break;
- case 358:
+ case 356:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_STATIC_MEMBER; }
break;
- case 359:
+ case 357:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 360:
+ case 358:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 361:
+ case 359:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 362:
+ case 360:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 363:
+ case 361:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 364:
+ case 362:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 365:
+ case 363:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 366:
+ case 364:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 367:
+ case 365:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 368:
+ case 366:
{ znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (2)]) TSRMLS_CC);}
break;
- case 369:
+ case 367:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 370:
+ case 368:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 371:
+ case 369:
{ znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (1)]) TSRMLS_CC);}
break;
- case 372:
+ case 370:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 373:
+ case 371:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 374:
+ case 372:
{ Z_LVAL((yyval).u.constant) = 1; }
break;
- case 375:
+ case 373:
{ Z_LVAL((yyval).u.constant)++; }
break;
- case 378:
+ case 376:
{ zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 379:
+ case 377:
{ zend_do_new_list_begin(TSRMLS_C); }
break;
- case 380:
+ case 378:
{ zend_do_new_list_end(TSRMLS_C); }
break;
- case 381:
+ case 379:
{ zend_do_add_list_element(NULL TSRMLS_CC); }
break;
- case 382:
+ case 380:
{ zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
- case 383:
+ case 381:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 384:
+ case 382:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); }
break;
- case 385:
+ case 383:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); }
break;
- case 386:
+ case 384:
{ zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
- case 387:
+ case 385:
{ zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
break;
- case 388:
+ case 386:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); }
break;
- case 389:
+ case 387:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); }
break;
- case 390:
+ case 388:
{ zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
- case 391:
+ case 389:
{ zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
- case 392:
+ case 390:
{ zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 393:
+ case 391:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 394:
+ case 392:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 395:
+ case 393:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 396:
+ case 394:
{ zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 397:
+ case 395:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 398:
+ case 396:
{ Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) '['; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 399:
+ case 397:
{ Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) ']'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 400:
+ case 398:
{ Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) '{'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 401:
+ case 399:
{ Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) '}'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 402:
+ case 400:
{ znode tmp; Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) '-'; zend_do_add_char(&tmp, &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); Z_LVAL((yyvsp[(2) - (2)]).u.constant) = (long) '>'; zend_do_add_char(&(yyval), &tmp, &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 403:
+ case 401:
{ zend_do_init_string(&(yyval) TSRMLS_CC); }
break;
- case 404:
+ case 402:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 405:
+ case 403:
{ zend_do_begin_variable_parse(TSRMLS_C); }
break;
- case 406:
+ case 404:
{ fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 407:
+ case 405:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyvsp[(2) - (3)]), &(yyvsp[(1) - (3)]), 1 TSRMLS_CC); zend_do_fetch_property(&(yyval), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 408:
+ case 406:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
- case 409:
+ case 407:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); }
break;
- case 410:
+ case 408:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 411:
+ case 409:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 412:
+ case 410:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 413:
+ case 411:
{ fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 414:
+ case 412:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 415:
+ case 413:
{ zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 416:
+ case 414:
{ zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 417:
+ case 415:
{ zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 418:
+ case 416:
{ zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 419:
+ case 417:
{ zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 420:
+ case 418:
{ zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 421:
+ case 419:
{ zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 422:
+ case 420:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 423:
+ case 421:
{ znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &tmp, &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 424:
+ case 422:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT TSRMLS_CC); }
break;
diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output
index 7cb7e8754..6c306aac6 100644
--- a/Zend/zend_language_parser.output
+++ b/Zend/zend_language_parser.output
@@ -9,7 +9,7 @@ Terminals which are not used
State 285 conflicts: 2 shift/reduce
-State 618 conflicts: 2 shift/reduce
+State 620 conflicts: 2 shift/reduce
Grammar
@@ -96,22 +96,22 @@ Grammar
51 @16: /* empty */
- 52 @17: /* empty */
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
+ 53 @17: /* empty */
54 @18: /* empty */
- 55 @19: /* empty */
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement
- 56 @20: /* empty */
+ 56 @19: /* empty */
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 57 unticked_statement: T_DECLARE @19 '(' declare_list ')' declare_statement
+ 58 | ';'
- 58 @21: /* empty */
+ 59 @20: /* empty */
- 59 unticked_statement: T_DECLARE @21 '(' declare_list ')' declare_statement
- 60 | ';'
+ 60 @21: /* empty */
61 @22: /* empty */
@@ -119,686 +119,682 @@ Grammar
63 @24: /* empty */
- 64 @25: /* empty */
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
+ 65 | T_THROW expr ';'
- 65 @26: /* empty */
+ 66 additional_catches: non_empty_additional_catches
+ 67 | /* empty */
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
- 67 | T_THROW expr ';'
+ 68 non_empty_additional_catches: additional_catch
+ 69 | non_empty_additional_catches additional_catch
- 68 additional_catches: non_empty_additional_catches
- 69 | /* empty */
+ 70 @25: /* empty */
- 70 non_empty_additional_catches: additional_catch
- 71 | non_empty_additional_catches additional_catch
+ 71 @26: /* empty */
- 72 @27: /* empty */
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}'
- 73 @28: /* empty */
+ 73 unset_variables: unset_variable
+ 74 | unset_variables ',' unset_variable
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 75 unset_variable: variable
- 75 unset_variables: unset_variable
- 76 | unset_variables ',' unset_variable
+ 76 use_filename: T_CONSTANT_ENCAPSED_STRING
+ 77 | '(' T_CONSTANT_ENCAPSED_STRING ')'
- 77 unset_variable: variable
+ 78 function_declaration_statement: unticked_function_declaration_statement
- 78 use_filename: T_CONSTANT_ENCAPSED_STRING
- 79 | '(' T_CONSTANT_ENCAPSED_STRING ')'
+ 79 class_declaration_statement: unticked_class_declaration_statement
- 80 function_declaration_statement: unticked_function_declaration_statement
+ 80 is_reference: /* empty */
+ 81 | '&'
- 81 class_declaration_statement: unticked_class_declaration_statement
+ 82 @27: /* empty */
- 82 is_reference: /* empty */
- 83 | '&'
+ 83 @28: /* empty */
- 84 @29: /* empty */
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}'
- 85 @30: /* empty */
+ 85 @29: /* empty */
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list ')' '{' inner_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' class_statement_list '}'
- 87 @31: /* empty */
+ 87 @30: /* empty */
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 implements_list '{' class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' class_statement_list '}'
- 89 @32: /* empty */
+ 89 class_entry_type: T_CLASS
+ 90 | T_ABSTRACT T_CLASS
+ 91 | T_FINAL T_CLASS
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 interface_extends_list '{' class_statement_list '}'
+ 92 extends_from: /* empty */
+ 93 | T_EXTENDS fully_qualified_class_name
- 91 class_entry_type: T_CLASS
- 92 | T_ABSTRACT T_CLASS
- 93 | T_FINAL T_CLASS
+ 94 interface_entry: T_INTERFACE
- 94 extends_from: /* empty */
- 95 | T_EXTENDS fully_qualified_class_name
+ 95 interface_extends_list: /* empty */
+ 96 | T_EXTENDS interface_list
- 96 interface_entry: T_INTERFACE
+ 97 implements_list: /* empty */
+ 98 | T_IMPLEMENTS interface_list
- 97 interface_extends_list: /* empty */
- 98 | T_EXTENDS interface_list
+ 99 interface_list: fully_qualified_class_name
+ 100 | interface_list ',' fully_qualified_class_name
- 99 implements_list: /* empty */
- 100 | T_IMPLEMENTS interface_list
+ 101 foreach_optional_arg: /* empty */
+ 102 | T_DOUBLE_ARROW foreach_variable
- 101 interface_list: fully_qualified_class_name
- 102 | interface_list ',' fully_qualified_class_name
+ 103 foreach_variable: variable
+ 104 | '&' variable
- 103 foreach_optional_arg: /* empty */
- 104 | T_DOUBLE_ARROW foreach_variable
+ 105 for_statement: statement
+ 106 | ':' inner_statement_list T_ENDFOR ';'
- 105 foreach_variable: variable
- 106 | '&' variable
+ 107 foreach_statement: statement
+ 108 | ':' inner_statement_list T_ENDFOREACH ';'
- 107 for_statement: statement
- 108 | ':' inner_statement_list T_ENDFOR ';'
+ 109 declare_statement: statement
+ 110 | ':' inner_statement_list T_ENDDECLARE ';'
- 109 foreach_statement: statement
- 110 | ':' inner_statement_list T_ENDFOREACH ';'
+ 111 declare_list: T_STRING '=' static_scalar
+ 112 | declare_list ',' T_STRING '=' static_scalar
- 111 declare_statement: statement
- 112 | ':' inner_statement_list T_ENDDECLARE ';'
+ 113 switch_case_list: '{' case_list '}'
+ 114 | '{' ';' case_list '}'
+ 115 | ':' case_list T_ENDSWITCH ';'
+ 116 | ':' ';' case_list T_ENDSWITCH ';'
- 113 declare_list: T_STRING '=' static_scalar
- 114 | declare_list ',' T_STRING '=' static_scalar
+ 117 case_list: /* empty */
- 115 switch_case_list: '{' case_list '}'
- 116 | '{' ';' case_list '}'
- 117 | ':' case_list T_ENDSWITCH ';'
- 118 | ':' ';' case_list T_ENDSWITCH ';'
+ 118 @31: /* empty */
- 119 case_list: /* empty */
+ 119 case_list: case_list T_CASE expr case_separator @31 inner_statement_list
- 120 @33: /* empty */
+ 120 @32: /* empty */
- 121 case_list: case_list T_CASE expr case_separator @33 inner_statement_list
+ 121 case_list: case_list T_DEFAULT case_separator @32 inner_statement_list
- 122 @34: /* empty */
+ 122 case_separator: ':'
+ 123 | ';'
- 123 case_list: case_list T_DEFAULT case_separator @34 inner_statement_list
+ 124 while_statement: statement
+ 125 | ':' inner_statement_list T_ENDWHILE ';'
- 124 case_separator: ':'
- 125 | ';'
+ 126 elseif_list: /* empty */
- 126 while_statement: statement
- 127 | ':' inner_statement_list T_ENDWHILE ';'
+ 127 @33: /* empty */
- 128 elseif_list: /* empty */
+ 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' @33 statement
- 129 @35: /* empty */
+ 129 new_elseif_list: /* empty */
- 130 elseif_list: elseif_list T_ELSEIF '(' expr ')' @35 statement
+ 130 @34: /* empty */
- 131 new_elseif_list: /* empty */
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @34 inner_statement_list
- 132 @36: /* empty */
+ 132 else_single: /* empty */
+ 133 | T_ELSE statement
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @36 inner_statement_list
+ 134 new_else_single: /* empty */
+ 135 | T_ELSE ':' inner_statement_list
- 134 else_single: /* empty */
- 135 | T_ELSE statement
+ 136 parameter_list: non_empty_parameter_list
+ 137 | /* empty */
- 136 new_else_single: /* empty */
- 137 | T_ELSE ':' inner_statement_list
+ 138 non_empty_parameter_list: optional_class_type T_VARIABLE
+ 139 | optional_class_type '&' T_VARIABLE
+ 140 | optional_class_type '&' T_VARIABLE '=' static_scalar
+ 141 | optional_class_type T_VARIABLE '=' static_scalar
+ 142 | non_empty_parameter_list ',' optional_class_type T_VARIABLE
+ 143 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE
+ 144 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar
+ 145 | non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar
- 138 parameter_list: non_empty_parameter_list
- 139 | /* empty */
+ 146 optional_class_type: /* empty */
+ 147 | T_STRING
+ 148 | T_ARRAY
- 140 non_empty_parameter_list: optional_class_type T_VARIABLE
- 141 | optional_class_type '&' T_VARIABLE
- 142 | optional_class_type '&' T_VARIABLE '=' static_scalar
- 143 | optional_class_type T_VARIABLE '=' static_scalar
- 144 | non_empty_parameter_list ',' optional_class_type T_VARIABLE
- 145 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE
- 146 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar
- 147 | non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar
+ 149 function_call_parameter_list: non_empty_function_call_parameter_list
+ 150 | /* empty */
- 148 optional_class_type: /* empty */
- 149 | T_STRING
- 150 | T_ARRAY
+ 151 non_empty_function_call_parameter_list: expr_without_variable
+ 152 | variable
+ 153 | '&' w_variable
+ 154 | non_empty_function_call_parameter_list ',' expr_without_variable
+ 155 | non_empty_function_call_parameter_list ',' variable
+ 156 | non_empty_function_call_parameter_list ',' '&' w_variable
- 151 function_call_parameter_list: non_empty_function_call_parameter_list
- 152 | /* empty */
+ 157 global_var_list: global_var_list ',' global_var
+ 158 | global_var
- 153 non_empty_function_call_parameter_list: expr_without_variable
- 154 | variable
- 155 | '&' w_variable
- 156 | non_empty_function_call_parameter_list ',' expr_without_variable
- 157 | non_empty_function_call_parameter_list ',' variable
- 158 | non_empty_function_call_parameter_list ',' '&' w_variable
+ 159 global_var: T_VARIABLE
+ 160 | '$' r_variable
+ 161 | '$' '{' expr '}'
- 159 global_var_list: global_var_list ',' global_var
- 160 | global_var
+ 162 static_var_list: static_var_list ',' T_VARIABLE
+ 163 | static_var_list ',' T_VARIABLE '=' static_scalar
+ 164 | T_VARIABLE
+ 165 | T_VARIABLE '=' static_scalar
- 161 global_var: T_VARIABLE
- 162 | '$' r_variable
- 163 | '$' '{' expr '}'
+ 166 class_statement_list: class_statement_list class_statement
+ 167 | /* empty */
- 164 static_var_list: static_var_list ',' T_VARIABLE
- 165 | static_var_list ',' T_VARIABLE '=' static_scalar
- 166 | T_VARIABLE
- 167 | T_VARIABLE '=' static_scalar
+ 168 @35: /* empty */
- 168 class_statement_list: class_statement_list class_statement
- 169 | /* empty */
+ 169 class_statement: variable_modifiers @35 class_variable_declaration ';'
+ 170 | class_constant_declaration ';'
- 170 @37: /* empty */
+ 171 @36: /* empty */
- 171 class_statement: variable_modifiers @37 class_variable_declaration ';'
- 172 | class_constant_declaration ';'
+ 172 @37: /* empty */
- 173 @38: /* empty */
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' method_body
- 174 @39: /* empty */
+ 174 method_body: ';'
+ 175 | '{' inner_statement_list '}'
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 '(' parameter_list ')' method_body
+ 176 variable_modifiers: non_empty_member_modifiers
+ 177 | T_VAR
- 176 method_body: ';'
- 177 | '{' inner_statement_list '}'
+ 178 method_modifiers: /* empty */
+ 179 | non_empty_member_modifiers
- 178 variable_modifiers: non_empty_member_modifiers
- 179 | T_VAR
+ 180 non_empty_member_modifiers: member_modifier
+ 181 | non_empty_member_modifiers member_modifier
- 180 method_modifiers: /* empty */
- 181 | non_empty_member_modifiers
+ 182 member_modifier: T_PUBLIC
+ 183 | T_PROTECTED
+ 184 | T_PRIVATE
+ 185 | T_STATIC
+ 186 | T_ABSTRACT
+ 187 | T_FINAL
- 182 non_empty_member_modifiers: member_modifier
- 183 | non_empty_member_modifiers member_modifier
+ 188 class_variable_declaration: class_variable_declaration ',' T_VARIABLE
+ 189 | class_variable_declaration ',' T_VARIABLE '=' static_scalar
+ 190 | T_VARIABLE
+ 191 | T_VARIABLE '=' static_scalar
- 184 member_modifier: T_PUBLIC
- 185 | T_PROTECTED
- 186 | T_PRIVATE
- 187 | T_STATIC
- 188 | T_ABSTRACT
- 189 | T_FINAL
+ 192 class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar
+ 193 | T_CONST T_STRING '=' static_scalar
- 190 class_variable_declaration: class_variable_declaration ',' T_VARIABLE
- 191 | class_variable_declaration ',' T_VARIABLE '=' static_scalar
- 192 | T_VARIABLE
- 193 | T_VARIABLE '=' static_scalar
+ 194 echo_expr_list: echo_expr_list ',' expr
+ 195 | expr
- 194 class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar
- 195 | T_CONST T_STRING '=' static_scalar
+ 196 for_expr: /* empty */
+ 197 | non_empty_for_expr
- 196 echo_expr_list: echo_expr_list ',' expr
- 197 | expr
+ 198 @38: /* empty */
- 198 for_expr: /* empty */
- 199 | non_empty_for_expr
+ 199 non_empty_for_expr: non_empty_for_expr ',' @38 expr
+ 200 | expr
- 200 @40: /* empty */
+ 201 @39: /* empty */
- 201 non_empty_for_expr: non_empty_for_expr ',' @40 expr
- 202 | expr
+ 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' expr
+ 203 | variable '=' expr
+ 204 | variable '=' '&' variable
- 203 @41: /* empty */
+ 205 @40: /* empty */
- 204 expr_without_variable: T_LIST '(' @41 assignment_list ')' '=' expr
- 205 | variable '=' expr
- 206 | variable '=' '&' variable
+ 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 ctor_arguments
- 207 @42: /* empty */
+ 207 @41: /* empty */
- 208 expr_without_variable: variable '=' '&' T_NEW class_name_reference @42 ctor_arguments
+ 208 expr_without_variable: T_NEW class_name_reference @41 ctor_arguments
+ 209 | T_CLONE expr
+ 210 | variable T_PLUS_EQUAL expr
+ 211 | variable T_MINUS_EQUAL expr
+ 212 | variable T_MUL_EQUAL expr
+ 213 | variable T_DIV_EQUAL expr
+ 214 | variable T_CONCAT_EQUAL expr
+ 215 | variable T_MOD_EQUAL expr
+ 216 | variable T_AND_EQUAL expr
+ 217 | variable T_OR_EQUAL expr
+ 218 | variable T_XOR_EQUAL expr
+ 219 | variable T_SL_EQUAL expr
+ 220 | variable T_SR_EQUAL expr
+ 221 | rw_variable T_INC
+ 222 | T_INC rw_variable
+ 223 | rw_variable T_DEC
+ 224 | T_DEC rw_variable
- 209 @43: /* empty */
+ 225 @42: /* empty */
- 210 expr_without_variable: T_NEW class_name_reference @43 ctor_arguments
- 211 | T_CLONE expr
- 212 | variable T_PLUS_EQUAL expr
- 213 | variable T_MINUS_EQUAL expr
- 214 | variable T_MUL_EQUAL expr
- 215 | variable T_DIV_EQUAL expr
- 216 | variable T_CONCAT_EQUAL expr
- 217 | variable T_MOD_EQUAL expr
- 218 | variable T_AND_EQUAL expr
- 219 | variable T_OR_EQUAL expr
- 220 | variable T_XOR_EQUAL expr
- 221 | variable T_SL_EQUAL expr
- 222 | variable T_SR_EQUAL expr
- 223 | rw_variable T_INC
- 224 | T_INC rw_variable
- 225 | rw_variable T_DEC
- 226 | T_DEC rw_variable
+ 226 expr_without_variable: expr T_BOOLEAN_OR @42 expr
- 227 @44: /* empty */
+ 227 @43: /* empty */
- 228 expr_without_variable: expr T_BOOLEAN_OR @44 expr
+ 228 expr_without_variable: expr T_BOOLEAN_AND @43 expr
- 229 @45: /* empty */
+ 229 @44: /* empty */
- 230 expr_without_variable: expr T_BOOLEAN_AND @45 expr
+ 230 expr_without_variable: expr T_LOGICAL_OR @44 expr
- 231 @46: /* empty */
+ 231 @45: /* empty */
- 232 expr_without_variable: expr T_LOGICAL_OR @46 expr
+ 232 expr_without_variable: expr T_LOGICAL_AND @45 expr
+ 233 | expr T_LOGICAL_XOR expr
+ 234 | expr '|' expr
+ 235 | expr '&' expr
+ 236 | expr '^' expr
+ 237 | expr '.' expr
+ 238 | expr '+' expr
+ 239 | expr '-' expr
+ 240 | expr '*' expr
+ 241 | expr '/' expr
+ 242 | expr '%' expr
+ 243 | expr T_SL expr
+ 244 | expr T_SR expr
+ 245 | '+' expr
+ 246 | '-' expr
+ 247 | '!' expr
+ 248 | '~' expr
+ 249 | expr T_IS_IDENTICAL expr
+ 250 | expr T_IS_NOT_IDENTICAL expr
+ 251 | expr T_IS_EQUAL expr
+ 252 | expr T_IS_NOT_EQUAL expr
+ 253 | expr '<' expr
+ 254 | expr T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr '>' expr
+ 256 | expr T_IS_GREATER_OR_EQUAL expr
+ 257 | expr T_INSTANCEOF class_name_reference
+ 258 | '(' expr ')'
- 233 @47: /* empty */
+ 259 @46: /* empty */
- 234 expr_without_variable: expr T_LOGICAL_AND @47 expr
- 235 | expr T_LOGICAL_XOR expr
- 236 | expr '|' expr
- 237 | expr '&' expr
- 238 | expr '^' expr
- 239 | expr '.' expr
- 240 | expr '+' expr
- 241 | expr '-' expr
- 242 | expr '*' expr
- 243 | expr '/' expr
- 244 | expr '%' expr
- 245 | expr T_SL expr
- 246 | expr T_SR expr
- 247 | '+' expr
- 248 | '-' expr
- 249 | '!' expr
- 250 | '~' expr
- 251 | expr T_IS_IDENTICAL expr
- 252 | expr T_IS_NOT_IDENTICAL expr
- 253 | expr T_IS_EQUAL expr
- 254 | expr T_IS_NOT_EQUAL expr
- 255 | expr '<' expr
- 256 | expr T_IS_SMALLER_OR_EQUAL expr
- 257 | expr '>' expr
- 258 | expr T_IS_GREATER_OR_EQUAL expr
- 259 | expr T_INSTANCEOF class_name_reference
- 260 | '(' expr ')'
+ 260 @47: /* empty */
- 261 @48: /* empty */
+ 261 expr_without_variable: expr '?' @46 expr ':' @47 expr
+ 262 | internal_functions_in_yacc
+ 263 | T_INT_CAST expr
+ 264 | T_DOUBLE_CAST expr
+ 265 | T_STRING_CAST expr
+ 266 | T_ARRAY_CAST expr
+ 267 | T_OBJECT_CAST expr
+ 268 | T_BOOL_CAST expr
+ 269 | T_UNSET_CAST expr
+ 270 | T_EXIT exit_expr
- 262 @49: /* empty */
+ 271 @48: /* empty */
- 263 expr_without_variable: expr '?' @48 expr ':' @49 expr
- 264 | internal_functions_in_yacc
- 265 | T_INT_CAST expr
- 266 | T_DOUBLE_CAST expr
- 267 | T_STRING_CAST expr
- 268 | T_ARRAY_CAST expr
- 269 | T_OBJECT_CAST expr
- 270 | T_BOOL_CAST expr
- 271 | T_UNSET_CAST expr
- 272 | T_EXIT exit_expr
+ 272 expr_without_variable: '@' @48 expr
+ 273 | scalar
+ 274 | T_ARRAY '(' array_pair_list ')'
+ 275 | '`' encaps_list '`'
+ 276 | T_PRINT expr
- 273 @50: /* empty */
+ 277 @49: /* empty */
- 274 expr_without_variable: '@' @50 expr
- 275 | scalar
- 276 | T_ARRAY '(' array_pair_list ')'
- 277 | '`' encaps_list '`'
- 278 | T_PRINT expr
+ 278 function_call: T_STRING '(' @49 function_call_parameter_list ')'
- 279 @51: /* empty */
+ 279 @50: /* empty */
- 280 function_call: T_STRING '(' @51 function_call_parameter_list ')'
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')'
- 281 @52: /* empty */
+ 281 @51: /* empty */
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 function_call_parameter_list ')'
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')'
- 283 @53: /* empty */
+ 283 @52: /* empty */
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 function_call_parameter_list ')'
+ 284 function_call: variable_without_objects '(' @52 function_call_parameter_list ')'
- 285 @54: /* empty */
+ 285 fully_qualified_class_name: T_STRING
- 286 function_call: variable_without_objects '(' @54 function_call_parameter_list ')'
+ 286 class_name_reference: T_STRING
+ 287 | dynamic_class_name_reference
- 287 fully_qualified_class_name: T_STRING
+ 288 @53: /* empty */
- 288 class_name_reference: T_STRING
- 289 | dynamic_class_name_reference
+ 289 @54: /* empty */
- 290 @55: /* empty */
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property @54 dynamic_class_name_variable_properties
+ 291 | base_variable
- 291 @56: /* empty */
+ 292 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
+ 293 | /* empty */
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @55 object_property @56 dynamic_class_name_variable_properties
- 293 | base_variable
+ 294 dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property
- 294 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
- 295 | /* empty */
+ 295 exit_expr: /* empty */
+ 296 | '(' ')'
+ 297 | '(' expr ')'
- 296 dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property
+ 298 ctor_arguments: /* empty */
+ 299 | '(' function_call_parameter_list ')'
- 297 exit_expr: /* empty */
- 298 | '(' ')'
- 299 | '(' expr ')'
+ 300 common_scalar: T_LNUMBER
+ 301 | T_DNUMBER
+ 302 | T_CONSTANT_ENCAPSED_STRING
+ 303 | T_LINE
+ 304 | T_FILE
+ 305 | T_CLASS_C
+ 306 | T_METHOD_C
+ 307 | T_FUNC_C
- 300 ctor_arguments: /* empty */
- 301 | '(' function_call_parameter_list ')'
+ 308 static_scalar: common_scalar
+ 309 | T_STRING
+ 310 | '+' static_scalar
+ 311 | '-' static_scalar
+ 312 | T_ARRAY '(' static_array_pair_list ')'
+ 313 | static_class_constant
- 302 common_scalar: T_LNUMBER
- 303 | T_DNUMBER
- 304 | T_CONSTANT_ENCAPSED_STRING
- 305 | T_LINE
- 306 | T_FILE
- 307 | T_CLASS_C
- 308 | T_METHOD_C
- 309 | T_FUNC_C
+ 314 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING
- 310 static_scalar: common_scalar
- 311 | T_STRING
- 312 | '+' static_scalar
- 313 | '-' static_scalar
- 314 | T_ARRAY '(' static_array_pair_list ')'
- 315 | static_class_constant
+ 315 scalar: T_STRING
+ 316 | T_STRING_VARNAME
+ 317 | class_constant
+ 318 | common_scalar
+ 319 | '"' encaps_list '"'
+ 320 | ''' encaps_list '''
+ 321 | T_START_HEREDOC encaps_list T_END_HEREDOC
- 316 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING
+ 322 static_array_pair_list: /* empty */
+ 323 | non_empty_static_array_pair_list possible_comma
- 317 scalar: T_STRING
- 318 | T_STRING_VARNAME
- 319 | class_constant
- 320 | common_scalar
- 321 | '"' encaps_list '"'
- 322 | ''' encaps_list '''
- 323 | T_START_HEREDOC encaps_list T_END_HEREDOC
+ 324 possible_comma: /* empty */
+ 325 | ','
- 324 static_array_pair_list: /* empty */
- 325 | non_empty_static_array_pair_list possible_comma
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar
+ 327 | non_empty_static_array_pair_list ',' static_scalar
+ 328 | static_scalar T_DOUBLE_ARROW static_scalar
+ 329 | static_scalar
- 326 possible_comma: /* empty */
- 327 | ','
+ 330 expr: r_variable
+ 331 | expr_without_variable
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar
- 329 | non_empty_static_array_pair_list ',' static_scalar
- 330 | static_scalar T_DOUBLE_ARROW static_scalar
- 331 | static_scalar
+ 332 r_variable: variable
- 332 expr: r_variable
- 333 | expr_without_variable
+ 333 @55: /* empty */
- 334 r_variable: variable
+ 334 w_variable: variable @55
- 335 @57: /* empty */
+ 335 @56: /* empty */
- 336 w_variable: variable @57
+ 336 rw_variable: variable @56
- 337 @58: /* empty */
+ 337 @57: /* empty */
- 338 rw_variable: variable @58
+ 338 @58: /* empty */
- 339 @59: /* empty */
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties
+ 340 | base_variable_with_function_calls
- 340 @60: /* empty */
+ 341 variable_properties: variable_properties variable_property
+ 342 | /* empty */
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 object_property @60 method_or_not variable_properties
- 342 | base_variable_with_function_calls
+ 343 @59: /* empty */
- 343 variable_properties: variable_properties variable_property
- 344 | /* empty */
+ 344 variable_property: T_OBJECT_OPERATOR object_property @59 method_or_not
- 345 @61: /* empty */
+ 345 @60: /* empty */
- 346 variable_property: T_OBJECT_OPERATOR object_property @61 method_or_not
+ 346 method_or_not: '(' @60 function_call_parameter_list ')'
+ 347 | /* empty */
- 347 @62: /* empty */
+ 348 variable_without_objects: reference_variable
+ 349 | simple_indirect_reference reference_variable
- 348 method_or_not: '(' @62 function_call_parameter_list ')'
- 349 | /* empty */
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
- 350 variable_without_objects: reference_variable
- 351 | simple_indirect_reference reference_variable
+ 351 base_variable_with_function_calls: base_variable
+ 352 | function_call
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
+ 353 base_variable: reference_variable
+ 354 | simple_indirect_reference reference_variable
+ 355 | static_member
- 353 base_variable_with_function_calls: base_variable
- 354 | function_call
+ 356 reference_variable: reference_variable '[' dim_offset ']'
+ 357 | reference_variable '{' expr '}'
+ 358 | compound_variable
- 355 base_variable: reference_variable
- 356 | simple_indirect_reference reference_variable
- 357 | static_member
+ 359 compound_variable: T_VARIABLE
+ 360 | '$' '{' expr '}'
- 358 reference_variable: reference_variable '[' dim_offset ']'
- 359 | reference_variable '{' expr '}'
- 360 | compound_variable
+ 361 dim_offset: /* empty */
+ 362 | expr
- 361 compound_variable: T_VARIABLE
- 362 | '$' '{' expr '}'
+ 363 object_property: object_dim_list
- 363 dim_offset: /* empty */
- 364 | expr
+ 364 @61: /* empty */
- 365 object_property: object_dim_list
+ 365 object_property: variable_without_objects @61
- 366 @63: /* empty */
+ 366 object_dim_list: object_dim_list '[' dim_offset ']'
+ 367 | object_dim_list '{' expr '}'
+ 368 | variable_name
- 367 object_property: variable_without_objects @63
+ 369 variable_name: T_STRING
+ 370 | '{' expr '}'
- 368 object_dim_list: object_dim_list '[' dim_offset ']'
- 369 | object_dim_list '{' expr '}'
- 370 | variable_name
+ 371 simple_indirect_reference: '$'
+ 372 | simple_indirect_reference '$'
- 371 variable_name: T_STRING
- 372 | '{' expr '}'
+ 373 assignment_list: assignment_list ',' assignment_list_element
+ 374 | assignment_list_element
- 373 simple_indirect_reference: '$'
- 374 | simple_indirect_reference '$'
+ 375 assignment_list_element: variable
- 375 assignment_list: assignment_list ',' assignment_list_element
- 376 | assignment_list_element
+ 376 @62: /* empty */
- 377 assignment_list_element: variable
+ 377 assignment_list_element: T_LIST '(' @62 assignment_list ')'
+ 378 | /* empty */
- 378 @64: /* empty */
+ 379 array_pair_list: /* empty */
+ 380 | non_empty_array_pair_list possible_comma
- 379 assignment_list_element: T_LIST '(' @64 assignment_list ')'
- 380 | /* empty */
+ 381 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr
+ 382 | non_empty_array_pair_list ',' expr
+ 383 | expr T_DOUBLE_ARROW expr
+ 384 | expr
+ 385 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable
+ 386 | non_empty_array_pair_list ',' '&' w_variable
+ 387 | expr T_DOUBLE_ARROW '&' w_variable
+ 388 | '&' w_variable
- 381 array_pair_list: /* empty */
- 382 | non_empty_array_pair_list possible_comma
+ 389 encaps_list: encaps_list encaps_var
+ 390 | encaps_list T_STRING
+ 391 | encaps_list T_NUM_STRING
+ 392 | encaps_list T_ENCAPSED_AND_WHITESPACE
+ 393 | encaps_list T_CHARACTER
+ 394 | encaps_list T_BAD_CHARACTER
+ 395 | encaps_list '['
+ 396 | encaps_list ']'
+ 397 | encaps_list '{'
+ 398 | encaps_list '}'
+ 399 | encaps_list T_OBJECT_OPERATOR
+ 400 | /* empty */
- 383 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr
- 384 | non_empty_array_pair_list ',' expr
- 385 | expr T_DOUBLE_ARROW expr
- 386 | expr
- 387 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable
- 388 | non_empty_array_pair_list ',' '&' w_variable
- 389 | expr T_DOUBLE_ARROW '&' w_variable
- 390 | '&' w_variable
+ 401 encaps_var: T_VARIABLE
- 391 encaps_list: encaps_list encaps_var
- 392 | encaps_list T_STRING
- 393 | encaps_list T_NUM_STRING
- 394 | encaps_list T_ENCAPSED_AND_WHITESPACE
- 395 | encaps_list T_CHARACTER
- 396 | encaps_list T_BAD_CHARACTER
- 397 | encaps_list '['
- 398 | encaps_list ']'
- 399 | encaps_list '{'
- 400 | encaps_list '}'
- 401 | encaps_list T_OBJECT_OPERATOR
- 402 | /* empty */
+ 402 @63: /* empty */
- 403 encaps_var: T_VARIABLE
+ 403 encaps_var: T_VARIABLE '[' @63 encaps_var_offset ']'
+ 404 | T_VARIABLE T_OBJECT_OPERATOR T_STRING
+ 405 | T_DOLLAR_OPEN_CURLY_BRACES expr '}'
+ 406 | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
+ 407 | T_CURLY_OPEN variable '}'
- 404 @65: /* empty */
+ 408 encaps_var_offset: T_STRING
+ 409 | T_NUM_STRING
+ 410 | T_VARIABLE
- 405 encaps_var: T_VARIABLE '[' @65 encaps_var_offset ']'
- 406 | T_VARIABLE T_OBJECT_OPERATOR T_STRING
- 407 | T_DOLLAR_OPEN_CURLY_BRACES expr '}'
- 408 | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
- 409 | T_CURLY_OPEN variable '}'
+ 411 internal_functions_in_yacc: T_ISSET '(' isset_variables ')'
+ 412 | T_EMPTY '(' variable ')'
+ 413 | T_INCLUDE expr
+ 414 | T_INCLUDE_ONCE expr
+ 415 | T_EVAL '(' expr ')'
+ 416 | T_REQUIRE expr
+ 417 | T_REQUIRE_ONCE expr
- 410 encaps_var_offset: T_STRING
- 411 | T_NUM_STRING
- 412 | T_VARIABLE
+ 418 isset_variables: variable
- 413 internal_functions_in_yacc: T_ISSET '(' isset_variables ')'
- 414 | T_EMPTY '(' variable ')'
- 415 | T_INCLUDE expr
- 416 | T_INCLUDE_ONCE expr
- 417 | T_EVAL '(' expr ')'
- 418 | T_REQUIRE expr
- 419 | T_REQUIRE_ONCE expr
+ 419 @64: /* empty */
- 420 isset_variables: variable
+ 420 isset_variables: isset_variables ',' @64 variable
- 421 @66: /* empty */
-
- 422 isset_variables: isset_variables ',' @66 variable
-
- 423 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
+ 421 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
Terminals, with rules where they appear
$end (0) 0
-'!' (33) 249
-'"' (34) 321
-'$' (36) 162 163 362 373 374
-'%' (37) 244
-'&' (38) 83 106 141 142 145 146 155 158 206 208 237 387 388 389 390
-''' (39) 322
-'(' (40) 8 15 20 23 26 29 33 35 49 53 57 59 66 74 79 86 130 133 175
- 204 260 276 280 282 284 286 298 299 301 314 348 379 413 414 417
-')' (41) 8 15 20 23 26 29 33 35 49 53 57 59 66 74 79 86 130 133 175
- 204 260 276 280 282 284 286 298 299 301 314 348 379 413 414 417
-'*' (42) 242
-'+' (43) 240 247 312
-',' (44) 76 102 114 144 145 146 147 156 157 158 159 164 165 190 191
- 194 196 201 327 328 329 375 383 384 387 388 422
-'-' (45) 241 248 313
-'.' (46) 239
-'/' (47) 243
-':' (58) 23 108 110 112 117 118 124 127 133 137 263
-';' (59) 8 15 23 29 33 36 37 38 39 40 41 42 43 44 45 47 48 49 60 67
- 108 110 112 116 117 118 125 127 171 172 176
-'<' (60) 255
-'=' (61) 113 114 142 143 146 147 165 167 191 193 194 195 204 205 206
- 208
-'>' (62) 257
-'?' (63) 263
-'@' (64) 274
-'[' (91) 358 368 397 405 408
-']' (93) 358 368 398 405 408
-'^' (94) 238
-'`' (96) 277
-'{' (123) 17 66 74 86 88 90 115 116 163 177 359 362 369 372 399
-'|' (124) 236
-'}' (125) 17 66 74 86 88 90 115 116 163 177 359 362 369 372 400 407
- 408 409
-'~' (126) 250
+'!' (33) 247
+'"' (34) 319
+'$' (36) 160 161 360 371 372
+'%' (37) 242
+'&' (38) 81 104 139 140 143 144 153 156 204 206 235 385 386 387 388
+''' (39) 320
+'(' (40) 8 15 20 23 26 29 33 35 49 52 55 57 64 72 77 84 128 131 173
+ 202 258 274 278 280 282 284 296 297 299 312 346 377 411 412 415
+')' (41) 8 15 20 23 26 29 33 35 49 52 55 57 64 72 77 84 128 131 173
+ 202 258 274 278 280 282 284 296 297 299 312 346 377 411 412 415
+'*' (42) 240
+'+' (43) 238 245 310
+',' (44) 74 100 112 142 143 144 145 154 155 156 157 162 163 188 189
+ 192 194 199 325 326 327 373 381 382 385 386 420
+'-' (45) 239 246 311
+'.' (46) 237
+'/' (47) 241
+':' (58) 23 106 108 110 115 116 122 125 131 135 261
+';' (59) 8 15 23 29 33 36 37 38 39 40 41 42 43 44 45 47 48 49 58 65
+ 106 108 110 114 115 116 123 125 169 170 174
+'<' (60) 253
+'=' (61) 111 112 140 141 144 145 163 165 189 191 192 193 202 203 204
+ 206
+'>' (62) 255
+'?' (63) 261
+'@' (64) 272
+'[' (91) 356 366 395 403 406
+']' (93) 356 366 396 403 406
+'^' (94) 236
+'`' (96) 275
+'{' (123) 17 64 72 84 86 88 113 114 161 175 357 360 367 370 397
+'|' (124) 234
+'}' (125) 17 64 72 84 86 88 113 114 161 175 357 360 367 370 398 405
+ 406 407
+'~' (126) 248
error (256)
-T_REQUIRE_ONCE (258) 419
-T_REQUIRE (259) 418
-T_EVAL (260) 417
-T_INCLUDE_ONCE (261) 416
-T_INCLUDE (262) 415
-T_LOGICAL_OR (263) 232
-T_LOGICAL_XOR (264) 235
-T_LOGICAL_AND (265) 234
-T_PRINT (266) 278
-T_SR_EQUAL (267) 222
-T_SL_EQUAL (268) 221
-T_XOR_EQUAL (269) 220
-T_OR_EQUAL (270) 219
-T_AND_EQUAL (271) 218
-T_MOD_EQUAL (272) 217
-T_CONCAT_EQUAL (273) 216
-T_DIV_EQUAL (274) 215
-T_MUL_EQUAL (275) 214
-T_MINUS_EQUAL (276) 213
-T_PLUS_EQUAL (277) 212
-T_BOOLEAN_OR (278) 228
-T_BOOLEAN_AND (279) 230
-T_IS_NOT_IDENTICAL (280) 252
-T_IS_IDENTICAL (281) 251
-T_IS_NOT_EQUAL (282) 254
-T_IS_EQUAL (283) 253
-T_IS_GREATER_OR_EQUAL (284) 258
-T_IS_SMALLER_OR_EQUAL (285) 256
-T_SR (286) 246
-T_SL (287) 245
-T_INSTANCEOF (288) 259
-T_UNSET_CAST (289) 271
-T_BOOL_CAST (290) 270
-T_OBJECT_CAST (291) 269
-T_ARRAY_CAST (292) 268
-T_STRING_CAST (293) 267
-T_DOUBLE_CAST (294) 266
-T_INT_CAST (295) 265
-T_DEC (296) 225 226
-T_INC (297) 223 224
-T_CLONE (298) 211
-T_NEW (299) 208 210
-T_EXIT (300) 272
+T_REQUIRE_ONCE (258) 417
+T_REQUIRE (259) 416
+T_EVAL (260) 415
+T_INCLUDE_ONCE (261) 414
+T_INCLUDE (262) 413
+T_LOGICAL_OR (263) 230
+T_LOGICAL_XOR (264) 233
+T_LOGICAL_AND (265) 232
+T_PRINT (266) 276
+T_SR_EQUAL (267) 220
+T_SL_EQUAL (268) 219
+T_XOR_EQUAL (269) 218
+T_OR_EQUAL (270) 217
+T_AND_EQUAL (271) 216
+T_MOD_EQUAL (272) 215
+T_CONCAT_EQUAL (273) 214
+T_DIV_EQUAL (274) 213
+T_MUL_EQUAL (275) 212
+T_MINUS_EQUAL (276) 211
+T_PLUS_EQUAL (277) 210
+T_BOOLEAN_OR (278) 226
+T_BOOLEAN_AND (279) 228
+T_IS_NOT_IDENTICAL (280) 250
+T_IS_IDENTICAL (281) 249
+T_IS_NOT_EQUAL (282) 252
+T_IS_EQUAL (283) 251
+T_IS_GREATER_OR_EQUAL (284) 256
+T_IS_SMALLER_OR_EQUAL (285) 254
+T_SR (286) 244
+T_SL (287) 243
+T_INSTANCEOF (288) 257
+T_UNSET_CAST (289) 269
+T_BOOL_CAST (290) 268
+T_OBJECT_CAST (291) 267
+T_ARRAY_CAST (292) 266
+T_STRING_CAST (293) 265
+T_DOUBLE_CAST (294) 264
+T_INT_CAST (295) 263
+T_DEC (296) 223 224
+T_INC (297) 221 222
+T_CLONE (298) 209
+T_NEW (299) 206 208
+T_EXIT (300) 270
T_IF (301) 20 23
-T_ELSEIF (302) 130 133
-T_ELSE (303) 135 137
+T_ELSEIF (302) 128 131
+T_ELSE (303) 133 135
T_ENDIF (304) 23
-T_LNUMBER (305) 302
-T_DNUMBER (306) 303
-T_STRING (307) 86 88 90 113 114 149 175 194 195 280 282 287 288 311
- 316 317 371 392 406 410 423
-T_STRING_VARNAME (308) 318 408
-T_VARIABLE (309) 66 74 140 141 142 143 144 145 146 147 161 164 165
- 166 167 190 191 192 193 361 403 405 406 412
-T_NUM_STRING (310) 393 411
+T_LNUMBER (305) 300
+T_DNUMBER (306) 301
+T_STRING (307) 84 86 88 111 112 147 173 192 193 278 280 285 286 309
+ 314 315 369 390 404 408 421
+T_STRING_VARNAME (308) 316 406
+T_VARIABLE (309) 64 72 138 139 140 141 142 143 144 145 159 162 163
+ 164 165 188 189 190 191 359 401 403 404 410
+T_NUM_STRING (310) 391 409
T_INLINE_HTML (311) 46
-T_CHARACTER (312) 395
-T_BAD_CHARACTER (313) 396
-T_ENCAPSED_AND_WHITESPACE (314) 394
-T_CONSTANT_ENCAPSED_STRING (315) 78 79 304
+T_CHARACTER (312) 393
+T_BAD_CHARACTER (313) 394
+T_ENCAPSED_AND_WHITESPACE (314) 392
+T_CONSTANT_ENCAPSED_STRING (315) 76 77 302
T_ECHO (316) 45
T_DO (317) 29
T_WHILE (318) 26 29
-T_ENDWHILE (319) 127
+T_ENDWHILE (319) 125
T_FOR (320) 33
-T_ENDFOR (321) 108
-T_FOREACH (322) 53 57
-T_ENDFOREACH (323) 110
-T_DECLARE (324) 59
-T_ENDDECLARE (325) 112
-T_AS (326) 53 57
+T_ENDFOR (321) 106
+T_FOREACH (322) 52 55
+T_ENDFOREACH (323) 108
+T_DECLARE (324) 57
+T_ENDDECLARE (325) 110
+T_AS (326) 52 55
T_SWITCH (327) 35
-T_ENDSWITCH (328) 117 118
-T_CASE (329) 121
-T_DEFAULT (330) 123
+T_ENDSWITCH (328) 115 116
+T_CASE (329) 119
+T_DEFAULT (330) 121
T_BREAK (331) 36 37
T_CONTINUE (332) 38 39
-T_FUNCTION (333) 86 175
-T_CONST (334) 195
+T_FUNCTION (333) 84 173
+T_CONST (334) 193
T_RETURN (335) 40 41 42
-T_TRY (336) 66
-T_CATCH (337) 66 74
-T_THROW (338) 67
+T_TRY (336) 64
+T_CATCH (337) 64 72
+T_THROW (338) 65
T_USE (339) 48
T_GLOBAL (340) 43
-T_PUBLIC (341) 184
-T_PROTECTED (342) 185
-T_PRIVATE (343) 186
-T_FINAL (344) 93 189
-T_ABSTRACT (345) 92 188
-T_STATIC (346) 44 187
-T_VAR (347) 179
+T_PUBLIC (341) 182
+T_PROTECTED (342) 183
+T_PRIVATE (343) 184
+T_FINAL (344) 91 187
+T_ABSTRACT (345) 90 186
+T_STATIC (346) 44 185
+T_VAR (347) 177
T_UNSET (348) 49
-T_ISSET (349) 413
-T_EMPTY (350) 414
+T_ISSET (349) 411
+T_EMPTY (350) 412
T_HALT_COMPILER (351) 8 15
-T_CLASS (352) 91 92 93
-T_INTERFACE (353) 96
-T_EXTENDS (354) 95 98
-T_IMPLEMENTS (355) 100
-T_OBJECT_OPERATOR (356) 292 296 341 346 401 406
-T_DOUBLE_ARROW (357) 104 328 330 383 385 387 389
-T_LIST (358) 204 379
-T_ARRAY (359) 150 276 314
-T_CLASS_C (360) 307
-T_METHOD_C (361) 308
-T_FUNC_C (362) 309
-T_LINE (363) 305
-T_FILE (364) 306
+T_CLASS (352) 89 90 91
+T_INTERFACE (353) 94
+T_EXTENDS (354) 93 96
+T_IMPLEMENTS (355) 98
+T_OBJECT_OPERATOR (356) 290 294 339 344 399 404
+T_DOUBLE_ARROW (357) 102 326 328 381 383 385 387
+T_LIST (358) 202 377
+T_ARRAY (359) 148 274 312
+T_CLASS_C (360) 305
+T_METHOD_C (361) 306
+T_FUNC_C (362) 307
+T_LINE (363) 303
+T_FILE (364) 304
T_COMMENT (365)
T_DOC_COMMENT (366)
T_OPEN_TAG (367)
T_OPEN_TAG_WITH_ECHO (368)
T_CLOSE_TAG (369)
T_WHITESPACE (370)
-T_START_HEREDOC (371) 323
-T_END_HEREDOC (372) 323
-T_DOLLAR_OPEN_CURLY_BRACES (373) 407 408
-T_CURLY_OPEN (374) 409
-T_PAAMAYIM_NEKUDOTAYIM (375) 282 284 316 352 423
+T_START_HEREDOC (371) 321
+T_END_HEREDOC (372) 321
+T_DOLLAR_OPEN_CURLY_BRACES (373) 405 406
+T_CURLY_OPEN (374) 407
+T_PAAMAYIM_NEKUDOTAYIM (375) 280 282 314 350 421
Nonterminals, with rules where they appear
@@ -814,17 +810,17 @@ top_statement_list (152)
top_statement (154)
on left: 5 6 7 8, on right: 3
inner_statement_list (155)
- on left: 10 11, on right: 10 17 23 66 74 86 108 110 112 121 123
- 127 133 137 177
+ on left: 10 11, on right: 10 17 23 64 72 84 106 108 110 119 121
+ 125 131 135 175
@2 (156)
on left: 9, on right: 10
inner_statement (157)
on left: 12 13 14 15, on right: 10
statement (158)
- on left: 16, on right: 5 12 20 29 107 109 111 126 130 135
+ on left: 16, on right: 5 12 20 29 105 107 109 124 128 133
unticked_statement (159)
on left: 17 20 23 26 29 33 35 36 37 38 39 40 41 42 43 44 45 46
- 47 48 49 53 57 59 60 66 67, on right: 16
+ 47 48 49 52 55 57 58 64 65, on right: 16
@3 (160)
on left: 18, on right: 20
@4 (161)
@@ -850,317 +846,313 @@ unticked_statement (159)
@14 (171)
on left: 34, on right: 35
@15 (172)
- on left: 50, on right: 53
+ on left: 50, on right: 52
@16 (173)
- on left: 51, on right: 53
+ on left: 51, on right: 52
@17 (174)
- on left: 52, on right: 53
+ on left: 53, on right: 55
@18 (175)
- on left: 54, on right: 57
+ on left: 54, on right: 55
@19 (176)
- on left: 55, on right: 57
-@20 (177)
on left: 56, on right: 57
+@20 (177)
+ on left: 59, on right: 64
@21 (178)
- on left: 58, on right: 59
+ on left: 60, on right: 64
@22 (179)
- on left: 61, on right: 66
+ on left: 61, on right: 64
@23 (180)
- on left: 62, on right: 66
+ on left: 62, on right: 64
@24 (181)
- on left: 63, on right: 66
-@25 (182)
- on left: 64, on right: 66
-@26 (183)
- on left: 65, on right: 66
-additional_catches (184)
- on left: 68 69, on right: 66
-non_empty_additional_catches (185)
- on left: 70 71, on right: 68 71
-additional_catch (186)
- on left: 74, on right: 70 71
-@27 (187)
- on left: 72, on right: 74
-@28 (188)
- on left: 73, on right: 74
-unset_variables (189)
- on left: 75 76, on right: 49 76
-unset_variable (190)
- on left: 77, on right: 75 76
-use_filename (191)
- on left: 78 79, on right: 48
-function_declaration_statement (192)
- on left: 80, on right: 6 13
-class_declaration_statement (193)
- on left: 81, on right: 7 14
-is_reference (194)
- on left: 82 83, on right: 86 175
-unticked_function_declaration_statement (195)
- on left: 86, on right: 80
-@29 (196)
- on left: 84, on right: 86
-@30 (197)
+ on left: 63, on right: 64
+additional_catches (182)
+ on left: 66 67, on right: 64
+non_empty_additional_catches (183)
+ on left: 68 69, on right: 66 69
+additional_catch (184)
+ on left: 72, on right: 68 69
+@25 (185)
+ on left: 70, on right: 72
+@26 (186)
+ on left: 71, on right: 72
+unset_variables (187)
+ on left: 73 74, on right: 49 74
+unset_variable (188)
+ on left: 75, on right: 73 74
+use_filename (189)
+ on left: 76 77, on right: 48
+function_declaration_statement (190)
+ on left: 78, on right: 6 13
+class_declaration_statement (191)
+ on left: 79, on right: 7 14
+is_reference (192)
+ on left: 80 81, on right: 84 173
+unticked_function_declaration_statement (193)
+ on left: 84, on right: 78
+@27 (194)
+ on left: 82, on right: 84
+@28 (195)
+ on left: 83, on right: 84
+unticked_class_declaration_statement (196)
+ on left: 86 88, on right: 79
+@29 (197)
on left: 85, on right: 86
-unticked_class_declaration_statement (198)
- on left: 88 90, on right: 81
-@31 (199)
+@30 (198)
on left: 87, on right: 88
-@32 (200)
- on left: 89, on right: 90
-class_entry_type (201)
- on left: 91 92 93, on right: 88
-extends_from (202)
- on left: 94 95, on right: 88
-interface_entry (203)
- on left: 96, on right: 90
-interface_extends_list (204)
- on left: 97 98, on right: 90
-implements_list (205)
- on left: 99 100, on right: 88
-interface_list (206)
- on left: 101 102, on right: 98 100 102
-foreach_optional_arg (207)
- on left: 103 104, on right: 53 57
-foreach_variable (208)
- on left: 105 106, on right: 53 104
-for_statement (209)
- on left: 107 108, on right: 33
-foreach_statement (210)
- on left: 109 110, on right: 53 57
-declare_statement (211)
- on left: 111 112, on right: 59
-declare_list (212)
- on left: 113 114, on right: 59 114
-switch_case_list (213)
- on left: 115 116 117 118, on right: 35
-case_list (214)
- on left: 119 121 123, on right: 115 116 117 118 121 123
-@33 (215)
+class_entry_type (199)
+ on left: 89 90 91, on right: 86
+extends_from (200)
+ on left: 92 93, on right: 86
+interface_entry (201)
+ on left: 94, on right: 88
+interface_extends_list (202)
+ on left: 95 96, on right: 88
+implements_list (203)
+ on left: 97 98, on right: 86
+interface_list (204)
+ on left: 99 100, on right: 96 98 100
+foreach_optional_arg (205)
+ on left: 101 102, on right: 52 55
+foreach_variable (206)
+ on left: 103 104, on right: 52 102
+for_statement (207)
+ on left: 105 106, on right: 33
+foreach_statement (208)
+ on left: 107 108, on right: 52 55
+declare_statement (209)
+ on left: 109 110, on right: 57
+declare_list (210)
+ on left: 111 112, on right: 57 112
+switch_case_list (211)
+ on left: 113 114 115 116, on right: 35
+case_list (212)
+ on left: 117 119 121, on right: 113 114 115 116 119 121
+@31 (213)
+ on left: 118, on right: 119
+@32 (214)
on left: 120, on right: 121
-@34 (216)
- on left: 122, on right: 123
-case_separator (217)
- on left: 124 125, on right: 121 123
-while_statement (218)
- on left: 126 127, on right: 26
-elseif_list (219)
- on left: 128 130, on right: 20 130
-@35 (220)
- on left: 129, on right: 130
-new_elseif_list (221)
- on left: 131 133, on right: 23 133
-@36 (222)
- on left: 132, on right: 133
-else_single (223)
- on left: 134 135, on right: 20
-new_else_single (224)
- on left: 136 137, on right: 23
-parameter_list (225)
- on left: 138 139, on right: 86 175
-non_empty_parameter_list (226)
- on left: 140 141 142 143 144 145 146 147, on right: 138 144 145
- 146 147
-optional_class_type (227)
- on left: 148 149 150, on right: 140 141 142 143 144 145 146 147
-function_call_parameter_list (228)
- on left: 151 152, on right: 280 282 284 286 301 348
-non_empty_function_call_parameter_list (229)
- on left: 153 154 155 156 157 158, on right: 151 156 157 158
-global_var_list (230)
- on left: 159 160, on right: 43 159
-global_var (231)
- on left: 161 162 163, on right: 159 160
-static_var_list (232)
- on left: 164 165 166 167, on right: 44 164 165
-class_statement_list (233)
- on left: 168 169, on right: 88 90 168
-class_statement (234)
- on left: 171 172 175, on right: 168
+case_separator (215)
+ on left: 122 123, on right: 119 121
+while_statement (216)
+ on left: 124 125, on right: 26
+elseif_list (217)
+ on left: 126 128, on right: 20 128
+@33 (218)
+ on left: 127, on right: 128
+new_elseif_list (219)
+ on left: 129 131, on right: 23 131
+@34 (220)
+ on left: 130, on right: 131
+else_single (221)
+ on left: 132 133, on right: 20
+new_else_single (222)
+ on left: 134 135, on right: 23
+parameter_list (223)
+ on left: 136 137, on right: 84 173
+non_empty_parameter_list (224)
+ on left: 138 139 140 141 142 143 144 145, on right: 136 142 143
+ 144 145
+optional_class_type (225)
+ on left: 146 147 148, on right: 138 139 140 141 142 143 144 145
+function_call_parameter_list (226)
+ on left: 149 150, on right: 278 280 282 284 299 346
+non_empty_function_call_parameter_list (227)
+ on left: 151 152 153 154 155 156, on right: 149 154 155 156
+global_var_list (228)
+ on left: 157 158, on right: 43 157
+global_var (229)
+ on left: 159 160 161, on right: 157 158
+static_var_list (230)
+ on left: 162 163 164 165, on right: 44 162 163
+class_statement_list (231)
+ on left: 166 167, on right: 86 88 166
+class_statement (232)
+ on left: 169 170 173, on right: 166
+@35 (233)
+ on left: 168, on right: 169
+@36 (234)
+ on left: 171, on right: 173
@37 (235)
- on left: 170, on right: 171
-@38 (236)
- on left: 173, on right: 175
-@39 (237)
- on left: 174, on right: 175
-method_body (238)
- on left: 176 177, on right: 175
-variable_modifiers (239)
- on left: 178 179, on right: 171
-method_modifiers (240)
- on left: 180 181, on right: 175
-non_empty_member_modifiers (241)
- on left: 182 183, on right: 178 181 183
-member_modifier (242)
- on left: 184 185 186 187 188 189, on right: 182 183
-class_variable_declaration (243)
- on left: 190 191 192 193, on right: 171 190 191
-class_constant_declaration (244)
- on left: 194 195, on right: 172 194
-echo_expr_list (245)
- on left: 196 197, on right: 45 196
-for_expr (246)
- on left: 198 199, on right: 33
-non_empty_for_expr (247)
- on left: 201 202, on right: 199 201
-@40 (248)
- on left: 200, on right: 201
-expr_without_variable (249)
- on left: 204 205 206 208 210 211 212 213 214 215 216 217 218 219
- 220 221 222 223 224 225 226 228 230 232 234 235 236 237 238 239
- 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
- 256 257 258 259 260 263 264 265 266 267 268 269 270 271 272 274
- 275 276 277 278, on right: 41 57 153 156 333
+ on left: 172, on right: 173
+method_body (236)
+ on left: 174 175, on right: 173
+variable_modifiers (237)
+ on left: 176 177, on right: 169
+method_modifiers (238)
+ on left: 178 179, on right: 173
+non_empty_member_modifiers (239)
+ on left: 180 181, on right: 176 179 181
+member_modifier (240)
+ on left: 182 183 184 185 186 187, on right: 180 181
+class_variable_declaration (241)
+ on left: 188 189 190 191, on right: 169 188 189
+class_constant_declaration (242)
+ on left: 192 193, on right: 170 192
+echo_expr_list (243)
+ on left: 194 195, on right: 45 194
+for_expr (244)
+ on left: 196 197, on right: 33
+non_empty_for_expr (245)
+ on left: 199 200, on right: 197 199
+@38 (246)
+ on left: 198, on right: 199
+expr_without_variable (247)
+ on left: 202 203 204 206 208 209 210 211 212 213 214 215 216 217
+ 218 219 220 221 222 223 224 226 228 230 232 233 234 235 236 237
+ 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
+ 254 255 256 257 258 261 262 263 264 265 266 267 268 269 270 272
+ 273 274 275 276, on right: 41 55 151 154 331
+@39 (248)
+ on left: 201, on right: 202
+@40 (249)
+ on left: 205, on right: 206
@41 (250)
- on left: 203, on right: 204
-@42 (251)
on left: 207, on right: 208
+@42 (251)
+ on left: 225, on right: 226
@43 (252)
- on left: 209, on right: 210
-@44 (253)
on left: 227, on right: 228
-@45 (254)
+@44 (253)
on left: 229, on right: 230
-@46 (255)
+@45 (254)
on left: 231, on right: 232
+@46 (255)
+ on left: 259, on right: 261
@47 (256)
- on left: 233, on right: 234
+ on left: 260, on right: 261
@48 (257)
- on left: 261, on right: 263
-@49 (258)
- on left: 262, on right: 263
-@50 (259)
- on left: 273, on right: 274
-function_call (260)
- on left: 280 282 284 286, on right: 354
-@51 (261)
+ on left: 271, on right: 272
+function_call (258)
+ on left: 278 280 282 284, on right: 352
+@49 (259)
+ on left: 277, on right: 278
+@50 (260)
on left: 279, on right: 280
-@52 (262)
+@51 (261)
on left: 281, on right: 282
-@53 (263)
+@52 (262)
on left: 283, on right: 284
-@54 (264)
- on left: 285, on right: 286
-fully_qualified_class_name (265)
- on left: 287, on right: 66 74 95 101 102 282 284 352 423
-class_name_reference (266)
- on left: 288 289, on right: 208 210 259
-dynamic_class_name_reference (267)
- on left: 292 293, on right: 289
-@55 (268)
- on left: 290, on right: 292
-@56 (269)
- on left: 291, on right: 292
-dynamic_class_name_variable_properties (270)
- on left: 294 295, on right: 292 294
-dynamic_class_name_variable_property (271)
- on left: 296, on right: 294
-exit_expr (272)
- on left: 297 298 299, on right: 272
-ctor_arguments (273)
- on left: 300 301, on right: 208 210
-common_scalar (274)
- on left: 302 303 304 305 306 307 308 309, on right: 310 320
-static_scalar (275)
- on left: 310 311 312 313 314 315, on right: 113 114 142 143 146
- 147 165 167 191 193 194 195 312 313 328 329 330 331
-static_class_constant (276)
- on left: 316, on right: 315
-scalar (277)
- on left: 317 318 319 320 321 322 323, on right: 275
-static_array_pair_list (278)
- on left: 324 325, on right: 314
-possible_comma (279)
- on left: 326 327, on right: 325 382
-non_empty_static_array_pair_list (280)
- on left: 328 329 330 331, on right: 325 328 329
-expr (281)
- on left: 332 333, on right: 20 23 26 29 35 37 39 47 67 121 130
- 133 163 196 197 201 202 204 205 211 212 213 214 215 216 217 218
- 219 220 221 222 228 230 232 234 235 236 237 238 239 240 241 242
- 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
- 259 260 263 265 266 267 268 269 270 271 274 278 299 359 362 364
- 369 372 383 384 385 386 387 389 407 408 415 416 417 418 419
-r_variable (282)
- on left: 334, on right: 162 332
-w_variable (283)
- on left: 336, on right: 155 158 387 388 389 390
-@57 (284)
+fully_qualified_class_name (263)
+ on left: 285, on right: 64 72 93 99 100 280 282 350 421
+class_name_reference (264)
+ on left: 286 287, on right: 206 208 257
+dynamic_class_name_reference (265)
+ on left: 290 291, on right: 287
+@53 (266)
+ on left: 288, on right: 290
+@54 (267)
+ on left: 289, on right: 290
+dynamic_class_name_variable_properties (268)
+ on left: 292 293, on right: 290 292
+dynamic_class_name_variable_property (269)
+ on left: 294, on right: 292
+exit_expr (270)
+ on left: 295 296 297, on right: 270
+ctor_arguments (271)
+ on left: 298 299, on right: 206 208
+common_scalar (272)
+ on left: 300 301 302 303 304 305 306 307, on right: 308 318
+static_scalar (273)
+ on left: 308 309 310 311 312 313, on right: 111 112 140 141 144
+ 145 163 165 189 191 192 193 310 311 326 327 328 329
+static_class_constant (274)
+ on left: 314, on right: 313
+scalar (275)
+ on left: 315 316 317 318 319 320 321, on right: 273
+static_array_pair_list (276)
+ on left: 322 323, on right: 312
+possible_comma (277)
+ on left: 324 325, on right: 323 380
+non_empty_static_array_pair_list (278)
+ on left: 326 327 328 329, on right: 323 326 327
+expr (279)
+ on left: 330 331, on right: 20 23 26 29 35 37 39 47 65 119 128
+ 131 161 194 195 199 200 202 203 209 210 211 212 213 214 215 216
+ 217 218 219 220 226 228 230 232 233 234 235 236 237 238 239 240
+ 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256
+ 257 258 261 263 264 265 266 267 268 269 272 276 297 357 360 362
+ 367 370 381 382 383 384 385 387 405 406 413 414 415 416 417
+r_variable (280)
+ on left: 332, on right: 160 330
+w_variable (281)
+ on left: 334, on right: 153 156 385 386 387 388
+@55 (282)
+ on left: 333, on right: 334
+rw_variable (283)
+ on left: 336, on right: 221 222 223 224
+@56 (284)
on left: 335, on right: 336
-rw_variable (285)
- on left: 338, on right: 223 224 225 226
-@58 (286)
- on left: 337, on right: 338
-variable (287)
- on left: 341 342, on right: 42 53 57 77 105 106 154 157 205 206
- 208 212 213 214 215 216 217 218 219 220 221 222 334 336 338 377
- 409 414 420 422
-@59 (288)
- on left: 339, on right: 341
-@60 (289)
- on left: 340, on right: 341
-variable_properties (290)
- on left: 343 344, on right: 341 343
-variable_property (291)
- on left: 346, on right: 343
-@61 (292)
+variable (285)
+ on left: 339 340, on right: 42 52 55 75 103 104 152 155 203 204
+ 206 210 211 212 213 214 215 216 217 218 219 220 332 334 336 375
+ 407 412 418 420
+@57 (286)
+ on left: 337, on right: 339
+@58 (287)
+ on left: 338, on right: 339
+variable_properties (288)
+ on left: 341 342, on right: 339 341
+variable_property (289)
+ on left: 344, on right: 341
+@59 (290)
+ on left: 343, on right: 344
+method_or_not (291)
+ on left: 346 347, on right: 339 344
+@60 (292)
on left: 345, on right: 346
-method_or_not (293)
- on left: 348 349, on right: 341 346
-@62 (294)
- on left: 347, on right: 348
-variable_without_objects (295)
- on left: 350 351, on right: 284 286 352 367
-static_member (296)
- on left: 352, on right: 357
-base_variable_with_function_calls (297)
- on left: 353 354, on right: 341 342
-base_variable (298)
- on left: 355 356 357, on right: 292 293 353
-reference_variable (299)
- on left: 358 359 360, on right: 350 351 355 356 358 359
-compound_variable (300)
- on left: 361 362, on right: 360
-dim_offset (301)
- on left: 363 364, on right: 358 368
-object_property (302)
- on left: 365 367, on right: 292 296 341 346
-@63 (303)
- on left: 366, on right: 367
-object_dim_list (304)
- on left: 368 369 370, on right: 365 368 369
-variable_name (305)
- on left: 371 372, on right: 370
-simple_indirect_reference (306)
- on left: 373 374, on right: 351 356 374
-assignment_list (307)
- on left: 375 376, on right: 204 375 379
-assignment_list_element (308)
- on left: 377 379 380, on right: 375 376
-@64 (309)
- on left: 378, on right: 379
-array_pair_list (310)
- on left: 381 382, on right: 276
-non_empty_array_pair_list (311)
- on left: 383 384 385 386 387 388 389 390, on right: 382 383 384
- 387 388
-encaps_list (312)
- on left: 391 392 393 394 395 396 397 398 399 400 401 402,
- on right: 277 321 322 323 391 392 393 394 395 396 397 398 399 400
- 401
-encaps_var (313)
- on left: 403 405 406 407 408 409, on right: 391
-@65 (314)
- on left: 404, on right: 405
-encaps_var_offset (315)
- on left: 410 411 412, on right: 405
-internal_functions_in_yacc (316)
- on left: 413 414 415 416 417 418 419, on right: 264
-isset_variables (317)
- on left: 420 422, on right: 413 422
-@66 (318)
- on left: 421, on right: 422
-class_constant (319)
- on left: 423, on right: 319
+variable_without_objects (293)
+ on left: 348 349, on right: 282 284 350 365
+static_member (294)
+ on left: 350, on right: 355
+base_variable_with_function_calls (295)
+ on left: 351 352, on right: 339 340
+base_variable (296)
+ on left: 353 354 355, on right: 290 291 351
+reference_variable (297)
+ on left: 356 357 358, on right: 348 349 353 354 356 357
+compound_variable (298)
+ on left: 359 360, on right: 358
+dim_offset (299)
+ on left: 361 362, on right: 356 366
+object_property (300)
+ on left: 363 365, on right: 290 294 339 344
+@61 (301)
+ on left: 364, on right: 365
+object_dim_list (302)
+ on left: 366 367 368, on right: 363 366 367
+variable_name (303)
+ on left: 369 370, on right: 368
+simple_indirect_reference (304)
+ on left: 371 372, on right: 349 354 372
+assignment_list (305)
+ on left: 373 374, on right: 202 373 377
+assignment_list_element (306)
+ on left: 375 377 378, on right: 373 374
+@62 (307)
+ on left: 376, on right: 377
+array_pair_list (308)
+ on left: 379 380, on right: 274
+non_empty_array_pair_list (309)
+ on left: 381 382 383 384 385 386 387 388, on right: 380 381 382
+ 385 386
+encaps_list (310)
+ on left: 389 390 391 392 393 394 395 396 397 398 399 400,
+ on right: 275 319 320 321 389 390 391 392 393 394 395 396 397 398
+ 399
+encaps_var (311)
+ on left: 401 403 404 405 406 407, on right: 389
+@63 (312)
+ on left: 402, on right: 403
+encaps_var_offset (313)
+ on left: 408 409 410, on right: 403
+internal_functions_in_yacc (314)
+ on left: 411 412 413 414 415 416 417, on right: 262
+isset_variables (315)
+ on left: 418 420, on right: 411 420
+@64 (316)
+ on left: 419, on right: 420
+class_constant (317)
+ on left: 421, on right: 317
state 0
@@ -1304,7 +1296,7 @@ state 4
state 5
- 419 internal_functions_in_yacc: T_REQUIRE_ONCE . expr
+ 417 internal_functions_in_yacc: T_REQUIRE_ONCE . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1373,7 +1365,7 @@ state 5
state 6
- 418 internal_functions_in_yacc: T_REQUIRE . expr
+ 416 internal_functions_in_yacc: T_REQUIRE . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1442,14 +1434,14 @@ state 6
state 7
- 417 internal_functions_in_yacc: T_EVAL . '(' expr ')'
+ 415 internal_functions_in_yacc: T_EVAL . '(' expr ')'
'(' shift, and go to state 104
state 8
- 416 internal_functions_in_yacc: T_INCLUDE_ONCE . expr
+ 414 internal_functions_in_yacc: T_INCLUDE_ONCE . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1518,7 +1510,7 @@ state 8
state 9
- 415 internal_functions_in_yacc: T_INCLUDE . expr
+ 413 internal_functions_in_yacc: T_INCLUDE . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1587,7 +1579,7 @@ state 9
state 10
- 278 expr_without_variable: T_PRINT . expr
+ 276 expr_without_variable: T_PRINT . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1656,7 +1648,7 @@ state 10
state 11
- 247 expr_without_variable: '+' . expr
+ 245 expr_without_variable: '+' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1725,7 +1717,7 @@ state 11
state 12
- 248 expr_without_variable: '-' . expr
+ 246 expr_without_variable: '-' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1794,7 +1786,7 @@ state 12
state 13
- 249 expr_without_variable: '!' . expr
+ 247 expr_without_variable: '!' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1863,7 +1855,7 @@ state 13
state 14
- 250 expr_without_variable: '~' . expr
+ 248 expr_without_variable: '~' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -1932,16 +1924,16 @@ state 14
state 15
- 274 expr_without_variable: '@' . @50 expr
+ 272 expr_without_variable: '@' . @48 expr
- $default reduce using rule 273 (@50)
+ $default reduce using rule 271 (@48)
- @50 go to state 112
+ @48 go to state 112
state 16
- 271 expr_without_variable: T_UNSET_CAST . expr
+ 269 expr_without_variable: T_UNSET_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2010,7 +2002,7 @@ state 16
state 17
- 270 expr_without_variable: T_BOOL_CAST . expr
+ 268 expr_without_variable: T_BOOL_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2079,7 +2071,7 @@ state 17
state 18
- 269 expr_without_variable: T_OBJECT_CAST . expr
+ 267 expr_without_variable: T_OBJECT_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2148,7 +2140,7 @@ state 18
state 19
- 268 expr_without_variable: T_ARRAY_CAST . expr
+ 266 expr_without_variable: T_ARRAY_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2217,7 +2209,7 @@ state 19
state 20
- 267 expr_without_variable: T_STRING_CAST . expr
+ 265 expr_without_variable: T_STRING_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2286,7 +2278,7 @@ state 20
state 21
- 266 expr_without_variable: T_DOUBLE_CAST . expr
+ 264 expr_without_variable: T_DOUBLE_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2355,7 +2347,7 @@ state 21
state 22
- 265 expr_without_variable: T_INT_CAST . expr
+ 263 expr_without_variable: T_INT_CAST . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2424,7 +2416,7 @@ state 22
state 23
- 226 expr_without_variable: T_DEC . rw_variable
+ 224 expr_without_variable: T_DEC . rw_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -2445,7 +2437,7 @@ state 23
state 24
- 224 expr_without_variable: T_INC . rw_variable
+ 222 expr_without_variable: T_INC . rw_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -2466,7 +2458,7 @@ state 24
state 25
- 211 expr_without_variable: T_CLONE . expr
+ 209 expr_without_variable: T_CLONE . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2535,7 +2527,7 @@ state 25
state 26
- 210 expr_without_variable: T_NEW . class_name_reference @43 ctor_arguments
+ 208 expr_without_variable: T_NEW . class_name_reference @41 ctor_arguments
T_STRING shift, and go to state 126
T_VARIABLE shift, and go to state 33
@@ -2553,11 +2545,11 @@ state 26
state 27
- 272 expr_without_variable: T_EXIT . exit_expr
+ 270 expr_without_variable: T_EXIT . exit_expr
'(' shift, and go to state 133
- $default reduce using rule 297 (exit_expr)
+ $default reduce using rule 295 (exit_expr)
exit_expr go to state 134
@@ -2572,42 +2564,42 @@ state 28
state 29
- 302 common_scalar: T_LNUMBER .
+ 300 common_scalar: T_LNUMBER .
- $default reduce using rule 302 (common_scalar)
+ $default reduce using rule 300 (common_scalar)
state 30
- 303 common_scalar: T_DNUMBER .
+ 301 common_scalar: T_DNUMBER .
- $default reduce using rule 303 (common_scalar)
+ $default reduce using rule 301 (common_scalar)
state 31
- 280 function_call: T_STRING . '(' @51 function_call_parameter_list ')'
- 287 fully_qualified_class_name: T_STRING .
- 317 scalar: T_STRING .
+ 278 function_call: T_STRING . '(' @49 function_call_parameter_list ')'
+ 285 fully_qualified_class_name: T_STRING .
+ 315 scalar: T_STRING .
'(' shift, and go to state 136
- T_PAAMAYIM_NEKUDOTAYIM reduce using rule 287 (fully_qualified_class_name)
- $default reduce using rule 317 (scalar)
+ T_PAAMAYIM_NEKUDOTAYIM reduce using rule 285 (fully_qualified_class_name)
+ $default reduce using rule 315 (scalar)
state 32
- 318 scalar: T_STRING_VARNAME .
+ 316 scalar: T_STRING_VARNAME .
- $default reduce using rule 318 (scalar)
+ $default reduce using rule 316 (scalar)
state 33
- 361 compound_variable: T_VARIABLE .
+ 359 compound_variable: T_VARIABLE .
- $default reduce using rule 361 (compound_variable)
+ $default reduce using rule 359 (compound_variable)
state 34
@@ -2619,9 +2611,9 @@ state 34
state 35
- 304 common_scalar: T_CONSTANT_ENCAPSED_STRING .
+ 302 common_scalar: T_CONSTANT_ENCAPSED_STRING .
- $default reduce using rule 304 (common_scalar)
+ $default reduce using rule 302 (common_scalar)
state 36
@@ -2719,19 +2711,19 @@ state 39
state 40
- 53 unticked_statement: T_FOREACH . '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
- 57 | T_FOREACH . '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 52 unticked_statement: T_FOREACH . '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement
+ 55 | T_FOREACH . '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement
'(' shift, and go to state 142
state 41
- 59 unticked_statement: T_DECLARE . @21 '(' declare_list ')' declare_statement
+ 57 unticked_statement: T_DECLARE . @19 '(' declare_list ')' declare_statement
- $default reduce using rule 58 (@21)
+ $default reduce using rule 56 (@19)
- @21 go to state 143
+ @19 go to state 143
state 42
@@ -2885,11 +2877,11 @@ state 44
state 45
- 86 unticked_function_declaration_statement: T_FUNCTION . @29 is_reference T_STRING @30 '(' parameter_list ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION . @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 84 (@29)
+ $default reduce using rule 82 (@27)
- @29 go to state 149
+ @27 go to state 149
state 46
@@ -2966,16 +2958,16 @@ state 46
state 47
- 66 unticked_statement: T_TRY . @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY . @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 61 (@22)
+ $default reduce using rule 59 (@20)
- @22 go to state 154
+ @20 go to state 154
state 48
- 67 unticked_statement: T_THROW . expr ';'
+ 65 unticked_statement: T_THROW . expr ';'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -3065,14 +3057,14 @@ state 50
state 51
- 93 class_entry_type: T_FINAL . T_CLASS
+ 91 class_entry_type: T_FINAL . T_CLASS
T_CLASS shift, and go to state 163
state 52
- 92 class_entry_type: T_ABSTRACT . T_CLASS
+ 90 class_entry_type: T_ABSTRACT . T_CLASS
T_CLASS shift, and go to state 164
@@ -3095,14 +3087,14 @@ state 54
state 55
- 413 internal_functions_in_yacc: T_ISSET . '(' isset_variables ')'
+ 411 internal_functions_in_yacc: T_ISSET . '(' isset_variables ')'
'(' shift, and go to state 168
state 56
- 414 internal_functions_in_yacc: T_EMPTY . '(' variable ')'
+ 412 internal_functions_in_yacc: T_EMPTY . '(' variable ')'
'(' shift, and go to state 169
@@ -3116,79 +3108,79 @@ state 57
state 58
- 91 class_entry_type: T_CLASS .
+ 89 class_entry_type: T_CLASS .
- $default reduce using rule 91 (class_entry_type)
+ $default reduce using rule 89 (class_entry_type)
state 59
- 96 interface_entry: T_INTERFACE .
+ 94 interface_entry: T_INTERFACE .
- $default reduce using rule 96 (interface_entry)
+ $default reduce using rule 94 (interface_entry)
state 60
- 204 expr_without_variable: T_LIST . '(' @41 assignment_list ')' '=' expr
+ 202 expr_without_variable: T_LIST . '(' @39 assignment_list ')' '=' expr
'(' shift, and go to state 171
state 61
- 276 expr_without_variable: T_ARRAY . '(' array_pair_list ')'
+ 274 expr_without_variable: T_ARRAY . '(' array_pair_list ')'
'(' shift, and go to state 172
state 62
- 307 common_scalar: T_CLASS_C .
+ 305 common_scalar: T_CLASS_C .
- $default reduce using rule 307 (common_scalar)
+ $default reduce using rule 305 (common_scalar)
state 63
- 308 common_scalar: T_METHOD_C .
+ 306 common_scalar: T_METHOD_C .
- $default reduce using rule 308 (common_scalar)
+ $default reduce using rule 306 (common_scalar)
state 64
- 309 common_scalar: T_FUNC_C .
+ 307 common_scalar: T_FUNC_C .
- $default reduce using rule 309 (common_scalar)
+ $default reduce using rule 307 (common_scalar)
state 65
- 305 common_scalar: T_LINE .
+ 303 common_scalar: T_LINE .
- $default reduce using rule 305 (common_scalar)
+ $default reduce using rule 303 (common_scalar)
state 66
- 306 common_scalar: T_FILE .
+ 304 common_scalar: T_FILE .
- $default reduce using rule 306 (common_scalar)
+ $default reduce using rule 304 (common_scalar)
state 67
- 323 scalar: T_START_HEREDOC . encaps_list T_END_HEREDOC
+ 321 scalar: T_START_HEREDOC . encaps_list T_END_HEREDOC
- $default reduce using rule 402 (encaps_list)
+ $default reduce using rule 400 (encaps_list)
encaps_list go to state 173
state 68
- 260 expr_without_variable: '(' . expr ')'
+ 258 expr_without_variable: '(' . expr ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -3257,9 +3249,9 @@ state 68
state 69
- 60 unticked_statement: ';' .
+ 58 unticked_statement: ';' .
- $default reduce using rule 60 (unticked_statement)
+ $default reduce using rule 58 (unticked_statement)
state 70
@@ -3273,37 +3265,37 @@ state 70
state 71
- 362 compound_variable: '$' . '{' expr '}'
- 373 simple_indirect_reference: '$' .
+ 360 compound_variable: '$' . '{' expr '}'
+ 371 simple_indirect_reference: '$' .
'{' shift, and go to state 176
- $default reduce using rule 373 (simple_indirect_reference)
+ $default reduce using rule 371 (simple_indirect_reference)
state 72
- 277 expr_without_variable: '`' . encaps_list '`'
+ 275 expr_without_variable: '`' . encaps_list '`'
- $default reduce using rule 402 (encaps_list)
+ $default reduce using rule 400 (encaps_list)
encaps_list go to state 177
state 73
- 321 scalar: '"' . encaps_list '"'
+ 319 scalar: '"' . encaps_list '"'
- $default reduce using rule 402 (encaps_list)
+ $default reduce using rule 400 (encaps_list)
encaps_list go to state 178
state 74
- 322 scalar: ''' . encaps_list '''
+ 320 scalar: ''' . encaps_list '''
- $default reduce using rule 402 (encaps_list)
+ $default reduce using rule 400 (encaps_list)
encaps_list go to state 179
@@ -3345,99 +3337,99 @@ state 79
state 80
- 80 function_declaration_statement: unticked_function_declaration_statement .
+ 78 function_declaration_statement: unticked_function_declaration_statement .
- $default reduce using rule 80 (function_declaration_statement)
+ $default reduce using rule 78 (function_declaration_statement)
state 81
- 81 class_declaration_statement: unticked_class_declaration_statement .
+ 79 class_declaration_statement: unticked_class_declaration_statement .
- $default reduce using rule 81 (class_declaration_statement)
+ $default reduce using rule 79 (class_declaration_statement)
state 82
- 88 unticked_class_declaration_statement: class_entry_type . T_STRING extends_from @31 implements_list '{' class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type . T_STRING extends_from @29 implements_list '{' class_statement_list '}'
T_STRING shift, and go to state 180
state 83
- 90 unticked_class_declaration_statement: interface_entry . T_STRING @32 interface_extends_list '{' class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry . T_STRING @30 interface_extends_list '{' class_statement_list '}'
T_STRING shift, and go to state 181
state 84
- 333 expr: expr_without_variable .
+ 331 expr: expr_without_variable .
- $default reduce using rule 333 (expr)
+ $default reduce using rule 331 (expr)
state 85
- 354 base_variable_with_function_calls: function_call .
+ 352 base_variable_with_function_calls: function_call .
- $default reduce using rule 354 (base_variable_with_function_calls)
+ $default reduce using rule 352 (base_variable_with_function_calls)
state 86
- 282 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 function_call_parameter_list ')'
- 284 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 function_call_parameter_list ')'
- 352 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
- 423 class_constant: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING
+ 280 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')'
+ 282 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')'
+ 350 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
+ 421 class_constant: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 182
state 87
- 320 scalar: common_scalar .
+ 318 scalar: common_scalar .
- $default reduce using rule 320 (scalar)
+ $default reduce using rule 318 (scalar)
state 88
- 275 expr_without_variable: scalar .
+ 273 expr_without_variable: scalar .
- $default reduce using rule 275 (expr_without_variable)
+ $default reduce using rule 273 (expr_without_variable)
state 89
47 unticked_statement: expr . ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -3470,15 +3462,15 @@ state 89
state 90
- 332 expr: r_variable .
+ 330 expr: r_variable .
- $default reduce using rule 332 (expr)
+ $default reduce using rule 330 (expr)
state 91
- 223 expr_without_variable: rw_variable . T_INC
- 225 | rw_variable . T_DEC
+ 221 expr_without_variable: rw_variable . T_INC
+ 223 | rw_variable . T_DEC
T_DEC shift, and go to state 210
T_INC shift, and go to state 211
@@ -3486,22 +3478,22 @@ state 91
state 92
- 205 expr_without_variable: variable . '=' expr
- 206 | variable . '=' '&' variable
- 208 | variable . '=' '&' T_NEW class_name_reference @42 ctor_arguments
- 212 | variable . T_PLUS_EQUAL expr
- 213 | variable . T_MINUS_EQUAL expr
- 214 | variable . T_MUL_EQUAL expr
- 215 | variable . T_DIV_EQUAL expr
- 216 | variable . T_CONCAT_EQUAL expr
- 217 | variable . T_MOD_EQUAL expr
- 218 | variable . T_AND_EQUAL expr
- 219 | variable . T_OR_EQUAL expr
- 220 | variable . T_XOR_EQUAL expr
- 221 | variable . T_SL_EQUAL expr
- 222 | variable . T_SR_EQUAL expr
- 334 r_variable: variable .
- 338 rw_variable: variable . @58
+ 203 expr_without_variable: variable . '=' expr
+ 204 | variable . '=' '&' variable
+ 206 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 210 | variable . T_PLUS_EQUAL expr
+ 211 | variable . T_MINUS_EQUAL expr
+ 212 | variable . T_MUL_EQUAL expr
+ 213 | variable . T_DIV_EQUAL expr
+ 214 | variable . T_CONCAT_EQUAL expr
+ 215 | variable . T_MOD_EQUAL expr
+ 216 | variable . T_AND_EQUAL expr
+ 217 | variable . T_OR_EQUAL expr
+ 218 | variable . T_XOR_EQUAL expr
+ 219 | variable . T_SL_EQUAL expr
+ 220 | variable . T_SR_EQUAL expr
+ 332 r_variable: variable .
+ 336 rw_variable: variable . @56
'=' shift, and go to state 212
T_SR_EQUAL shift, and go to state 213
@@ -3516,70 +3508,70 @@ state 92
T_MINUS_EQUAL shift, and go to state 222
T_PLUS_EQUAL shift, and go to state 223
- T_DEC reduce using rule 337 (@58)
- T_INC reduce using rule 337 (@58)
- $default reduce using rule 334 (r_variable)
+ T_DEC reduce using rule 335 (@56)
+ T_INC reduce using rule 335 (@56)
+ $default reduce using rule 332 (r_variable)
- @58 go to state 224
+ @56 go to state 224
state 93
- 286 function_call: variable_without_objects . '(' @54 function_call_parameter_list ')'
+ 284 function_call: variable_without_objects . '(' @52 function_call_parameter_list ')'
'(' shift, and go to state 225
state 94
- 357 base_variable: static_member .
+ 355 base_variable: static_member .
- $default reduce using rule 357 (base_variable)
+ $default reduce using rule 355 (base_variable)
state 95
- 341 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR @59 object_property @60 method_or_not variable_properties
- 342 | base_variable_with_function_calls .
+ 339 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties
+ 340 | base_variable_with_function_calls .
T_OBJECT_OPERATOR shift, and go to state 226
- $default reduce using rule 342 (variable)
+ $default reduce using rule 340 (variable)
state 96
- 353 base_variable_with_function_calls: base_variable .
+ 351 base_variable_with_function_calls: base_variable .
- $default reduce using rule 353 (base_variable_with_function_calls)
+ $default reduce using rule 351 (base_variable_with_function_calls)
state 97
- 350 variable_without_objects: reference_variable .
- 355 base_variable: reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 348 variable_without_objects: reference_variable .
+ 353 base_variable: reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- '(' reduce using rule 350 (variable_without_objects)
- $default reduce using rule 355 (base_variable)
+ '(' reduce using rule 348 (variable_without_objects)
+ $default reduce using rule 353 (base_variable)
state 98
- 360 reference_variable: compound_variable .
+ 358 reference_variable: compound_variable .
- $default reduce using rule 360 (reference_variable)
+ $default reduce using rule 358 (reference_variable)
state 99
- 351 variable_without_objects: simple_indirect_reference . reference_variable
- 356 base_variable: simple_indirect_reference . reference_variable
- 374 simple_indirect_reference: simple_indirect_reference . '$'
+ 349 variable_without_objects: simple_indirect_reference . reference_variable
+ 354 base_variable: simple_indirect_reference . reference_variable
+ 372 simple_indirect_reference: simple_indirect_reference . '$'
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 229
@@ -3590,47 +3582,47 @@ state 99
state 100
- 264 expr_without_variable: internal_functions_in_yacc .
+ 262 expr_without_variable: internal_functions_in_yacc .
- $default reduce using rule 264 (expr_without_variable)
+ $default reduce using rule 262 (expr_without_variable)
state 101
- 319 scalar: class_constant .
+ 317 scalar: class_constant .
- $default reduce using rule 319 (scalar)
+ $default reduce using rule 317 (scalar)
state 102
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 419 internal_functions_in_yacc: T_REQUIRE_ONCE expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 417 internal_functions_in_yacc: T_REQUIRE_ONCE expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -3659,38 +3651,38 @@ state 102
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 419 (internal_functions_in_yacc)
+ $default reduce using rule 417 (internal_functions_in_yacc)
state 103
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 418 internal_functions_in_yacc: T_REQUIRE expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 416 internal_functions_in_yacc: T_REQUIRE expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -3719,12 +3711,12 @@ state 103
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 418 (internal_functions_in_yacc)
+ $default reduce using rule 416 (internal_functions_in_yacc)
state 104
- 417 internal_functions_in_yacc: T_EVAL '(' . expr ')'
+ 415 internal_functions_in_yacc: T_EVAL '(' . expr ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -3793,33 +3785,33 @@ state 104
state 105
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 416 internal_functions_in_yacc: T_INCLUDE_ONCE expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 414 internal_functions_in_yacc: T_INCLUDE_ONCE expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -3848,38 +3840,38 @@ state 105
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 416 (internal_functions_in_yacc)
+ $default reduce using rule 414 (internal_functions_in_yacc)
state 106
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 415 internal_functions_in_yacc: T_INCLUDE expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 413 internal_functions_in_yacc: T_INCLUDE expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -3908,38 +3900,38 @@ state 106
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 415 (internal_functions_in_yacc)
+ $default reduce using rule 413 (internal_functions_in_yacc)
state 107
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 278 | T_PRINT expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 276 | T_PRINT expr .
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -3965,156 +3957,156 @@ state 107
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 278 (expr_without_variable)
+ $default reduce using rule 276 (expr_without_variable)
state 108
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 247 | '+' expr .
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 245 | '+' expr .
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'*' shift, and go to state 205
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 247 (expr_without_variable)
+ $default reduce using rule 245 (expr_without_variable)
state 109
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 248 | '-' expr .
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 246 | '-' expr .
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'*' shift, and go to state 205
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 248 (expr_without_variable)
+ $default reduce using rule 246 (expr_without_variable)
state 110
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 249 | '!' expr .
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 247 | '!' expr .
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 249 (expr_without_variable)
+ $default reduce using rule 247 (expr_without_variable)
state 111
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 250 | '~' expr .
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 248 | '~' expr .
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
- $default reduce using rule 250 (expr_without_variable)
+ $default reduce using rule 248 (expr_without_variable)
state 112
- 274 expr_without_variable: '@' @50 . expr
+ 272 expr_without_variable: '@' @48 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -4183,368 +4175,368 @@ state 112
state 113
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 271 | T_UNSET_CAST expr .
-
- $default reduce using rule 271 (expr_without_variable)
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 269 | T_UNSET_CAST expr .
+
+ $default reduce using rule 269 (expr_without_variable)
state 114
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 270 | T_BOOL_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 268 | T_BOOL_CAST expr .
- $default reduce using rule 270 (expr_without_variable)
+ $default reduce using rule 268 (expr_without_variable)
state 115
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 269 | T_OBJECT_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 267 | T_OBJECT_CAST expr .
- $default reduce using rule 269 (expr_without_variable)
+ $default reduce using rule 267 (expr_without_variable)
state 116
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 268 | T_ARRAY_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 266 | T_ARRAY_CAST expr .
- $default reduce using rule 268 (expr_without_variable)
+ $default reduce using rule 266 (expr_without_variable)
state 117
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 267 | T_STRING_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 265 | T_STRING_CAST expr .
- $default reduce using rule 267 (expr_without_variable)
+ $default reduce using rule 265 (expr_without_variable)
state 118
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 266 | T_DOUBLE_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 264 | T_DOUBLE_CAST expr .
- $default reduce using rule 266 (expr_without_variable)
+ $default reduce using rule 264 (expr_without_variable)
state 119
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 265 | T_INT_CAST expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 263 | T_INT_CAST expr .
- $default reduce using rule 265 (expr_without_variable)
+ $default reduce using rule 263 (expr_without_variable)
state 120
- 280 function_call: T_STRING . '(' @51 function_call_parameter_list ')'
- 287 fully_qualified_class_name: T_STRING .
+ 278 function_call: T_STRING . '(' @49 function_call_parameter_list ')'
+ 285 fully_qualified_class_name: T_STRING .
'(' shift, and go to state 136
- $default reduce using rule 287 (fully_qualified_class_name)
+ $default reduce using rule 285 (fully_qualified_class_name)
state 121
- 282 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 function_call_parameter_list ')'
- 284 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 function_call_parameter_list ')'
- 352 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
+ 280 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')'
+ 282 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')'
+ 350 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 233
state 122
- 226 expr_without_variable: T_DEC rw_variable .
+ 224 expr_without_variable: T_DEC rw_variable .
- $default reduce using rule 226 (expr_without_variable)
+ $default reduce using rule 224 (expr_without_variable)
state 123
- 338 rw_variable: variable . @58
+ 336 rw_variable: variable . @56
- $default reduce using rule 337 (@58)
+ $default reduce using rule 335 (@56)
- @58 go to state 224
+ @56 go to state 224
state 124
- 224 expr_without_variable: T_INC rw_variable .
+ 222 expr_without_variable: T_INC rw_variable .
- $default reduce using rule 224 (expr_without_variable)
+ $default reduce using rule 222 (expr_without_variable)
state 125
- 211 expr_without_variable: T_CLONE expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
-
- $default reduce using rule 211 (expr_without_variable)
+ 209 expr_without_variable: T_CLONE expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+
+ $default reduce using rule 209 (expr_without_variable)
state 126
- 287 fully_qualified_class_name: T_STRING .
- 288 class_name_reference: T_STRING .
+ 285 fully_qualified_class_name: T_STRING .
+ 286 class_name_reference: T_STRING .
- T_PAAMAYIM_NEKUDOTAYIM reduce using rule 287 (fully_qualified_class_name)
- $default reduce using rule 288 (class_name_reference)
+ T_PAAMAYIM_NEKUDOTAYIM reduce using rule 285 (fully_qualified_class_name)
+ $default reduce using rule 286 (class_name_reference)
state 127
- 352 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
+ 350 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 234
state 128
- 210 expr_without_variable: T_NEW class_name_reference . @43 ctor_arguments
+ 208 expr_without_variable: T_NEW class_name_reference . @41 ctor_arguments
- $default reduce using rule 209 (@43)
+ $default reduce using rule 207 (@41)
- @43 go to state 235
+ @41 go to state 235
state 129
- 289 class_name_reference: dynamic_class_name_reference .
+ 287 class_name_reference: dynamic_class_name_reference .
- $default reduce using rule 289 (class_name_reference)
+ $default reduce using rule 287 (class_name_reference)
state 130
- 292 dynamic_class_name_reference: base_variable . T_OBJECT_OPERATOR @55 object_property @56 dynamic_class_name_variable_properties
- 293 | base_variable .
+ 290 dynamic_class_name_reference: base_variable . T_OBJECT_OPERATOR @53 object_property @54 dynamic_class_name_variable_properties
+ 291 | base_variable .
T_OBJECT_OPERATOR shift, and go to state 236
- $default reduce using rule 293 (dynamic_class_name_reference)
+ $default reduce using rule 291 (dynamic_class_name_reference)
state 131
- 355 base_variable: reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 353 base_variable: reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- $default reduce using rule 355 (base_variable)
+ $default reduce using rule 353 (base_variable)
state 132
- 356 base_variable: simple_indirect_reference . reference_variable
- 374 simple_indirect_reference: simple_indirect_reference . '$'
+ 354 base_variable: simple_indirect_reference . reference_variable
+ 372 simple_indirect_reference: simple_indirect_reference . '$'
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 229
@@ -4555,8 +4547,8 @@ state 132
state 133
- 298 exit_expr: '(' . ')'
- 299 | '(' . expr ')'
+ 296 exit_expr: '(' . ')'
+ 297 | '(' . expr ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -4626,9 +4618,9 @@ state 133
state 134
- 272 expr_without_variable: T_EXIT exit_expr .
+ 270 expr_without_variable: T_EXIT exit_expr .
- $default reduce using rule 272 (expr_without_variable)
+ $default reduce using rule 270 (expr_without_variable)
state 135
@@ -4703,17 +4695,17 @@ state 135
state 136
- 280 function_call: T_STRING '(' . @51 function_call_parameter_list ')'
+ 278 function_call: T_STRING '(' . @49 function_call_parameter_list ')'
- $default reduce using rule 279 (@51)
+ $default reduce using rule 277 (@49)
- @51 go to state 241
+ @49 go to state 241
state 137
45 unticked_statement: T_ECHO echo_expr_list . ';'
- 196 echo_expr_list: echo_expr_list . ',' expr
+ 194 echo_expr_list: echo_expr_list . ',' expr
',' shift, and go to state 242
';' shift, and go to state 243
@@ -4721,33 +4713,33 @@ state 137
state 138
- 197 echo_expr_list: expr .
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 195 echo_expr_list: expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -4776,7 +4768,7 @@ state 138
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 197 (echo_expr_list)
+ $default reduce using rule 195 (echo_expr_list)
state 139
@@ -4928,7 +4920,7 @@ state 141
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 198 (for_expr)
+ $default reduce using rule 196 (for_expr)
for_expr go to state 246
non_empty_for_expr go to state 247
@@ -4954,8 +4946,8 @@ state 141
state 142
- 53 unticked_statement: T_FOREACH '(' . variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
- 57 | T_FOREACH '(' . expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 52 unticked_statement: T_FOREACH '(' . variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement
+ 55 | T_FOREACH '(' . expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5024,7 +5016,7 @@ state 142
state 143
- 59 unticked_statement: T_DECLARE @21 . '(' declare_list ')' declare_statement
+ 57 unticked_statement: T_DECLARE @19 . '(' declare_list ')' declare_statement
'(' shift, and go to state 251
@@ -5108,32 +5100,32 @@ state 145
state 146
37 unticked_statement: T_BREAK expr . ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -5174,32 +5166,32 @@ state 147
state 148
39 unticked_statement: T_CONTINUE expr . ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -5232,11 +5224,11 @@ state 148
state 149
- 86 unticked_function_declaration_statement: T_FUNCTION @29 . is_reference T_STRING @30 '(' parameter_list ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 . is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}'
'&' shift, and go to state 255
- $default reduce using rule 82 (is_reference)
+ $default reduce using rule 80 (is_reference)
is_reference go to state 256
@@ -5251,41 +5243,41 @@ state 150
state 151
41 unticked_statement: T_RETURN expr_without_variable . ';'
- 333 expr: expr_without_variable .
+ 331 expr: expr_without_variable .
';' shift, and go to state 257
- $default reduce using rule 333 (expr)
+ $default reduce using rule 331 (expr)
state 152
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -5318,22 +5310,22 @@ state 152
state 153
42 unticked_statement: T_RETURN variable . ';'
- 205 expr_without_variable: variable . '=' expr
- 206 | variable . '=' '&' variable
- 208 | variable . '=' '&' T_NEW class_name_reference @42 ctor_arguments
- 212 | variable . T_PLUS_EQUAL expr
- 213 | variable . T_MINUS_EQUAL expr
- 214 | variable . T_MUL_EQUAL expr
- 215 | variable . T_DIV_EQUAL expr
- 216 | variable . T_CONCAT_EQUAL expr
- 217 | variable . T_MOD_EQUAL expr
- 218 | variable . T_AND_EQUAL expr
- 219 | variable . T_OR_EQUAL expr
- 220 | variable . T_XOR_EQUAL expr
- 221 | variable . T_SL_EQUAL expr
- 222 | variable . T_SR_EQUAL expr
- 334 r_variable: variable .
- 338 rw_variable: variable . @58
+ 203 expr_without_variable: variable . '=' expr
+ 204 | variable . '=' '&' variable
+ 206 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 210 | variable . T_PLUS_EQUAL expr
+ 211 | variable . T_MINUS_EQUAL expr
+ 212 | variable . T_MUL_EQUAL expr
+ 213 | variable . T_DIV_EQUAL expr
+ 214 | variable . T_CONCAT_EQUAL expr
+ 215 | variable . T_MOD_EQUAL expr
+ 216 | variable . T_AND_EQUAL expr
+ 217 | variable . T_OR_EQUAL expr
+ 218 | variable . T_XOR_EQUAL expr
+ 219 | variable . T_SL_EQUAL expr
+ 220 | variable . T_SR_EQUAL expr
+ 332 r_variable: variable .
+ 336 rw_variable: variable . @56
'=' shift, and go to state 212
T_SR_EQUAL shift, and go to state 213
@@ -5349,49 +5341,49 @@ state 153
T_PLUS_EQUAL shift, and go to state 223
';' shift, and go to state 258
- T_DEC reduce using rule 337 (@58)
- T_INC reduce using rule 337 (@58)
- $default reduce using rule 334 (r_variable)
+ T_DEC reduce using rule 335 (@56)
+ T_INC reduce using rule 335 (@56)
+ $default reduce using rule 332 (r_variable)
- @58 go to state 224
+ @56 go to state 224
state 154
- 66 unticked_statement: T_TRY @22 . '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 . '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
'{' shift, and go to state 259
state 155
- 67 unticked_statement: T_THROW expr . ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 65 unticked_statement: T_THROW expr . ';'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -5424,14 +5416,14 @@ state 155
state 156
- 78 use_filename: T_CONSTANT_ENCAPSED_STRING .
+ 76 use_filename: T_CONSTANT_ENCAPSED_STRING .
- $default reduce using rule 78 (use_filename)
+ $default reduce using rule 76 (use_filename)
state 157
- 79 use_filename: '(' . T_CONSTANT_ENCAPSED_STRING ')'
+ 77 use_filename: '(' . T_CONSTANT_ENCAPSED_STRING ')'
T_CONSTANT_ENCAPSED_STRING shift, and go to state 261
@@ -5445,15 +5437,15 @@ state 158
state 159
- 161 global_var: T_VARIABLE .
+ 159 global_var: T_VARIABLE .
- $default reduce using rule 161 (global_var)
+ $default reduce using rule 159 (global_var)
state 160
- 162 global_var: '$' . r_variable
- 163 | '$' . '{' expr '}'
+ 160 global_var: '$' . r_variable
+ 161 | '$' . '{' expr '}'
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -5476,7 +5468,7 @@ state 160
state 161
43 unticked_statement: T_GLOBAL global_var_list . ';'
- 159 global_var_list: global_var_list . ',' global_var
+ 157 global_var_list: global_var_list . ',' global_var
',' shift, and go to state 266
';' shift, and go to state 267
@@ -5484,40 +5476,40 @@ state 161
state 162
- 160 global_var_list: global_var .
+ 158 global_var_list: global_var .
- $default reduce using rule 160 (global_var_list)
+ $default reduce using rule 158 (global_var_list)
state 163
- 93 class_entry_type: T_FINAL T_CLASS .
+ 91 class_entry_type: T_FINAL T_CLASS .
- $default reduce using rule 93 (class_entry_type)
+ $default reduce using rule 91 (class_entry_type)
state 164
- 92 class_entry_type: T_ABSTRACT T_CLASS .
+ 90 class_entry_type: T_ABSTRACT T_CLASS .
- $default reduce using rule 92 (class_entry_type)
+ $default reduce using rule 90 (class_entry_type)
state 165
- 166 static_var_list: T_VARIABLE .
- 167 | T_VARIABLE . '=' static_scalar
+ 164 static_var_list: T_VARIABLE .
+ 165 | T_VARIABLE . '=' static_scalar
'=' shift, and go to state 268
- $default reduce using rule 166 (static_var_list)
+ $default reduce using rule 164 (static_var_list)
state 166
44 unticked_statement: T_STATIC static_var_list . ';'
- 164 static_var_list: static_var_list . ',' T_VARIABLE
- 165 | static_var_list . ',' T_VARIABLE '=' static_scalar
+ 162 static_var_list: static_var_list . ',' T_VARIABLE
+ 163 | static_var_list . ',' T_VARIABLE '=' static_scalar
',' shift, and go to state 269
';' shift, and go to state 270
@@ -5547,7 +5539,7 @@ state 167
state 168
- 413 internal_functions_in_yacc: T_ISSET '(' . isset_variables ')'
+ 411 internal_functions_in_yacc: T_ISSET '(' . isset_variables ')'
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -5568,7 +5560,7 @@ state 168
state 169
- 414 internal_functions_in_yacc: T_EMPTY '(' . variable ')'
+ 412 internal_functions_in_yacc: T_EMPTY '(' . variable ')'
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -5595,16 +5587,16 @@ state 170
state 171
- 204 expr_without_variable: T_LIST '(' . @41 assignment_list ')' '=' expr
+ 202 expr_without_variable: T_LIST '(' . @39 assignment_list ')' '=' expr
- $default reduce using rule 203 (@41)
+ $default reduce using rule 201 (@39)
- @41 go to state 278
+ @39 go to state 278
state 172
- 276 expr_without_variable: T_ARRAY '(' . array_pair_list ')'
+ 274 expr_without_variable: T_ARRAY '(' . array_pair_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5652,7 +5644,7 @@ state 172
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 381 (array_pair_list)
+ $default reduce using rule 379 (array_pair_list)
expr_without_variable go to state 84
function_call go to state 85
@@ -5678,18 +5670,18 @@ state 172
state 173
- 323 scalar: T_START_HEREDOC encaps_list . T_END_HEREDOC
- 391 encaps_list: encaps_list . encaps_var
- 392 | encaps_list . T_STRING
- 393 | encaps_list . T_NUM_STRING
- 394 | encaps_list . T_ENCAPSED_AND_WHITESPACE
- 395 | encaps_list . T_CHARACTER
- 396 | encaps_list . T_BAD_CHARACTER
- 397 | encaps_list . '['
- 398 | encaps_list . ']'
- 399 | encaps_list . '{'
- 400 | encaps_list . '}'
- 401 | encaps_list . T_OBJECT_OPERATOR
+ 321 scalar: T_START_HEREDOC encaps_list . T_END_HEREDOC
+ 389 encaps_list: encaps_list . encaps_var
+ 390 | encaps_list . T_STRING
+ 391 | encaps_list . T_NUM_STRING
+ 392 | encaps_list . T_ENCAPSED_AND_WHITESPACE
+ 393 | encaps_list . T_CHARACTER
+ 394 | encaps_list . T_BAD_CHARACTER
+ 395 | encaps_list . '['
+ 396 | encaps_list . ']'
+ 397 | encaps_list . '{'
+ 398 | encaps_list . '}'
+ 399 | encaps_list . T_OBJECT_OPERATOR
'[' shift, and go to state 283
T_STRING shift, and go to state 284
@@ -5711,33 +5703,33 @@ state 173
state 174
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 260 | '(' expr . ')'
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 258 | '(' expr . ')'
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -5782,7 +5774,7 @@ state 175
state 176
- 362 compound_variable: '$' '{' . expr '}'
+ 360 compound_variable: '$' '{' . expr '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5851,18 +5843,18 @@ state 176
state 177
- 277 expr_without_variable: '`' encaps_list . '`'
- 391 encaps_list: encaps_list . encaps_var
- 392 | encaps_list . T_STRING
- 393 | encaps_list . T_NUM_STRING
- 394 | encaps_list . T_ENCAPSED_AND_WHITESPACE
- 395 | encaps_list . T_CHARACTER
- 396 | encaps_list . T_BAD_CHARACTER
- 397 | encaps_list . '['
- 398 | encaps_list . ']'
- 399 | encaps_list . '{'
- 400 | encaps_list . '}'
- 401 | encaps_list . T_OBJECT_OPERATOR
+ 275 expr_without_variable: '`' encaps_list . '`'
+ 389 encaps_list: encaps_list . encaps_var
+ 390 | encaps_list . T_STRING
+ 391 | encaps_list . T_NUM_STRING
+ 392 | encaps_list . T_ENCAPSED_AND_WHITESPACE
+ 393 | encaps_list . T_CHARACTER
+ 394 | encaps_list . T_BAD_CHARACTER
+ 395 | encaps_list . '['
+ 396 | encaps_list . ']'
+ 397 | encaps_list . '{'
+ 398 | encaps_list . '}'
+ 399 | encaps_list . T_OBJECT_OPERATOR
'[' shift, and go to state 283
T_STRING shift, and go to state 284
@@ -5884,18 +5876,18 @@ state 177
state 178
- 321 scalar: '"' encaps_list . '"'
- 391 encaps_list: encaps_list . encaps_var
- 392 | encaps_list . T_STRING
- 393 | encaps_list . T_NUM_STRING
- 394 | encaps_list . T_ENCAPSED_AND_WHITESPACE
- 395 | encaps_list . T_CHARACTER
- 396 | encaps_list . T_BAD_CHARACTER
- 397 | encaps_list . '['
- 398 | encaps_list . ']'
- 399 | encaps_list . '{'
- 400 | encaps_list . '}'
- 401 | encaps_list . T_OBJECT_OPERATOR
+ 319 scalar: '"' encaps_list . '"'
+ 389 encaps_list: encaps_list . encaps_var
+ 390 | encaps_list . T_STRING
+ 391 | encaps_list . T_NUM_STRING
+ 392 | encaps_list . T_ENCAPSED_AND_WHITESPACE
+ 393 | encaps_list . T_CHARACTER
+ 394 | encaps_list . T_BAD_CHARACTER
+ 395 | encaps_list . '['
+ 396 | encaps_list . ']'
+ 397 | encaps_list . '{'
+ 398 | encaps_list . '}'
+ 399 | encaps_list . T_OBJECT_OPERATOR
'[' shift, and go to state 283
T_STRING shift, and go to state 284
@@ -5917,18 +5909,18 @@ state 178
state 179
- 322 scalar: ''' encaps_list . '''
- 391 encaps_list: encaps_list . encaps_var
- 392 | encaps_list . T_STRING
- 393 | encaps_list . T_NUM_STRING
- 394 | encaps_list . T_ENCAPSED_AND_WHITESPACE
- 395 | encaps_list . T_CHARACTER
- 396 | encaps_list . T_BAD_CHARACTER
- 397 | encaps_list . '['
- 398 | encaps_list . ']'
- 399 | encaps_list . '{'
- 400 | encaps_list . '}'
- 401 | encaps_list . T_OBJECT_OPERATOR
+ 320 scalar: ''' encaps_list . '''
+ 389 encaps_list: encaps_list . encaps_var
+ 390 | encaps_list . T_STRING
+ 391 | encaps_list . T_NUM_STRING
+ 392 | encaps_list . T_ENCAPSED_AND_WHITESPACE
+ 393 | encaps_list . T_CHARACTER
+ 394 | encaps_list . T_BAD_CHARACTER
+ 395 | encaps_list . '['
+ 396 | encaps_list . ']'
+ 397 | encaps_list . '{'
+ 398 | encaps_list . '}'
+ 399 | encaps_list . T_OBJECT_OPERATOR
'[' shift, and go to state 283
T_STRING shift, and go to state 284
@@ -5950,30 +5942,30 @@ state 179
state 180
- 88 unticked_class_declaration_statement: class_entry_type T_STRING . extends_from @31 implements_list '{' class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING . extends_from @29 implements_list '{' class_statement_list '}'
T_EXTENDS shift, and go to state 305
- $default reduce using rule 94 (extends_from)
+ $default reduce using rule 92 (extends_from)
extends_from go to state 306
state 181
- 90 unticked_class_declaration_statement: interface_entry T_STRING . @32 interface_extends_list '{' class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry T_STRING . @30 interface_extends_list '{' class_statement_list '}'
- $default reduce using rule 89 (@32)
+ $default reduce using rule 87 (@30)
- @32 go to state 307
+ @30 go to state 307
state 182
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @52 function_call_parameter_list ')'
- 284 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @53 function_call_parameter_list ')'
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
- 423 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @50 function_call_parameter_list ')'
+ 282 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @51 function_call_parameter_list ')'
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
+ 421 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING
T_STRING shift, and go to state 308
T_VARIABLE shift, and go to state 33
@@ -5987,16 +5979,16 @@ state 182
state 183
- 232 expr_without_variable: expr T_LOGICAL_OR . @46 expr
+ 230 expr_without_variable: expr T_LOGICAL_OR . @44 expr
- $default reduce using rule 231 (@46)
+ $default reduce using rule 229 (@44)
- @46 go to state 312
+ @44 go to state 312
state 184
- 235 expr_without_variable: expr T_LOGICAL_XOR . expr
+ 233 expr_without_variable: expr T_LOGICAL_XOR . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6065,43 +6057,43 @@ state 184
state 185
- 234 expr_without_variable: expr T_LOGICAL_AND . @47 expr
+ 232 expr_without_variable: expr T_LOGICAL_AND . @45 expr
- $default reduce using rule 233 (@47)
+ $default reduce using rule 231 (@45)
- @47 go to state 314
+ @45 go to state 314
state 186
- 263 expr_without_variable: expr '?' . @48 expr ':' @49 expr
+ 261 expr_without_variable: expr '?' . @46 expr ':' @47 expr
- $default reduce using rule 261 (@48)
+ $default reduce using rule 259 (@46)
- @48 go to state 315
+ @46 go to state 315
state 187
- 228 expr_without_variable: expr T_BOOLEAN_OR . @44 expr
+ 226 expr_without_variable: expr T_BOOLEAN_OR . @42 expr
- $default reduce using rule 227 (@44)
+ $default reduce using rule 225 (@42)
- @44 go to state 316
+ @42 go to state 316
state 188
- 230 expr_without_variable: expr T_BOOLEAN_AND . @45 expr
+ 228 expr_without_variable: expr T_BOOLEAN_AND . @43 expr
- $default reduce using rule 229 (@45)
+ $default reduce using rule 227 (@43)
- @45 go to state 317
+ @43 go to state 317
state 189
- 236 expr_without_variable: expr '|' . expr
+ 234 expr_without_variable: expr '|' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6170,7 +6162,7 @@ state 189
state 190
- 238 expr_without_variable: expr '^' . expr
+ 236 expr_without_variable: expr '^' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6239,7 +6231,7 @@ state 190
state 191
- 237 expr_without_variable: expr '&' . expr
+ 235 expr_without_variable: expr '&' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6308,7 +6300,7 @@ state 191
state 192
- 252 expr_without_variable: expr T_IS_NOT_IDENTICAL . expr
+ 250 expr_without_variable: expr T_IS_NOT_IDENTICAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6377,7 +6369,7 @@ state 192
state 193
- 251 expr_without_variable: expr T_IS_IDENTICAL . expr
+ 249 expr_without_variable: expr T_IS_IDENTICAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6446,7 +6438,7 @@ state 193
state 194
- 254 expr_without_variable: expr T_IS_NOT_EQUAL . expr
+ 252 expr_without_variable: expr T_IS_NOT_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6515,7 +6507,7 @@ state 194
state 195
- 253 expr_without_variable: expr T_IS_EQUAL . expr
+ 251 expr_without_variable: expr T_IS_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6584,7 +6576,7 @@ state 195
state 196
- 255 expr_without_variable: expr '<' . expr
+ 253 expr_without_variable: expr '<' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6653,7 +6645,7 @@ state 196
state 197
- 257 expr_without_variable: expr '>' . expr
+ 255 expr_without_variable: expr '>' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6722,7 +6714,7 @@ state 197
state 198
- 258 expr_without_variable: expr T_IS_GREATER_OR_EQUAL . expr
+ 256 expr_without_variable: expr T_IS_GREATER_OR_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6791,7 +6783,7 @@ state 198
state 199
- 256 expr_without_variable: expr T_IS_SMALLER_OR_EQUAL . expr
+ 254 expr_without_variable: expr T_IS_SMALLER_OR_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6860,7 +6852,7 @@ state 199
state 200
- 246 expr_without_variable: expr T_SR . expr
+ 244 expr_without_variable: expr T_SR . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6929,7 +6921,7 @@ state 200
state 201
- 245 expr_without_variable: expr T_SL . expr
+ 243 expr_without_variable: expr T_SL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -6998,7 +6990,7 @@ state 201
state 202
- 240 expr_without_variable: expr '+' . expr
+ 238 expr_without_variable: expr '+' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7067,7 +7059,7 @@ state 202
state 203
- 241 expr_without_variable: expr '-' . expr
+ 239 expr_without_variable: expr '-' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7136,7 +7128,7 @@ state 203
state 204
- 239 expr_without_variable: expr '.' . expr
+ 237 expr_without_variable: expr '.' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7205,7 +7197,7 @@ state 204
state 205
- 242 expr_without_variable: expr '*' . expr
+ 240 expr_without_variable: expr '*' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7274,7 +7266,7 @@ state 205
state 206
- 243 expr_without_variable: expr '/' . expr
+ 241 expr_without_variable: expr '/' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7343,7 +7335,7 @@ state 206
state 207
- 244 expr_without_variable: expr '%' . expr
+ 242 expr_without_variable: expr '%' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7412,7 +7404,7 @@ state 207
state 208
- 259 expr_without_variable: expr T_INSTANCEOF . class_name_reference
+ 257 expr_without_variable: expr T_INSTANCEOF . class_name_reference
T_STRING shift, and go to state 126
T_VARIABLE shift, and go to state 33
@@ -7437,23 +7429,23 @@ state 209
state 210
- 225 expr_without_variable: rw_variable T_DEC .
+ 223 expr_without_variable: rw_variable T_DEC .
- $default reduce using rule 225 (expr_without_variable)
+ $default reduce using rule 223 (expr_without_variable)
state 211
- 223 expr_without_variable: rw_variable T_INC .
+ 221 expr_without_variable: rw_variable T_INC .
- $default reduce using rule 223 (expr_without_variable)
+ $default reduce using rule 221 (expr_without_variable)
state 212
- 205 expr_without_variable: variable '=' . expr
- 206 | variable '=' . '&' variable
- 208 | variable '=' . '&' T_NEW class_name_reference @42 ctor_arguments
+ 203 expr_without_variable: variable '=' . expr
+ 204 | variable '=' . '&' variable
+ 206 | variable '=' . '&' T_NEW class_name_reference @40 ctor_arguments
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7523,7 +7515,7 @@ state 212
state 213
- 222 expr_without_variable: variable T_SR_EQUAL . expr
+ 220 expr_without_variable: variable T_SR_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7592,7 +7584,7 @@ state 213
state 214
- 221 expr_without_variable: variable T_SL_EQUAL . expr
+ 219 expr_without_variable: variable T_SL_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7661,7 +7653,7 @@ state 214
state 215
- 220 expr_without_variable: variable T_XOR_EQUAL . expr
+ 218 expr_without_variable: variable T_XOR_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7730,7 +7722,7 @@ state 215
state 216
- 219 expr_without_variable: variable T_OR_EQUAL . expr
+ 217 expr_without_variable: variable T_OR_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7799,7 +7791,7 @@ state 216
state 217
- 218 expr_without_variable: variable T_AND_EQUAL . expr
+ 216 expr_without_variable: variable T_AND_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7868,7 +7860,7 @@ state 217
state 218
- 217 expr_without_variable: variable T_MOD_EQUAL . expr
+ 215 expr_without_variable: variable T_MOD_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -7937,7 +7929,7 @@ state 218
state 219
- 216 expr_without_variable: variable T_CONCAT_EQUAL . expr
+ 214 expr_without_variable: variable T_CONCAT_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8006,7 +7998,7 @@ state 219
state 220
- 215 expr_without_variable: variable T_DIV_EQUAL . expr
+ 213 expr_without_variable: variable T_DIV_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8075,7 +8067,7 @@ state 220
state 221
- 214 expr_without_variable: variable T_MUL_EQUAL . expr
+ 212 expr_without_variable: variable T_MUL_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8144,7 +8136,7 @@ state 221
state 222
- 213 expr_without_variable: variable T_MINUS_EQUAL . expr
+ 211 expr_without_variable: variable T_MINUS_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8213,7 +8205,7 @@ state 222
state 223
- 212 expr_without_variable: variable T_PLUS_EQUAL . expr
+ 210 expr_without_variable: variable T_PLUS_EQUAL . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8282,32 +8274,32 @@ state 223
state 224
- 338 rw_variable: variable @58 .
+ 336 rw_variable: variable @56 .
- $default reduce using rule 338 (rw_variable)
+ $default reduce using rule 336 (rw_variable)
state 225
- 286 function_call: variable_without_objects '(' . @54 function_call_parameter_list ')'
+ 284 function_call: variable_without_objects '(' . @52 function_call_parameter_list ')'
- $default reduce using rule 285 (@54)
+ $default reduce using rule 283 (@52)
- @54 go to state 351
+ @52 go to state 351
state 226
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . @59 object_property @60 method_or_not variable_properties
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . @57 object_property @58 method_or_not variable_properties
- $default reduce using rule 339 (@59)
+ $default reduce using rule 337 (@57)
- @59 go to state 352
+ @57 go to state 352
state 227
- 358 reference_variable: reference_variable '[' . dim_offset ']'
+ 356 reference_variable: reference_variable '[' . dim_offset ']'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8354,7 +8346,7 @@ state 227
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 363 (dim_offset)
+ $default reduce using rule 361 (dim_offset)
expr_without_variable go to state 84
function_call go to state 85
@@ -8379,7 +8371,7 @@ state 227
state 228
- 359 reference_variable: reference_variable '{' . expr '}'
+ 357 reference_variable: reference_variable '{' . expr '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8448,57 +8440,57 @@ state 228
state 229
- 362 compound_variable: '$' . '{' expr '}'
- 374 simple_indirect_reference: simple_indirect_reference '$' .
+ 360 compound_variable: '$' . '{' expr '}'
+ 372 simple_indirect_reference: simple_indirect_reference '$' .
'{' shift, and go to state 176
- $default reduce using rule 374 (simple_indirect_reference)
+ $default reduce using rule 372 (simple_indirect_reference)
state 230
- 351 variable_without_objects: simple_indirect_reference reference_variable .
- 356 base_variable: simple_indirect_reference reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 349 variable_without_objects: simple_indirect_reference reference_variable .
+ 354 base_variable: simple_indirect_reference reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- '(' reduce using rule 351 (variable_without_objects)
- $default reduce using rule 356 (base_variable)
+ '(' reduce using rule 349 (variable_without_objects)
+ $default reduce using rule 354 (base_variable)
state 231
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 417 internal_functions_in_yacc: T_EVAL '(' expr . ')'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 415 internal_functions_in_yacc: T_EVAL '(' expr . ')'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -8531,42 +8523,42 @@ state 231
state 232
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 274 | '@' @50 expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 272 | '@' @48 expr .
- $default reduce using rule 274 (expr_without_variable)
+ $default reduce using rule 272 (expr_without_variable)
state 233
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @52 function_call_parameter_list ')'
- 284 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @53 function_call_parameter_list ')'
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @50 function_call_parameter_list ')'
+ 282 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @51 function_call_parameter_list ')'
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
T_STRING shift, and go to state 357
T_VARIABLE shift, and go to state 33
@@ -8580,7 +8572,7 @@ state 233
state 234
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 71
@@ -8593,72 +8585,72 @@ state 234
state 235
- 210 expr_without_variable: T_NEW class_name_reference @43 . ctor_arguments
+ 208 expr_without_variable: T_NEW class_name_reference @41 . ctor_arguments
'(' shift, and go to state 359
- $default reduce using rule 300 (ctor_arguments)
+ $default reduce using rule 298 (ctor_arguments)
ctor_arguments go to state 360
state 236
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR . @55 object_property @56 dynamic_class_name_variable_properties
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR . @53 object_property @54 dynamic_class_name_variable_properties
- $default reduce using rule 290 (@55)
+ $default reduce using rule 288 (@53)
- @55 go to state 361
+ @53 go to state 361
state 237
- 356 base_variable: simple_indirect_reference reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 354 base_variable: simple_indirect_reference reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- $default reduce using rule 356 (base_variable)
+ $default reduce using rule 354 (base_variable)
state 238
- 298 exit_expr: '(' ')' .
+ 296 exit_expr: '(' ')' .
- $default reduce using rule 298 (exit_expr)
+ $default reduce using rule 296 (exit_expr)
state 239
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 299 exit_expr: '(' expr . ')'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 297 exit_expr: '(' expr . ')'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -8693,32 +8685,32 @@ state 240
20 unticked_statement: T_IF '(' expr . ')' @3 statement @4 elseif_list else_single
23 | T_IF '(' expr . ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -8751,7 +8743,7 @@ state 240
state 241
- 280 function_call: T_STRING '(' @51 . function_call_parameter_list ')'
+ 278 function_call: T_STRING '(' @49 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8799,7 +8791,7 @@ state 241
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
function_call_parameter_list go to state 365
non_empty_function_call_parameter_list go to state 366
@@ -8825,7 +8817,7 @@ state 241
state 242
- 196 echo_expr_list: echo_expr_list ',' . expr
+ 194 echo_expr_list: echo_expr_list ',' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -8984,43 +8976,43 @@ state 246
state 247
- 199 for_expr: non_empty_for_expr .
- 201 non_empty_for_expr: non_empty_for_expr . ',' @40 expr
+ 197 for_expr: non_empty_for_expr .
+ 199 non_empty_for_expr: non_empty_for_expr . ',' @38 expr
',' shift, and go to state 373
- $default reduce using rule 199 (for_expr)
+ $default reduce using rule 197 (for_expr)
state 248
- 202 non_empty_for_expr: expr .
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 200 non_empty_for_expr: expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -9049,39 +9041,38 @@ state 248
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 202 (non_empty_for_expr)
+ $default reduce using rule 200 (non_empty_for_expr)
state 249
- 57 unticked_statement: T_FOREACH '(' expr_without_variable . @18 T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
- 333 expr: expr_without_variable .
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable . T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement
+ 331 expr: expr_without_variable .
- T_AS reduce using rule 54 (@18)
- $default reduce using rule 333 (expr)
+ T_AS shift, and go to state 374
- @18 go to state 374
+ $default reduce using rule 331 (expr)
state 250
- 53 unticked_statement: T_FOREACH '(' variable . @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
- 205 expr_without_variable: variable . '=' expr
- 206 | variable . '=' '&' variable
- 208 | variable . '=' '&' T_NEW class_name_reference @42 ctor_arguments
- 212 | variable . T_PLUS_EQUAL expr
- 213 | variable . T_MINUS_EQUAL expr
- 214 | variable . T_MUL_EQUAL expr
- 215 | variable . T_DIV_EQUAL expr
- 216 | variable . T_CONCAT_EQUAL expr
- 217 | variable . T_MOD_EQUAL expr
- 218 | variable . T_AND_EQUAL expr
- 219 | variable . T_OR_EQUAL expr
- 220 | variable . T_XOR_EQUAL expr
- 221 | variable . T_SL_EQUAL expr
- 222 | variable . T_SR_EQUAL expr
- 334 r_variable: variable .
- 338 rw_variable: variable . @58
+ 52 unticked_statement: T_FOREACH '(' variable . T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement
+ 203 expr_without_variable: variable . '=' expr
+ 204 | variable . '=' '&' variable
+ 206 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 210 | variable . T_PLUS_EQUAL expr
+ 211 | variable . T_MINUS_EQUAL expr
+ 212 | variable . T_MUL_EQUAL expr
+ 213 | variable . T_DIV_EQUAL expr
+ 214 | variable . T_CONCAT_EQUAL expr
+ 215 | variable . T_MOD_EQUAL expr
+ 216 | variable . T_AND_EQUAL expr
+ 217 | variable . T_OR_EQUAL expr
+ 218 | variable . T_XOR_EQUAL expr
+ 219 | variable . T_SL_EQUAL expr
+ 220 | variable . T_SR_EQUAL expr
+ 332 r_variable: variable .
+ 336 rw_variable: variable . @56
'=' shift, and go to state 212
T_SR_EQUAL shift, and go to state 213
@@ -9095,19 +9086,18 @@ state 250
T_MUL_EQUAL shift, and go to state 221
T_MINUS_EQUAL shift, and go to state 222
T_PLUS_EQUAL shift, and go to state 223
+ T_AS shift, and go to state 375
- T_DEC reduce using rule 337 (@58)
- T_INC reduce using rule 337 (@58)
- T_AS reduce using rule 50 (@15)
- $default reduce using rule 334 (r_variable)
+ T_DEC reduce using rule 335 (@56)
+ T_INC reduce using rule 335 (@56)
+ $default reduce using rule 332 (r_variable)
- @15 go to state 375
- @58 go to state 224
+ @56 go to state 224
state 251
- 59 unticked_statement: T_DECLARE @21 '(' . declare_list ')' declare_statement
+ 57 unticked_statement: T_DECLARE @19 '(' . declare_list ')' declare_statement
T_STRING shift, and go to state 376
@@ -9117,32 +9107,32 @@ state 251
state 252
35 unticked_statement: T_SWITCH '(' expr . ')' @14 switch_case_list
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -9189,14 +9179,14 @@ state 254
state 255
- 83 is_reference: '&' .
+ 81 is_reference: '&' .
- $default reduce using rule 83 (is_reference)
+ $default reduce using rule 81 (is_reference)
state 256
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference . T_STRING @30 '(' parameter_list ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference . T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}'
T_STRING shift, and go to state 379
@@ -9217,7 +9207,7 @@ state 258
state 259
- 66 unticked_statement: T_TRY @22 '{' . inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' . inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
$default reduce using rule 11 (inner_statement_list)
@@ -9226,14 +9216,14 @@ state 259
state 260
- 67 unticked_statement: T_THROW expr ';' .
+ 65 unticked_statement: T_THROW expr ';' .
- $default reduce using rule 67 (unticked_statement)
+ $default reduce using rule 65 (unticked_statement)
state 261
- 79 use_filename: '(' T_CONSTANT_ENCAPSED_STRING . ')'
+ 77 use_filename: '(' T_CONSTANT_ENCAPSED_STRING . ')'
')' shift, and go to state 381
@@ -9247,7 +9237,7 @@ state 262
state 263
- 163 global_var: '$' '{' . expr '}'
+ 161 global_var: '$' '{' . expr '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -9316,21 +9306,21 @@ state 263
state 264
- 162 global_var: '$' r_variable .
+ 160 global_var: '$' r_variable .
- $default reduce using rule 162 (global_var)
+ $default reduce using rule 160 (global_var)
state 265
- 334 r_variable: variable .
+ 332 r_variable: variable .
- $default reduce using rule 334 (r_variable)
+ $default reduce using rule 332 (r_variable)
state 266
- 159 global_var_list: global_var_list ',' . global_var
+ 157 global_var_list: global_var_list ',' . global_var
T_VARIABLE shift, and go to state 159
'$' shift, and go to state 160
@@ -9347,7 +9337,7 @@ state 267
state 268
- 167 static_var_list: T_VARIABLE '=' . static_scalar
+ 165 static_var_list: T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -9369,8 +9359,8 @@ state 268
state 269
- 164 static_var_list: static_var_list ',' . T_VARIABLE
- 165 | static_var_list ',' . T_VARIABLE '=' static_scalar
+ 162 static_var_list: static_var_list ',' . T_VARIABLE
+ 163 | static_var_list ',' . T_VARIABLE '=' static_scalar
T_VARIABLE shift, and go to state 391
@@ -9385,7 +9375,7 @@ state 270
state 271
49 unticked_statement: T_UNSET '(' unset_variables . ')' ';'
- 76 unset_variables: unset_variables . ',' unset_variable
+ 74 unset_variables: unset_variables . ',' unset_variable
',' shift, and go to state 392
')' shift, and go to state 393
@@ -9393,29 +9383,29 @@ state 271
state 272
- 75 unset_variables: unset_variable .
+ 73 unset_variables: unset_variable .
- $default reduce using rule 75 (unset_variables)
+ $default reduce using rule 73 (unset_variables)
state 273
- 77 unset_variable: variable .
+ 75 unset_variable: variable .
- $default reduce using rule 77 (unset_variable)
+ $default reduce using rule 75 (unset_variable)
state 274
- 420 isset_variables: variable .
+ 418 isset_variables: variable .
- $default reduce using rule 420 (isset_variables)
+ $default reduce using rule 418 (isset_variables)
state 275
- 413 internal_functions_in_yacc: T_ISSET '(' isset_variables . ')'
- 422 isset_variables: isset_variables . ',' @66 variable
+ 411 internal_functions_in_yacc: T_ISSET '(' isset_variables . ')'
+ 420 isset_variables: isset_variables . ',' @64 variable
',' shift, and go to state 394
')' shift, and go to state 395
@@ -9423,7 +9413,7 @@ state 275
state 276
- 414 internal_functions_in_yacc: T_EMPTY '(' variable . ')'
+ 412 internal_functions_in_yacc: T_EMPTY '(' variable . ')'
')' shift, and go to state 396
@@ -9437,14 +9427,14 @@ state 277
state 278
- 204 expr_without_variable: T_LIST '(' @41 . assignment_list ')' '=' expr
+ 202 expr_without_variable: T_LIST '(' @39 . assignment_list ')' '=' expr
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
T_LIST shift, and go to state 398
'$' shift, and go to state 71
- $default reduce using rule 380 (assignment_list_element)
+ $default reduce using rule 378 (assignment_list_element)
function_call go to state 85
fully_qualified_class_name go to state 121
@@ -9462,7 +9452,7 @@ state 278
state 279
- 390 non_empty_array_pair_list: '&' . w_variable
+ 388 non_empty_array_pair_list: '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -9483,35 +9473,35 @@ state 279
state 280
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 385 non_empty_array_pair_list: expr . T_DOUBLE_ARROW expr
- 386 | expr .
- 389 | expr . T_DOUBLE_ARROW '&' w_variable
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 383 non_empty_array_pair_list: expr . T_DOUBLE_ARROW expr
+ 384 | expr .
+ 387 | expr . T_DOUBLE_ARROW '&' w_variable
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -9541,105 +9531,105 @@ state 280
T_INSTANCEOF shift, and go to state 208
T_DOUBLE_ARROW shift, and go to state 404
- $default reduce using rule 386 (non_empty_array_pair_list)
+ $default reduce using rule 384 (non_empty_array_pair_list)
state 281
- 276 expr_without_variable: T_ARRAY '(' array_pair_list . ')'
+ 274 expr_without_variable: T_ARRAY '(' array_pair_list . ')'
')' shift, and go to state 405
state 282
- 382 array_pair_list: non_empty_array_pair_list . possible_comma
- 383 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW expr
- 384 | non_empty_array_pair_list . ',' expr
- 387 | non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW '&' w_variable
- 388 | non_empty_array_pair_list . ',' '&' w_variable
+ 380 array_pair_list: non_empty_array_pair_list . possible_comma
+ 381 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW expr
+ 382 | non_empty_array_pair_list . ',' expr
+ 385 | non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW '&' w_variable
+ 386 | non_empty_array_pair_list . ',' '&' w_variable
',' shift, and go to state 406
- $default reduce using rule 326 (possible_comma)
+ $default reduce using rule 324 (possible_comma)
possible_comma go to state 407
state 283
- 397 encaps_list: encaps_list '[' .
+ 395 encaps_list: encaps_list '[' .
- $default reduce using rule 397 (encaps_list)
+ $default reduce using rule 395 (encaps_list)
state 284
- 392 encaps_list: encaps_list T_STRING .
+ 390 encaps_list: encaps_list T_STRING .
- $default reduce using rule 392 (encaps_list)
+ $default reduce using rule 390 (encaps_list)
state 285
- 403 encaps_var: T_VARIABLE .
- 405 | T_VARIABLE . '[' @65 encaps_var_offset ']'
- 406 | T_VARIABLE . T_OBJECT_OPERATOR T_STRING
+ 401 encaps_var: T_VARIABLE .
+ 403 | T_VARIABLE . '[' @63 encaps_var_offset ']'
+ 404 | T_VARIABLE . T_OBJECT_OPERATOR T_STRING
'[' shift, and go to state 408
T_OBJECT_OPERATOR shift, and go to state 409
- '[' [reduce using rule 403 (encaps_var)]
- T_OBJECT_OPERATOR [reduce using rule 403 (encaps_var)]
- $default reduce using rule 403 (encaps_var)
+ '[' [reduce using rule 401 (encaps_var)]
+ T_OBJECT_OPERATOR [reduce using rule 401 (encaps_var)]
+ $default reduce using rule 401 (encaps_var)
state 286
- 393 encaps_list: encaps_list T_NUM_STRING .
+ 391 encaps_list: encaps_list T_NUM_STRING .
- $default reduce using rule 393 (encaps_list)
+ $default reduce using rule 391 (encaps_list)
state 287
- 395 encaps_list: encaps_list T_CHARACTER .
+ 393 encaps_list: encaps_list T_CHARACTER .
- $default reduce using rule 395 (encaps_list)
+ $default reduce using rule 393 (encaps_list)
state 288
- 396 encaps_list: encaps_list T_BAD_CHARACTER .
+ 394 encaps_list: encaps_list T_BAD_CHARACTER .
- $default reduce using rule 396 (encaps_list)
+ $default reduce using rule 394 (encaps_list)
state 289
- 394 encaps_list: encaps_list T_ENCAPSED_AND_WHITESPACE .
+ 392 encaps_list: encaps_list T_ENCAPSED_AND_WHITESPACE .
- $default reduce using rule 394 (encaps_list)
+ $default reduce using rule 392 (encaps_list)
state 290
- 401 encaps_list: encaps_list T_OBJECT_OPERATOR .
+ 399 encaps_list: encaps_list T_OBJECT_OPERATOR .
- $default reduce using rule 401 (encaps_list)
+ $default reduce using rule 399 (encaps_list)
state 291
- 323 scalar: T_START_HEREDOC encaps_list T_END_HEREDOC .
+ 321 scalar: T_START_HEREDOC encaps_list T_END_HEREDOC .
- $default reduce using rule 323 (scalar)
+ $default reduce using rule 321 (scalar)
state 292
- 407 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES . expr '}'
- 408 | T_DOLLAR_OPEN_CURLY_BRACES . T_STRING_VARNAME '[' expr ']' '}'
+ 405 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES . expr '}'
+ 406 | T_DOLLAR_OPEN_CURLY_BRACES . T_STRING_VARNAME '[' expr ']' '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -9708,7 +9698,7 @@ state 292
state 293
- 409 encaps_var: T_CURLY_OPEN . variable '}'
+ 407 encaps_var: T_CURLY_OPEN . variable '}'
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -9728,37 +9718,37 @@ state 293
state 294
- 399 encaps_list: encaps_list '{' .
+ 397 encaps_list: encaps_list '{' .
- $default reduce using rule 399 (encaps_list)
+ $default reduce using rule 397 (encaps_list)
state 295
- 400 encaps_list: encaps_list '}' .
+ 398 encaps_list: encaps_list '}' .
- $default reduce using rule 400 (encaps_list)
+ $default reduce using rule 398 (encaps_list)
state 296
- 398 encaps_list: encaps_list ']' .
+ 396 encaps_list: encaps_list ']' .
- $default reduce using rule 398 (encaps_list)
+ $default reduce using rule 396 (encaps_list)
state 297
- 391 encaps_list: encaps_list encaps_var .
+ 389 encaps_list: encaps_list encaps_var .
- $default reduce using rule 391 (encaps_list)
+ $default reduce using rule 389 (encaps_list)
state 298
- 260 expr_without_variable: '(' expr ')' .
+ 258 expr_without_variable: '(' expr ')' .
- $default reduce using rule 260 (expr_without_variable)
+ $default reduce using rule 258 (expr_without_variable)
state 299
@@ -9874,33 +9864,33 @@ state 300
state 301
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 362 compound_variable: '$' '{' expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 360 compound_variable: '$' '{' expr . '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -9933,28 +9923,28 @@ state 301
state 302
- 277 expr_without_variable: '`' encaps_list '`' .
+ 275 expr_without_variable: '`' encaps_list '`' .
- $default reduce using rule 277 (expr_without_variable)
+ $default reduce using rule 275 (expr_without_variable)
state 303
- 321 scalar: '"' encaps_list '"' .
+ 319 scalar: '"' encaps_list '"' .
- $default reduce using rule 321 (scalar)
+ $default reduce using rule 319 (scalar)
state 304
- 322 scalar: ''' encaps_list ''' .
+ 320 scalar: ''' encaps_list ''' .
- $default reduce using rule 322 (scalar)
+ $default reduce using rule 320 (scalar)
state 305
- 95 extends_from: T_EXTENDS . fully_qualified_class_name
+ 93 extends_from: T_EXTENDS . fully_qualified_class_name
T_STRING shift, and go to state 419
@@ -9963,60 +9953,60 @@ state 305
state 306
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from . @31 implements_list '{' class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from . @29 implements_list '{' class_statement_list '}'
- $default reduce using rule 87 (@31)
+ $default reduce using rule 85 (@29)
- @31 go to state 421
+ @29 go to state 421
state 307
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 . interface_extends_list '{' class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 . interface_extends_list '{' class_statement_list '}'
T_EXTENDS shift, and go to state 422
- $default reduce using rule 97 (interface_extends_list)
+ $default reduce using rule 95 (interface_extends_list)
interface_extends_list go to state 423
state 308
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @52 function_call_parameter_list ')'
- 423 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING .
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @50 function_call_parameter_list ')'
+ 421 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING .
'(' shift, and go to state 424
- $default reduce using rule 423 (class_constant)
+ $default reduce using rule 421 (class_constant)
state 309
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' @53 function_call_parameter_list ')'
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' @51 function_call_parameter_list ')'
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
'(' shift, and go to state 425
- $default reduce using rule 352 (static_member)
+ $default reduce using rule 350 (static_member)
state 310
- 350 variable_without_objects: reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 348 variable_without_objects: reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- $default reduce using rule 350 (variable_without_objects)
+ $default reduce using rule 348 (variable_without_objects)
state 311
- 351 variable_without_objects: simple_indirect_reference . reference_variable
- 374 simple_indirect_reference: simple_indirect_reference . '$'
+ 349 variable_without_objects: simple_indirect_reference . reference_variable
+ 372 simple_indirect_reference: simple_indirect_reference . '$'
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 229
@@ -10027,7 +10017,7 @@ state 311
state 312
- 232 expr_without_variable: expr T_LOGICAL_OR @46 . expr
+ 230 expr_without_variable: expr T_LOGICAL_OR @44 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10096,33 +10086,33 @@ state 312
state 313
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 235 | expr T_LOGICAL_XOR expr .
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 233 | expr T_LOGICAL_XOR expr .
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_AND shift, and go to state 185
'?' shift, and go to state 186
@@ -10149,12 +10139,12 @@ state 313
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 235 (expr_without_variable)
+ $default reduce using rule 233 (expr_without_variable)
state 314
- 234 expr_without_variable: expr T_LOGICAL_AND @47 . expr
+ 232 expr_without_variable: expr T_LOGICAL_AND @45 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10223,7 +10213,7 @@ state 314
state 315
- 263 expr_without_variable: expr '?' @48 . expr ':' @49 expr
+ 261 expr_without_variable: expr '?' @46 . expr ':' @47 expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10292,7 +10282,7 @@ state 315
state 316
- 228 expr_without_variable: expr T_BOOLEAN_OR @44 . expr
+ 226 expr_without_variable: expr T_BOOLEAN_OR @42 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10361,7 +10351,7 @@ state 316
state 317
- 230 expr_without_variable: expr T_BOOLEAN_AND @45 . expr
+ 228 expr_without_variable: expr T_BOOLEAN_AND @43 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10430,33 +10420,33 @@ state 317
state 318
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 236 | expr '|' expr .
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 234 | expr '|' expr .
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'^' shift, and go to state 190
'&' shift, and go to state 191
@@ -10478,38 +10468,38 @@ state 318
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 236 (expr_without_variable)
+ $default reduce using rule 234 (expr_without_variable)
state 319
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 238 | expr '^' expr .
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 236 | expr '^' expr .
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'&' shift, and go to state 191
T_IS_NOT_IDENTICAL shift, and go to state 192
@@ -10530,38 +10520,38 @@ state 319
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 238 (expr_without_variable)
+ $default reduce using rule 236 (expr_without_variable)
state 320
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 237 | expr '&' expr .
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 235 | expr '&' expr .
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_IS_NOT_IDENTICAL shift, and go to state 192
T_IS_IDENTICAL shift, and go to state 193
@@ -10581,38 +10571,38 @@ state 320
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 237 (expr_without_variable)
+ $default reduce using rule 235 (expr_without_variable)
state 321
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 252 | expr T_IS_NOT_IDENTICAL expr .
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 250 | expr T_IS_NOT_IDENTICAL expr .
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'<' shift, and go to state 196
'>' shift, and go to state 197
@@ -10633,38 +10623,38 @@ state 321
T_IS_NOT_EQUAL error (nonassociative)
T_IS_EQUAL error (nonassociative)
- $default reduce using rule 252 (expr_without_variable)
+ $default reduce using rule 250 (expr_without_variable)
state 322
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 251 | expr T_IS_IDENTICAL expr .
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 249 | expr T_IS_IDENTICAL expr .
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'<' shift, and go to state 196
'>' shift, and go to state 197
@@ -10685,38 +10675,38 @@ state 322
T_IS_NOT_EQUAL error (nonassociative)
T_IS_EQUAL error (nonassociative)
- $default reduce using rule 251 (expr_without_variable)
+ $default reduce using rule 249 (expr_without_variable)
state 323
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 254 | expr T_IS_NOT_EQUAL expr .
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 252 | expr T_IS_NOT_EQUAL expr .
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'<' shift, and go to state 196
'>' shift, and go to state 197
@@ -10737,38 +10727,38 @@ state 323
T_IS_NOT_EQUAL error (nonassociative)
T_IS_EQUAL error (nonassociative)
- $default reduce using rule 254 (expr_without_variable)
+ $default reduce using rule 252 (expr_without_variable)
state 324
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 253 | expr T_IS_EQUAL expr .
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 251 | expr T_IS_EQUAL expr .
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'<' shift, and go to state 196
'>' shift, and go to state 197
@@ -10789,38 +10779,38 @@ state 324
T_IS_NOT_EQUAL error (nonassociative)
T_IS_EQUAL error (nonassociative)
- $default reduce using rule 253 (expr_without_variable)
+ $default reduce using rule 251 (expr_without_variable)
state 325
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 255 | expr '<' expr .
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 253 | expr '<' expr .
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_SR shift, and go to state 200
T_SL shift, and go to state 201
@@ -10837,38 +10827,38 @@ state 325
T_IS_GREATER_OR_EQUAL error (nonassociative)
T_IS_SMALLER_OR_EQUAL error (nonassociative)
- $default reduce using rule 255 (expr_without_variable)
+ $default reduce using rule 253 (expr_without_variable)
state 326
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 257 | expr '>' expr .
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 255 | expr '>' expr .
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_SR shift, and go to state 200
T_SL shift, and go to state 201
@@ -10885,38 +10875,38 @@ state 326
T_IS_GREATER_OR_EQUAL error (nonassociative)
T_IS_SMALLER_OR_EQUAL error (nonassociative)
- $default reduce using rule 257 (expr_without_variable)
+ $default reduce using rule 255 (expr_without_variable)
state 327
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 258 | expr T_IS_GREATER_OR_EQUAL expr .
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 256 | expr T_IS_GREATER_OR_EQUAL expr .
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_SR shift, and go to state 200
T_SL shift, and go to state 201
@@ -10933,38 +10923,38 @@ state 327
T_IS_GREATER_OR_EQUAL error (nonassociative)
T_IS_SMALLER_OR_EQUAL error (nonassociative)
- $default reduce using rule 258 (expr_without_variable)
+ $default reduce using rule 256 (expr_without_variable)
state 328
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 256 | expr T_IS_SMALLER_OR_EQUAL expr .
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 254 | expr T_IS_SMALLER_OR_EQUAL expr .
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_SR shift, and go to state 200
T_SL shift, and go to state 201
@@ -10981,38 +10971,38 @@ state 328
T_IS_GREATER_OR_EQUAL error (nonassociative)
T_IS_SMALLER_OR_EQUAL error (nonassociative)
- $default reduce using rule 256 (expr_without_variable)
+ $default reduce using rule 254 (expr_without_variable)
state 329
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 246 | expr T_SR expr .
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 244 | expr T_SR expr .
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'+' shift, and go to state 202
'-' shift, and go to state 203
@@ -11022,38 +11012,38 @@ state 329
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 246 (expr_without_variable)
+ $default reduce using rule 244 (expr_without_variable)
state 330
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 245 | expr T_SL expr .
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 243 | expr T_SL expr .
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'+' shift, and go to state 202
'-' shift, and go to state 203
@@ -11063,239 +11053,239 @@ state 330
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 245 (expr_without_variable)
+ $default reduce using rule 243 (expr_without_variable)
state 331
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 240 | expr '+' expr .
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 238 | expr '+' expr .
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'*' shift, and go to state 205
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 240 (expr_without_variable)
+ $default reduce using rule 238 (expr_without_variable)
state 332
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 241 | expr '-' expr .
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 239 | expr '-' expr .
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'*' shift, and go to state 205
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 241 (expr_without_variable)
+ $default reduce using rule 239 (expr_without_variable)
state 333
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 239 | expr '.' expr .
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 237 | expr '.' expr .
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'*' shift, and go to state 205
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 239 (expr_without_variable)
+ $default reduce using rule 237 (expr_without_variable)
state 334
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 242 | expr '*' expr .
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 240 | expr '*' expr .
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 242 (expr_without_variable)
+ $default reduce using rule 240 (expr_without_variable)
state 335
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 243 | expr '/' expr .
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 241 | expr '/' expr .
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 243 (expr_without_variable)
+ $default reduce using rule 241 (expr_without_variable)
state 336
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 244 | expr '%' expr .
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 242 | expr '%' expr .
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 244 (expr_without_variable)
+ $default reduce using rule 242 (expr_without_variable)
state 337
- 259 expr_without_variable: expr T_INSTANCEOF class_name_reference .
+ 257 expr_without_variable: expr T_INSTANCEOF class_name_reference .
- $default reduce using rule 259 (expr_without_variable)
+ $default reduce using rule 257 (expr_without_variable)
state 338
- 206 expr_without_variable: variable '=' '&' . variable
- 208 | variable '=' '&' . T_NEW class_name_reference @42 ctor_arguments
+ 204 expr_without_variable: variable '=' '&' . variable
+ 206 | variable '=' '&' . T_NEW class_name_reference @40 ctor_arguments
T_NEW shift, and go to state 432
T_STRING shift, and go to state 120
@@ -11316,33 +11306,33 @@ state 338
state 339
- 205 expr_without_variable: variable '=' expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 203 expr_without_variable: variable '=' expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11368,38 +11358,38 @@ state 339
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 205 (expr_without_variable)
+ $default reduce using rule 203 (expr_without_variable)
state 340
- 222 expr_without_variable: variable T_SR_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 220 expr_without_variable: variable T_SR_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11425,38 +11415,38 @@ state 340
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 222 (expr_without_variable)
+ $default reduce using rule 220 (expr_without_variable)
state 341
- 221 expr_without_variable: variable T_SL_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 219 expr_without_variable: variable T_SL_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11482,38 +11472,38 @@ state 341
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 221 (expr_without_variable)
+ $default reduce using rule 219 (expr_without_variable)
state 342
- 220 expr_without_variable: variable T_XOR_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 218 expr_without_variable: variable T_XOR_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11539,38 +11529,38 @@ state 342
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 220 (expr_without_variable)
+ $default reduce using rule 218 (expr_without_variable)
state 343
- 219 expr_without_variable: variable T_OR_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 217 expr_without_variable: variable T_OR_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11596,38 +11586,38 @@ state 343
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 219 (expr_without_variable)
+ $default reduce using rule 217 (expr_without_variable)
state 344
- 218 expr_without_variable: variable T_AND_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 216 expr_without_variable: variable T_AND_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11653,38 +11643,38 @@ state 344
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 218 (expr_without_variable)
+ $default reduce using rule 216 (expr_without_variable)
state 345
- 217 expr_without_variable: variable T_MOD_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 215 expr_without_variable: variable T_MOD_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11710,38 +11700,38 @@ state 345
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 217 (expr_without_variable)
+ $default reduce using rule 215 (expr_without_variable)
state 346
- 216 expr_without_variable: variable T_CONCAT_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 214 expr_without_variable: variable T_CONCAT_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11767,38 +11757,38 @@ state 346
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 216 (expr_without_variable)
+ $default reduce using rule 214 (expr_without_variable)
state 347
- 215 expr_without_variable: variable T_DIV_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 213 expr_without_variable: variable T_DIV_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11824,38 +11814,38 @@ state 347
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 215 (expr_without_variable)
+ $default reduce using rule 213 (expr_without_variable)
state 348
- 214 expr_without_variable: variable T_MUL_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 212 expr_without_variable: variable T_MUL_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11881,38 +11871,38 @@ state 348
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 214 (expr_without_variable)
+ $default reduce using rule 212 (expr_without_variable)
state 349
- 213 expr_without_variable: variable T_MINUS_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 211 expr_without_variable: variable T_MINUS_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11938,38 +11928,38 @@ state 349
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 213 (expr_without_variable)
+ $default reduce using rule 211 (expr_without_variable)
state 350
- 212 expr_without_variable: variable T_PLUS_EQUAL expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 210 expr_without_variable: variable T_PLUS_EQUAL expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -11995,12 +11985,12 @@ state 350
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 212 (expr_without_variable)
+ $default reduce using rule 210 (expr_without_variable)
state 351
- 286 function_call: variable_without_objects '(' @54 . function_call_parameter_list ')'
+ 284 function_call: variable_without_objects '(' @52 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -12048,7 +12038,7 @@ state 351
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
function_call_parameter_list go to state 434
non_empty_function_call_parameter_list go to state 366
@@ -12074,7 +12064,7 @@ state 351
state 352
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 . object_property @60 method_or_not variable_properties
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 . object_property @58 method_or_not variable_properties
T_STRING shift, and go to state 435
T_VARIABLE shift, and go to state 33
@@ -12092,33 +12082,33 @@ state 352
state 353
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 364 dim_offset: expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 362 dim_offset: expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -12147,45 +12137,45 @@ state 353
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 364 (dim_offset)
+ $default reduce using rule 362 (dim_offset)
state 354
- 358 reference_variable: reference_variable '[' dim_offset . ']'
+ 356 reference_variable: reference_variable '[' dim_offset . ']'
']' shift, and go to state 441
state 355
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 359 reference_variable: reference_variable '{' expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 357 reference_variable: reference_variable '{' expr . '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -12218,28 +12208,28 @@ state 355
state 356
- 417 internal_functions_in_yacc: T_EVAL '(' expr ')' .
+ 415 internal_functions_in_yacc: T_EVAL '(' expr ')' .
- $default reduce using rule 417 (internal_functions_in_yacc)
+ $default reduce using rule 415 (internal_functions_in_yacc)
state 357
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @52 function_call_parameter_list ')'
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @50 function_call_parameter_list ')'
'(' shift, and go to state 424
state 358
- 352 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
+ 350 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
- $default reduce using rule 352 (static_member)
+ $default reduce using rule 350 (static_member)
state 359
- 301 ctor_arguments: '(' . function_call_parameter_list ')'
+ 299 ctor_arguments: '(' . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -12287,7 +12277,7 @@ state 359
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
function_call_parameter_list go to state 443
non_empty_function_call_parameter_list go to state 366
@@ -12313,14 +12303,14 @@ state 359
state 360
- 210 expr_without_variable: T_NEW class_name_reference @43 ctor_arguments .
+ 208 expr_without_variable: T_NEW class_name_reference @41 ctor_arguments .
- $default reduce using rule 210 (expr_without_variable)
+ $default reduce using rule 208 (expr_without_variable)
state 361
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @55 . object_property @56 dynamic_class_name_variable_properties
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 . object_property @54 dynamic_class_name_variable_properties
T_STRING shift, and go to state 435
T_VARIABLE shift, and go to state 33
@@ -12338,9 +12328,9 @@ state 361
state 362
- 299 exit_expr: '(' expr ')' .
+ 297 exit_expr: '(' expr ')' .
- $default reduce using rule 299 (exit_expr)
+ $default reduce using rule 297 (exit_expr)
state 363
@@ -12357,7 +12347,7 @@ state 363
state 364
- 155 non_empty_function_call_parameter_list: '&' . w_variable
+ 153 non_empty_function_call_parameter_list: '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -12378,52 +12368,52 @@ state 364
state 365
- 280 function_call: T_STRING '(' @51 function_call_parameter_list . ')'
+ 278 function_call: T_STRING '(' @49 function_call_parameter_list . ')'
')' shift, and go to state 448
state 366
- 151 function_call_parameter_list: non_empty_function_call_parameter_list .
- 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
- 157 | non_empty_function_call_parameter_list . ',' variable
- 158 | non_empty_function_call_parameter_list . ',' '&' w_variable
+ 149 function_call_parameter_list: non_empty_function_call_parameter_list .
+ 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
+ 155 | non_empty_function_call_parameter_list . ',' variable
+ 156 | non_empty_function_call_parameter_list . ',' '&' w_variable
',' shift, and go to state 449
- $default reduce using rule 151 (function_call_parameter_list)
+ $default reduce using rule 149 (function_call_parameter_list)
state 367
- 153 non_empty_function_call_parameter_list: expr_without_variable .
- 333 expr: expr_without_variable .
+ 151 non_empty_function_call_parameter_list: expr_without_variable .
+ 331 expr: expr_without_variable .
- ',' reduce using rule 153 (non_empty_function_call_parameter_list)
- ')' reduce using rule 153 (non_empty_function_call_parameter_list)
- $default reduce using rule 333 (expr)
+ ',' reduce using rule 151 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 151 (non_empty_function_call_parameter_list)
+ $default reduce using rule 331 (expr)
state 368
- 154 non_empty_function_call_parameter_list: variable .
- 205 expr_without_variable: variable . '=' expr
- 206 | variable . '=' '&' variable
- 208 | variable . '=' '&' T_NEW class_name_reference @42 ctor_arguments
- 212 | variable . T_PLUS_EQUAL expr
- 213 | variable . T_MINUS_EQUAL expr
- 214 | variable . T_MUL_EQUAL expr
- 215 | variable . T_DIV_EQUAL expr
- 216 | variable . T_CONCAT_EQUAL expr
- 217 | variable . T_MOD_EQUAL expr
- 218 | variable . T_AND_EQUAL expr
- 219 | variable . T_OR_EQUAL expr
- 220 | variable . T_XOR_EQUAL expr
- 221 | variable . T_SL_EQUAL expr
- 222 | variable . T_SR_EQUAL expr
- 334 r_variable: variable .
- 338 rw_variable: variable . @58
+ 152 non_empty_function_call_parameter_list: variable .
+ 203 expr_without_variable: variable . '=' expr
+ 204 | variable . '=' '&' variable
+ 206 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 210 | variable . T_PLUS_EQUAL expr
+ 211 | variable . T_MINUS_EQUAL expr
+ 212 | variable . T_MUL_EQUAL expr
+ 213 | variable . T_DIV_EQUAL expr
+ 214 | variable . T_CONCAT_EQUAL expr
+ 215 | variable . T_MOD_EQUAL expr
+ 216 | variable . T_AND_EQUAL expr
+ 217 | variable . T_OR_EQUAL expr
+ 218 | variable . T_XOR_EQUAL expr
+ 219 | variable . T_SL_EQUAL expr
+ 220 | variable . T_SR_EQUAL expr
+ 332 r_variable: variable .
+ 336 rw_variable: variable . @56
'=' shift, and go to state 212
T_SR_EQUAL shift, and go to state 213
@@ -12438,44 +12428,44 @@ state 368
T_MINUS_EQUAL shift, and go to state 222
T_PLUS_EQUAL shift, and go to state 223
- ',' reduce using rule 154 (non_empty_function_call_parameter_list)
- T_DEC reduce using rule 337 (@58)
- T_INC reduce using rule 337 (@58)
- ')' reduce using rule 154 (non_empty_function_call_parameter_list)
- $default reduce using rule 334 (r_variable)
+ ',' reduce using rule 152 (non_empty_function_call_parameter_list)
+ T_DEC reduce using rule 335 (@56)
+ T_INC reduce using rule 335 (@56)
+ ')' reduce using rule 152 (non_empty_function_call_parameter_list)
+ $default reduce using rule 332 (r_variable)
- @58 go to state 224
+ @56 go to state 224
state 369
- 196 echo_expr_list: echo_expr_list ',' expr .
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 194 echo_expr_list: echo_expr_list ',' expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -12504,7 +12494,7 @@ state 369
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 196 (echo_expr_list)
+ $default reduce using rule 194 (echo_expr_list)
state 370
@@ -12517,32 +12507,32 @@ state 370
state 371
26 unticked_statement: T_WHILE '(' @7 expr . ')' @8 while_statement
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -12584,38 +12574,42 @@ state 372
state 373
- 201 non_empty_for_expr: non_empty_for_expr ',' . @40 expr
+ 199 non_empty_for_expr: non_empty_for_expr ',' . @38 expr
- $default reduce using rule 200 (@40)
+ $default reduce using rule 198 (@38)
- @40 go to state 453
+ @38 go to state 453
state 374
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 . T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS . @17 variable foreach_optional_arg ')' @18 foreach_statement
+
+ $default reduce using rule 53 (@17)
- T_AS shift, and go to state 454
+ @17 go to state 454
state 375
- 53 unticked_statement: T_FOREACH '(' variable @15 . T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
+ 52 unticked_statement: T_FOREACH '(' variable T_AS . @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement
- T_AS shift, and go to state 455
+ $default reduce using rule 50 (@15)
+
+ @15 go to state 455
state 376
- 113 declare_list: T_STRING . '=' static_scalar
+ 111 declare_list: T_STRING . '=' static_scalar
'=' shift, and go to state 456
state 377
- 59 unticked_statement: T_DECLARE @21 '(' declare_list . ')' declare_statement
- 114 declare_list: declare_list . ',' T_STRING '=' static_scalar
+ 57 unticked_statement: T_DECLARE @19 '(' declare_list . ')' declare_statement
+ 112 declare_list: declare_list . ',' T_STRING '=' static_scalar
',' shift, and go to state 457
')' shift, and go to state 458
@@ -12632,17 +12626,17 @@ state 378
state 379
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING . @30 '(' parameter_list ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING . @28 '(' parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 85 (@30)
+ $default reduce using rule 83 (@28)
- @30 go to state 460
+ @28 go to state 460
state 380
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list . '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list . '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
'}' shift, and go to state 461
@@ -12653,40 +12647,40 @@ state 380
state 381
- 79 use_filename: '(' T_CONSTANT_ENCAPSED_STRING ')' .
+ 77 use_filename: '(' T_CONSTANT_ENCAPSED_STRING ')' .
- $default reduce using rule 79 (use_filename)
+ $default reduce using rule 77 (use_filename)
state 382
- 163 global_var: '$' '{' expr . '}'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 161 global_var: '$' '{' expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -12719,14 +12713,14 @@ state 382
state 383
- 159 global_var_list: global_var_list ',' global_var .
+ 157 global_var_list: global_var_list ',' global_var .
- $default reduce using rule 159 (global_var_list)
+ $default reduce using rule 157 (global_var_list)
state 384
- 312 static_scalar: '+' . static_scalar
+ 310 static_scalar: '+' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -12748,7 +12742,7 @@ state 384
state 385
- 313 static_scalar: '-' . static_scalar
+ 311 static_scalar: '-' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -12770,55 +12764,55 @@ state 385
state 386
- 311 static_scalar: T_STRING .
- 316 static_class_constant: T_STRING . T_PAAMAYIM_NEKUDOTAYIM T_STRING
+ 309 static_scalar: T_STRING .
+ 314 static_class_constant: T_STRING . T_PAAMAYIM_NEKUDOTAYIM T_STRING
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 465
- $default reduce using rule 311 (static_scalar)
+ $default reduce using rule 309 (static_scalar)
state 387
- 314 static_scalar: T_ARRAY . '(' static_array_pair_list ')'
+ 312 static_scalar: T_ARRAY . '(' static_array_pair_list ')'
'(' shift, and go to state 466
state 388
- 310 static_scalar: common_scalar .
+ 308 static_scalar: common_scalar .
- $default reduce using rule 310 (static_scalar)
+ $default reduce using rule 308 (static_scalar)
state 389
- 167 static_var_list: T_VARIABLE '=' static_scalar .
+ 165 static_var_list: T_VARIABLE '=' static_scalar .
- $default reduce using rule 167 (static_var_list)
+ $default reduce using rule 165 (static_var_list)
state 390
- 315 static_scalar: static_class_constant .
+ 313 static_scalar: static_class_constant .
- $default reduce using rule 315 (static_scalar)
+ $default reduce using rule 313 (static_scalar)
state 391
- 164 static_var_list: static_var_list ',' T_VARIABLE .
- 165 | static_var_list ',' T_VARIABLE . '=' static_scalar
+ 162 static_var_list: static_var_list ',' T_VARIABLE .
+ 163 | static_var_list ',' T_VARIABLE . '=' static_scalar
'=' shift, and go to state 467
- $default reduce using rule 164 (static_var_list)
+ $default reduce using rule 162 (static_var_list)
state 392
- 76 unset_variables: unset_variables ',' . unset_variable
+ 74 unset_variables: unset_variables ',' . unset_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -12846,25 +12840,25 @@ state 393
state 394
- 422 isset_variables: isset_variables ',' . @66 variable
+ 420 isset_variables: isset_variables ',' . @64 variable
- $default reduce using rule 421 (@66)
+ $default reduce using rule 419 (@64)
- @66 go to state 470
+ @64 go to state 470
state 395
- 413 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' .
+ 411 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' .
- $default reduce using rule 413 (internal_functions_in_yacc)
+ $default reduce using rule 411 (internal_functions_in_yacc)
state 396
- 414 internal_functions_in_yacc: T_EMPTY '(' variable ')' .
+ 412 internal_functions_in_yacc: T_EMPTY '(' variable ')' .
- $default reduce using rule 414 (internal_functions_in_yacc)
+ $default reduce using rule 412 (internal_functions_in_yacc)
state 397
@@ -12876,22 +12870,22 @@ state 397
state 398
- 379 assignment_list_element: T_LIST . '(' @64 assignment_list ')'
+ 377 assignment_list_element: T_LIST . '(' @62 assignment_list ')'
'(' shift, and go to state 471
state 399
- 377 assignment_list_element: variable .
+ 375 assignment_list_element: variable .
- $default reduce using rule 377 (assignment_list_element)
+ $default reduce using rule 375 (assignment_list_element)
state 400
- 204 expr_without_variable: T_LIST '(' @41 assignment_list . ')' '=' expr
- 375 assignment_list: assignment_list . ',' assignment_list_element
+ 202 expr_without_variable: T_LIST '(' @39 assignment_list . ')' '=' expr
+ 373 assignment_list: assignment_list . ',' assignment_list_element
',' shift, and go to state 472
')' shift, and go to state 473
@@ -12899,31 +12893,31 @@ state 400
state 401
- 376 assignment_list: assignment_list_element .
+ 374 assignment_list: assignment_list_element .
- $default reduce using rule 376 (assignment_list)
+ $default reduce using rule 374 (assignment_list)
state 402
- 390 non_empty_array_pair_list: '&' w_variable .
+ 388 non_empty_array_pair_list: '&' w_variable .
- $default reduce using rule 390 (non_empty_array_pair_list)
+ $default reduce using rule 388 (non_empty_array_pair_list)
state 403
- 336 w_variable: variable . @57
+ 334 w_variable: variable . @55
- $default reduce using rule 335 (@57)
+ $default reduce using rule 333 (@55)
- @57 go to state 474
+ @55 go to state 474
state 404
- 385 non_empty_array_pair_list: expr T_DOUBLE_ARROW . expr
- 389 | expr T_DOUBLE_ARROW . '&' w_variable
+ 383 non_empty_array_pair_list: expr T_DOUBLE_ARROW . expr
+ 387 | expr T_DOUBLE_ARROW . '&' w_variable
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -12993,18 +12987,18 @@ state 404
state 405
- 276 expr_without_variable: T_ARRAY '(' array_pair_list ')' .
+ 274 expr_without_variable: T_ARRAY '(' array_pair_list ')' .
- $default reduce using rule 276 (expr_without_variable)
+ $default reduce using rule 274 (expr_without_variable)
state 406
- 327 possible_comma: ',' .
- 383 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW expr
- 384 | non_empty_array_pair_list ',' . expr
- 387 | non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW '&' w_variable
- 388 | non_empty_array_pair_list ',' . '&' w_variable
+ 325 possible_comma: ',' .
+ 381 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW expr
+ 382 | non_empty_array_pair_list ',' . expr
+ 385 | non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW '&' w_variable
+ 386 | non_empty_array_pair_list ',' . '&' w_variable
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -13052,7 +13046,7 @@ state 406
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 327 (possible_comma)
+ $default reduce using rule 325 (possible_comma)
expr_without_variable go to state 84
function_call go to state 85
@@ -13076,66 +13070,66 @@ state 406
state 407
- 382 array_pair_list: non_empty_array_pair_list possible_comma .
+ 380 array_pair_list: non_empty_array_pair_list possible_comma .
- $default reduce using rule 382 (array_pair_list)
+ $default reduce using rule 380 (array_pair_list)
state 408
- 405 encaps_var: T_VARIABLE '[' . @65 encaps_var_offset ']'
+ 403 encaps_var: T_VARIABLE '[' . @63 encaps_var_offset ']'
- $default reduce using rule 404 (@65)
+ $default reduce using rule 402 (@63)
- @65 go to state 479
+ @63 go to state 479
state 409
- 406 encaps_var: T_VARIABLE T_OBJECT_OPERATOR . T_STRING
+ 404 encaps_var: T_VARIABLE T_OBJECT_OPERATOR . T_STRING
T_STRING shift, and go to state 480
state 410
- 318 scalar: T_STRING_VARNAME .
- 408 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME . '[' expr ']' '}'
+ 316 scalar: T_STRING_VARNAME .
+ 406 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME . '[' expr ']' '}'
'[' shift, and go to state 481
- $default reduce using rule 318 (scalar)
+ $default reduce using rule 316 (scalar)
state 411
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 407 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 405 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr . '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -13168,7 +13162,7 @@ state 411
state 412
- 409 encaps_var: T_CURLY_OPEN variable . '}'
+ 407 encaps_var: T_CURLY_OPEN variable . '}'
'}' shift, and go to state 483
@@ -13210,39 +13204,39 @@ state 417
state 418
- 362 compound_variable: '$' '{' expr '}' .
+ 360 compound_variable: '$' '{' expr '}' .
- $default reduce using rule 362 (compound_variable)
+ $default reduce using rule 360 (compound_variable)
state 419
- 287 fully_qualified_class_name: T_STRING .
+ 285 fully_qualified_class_name: T_STRING .
- $default reduce using rule 287 (fully_qualified_class_name)
+ $default reduce using rule 285 (fully_qualified_class_name)
state 420
- 95 extends_from: T_EXTENDS fully_qualified_class_name .
+ 93 extends_from: T_EXTENDS fully_qualified_class_name .
- $default reduce using rule 95 (extends_from)
+ $default reduce using rule 93 (extends_from)
state 421
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 . implements_list '{' class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 . implements_list '{' class_statement_list '}'
T_IMPLEMENTS shift, and go to state 485
- $default reduce using rule 99 (implements_list)
+ $default reduce using rule 97 (implements_list)
implements_list go to state 486
state 422
- 98 interface_extends_list: T_EXTENDS . interface_list
+ 96 interface_extends_list: T_EXTENDS . interface_list
T_STRING shift, and go to state 419
@@ -13252,70 +13246,70 @@ state 422
state 423
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 interface_extends_list . '{' class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list . '{' class_statement_list '}'
'{' shift, and go to state 489
state 424
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . @52 function_call_parameter_list ')'
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . @50 function_call_parameter_list ')'
- $default reduce using rule 281 (@52)
+ $default reduce using rule 279 (@50)
- @52 go to state 490
+ @50 go to state 490
state 425
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . @53 function_call_parameter_list ')'
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . @51 function_call_parameter_list ')'
- $default reduce using rule 283 (@53)
+ $default reduce using rule 281 (@51)
- @53 go to state 491
+ @51 go to state 491
state 426
- 351 variable_without_objects: simple_indirect_reference reference_variable .
- 358 reference_variable: reference_variable . '[' dim_offset ']'
- 359 | reference_variable . '{' expr '}'
+ 349 variable_without_objects: simple_indirect_reference reference_variable .
+ 356 reference_variable: reference_variable . '[' dim_offset ']'
+ 357 | reference_variable . '{' expr '}'
'[' shift, and go to state 227
'{' shift, and go to state 228
- $default reduce using rule 351 (variable_without_objects)
+ $default reduce using rule 349 (variable_without_objects)
state 427
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 232 | expr T_LOGICAL_OR @46 expr .
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 230 | expr T_LOGICAL_OR @44 expr .
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_XOR shift, and go to state 184
T_LOGICAL_AND shift, and go to state 185
@@ -13343,38 +13337,38 @@ state 427
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 232 (expr_without_variable)
+ $default reduce using rule 230 (expr_without_variable)
state 428
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 234 | expr T_LOGICAL_AND @47 expr .
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 232 | expr T_LOGICAL_AND @45 expr .
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -13400,38 +13394,38 @@ state 428
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 234 (expr_without_variable)
+ $default reduce using rule 232 (expr_without_variable)
state 429
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 263 | expr '?' @48 expr . ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 261 | expr '?' @46 expr . ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -13464,33 +13458,33 @@ state 429
state 430
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 228 | expr T_BOOLEAN_OR @44 expr .
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 226 | expr T_BOOLEAN_OR @42 expr .
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_BOOLEAN_AND shift, and go to state 188
'|' shift, and go to state 189
@@ -13514,38 +13508,38 @@ state 430
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 228 (expr_without_variable)
+ $default reduce using rule 226 (expr_without_variable)
state 431
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 230 | expr T_BOOLEAN_AND @45 expr .
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 228 | expr T_BOOLEAN_AND @43 expr .
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'|' shift, and go to state 189
'^' shift, and go to state 190
@@ -13568,12 +13562,12 @@ state 431
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 230 (expr_without_variable)
+ $default reduce using rule 228 (expr_without_variable)
state 432
- 208 expr_without_variable: variable '=' '&' T_NEW . class_name_reference @42 ctor_arguments
+ 206 expr_without_variable: variable '=' '&' T_NEW . class_name_reference @40 ctor_arguments
T_STRING shift, and go to state 126
T_VARIABLE shift, and go to state 33
@@ -13591,28 +13585,28 @@ state 432
state 433
- 206 expr_without_variable: variable '=' '&' variable .
+ 204 expr_without_variable: variable '=' '&' variable .
- $default reduce using rule 206 (expr_without_variable)
+ $default reduce using rule 204 (expr_without_variable)
state 434
- 286 function_call: variable_without_objects '(' @54 function_call_parameter_list . ')'
+ 284 function_call: variable_without_objects '(' @52 function_call_parameter_list . ')'
')' shift, and go to state 494
state 435
- 371 variable_name: T_STRING .
+ 369 variable_name: T_STRING .
- $default reduce using rule 371 (variable_name)
+ $default reduce using rule 369 (variable_name)
state 436
- 372 variable_name: '{' . expr '}'
+ 370 variable_name: '{' . expr '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -13681,69 +13675,69 @@ state 436
state 437
- 367 object_property: variable_without_objects . @63
+ 365 object_property: variable_without_objects . @61
- $default reduce using rule 366 (@63)
+ $default reduce using rule 364 (@61)
- @63 go to state 496
+ @61 go to state 496
state 438
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 object_property . @60 method_or_not variable_properties
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property . @58 method_or_not variable_properties
- $default reduce using rule 340 (@60)
+ $default reduce using rule 338 (@58)
- @60 go to state 497
+ @58 go to state 497
state 439
- 365 object_property: object_dim_list .
- 368 object_dim_list: object_dim_list . '[' dim_offset ']'
- 369 | object_dim_list . '{' expr '}'
+ 363 object_property: object_dim_list .
+ 366 object_dim_list: object_dim_list . '[' dim_offset ']'
+ 367 | object_dim_list . '{' expr '}'
'[' shift, and go to state 498
'{' shift, and go to state 499
- $default reduce using rule 365 (object_property)
+ $default reduce using rule 363 (object_property)
state 440
- 370 object_dim_list: variable_name .
+ 368 object_dim_list: variable_name .
- $default reduce using rule 370 (object_dim_list)
+ $default reduce using rule 368 (object_dim_list)
state 441
- 358 reference_variable: reference_variable '[' dim_offset ']' .
+ 356 reference_variable: reference_variable '[' dim_offset ']' .
- $default reduce using rule 358 (reference_variable)
+ $default reduce using rule 356 (reference_variable)
state 442
- 359 reference_variable: reference_variable '{' expr '}' .
+ 357 reference_variable: reference_variable '{' expr '}' .
- $default reduce using rule 359 (reference_variable)
+ $default reduce using rule 357 (reference_variable)
state 443
- 301 ctor_arguments: '(' function_call_parameter_list . ')'
+ 299 ctor_arguments: '(' function_call_parameter_list . ')'
')' shift, and go to state 500
state 444
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @55 object_property . @56 dynamic_class_name_variable_properties
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property . @54 dynamic_class_name_variable_properties
- $default reduce using rule 291 (@56)
+ $default reduce using rule 289 (@54)
- @56 go to state 501
+ @54 go to state 501
state 445
@@ -13848,23 +13842,23 @@ state 446
state 447
- 155 non_empty_function_call_parameter_list: '&' w_variable .
+ 153 non_empty_function_call_parameter_list: '&' w_variable .
- $default reduce using rule 155 (non_empty_function_call_parameter_list)
+ $default reduce using rule 153 (non_empty_function_call_parameter_list)
state 448
- 280 function_call: T_STRING '(' @51 function_call_parameter_list ')' .
+ 278 function_call: T_STRING '(' @49 function_call_parameter_list ')' .
- $default reduce using rule 280 (function_call)
+ $default reduce using rule 278 (function_call)
state 449
- 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
- 157 | non_empty_function_call_parameter_list ',' . variable
- 158 | non_empty_function_call_parameter_list ',' . '&' w_variable
+ 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
+ 155 | non_empty_function_call_parameter_list ',' . variable
+ 156 | non_empty_function_call_parameter_list ',' . '&' w_variable
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -13999,7 +13993,7 @@ state 452
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 198 (for_expr)
+ $default reduce using rule 196 (for_expr)
for_expr go to state 509
non_empty_for_expr go to state 247
@@ -14025,7 +14019,7 @@ state 452
state 453
- 201 non_empty_for_expr: non_empty_for_expr ',' @40 . expr
+ 199 non_empty_for_expr: non_empty_for_expr ',' @38 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14094,25 +14088,49 @@ state 453
state 454
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS . @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 . variable foreach_optional_arg ')' @18 foreach_statement
- $default reduce using rule 55 (@19)
+ T_STRING shift, and go to state 120
+ T_VARIABLE shift, and go to state 33
+ '$' shift, and go to state 71
- @19 go to state 511
+ function_call go to state 85
+ fully_qualified_class_name go to state 121
+ variable go to state 511
+ variable_without_objects go to state 93
+ static_member go to state 94
+ base_variable_with_function_calls go to state 95
+ base_variable go to state 96
+ reference_variable go to state 97
+ compound_variable go to state 98
+ simple_indirect_reference go to state 99
state 455
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS . @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 . foreach_variable foreach_optional_arg ')' @16 foreach_statement
- $default reduce using rule 51 (@16)
+ '&' shift, and go to state 512
+ T_STRING shift, and go to state 120
+ T_VARIABLE shift, and go to state 33
+ '$' shift, and go to state 71
- @16 go to state 512
+ foreach_variable go to state 513
+ function_call go to state 85
+ fully_qualified_class_name go to state 121
+ variable go to state 514
+ variable_without_objects go to state 93
+ static_member go to state 94
+ base_variable_with_function_calls go to state 95
+ base_variable go to state 96
+ reference_variable go to state 97
+ compound_variable go to state 98
+ simple_indirect_reference go to state 99
state 456
- 113 declare_list: T_STRING '=' . static_scalar
+ 111 declare_list: T_STRING '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -14128,20 +14146,20 @@ state 456
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 513
+ static_scalar go to state 515
static_class_constant go to state 390
state 457
- 114 declare_list: declare_list ',' . T_STRING '=' static_scalar
+ 112 declare_list: declare_list ',' . T_STRING '=' static_scalar
- T_STRING shift, and go to state 514
+ T_STRING shift, and go to state 516
state 458
- 59 unticked_statement: T_DECLARE @21 '(' declare_list ')' . declare_statement
+ 57 unticked_statement: T_DECLARE @19 '(' declare_list ')' . declare_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14149,7 +14167,7 @@ state 458
T_INCLUDE_ONCE shift, and go to state 8
T_INCLUDE shift, and go to state 9
T_PRINT shift, and go to state 10
- ':' shift, and go to state 515
+ ':' shift, and go to state 517
'+' shift, and go to state 11
'-' shift, and go to state 12
'!' shift, and go to state 13
@@ -14209,9 +14227,9 @@ state 458
'"' shift, and go to state 73
''' shift, and go to state 74
- statement go to state 516
+ statement go to state 518
unticked_statement go to state 77
- declare_statement go to state 517
+ declare_statement go to state 519
expr_without_variable go to state 84
function_call go to state 85
fully_qualified_class_name go to state 86
@@ -14236,57 +14254,57 @@ state 459
35 unticked_statement: T_SWITCH '(' expr ')' @14 . switch_case_list
- ':' shift, and go to state 518
- '{' shift, and go to state 519
+ ':' shift, and go to state 520
+ '{' shift, and go to state 521
- switch_case_list go to state 520
+ switch_case_list go to state 522
state 460
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 . '(' parameter_list ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 . '(' parameter_list ')' '{' inner_statement_list '}'
- '(' shift, and go to state 521
+ '(' shift, and go to state 523
state 461
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' . T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' . T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
- T_CATCH shift, and go to state 522
+ T_CATCH shift, and go to state 524
state 462
- 163 global_var: '$' '{' expr '}' .
+ 161 global_var: '$' '{' expr '}' .
- $default reduce using rule 163 (global_var)
+ $default reduce using rule 161 (global_var)
state 463
- 312 static_scalar: '+' static_scalar .
+ 310 static_scalar: '+' static_scalar .
- $default reduce using rule 312 (static_scalar)
+ $default reduce using rule 310 (static_scalar)
state 464
- 313 static_scalar: '-' static_scalar .
+ 311 static_scalar: '-' static_scalar .
- $default reduce using rule 313 (static_scalar)
+ $default reduce using rule 311 (static_scalar)
state 465
- 316 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM . T_STRING
+ 314 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM . T_STRING
- T_STRING shift, and go to state 523
+ T_STRING shift, and go to state 525
state 466
- 314 static_scalar: T_ARRAY '(' . static_array_pair_list ')'
+ 312 static_scalar: T_ARRAY '(' . static_array_pair_list ')'
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -14301,18 +14319,18 @@ state 466
T_LINE shift, and go to state 65
T_FILE shift, and go to state 66
- $default reduce using rule 324 (static_array_pair_list)
+ $default reduce using rule 322 (static_array_pair_list)
common_scalar go to state 388
- static_scalar go to state 524
+ static_scalar go to state 526
static_class_constant go to state 390
- static_array_pair_list go to state 525
- non_empty_static_array_pair_list go to state 526
+ static_array_pair_list go to state 527
+ non_empty_static_array_pair_list go to state 528
state 467
- 165 static_var_list: static_var_list ',' T_VARIABLE '=' . static_scalar
+ 163 static_var_list: static_var_list ',' T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -14328,15 +14346,15 @@ state 467
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 527
+ static_scalar go to state 529
static_class_constant go to state 390
state 468
- 76 unset_variables: unset_variables ',' unset_variable .
+ 74 unset_variables: unset_variables ',' unset_variable .
- $default reduce using rule 76 (unset_variables)
+ $default reduce using rule 74 (unset_variables)
state 469
@@ -14348,7 +14366,7 @@ state 469
state 470
- 422 isset_variables: isset_variables ',' @66 . variable
+ 420 isset_variables: isset_variables ',' @64 . variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -14356,7 +14374,7 @@ state 470
function_call go to state 85
fully_qualified_class_name go to state 121
- variable go to state 528
+ variable go to state 530
variable_without_objects go to state 93
static_member go to state 94
base_variable_with_function_calls go to state 95
@@ -14368,23 +14386,23 @@ state 470
state 471
- 379 assignment_list_element: T_LIST '(' . @64 assignment_list ')'
+ 377 assignment_list_element: T_LIST '(' . @62 assignment_list ')'
- $default reduce using rule 378 (@64)
+ $default reduce using rule 376 (@62)
- @64 go to state 529
+ @62 go to state 531
state 472
- 375 assignment_list: assignment_list ',' . assignment_list_element
+ 373 assignment_list: assignment_list ',' . assignment_list_element
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
T_LIST shift, and go to state 398
'$' shift, and go to state 71
- $default reduce using rule 380 (assignment_list_element)
+ $default reduce using rule 378 (assignment_list_element)
function_call go to state 85
fully_qualified_class_name go to state 121
@@ -14396,26 +14414,26 @@ state 472
reference_variable go to state 97
compound_variable go to state 98
simple_indirect_reference go to state 99
- assignment_list_element go to state 530
+ assignment_list_element go to state 532
state 473
- 204 expr_without_variable: T_LIST '(' @41 assignment_list ')' . '=' expr
+ 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' . '=' expr
- '=' shift, and go to state 531
+ '=' shift, and go to state 533
state 474
- 336 w_variable: variable @57 .
+ 334 w_variable: variable @55 .
- $default reduce using rule 336 (w_variable)
+ $default reduce using rule 334 (w_variable)
state 475
- 389 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' . w_variable
+ 387 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -14423,7 +14441,7 @@ state 475
function_call go to state 85
fully_qualified_class_name go to state 121
- w_variable go to state 532
+ w_variable go to state 534
variable go to state 403
variable_without_objects go to state 93
static_member go to state 94
@@ -14436,33 +14454,33 @@ state 475
state 476
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 385 non_empty_array_pair_list: expr T_DOUBLE_ARROW expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 383 non_empty_array_pair_list: expr T_DOUBLE_ARROW expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -14491,12 +14509,12 @@ state 476
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 385 (non_empty_array_pair_list)
+ $default reduce using rule 383 (non_empty_array_pair_list)
state 477
- 388 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
+ 386 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -14504,7 +14522,7 @@ state 477
function_call go to state 85
fully_qualified_class_name go to state 121
- w_variable go to state 533
+ w_variable go to state 535
variable go to state 403
variable_without_objects go to state 93
static_member go to state 94
@@ -14517,35 +14535,35 @@ state 477
state 478
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 383 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW expr
- 384 | non_empty_array_pair_list ',' expr .
- 387 | non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW '&' w_variable
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 381 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW expr
+ 382 | non_empty_array_pair_list ',' expr .
+ 385 | non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW '&' w_variable
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -14573,32 +14591,32 @@ state 478
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- T_DOUBLE_ARROW shift, and go to state 534
+ T_DOUBLE_ARROW shift, and go to state 536
- $default reduce using rule 384 (non_empty_array_pair_list)
+ $default reduce using rule 382 (non_empty_array_pair_list)
state 479
- 405 encaps_var: T_VARIABLE '[' @65 . encaps_var_offset ']'
+ 403 encaps_var: T_VARIABLE '[' @63 . encaps_var_offset ']'
- T_STRING shift, and go to state 535
- T_VARIABLE shift, and go to state 536
- T_NUM_STRING shift, and go to state 537
+ T_STRING shift, and go to state 537
+ T_VARIABLE shift, and go to state 538
+ T_NUM_STRING shift, and go to state 539
- encaps_var_offset go to state 538
+ encaps_var_offset go to state 540
state 480
- 406 encaps_var: T_VARIABLE T_OBJECT_OPERATOR T_STRING .
+ 404 encaps_var: T_VARIABLE T_OBJECT_OPERATOR T_STRING .
- $default reduce using rule 406 (encaps_var)
+ $default reduce using rule 404 (encaps_var)
state 481
- 408 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' . expr ']' '}'
+ 406 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' . expr ']' '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14650,7 +14668,7 @@ state 481
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 539
+ expr go to state 541
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -14667,71 +14685,71 @@ state 481
state 482
- 407 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr '}' .
+ 405 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr '}' .
- $default reduce using rule 407 (encaps_var)
+ $default reduce using rule 405 (encaps_var)
state 483
- 409 encaps_var: T_CURLY_OPEN variable '}' .
+ 407 encaps_var: T_CURLY_OPEN variable '}' .
- $default reduce using rule 409 (encaps_var)
+ $default reduce using rule 407 (encaps_var)
state 484
15 inner_statement: T_HALT_COMPILER '(' . ')' ';'
- ')' shift, and go to state 540
+ ')' shift, and go to state 542
state 485
- 100 implements_list: T_IMPLEMENTS . interface_list
+ 98 implements_list: T_IMPLEMENTS . interface_list
T_STRING shift, and go to state 419
- interface_list go to state 541
+ interface_list go to state 543
fully_qualified_class_name go to state 488
state 486
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 implements_list . '{' class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list . '{' class_statement_list '}'
- '{' shift, and go to state 542
+ '{' shift, and go to state 544
state 487
- 98 interface_extends_list: T_EXTENDS interface_list .
- 102 interface_list: interface_list . ',' fully_qualified_class_name
+ 96 interface_extends_list: T_EXTENDS interface_list .
+ 100 interface_list: interface_list . ',' fully_qualified_class_name
- ',' shift, and go to state 543
+ ',' shift, and go to state 545
- $default reduce using rule 98 (interface_extends_list)
+ $default reduce using rule 96 (interface_extends_list)
state 488
- 101 interface_list: fully_qualified_class_name .
+ 99 interface_list: fully_qualified_class_name .
- $default reduce using rule 101 (interface_list)
+ $default reduce using rule 99 (interface_list)
state 489
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 interface_extends_list '{' . class_statement_list '}'
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' . class_statement_list '}'
- $default reduce using rule 169 (class_statement_list)
+ $default reduce using rule 167 (class_statement_list)
- class_statement_list go to state 544
+ class_statement_list go to state 546
state 490
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 . function_call_parameter_list ')'
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14779,9 +14797,9 @@ state 490
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
- function_call_parameter_list go to state 545
+ function_call_parameter_list go to state 547
non_empty_function_call_parameter_list go to state 366
expr_without_variable go to state 367
function_call go to state 85
@@ -14805,7 +14823,7 @@ state 490
state 491
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 . function_call_parameter_list ')'
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14853,9 +14871,9 @@ state 491
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
- function_call_parameter_list go to state 546
+ function_call_parameter_list go to state 548
non_empty_function_call_parameter_list go to state 366
expr_without_variable go to state 367
function_call go to state 85
@@ -14879,58 +14897,58 @@ state 491
state 492
- 263 expr_without_variable: expr '?' @48 expr ':' . @49 expr
+ 261 expr_without_variable: expr '?' @46 expr ':' . @47 expr
- $default reduce using rule 262 (@49)
+ $default reduce using rule 260 (@47)
- @49 go to state 547
+ @47 go to state 549
state 493
- 208 expr_without_variable: variable '=' '&' T_NEW class_name_reference . @42 ctor_arguments
+ 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference . @40 ctor_arguments
- $default reduce using rule 207 (@42)
+ $default reduce using rule 205 (@40)
- @42 go to state 548
+ @40 go to state 550
state 494
- 286 function_call: variable_without_objects '(' @54 function_call_parameter_list ')' .
+ 284 function_call: variable_without_objects '(' @52 function_call_parameter_list ')' .
- $default reduce using rule 286 (function_call)
+ $default reduce using rule 284 (function_call)
state 495
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 372 variable_name: '{' expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 370 variable_name: '{' expr . '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -14958,30 +14976,30 @@ state 495
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- '}' shift, and go to state 549
+ '}' shift, and go to state 551
state 496
- 367 object_property: variable_without_objects @63 .
+ 365 object_property: variable_without_objects @61 .
- $default reduce using rule 367 (object_property)
+ $default reduce using rule 365 (object_property)
state 497
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 object_property @60 . method_or_not variable_properties
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 . method_or_not variable_properties
- '(' shift, and go to state 550
+ '(' shift, and go to state 552
- $default reduce using rule 349 (method_or_not)
+ $default reduce using rule 347 (method_or_not)
- method_or_not go to state 551
+ method_or_not go to state 553
state 498
- 368 object_dim_list: object_dim_list '[' . dim_offset ']'
+ 366 object_dim_list: object_dim_list '[' . dim_offset ']'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15028,7 +15046,7 @@ state 498
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 363 (dim_offset)
+ $default reduce using rule 361 (dim_offset)
expr_without_variable go to state 84
function_call go to state 85
@@ -15045,7 +15063,7 @@ state 498
base_variable go to state 96
reference_variable go to state 97
compound_variable go to state 98
- dim_offset go to state 552
+ dim_offset go to state 554
simple_indirect_reference go to state 99
internal_functions_in_yacc go to state 100
class_constant go to state 101
@@ -15053,7 +15071,7 @@ state 498
state 499
- 369 object_dim_list: object_dim_list '{' . expr '}'
+ 367 object_dim_list: object_dim_list '{' . expr '}'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15105,7 +15123,7 @@ state 499
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 553
+ expr go to state 555
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -15122,18 +15140,18 @@ state 499
state 500
- 301 ctor_arguments: '(' function_call_parameter_list ')' .
+ 299 ctor_arguments: '(' function_call_parameter_list ')' .
- $default reduce using rule 301 (ctor_arguments)
+ $default reduce using rule 299 (ctor_arguments)
state 501
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @55 object_property @56 . dynamic_class_name_variable_properties
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property @54 . dynamic_class_name_variable_properties
- $default reduce using rule 295 (dynamic_class_name_variable_properties)
+ $default reduce using rule 293 (dynamic_class_name_variable_properties)
- dynamic_class_name_variable_properties go to state 554
+ dynamic_class_name_variable_properties go to state 556
state 502
@@ -15142,7 +15160,7 @@ state 502
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 555
+ inner_statement_list go to state 557
state 503
@@ -15151,12 +15169,12 @@ state 503
$default reduce using rule 19 (@4)
- @4 go to state 556
+ @4 go to state 558
state 504
- 158 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
+ 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -15164,7 +15182,7 @@ state 504
function_call go to state 85
fully_qualified_class_name go to state 121
- w_variable go to state 557
+ w_variable go to state 559
variable go to state 403
variable_without_objects go to state 93
static_member go to state 94
@@ -15177,33 +15195,33 @@ state 504
state 505
- 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
- 333 expr: expr_without_variable .
+ 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
+ 331 expr: expr_without_variable .
- ',' reduce using rule 156 (non_empty_function_call_parameter_list)
- ')' reduce using rule 156 (non_empty_function_call_parameter_list)
- $default reduce using rule 333 (expr)
+ ',' reduce using rule 154 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 154 (non_empty_function_call_parameter_list)
+ $default reduce using rule 331 (expr)
state 506
- 157 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
- 205 expr_without_variable: variable . '=' expr
- 206 | variable . '=' '&' variable
- 208 | variable . '=' '&' T_NEW class_name_reference @42 ctor_arguments
- 212 | variable . T_PLUS_EQUAL expr
- 213 | variable . T_MINUS_EQUAL expr
- 214 | variable . T_MUL_EQUAL expr
- 215 | variable . T_DIV_EQUAL expr
- 216 | variable . T_CONCAT_EQUAL expr
- 217 | variable . T_MOD_EQUAL expr
- 218 | variable . T_AND_EQUAL expr
- 219 | variable . T_OR_EQUAL expr
- 220 | variable . T_XOR_EQUAL expr
- 221 | variable . T_SL_EQUAL expr
- 222 | variable . T_SR_EQUAL expr
- 334 r_variable: variable .
- 338 rw_variable: variable . @58
+ 155 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
+ 203 expr_without_variable: variable . '=' expr
+ 204 | variable . '=' '&' variable
+ 206 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 210 | variable . T_PLUS_EQUAL expr
+ 211 | variable . T_MINUS_EQUAL expr
+ 212 | variable . T_MUL_EQUAL expr
+ 213 | variable . T_DIV_EQUAL expr
+ 214 | variable . T_CONCAT_EQUAL expr
+ 215 | variable . T_MOD_EQUAL expr
+ 216 | variable . T_AND_EQUAL expr
+ 217 | variable . T_OR_EQUAL expr
+ 218 | variable . T_XOR_EQUAL expr
+ 219 | variable . T_SL_EQUAL expr
+ 220 | variable . T_SR_EQUAL expr
+ 332 r_variable: variable .
+ 336 rw_variable: variable . @56
'=' shift, and go to state 212
T_SR_EQUAL shift, and go to state 213
@@ -15218,13 +15236,13 @@ state 506
T_MINUS_EQUAL shift, and go to state 222
T_PLUS_EQUAL shift, and go to state 223
- ',' reduce using rule 157 (non_empty_function_call_parameter_list)
- T_DEC reduce using rule 337 (@58)
- T_INC reduce using rule 337 (@58)
- ')' reduce using rule 157 (non_empty_function_call_parameter_list)
- $default reduce using rule 334 (r_variable)
+ ',' reduce using rule 155 (non_empty_function_call_parameter_list)
+ T_DEC reduce using rule 335 (@56)
+ T_INC reduce using rule 335 (@56)
+ ')' reduce using rule 155 (non_empty_function_call_parameter_list)
+ $default reduce using rule 332 (r_variable)
- @58 go to state 224
+ @56 go to state 224
state 507
@@ -15281,7 +15299,7 @@ state 507
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 558
+ expr go to state 560
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -15306,7 +15324,7 @@ state 508
T_INCLUDE_ONCE shift, and go to state 8
T_INCLUDE shift, and go to state 9
T_PRINT shift, and go to state 10
- ':' shift, and go to state 559
+ ':' shift, and go to state 561
'+' shift, and go to state 11
'-' shift, and go to state 12
'!' shift, and go to state 13
@@ -15366,9 +15384,9 @@ state 508
'"' shift, and go to state 73
''' shift, and go to state 74
- statement go to state 560
+ statement go to state 562
unticked_statement go to state 77
- while_statement go to state 561
+ while_statement go to state 563
expr_without_variable go to state 84
function_call go to state 85
fully_qualified_class_name go to state 86
@@ -15393,38 +15411,38 @@ state 509
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr . ';' @12 for_expr ')' @13 for_statement
- ';' shift, and go to state 562
+ ';' shift, and go to state 564
state 510
- 201 non_empty_for_expr: non_empty_for_expr ',' @40 expr .
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 199 non_empty_for_expr: non_empty_for_expr ',' @38 expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -15453,42 +15471,31 @@ state 510
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 201 (non_empty_for_expr)
+ $default reduce using rule 199 (non_empty_for_expr)
state 511
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 . variable foreach_optional_arg ')' @20 foreach_statement
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable . foreach_optional_arg ')' @18 foreach_statement
- T_STRING shift, and go to state 120
- T_VARIABLE shift, and go to state 33
- '$' shift, and go to state 71
+ T_DOUBLE_ARROW shift, and go to state 565
- function_call go to state 85
- fully_qualified_class_name go to state 121
- variable go to state 563
- variable_without_objects go to state 93
- static_member go to state 94
- base_variable_with_function_calls go to state 95
- base_variable go to state 96
- reference_variable go to state 97
- compound_variable go to state 98
- simple_indirect_reference go to state 99
+ $default reduce using rule 101 (foreach_optional_arg)
+
+ foreach_optional_arg go to state 566
state 512
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 . foreach_variable foreach_optional_arg ')' @17 foreach_statement
+ 104 foreach_variable: '&' . variable
- '&' shift, and go to state 564
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 71
- foreach_variable go to state 565
function_call go to state 85
fully_qualified_class_name go to state 121
- variable go to state 566
+ variable go to state 567
variable_without_objects go to state 93
static_member go to state 94
base_variable_with_function_calls go to state 95
@@ -15500,155 +15507,173 @@ state 512
state 513
- 113 declare_list: T_STRING '=' static_scalar .
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable . foreach_optional_arg ')' @16 foreach_statement
+
+ T_DOUBLE_ARROW shift, and go to state 565
+
+ $default reduce using rule 101 (foreach_optional_arg)
- $default reduce using rule 113 (declare_list)
+ foreach_optional_arg go to state 568
state 514
- 114 declare_list: declare_list ',' T_STRING . '=' static_scalar
+ 103 foreach_variable: variable .
- '=' shift, and go to state 567
+ $default reduce using rule 103 (foreach_variable)
state 515
- 112 declare_statement: ':' . inner_statement_list T_ENDDECLARE ';'
-
- $default reduce using rule 11 (inner_statement_list)
+ 111 declare_list: T_STRING '=' static_scalar .
- inner_statement_list go to state 568
+ $default reduce using rule 111 (declare_list)
state 516
- 111 declare_statement: statement .
+ 112 declare_list: declare_list ',' T_STRING . '=' static_scalar
- $default reduce using rule 111 (declare_statement)
+ '=' shift, and go to state 569
state 517
- 59 unticked_statement: T_DECLARE @21 '(' declare_list ')' declare_statement .
-
- $default reduce using rule 59 (unticked_statement)
+ 110 declare_statement: ':' . inner_statement_list T_ENDDECLARE ';'
+ $default reduce using rule 11 (inner_statement_list)
-state 518
+ inner_statement_list go to state 570
- 117 switch_case_list: ':' . case_list T_ENDSWITCH ';'
- 118 | ':' . ';' case_list T_ENDSWITCH ';'
- ';' shift, and go to state 569
+state 518
- $default reduce using rule 119 (case_list)
+ 109 declare_statement: statement .
- case_list go to state 570
+ $default reduce using rule 109 (declare_statement)
state 519
- 115 switch_case_list: '{' . case_list '}'
- 116 | '{' . ';' case_list '}'
+ 57 unticked_statement: T_DECLARE @19 '(' declare_list ')' declare_statement .
- ';' shift, and go to state 571
+ $default reduce using rule 57 (unticked_statement)
- $default reduce using rule 119 (case_list)
- case_list go to state 572
+state 520
+ 115 switch_case_list: ':' . case_list T_ENDSWITCH ';'
+ 116 | ':' . ';' case_list T_ENDSWITCH ';'
-state 520
+ ';' shift, and go to state 571
- 35 unticked_statement: T_SWITCH '(' expr ')' @14 switch_case_list .
+ $default reduce using rule 117 (case_list)
- $default reduce using rule 35 (unticked_statement)
+ case_list go to state 572
state 521
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' . parameter_list ')' '{' inner_statement_list '}'
+ 113 switch_case_list: '{' . case_list '}'
+ 114 | '{' . ';' case_list '}'
- T_STRING shift, and go to state 573
- T_ARRAY shift, and go to state 574
+ ';' shift, and go to state 573
- ')' reduce using rule 139 (parameter_list)
- $default reduce using rule 148 (optional_class_type)
+ $default reduce using rule 117 (case_list)
- parameter_list go to state 575
- non_empty_parameter_list go to state 576
- optional_class_type go to state 577
+ case_list go to state 574
state 522
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH . '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 35 unticked_statement: T_SWITCH '(' expr ')' @14 switch_case_list .
- '(' shift, and go to state 578
+ $default reduce using rule 35 (unticked_statement)
state 523
- 316 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING .
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' . parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 316 (static_class_constant)
+ T_STRING shift, and go to state 575
+ T_ARRAY shift, and go to state 576
+ ')' reduce using rule 137 (parameter_list)
+ $default reduce using rule 146 (optional_class_type)
-state 524
+ parameter_list go to state 577
+ non_empty_parameter_list go to state 578
+ optional_class_type go to state 579
- 330 non_empty_static_array_pair_list: static_scalar . T_DOUBLE_ARROW static_scalar
- 331 | static_scalar .
- T_DOUBLE_ARROW shift, and go to state 579
+state 524
- $default reduce using rule 331 (non_empty_static_array_pair_list)
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH . '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
+
+ '(' shift, and go to state 580
state 525
- 314 static_scalar: T_ARRAY '(' static_array_pair_list . ')'
+ 314 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING .
- ')' shift, and go to state 580
+ $default reduce using rule 314 (static_class_constant)
state 526
- 325 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar T_DOUBLE_ARROW static_scalar
- 329 | non_empty_static_array_pair_list . ',' static_scalar
-
- ',' shift, and go to state 581
+ 328 non_empty_static_array_pair_list: static_scalar . T_DOUBLE_ARROW static_scalar
+ 329 | static_scalar .
- $default reduce using rule 326 (possible_comma)
+ T_DOUBLE_ARROW shift, and go to state 581
- possible_comma go to state 582
+ $default reduce using rule 329 (non_empty_static_array_pair_list)
state 527
- 165 static_var_list: static_var_list ',' T_VARIABLE '=' static_scalar .
+ 312 static_scalar: T_ARRAY '(' static_array_pair_list . ')'
- $default reduce using rule 165 (static_var_list)
+ ')' shift, and go to state 582
state 528
- 422 isset_variables: isset_variables ',' @66 variable .
+ 323 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar T_DOUBLE_ARROW static_scalar
+ 327 | non_empty_static_array_pair_list . ',' static_scalar
- $default reduce using rule 422 (isset_variables)
+ ',' shift, and go to state 583
+
+ $default reduce using rule 324 (possible_comma)
+
+ possible_comma go to state 584
state 529
- 379 assignment_list_element: T_LIST '(' @64 . assignment_list ')'
+ 163 static_var_list: static_var_list ',' T_VARIABLE '=' static_scalar .
+
+ $default reduce using rule 163 (static_var_list)
+
+
+state 530
+
+ 420 isset_variables: isset_variables ',' @64 variable .
+
+ $default reduce using rule 420 (isset_variables)
+
+
+state 531
+
+ 377 assignment_list_element: T_LIST '(' @62 . assignment_list ')'
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
T_LIST shift, and go to state 398
'$' shift, and go to state 71
- $default reduce using rule 380 (assignment_list_element)
+ $default reduce using rule 378 (assignment_list_element)
function_call go to state 85
fully_qualified_class_name go to state 121
@@ -15660,20 +15685,20 @@ state 529
reference_variable go to state 97
compound_variable go to state 98
simple_indirect_reference go to state 99
- assignment_list go to state 583
+ assignment_list go to state 585
assignment_list_element go to state 401
-state 530
+state 532
- 375 assignment_list: assignment_list ',' assignment_list_element .
+ 373 assignment_list: assignment_list ',' assignment_list_element .
- $default reduce using rule 375 (assignment_list)
+ $default reduce using rule 373 (assignment_list)
-state 531
+state 533
- 204 expr_without_variable: T_LIST '(' @41 assignment_list ')' '=' . expr
+ 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15725,7 +15750,7 @@ state 531
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 584
+ expr go to state 586
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -15740,24 +15765,24 @@ state 531
class_constant go to state 101
-state 532
+state 534
- 389 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' w_variable .
+ 387 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' w_variable .
- $default reduce using rule 389 (non_empty_array_pair_list)
+ $default reduce using rule 387 (non_empty_array_pair_list)
-state 533
+state 535
- 388 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
+ 386 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
- $default reduce using rule 388 (non_empty_array_pair_list)
+ $default reduce using rule 386 (non_empty_array_pair_list)
-state 534
+state 536
- 383 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . expr
- 387 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . '&' w_variable
+ 381 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . expr
+ 385 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . '&' w_variable
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15765,7 +15790,7 @@ state 534
T_INCLUDE_ONCE shift, and go to state 8
T_INCLUDE shift, and go to state 9
T_PRINT shift, and go to state 10
- '&' shift, and go to state 585
+ '&' shift, and go to state 587
'+' shift, and go to state 11
'-' shift, and go to state 12
'!' shift, and go to state 13
@@ -15810,7 +15835,7 @@ state 534
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 586
+ expr go to state 588
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -15825,63 +15850,63 @@ state 534
class_constant go to state 101
-state 535
+state 537
- 410 encaps_var_offset: T_STRING .
+ 408 encaps_var_offset: T_STRING .
- $default reduce using rule 410 (encaps_var_offset)
+ $default reduce using rule 408 (encaps_var_offset)
-state 536
+state 538
- 412 encaps_var_offset: T_VARIABLE .
+ 410 encaps_var_offset: T_VARIABLE .
- $default reduce using rule 412 (encaps_var_offset)
+ $default reduce using rule 410 (encaps_var_offset)
-state 537
+state 539
- 411 encaps_var_offset: T_NUM_STRING .
+ 409 encaps_var_offset: T_NUM_STRING .
- $default reduce using rule 411 (encaps_var_offset)
+ $default reduce using rule 409 (encaps_var_offset)
-state 538
+state 540
- 405 encaps_var: T_VARIABLE '[' @65 encaps_var_offset . ']'
+ 403 encaps_var: T_VARIABLE '[' @63 encaps_var_offset . ']'
- ']' shift, and go to state 587
+ ']' shift, and go to state 589
-state 539
+state 541
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 408 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr . ']' '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 406 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr . ']' '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -15909,86 +15934,86 @@ state 539
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- ']' shift, and go to state 588
+ ']' shift, and go to state 590
-state 540
+state 542
15 inner_statement: T_HALT_COMPILER '(' ')' . ';'
- ';' shift, and go to state 589
+ ';' shift, and go to state 591
-state 541
+state 543
- 100 implements_list: T_IMPLEMENTS interface_list .
- 102 interface_list: interface_list . ',' fully_qualified_class_name
+ 98 implements_list: T_IMPLEMENTS interface_list .
+ 100 interface_list: interface_list . ',' fully_qualified_class_name
- ',' shift, and go to state 543
+ ',' shift, and go to state 545
- $default reduce using rule 100 (implements_list)
+ $default reduce using rule 98 (implements_list)
-state 542
+state 544
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 implements_list '{' . class_statement_list '}'
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' . class_statement_list '}'
- $default reduce using rule 169 (class_statement_list)
+ $default reduce using rule 167 (class_statement_list)
- class_statement_list go to state 590
+ class_statement_list go to state 592
-state 543
+state 545
- 102 interface_list: interface_list ',' . fully_qualified_class_name
+ 100 interface_list: interface_list ',' . fully_qualified_class_name
T_STRING shift, and go to state 419
- fully_qualified_class_name go to state 591
+ fully_qualified_class_name go to state 593
-state 544
+state 546
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 interface_extends_list '{' class_statement_list . '}'
- 168 class_statement_list: class_statement_list . class_statement
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' class_statement_list . '}'
+ 166 class_statement_list: class_statement_list . class_statement
- T_CONST shift, and go to state 592
- T_PUBLIC shift, and go to state 593
- T_PROTECTED shift, and go to state 594
- T_PRIVATE shift, and go to state 595
- T_FINAL shift, and go to state 596
- T_ABSTRACT shift, and go to state 597
- T_STATIC shift, and go to state 598
- T_VAR shift, and go to state 599
- '}' shift, and go to state 600
+ T_CONST shift, and go to state 594
+ T_PUBLIC shift, and go to state 595
+ T_PROTECTED shift, and go to state 596
+ T_PRIVATE shift, and go to state 597
+ T_FINAL shift, and go to state 598
+ T_ABSTRACT shift, and go to state 599
+ T_STATIC shift, and go to state 600
+ T_VAR shift, and go to state 601
+ '}' shift, and go to state 602
- $default reduce using rule 180 (method_modifiers)
+ $default reduce using rule 178 (method_modifiers)
- class_statement go to state 601
- variable_modifiers go to state 602
- method_modifiers go to state 603
- non_empty_member_modifiers go to state 604
- member_modifier go to state 605
- class_constant_declaration go to state 606
+ class_statement go to state 603
+ variable_modifiers go to state 604
+ method_modifiers go to state 605
+ non_empty_member_modifiers go to state 606
+ member_modifier go to state 607
+ class_constant_declaration go to state 608
-state 545
+state 547
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 function_call_parameter_list . ')'
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list . ')'
- ')' shift, and go to state 607
+ ')' shift, and go to state 609
-state 546
+state 548
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 function_call_parameter_list . ')'
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list . ')'
- ')' shift, and go to state 608
+ ')' shift, and go to state 610
-state 547
+state 549
- 263 expr_without_variable: expr '?' @48 expr ':' @49 . expr
+ 261 expr_without_variable: expr '?' @46 expr ':' @47 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -16040,7 +16065,7 @@ state 547
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 609
+ expr go to state 611
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -16055,78 +16080,78 @@ state 547
class_constant go to state 101
-state 548
+state 550
- 208 expr_without_variable: variable '=' '&' T_NEW class_name_reference @42 . ctor_arguments
+ 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 . ctor_arguments
'(' shift, and go to state 359
- $default reduce using rule 300 (ctor_arguments)
+ $default reduce using rule 298 (ctor_arguments)
- ctor_arguments go to state 610
+ ctor_arguments go to state 612
-state 549
+state 551
- 372 variable_name: '{' expr '}' .
+ 370 variable_name: '{' expr '}' .
- $default reduce using rule 372 (variable_name)
+ $default reduce using rule 370 (variable_name)
-state 550
+state 552
- 348 method_or_not: '(' . @62 function_call_parameter_list ')'
+ 346 method_or_not: '(' . @60 function_call_parameter_list ')'
- $default reduce using rule 347 (@62)
+ $default reduce using rule 345 (@60)
- @62 go to state 611
+ @60 go to state 613
-state 551
+state 553
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 object_property @60 method_or_not . variable_properties
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not . variable_properties
- $default reduce using rule 344 (variable_properties)
+ $default reduce using rule 342 (variable_properties)
- variable_properties go to state 612
+ variable_properties go to state 614
-state 552
+state 554
- 368 object_dim_list: object_dim_list '[' dim_offset . ']'
+ 366 object_dim_list: object_dim_list '[' dim_offset . ']'
- ']' shift, and go to state 613
+ ']' shift, and go to state 615
-state 553
+state 555
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 369 object_dim_list: object_dim_list '{' expr . '}'
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 367 object_dim_list: object_dim_list '{' expr . '}'
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -16154,22 +16179,22 @@ state 553
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- '}' shift, and go to state 614
+ '}' shift, and go to state 616
-state 554
+state 556
- 292 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @55 object_property @56 dynamic_class_name_variable_properties .
- 294 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
+ 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property @54 dynamic_class_name_variable_properties .
+ 292 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
- T_OBJECT_OPERATOR shift, and go to state 615
+ T_OBJECT_OPERATOR shift, and go to state 617
- $default reduce using rule 292 (dynamic_class_name_reference)
+ $default reduce using rule 290 (dynamic_class_name_reference)
- dynamic_class_name_variable_property go to state 616
+ dynamic_class_name_variable_property go to state 618
-state 555
+state 557
10 inner_statement_list: inner_statement_list . @2 inner_statement
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list . @6 new_elseif_list new_else_single T_ENDIF ';'
@@ -16180,54 +16205,54 @@ state 555
$default reduce using rule 9 (@2)
@2 go to state 300
- @6 go to state 617
+ @6 go to state 619
-state 556
+state 558
20 unticked_statement: T_IF '(' expr ')' @3 statement @4 . elseif_list else_single
- $default reduce using rule 128 (elseif_list)
+ $default reduce using rule 126 (elseif_list)
- elseif_list go to state 618
+ elseif_list go to state 620
-state 557
+state 559
- 158 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
+ 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
- $default reduce using rule 158 (non_empty_function_call_parameter_list)
+ $default reduce using rule 156 (non_empty_function_call_parameter_list)
-state 558
+state 560
29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr . ')' ';'
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -16255,63 +16280,54 @@ state 558
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- ')' shift, and go to state 619
+ ')' shift, and go to state 621
-state 559
+state 561
- 127 while_statement: ':' . inner_statement_list T_ENDWHILE ';'
+ 125 while_statement: ':' . inner_statement_list T_ENDWHILE ';'
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 620
+ inner_statement_list go to state 622
-state 560
+state 562
- 126 while_statement: statement .
+ 124 while_statement: statement .
- $default reduce using rule 126 (while_statement)
+ $default reduce using rule 124 (while_statement)
-state 561
+state 563
26 unticked_statement: T_WHILE '(' @7 expr ')' @8 while_statement .
$default reduce using rule 26 (unticked_statement)
-state 562
+state 564
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' . @12 for_expr ')' @13 for_statement
$default reduce using rule 31 (@12)
- @12 go to state 621
-
-
-state 563
-
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable . foreach_optional_arg ')' @20 foreach_statement
-
- T_DOUBLE_ARROW shift, and go to state 622
-
- $default reduce using rule 103 (foreach_optional_arg)
+ @12 go to state 623
- foreach_optional_arg go to state 623
+state 565
-state 564
-
- 106 foreach_variable: '&' . variable
+ 102 foreach_optional_arg: T_DOUBLE_ARROW . foreach_variable
+ '&' shift, and go to state 512
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
'$' shift, and go to state 71
+ foreach_variable go to state 624
function_call go to state 85
fully_qualified_class_name go to state 121
- variable go to state 624
+ variable go to state 514
variable_without_objects go to state 93
static_member go to state 94
base_variable_with_function_calls go to state 95
@@ -16321,27 +16337,30 @@ state 564
simple_indirect_reference go to state 99
-state 565
+state 566
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable . foreach_optional_arg ')' @17 foreach_statement
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg . ')' @18 foreach_statement
- T_DOUBLE_ARROW shift, and go to state 622
+ ')' shift, and go to state 625
- $default reduce using rule 103 (foreach_optional_arg)
- foreach_optional_arg go to state 625
+state 567
+ 104 foreach_variable: '&' variable .
-state 566
+ $default reduce using rule 104 (foreach_variable)
- 105 foreach_variable: variable .
- $default reduce using rule 105 (foreach_variable)
+state 568
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg . ')' @16 foreach_statement
-state 567
+ ')' shift, and go to state 626
- 114 declare_list: declare_list ',' T_STRING '=' . static_scalar
+
+state 569
+
+ 112 declare_list: declare_list ',' T_STRING '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -16357,119 +16376,119 @@ state 567
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 626
+ static_scalar go to state 627
static_class_constant go to state 390
-state 568
+state 570
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 112 declare_statement: ':' inner_statement_list . T_ENDDECLARE ';'
+ 110 declare_statement: ':' inner_statement_list . T_ENDDECLARE ';'
- T_ENDDECLARE shift, and go to state 627
+ T_ENDDECLARE shift, and go to state 628
$default reduce using rule 9 (@2)
@2 go to state 300
-state 569
+state 571
- 118 switch_case_list: ':' ';' . case_list T_ENDSWITCH ';'
+ 116 switch_case_list: ':' ';' . case_list T_ENDSWITCH ';'
- $default reduce using rule 119 (case_list)
+ $default reduce using rule 117 (case_list)
- case_list go to state 628
+ case_list go to state 629
-state 570
+state 572
- 117 switch_case_list: ':' case_list . T_ENDSWITCH ';'
- 121 case_list: case_list . T_CASE expr case_separator @33 inner_statement_list
- 123 | case_list . T_DEFAULT case_separator @34 inner_statement_list
+ 115 switch_case_list: ':' case_list . T_ENDSWITCH ';'
+ 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list
+ 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list
- T_ENDSWITCH shift, and go to state 629
- T_CASE shift, and go to state 630
- T_DEFAULT shift, and go to state 631
+ T_ENDSWITCH shift, and go to state 630
+ T_CASE shift, and go to state 631
+ T_DEFAULT shift, and go to state 632
-state 571
+state 573
- 116 switch_case_list: '{' ';' . case_list '}'
+ 114 switch_case_list: '{' ';' . case_list '}'
- $default reduce using rule 119 (case_list)
+ $default reduce using rule 117 (case_list)
- case_list go to state 632
+ case_list go to state 633
-state 572
+state 574
- 115 switch_case_list: '{' case_list . '}'
- 121 case_list: case_list . T_CASE expr case_separator @33 inner_statement_list
- 123 | case_list . T_DEFAULT case_separator @34 inner_statement_list
+ 113 switch_case_list: '{' case_list . '}'
+ 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list
+ 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list
- T_CASE shift, and go to state 630
- T_DEFAULT shift, and go to state 631
- '}' shift, and go to state 633
+ T_CASE shift, and go to state 631
+ T_DEFAULT shift, and go to state 632
+ '}' shift, and go to state 634
-state 573
+state 575
- 149 optional_class_type: T_STRING .
+ 147 optional_class_type: T_STRING .
- $default reduce using rule 149 (optional_class_type)
+ $default reduce using rule 147 (optional_class_type)
-state 574
+state 576
- 150 optional_class_type: T_ARRAY .
+ 148 optional_class_type: T_ARRAY .
- $default reduce using rule 150 (optional_class_type)
+ $default reduce using rule 148 (optional_class_type)
-state 575
+state 577
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list . ')' '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list . ')' '{' inner_statement_list '}'
- ')' shift, and go to state 634
+ ')' shift, and go to state 635
-state 576
+state 578
- 138 parameter_list: non_empty_parameter_list .
- 144 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type T_VARIABLE
- 145 | non_empty_parameter_list . ',' optional_class_type '&' T_VARIABLE
- 146 | non_empty_parameter_list . ',' optional_class_type '&' T_VARIABLE '=' static_scalar
- 147 | non_empty_parameter_list . ',' optional_class_type T_VARIABLE '=' static_scalar
+ 136 parameter_list: non_empty_parameter_list .
+ 142 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type T_VARIABLE
+ 143 | non_empty_parameter_list . ',' optional_class_type '&' T_VARIABLE
+ 144 | non_empty_parameter_list . ',' optional_class_type '&' T_VARIABLE '=' static_scalar
+ 145 | non_empty_parameter_list . ',' optional_class_type T_VARIABLE '=' static_scalar
- ',' shift, and go to state 635
+ ',' shift, and go to state 636
- $default reduce using rule 138 (parameter_list)
+ $default reduce using rule 136 (parameter_list)
-state 577
+state 579
- 140 non_empty_parameter_list: optional_class_type . T_VARIABLE
- 141 | optional_class_type . '&' T_VARIABLE
- 142 | optional_class_type . '&' T_VARIABLE '=' static_scalar
- 143 | optional_class_type . T_VARIABLE '=' static_scalar
+ 138 non_empty_parameter_list: optional_class_type . T_VARIABLE
+ 139 | optional_class_type . '&' T_VARIABLE
+ 140 | optional_class_type . '&' T_VARIABLE '=' static_scalar
+ 141 | optional_class_type . T_VARIABLE '=' static_scalar
- '&' shift, and go to state 636
- T_VARIABLE shift, and go to state 637
+ '&' shift, and go to state 637
+ T_VARIABLE shift, and go to state 638
-state 578
+state 580
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' . @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' . @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 62 (@23)
+ $default reduce using rule 60 (@21)
- @23 go to state 638
+ @21 go to state 639
-state 579
+state 581
- 330 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW . static_scalar
+ 328 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -16485,22 +16504,22 @@ state 579
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 639
+ static_scalar go to state 640
static_class_constant go to state 390
-state 580
+state 582
- 314 static_scalar: T_ARRAY '(' static_array_pair_list ')' .
+ 312 static_scalar: T_ARRAY '(' static_array_pair_list ')' .
- $default reduce using rule 314 (static_scalar)
+ $default reduce using rule 312 (static_scalar)
-state 581
+state 583
- 327 possible_comma: ',' .
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar T_DOUBLE_ARROW static_scalar
- 329 | non_empty_static_array_pair_list ',' . static_scalar
+ 325 possible_comma: ',' .
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar T_DOUBLE_ARROW static_scalar
+ 327 | non_empty_static_array_pair_list ',' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -16515,58 +16534,58 @@ state 581
T_LINE shift, and go to state 65
T_FILE shift, and go to state 66
- $default reduce using rule 327 (possible_comma)
+ $default reduce using rule 325 (possible_comma)
common_scalar go to state 388
- static_scalar go to state 640
+ static_scalar go to state 641
static_class_constant go to state 390
-state 582
+state 584
- 325 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
+ 323 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
- $default reduce using rule 325 (static_array_pair_list)
+ $default reduce using rule 323 (static_array_pair_list)
-state 583
+state 585
- 375 assignment_list: assignment_list . ',' assignment_list_element
- 379 assignment_list_element: T_LIST '(' @64 assignment_list . ')'
+ 373 assignment_list: assignment_list . ',' assignment_list_element
+ 377 assignment_list_element: T_LIST '(' @62 assignment_list . ')'
',' shift, and go to state 472
- ')' shift, and go to state 641
+ ')' shift, and go to state 642
-state 584
+state 586
- 204 expr_without_variable: T_LIST '(' @41 assignment_list ')' '=' expr .
- 228 | expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' expr .
+ 226 | expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
'?' shift, and go to state 186
T_BOOLEAN_OR shift, and go to state 187
@@ -16592,12 +16611,12 @@ state 584
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 204 (expr_without_variable)
+ $default reduce using rule 202 (expr_without_variable)
-state 585
+state 587
- 387 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' . w_variable
+ 385 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' . w_variable
T_STRING shift, and go to state 120
T_VARIABLE shift, and go to state 33
@@ -16605,7 +16624,7 @@ state 585
function_call go to state 85
fully_qualified_class_name go to state 121
- w_variable go to state 642
+ w_variable go to state 643
variable go to state 403
variable_without_objects go to state 93
static_member go to state 94
@@ -16616,35 +16635,35 @@ state 585
simple_indirect_reference go to state 99
-state 586
+state 588
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 383 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr .
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 381 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr .
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -16673,226 +16692,226 @@ state 586
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 383 (non_empty_array_pair_list)
-
-
-state 587
-
- 405 encaps_var: T_VARIABLE '[' @65 encaps_var_offset ']' .
-
- $default reduce using rule 405 (encaps_var)
-
-
-state 588
-
- 408 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' . '}'
-
- '}' shift, and go to state 643
+ $default reduce using rule 381 (non_empty_array_pair_list)
state 589
- 15 inner_statement: T_HALT_COMPILER '(' ')' ';' .
+ 403 encaps_var: T_VARIABLE '[' @63 encaps_var_offset ']' .
- $default reduce using rule 15 (inner_statement)
+ $default reduce using rule 403 (encaps_var)
state 590
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 implements_list '{' class_statement_list . '}'
- 168 class_statement_list: class_statement_list . class_statement
+ 406 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' . '}'
- T_CONST shift, and go to state 592
- T_PUBLIC shift, and go to state 593
- T_PROTECTED shift, and go to state 594
- T_PRIVATE shift, and go to state 595
- T_FINAL shift, and go to state 596
- T_ABSTRACT shift, and go to state 597
- T_STATIC shift, and go to state 598
- T_VAR shift, and go to state 599
- '}' shift, and go to state 644
-
- $default reduce using rule 180 (method_modifiers)
-
- class_statement go to state 601
- variable_modifiers go to state 602
- method_modifiers go to state 603
- non_empty_member_modifiers go to state 604
- member_modifier go to state 605
- class_constant_declaration go to state 606
+ '}' shift, and go to state 644
state 591
- 102 interface_list: interface_list ',' fully_qualified_class_name .
+ 15 inner_statement: T_HALT_COMPILER '(' ')' ';' .
- $default reduce using rule 102 (interface_list)
+ $default reduce using rule 15 (inner_statement)
state 592
- 195 class_constant_declaration: T_CONST . T_STRING '=' static_scalar
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' class_statement_list . '}'
+ 166 class_statement_list: class_statement_list . class_statement
- T_STRING shift, and go to state 645
+ T_CONST shift, and go to state 594
+ T_PUBLIC shift, and go to state 595
+ T_PROTECTED shift, and go to state 596
+ T_PRIVATE shift, and go to state 597
+ T_FINAL shift, and go to state 598
+ T_ABSTRACT shift, and go to state 599
+ T_STATIC shift, and go to state 600
+ T_VAR shift, and go to state 601
+ '}' shift, and go to state 645
+
+ $default reduce using rule 178 (method_modifiers)
+
+ class_statement go to state 603
+ variable_modifiers go to state 604
+ method_modifiers go to state 605
+ non_empty_member_modifiers go to state 606
+ member_modifier go to state 607
+ class_constant_declaration go to state 608
state 593
- 184 member_modifier: T_PUBLIC .
+ 100 interface_list: interface_list ',' fully_qualified_class_name .
- $default reduce using rule 184 (member_modifier)
+ $default reduce using rule 100 (interface_list)
state 594
- 185 member_modifier: T_PROTECTED .
+ 193 class_constant_declaration: T_CONST . T_STRING '=' static_scalar
- $default reduce using rule 185 (member_modifier)
+ T_STRING shift, and go to state 646
state 595
- 186 member_modifier: T_PRIVATE .
+ 182 member_modifier: T_PUBLIC .
- $default reduce using rule 186 (member_modifier)
+ $default reduce using rule 182 (member_modifier)
state 596
- 189 member_modifier: T_FINAL .
+ 183 member_modifier: T_PROTECTED .
- $default reduce using rule 189 (member_modifier)
+ $default reduce using rule 183 (member_modifier)
state 597
- 188 member_modifier: T_ABSTRACT .
+ 184 member_modifier: T_PRIVATE .
- $default reduce using rule 188 (member_modifier)
+ $default reduce using rule 184 (member_modifier)
state 598
- 187 member_modifier: T_STATIC .
+ 187 member_modifier: T_FINAL .
$default reduce using rule 187 (member_modifier)
state 599
- 179 variable_modifiers: T_VAR .
+ 186 member_modifier: T_ABSTRACT .
- $default reduce using rule 179 (variable_modifiers)
+ $default reduce using rule 186 (member_modifier)
state 600
- 90 unticked_class_declaration_statement: interface_entry T_STRING @32 interface_extends_list '{' class_statement_list '}' .
+ 185 member_modifier: T_STATIC .
- $default reduce using rule 90 (unticked_class_declaration_statement)
+ $default reduce using rule 185 (member_modifier)
state 601
- 168 class_statement_list: class_statement_list class_statement .
+ 177 variable_modifiers: T_VAR .
- $default reduce using rule 168 (class_statement_list)
+ $default reduce using rule 177 (variable_modifiers)
state 602
- 171 class_statement: variable_modifiers . @37 class_variable_declaration ';'
-
- $default reduce using rule 170 (@37)
+ 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' class_statement_list '}' .
- @37 go to state 646
+ $default reduce using rule 88 (unticked_class_declaration_statement)
state 603
- 175 class_statement: method_modifiers . T_FUNCTION @38 is_reference T_STRING @39 '(' parameter_list ')' method_body
+ 166 class_statement_list: class_statement_list class_statement .
- T_FUNCTION shift, and go to state 647
+ $default reduce using rule 166 (class_statement_list)
state 604
- 178 variable_modifiers: non_empty_member_modifiers .
- 181 method_modifiers: non_empty_member_modifiers .
- 183 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier
-
- T_PUBLIC shift, and go to state 593
- T_PROTECTED shift, and go to state 594
- T_PRIVATE shift, and go to state 595
- T_FINAL shift, and go to state 596
- T_ABSTRACT shift, and go to state 597
- T_STATIC shift, and go to state 598
+ 169 class_statement: variable_modifiers . @35 class_variable_declaration ';'
- T_FUNCTION reduce using rule 181 (method_modifiers)
- $default reduce using rule 178 (variable_modifiers)
+ $default reduce using rule 168 (@35)
- member_modifier go to state 648
+ @35 go to state 647
state 605
- 182 non_empty_member_modifiers: member_modifier .
+ 173 class_statement: method_modifiers . T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' method_body
- $default reduce using rule 182 (non_empty_member_modifiers)
+ T_FUNCTION shift, and go to state 648
state 606
- 172 class_statement: class_constant_declaration . ';'
- 194 class_constant_declaration: class_constant_declaration . ',' T_STRING '=' static_scalar
+ 176 variable_modifiers: non_empty_member_modifiers .
+ 179 method_modifiers: non_empty_member_modifiers .
+ 181 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier
+
+ T_PUBLIC shift, and go to state 595
+ T_PROTECTED shift, and go to state 596
+ T_PRIVATE shift, and go to state 597
+ T_FINAL shift, and go to state 598
+ T_ABSTRACT shift, and go to state 599
+ T_STATIC shift, and go to state 600
- ',' shift, and go to state 649
- ';' shift, and go to state 650
+ T_FUNCTION reduce using rule 179 (method_modifiers)
+ $default reduce using rule 176 (variable_modifiers)
+
+ member_modifier go to state 649
state 607
- 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @52 function_call_parameter_list ')' .
+ 180 non_empty_member_modifiers: member_modifier .
- $default reduce using rule 282 (function_call)
+ $default reduce using rule 180 (non_empty_member_modifiers)
state 608
- 284 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @53 function_call_parameter_list ')' .
+ 170 class_statement: class_constant_declaration . ';'
+ 192 class_constant_declaration: class_constant_declaration . ',' T_STRING '=' static_scalar
- $default reduce using rule 284 (function_call)
+ ',' shift, and go to state 650
+ ';' shift, and go to state 651
state 609
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
- 263 | expr '?' @48 expr ':' @49 expr .
+ 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')' .
+
+ $default reduce using rule 280 (function_call)
+
+
+state 610
+
+ 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')' .
+
+ $default reduce using rule 282 (function_call)
+
+
+state 611
+
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
+ 261 | expr '?' @46 expr ':' @47 expr .
T_BOOLEAN_OR shift, and go to state 187
T_BOOLEAN_AND shift, and go to state 188
@@ -16917,19 +16936,19 @@ state 609
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- $default reduce using rule 263 (expr_without_variable)
+ $default reduce using rule 261 (expr_without_variable)
-state 610
+state 612
- 208 expr_without_variable: variable '=' '&' T_NEW class_name_reference @42 ctor_arguments .
+ 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 ctor_arguments .
- $default reduce using rule 208 (expr_without_variable)
+ $default reduce using rule 206 (expr_without_variable)
-state 611
+state 613
- 348 method_or_not: '(' @62 . function_call_parameter_list ')'
+ 346 method_or_not: '(' @60 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -16977,9 +16996,9 @@ state 611
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 152 (function_call_parameter_list)
+ $default reduce using rule 150 (function_call_parameter_list)
- function_call_parameter_list go to state 651
+ function_call_parameter_list go to state 652
non_empty_function_call_parameter_list go to state 366
expr_without_variable go to state 367
function_call go to state 85
@@ -17001,35 +17020,35 @@ state 611
class_constant go to state 101
-state 612
+state 614
- 341 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @59 object_property @60 method_or_not variable_properties .
- 343 variable_properties: variable_properties . variable_property
+ 339 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties .
+ 341 variable_properties: variable_properties . variable_property
- T_OBJECT_OPERATOR shift, and go to state 652
+ T_OBJECT_OPERATOR shift, and go to state 653
- $default reduce using rule 341 (variable)
+ $default reduce using rule 339 (variable)
- variable_property go to state 653
+ variable_property go to state 654
-state 613
+state 615
- 368 object_dim_list: object_dim_list '[' dim_offset ']' .
+ 366 object_dim_list: object_dim_list '[' dim_offset ']' .
- $default reduce using rule 368 (object_dim_list)
+ $default reduce using rule 366 (object_dim_list)
-state 614
+state 616
- 369 object_dim_list: object_dim_list '{' expr '}' .
+ 367 object_dim_list: object_dim_list '{' expr '}' .
- $default reduce using rule 369 (object_dim_list)
+ $default reduce using rule 367 (object_dim_list)
-state 615
+state 617
- 296 dynamic_class_name_variable_property: T_OBJECT_OPERATOR . object_property
+ 294 dynamic_class_name_variable_property: T_OBJECT_OPERATOR . object_property
T_STRING shift, and go to state 435
T_VARIABLE shift, and go to state 33
@@ -17039,63 +17058,63 @@ state 615
variable_without_objects go to state 437
reference_variable go to state 310
compound_variable go to state 98
- object_property go to state 654
+ object_property go to state 655
object_dim_list go to state 439
variable_name go to state 440
simple_indirect_reference go to state 311
-state 616
+state 618
- 294 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
+ 292 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
- $default reduce using rule 294 (dynamic_class_name_variable_properties)
+ $default reduce using rule 292 (dynamic_class_name_variable_properties)
-state 617
+state 619
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 . new_elseif_list new_else_single T_ENDIF ';'
- $default reduce using rule 131 (new_elseif_list)
+ $default reduce using rule 129 (new_elseif_list)
- new_elseif_list go to state 655
+ new_elseif_list go to state 656
-state 618
+state 620
20 unticked_statement: T_IF '(' expr ')' @3 statement @4 elseif_list . else_single
- 130 elseif_list: elseif_list . T_ELSEIF '(' expr ')' @35 statement
+ 128 elseif_list: elseif_list . T_ELSEIF '(' expr ')' @33 statement
- T_ELSEIF shift, and go to state 656
- T_ELSE shift, and go to state 657
+ T_ELSEIF shift, and go to state 657
+ T_ELSE shift, and go to state 658
- T_ELSEIF [reduce using rule 134 (else_single)]
- T_ELSE [reduce using rule 134 (else_single)]
- $default reduce using rule 134 (else_single)
+ T_ELSEIF [reduce using rule 132 (else_single)]
+ T_ELSE [reduce using rule 132 (else_single)]
+ $default reduce using rule 132 (else_single)
- else_single go to state 658
+ else_single go to state 659
-state 619
+state 621
29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr ')' . ';'
- ';' shift, and go to state 659
+ ';' shift, and go to state 660
-state 620
+state 622
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 127 while_statement: ':' inner_statement_list . T_ENDWHILE ';'
+ 125 while_statement: ':' inner_statement_list . T_ENDWHILE ';'
- T_ENDWHILE shift, and go to state 660
+ T_ENDWHILE shift, and go to state 661
$default reduce using rule 9 (@2)
@2 go to state 300
-state 621
+state 623
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 . for_expr ')' @13 for_statement
@@ -17144,9 +17163,9 @@ state 621
'"' shift, and go to state 73
''' shift, and go to state 74
- $default reduce using rule 198 (for_expr)
+ $default reduce using rule 196 (for_expr)
- for_expr go to state 661
+ for_expr go to state 662
non_empty_for_expr go to state 247
expr_without_variable go to state 84
function_call go to state 85
@@ -17168,84 +17187,66 @@ state 621
class_constant go to state 101
-state 622
+state 624
- 104 foreach_optional_arg: T_DOUBLE_ARROW . foreach_variable
+ 102 foreach_optional_arg: T_DOUBLE_ARROW foreach_variable .
- '&' shift, and go to state 564
- T_STRING shift, and go to state 120
- T_VARIABLE shift, and go to state 33
- '$' shift, and go to state 71
-
- foreach_variable go to state 662
- function_call go to state 85
- fully_qualified_class_name go to state 121
- variable go to state 566
- variable_without_objects go to state 93
- static_member go to state 94
- base_variable_with_function_calls go to state 95
- base_variable go to state 96
- reference_variable go to state 97
- compound_variable go to state 98
- simple_indirect_reference go to state 99
+ $default reduce using rule 102 (foreach_optional_arg)
-state 623
-
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg . ')' @20 foreach_statement
+state 625
- ')' shift, and go to state 663
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' . @18 foreach_statement
+ $default reduce using rule 54 (@18)
-state 624
+ @18 go to state 663
- 106 foreach_variable: '&' variable .
-
- $default reduce using rule 106 (foreach_variable)
+state 626
-state 625
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' . @16 foreach_statement
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg . ')' @17 foreach_statement
+ $default reduce using rule 51 (@16)
- ')' shift, and go to state 664
+ @16 go to state 664
-state 626
+state 627
- 114 declare_list: declare_list ',' T_STRING '=' static_scalar .
+ 112 declare_list: declare_list ',' T_STRING '=' static_scalar .
- $default reduce using rule 114 (declare_list)
+ $default reduce using rule 112 (declare_list)
-state 627
+state 628
- 112 declare_statement: ':' inner_statement_list T_ENDDECLARE . ';'
+ 110 declare_statement: ':' inner_statement_list T_ENDDECLARE . ';'
';' shift, and go to state 665
-state 628
+state 629
- 118 switch_case_list: ':' ';' case_list . T_ENDSWITCH ';'
- 121 case_list: case_list . T_CASE expr case_separator @33 inner_statement_list
- 123 | case_list . T_DEFAULT case_separator @34 inner_statement_list
+ 116 switch_case_list: ':' ';' case_list . T_ENDSWITCH ';'
+ 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list
+ 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list
T_ENDSWITCH shift, and go to state 666
- T_CASE shift, and go to state 630
- T_DEFAULT shift, and go to state 631
+ T_CASE shift, and go to state 631
+ T_DEFAULT shift, and go to state 632
-state 629
+state 630
- 117 switch_case_list: ':' case_list T_ENDSWITCH . ';'
+ 115 switch_case_list: ':' case_list T_ENDSWITCH . ';'
';' shift, and go to state 667
-state 630
+state 631
- 121 case_list: case_list T_CASE . expr case_separator @33 inner_statement_list
+ 119 case_list: case_list T_CASE . expr case_separator @31 inner_statement_list
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17312,9 +17313,9 @@ state 630
class_constant go to state 101
-state 631
+state 632
- 123 case_list: case_list T_DEFAULT . case_separator @34 inner_statement_list
+ 121 case_list: case_list T_DEFAULT . case_separator @32 inner_statement_list
':' shift, and go to state 669
';' shift, and go to state 670
@@ -17322,174 +17323,174 @@ state 631
case_separator go to state 671
-state 632
+state 633
- 116 switch_case_list: '{' ';' case_list . '}'
- 121 case_list: case_list . T_CASE expr case_separator @33 inner_statement_list
- 123 | case_list . T_DEFAULT case_separator @34 inner_statement_list
+ 114 switch_case_list: '{' ';' case_list . '}'
+ 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list
+ 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list
- T_CASE shift, and go to state 630
- T_DEFAULT shift, and go to state 631
+ T_CASE shift, and go to state 631
+ T_DEFAULT shift, and go to state 632
'}' shift, and go to state 672
-state 633
+state 634
- 115 switch_case_list: '{' case_list '}' .
+ 113 switch_case_list: '{' case_list '}' .
- $default reduce using rule 115 (switch_case_list)
+ $default reduce using rule 113 (switch_case_list)
-state 634
+state 635
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list ')' . '{' inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' . '{' inner_statement_list '}'
'{' shift, and go to state 673
-state 635
+state 636
- 144 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type T_VARIABLE
- 145 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE
- 146 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE '=' static_scalar
- 147 | non_empty_parameter_list ',' . optional_class_type T_VARIABLE '=' static_scalar
+ 142 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type T_VARIABLE
+ 143 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE
+ 144 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE '=' static_scalar
+ 145 | non_empty_parameter_list ',' . optional_class_type T_VARIABLE '=' static_scalar
- T_STRING shift, and go to state 573
- T_ARRAY shift, and go to state 574
+ T_STRING shift, and go to state 575
+ T_ARRAY shift, and go to state 576
- $default reduce using rule 148 (optional_class_type)
+ $default reduce using rule 146 (optional_class_type)
optional_class_type go to state 674
-state 636
+state 637
- 141 non_empty_parameter_list: optional_class_type '&' . T_VARIABLE
- 142 | optional_class_type '&' . T_VARIABLE '=' static_scalar
+ 139 non_empty_parameter_list: optional_class_type '&' . T_VARIABLE
+ 140 | optional_class_type '&' . T_VARIABLE '=' static_scalar
T_VARIABLE shift, and go to state 675
-state 637
+state 638
- 140 non_empty_parameter_list: optional_class_type T_VARIABLE .
- 143 | optional_class_type T_VARIABLE . '=' static_scalar
+ 138 non_empty_parameter_list: optional_class_type T_VARIABLE .
+ 141 | optional_class_type T_VARIABLE . '=' static_scalar
'=' shift, and go to state 676
- $default reduce using rule 140 (non_empty_parameter_list)
+ $default reduce using rule 138 (non_empty_parameter_list)
-state 638
+state 639
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 . fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 . fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
T_STRING shift, and go to state 419
fully_qualified_class_name go to state 677
-state 639
-
- 330 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW static_scalar .
-
- $default reduce using rule 330 (non_empty_static_array_pair_list)
-
-
state 640
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . T_DOUBLE_ARROW static_scalar
- 329 | non_empty_static_array_pair_list ',' static_scalar .
+ 328 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW static_scalar .
- T_DOUBLE_ARROW shift, and go to state 678
-
- $default reduce using rule 329 (non_empty_static_array_pair_list)
+ $default reduce using rule 328 (non_empty_static_array_pair_list)
state 641
- 379 assignment_list_element: T_LIST '(' @64 assignment_list ')' .
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . T_DOUBLE_ARROW static_scalar
+ 327 | non_empty_static_array_pair_list ',' static_scalar .
+
+ T_DOUBLE_ARROW shift, and go to state 678
- $default reduce using rule 379 (assignment_list_element)
+ $default reduce using rule 327 (non_empty_static_array_pair_list)
state 642
- 387 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable .
+ 377 assignment_list_element: T_LIST '(' @62 assignment_list ')' .
- $default reduce using rule 387 (non_empty_array_pair_list)
+ $default reduce using rule 377 (assignment_list_element)
state 643
- 408 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' .
+ 385 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable .
- $default reduce using rule 408 (encaps_var)
+ $default reduce using rule 385 (non_empty_array_pair_list)
state 644
- 88 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @31 implements_list '{' class_statement_list '}' .
+ 406 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' .
- $default reduce using rule 88 (unticked_class_declaration_statement)
+ $default reduce using rule 406 (encaps_var)
state 645
- 195 class_constant_declaration: T_CONST T_STRING . '=' static_scalar
+ 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' class_statement_list '}' .
- '=' shift, and go to state 679
+ $default reduce using rule 86 (unticked_class_declaration_statement)
state 646
- 171 class_statement: variable_modifiers @37 . class_variable_declaration ';'
+ 193 class_constant_declaration: T_CONST T_STRING . '=' static_scalar
- T_VARIABLE shift, and go to state 680
-
- class_variable_declaration go to state 681
+ '=' shift, and go to state 679
state 647
- 175 class_statement: method_modifiers T_FUNCTION . @38 is_reference T_STRING @39 '(' parameter_list ')' method_body
+ 169 class_statement: variable_modifiers @35 . class_variable_declaration ';'
- $default reduce using rule 173 (@38)
+ T_VARIABLE shift, and go to state 680
- @38 go to state 682
+ class_variable_declaration go to state 681
state 648
- 183 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
+ 173 class_statement: method_modifiers T_FUNCTION . @36 is_reference T_STRING @37 '(' parameter_list ')' method_body
+
+ $default reduce using rule 171 (@36)
- $default reduce using rule 183 (non_empty_member_modifiers)
+ @36 go to state 682
state 649
- 194 class_constant_declaration: class_constant_declaration ',' . T_STRING '=' static_scalar
+ 181 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
- T_STRING shift, and go to state 683
+ $default reduce using rule 181 (non_empty_member_modifiers)
state 650
- 172 class_statement: class_constant_declaration ';' .
+ 192 class_constant_declaration: class_constant_declaration ',' . T_STRING '=' static_scalar
- $default reduce using rule 172 (class_statement)
+ T_STRING shift, and go to state 683
state 651
- 348 method_or_not: '(' @62 function_call_parameter_list . ')'
+ 170 class_statement: class_constant_declaration ';' .
- ')' shift, and go to state 684
+ $default reduce using rule 170 (class_statement)
state 652
- 346 variable_property: T_OBJECT_OPERATOR . object_property @61 method_or_not
+ 346 method_or_not: '(' @60 function_call_parameter_list . ')'
+
+ ')' shift, and go to state 684
+
+
+state 653
+
+ 344 variable_property: T_OBJECT_OPERATOR . object_property @59 method_or_not
T_STRING shift, and go to state 435
T_VARIABLE shift, and go to state 33
@@ -17505,43 +17506,43 @@ state 652
simple_indirect_reference go to state 311
-state 653
+state 654
- 343 variable_properties: variable_properties variable_property .
+ 341 variable_properties: variable_properties variable_property .
- $default reduce using rule 343 (variable_properties)
+ $default reduce using rule 341 (variable_properties)
-state 654
+state 655
- 296 dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property .
+ 294 dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property .
- $default reduce using rule 296 (dynamic_class_name_variable_property)
+ $default reduce using rule 294 (dynamic_class_name_variable_property)
-state 655
+state 656
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list . new_else_single T_ENDIF ';'
- 133 new_elseif_list: new_elseif_list . T_ELSEIF '(' expr ')' ':' @36 inner_statement_list
+ 131 new_elseif_list: new_elseif_list . T_ELSEIF '(' expr ')' ':' @34 inner_statement_list
T_ELSEIF shift, and go to state 686
T_ELSE shift, and go to state 687
- $default reduce using rule 136 (new_else_single)
+ $default reduce using rule 134 (new_else_single)
new_else_single go to state 688
-state 656
+state 657
- 130 elseif_list: elseif_list T_ELSEIF . '(' expr ')' @35 statement
+ 128 elseif_list: elseif_list T_ELSEIF . '(' expr ')' @33 statement
'(' shift, and go to state 689
-state 657
+state 658
- 135 else_single: T_ELSE . statement
+ 133 else_single: T_ELSE . statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17630,109 +17631,270 @@ state 657
class_constant go to state 101
-state 658
+state 659
20 unticked_statement: T_IF '(' expr ')' @3 statement @4 elseif_list else_single .
$default reduce using rule 20 (unticked_statement)
-state 659
+state 660
29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr ')' ';' .
$default reduce using rule 29 (unticked_statement)
-state 660
+state 661
- 127 while_statement: ':' inner_statement_list T_ENDWHILE . ';'
+ 125 while_statement: ':' inner_statement_list T_ENDWHILE . ';'
';' shift, and go to state 691
-state 661
+state 662
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr . ')' @13 for_statement
')' shift, and go to state 692
-state 662
-
- 104 foreach_optional_arg: T_DOUBLE_ARROW foreach_variable .
-
- $default reduce using rule 104 (foreach_optional_arg)
-
-
state 663
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' . @20 foreach_statement
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 . foreach_statement
- $default reduce using rule 56 (@20)
+ T_REQUIRE_ONCE shift, and go to state 5
+ T_REQUIRE shift, and go to state 6
+ T_EVAL shift, and go to state 7
+ T_INCLUDE_ONCE shift, and go to state 8
+ T_INCLUDE shift, and go to state 9
+ T_PRINT shift, and go to state 10
+ ':' shift, and go to state 693
+ '+' shift, and go to state 11
+ '-' shift, and go to state 12
+ '!' shift, and go to state 13
+ '~' shift, and go to state 14
+ '@' shift, and go to state 15
+ T_UNSET_CAST shift, and go to state 16
+ T_BOOL_CAST shift, and go to state 17
+ T_OBJECT_CAST shift, and go to state 18
+ T_ARRAY_CAST shift, and go to state 19
+ T_STRING_CAST shift, and go to state 20
+ T_DOUBLE_CAST shift, and go to state 21
+ T_INT_CAST shift, and go to state 22
+ T_DEC shift, and go to state 23
+ T_INC shift, and go to state 24
+ T_CLONE shift, and go to state 25
+ T_NEW shift, and go to state 26
+ T_EXIT shift, and go to state 27
+ T_IF shift, and go to state 28
+ T_LNUMBER shift, and go to state 29
+ T_DNUMBER shift, and go to state 30
+ T_STRING shift, and go to state 31
+ T_STRING_VARNAME shift, and go to state 32
+ T_VARIABLE shift, and go to state 33
+ T_INLINE_HTML shift, and go to state 34
+ T_CONSTANT_ENCAPSED_STRING shift, and go to state 35
+ T_ECHO shift, and go to state 36
+ T_DO shift, and go to state 37
+ T_WHILE shift, and go to state 38
+ T_FOR shift, and go to state 39
+ T_FOREACH shift, and go to state 40
+ T_DECLARE shift, and go to state 41
+ T_SWITCH shift, and go to state 42
+ T_BREAK shift, and go to state 43
+ T_CONTINUE shift, and go to state 44
+ T_RETURN shift, and go to state 46
+ T_TRY shift, and go to state 47
+ T_THROW shift, and go to state 48
+ T_USE shift, and go to state 49
+ T_GLOBAL shift, and go to state 50
+ T_STATIC shift, and go to state 53
+ T_UNSET shift, and go to state 54
+ T_ISSET shift, and go to state 55
+ T_EMPTY shift, and go to state 56
+ T_LIST shift, and go to state 60
+ T_ARRAY shift, and go to state 61
+ T_CLASS_C shift, and go to state 62
+ T_METHOD_C shift, and go to state 63
+ T_FUNC_C shift, and go to state 64
+ T_LINE shift, and go to state 65
+ T_FILE shift, and go to state 66
+ T_START_HEREDOC shift, and go to state 67
+ '(' shift, and go to state 68
+ ';' shift, and go to state 69
+ '{' shift, and go to state 70
+ '$' shift, and go to state 71
+ '`' shift, and go to state 72
+ '"' shift, and go to state 73
+ ''' shift, and go to state 74
- @20 go to state 693
+ statement go to state 694
+ unticked_statement go to state 77
+ foreach_statement go to state 695
+ expr_without_variable go to state 84
+ function_call go to state 85
+ fully_qualified_class_name go to state 86
+ common_scalar go to state 87
+ scalar go to state 88
+ expr go to state 89
+ r_variable go to state 90
+ rw_variable go to state 91
+ variable go to state 92
+ variable_without_objects go to state 93
+ static_member go to state 94
+ base_variable_with_function_calls go to state 95
+ base_variable go to state 96
+ reference_variable go to state 97
+ compound_variable go to state 98
+ simple_indirect_reference go to state 99
+ internal_functions_in_yacc go to state 100
+ class_constant go to state 101
state 664
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' . @17 foreach_statement
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 . foreach_statement
- $default reduce using rule 52 (@17)
+ T_REQUIRE_ONCE shift, and go to state 5
+ T_REQUIRE shift, and go to state 6
+ T_EVAL shift, and go to state 7
+ T_INCLUDE_ONCE shift, and go to state 8
+ T_INCLUDE shift, and go to state 9
+ T_PRINT shift, and go to state 10
+ ':' shift, and go to state 693
+ '+' shift, and go to state 11
+ '-' shift, and go to state 12
+ '!' shift, and go to state 13
+ '~' shift, and go to state 14
+ '@' shift, and go to state 15
+ T_UNSET_CAST shift, and go to state 16
+ T_BOOL_CAST shift, and go to state 17
+ T_OBJECT_CAST shift, and go to state 18
+ T_ARRAY_CAST shift, and go to state 19
+ T_STRING_CAST shift, and go to state 20
+ T_DOUBLE_CAST shift, and go to state 21
+ T_INT_CAST shift, and go to state 22
+ T_DEC shift, and go to state 23
+ T_INC shift, and go to state 24
+ T_CLONE shift, and go to state 25
+ T_NEW shift, and go to state 26
+ T_EXIT shift, and go to state 27
+ T_IF shift, and go to state 28
+ T_LNUMBER shift, and go to state 29
+ T_DNUMBER shift, and go to state 30
+ T_STRING shift, and go to state 31
+ T_STRING_VARNAME shift, and go to state 32
+ T_VARIABLE shift, and go to state 33
+ T_INLINE_HTML shift, and go to state 34
+ T_CONSTANT_ENCAPSED_STRING shift, and go to state 35
+ T_ECHO shift, and go to state 36
+ T_DO shift, and go to state 37
+ T_WHILE shift, and go to state 38
+ T_FOR shift, and go to state 39
+ T_FOREACH shift, and go to state 40
+ T_DECLARE shift, and go to state 41
+ T_SWITCH shift, and go to state 42
+ T_BREAK shift, and go to state 43
+ T_CONTINUE shift, and go to state 44
+ T_RETURN shift, and go to state 46
+ T_TRY shift, and go to state 47
+ T_THROW shift, and go to state 48
+ T_USE shift, and go to state 49
+ T_GLOBAL shift, and go to state 50
+ T_STATIC shift, and go to state 53
+ T_UNSET shift, and go to state 54
+ T_ISSET shift, and go to state 55
+ T_EMPTY shift, and go to state 56
+ T_LIST shift, and go to state 60
+ T_ARRAY shift, and go to state 61
+ T_CLASS_C shift, and go to state 62
+ T_METHOD_C shift, and go to state 63
+ T_FUNC_C shift, and go to state 64
+ T_LINE shift, and go to state 65
+ T_FILE shift, and go to state 66
+ T_START_HEREDOC shift, and go to state 67
+ '(' shift, and go to state 68
+ ';' shift, and go to state 69
+ '{' shift, and go to state 70
+ '$' shift, and go to state 71
+ '`' shift, and go to state 72
+ '"' shift, and go to state 73
+ ''' shift, and go to state 74
- @17 go to state 694
+ statement go to state 694
+ unticked_statement go to state 77
+ foreach_statement go to state 696
+ expr_without_variable go to state 84
+ function_call go to state 85
+ fully_qualified_class_name go to state 86
+ common_scalar go to state 87
+ scalar go to state 88
+ expr go to state 89
+ r_variable go to state 90
+ rw_variable go to state 91
+ variable go to state 92
+ variable_without_objects go to state 93
+ static_member go to state 94
+ base_variable_with_function_calls go to state 95
+ base_variable go to state 96
+ reference_variable go to state 97
+ compound_variable go to state 98
+ simple_indirect_reference go to state 99
+ internal_functions_in_yacc go to state 100
+ class_constant go to state 101
state 665
- 112 declare_statement: ':' inner_statement_list T_ENDDECLARE ';' .
+ 110 declare_statement: ':' inner_statement_list T_ENDDECLARE ';' .
- $default reduce using rule 112 (declare_statement)
+ $default reduce using rule 110 (declare_statement)
state 666
- 118 switch_case_list: ':' ';' case_list T_ENDSWITCH . ';'
+ 116 switch_case_list: ':' ';' case_list T_ENDSWITCH . ';'
- ';' shift, and go to state 695
+ ';' shift, and go to state 697
state 667
- 117 switch_case_list: ':' case_list T_ENDSWITCH ';' .
+ 115 switch_case_list: ':' case_list T_ENDSWITCH ';' .
- $default reduce using rule 117 (switch_case_list)
+ $default reduce using rule 115 (switch_case_list)
state 668
- 121 case_list: case_list T_CASE expr . case_separator @33 inner_statement_list
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 119 case_list: case_list T_CASE expr . case_separator @31 inner_statement_list
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -17763,72 +17925,72 @@ state 668
T_INSTANCEOF shift, and go to state 208
';' shift, and go to state 670
- case_separator go to state 696
+ case_separator go to state 698
state 669
- 124 case_separator: ':' .
+ 122 case_separator: ':' .
- $default reduce using rule 124 (case_separator)
+ $default reduce using rule 122 (case_separator)
state 670
- 125 case_separator: ';' .
+ 123 case_separator: ';' .
- $default reduce using rule 125 (case_separator)
+ $default reduce using rule 123 (case_separator)
state 671
- 123 case_list: case_list T_DEFAULT case_separator . @34 inner_statement_list
+ 121 case_list: case_list T_DEFAULT case_separator . @32 inner_statement_list
- $default reduce using rule 122 (@34)
+ $default reduce using rule 120 (@32)
- @34 go to state 697
+ @32 go to state 699
state 672
- 116 switch_case_list: '{' ';' case_list '}' .
+ 114 switch_case_list: '{' ';' case_list '}' .
- $default reduce using rule 116 (switch_case_list)
+ $default reduce using rule 114 (switch_case_list)
state 673
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list ')' '{' . inner_statement_list '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' . inner_statement_list '}'
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 698
+ inner_statement_list go to state 700
state 674
- 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . T_VARIABLE
- 145 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE
- 146 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE '=' static_scalar
- 147 | non_empty_parameter_list ',' optional_class_type . T_VARIABLE '=' static_scalar
+ 142 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . T_VARIABLE
+ 143 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE
+ 144 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE '=' static_scalar
+ 145 | non_empty_parameter_list ',' optional_class_type . T_VARIABLE '=' static_scalar
- '&' shift, and go to state 699
- T_VARIABLE shift, and go to state 700
+ '&' shift, and go to state 701
+ T_VARIABLE shift, and go to state 702
state 675
- 141 non_empty_parameter_list: optional_class_type '&' T_VARIABLE .
- 142 | optional_class_type '&' T_VARIABLE . '=' static_scalar
+ 139 non_empty_parameter_list: optional_class_type '&' T_VARIABLE .
+ 140 | optional_class_type '&' T_VARIABLE . '=' static_scalar
- '=' shift, and go to state 701
+ '=' shift, and go to state 703
- $default reduce using rule 141 (non_empty_parameter_list)
+ $default reduce using rule 139 (non_empty_parameter_list)
state 676
- 143 non_empty_parameter_list: optional_class_type T_VARIABLE '=' . static_scalar
+ 141 non_empty_parameter_list: optional_class_type T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -17844,22 +18006,22 @@ state 676
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 702
+ static_scalar go to state 704
static_class_constant go to state 390
state 677
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name . @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name . @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 63 (@24)
+ $default reduce using rule 61 (@22)
- @24 go to state 703
+ @22 go to state 705
state 678
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW . static_scalar
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -17875,13 +18037,13 @@ state 678
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 704
+ static_scalar go to state 706
static_class_constant go to state 390
state 679
- 195 class_constant_declaration: T_CONST T_STRING '=' . static_scalar
+ 193 class_constant_declaration: T_CONST T_STRING '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -17897,88 +18059,88 @@ state 679
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 705
+ static_scalar go to state 707
static_class_constant go to state 390
state 680
- 192 class_variable_declaration: T_VARIABLE .
- 193 | T_VARIABLE . '=' static_scalar
+ 190 class_variable_declaration: T_VARIABLE .
+ 191 | T_VARIABLE . '=' static_scalar
- '=' shift, and go to state 706
+ '=' shift, and go to state 708
- $default reduce using rule 192 (class_variable_declaration)
+ $default reduce using rule 190 (class_variable_declaration)
state 681
- 171 class_statement: variable_modifiers @37 class_variable_declaration . ';'
- 190 class_variable_declaration: class_variable_declaration . ',' T_VARIABLE
- 191 | class_variable_declaration . ',' T_VARIABLE '=' static_scalar
+ 169 class_statement: variable_modifiers @35 class_variable_declaration . ';'
+ 188 class_variable_declaration: class_variable_declaration . ',' T_VARIABLE
+ 189 | class_variable_declaration . ',' T_VARIABLE '=' static_scalar
- ',' shift, and go to state 707
- ';' shift, and go to state 708
+ ',' shift, and go to state 709
+ ';' shift, and go to state 710
state 682
- 175 class_statement: method_modifiers T_FUNCTION @38 . is_reference T_STRING @39 '(' parameter_list ')' method_body
+ 173 class_statement: method_modifiers T_FUNCTION @36 . is_reference T_STRING @37 '(' parameter_list ')' method_body
'&' shift, and go to state 255
- $default reduce using rule 82 (is_reference)
+ $default reduce using rule 80 (is_reference)
- is_reference go to state 709
+ is_reference go to state 711
state 683
- 194 class_constant_declaration: class_constant_declaration ',' T_STRING . '=' static_scalar
+ 192 class_constant_declaration: class_constant_declaration ',' T_STRING . '=' static_scalar
- '=' shift, and go to state 710
+ '=' shift, and go to state 712
state 684
- 348 method_or_not: '(' @62 function_call_parameter_list ')' .
+ 346 method_or_not: '(' @60 function_call_parameter_list ')' .
- $default reduce using rule 348 (method_or_not)
+ $default reduce using rule 346 (method_or_not)
state 685
- 346 variable_property: T_OBJECT_OPERATOR object_property . @61 method_or_not
+ 344 variable_property: T_OBJECT_OPERATOR object_property . @59 method_or_not
- $default reduce using rule 345 (@61)
+ $default reduce using rule 343 (@59)
- @61 go to state 711
+ @59 go to state 713
state 686
- 133 new_elseif_list: new_elseif_list T_ELSEIF . '(' expr ')' ':' @36 inner_statement_list
+ 131 new_elseif_list: new_elseif_list T_ELSEIF . '(' expr ')' ':' @34 inner_statement_list
- '(' shift, and go to state 712
+ '(' shift, and go to state 714
state 687
- 137 new_else_single: T_ELSE . ':' inner_statement_list
+ 135 new_else_single: T_ELSE . ':' inner_statement_list
- ':' shift, and go to state 713
+ ':' shift, and go to state 715
state 688
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single . T_ENDIF ';'
- T_ENDIF shift, and go to state 714
+ T_ENDIF shift, and go to state 716
state 689
- 130 elseif_list: elseif_list T_ELSEIF '(' . expr ')' @35 statement
+ 128 elseif_list: elseif_list T_ELSEIF '(' . expr ')' @33 statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -18030,7 +18192,7 @@ state 689
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 715
+ expr go to state 717
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -18047,16 +18209,16 @@ state 689
state 690
- 135 else_single: T_ELSE statement .
+ 133 else_single: T_ELSE statement .
- $default reduce using rule 135 (else_single)
+ $default reduce using rule 133 (else_single)
state 691
- 127 while_statement: ':' inner_statement_list T_ENDWHILE ';' .
+ 125 while_statement: ':' inner_statement_list T_ENDWHILE ';' .
- $default reduce using rule 127 (while_statement)
+ $default reduce using rule 125 (while_statement)
state 692
@@ -18065,253 +18227,97 @@ state 692
$default reduce using rule 32 (@13)
- @13 go to state 716
+ @13 go to state 718
state 693
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' @20 . foreach_statement
+ 108 foreach_statement: ':' . inner_statement_list T_ENDFOREACH ';'
- T_REQUIRE_ONCE shift, and go to state 5
- T_REQUIRE shift, and go to state 6
- T_EVAL shift, and go to state 7
- T_INCLUDE_ONCE shift, and go to state 8
- T_INCLUDE shift, and go to state 9
- T_PRINT shift, and go to state 10
- ':' shift, and go to state 717
- '+' shift, and go to state 11
- '-' shift, and go to state 12
- '!' shift, and go to state 13
- '~' shift, and go to state 14
- '@' shift, and go to state 15
- T_UNSET_CAST shift, and go to state 16
- T_BOOL_CAST shift, and go to state 17
- T_OBJECT_CAST shift, and go to state 18
- T_ARRAY_CAST shift, and go to state 19
- T_STRING_CAST shift, and go to state 20
- T_DOUBLE_CAST shift, and go to state 21
- T_INT_CAST shift, and go to state 22
- T_DEC shift, and go to state 23
- T_INC shift, and go to state 24
- T_CLONE shift, and go to state 25
- T_NEW shift, and go to state 26
- T_EXIT shift, and go to state 27
- T_IF shift, and go to state 28
- T_LNUMBER shift, and go to state 29
- T_DNUMBER shift, and go to state 30
- T_STRING shift, and go to state 31
- T_STRING_VARNAME shift, and go to state 32
- T_VARIABLE shift, and go to state 33
- T_INLINE_HTML shift, and go to state 34
- T_CONSTANT_ENCAPSED_STRING shift, and go to state 35
- T_ECHO shift, and go to state 36
- T_DO shift, and go to state 37
- T_WHILE shift, and go to state 38
- T_FOR shift, and go to state 39
- T_FOREACH shift, and go to state 40
- T_DECLARE shift, and go to state 41
- T_SWITCH shift, and go to state 42
- T_BREAK shift, and go to state 43
- T_CONTINUE shift, and go to state 44
- T_RETURN shift, and go to state 46
- T_TRY shift, and go to state 47
- T_THROW shift, and go to state 48
- T_USE shift, and go to state 49
- T_GLOBAL shift, and go to state 50
- T_STATIC shift, and go to state 53
- T_UNSET shift, and go to state 54
- T_ISSET shift, and go to state 55
- T_EMPTY shift, and go to state 56
- T_LIST shift, and go to state 60
- T_ARRAY shift, and go to state 61
- T_CLASS_C shift, and go to state 62
- T_METHOD_C shift, and go to state 63
- T_FUNC_C shift, and go to state 64
- T_LINE shift, and go to state 65
- T_FILE shift, and go to state 66
- T_START_HEREDOC shift, and go to state 67
- '(' shift, and go to state 68
- ';' shift, and go to state 69
- '{' shift, and go to state 70
- '$' shift, and go to state 71
- '`' shift, and go to state 72
- '"' shift, and go to state 73
- ''' shift, and go to state 74
+ $default reduce using rule 11 (inner_statement_list)
- statement go to state 718
- unticked_statement go to state 77
- foreach_statement go to state 719
- expr_without_variable go to state 84
- function_call go to state 85
- fully_qualified_class_name go to state 86
- common_scalar go to state 87
- scalar go to state 88
- expr go to state 89
- r_variable go to state 90
- rw_variable go to state 91
- variable go to state 92
- variable_without_objects go to state 93
- static_member go to state 94
- base_variable_with_function_calls go to state 95
- base_variable go to state 96
- reference_variable go to state 97
- compound_variable go to state 98
- simple_indirect_reference go to state 99
- internal_functions_in_yacc go to state 100
- class_constant go to state 101
+ inner_statement_list go to state 719
state 694
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 . foreach_statement
+ 107 foreach_statement: statement .
- T_REQUIRE_ONCE shift, and go to state 5
- T_REQUIRE shift, and go to state 6
- T_EVAL shift, and go to state 7
- T_INCLUDE_ONCE shift, and go to state 8
- T_INCLUDE shift, and go to state 9
- T_PRINT shift, and go to state 10
- ':' shift, and go to state 717
- '+' shift, and go to state 11
- '-' shift, and go to state 12
- '!' shift, and go to state 13
- '~' shift, and go to state 14
- '@' shift, and go to state 15
- T_UNSET_CAST shift, and go to state 16
- T_BOOL_CAST shift, and go to state 17
- T_OBJECT_CAST shift, and go to state 18
- T_ARRAY_CAST shift, and go to state 19
- T_STRING_CAST shift, and go to state 20
- T_DOUBLE_CAST shift, and go to state 21
- T_INT_CAST shift, and go to state 22
- T_DEC shift, and go to state 23
- T_INC shift, and go to state 24
- T_CLONE shift, and go to state 25
- T_NEW shift, and go to state 26
- T_EXIT shift, and go to state 27
- T_IF shift, and go to state 28
- T_LNUMBER shift, and go to state 29
- T_DNUMBER shift, and go to state 30
- T_STRING shift, and go to state 31
- T_STRING_VARNAME shift, and go to state 32
- T_VARIABLE shift, and go to state 33
- T_INLINE_HTML shift, and go to state 34
- T_CONSTANT_ENCAPSED_STRING shift, and go to state 35
- T_ECHO shift, and go to state 36
- T_DO shift, and go to state 37
- T_WHILE shift, and go to state 38
- T_FOR shift, and go to state 39
- T_FOREACH shift, and go to state 40
- T_DECLARE shift, and go to state 41
- T_SWITCH shift, and go to state 42
- T_BREAK shift, and go to state 43
- T_CONTINUE shift, and go to state 44
- T_RETURN shift, and go to state 46
- T_TRY shift, and go to state 47
- T_THROW shift, and go to state 48
- T_USE shift, and go to state 49
- T_GLOBAL shift, and go to state 50
- T_STATIC shift, and go to state 53
- T_UNSET shift, and go to state 54
- T_ISSET shift, and go to state 55
- T_EMPTY shift, and go to state 56
- T_LIST shift, and go to state 60
- T_ARRAY shift, and go to state 61
- T_CLASS_C shift, and go to state 62
- T_METHOD_C shift, and go to state 63
- T_FUNC_C shift, and go to state 64
- T_LINE shift, and go to state 65
- T_FILE shift, and go to state 66
- T_START_HEREDOC shift, and go to state 67
- '(' shift, and go to state 68
- ';' shift, and go to state 69
- '{' shift, and go to state 70
- '$' shift, and go to state 71
- '`' shift, and go to state 72
- '"' shift, and go to state 73
- ''' shift, and go to state 74
-
- statement go to state 718
- unticked_statement go to state 77
- foreach_statement go to state 720
- expr_without_variable go to state 84
- function_call go to state 85
- fully_qualified_class_name go to state 86
- common_scalar go to state 87
- scalar go to state 88
- expr go to state 89
- r_variable go to state 90
- rw_variable go to state 91
- variable go to state 92
- variable_without_objects go to state 93
- static_member go to state 94
- base_variable_with_function_calls go to state 95
- base_variable go to state 96
- reference_variable go to state 97
- compound_variable go to state 98
- simple_indirect_reference go to state 99
- internal_functions_in_yacc go to state 100
- class_constant go to state 101
+ $default reduce using rule 107 (foreach_statement)
state 695
- 118 switch_case_list: ':' ';' case_list T_ENDSWITCH ';' .
+ 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement .
- $default reduce using rule 118 (switch_case_list)
+ $default reduce using rule 55 (unticked_statement)
state 696
- 121 case_list: case_list T_CASE expr case_separator . @33 inner_statement_list
+ 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement .
- $default reduce using rule 120 (@33)
-
- @33 go to state 721
+ $default reduce using rule 52 (unticked_statement)
state 697
- 123 case_list: case_list T_DEFAULT case_separator @34 . inner_statement_list
+ 116 switch_case_list: ':' ';' case_list T_ENDSWITCH ';' .
+
+ $default reduce using rule 116 (switch_case_list)
+
+
+state 698
+
+ 119 case_list: case_list T_CASE expr case_separator . @31 inner_statement_list
+
+ $default reduce using rule 118 (@31)
+
+ @31 go to state 720
+
+
+state 699
+
+ 121 case_list: case_list T_DEFAULT case_separator @32 . inner_statement_list
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 722
+ inner_statement_list go to state 721
-state 698
+state 700
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list ')' '{' inner_statement_list . '}'
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list . '}'
- '}' shift, and go to state 723
+ '}' shift, and go to state 722
$default reduce using rule 9 (@2)
@2 go to state 300
-state 699
+state 701
- 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE
- 146 | non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE '=' static_scalar
+ 143 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE
+ 144 | non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE '=' static_scalar
- T_VARIABLE shift, and go to state 724
+ T_VARIABLE shift, and go to state 723
-state 700
+state 702
- 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE .
- 147 | non_empty_parameter_list ',' optional_class_type T_VARIABLE . '=' static_scalar
+ 142 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE .
+ 145 | non_empty_parameter_list ',' optional_class_type T_VARIABLE . '=' static_scalar
- '=' shift, and go to state 725
+ '=' shift, and go to state 724
- $default reduce using rule 144 (non_empty_parameter_list)
+ $default reduce using rule 142 (non_empty_parameter_list)
-state 701
+state 703
- 142 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' . static_scalar
+ 140 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -18327,41 +18333,41 @@ state 701
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 726
+ static_scalar go to state 725
static_class_constant go to state 390
-state 702
+state 704
- 143 non_empty_parameter_list: optional_class_type T_VARIABLE '=' static_scalar .
+ 141 non_empty_parameter_list: optional_class_type T_VARIABLE '=' static_scalar .
- $default reduce using rule 143 (non_empty_parameter_list)
+ $default reduce using rule 141 (non_empty_parameter_list)
-state 703
+state 705
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 . T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 . T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches
- T_VARIABLE shift, and go to state 727
+ T_VARIABLE shift, and go to state 726
-state 704
+state 706
- 328 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar .
+ 326 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar .
- $default reduce using rule 328 (non_empty_static_array_pair_list)
+ $default reduce using rule 326 (non_empty_static_array_pair_list)
-state 705
+state 707
- 195 class_constant_declaration: T_CONST T_STRING '=' static_scalar .
+ 193 class_constant_declaration: T_CONST T_STRING '=' static_scalar .
- $default reduce using rule 195 (class_constant_declaration)
+ $default reduce using rule 193 (class_constant_declaration)
-state 706
+state 708
- 193 class_variable_declaration: T_VARIABLE '=' . static_scalar
+ 191 class_variable_declaration: T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -18377,35 +18383,35 @@ state 706
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 728
+ static_scalar go to state 727
static_class_constant go to state 390
-state 707
+state 709
- 190 class_variable_declaration: class_variable_declaration ',' . T_VARIABLE
- 191 | class_variable_declaration ',' . T_VARIABLE '=' static_scalar
+ 188 class_variable_declaration: class_variable_declaration ',' . T_VARIABLE
+ 189 | class_variable_declaration ',' . T_VARIABLE '=' static_scalar
- T_VARIABLE shift, and go to state 729
+ T_VARIABLE shift, and go to state 728
-state 708
+state 710
- 171 class_statement: variable_modifiers @37 class_variable_declaration ';' .
+ 169 class_statement: variable_modifiers @35 class_variable_declaration ';' .
- $default reduce using rule 171 (class_statement)
+ $default reduce using rule 169 (class_statement)
-state 709
+state 711
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference . T_STRING @39 '(' parameter_list ')' method_body
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference . T_STRING @37 '(' parameter_list ')' method_body
- T_STRING shift, and go to state 730
+ T_STRING shift, and go to state 729
-state 710
+state 712
- 194 class_constant_declaration: class_constant_declaration ',' T_STRING '=' . static_scalar
+ 192 class_constant_declaration: class_constant_declaration ',' T_STRING '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -18421,24 +18427,24 @@ state 710
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 731
+ static_scalar go to state 730
static_class_constant go to state 390
-state 711
+state 713
- 346 variable_property: T_OBJECT_OPERATOR object_property @61 . method_or_not
+ 344 variable_property: T_OBJECT_OPERATOR object_property @59 . method_or_not
- '(' shift, and go to state 550
+ '(' shift, and go to state 552
- $default reduce using rule 349 (method_or_not)
+ $default reduce using rule 347 (method_or_not)
- method_or_not go to state 732
+ method_or_not go to state 731
-state 712
+state 714
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' . expr ')' ':' @36 inner_statement_list
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' . expr ')' ':' @34 inner_statement_list
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -18490,7 +18496,7 @@ state 712
fully_qualified_class_name go to state 86
common_scalar go to state 87
scalar go to state 88
- expr go to state 733
+ expr go to state 732
r_variable go to state 90
rw_variable go to state 91
variable go to state 92
@@ -18505,51 +18511,51 @@ state 712
class_constant go to state 101
-state 713
+state 715
- 137 new_else_single: T_ELSE ':' . inner_statement_list
+ 135 new_else_single: T_ELSE ':' . inner_statement_list
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 734
+ inner_statement_list go to state 733
-state 714
+state 716
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF . ';'
- ';' shift, and go to state 735
+ ';' shift, and go to state 734
-state 715
+state 717
- 130 elseif_list: elseif_list T_ELSEIF '(' expr . ')' @35 statement
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 128 elseif_list: elseif_list T_ELSEIF '(' expr . ')' @33 statement
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -18577,10 +18583,10 @@ state 715
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- ')' shift, and go to state 736
+ ')' shift, and go to state 735
-state 716
+state 718
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr ')' @13 . for_statement
@@ -18590,7 +18596,7 @@ state 716
T_INCLUDE_ONCE shift, and go to state 8
T_INCLUDE shift, and go to state 9
T_PRINT shift, and go to state 10
- ':' shift, and go to state 737
+ ':' shift, and go to state 736
'+' shift, and go to state 11
'-' shift, and go to state 12
'!' shift, and go to state 13
@@ -18650,9 +18656,9 @@ state 716
'"' shift, and go to state 73
''' shift, and go to state 74
- statement go to state 738
+ statement go to state 737
unticked_statement go to state 77
- for_statement go to state 739
+ for_statement go to state 738
expr_without_variable go to state 84
function_call go to state 85
fully_qualified_class_name go to state 86
@@ -18673,79 +18679,61 @@ state 716
class_constant go to state 101
-state 717
-
- 110 foreach_statement: ':' . inner_statement_list T_ENDFOREACH ';'
-
- $default reduce using rule 11 (inner_statement_list)
-
- inner_statement_list go to state 740
-
-
-state 718
-
- 109 foreach_statement: statement .
-
- $default reduce using rule 109 (foreach_statement)
-
-
state 719
- 57 unticked_statement: T_FOREACH '(' expr_without_variable @18 T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement .
-
- $default reduce using rule 57 (unticked_statement)
+ 10 inner_statement_list: inner_statement_list . @2 inner_statement
+ 108 foreach_statement: ':' inner_statement_list . T_ENDFOREACH ';'
+ T_ENDFOREACH shift, and go to state 739
-state 720
-
- 53 unticked_statement: T_FOREACH '(' variable @15 T_AS @16 foreach_variable foreach_optional_arg ')' @17 foreach_statement .
+ $default reduce using rule 9 (@2)
- $default reduce using rule 53 (unticked_statement)
+ @2 go to state 300
-state 721
+state 720
- 121 case_list: case_list T_CASE expr case_separator @33 . inner_statement_list
+ 119 case_list: case_list T_CASE expr case_separator @31 . inner_statement_list
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 741
+ inner_statement_list go to state 740
-state 722
+state 721
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 123 case_list: case_list T_DEFAULT case_separator @34 inner_statement_list .
+ 121 case_list: case_list T_DEFAULT case_separator @32 inner_statement_list .
- T_ENDSWITCH reduce using rule 123 (case_list)
- T_CASE reduce using rule 123 (case_list)
- T_DEFAULT reduce using rule 123 (case_list)
- '}' reduce using rule 123 (case_list)
+ T_ENDSWITCH reduce using rule 121 (case_list)
+ T_CASE reduce using rule 121 (case_list)
+ T_DEFAULT reduce using rule 121 (case_list)
+ '}' reduce using rule 121 (case_list)
$default reduce using rule 9 (@2)
@2 go to state 300
-state 723
+state 722
- 86 unticked_function_declaration_statement: T_FUNCTION @29 is_reference T_STRING @30 '(' parameter_list ')' '{' inner_statement_list '}' .
+ 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}' .
- $default reduce using rule 86 (unticked_function_declaration_statement)
+ $default reduce using rule 84 (unticked_function_declaration_statement)
-state 724
+state 723
- 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE .
- 146 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE . '=' static_scalar
+ 143 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE .
+ 144 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE . '=' static_scalar
- '=' shift, and go to state 742
+ '=' shift, and go to state 741
- $default reduce using rule 145 (non_empty_parameter_list)
+ $default reduce using rule 143 (non_empty_parameter_list)
-state 725
+state 724
- 147 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' . static_scalar
+ 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -18761,93 +18749,93 @@ state 725
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 743
+ static_scalar go to state 742
static_class_constant go to state 390
+state 725
+
+ 140 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' static_scalar .
+
+ $default reduce using rule 140 (non_empty_parameter_list)
+
+
state 726
- 142 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' static_scalar .
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE . ')' @23 '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 142 (non_empty_parameter_list)
+ ')' shift, and go to state 743
state 727
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE . ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 191 class_variable_declaration: T_VARIABLE '=' static_scalar .
- ')' shift, and go to state 744
+ $default reduce using rule 191 (class_variable_declaration)
state 728
- 193 class_variable_declaration: T_VARIABLE '=' static_scalar .
+ 188 class_variable_declaration: class_variable_declaration ',' T_VARIABLE .
+ 189 | class_variable_declaration ',' T_VARIABLE . '=' static_scalar
+
+ '=' shift, and go to state 744
- $default reduce using rule 193 (class_variable_declaration)
+ $default reduce using rule 188 (class_variable_declaration)
state 729
- 190 class_variable_declaration: class_variable_declaration ',' T_VARIABLE .
- 191 | class_variable_declaration ',' T_VARIABLE . '=' static_scalar
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING . @37 '(' parameter_list ')' method_body
- '=' shift, and go to state 745
+ $default reduce using rule 172 (@37)
- $default reduce using rule 190 (class_variable_declaration)
+ @37 go to state 745
state 730
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING . @39 '(' parameter_list ')' method_body
-
- $default reduce using rule 174 (@39)
+ 192 class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar .
- @39 go to state 746
+ $default reduce using rule 192 (class_constant_declaration)
state 731
- 194 class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar .
+ 344 variable_property: T_OBJECT_OPERATOR object_property @59 method_or_not .
- $default reduce using rule 194 (class_constant_declaration)
+ $default reduce using rule 344 (variable_property)
state 732
- 346 variable_property: T_OBJECT_OPERATOR object_property @61 method_or_not .
-
- $default reduce using rule 346 (variable_property)
-
-
-state 733
-
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr . ')' ':' @36 inner_statement_list
- 228 expr_without_variable: expr . T_BOOLEAN_OR @44 expr
- 230 | expr . T_BOOLEAN_AND @45 expr
- 232 | expr . T_LOGICAL_OR @46 expr
- 234 | expr . T_LOGICAL_AND @47 expr
- 235 | expr . T_LOGICAL_XOR expr
- 236 | expr . '|' expr
- 237 | expr . '&' expr
- 238 | expr . '^' expr
- 239 | expr . '.' expr
- 240 | expr . '+' expr
- 241 | expr . '-' expr
- 242 | expr . '*' expr
- 243 | expr . '/' expr
- 244 | expr . '%' expr
- 245 | expr . T_SL expr
- 246 | expr . T_SR expr
- 251 | expr . T_IS_IDENTICAL expr
- 252 | expr . T_IS_NOT_IDENTICAL expr
- 253 | expr . T_IS_EQUAL expr
- 254 | expr . T_IS_NOT_EQUAL expr
- 255 | expr . '<' expr
- 256 | expr . T_IS_SMALLER_OR_EQUAL expr
- 257 | expr . '>' expr
- 258 | expr . T_IS_GREATER_OR_EQUAL expr
- 259 | expr . T_INSTANCEOF class_name_reference
- 263 | expr . '?' @48 expr ':' @49 expr
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr . ')' ':' @34 inner_statement_list
+ 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
+ 228 | expr . T_BOOLEAN_AND @43 expr
+ 230 | expr . T_LOGICAL_OR @44 expr
+ 232 | expr . T_LOGICAL_AND @45 expr
+ 233 | expr . T_LOGICAL_XOR expr
+ 234 | expr . '|' expr
+ 235 | expr . '&' expr
+ 236 | expr . '^' expr
+ 237 | expr . '.' expr
+ 238 | expr . '+' expr
+ 239 | expr . '-' expr
+ 240 | expr . '*' expr
+ 241 | expr . '/' expr
+ 242 | expr . '%' expr
+ 243 | expr . T_SL expr
+ 244 | expr . T_SR expr
+ 249 | expr . T_IS_IDENTICAL expr
+ 250 | expr . T_IS_NOT_IDENTICAL expr
+ 251 | expr . T_IS_EQUAL expr
+ 252 | expr . T_IS_NOT_EQUAL expr
+ 253 | expr . '<' expr
+ 254 | expr . T_IS_SMALLER_OR_EQUAL expr
+ 255 | expr . '>' expr
+ 256 | expr . T_IS_GREATER_OR_EQUAL expr
+ 257 | expr . T_INSTANCEOF class_name_reference
+ 261 | expr . '?' @46 expr ':' @47 expr
T_LOGICAL_OR shift, and go to state 183
T_LOGICAL_XOR shift, and go to state 184
@@ -18875,88 +18863,83 @@ state 733
'/' shift, and go to state 206
'%' shift, and go to state 207
T_INSTANCEOF shift, and go to state 208
- ')' shift, and go to state 747
+ ')' shift, and go to state 746
-state 734
+state 733
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 137 new_else_single: T_ELSE ':' inner_statement_list .
+ 135 new_else_single: T_ELSE ':' inner_statement_list .
- T_ENDIF reduce using rule 137 (new_else_single)
+ T_ENDIF reduce using rule 135 (new_else_single)
$default reduce using rule 9 (@2)
@2 go to state 300
-state 735
+state 734
23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' .
$default reduce using rule 23 (unticked_statement)
-state 736
+state 735
- 130 elseif_list: elseif_list T_ELSEIF '(' expr ')' . @35 statement
+ 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' . @33 statement
- $default reduce using rule 129 (@35)
+ $default reduce using rule 127 (@33)
- @35 go to state 748
+ @33 go to state 747
-state 737
+state 736
- 108 for_statement: ':' . inner_statement_list T_ENDFOR ';'
+ 106 for_statement: ':' . inner_statement_list T_ENDFOR ';'
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 749
+ inner_statement_list go to state 748
-state 738
+state 737
- 107 for_statement: statement .
+ 105 for_statement: statement .
- $default reduce using rule 107 (for_statement)
+ $default reduce using rule 105 (for_statement)
-state 739
+state 738
33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr ')' @13 for_statement .
$default reduce using rule 33 (unticked_statement)
-state 740
+state 739
- 10 inner_statement_list: inner_statement_list . @2 inner_statement
- 110 foreach_statement: ':' inner_statement_list . T_ENDFOREACH ';'
+ 108 foreach_statement: ':' inner_statement_list T_ENDFOREACH . ';'
- T_ENDFOREACH shift, and go to state 750
+ ';' shift, and go to state 749
- $default reduce using rule 9 (@2)
- @2 go to state 300
-
-
-state 741
+state 740
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 121 case_list: case_list T_CASE expr case_separator @33 inner_statement_list .
+ 119 case_list: case_list T_CASE expr case_separator @31 inner_statement_list .
- T_ENDSWITCH reduce using rule 121 (case_list)
- T_CASE reduce using rule 121 (case_list)
- T_DEFAULT reduce using rule 121 (case_list)
- '}' reduce using rule 121 (case_list)
+ T_ENDSWITCH reduce using rule 119 (case_list)
+ T_CASE reduce using rule 119 (case_list)
+ T_DEFAULT reduce using rule 119 (case_list)
+ '}' reduce using rule 119 (case_list)
$default reduce using rule 9 (@2)
@2 go to state 300
-state 742
+state 741
- 146 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' . static_scalar
+ 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -18972,29 +18955,29 @@ state 742
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 751
+ static_scalar go to state 750
static_class_constant go to state 390
-state 743
+state 742
- 147 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar .
+ 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar .
- $default reduce using rule 147 (non_empty_parameter_list)
+ $default reduce using rule 145 (non_empty_parameter_list)
-state 744
+state 743
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' . @25 '{' inner_statement_list '}' @26 additional_catches
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' . @23 '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 64 (@25)
+ $default reduce using rule 62 (@23)
- @25 go to state 752
+ @23 go to state 751
-state 745
+state 744
- 191 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' . static_scalar
+ 189 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' . static_scalar
'+' shift, and go to state 384
'-' shift, and go to state 385
@@ -19010,27 +18993,27 @@ state 745
T_FILE shift, and go to state 66
common_scalar go to state 388
- static_scalar go to state 753
+ static_scalar go to state 752
static_class_constant go to state 390
-state 746
+state 745
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 . '(' parameter_list ')' method_body
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 . '(' parameter_list ')' method_body
- '(' shift, and go to state 754
+ '(' shift, and go to state 753
-state 747
+state 746
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' . ':' @36 inner_statement_list
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' . ':' @34 inner_statement_list
- ':' shift, and go to state 755
+ ':' shift, and go to state 754
-state 748
+state 747
- 130 elseif_list: elseif_list T_ELSEIF '(' expr ')' @35 . statement
+ 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' @33 . statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -19097,7 +19080,7 @@ state 748
'"' shift, and go to state 73
''' shift, and go to state 74
- statement go to state 756
+ statement go to state 755
unticked_statement go to state 77
expr_without_variable go to state 84
function_call go to state 85
@@ -19119,94 +19102,103 @@ state 748
class_constant go to state 101
-state 749
+state 748
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 108 for_statement: ':' inner_statement_list . T_ENDFOR ';'
+ 106 for_statement: ':' inner_statement_list . T_ENDFOR ';'
- T_ENDFOR shift, and go to state 757
+ T_ENDFOR shift, and go to state 756
$default reduce using rule 9 (@2)
@2 go to state 300
+state 749
+
+ 108 foreach_statement: ':' inner_statement_list T_ENDFOREACH ';' .
+
+ $default reduce using rule 108 (foreach_statement)
+
+
state 750
- 110 foreach_statement: ':' inner_statement_list T_ENDFOREACH . ';'
+ 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar .
- ';' shift, and go to state 758
+ $default reduce using rule 144 (non_empty_parameter_list)
state 751
- 146 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar .
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 . '{' inner_statement_list '}' @24 additional_catches
- $default reduce using rule 146 (non_empty_parameter_list)
+ '{' shift, and go to state 757
state 752
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 . '{' inner_statement_list '}' @26 additional_catches
+ 189 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' static_scalar .
- '{' shift, and go to state 759
+ $default reduce using rule 189 (class_variable_declaration)
state 753
- 191 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' static_scalar .
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' . parameter_list ')' method_body
- $default reduce using rule 191 (class_variable_declaration)
+ T_STRING shift, and go to state 575
+ T_ARRAY shift, and go to state 576
+ ')' reduce using rule 137 (parameter_list)
+ $default reduce using rule 146 (optional_class_type)
-state 754
+ parameter_list go to state 758
+ non_empty_parameter_list go to state 578
+ optional_class_type go to state 579
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 '(' . parameter_list ')' method_body
- T_STRING shift, and go to state 573
- T_ARRAY shift, and go to state 574
+state 754
- ')' reduce using rule 139 (parameter_list)
- $default reduce using rule 148 (optional_class_type)
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' . @34 inner_statement_list
- parameter_list go to state 760
- non_empty_parameter_list go to state 576
- optional_class_type go to state 577
+ $default reduce using rule 130 (@34)
+ @34 go to state 759
-state 755
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' . @36 inner_statement_list
+state 755
- $default reduce using rule 132 (@36)
+ 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' @33 statement .
- @36 go to state 761
+ $default reduce using rule 128 (elseif_list)
state 756
- 130 elseif_list: elseif_list T_ELSEIF '(' expr ')' @35 statement .
+ 106 for_statement: ':' inner_statement_list T_ENDFOR . ';'
- $default reduce using rule 130 (elseif_list)
+ ';' shift, and go to state 760
state 757
- 108 for_statement: ':' inner_statement_list T_ENDFOR . ';'
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' . inner_statement_list '}' @24 additional_catches
+
+ $default reduce using rule 11 (inner_statement_list)
- ';' shift, and go to state 762
+ inner_statement_list go to state 761
state 758
- 110 foreach_statement: ':' inner_statement_list T_ENDFOREACH ';' .
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list . ')' method_body
- $default reduce using rule 110 (foreach_statement)
+ ')' shift, and go to state 762
state 759
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' . inner_statement_list '}' @26 additional_catches
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @34 . inner_statement_list
$default reduce using rule 11 (inner_statement_list)
@@ -19215,34 +19207,41 @@ state 759
state 760
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 '(' parameter_list . ')' method_body
+ 106 for_statement: ':' inner_statement_list T_ENDFOR ';' .
- ')' shift, and go to state 764
+ $default reduce using rule 106 (for_statement)
state 761
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @36 . inner_statement_list
+ 10 inner_statement_list: inner_statement_list . @2 inner_statement
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list . '}' @24 additional_catches
- $default reduce using rule 11 (inner_statement_list)
+ '}' shift, and go to state 764
- inner_statement_list go to state 765
+ $default reduce using rule 9 (@2)
+
+ @2 go to state 300
state 762
- 108 for_statement: ':' inner_statement_list T_ENDFOR ';' .
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' . method_body
- $default reduce using rule 108 (for_statement)
+ ';' shift, and go to state 765
+ '{' shift, and go to state 766
+
+ method_body go to state 767
state 763
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list . '}' @26 additional_catches
-
- '}' shift, and go to state 766
+ 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @34 inner_statement_list .
+ T_ELSEIF reduce using rule 131 (new_elseif_list)
+ T_ELSE reduce using rule 131 (new_elseif_list)
+ T_ENDIF reduce using rule 131 (new_elseif_list)
$default reduce using rule 9 (@2)
@2 go to state 300
@@ -19250,202 +19249,179 @@ state 763
state 764
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 '(' parameter_list ')' . method_body
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' . @24 additional_catches
- ';' shift, and go to state 767
- '{' shift, and go to state 768
+ $default reduce using rule 63 (@24)
- method_body go to state 769
+ @24 go to state 768
state 765
- 10 inner_statement_list: inner_statement_list . @2 inner_statement
- 133 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @36 inner_statement_list .
+ 174 method_body: ';' .
- T_ELSEIF reduce using rule 133 (new_elseif_list)
- T_ELSE reduce using rule 133 (new_elseif_list)
- T_ENDIF reduce using rule 133 (new_elseif_list)
- $default reduce using rule 9 (@2)
-
- @2 go to state 300
+ $default reduce using rule 174 (method_body)
state 766
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' . @26 additional_catches
+ 175 method_body: '{' . inner_statement_list '}'
- $default reduce using rule 65 (@26)
+ $default reduce using rule 11 (inner_statement_list)
- @26 go to state 770
+ inner_statement_list go to state 769
state 767
- 176 method_body: ';' .
+ 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' method_body .
- $default reduce using rule 176 (method_body)
+ $default reduce using rule 173 (class_statement)
state 768
- 177 method_body: '{' . inner_statement_list '}'
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 . additional_catches
- $default reduce using rule 11 (inner_statement_list)
+ T_CATCH shift, and go to state 770
- inner_statement_list go to state 771
+ $default reduce using rule 67 (additional_catches)
+
+ additional_catches go to state 771
+ non_empty_additional_catches go to state 772
+ additional_catch go to state 773
state 769
- 175 class_statement: method_modifiers T_FUNCTION @38 is_reference T_STRING @39 '(' parameter_list ')' method_body .
+ 10 inner_statement_list: inner_statement_list . @2 inner_statement
+ 175 method_body: '{' inner_statement_list . '}'
- $default reduce using rule 175 (class_statement)
+ '}' shift, and go to state 774
+ $default reduce using rule 9 (@2)
-state 770
+ @2 go to state 300
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 . additional_catches
- T_CATCH shift, and go to state 772
+state 770
- $default reduce using rule 69 (additional_catches)
+ 72 additional_catch: T_CATCH . '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}'
- additional_catches go to state 773
- non_empty_additional_catches go to state 774
- additional_catch go to state 775
+ '(' shift, and go to state 775
state 771
- 10 inner_statement_list: inner_statement_list . @2 inner_statement
- 177 method_body: '{' inner_statement_list . '}'
+ 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches .
- '}' shift, and go to state 776
+ $default reduce using rule 64 (unticked_statement)
- $default reduce using rule 9 (@2)
- @2 go to state 300
+state 772
+ 66 additional_catches: non_empty_additional_catches .
+ 69 non_empty_additional_catches: non_empty_additional_catches . additional_catch
-state 772
+ T_CATCH shift, and go to state 770
- 74 additional_catch: T_CATCH . '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ $default reduce using rule 66 (additional_catches)
- '(' shift, and go to state 777
+ additional_catch go to state 776
state 773
- 66 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches .
+ 68 non_empty_additional_catches: additional_catch .
- $default reduce using rule 66 (unticked_statement)
+ $default reduce using rule 68 (non_empty_additional_catches)
state 774
- 68 additional_catches: non_empty_additional_catches .
- 71 non_empty_additional_catches: non_empty_additional_catches . additional_catch
-
- T_CATCH shift, and go to state 772
-
- $default reduce using rule 68 (additional_catches)
+ 175 method_body: '{' inner_statement_list '}' .
- additional_catch go to state 778
+ $default reduce using rule 175 (method_body)
state 775
- 70 non_empty_additional_catches: additional_catch .
+ 72 additional_catch: T_CATCH '(' . fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}'
- $default reduce using rule 70 (non_empty_additional_catches)
+ T_STRING shift, and go to state 419
+
+ fully_qualified_class_name go to state 777
state 776
- 177 method_body: '{' inner_statement_list '}' .
+ 69 non_empty_additional_catches: non_empty_additional_catches additional_catch .
- $default reduce using rule 177 (method_body)
+ $default reduce using rule 69 (non_empty_additional_catches)
state 777
- 74 additional_catch: T_CATCH '(' . fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name . @25 T_VARIABLE ')' @26 '{' inner_statement_list '}'
- T_STRING shift, and go to state 419
+ $default reduce using rule 70 (@25)
- fully_qualified_class_name go to state 779
+ @25 go to state 778
state 778
- 71 non_empty_additional_catches: non_empty_additional_catches additional_catch .
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 . T_VARIABLE ')' @26 '{' inner_statement_list '}'
- $default reduce using rule 71 (non_empty_additional_catches)
+ T_VARIABLE shift, and go to state 779
state 779
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name . @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE . ')' @26 '{' inner_statement_list '}'
- $default reduce using rule 72 (@27)
-
- @27 go to state 780
+ ')' shift, and go to state 780
state 780
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 . T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' . @26 '{' inner_statement_list '}'
+
+ $default reduce using rule 71 (@26)
- T_VARIABLE shift, and go to state 781
+ @26 go to state 781
state 781
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE . ')' @28 '{' inner_statement_list '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 . '{' inner_statement_list '}'
- ')' shift, and go to state 782
+ '{' shift, and go to state 782
state 782
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' . @28 '{' inner_statement_list '}'
-
- $default reduce using rule 73 (@28)
-
- @28 go to state 783
-
-
-state 783
-
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 . '{' inner_statement_list '}'
-
- '{' shift, and go to state 784
-
-
-state 784
-
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' . inner_statement_list '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' . inner_statement_list '}'
$default reduce using rule 11 (inner_statement_list)
- inner_statement_list go to state 785
+ inner_statement_list go to state 783
-state 785
+state 783
10 inner_statement_list: inner_statement_list . @2 inner_statement
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list . '}'
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list . '}'
- '}' shift, and go to state 786
+ '}' shift, and go to state 784
$default reduce using rule 9 (@2)
@2 go to state 300
-state 786
+state 784
- 74 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}' .
+ 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}' .
- $default reduce using rule 74 (additional_catch)
+ $default reduce using rule 72 (additional_catch)
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 2273637a7..2eb27f493 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y,v 1.160.2.4.2.1 2006/05/11 21:07:39 helly Exp $ */
+/* $Id: zend_language_parser.y,v 1.160.2.4.2.4 2007/04/04 00:42:42 iliaa Exp $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -162,7 +162,7 @@ top_statement:
statement
| function_declaration_statement { zend_do_early_binding(TSRMLS_C); }
| class_declaration_statement { zend_do_early_binding(TSRMLS_C); }
- | T_HALT_COMPILER '(' ')' ';' { REGISTER_MAIN_LONG_CONSTANT("__COMPILER_HALT_OFFSET__", zend_get_scanned_file_offset(TSRMLS_C), CONST_CS); YYACCEPT; }
+ | T_HALT_COMPILER '(' ')' ';' { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; }
;
@@ -214,14 +214,14 @@ unticked_statement:
| expr ';' { zend_do_free(&$1 TSRMLS_CC); }
| T_USE use_filename ';' { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()"); zval_dtor(&$2.u.constant); }
| T_UNSET '(' unset_variables ')' ';'
- | T_FOREACH '(' variable { zend_do_foreach_begin(&$1, &$2, &$3, 1 TSRMLS_CC); } T_AS
- { zend_do_foreach_fetch(&$1, &$2, &$5 TSRMLS_CC); }
- foreach_variable foreach_optional_arg ')' { zend_do_foreach_cont(&$1, &$5, &$7, &$8 TSRMLS_CC); }
- foreach_statement { zend_do_foreach_end(&$1, &$5 TSRMLS_CC); }
- | T_FOREACH '(' expr_without_variable { zend_do_foreach_begin(&$1, &$2, &$3, 0 TSRMLS_CC); } T_AS
- { zend_do_foreach_fetch(&$1, &$2, &$5 TSRMLS_CC); }
- variable foreach_optional_arg ')' { zend_check_writable_variable(&$7); zend_do_foreach_cont(&$1, &$5, &$7, &$8 TSRMLS_CC); }
- foreach_statement { zend_do_foreach_end(&$1, &$5 TSRMLS_CC); }
+ | T_FOREACH '(' variable T_AS
+ { zend_do_foreach_begin(&$1, &$2, &$3, &$4, 1 TSRMLS_CC); }
+ foreach_variable foreach_optional_arg ')' { zend_do_foreach_cont(&$1, &$2, &$4, &$6, &$7 TSRMLS_CC); }
+ foreach_statement { zend_do_foreach_end(&$1, &$4 TSRMLS_CC); }
+ | T_FOREACH '(' expr_without_variable T_AS
+ { zend_do_foreach_begin(&$1, &$2, &$3, &$4, 0 TSRMLS_CC); }
+ variable foreach_optional_arg ')' { zend_check_writable_variable(&$6); zend_do_foreach_cont(&$1, &$2, &$4, &$6, &$7 TSRMLS_CC); }
+ foreach_statement { zend_do_foreach_end(&$1, &$4 TSRMLS_CC); }
| T_DECLARE { $1.u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); } '(' declare_list ')' declare_statement { zend_do_declare_end(&$1 TSRMLS_CC); }
| ';' /* empty statement */
| T_TRY { zend_do_try(&$1 TSRMLS_CC); } '{' inner_statement_list '}'
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index 32cec06f1..43e3a4f9a 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -357,165 +357,167 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
#undef yy_more_len
-#define YY_NUM_RULES 160
-#define YY_END_OF_BUFFER 161
-static yyconst short int yy_accept[1411] =
+#define YY_NUM_RULES 161
+#define YY_END_OF_BUFFER 162
+static yyconst short int yy_accept[1422] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 161, 111, 111, 159, 119, 96, 135, 120,
- 96, 96, 96, 138, 96, 96, 96, 96, 96, 96,
- 96, 102, 102, 96, 96, 96, 96, 96, 96, 117,
- 137, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 97, 96, 99, 140, 156, 145, 140, 104, 104,
- 145, 159, 118, 142, 145, 141, 158, 159, 143, 159,
- 157, 155, 140, 159, 118, 38, 37, 101, 100, 127,
-
- 130, 130, 122, 122, 122, 121, 121, 121, 111, 0,
- 111, 114, 112, 111, 119, 75, 0, 133, 0, 116,
- 83, 132, 90, 86, 0, 134, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 80, 70, 78,
- 71, 79, 36, 105, 82, 126, 120, 81, 105, 102,
- 0, 0, 39, 0, 94, 76, 75, 74, 67, 77,
- 95, 131, 88, 117, 117, 117, 117, 117, 23, 117,
- 117, 117, 117, 117, 117, 15, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 9, 117, 117, 117,
- 117, 117, 91, 117, 117, 117, 117, 117, 117, 117,
-
- 117, 117, 117, 117, 117, 87, 89, 140, 144, 98,
- 36, 104, 0, 154, 150, 152, 154, 146, 118, 142,
- 147, 141, 0, 148, 149, 143, 151, 155, 140, 139,
- 139, 118, 0, 37, 100, 127, 129, 128, 122, 122,
- 123, 124, 111, 0, 113, 0, 0, 73, 116, 132,
- 132, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 105, 0, 105, 103, 0, 0, 84, 72, 85,
- 131, 131, 117, 117, 117, 117, 117, 117, 92, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 2, 117,
- 117, 117, 117, 117, 117, 117, 117, 16, 117, 117,
-
- 117, 117, 117, 117, 117, 117, 40, 117, 117, 117,
- 117, 117, 117, 117, 117, 6, 117, 55, 42, 117,
- 93, 104, 152, 153, 111, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 125, 0, 0,
- 0, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 26, 117, 117, 117, 117, 117, 117, 117, 30, 12,
- 117, 117, 117, 117, 117, 117, 50, 1, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 68, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 152, 153, 111, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 43, 0, 0, 0, 0, 0, 0, 136, 136,
- 0, 117, 117, 117, 117, 117, 117, 117, 69, 28,
- 7, 32, 41, 4, 117, 117, 117, 117, 58, 117,
- 117, 11, 117, 117, 117, 62, 117, 117, 117, 117,
- 117, 117, 117, 57, 31, 117, 117, 117, 117, 117,
- 117, 117, 8, 66, 13, 111, 0, 115, 115, 0,
- 0, 0, 48, 0, 0, 0, 0, 0, 44, 0,
- 0, 0, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 10, 117, 17, 117, 117, 117, 117, 117,
- 56, 117, 117, 117, 117, 117, 117, 65, 117, 5,
-
- 60, 24, 111, 0, 0, 0, 46, 0, 0, 0,
- 0, 0, 49, 0, 117, 117, 117, 117, 117, 117,
- 117, 117, 20, 27, 117, 117, 117, 117, 34, 18,
- 117, 117, 51, 117, 117, 63, 117, 53, 111, 0,
- 0, 0, 0, 0, 47, 0, 45, 0, 117, 110,
- 117, 117, 109, 117, 61, 29, 117, 117, 117, 14,
- 3, 117, 117, 117, 117, 117, 117, 111, 0, 0,
- 0, 106, 117, 117, 117, 117, 117, 25, 117, 117,
- 117, 33, 64, 117, 111, 0, 0, 117, 117, 108,
- 21, 19, 35, 117, 22, 117, 111, 0, 0, 117,
-
- 117, 117, 117, 111, 0, 0, 107, 117, 52, 54,
- 111, 0, 0, 117, 111, 0, 0, 117, 111, 0,
- 0, 59, 111, 0, 0, 111, 0, 0, 0, 111,
- 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
- 111, 0, 0, 0, 0, 111, 0, 0, 0, 0,
- 112, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 111,
-
- 0, 111, 0, 111, 0, 111, 0, 111, 0, 0
+ 0, 0, 162, 112, 112, 160, 120, 97, 136, 121,
+ 97, 97, 97, 139, 97, 97, 97, 97, 97, 97,
+ 97, 103, 103, 97, 97, 97, 97, 97, 97, 118,
+ 138, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 98, 97, 100, 141, 157, 146, 141, 105, 105,
+ 146, 160, 119, 143, 146, 142, 159, 160, 144, 160,
+ 158, 156, 141, 160, 119, 38, 37, 102, 101, 128,
+
+ 131, 131, 123, 123, 123, 122, 122, 122, 112, 0,
+ 112, 115, 113, 112, 120, 76, 0, 134, 0, 117,
+ 84, 133, 91, 87, 0, 135, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 81, 71, 79,
+ 72, 80, 36, 106, 83, 127, 121, 82, 106, 103,
+ 0, 0, 39, 0, 95, 77, 76, 75, 68, 78,
+ 96, 132, 89, 118, 118, 118, 118, 118, 23, 136,
+ 139, 0, 118, 118, 118, 118, 118, 118, 15, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 9,
+ 118, 118, 118, 118, 118, 92, 118, 118, 118, 118,
+
+ 118, 118, 118, 118, 118, 118, 118, 118, 88, 90,
+ 141, 145, 99, 36, 105, 0, 155, 151, 153, 155,
+ 147, 119, 143, 148, 142, 0, 149, 150, 144, 152,
+ 156, 141, 140, 140, 119, 0, 37, 101, 128, 130,
+ 129, 123, 123, 124, 125, 112, 0, 114, 0, 0,
+ 74, 117, 133, 133, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 106, 0, 106, 104, 0,
+ 0, 85, 73, 86, 132, 132, 118, 118, 118, 118,
+ 118, 118, 93, 118, 0, 118, 118, 118, 118, 118,
+ 118, 118, 118, 2, 118, 118, 118, 118, 118, 118,
+
+ 118, 118, 16, 118, 118, 118, 118, 118, 118, 118,
+ 118, 40, 118, 118, 118, 118, 118, 118, 118, 118,
+ 6, 118, 56, 42, 118, 94, 105, 153, 154, 112,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 126, 0, 0, 0, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 26, 118, 118, 118,
+ 118, 118, 118, 118, 30, 12, 118, 118, 118, 118,
+ 118, 118, 51, 1, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 69, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 153, 154, 112, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
+ 0, 0, 0, 0, 0, 137, 137, 0, 118, 118,
+ 118, 118, 118, 118, 118, 70, 28, 7, 32, 41,
+ 4, 118, 118, 118, 118, 59, 118, 118, 11, 118,
+ 118, 118, 63, 118, 118, 118, 118, 118, 118, 118,
+ 58, 31, 118, 118, 118, 118, 118, 118, 118, 8,
+ 67, 13, 112, 0, 116, 116, 0, 0, 0, 0,
+ 49, 0, 0, 0, 0, 0, 44, 0, 0, 0,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 10, 118, 17, 118, 118, 118, 118, 118, 57, 118,
+
+ 118, 118, 118, 118, 118, 66, 118, 5, 61, 24,
+ 112, 0, 0, 0, 47, 0, 0, 0, 0, 0,
+ 0, 50, 0, 118, 118, 118, 118, 118, 118, 118,
+ 118, 20, 27, 118, 118, 118, 118, 34, 18, 118,
+ 118, 52, 118, 118, 64, 118, 54, 112, 0, 0,
+ 0, 46, 0, 0, 0, 48, 0, 45, 0, 118,
+ 111, 118, 118, 110, 118, 62, 29, 118, 118, 118,
+ 14, 3, 118, 118, 118, 118, 118, 118, 112, 0,
+ 0, 0, 107, 118, 118, 118, 118, 118, 25, 118,
+ 118, 118, 33, 65, 118, 112, 0, 0, 118, 118,
+
+ 109, 21, 19, 35, 118, 22, 118, 112, 0, 0,
+ 118, 118, 118, 118, 112, 0, 0, 108, 118, 53,
+ 55, 112, 0, 0, 118, 112, 0, 0, 118, 112,
+ 0, 0, 60, 112, 0, 0, 112, 0, 0, 0,
+ 112, 0, 0, 0, 0, 0, 112, 0, 0, 0,
+ 0, 112, 0, 0, 0, 0, 112, 0, 0, 0,
+ 0, 113, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 112, 0, 112, 0, 112, 0, 112, 0, 112, 0,
+ 0
} ;
static yyconst int yy_ec[256] =
@@ -561,417 +563,421 @@ static yyconst int yy_meta[63] =
4, 1
} ;
-static yyconst short int yy_base[1831] =
+static yyconst short int yy_base[1842] =
{ 0,
- 7573, 7572, 0, 0, 62, 0, 114, 115, 121, 122,
- 123, 151, 210, 0, 272, 0, 7582, 7581, 7580, 7579,
- 132, 139, 7592, 7566, 121, 7599, 129, 7564, 131, 7599,
- 0, 112, 137, 135, 333, 7599, 7563, 143, 151, 150,
- 322, 322, 331, 7565, 320, 148, 153, 7560, 7560, 7553,
- 7599, 303, 7533, 328, 323, 344, 340, 7538, 0, 356,
- 7540, 7543, 7529, 305, 7541, 310, 99, 331, 7544, 7536,
- 7528, 7599, 331, 7599, 0, 7599, 408, 7548, 451, 376,
- 7599, 468, 0, 7541, 7565, 7542, 7599, 347, 7565, 457,
- 7599, 469, 470, 462, 481, 7599, 0, 7599, 0, 0,
-
- 7551, 7550, 483, 7599, 7565, 7540, 7599, 7539, 7540, 484,
- 7539, 7537, 469, 7526, 402, 7535, 485, 7599, 491, 0,
- 7599, 493, 7599, 7599, 363, 7599, 7557, 0, 7508, 7510,
- 7509, 7511, 7508, 7519, 7515, 7499, 7504, 7599, 7599, 7599,
- 7599, 7599, 7599, 509, 7599, 7536, 7599, 7599, 512, 517,
- 531, 522, 7599, 7497, 475, 7599, 7599, 7522, 7599, 7599,
- 7521, 503, 7599, 0, 526, 7494, 7508, 7493, 0, 7505,
- 468, 352, 7495, 477, 7503, 0, 7499, 7487, 7489, 7500,
- 7502, 521, 7488, 7483, 7486, 7484, 0, 7482, 488, 7478,
- 7477, 7472, 0, 456, 7492, 473, 7492, 7483, 7473, 7465,
-
- 7470, 7483, 7469, 7477, 7467, 7599, 7599, 0, 7599, 7599,
- 0, 548, 555, 7599, 7599, 558, 561, 7599, 0, 7484,
- 7599, 7486, 7485, 7599, 7599, 7508, 7599, 574, 595, 7599,
- 7510, 584, 599, 0, 0, 0, 7599, 7599, 606, 7599,
- 7599, 7599, 7487, 595, 7599, 7470, 7459, 7599, 0, 7599,
- 7506, 7457, 7459, 7452, 7457, 7451, 7460, 7468, 7450, 7448,
- 609, 597, 604, 609, 616, 7463, 7496, 7599, 7599, 7599,
- 7599, 7494, 7451, 512, 7461, 7452, 7455, 7439, 0, 7457,
- 7456, 7451, 7452, 7435, 7439, 569, 7440, 7450, 0, 7435,
- 7444, 7428, 604, 7435, 7426, 7440, 7443, 7438, 7439, 7439,
-
- 7428, 7427, 7418, 7432, 7431, 7415, 0, 585, 7414, 7421,
- 7411, 7410, 7410, 7409, 7413, 0, 7422, 0, 0, 7414,
- 0, 637, 624, 643, 7433, 658, 7408, 7414, 3075, 3063,
- 3071, 3071, 682, 3066, 3058, 3047, 3050, 666, 3036, 3084,
- 645, 3051, 3039, 3036, 3037, 3021, 3014, 2988, 2973, 2986,
- 0, 2986, 2974, 2985, 2967, 2977, 2984, 2963, 0, 2968,
- 2945, 2964, 2939, 2945, 2923, 2937, 0, 0, 2912, 2908,
- 2853, 2833, 2851, 2846, 2829, 2848, 2830, 2825, 0, 2824,
- 2842, 2837, 2831, 2830, 2820, 2828, 2833, 2812, 2814, 2828,
- 7599, 7599, 2840, 676, 685, 2814, 2804, 689, 2815, 2805,
-
- 571, 7599, 2814, 2812, 603, 2799, 2790, 2799, 7599, 2837,
- 658, 2787, 2800, 2792, 2773, 2785, 2772, 2775, 0, 0,
- 0, 0, 0, 0, 2756, 2749, 2751, 2754, 0, 2746,
- 2728, 0, 2731, 2730, 2733, 0, 2731, 2722, 2705, 2703,
- 2707, 2695, 2702, 0, 0, 2686, 2701, 2691, 2673, 2673,
- 2678, 2666, 0, 0, 0, 2679, 681, 7599, 2694, 2641,
- 690, 692, 7599, 2659, 2644, 2637, 2620, 694, 7599, 2632,
- 695, 2622, 2616, 2633, 2598, 2618, 2613, 2595, 2606, 2585,
- 2600, 2583, 0, 2590, 2587, 2568, 2571, 2561, 2566, 2558,
- 0, 2566, 2560, 2559, 2559, 2548, 2530, 0, 2538, 0,
-
- 0, 0, 2549, 689, 709, 713, 7599, 2526, 2512, 716,
- 717, 719, 7599, 2508, 2526, 2516, 2504, 2508, 2511, 2494,
- 2475, 2484, 0, 0, 2483, 2480, 2472, 2469, 0, 0,
- 2458, 2455, 2467, 2449, 2449, 0, 2446, 2445, 2449, 714,
- 732, 735, 736, 738, 7599, 741, 7599, 742, 2440, 0,
- 2414, 2411, 0, 2423, 0, 0, 2398, 2411, 2403, 0,
- 0, 2389, 2384, 2381, 2387, 2386, 2364, 2385, 722, 2375,
- 753, 0, 2361, 2361, 2371, 2362, 2357, 0, 2334, 2333,
- 2339, 0, 0, 2330, 2348, 743, 2323, 2324, 2306, 0,
- 0, 0, 0, 2316, 0, 2315, 2325, 750, 2308, 2309,
-
- 2288, 2288, 2283, 2293, 751, 2257, 0, 2264, 0, 0,
- 2283, 756, 2270, 2263, 2273, 758, 2251, 2230, 2254, 763,
- 2240, 0, 2241, 764, 759, 2238, 773, 802, 815, 2232,
- 784, 827, 2203, 2202, 2208, 2223, 814, 2204, 2201, 2178,
- 2197, 815, 2171, 2170, 842, 2187, 823, 2203, 2196, 850,
- 7599, 2180, 832, 2177, 840, 2167, 846, 2165, 853, 2157,
- 854, 2154, 861, 2152, 863, 2142, 871, 2139, 876, 2135,
- 884, 2133, 886, 2127, 891, 2124, 893, 2122, 899, 2121,
- 901, 2120, 916, 2118, 921, 2117, 922, 2103, 930, 2096,
- 931, 2092, 939, 2090, 951, 2089, 952, 2088, 953, 2087,
-
- 960, 2083, 961, 2080, 962, 2078, 983, 2066, 990, 2061,
- 991, 2060, 992, 2059, 997, 2058, 998, 2057, 1012, 2046,
- 1020, 2043, 1027, 2037, 1029, 2036, 1037, 2032, 1038, 2031,
- 1042, 2028, 1049, 2021, 1050, 2014, 1059, 2011, 1060, 2010,
- 1067, 2001, 1071, 1999, 1082, 1989, 1088, 1988, 1089, 1984,
- 1096, 1981, 1097, 1969, 1111, 1967, 1117, 1962, 1118, 1961,
- 1119, 1960, 1126, 1959, 1128, 1958, 1148, 1956, 1149, 1955,
- 1156, 1952, 1157, 1938, 1158, 1937, 1163, 1930, 1170, 1926,
- 1178, 1925, 1188, 1924, 1193, 1923, 1195, 1922, 1203, 1921,
- 1208, 1912, 1210, 1903, 1216, 1900, 1218, 1894, 1223, 1893,
-
- 1225, 1891, 1233, 1885, 1248, 1882, 1254, 1880, 1255, 1870,
- 1256, 1865, 1262, 1863, 1263, 1862, 1269, 1861, 1277, 1860,
- 1284, 1850, 1292, 1848, 1294, 1845, 1302, 1835, 1307, 1831,
- 1309, 1825, 1314, 1822, 1315, 1818, 1322, 1815, 1324, 1804,
- 1332, 1801, 1344, 1795, 1353, 1794, 1354, 1792, 1355, 1789,
- 1361, 1786, 1362, 1772, 1366, 1771, 1376, 1766, 1383, 1764,
- 1384, 1763, 1391, 1761, 1401, 1759, 1406, 1749, 1412, 1746,
- 1413, 1742, 1414, 1736, 1421, 1729, 1423, 1726, 1435, 1719,
- 1443, 1716, 1452, 1715, 1453, 1704, 1458, 1697, 1460, 1695,
- 1465, 1694, 1473, 1693, 1475, 1690, 1483, 1687, 1488, 1673,
-
- 1490, 1672, 1498, 1667, 1505, 1665, 1511, 1664, 1513, 1661,
- 1519, 1660, 1520, 1658, 1528, 1657, 1534, 1647, 1542, 1643,
- 1549, 1638, 1551, 1635, 1557, 1629, 1559, 1628, 1564, 1626,
- 1572, 1620, 1574, 139, 1579, 157, 1587, 312, 1589, 339,
- 1597, 382, 1604, 454, 1609, 502, 1610, 520, 1618, 524,
- 1619, 539, 1627, 561, 1639, 589, 1641, 602, 1648, 614,
- 1649, 617, 1650, 641, 1656, 668, 1671, 674, 1678, 675,
- 1679, 691, 1685, 697, 1686, 699, 1696, 700, 1700, 728,
- 1707, 733, 1708, 739, 1717, 745, 1718, 762, 1725, 765,
- 1730, 769, 1738, 771, 1740, 772, 1747, 774, 1748, 775,
-
- 1753, 782, 1755, 786, 1770, 788, 1776, 789, 1778, 795,
- 1784, 797, 1785, 802, 1793, 809, 1799, 810, 1806, 812,
- 1807, 822, 1814, 825, 1816, 831, 1824, 833, 1829, 834,
- 1837, 836, 1839, 848, 1844, 858, 1846, 862, 1852, 865,
- 1854, 869, 1869, 872, 1874, 878, 1875, 882, 1883, 892,
- 1884, 895, 1892, 897, 1904, 907, 1905, 908, 1906, 909,
- 1913, 910, 1914, 912, 1915, 917, 1936, 927, 1943, 929,
- 1944, 932, 1945, 938, 1950, 940, 1951, 941, 1965, 947,
- 1973, 950, 1980, 959, 1982, 968, 1990, 969, 1991, 970,
- 1995, 971, 2002, 972, 2003, 973, 2012, 977, 2013, 984,
-
- 2020, 985, 2024, 999, 2035, 1002, 2041, 1003, 2042, 1005,
- 2049, 1006, 2050, 1007, 2064, 1008, 2070, 1009, 2071, 1014,
- 2072, 1016, 2079, 1028, 2081, 1031, 2101, 1035, 2102, 1036,
- 2109, 1046, 2110, 1048, 2111, 1057, 2116, 1058, 2123, 1061,
- 2131, 1068, 2141, 1075, 2146, 1078, 2148, 1079, 2156, 1083,
- 2161, 1084, 2163, 1090, 2169, 1093, 2171, 1104, 2176, 1105,
- 2178, 1106, 2186, 1107, 2201, 1108, 2207, 1113, 2208, 1125,
- 2209, 1127, 2215, 1130, 2216, 1134, 2222, 1135, 2230, 1136,
- 2237, 1137, 2245, 1139, 2247, 1143, 2255, 1150, 2260, 1164,
- 2262, 1165, 2267, 1167, 2268, 1168, 2275, 1169, 2277, 1171,
-
- 2285, 1174, 2297, 1180, 2306, 1182, 2307, 1186, 2308, 1189,
- 2314, 1199, 2315, 1201, 2319, 1204, 2329, 1212, 2336, 1214,
- 2337, 1224, 2344, 1227, 2354, 1229, 2359, 1231, 2365, 1234,
- 2366, 1241, 2367, 1242, 2374, 1244, 2376, 1249, 2388, 1264,
- 2396, 1267, 2405, 1270, 2406, 1271, 2411, 1273, 2413, 1274,
- 2418, 1279, 2426, 1285, 2428, 1288, 2436, 1300, 2441, 1301,
- 2443, 1303, 2451, 1313, 2458, 1320, 2464, 1323, 2466, 1326,
- 2472, 1330, 2473, 1331, 2481, 1333, 2487, 1340, 2495, 1343,
- 2502, 1348, 2504, 1352, 2510, 1363, 2512, 1370, 2517, 1372,
- 2525, 1373, 2527, 1374, 2532, 1377, 2540, 1378, 2542, 1392,
-
- 2550, 1395, 2557, 1399, 2562, 1400, 2563, 1402, 2571, 1408,
- 2572, 1420, 2580, 1422, 2592, 1425, 2594, 1429, 2601, 1430,
- 2602, 1431, 2603, 1432, 2609, 1434, 2624, 1445, 2631, 1447,
- 2632, 1451, 2638, 1454, 2639, 1464, 2649, 1466, 2653, 1469,
- 2660, 1471, 2661, 1477, 2670, 1481, 2671, 1484, 2678, 1494,
- 2683, 1496, 2691, 1499, 2693, 1506, 2700, 1507, 2701, 1509,
- 2706, 1521, 2708, 1524, 2723, 1527, 2729, 1529, 2731, 1530,
- 2737, 1536, 2738, 1539, 2746, 1544, 2752, 1550, 2759, 1553,
- 2760, 1565, 2767, 1566, 2769, 1568, 2777, 1570, 2782, 1580,
- 2790, 1583, 2792, 1585, 2797, 1595, 2799, 1596, 2805, 1598,
-
- 2807, 1605, 2822, 1608, 2827, 1615, 2828, 7599, 2836, 7599,
- 2888, 2899, 2910, 2921, 2932, 2943, 2954, 1631, 2965, 2969,
- 2979, 2989, 2993, 3004, 3013, 3017, 3021, 3032, 3043, 3054,
- 3058, 3069, 3079, 3090, 3099, 3110, 3121, 3132, 3143, 3154,
- 3165, 3176, 3187, 3198, 3209, 3220, 3231, 3242, 3253, 3264,
- 3275, 3286, 3297, 3308, 3319, 3330, 3341, 3352, 3363, 3374,
- 3385, 3396, 3407, 3418, 3429, 3440, 3451, 3462, 3473, 3484,
- 3495, 3506, 3517, 3528, 3539, 3550, 3561, 3572, 3583, 3594,
- 3605, 3616, 3627, 3638, 3649, 3660, 3671, 3682, 3693, 3704,
- 3715, 3726, 3737, 3748, 3759, 3770, 3781, 3792, 3803, 3814,
-
- 3825, 3836, 3847, 3858, 3869, 3880, 3891, 3902, 3913, 3924,
- 3935, 3946, 3957, 3968, 3979, 3990, 4001, 4012, 4023, 4034,
- 4045, 4056, 4067, 4078, 4089, 4100, 4111, 4122, 4133, 4144,
- 4155, 4166, 4177, 4188, 4199, 4210, 4221, 4232, 4243, 4254,
- 4265, 4276, 4287, 4298, 4309, 4320, 4331, 4342, 4353, 4364,
- 4375, 4386, 4397, 4408, 4419, 4430, 4441, 4452, 4463, 4474,
- 4485, 4496, 4507, 4518, 4529, 4540, 4551, 4562, 4573, 4584,
- 4595, 4606, 4617, 4628, 4639, 4650, 4661, 4672, 4683, 4694,
- 4705, 4716, 4727, 4738, 4749, 4760, 4771, 4782, 4793, 4804,
- 4815, 4826, 4837, 4848, 4859, 4870, 4881, 4892, 4903, 4914,
-
- 4925, 4936, 4947, 4958, 4969, 4980, 4991, 5002, 5013, 5024,
- 5035, 5046, 5057, 5068, 5079, 5090, 5101, 5112, 5123, 5134,
- 5145, 5156, 5167, 5178, 5189, 5200, 5211, 5222, 5233, 5244,
- 5255, 5266, 5277, 5288, 5299, 5310, 5321, 5332, 5343, 5354,
- 5365, 5376, 5387, 5398, 5409, 5420, 5431, 5442, 5453, 5464,
- 5475, 5486, 5497, 5508, 5519, 5530, 5541, 5552, 5563, 5574,
- 5585, 5596, 5607, 5618, 5629, 5640, 5651, 5662, 5673, 5684,
- 5695, 5706, 5717, 5728, 5739, 5750, 5761, 5772, 5783, 5794,
- 5805, 5816, 5827, 5838, 5849, 5860, 5871, 5882, 5893, 5904,
- 5915, 5926, 5937, 5948, 5959, 5970, 5981, 5992, 6003, 6014,
-
- 6025, 6036, 6047, 6058, 6069, 6080, 6091, 6102, 6113, 6124,
- 6135, 6146, 6157, 6168, 6179, 6190, 6201, 6212, 6223, 6234,
- 6245, 6256, 6267, 6278, 6289, 6300, 6311, 6322, 6333, 6344,
- 6355, 6366, 6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454,
- 6465, 6476, 6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564,
- 6575, 6586, 6597, 6608, 6619, 6630, 6641, 6652, 6663, 6674,
- 6685, 6696, 6707, 6718, 6729, 6740, 6751, 6762, 6773, 6784,
- 6795, 6806, 6817, 6828, 6839, 6850, 6861, 6872, 6883, 6894,
- 6905, 6916, 6927, 6938, 6949, 6960, 6971, 6982, 6993, 7004,
- 7015, 7026, 7037, 7048, 7059, 7070, 7081, 7092, 7103, 7114,
-
- 7125, 7136, 7147, 7158, 7169, 7180, 7191, 7202, 7213, 7224,
- 7235, 7246, 7257, 7268, 7279, 7290, 7301, 7312, 7323, 7334,
- 7345, 7356, 7367, 7378, 7389, 7400, 7411, 7422, 7433, 7444
+ 7591, 7590, 0, 0, 62, 0, 114, 115, 121, 122,
+ 123, 151, 210, 0, 272, 0, 7600, 7599, 7598, 7597,
+ 132, 139, 7610, 7584, 121, 7617, 129, 7582, 131, 7617,
+ 0, 112, 137, 135, 333, 7617, 7581, 143, 151, 150,
+ 322, 322, 331, 7583, 320, 148, 153, 7578, 7578, 7571,
+ 7617, 303, 351, 329, 323, 344, 340, 7557, 0, 357,
+ 7559, 7562, 7548, 305, 7560, 330, 99, 326, 7563, 7555,
+ 7547, 7617, 332, 7617, 0, 7617, 409, 7567, 452, 385,
+ 7617, 469, 0, 7560, 7584, 7561, 7617, 465, 7584, 458,
+ 7617, 471, 474, 463, 484, 7617, 0, 7617, 0, 0,
+
+ 7570, 7569, 489, 7617, 7584, 7559, 7617, 7558, 7559, 472,
+ 7558, 7556, 470, 7545, 499, 7554, 480, 7617, 389, 0,
+ 7617, 502, 7617, 7617, 483, 7617, 7576, 0, 7527, 479,
+ 7529, 7531, 7528, 7539, 7535, 7519, 7524, 7617, 7617, 7617,
+ 7617, 7617, 7617, 510, 7617, 7556, 7617, 7617, 513, 518,
+ 532, 523, 7617, 7517, 486, 7617, 7617, 7542, 7617, 7617,
+ 7541, 538, 7617, 0, 527, 7514, 7528, 7513, 0, 516,
+ 539, 7538, 7524, 512, 480, 7514, 359, 7522, 0, 7518,
+ 7506, 7508, 7519, 7521, 525, 7507, 7502, 7505, 7503, 0,
+ 7501, 534, 7497, 7496, 7491, 0, 529, 7511, 526, 7511,
+
+ 7502, 7492, 7484, 7489, 7502, 7488, 7496, 7486, 7617, 7617,
+ 0, 7617, 7617, 0, 560, 563, 7617, 7617, 554, 569,
+ 7617, 0, 7503, 7617, 7505, 7504, 7617, 7617, 7527, 7617,
+ 582, 603, 7617, 7529, 592, 607, 0, 0, 0, 7617,
+ 7617, 614, 7617, 7617, 7617, 7506, 603, 7617, 7489, 7478,
+ 7617, 0, 7617, 7525, 7476, 7479, 7477, 7470, 7475, 7469,
+ 7478, 7486, 7468, 7466, 617, 605, 612, 617, 624, 7481,
+ 7514, 7617, 7617, 7617, 7617, 7512, 7469, 483, 7479, 7470,
+ 7473, 7457, 0, 7475, 7483, 7473, 7468, 7469, 7452, 7456,
+ 577, 7457, 7467, 0, 7452, 7461, 7445, 612, 7452, 7443,
+
+ 7457, 7460, 7455, 7456, 7456, 7445, 7444, 7435, 7449, 7448,
+ 7432, 0, 353, 7431, 7438, 7428, 7427, 7427, 7426, 7430,
+ 0, 7439, 0, 0, 7431, 0, 645, 627, 651, 7450,
+ 666, 7425, 7431, 7438, 7437, 7425, 7434, 7434, 690, 7429,
+ 7421, 7423, 7426, 674, 7412, 7460, 649, 7427, 7415, 7412,
+ 7413, 7410, 7403, 7404, 7396, 7409, 0, 7411, 7399, 7412,
+ 7396, 7406, 7413, 7392, 0, 7403, 7386, 7405, 7394, 7402,
+ 7384, 7398, 0, 0, 7391, 7392, 7402, 7382, 7400, 7395,
+ 7378, 7397, 7379, 7376, 0, 7375, 7393, 7388, 7383, 7382,
+ 7372, 7380, 7385, 7364, 7366, 7380, 7617, 7617, 7392, 684,
+
+ 693, 7367, 7357, 7363, 697, 7368, 7359, 611, 7617, 7371,
+ 7374, 698, 7362, 7355, 7365, 7617, 7403, 653, 7353, 7366,
+ 7367, 7349, 7363, 7359, 7365, 0, 0, 0, 0, 0,
+ 0, 7351, 7346, 7351, 7356, 0, 7358, 7342, 0, 7350,
+ 7349, 7353, 0, 7353, 7346, 7342, 7340, 7348, 7337, 7344,
+ 0, 0, 2983, 2999, 2997, 2981, 2984, 2994, 2975, 0,
+ 0, 0, 2990, 689, 7617, 3011, 2960, 700, 2954, 702,
+ 7617, 2977, 2972, 2971, 2942, 703, 7617, 2954, 706, 2917,
+ 2906, 2925, 2901, 2921, 2918, 2899, 2910, 2891, 2906, 2884,
+ 0, 2885, 2891, 2861, 2866, 2854, 2864, 2838, 0, 2842,
+
+ 2776, 2777, 2778, 2773, 2757, 0, 2771, 0, 0, 0,
+ 2783, 697, 727, 719, 7617, 721, 2760, 2755, 724, 725,
+ 731, 7617, 2752, 2771, 2770, 2759, 2764, 2767, 2760, 2743,
+ 2757, 0, 0, 2760, 2758, 2754, 2748, 0, 0, 2738,
+ 2737, 2750, 2741, 2742, 0, 2735, 2738, 2743, 715, 743,
+ 737, 7617, 740, 746, 749, 7617, 750, 7617, 752, 2735,
+ 0, 2716, 2694, 0, 2707, 0, 0, 2686, 2692, 2686,
+ 0, 0, 2672, 2676, 2674, 2659, 2659, 2646, 2666, 748,
+ 2654, 762, 0, 2638, 2636, 2647, 2638, 2624, 0, 2602,
+ 2606, 2612, 0, 0, 2603, 2623, 749, 2592, 2604, 2576,
+
+ 0, 0, 0, 0, 2586, 0, 2583, 2588, 759, 2570,
+ 2576, 2565, 2566, 2551, 2557, 766, 2525, 0, 2532, 0,
+ 0, 2551, 771, 2539, 2529, 2539, 777, 2522, 2486, 2511,
+ 781, 2496, 0, 2508, 788, 767, 2506, 789, 817, 824,
+ 2497, 806, 842, 2470, 2467, 2464, 2469, 827, 2450, 2449,
+ 2439, 2460, 829, 2433, 2430, 847, 2451, 838, 2459, 2451,
+ 857, 7617, 2434, 847, 2423, 855, 2422, 860, 2420, 861,
+ 2419, 867, 2417, 868, 2397, 869, 2394, 873, 2392, 878,
+ 2391, 899, 2388, 901, 2382, 906, 2379, 907, 2377, 908,
+ 2358, 913, 2352, 914, 2351, 919, 2349, 936, 2348, 945,
+
+ 2346, 947, 2345, 953, 2342, 954, 2331, 958, 2320, 959,
+ 2309, 965, 2306, 967, 2305, 976, 2303, 987, 2302, 993,
+ 2300, 998, 2291, 999, 2280, 1004, 2277, 1005, 2274, 1013,
+ 2263, 1027, 2260, 1033, 2259, 1034, 2257, 1035, 2254, 1039,
+ 2251, 1044, 2237, 1045, 2234, 1065, 2232, 1067, 2231, 1073,
+ 2228, 1074, 2217, 1075, 2214, 1079, 2211, 1080, 2192, 1085,
+ 2191, 1105, 2189, 1111, 2188, 1113, 2186, 1115, 2185, 1119,
+ 2182, 1120, 2171, 1125, 2152, 1126, 2149, 1133, 2146, 1151,
+ 2145, 1155, 2143, 1159, 2142, 1161, 2140, 1165, 2139, 1166,
+ 2106, 1172, 2104, 1173, 2103, 1187, 2101, 1195, 2100, 1201,
+
+ 2099, 1205, 2097, 1207, 2094, 1212, 2064, 1213, 2061, 1218,
+ 2060, 1227, 2058, 1233, 2057, 1235, 2055, 1241, 2054, 1247,
+ 2051, 1253, 2032, 1258, 2029, 1264, 2018, 1273, 2015, 1275,
+ 2014, 1279, 2012, 1281, 2011, 1286, 2009, 1287, 1992, 1293,
+ 1989, 1304, 1986, 1315, 1983, 1319, 1972, 1321, 1969, 1325,
+ 1968, 1326, 1966, 1327, 1963, 1332, 1952, 1333, 1946, 1355,
+ 1943, 1361, 1941, 1363, 1940, 1365, 1937, 1367, 1926, 1372,
+ 1923, 1373, 1912, 1378, 1901, 1393, 1900, 1395, 1898, 1401,
+ 1897, 1403, 1895, 1407, 1894, 1413, 1891, 1418, 1869, 1424,
+ 1864, 1433, 1861, 1435, 1858, 1439, 1855, 1441, 1854, 1447,
+
+ 1852, 1453, 1851, 1464, 1849, 1470, 1826, 1475, 1824, 1479,
+ 1823, 1481, 1821, 1485, 1812, 1487, 1809, 1492, 1806, 1493,
+ 1803, 1510, 1792, 1515, 1786, 1521, 1783, 1523, 1781, 1525,
+ 1780, 1527, 1777, 1532, 1766, 1533, 139, 1538, 157, 1555,
+ 312, 1561, 339, 1563, 341, 1567, 474, 1569, 530, 1573,
+ 567, 1578, 569, 1584, 597, 1595, 610, 1599, 615, 1601,
+ 625, 1607, 644, 1609, 645, 1613, 649, 1624, 676, 1630,
+ 682, 1635, 695, 1639, 735, 1641, 736, 1645, 747, 1647,
+ 753, 1653, 756, 1670, 757, 1675, 758, 1676, 760, 1681,
+ 767, 1683, 770, 1685, 778, 1687, 779, 1693, 782, 1698,
+
+ 783, 1715, 785, 1716, 787, 1721, 797, 1723, 799, 1727,
+ 800, 1729, 807, 1733, 812, 1738, 814, 1744, 817, 1755,
+ 837, 1761, 840, 1767, 842, 1769, 843, 1773, 846, 1775,
+ 875, 1784, 877, 1790, 879, 1795, 880, 1801, 884, 1805,
+ 886, 1807, 889, 1813, 893, 1815, 912, 1830, 915, 1835,
+ 918, 1836, 921, 1841, 923, 1843, 924, 1845, 925, 1847,
+ 927, 1853, 930, 1875, 932, 1876, 944, 1881, 952, 1882,
+ 955, 1883, 964, 1887, 966, 1889, 969, 1893, 973, 1904,
+ 975, 1915, 978, 1921, 984, 1922, 991, 1927, 995, 1929,
+ 1000, 1933, 1006, 1935, 1009, 1944, 1010, 1950, 1012, 1955,
+
+ 1015, 1961, 1021, 1967, 1022, 1973, 1024, 1975, 1041, 1981,
+ 1043, 1990, 1046, 1995, 1050, 1996, 1052, 2001, 1053, 2003,
+ 1055, 2007, 1056, 2013, 1081, 2021, 1084, 2035, 1086, 2036,
+ 1087, 2041, 1090, 2042, 1091, 2043, 1093, 2047, 1096, 2049,
+ 1098, 2053, 1121, 2075, 1124, 2081, 1127, 2082, 1130, 2083,
+ 1131, 2087, 1134, 2088, 1137, 2089, 1141, 2093, 1144, 2095,
+ 1148, 2121, 1163, 2123, 1167, 2127, 1170, 2128, 1174, 2129,
+ 1177, 2133, 1180, 2134, 1181, 2135, 1183, 2141, 1184, 2163,
+ 1194, 2167, 1203, 2169, 1206, 2173, 1209, 2174, 1220, 2175,
+ 1223, 2180, 1224, 2181, 1226, 2195, 1229, 2203, 1243, 2209,
+
+ 1246, 2213, 1249, 2215, 1251, 2220, 1252, 2221, 1255, 2226,
+ 1266, 2235, 1269, 2241, 1272, 2243, 1283, 2249, 1292, 2255,
+ 1294, 2261, 1295, 2266, 1297, 2272, 1298, 2281, 1301, 2283,
+ 1312, 2287, 1323, 2289, 1334, 2294, 1337, 2295, 1338, 2301,
+ 1340, 2312, 1341, 2323, 1343, 2327, 1344, 2329, 1350, 2333,
+ 1369, 2334, 1371, 2335, 1374, 2340, 1380, 2341, 1383, 2363,
+ 1384, 2369, 1386, 2371, 1389, 2373, 1409, 2375, 1411, 2380,
+ 1412, 2381, 1414, 2386, 1415, 2401, 1426, 2403, 1429, 2409,
+ 1432, 2411, 1443, 2415, 1446, 2421, 1449, 2426, 1452, 2432,
+ 1455, 2441, 1457, 2443, 1458, 2447, 1461, 2449, 1472, 2455,
+
+ 1483, 2461, 1486, 2472, 1489, 2478, 1498, 2483, 1500, 2487,
+ 1501, 2489, 1503, 2493, 1504, 2495, 1529, 2500, 1531, 2501,
+ 1534, 2518, 1540, 2523, 1543, 2529, 1544, 2531, 1546, 2533,
+ 1549, 2535, 1556, 2540, 1571, 2541, 1574, 2546, 1575, 2563,
+ 1577, 2569, 1580, 2571, 1586, 2575, 1589, 2577, 1592, 2581,
+ 1603, 2586, 1606, 2592, 1615, 2603, 1617, 2607, 1618, 2609,
+ 1620, 2615, 1621, 2617, 1632, 2621, 1643, 2632, 1646, 2638,
+ 1649, 2643, 1652, 2647, 1655, 2649, 1658, 2653, 1661, 2655,
+ 1663, 2661, 1664, 2678, 1689, 2683, 1691, 2684, 1692, 2689,
+ 1694, 2691, 1695, 2693, 1704, 2695, 1706, 2701, 1709, 2706,
+
+ 1731, 2723, 1734, 2724, 1735, 2729, 1737, 2731, 1740, 2735,
+ 1746, 2737, 1749, 2741, 1752, 2746, 1762, 2752, 7617, 2763,
+ 7617, 2815, 2826, 2837, 2848, 2859, 2870, 2881, 1777, 2892,
+ 2896, 2906, 2916, 2920, 2931, 2940, 2944, 2948, 2959, 2970,
+ 2981, 2985, 2996, 3006, 3017, 3026, 3037, 3048, 3059, 3070,
+ 3081, 3092, 3103, 3114, 3125, 3136, 3147, 3158, 3169, 3180,
+ 3191, 3202, 3213, 3224, 3235, 3246, 3257, 3268, 3279, 3290,
+ 3301, 3312, 3323, 3334, 3345, 3356, 3367, 3378, 3389, 3400,
+ 3411, 3422, 3433, 3444, 3455, 3466, 3477, 3488, 3499, 3510,
+ 3521, 3532, 3543, 3554, 3565, 3576, 3587, 3598, 3609, 3620,
+
+ 3631, 3642, 3653, 3664, 3675, 3686, 3697, 3708, 3719, 3730,
+ 3741, 3752, 3763, 3774, 3785, 3796, 3807, 3818, 3829, 3840,
+ 3851, 3862, 3873, 3884, 3895, 3906, 3917, 3928, 3939, 3950,
+ 3961, 3972, 3983, 3994, 4005, 4016, 4027, 4038, 4049, 4060,
+ 4071, 4082, 4093, 4104, 4115, 4126, 4137, 4148, 4159, 4170,
+ 4181, 4192, 4203, 4214, 4225, 4236, 4247, 4258, 4269, 4280,
+ 4291, 4302, 4313, 4324, 4335, 4346, 4357, 4368, 4379, 4390,
+ 4401, 4412, 4423, 4434, 4445, 4456, 4467, 4478, 4489, 4500,
+ 4511, 4522, 4533, 4544, 4555, 4566, 4577, 4588, 4599, 4610,
+ 4621, 4632, 4643, 4654, 4665, 4676, 4687, 4698, 4709, 4720,
+
+ 4731, 4742, 4753, 4764, 4775, 4786, 4797, 4808, 4819, 4830,
+ 4841, 4852, 4863, 4874, 4885, 4896, 4907, 4918, 4929, 4940,
+ 4951, 4962, 4973, 4984, 4995, 5006, 5017, 5028, 5039, 5050,
+ 5061, 5072, 5083, 5094, 5105, 5116, 5127, 5138, 5149, 5160,
+ 5171, 5182, 5193, 5204, 5215, 5226, 5237, 5248, 5259, 5270,
+ 5281, 5292, 5303, 5314, 5325, 5336, 5347, 5358, 5369, 5380,
+ 5391, 5402, 5413, 5424, 5435, 5446, 5457, 5468, 5479, 5490,
+ 5501, 5512, 5523, 5534, 5545, 5556, 5567, 5578, 5589, 5600,
+ 5611, 5622, 5633, 5644, 5655, 5666, 5677, 5688, 5699, 5710,
+ 5721, 5732, 5743, 5754, 5765, 5776, 5787, 5798, 5809, 5820,
+
+ 5831, 5842, 5853, 5864, 5875, 5886, 5897, 5908, 5919, 5930,
+ 5941, 5952, 5963, 5974, 5985, 5996, 6007, 6018, 6029, 6040,
+ 6051, 6062, 6073, 6084, 6095, 6106, 6117, 6128, 6139, 6150,
+ 6161, 6172, 6183, 6194, 6205, 6216, 6227, 6238, 6249, 6260,
+ 6271, 6282, 6293, 6304, 6315, 6326, 6337, 6348, 6359, 6370,
+ 6381, 6392, 6403, 6414, 6425, 6436, 6447, 6458, 6469, 6480,
+ 6491, 6502, 6513, 6524, 6535, 6546, 6557, 6568, 6579, 6590,
+ 6601, 6612, 6623, 6634, 6645, 6656, 6667, 6678, 6689, 6700,
+ 6711, 6722, 6733, 6744, 6755, 6766, 6777, 6788, 6799, 6810,
+ 6821, 6832, 6843, 6854, 6865, 6876, 6887, 6898, 6909, 6920,
+
+ 6931, 6942, 6953, 6964, 6975, 6986, 6997, 7008, 7019, 7030,
+ 7041, 7052, 7063, 7074, 7085, 7096, 7107, 7118, 7129, 7140,
+ 7151, 7162, 7173, 7184, 7195, 7206, 7217, 7228, 7239, 7250,
+ 7261, 7272, 7283, 7294, 7305, 7316, 7327, 7338, 7349, 7360,
+ 7371
} ;
-static yyconst short int yy_def[1831] =
+static yyconst short int yy_def[1842] =
{ 0,
- 1411, 1411, 1410, 3, 1410, 5, 1412, 1412, 5, 5,
- 5, 5, 1410, 13, 1410, 15, 1413, 1413, 1413, 1413,
- 1414, 1414, 1410, 1415, 1416, 1410, 1410, 1410, 1417, 1410,
- 1418, 1410, 1410, 1419, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1420,
- 1410, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1410, 1410, 1410, 1421, 1410, 1410, 1421, 1410, 1410,
- 1410, 1422, 1423, 1410, 1410, 1424, 1410, 1424, 1410, 1422,
- 1410, 1410, 1421, 1422, 1425, 1410, 1426, 1410, 1427, 1428,
-
- 1410, 1410, 1429, 1410, 1410, 1410, 1410, 1410, 1430, 1415,
- 1415, 1410, 1410, 1410, 1410, 1410, 1417, 1410, 1417, 1431,
- 1410, 1410, 1410, 1410, 1419, 1410, 1419, 35, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
-
- 1420, 1420, 1420, 1420, 1420, 1410, 1410, 1421, 1410, 1410,
- 1421, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1423, 1410,
- 1410, 1424, 1424, 1410, 1410, 1410, 1410, 1410, 1421, 1410,
- 1410, 1425, 1410, 1426, 1427, 1428, 1410, 1410, 1429, 1410,
- 1410, 1410, 1432, 1430, 1410, 1410, 1410, 1410, 1431, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1433, 1410, 1410, 1410,
- 1410, 1410, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
-
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1410, 1410, 1410, 1434, 1432, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1433,
- 1435, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1410, 1410, 1436, 1434, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1435, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1437, 1436, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
-
- 1420, 1420, 1438, 1437, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1439, 1438,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1440, 1439, 1410,
- 1410, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1441, 1440, 1410, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1442, 1441, 1410, 1420,
-
- 1420, 1420, 1420, 1443, 1442, 1410, 1420, 1420, 1420, 1420,
- 1444, 1443, 1410, 1420, 1445, 1444, 1410, 1420, 1446, 1445,
- 1410, 1420, 1447, 1446, 1410, 1448, 1447, 1410, 1410, 1449,
- 1448, 1410, 1410, 1410, 1410, 1450, 1449, 1410, 1410, 1410,
- 1451, 1450, 1410, 1410, 1410, 1452, 1451, 1410, 1410, 1410,
- 1410, 1453, 1452, 1454, 1453, 1455, 1454, 1456, 1455, 1457,
- 1456, 1458, 1457, 1459, 1458, 1460, 1459, 1461, 1460, 1462,
- 1461, 1463, 1462, 1464, 1463, 1465, 1464, 1466, 1465, 1467,
- 1466, 1468, 1467, 1469, 1468, 1470, 1469, 1471, 1470, 1472,
- 1471, 1473, 1472, 1474, 1473, 1475, 1474, 1476, 1475, 1477,
-
- 1476, 1478, 1477, 1479, 1478, 1480, 1479, 1481, 1480, 1482,
- 1481, 1483, 1482, 1484, 1483, 1485, 1484, 1486, 1485, 1487,
- 1486, 1488, 1487, 1489, 1488, 1490, 1489, 1491, 1490, 1492,
- 1491, 1493, 1492, 1494, 1493, 1495, 1494, 1496, 1495, 1497,
- 1496, 1498, 1497, 1499, 1498, 1500, 1499, 1501, 1500, 1502,
- 1501, 1503, 1502, 1504, 1503, 1505, 1504, 1506, 1505, 1507,
- 1506, 1508, 1507, 1509, 1508, 1510, 1509, 1511, 1510, 1512,
- 1511, 1513, 1512, 1514, 1513, 1515, 1514, 1516, 1515, 1517,
- 1516, 1518, 1517, 1519, 1518, 1520, 1519, 1521, 1520, 1522,
- 1521, 1523, 1522, 1524, 1523, 1525, 1524, 1526, 1525, 1527,
-
- 1526, 1528, 1527, 1529, 1528, 1530, 1529, 1531, 1530, 1532,
- 1531, 1533, 1532, 1534, 1533, 1535, 1534, 1536, 1535, 1537,
- 1536, 1538, 1537, 1539, 1538, 1540, 1539, 1541, 1540, 1542,
- 1541, 1543, 1542, 1544, 1543, 1545, 1544, 1546, 1545, 1547,
- 1546, 1548, 1547, 1549, 1548, 1550, 1549, 1551, 1550, 1552,
- 1551, 1553, 1552, 1554, 1553, 1555, 1554, 1556, 1555, 1557,
- 1556, 1558, 1557, 1559, 1558, 1560, 1559, 1561, 1560, 1562,
- 1561, 1563, 1562, 1564, 1563, 1565, 1564, 1566, 1565, 1567,
- 1566, 1568, 1567, 1569, 1568, 1570, 1569, 1571, 1570, 1572,
- 1571, 1573, 1572, 1574, 1573, 1575, 1574, 1576, 1575, 1577,
-
- 1576, 1578, 1577, 1579, 1578, 1580, 1579, 1581, 1580, 1582,
- 1581, 1583, 1582, 1584, 1583, 1585, 1584, 1586, 1585, 1587,
- 1586, 1588, 1587, 1589, 1588, 1590, 1589, 1591, 1590, 1592,
- 1591, 1593, 1592, 1594, 1593, 1595, 1594, 1596, 1595, 1597,
- 1596, 1598, 1597, 1599, 1598, 1600, 1599, 1601, 1600, 1602,
- 1601, 1603, 1602, 1604, 1603, 1605, 1604, 1606, 1605, 1607,
- 1606, 1608, 1607, 1609, 1608, 1610, 1609, 1611, 1610, 1612,
- 1611, 1613, 1612, 1614, 1613, 1615, 1614, 1616, 1615, 1617,
- 1616, 1618, 1617, 1619, 1618, 1620, 1619, 1621, 1620, 1622,
- 1621, 1623, 1622, 1624, 1623, 1625, 1624, 1626, 1625, 1627,
-
- 1626, 1628, 1627, 1629, 1628, 1630, 1629, 1631, 1630, 1632,
- 1631, 1633, 1632, 1634, 1633, 1635, 1634, 1636, 1635, 1637,
- 1636, 1638, 1637, 1639, 1638, 1640, 1639, 1641, 1640, 1642,
- 1641, 1643, 1642, 1644, 1643, 1645, 1644, 1646, 1645, 1647,
- 1646, 1648, 1647, 1649, 1648, 1650, 1649, 1651, 1650, 1652,
- 1651, 1653, 1652, 1654, 1653, 1655, 1654, 1656, 1655, 1657,
- 1656, 1658, 1657, 1659, 1658, 1660, 1659, 1661, 1660, 1662,
- 1661, 1663, 1662, 1664, 1663, 1665, 1664, 1666, 1665, 1667,
- 1666, 1668, 1667, 1669, 1668, 1670, 1669, 1671, 1670, 1672,
- 1671, 1673, 1672, 1674, 1673, 1675, 1674, 1676, 1675, 1677,
-
- 1676, 1678, 1677, 1679, 1678, 1680, 1679, 1681, 1680, 1682,
- 1681, 1683, 1682, 1684, 1683, 1685, 1684, 1686, 1685, 1687,
- 1686, 1688, 1687, 1689, 1688, 1690, 1689, 1691, 1690, 1692,
- 1691, 1693, 1692, 1694, 1693, 1695, 1694, 1696, 1695, 1697,
- 1696, 1698, 1697, 1699, 1698, 1700, 1699, 1701, 1700, 1702,
- 1701, 1703, 1702, 1704, 1703, 1705, 1704, 1706, 1705, 1707,
- 1706, 1708, 1707, 1709, 1708, 1710, 1709, 1711, 1710, 1712,
- 1711, 1713, 1712, 1714, 1713, 1715, 1714, 1716, 1715, 1717,
- 1716, 1718, 1717, 1719, 1718, 1720, 1719, 1721, 1720, 1722,
- 1721, 1723, 1722, 1724, 1723, 1725, 1724, 1726, 1725, 1727,
-
- 1726, 1728, 1727, 1729, 1728, 1730, 1729, 1731, 1730, 1732,
- 1731, 1733, 1732, 1734, 1733, 1735, 1734, 1736, 1735, 1737,
- 1736, 1738, 1737, 1739, 1738, 1740, 1739, 1741, 1740, 1742,
- 1741, 1743, 1742, 1744, 1743, 1745, 1744, 1746, 1745, 1747,
- 1746, 1748, 1747, 1749, 1748, 1750, 1749, 1751, 1750, 1752,
- 1751, 1753, 1752, 1754, 1753, 1755, 1754, 1756, 1755, 1757,
- 1756, 1758, 1757, 1759, 1758, 1760, 1759, 1761, 1760, 1762,
- 1761, 1763, 1762, 1764, 1763, 1765, 1764, 1766, 1765, 1767,
- 1766, 1768, 1767, 1769, 1768, 1770, 1769, 1771, 1770, 1772,
- 1771, 1773, 1772, 1774, 1773, 1775, 1774, 1776, 1775, 1777,
-
- 1776, 1778, 1777, 1779, 1778, 1780, 1779, 1781, 1780, 1782,
- 1781, 1783, 1782, 1784, 1783, 1785, 1784, 1786, 1785, 1787,
- 1786, 1788, 1787, 1789, 1788, 1790, 1789, 1791, 1790, 1792,
- 1791, 1793, 1792, 1794, 1793, 1795, 1794, 1796, 1795, 1797,
- 1796, 1798, 1797, 1799, 1798, 1800, 1799, 1801, 1800, 1802,
- 1801, 1803, 1802, 1804, 1803, 1805, 1804, 1806, 1805, 1807,
- 1806, 1808, 1807, 1809, 1808, 1810, 1809, 1811, 1810, 1812,
- 1811, 1813, 1812, 1814, 1813, 1815, 1814, 1816, 1815, 1817,
- 1816, 1818, 1817, 1819, 1818, 1820, 1819, 1821, 1820, 1822,
- 1821, 1823, 1822, 1824, 1823, 1825, 1824, 1826, 1825, 1827,
-
- 1826, 1828, 1827, 1829, 1828, 1830, 1829, 1410, 1830, 0,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410
+ 1422, 1422, 1421, 3, 1421, 5, 1423, 1423, 5, 5,
+ 5, 5, 1421, 13, 1421, 15, 1424, 1424, 1424, 1424,
+ 1425, 1425, 1421, 1426, 1427, 1421, 1421, 1421, 1428, 1421,
+ 1429, 1421, 1421, 1430, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1431,
+ 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1421, 1421, 1421, 1432, 1421, 1421, 1432, 1421, 1421,
+ 1421, 1433, 1434, 1421, 1421, 1435, 1421, 1435, 1421, 1433,
+ 1421, 1421, 1432, 1433, 1436, 1421, 1437, 1421, 1438, 1439,
+
+ 1421, 1421, 1440, 1421, 1421, 1421, 1421, 1421, 1441, 1426,
+ 1426, 1421, 1421, 1421, 1421, 1421, 1428, 1421, 1428, 1442,
+ 1421, 1421, 1421, 1421, 1430, 1421, 1430, 35, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1428,
+ 1430, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421,
+ 1432, 1421, 1421, 1432, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1434, 1421, 1421, 1435, 1435, 1421, 1421, 1421, 1421,
+ 1421, 1432, 1421, 1421, 1436, 1421, 1437, 1438, 1439, 1421,
+ 1421, 1440, 1421, 1421, 1421, 1443, 1441, 1421, 1421, 1421,
+ 1421, 1442, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1444, 1421, 1421, 1421, 1421, 1421, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1421, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421, 1421, 1445,
+ 1443, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1444, 1446, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421, 1447, 1445,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1446, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1448, 1447, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1449, 1448, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1450, 1449, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1451, 1450,
+ 1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
+ 1431, 1431, 1431, 1431, 1431, 1452, 1451, 1421, 1431, 1431,
+
+ 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1453, 1452, 1421,
+ 1431, 1431, 1431, 1431, 1454, 1453, 1421, 1431, 1431, 1431,
+ 1431, 1455, 1454, 1421, 1431, 1456, 1455, 1421, 1431, 1457,
+ 1456, 1421, 1431, 1458, 1457, 1421, 1459, 1458, 1421, 1421,
+ 1460, 1459, 1421, 1421, 1421, 1421, 1461, 1460, 1421, 1421,
+ 1421, 1462, 1461, 1421, 1421, 1421, 1463, 1462, 1421, 1421,
+ 1421, 1421, 1464, 1463, 1465, 1464, 1466, 1465, 1467, 1466,
+ 1468, 1467, 1469, 1468, 1470, 1469, 1471, 1470, 1472, 1471,
+ 1473, 1472, 1474, 1473, 1475, 1474, 1476, 1475, 1477, 1476,
+ 1478, 1477, 1479, 1478, 1480, 1479, 1481, 1480, 1482, 1481,
+
+ 1483, 1482, 1484, 1483, 1485, 1484, 1486, 1485, 1487, 1486,
+ 1488, 1487, 1489, 1488, 1490, 1489, 1491, 1490, 1492, 1491,
+ 1493, 1492, 1494, 1493, 1495, 1494, 1496, 1495, 1497, 1496,
+ 1498, 1497, 1499, 1498, 1500, 1499, 1501, 1500, 1502, 1501,
+ 1503, 1502, 1504, 1503, 1505, 1504, 1506, 1505, 1507, 1506,
+ 1508, 1507, 1509, 1508, 1510, 1509, 1511, 1510, 1512, 1511,
+ 1513, 1512, 1514, 1513, 1515, 1514, 1516, 1515, 1517, 1516,
+ 1518, 1517, 1519, 1518, 1520, 1519, 1521, 1520, 1522, 1521,
+ 1523, 1522, 1524, 1523, 1525, 1524, 1526, 1525, 1527, 1526,
+ 1528, 1527, 1529, 1528, 1530, 1529, 1531, 1530, 1532, 1531,
+
+ 1533, 1532, 1534, 1533, 1535, 1534, 1536, 1535, 1537, 1536,
+ 1538, 1537, 1539, 1538, 1540, 1539, 1541, 1540, 1542, 1541,
+ 1543, 1542, 1544, 1543, 1545, 1544, 1546, 1545, 1547, 1546,
+ 1548, 1547, 1549, 1548, 1550, 1549, 1551, 1550, 1552, 1551,
+ 1553, 1552, 1554, 1553, 1555, 1554, 1556, 1555, 1557, 1556,
+ 1558, 1557, 1559, 1558, 1560, 1559, 1561, 1560, 1562, 1561,
+ 1563, 1562, 1564, 1563, 1565, 1564, 1566, 1565, 1567, 1566,
+ 1568, 1567, 1569, 1568, 1570, 1569, 1571, 1570, 1572, 1571,
+ 1573, 1572, 1574, 1573, 1575, 1574, 1576, 1575, 1577, 1576,
+ 1578, 1577, 1579, 1578, 1580, 1579, 1581, 1580, 1582, 1581,
+
+ 1583, 1582, 1584, 1583, 1585, 1584, 1586, 1585, 1587, 1586,
+ 1588, 1587, 1589, 1588, 1590, 1589, 1591, 1590, 1592, 1591,
+ 1593, 1592, 1594, 1593, 1595, 1594, 1596, 1595, 1597, 1596,
+ 1598, 1597, 1599, 1598, 1600, 1599, 1601, 1600, 1602, 1601,
+ 1603, 1602, 1604, 1603, 1605, 1604, 1606, 1605, 1607, 1606,
+ 1608, 1607, 1609, 1608, 1610, 1609, 1611, 1610, 1612, 1611,
+ 1613, 1612, 1614, 1613, 1615, 1614, 1616, 1615, 1617, 1616,
+ 1618, 1617, 1619, 1618, 1620, 1619, 1621, 1620, 1622, 1621,
+ 1623, 1622, 1624, 1623, 1625, 1624, 1626, 1625, 1627, 1626,
+ 1628, 1627, 1629, 1628, 1630, 1629, 1631, 1630, 1632, 1631,
+
+ 1633, 1632, 1634, 1633, 1635, 1634, 1636, 1635, 1637, 1636,
+ 1638, 1637, 1639, 1638, 1640, 1639, 1641, 1640, 1642, 1641,
+ 1643, 1642, 1644, 1643, 1645, 1644, 1646, 1645, 1647, 1646,
+ 1648, 1647, 1649, 1648, 1650, 1649, 1651, 1650, 1652, 1651,
+ 1653, 1652, 1654, 1653, 1655, 1654, 1656, 1655, 1657, 1656,
+ 1658, 1657, 1659, 1658, 1660, 1659, 1661, 1660, 1662, 1661,
+ 1663, 1662, 1664, 1663, 1665, 1664, 1666, 1665, 1667, 1666,
+ 1668, 1667, 1669, 1668, 1670, 1669, 1671, 1670, 1672, 1671,
+ 1673, 1672, 1674, 1673, 1675, 1674, 1676, 1675, 1677, 1676,
+ 1678, 1677, 1679, 1678, 1680, 1679, 1681, 1680, 1682, 1681,
+
+ 1683, 1682, 1684, 1683, 1685, 1684, 1686, 1685, 1687, 1686,
+ 1688, 1687, 1689, 1688, 1690, 1689, 1691, 1690, 1692, 1691,
+ 1693, 1692, 1694, 1693, 1695, 1694, 1696, 1695, 1697, 1696,
+ 1698, 1697, 1699, 1698, 1700, 1699, 1701, 1700, 1702, 1701,
+ 1703, 1702, 1704, 1703, 1705, 1704, 1706, 1705, 1707, 1706,
+ 1708, 1707, 1709, 1708, 1710, 1709, 1711, 1710, 1712, 1711,
+ 1713, 1712, 1714, 1713, 1715, 1714, 1716, 1715, 1717, 1716,
+ 1718, 1717, 1719, 1718, 1720, 1719, 1721, 1720, 1722, 1721,
+ 1723, 1722, 1724, 1723, 1725, 1724, 1726, 1725, 1727, 1726,
+ 1728, 1727, 1729, 1728, 1730, 1729, 1731, 1730, 1732, 1731,
+
+ 1733, 1732, 1734, 1733, 1735, 1734, 1736, 1735, 1737, 1736,
+ 1738, 1737, 1739, 1738, 1740, 1739, 1741, 1740, 1742, 1741,
+ 1743, 1742, 1744, 1743, 1745, 1744, 1746, 1745, 1747, 1746,
+ 1748, 1747, 1749, 1748, 1750, 1749, 1751, 1750, 1752, 1751,
+ 1753, 1752, 1754, 1753, 1755, 1754, 1756, 1755, 1757, 1756,
+ 1758, 1757, 1759, 1758, 1760, 1759, 1761, 1760, 1762, 1761,
+ 1763, 1762, 1764, 1763, 1765, 1764, 1766, 1765, 1767, 1766,
+ 1768, 1767, 1769, 1768, 1770, 1769, 1771, 1770, 1772, 1771,
+ 1773, 1772, 1774, 1773, 1775, 1774, 1776, 1775, 1777, 1776,
+ 1778, 1777, 1779, 1778, 1780, 1779, 1781, 1780, 1782, 1781,
+
+ 1783, 1782, 1784, 1783, 1785, 1784, 1786, 1785, 1787, 1786,
+ 1788, 1787, 1789, 1788, 1790, 1789, 1791, 1790, 1792, 1791,
+ 1793, 1792, 1794, 1793, 1795, 1794, 1796, 1795, 1797, 1796,
+ 1798, 1797, 1799, 1798, 1800, 1799, 1801, 1800, 1802, 1801,
+ 1803, 1802, 1804, 1803, 1805, 1804, 1806, 1805, 1807, 1806,
+ 1808, 1807, 1809, 1808, 1810, 1809, 1811, 1810, 1812, 1811,
+ 1813, 1812, 1814, 1813, 1815, 1814, 1816, 1815, 1817, 1816,
+ 1818, 1817, 1819, 1818, 1820, 1819, 1821, 1820, 1822, 1821,
+ 1823, 1822, 1824, 1823, 1825, 1824, 1826, 1825, 1827, 1826,
+ 1828, 1827, 1829, 1828, 1830, 1829, 1831, 1830, 1832, 1831,
+
+ 1833, 1832, 1834, 1833, 1835, 1834, 1836, 1835, 1837, 1836,
+ 1838, 1837, 1839, 1838, 1840, 1839, 1841, 1840, 1421, 1841,
+ 0, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421
} ;
-static yyconst short int yy_nxt[7662] =
+static yyconst short int yy_nxt[7680] =
{ 0,
26, 27, 27, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 36, 39, 40, 41, 42,
@@ -987,12 +993,12 @@ static yyconst short int yy_nxt[7662] =
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 85, 75, 81, 87, 87, 89, 89, 92, 112,
- 115, 115, 115, 93, 104, 105, 118, 121, 122, 199,
- 106, 104, 105, 88, 88, 126, 123, 106, 113, 200,
+ 115, 115, 115, 93, 104, 105, 118, 121, 122, 202,
+ 106, 104, 105, 88, 88, 126, 123, 106, 113, 203,
90, 90, 94, 91, 91, 92, 92, 139, 107, 108,
- 119, 93, 124, 937, 127, 107, 108, 141, 140, 144,
+ 119, 93, 124, 940, 127, 107, 108, 141, 140, 144,
144, 144, 114, 158, 159, 145, 142, 143, 160, 161,
- 94, 939, 95, 92, 95, 95, 95, 95, 95, 95,
+ 94, 942, 95, 92, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
@@ -1009,816 +1015,817 @@ static yyconst short int yy_nxt[7662] =
98, 98, 98, 99, 98, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 98, 98, 98, 128, 146, 941, 166, 154, 149,
+ 99, 98, 98, 98, 128, 146, 944, 166, 154, 149,
147, 150, 150, 150, 155, 156, 157, 148, 149, 167,
- 150, 150, 150, 168, 169, 194, 206, 224, 195, 151,
- 174, 171, 197, 943, 175, 198, 129, 130, 151, 131,
- 176, 132, 172, 126, 133, 173, 225, 201, 152, 177,
- 134, 183, 202, 135, 136, 284, 137, 184, 178, 179,
- 180, 207, 127, 185, 187, 212, 212, 212, 181, 285,
-
- 182, 188, 189, 115, 115, 115, 945, 190, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 120,
- 209, 120, 120, 120, 120, 120, 120, 120, 120, 120,
+ 150, 150, 150, 168, 169, 197, 170, 209, 198, 151,
+ 177, 171, 174, 946, 178, 948, 129, 130, 151, 131,
+ 179, 132, 204, 175, 133, 172, 176, 205, 152, 180,
+ 134, 186, 200, 135, 136, 201, 137, 187, 181, 182,
+ 183, 1421, 210, 188, 292, 190, 117, 293, 184, 386,
+
+ 185, 173, 191, 192, 215, 215, 215, 387, 193, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 120, 212, 120, 120, 120, 120, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
- 120, 120, 120, 120, 120, 120, 120, 210, 209, 209,
- 212, 212, 212, 215, 228, 228, 216, 216, 947, 228,
- 229, 216, 216, 230, 231, 240, 240, 216, 216, 227,
- 118, 240, 1410, 1410, 245, 250, 251, 308, 117, 267,
-
- 268, 228, 228, 309, 233, 271, 272, 213, 1410, 240,
- 240, 1410, 287, 217, 119, 288, 218, 246, 217, 282,
- 283, 218, 311, 302, 217, 312, 949, 218, 144, 144,
- 144, 262, 262, 262, 149, 1410, 150, 150, 150, 303,
- 304, 265, 265, 265, 951, 263, 151, 263, 953, 151,
- 264, 264, 264, 343, 151, 265, 265, 265, 265, 265,
- 265, 273, 295, 955, 274, 344, 275, 212, 212, 212,
- 276, 277, 401, 296, 322, 322, 322, 323, 323, 228,
- 324, 324, 324, 402, 228, 957, 230, 231, 322, 322,
- 322, 322, 322, 322, 324, 324, 324, 324, 324, 324,
-
- 228, 230, 231, 1410, 468, 229, 228, 233, 240, 240,
- 338, 338, 338, 959, 240, 469, 262, 262, 262, 1410,
- 355, 356, 1410, 264, 264, 264, 961, 228, 264, 264,
- 264, 380, 240, 240, 151, 265, 265, 265, 963, 381,
- 362, 965, 363, 391, 391, 364, 1410, 409, 410, 265,
- 265, 265, 265, 265, 265, 365, 322, 322, 322, 366,
- 409, 410, 392, 392, 392, 967, 1410, 338, 338, 338,
- 322, 322, 322, 322, 322, 322, 392, 392, 392, 392,
- 392, 392, 1410, 401, 1410, 1410, 458, 458, 459, 1410,
- 462, 506, 969, 462, 402, 468, 512, 1410, 971, 973,
-
- 1410, 463, 507, 1410, 463, 1410, 469, 513, 1410, 1410,
- 541, 541, 541, 1410, 506, 975, 1410, 544, 546, 403,
- 512, 977, 1410, 979, 981, 507, 464, 1410, 545, 547,
- 1410, 513, 1410, 541, 541, 541, 462, 401, 1410, 544,
- 1410, 1410, 546, 571, 571, 571, 1410, 463, 402, 1410,
- 545, 1410, 983, 547, 571, 571, 571, 985, 1410, 1410,
- 628, 628, 628, 987, 1410, 1410, 1410, 1410, 162, 989,
- 1410, 1410, 1410, 1410, 1410, 1410, 570, 1410, 1410, 162,
- 1410, 1410, 1410, 1410, 629, 1410, 991, 1410, 1410, 993,
- 1410, 1410, 1410, 995, 1410, 997, 999, 1410, 1001, 1003,
-
- 1410, 1410, 1410, 628, 628, 628, 1005, 1410, 1410, 1410,
- 1007, 1410, 1009, 1011, 1410, 1410, 632, 632, 632, 1013,
- 633, 1015, 1410, 1410, 1410, 634, 1017, 629, 632, 632,
- 632, 1410, 633, 1019, 1021, 1410, 1023, 634, 1410, 1410,
- 1410, 1410, 1410, 650, 650, 650, 1025, 1410, 1410, 1027,
- 1410, 650, 650, 650, 1410, 1029, 1410, 1031, 1033, 1410,
- 1035, 1410, 1410, 635, 1410, 1410, 1410, 1410, 651, 1410,
- 1410, 1410, 1037, 1410, 1410, 635, 651, 1410, 1410, 1410,
- 1410, 1410, 1039, 1410, 1410, 1410, 1041, 1410, 1410, 1043,
- 1410, 1410, 1410, 1045, 1410, 1410, 1047, 1410, 1410, 1410,
-
- 1410, 1410, 1049, 1410, 1410, 1410, 1051, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1053, 1410, 1410, 1055,
- 1410, 1057, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1059, 1061, 1063, 1065, 1410, 1067, 1410, 1410, 1410,
- 1410, 1069, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1071, 1410, 1073, 1410, 1410, 1075, 1410, 1410, 1410,
- 1410, 1410, 1077, 1410, 1079, 1081, 1410, 1410, 1410, 1410,
- 1410, 1083, 1410, 1410, 1085, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1087, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1089, 1091, 1093, 1095, 1097, 1099, 1410, 1410,
-
- 1410, 1101, 1410, 1410, 1410, 1410, 1410, 1410, 1103, 1105,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1107, 1410, 1410, 1109, 1111, 1410, 1113,
- 1115, 1117, 1119, 1121, 1410, 1410, 1410, 1410, 1123, 1410,
- 1125, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1127, 1410, 1410, 1129, 1410, 1410, 1410, 1131,
- 1133, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1135, 1410, 1137, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1139, 1141, 1410, 1410, 1143, 1410, 1410, 1410, 1410,
- 1410, 1410, 1145, 1410, 1410, 1410, 1410, 1410, 1410, 1147,
-
- 1410, 1410, 1149, 1151, 1410, 1410, 1410, 1153, 1155, 1410,
- 1410, 1410, 1410, 1410, 1157, 1410, 1410, 1159, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1161, 1163,
- 1165, 1167, 1169, 1410, 1410, 1410, 1410, 1171, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1173,
- 1410, 1175, 1410, 1410, 1177, 1410, 1410, 1410, 1179, 1181,
- 1183, 1185, 1410, 1187, 1410, 1410, 1410, 1189, 1410, 1410,
- 1410, 1410, 1410, 1410, 1191, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1193, 1195,
- 1410, 1197, 1199, 1201, 1410, 1203, 1410, 1410, 1205, 1410,
-
- 1410, 1410, 1410, 1410, 1207, 1410, 1209, 1410, 1410, 1410,
- 1211, 1410, 1410, 1213, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1215, 1410, 1217, 1410, 1410, 1219, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1221, 1410, 1223, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1225, 1410,
- 1410, 1227, 1410, 1229, 1410, 1231, 1410, 1410, 1233, 1410,
- 1410, 1410, 1410, 1410, 1410, 1235, 1237, 1410, 1239, 1410,
- 1410, 1410, 1410, 1241, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1243, 1410,
- 1410, 1245, 1410, 1410, 1247, 1249, 1410, 1251, 1253, 1410,
-
- 1410, 1410, 1410, 1255, 1410, 1410, 1410, 1410, 1410, 1257,
- 1410, 1410, 1259, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1261, 1263, 1410, 1265, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1267, 1410, 1410,
- 1410, 1410, 1410, 1410, 1269, 1410, 1410, 1271, 1410, 1410,
- 1273, 1410, 1410, 1410, 1275, 1277, 1410, 1279, 1410, 1410,
- 1410, 1410, 1410, 1410, 1281, 1410, 1410, 1283, 1410, 1410,
- 1410, 1410, 1285, 1410, 1410, 1410, 1287, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1289, 1410, 1410,
- 1410, 1410, 1410, 1410, 1291, 1410, 1293, 1295, 1297, 1410,
-
- 1410, 1299, 1301, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1303, 1410, 1410, 1305,
- 1410, 1410, 1410, 1307, 1309, 1410, 1311, 1410, 1410, 1410,
- 1410, 1410, 1313, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1315, 1410, 1317, 1410, 1410, 1319,
- 1410, 1410, 1410, 1321, 1323, 1325, 1327, 1410, 1329, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1331,
- 1410, 1333, 1410, 1410, 1410, 1335, 1410, 1410, 1337, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1339, 1410,
- 1341, 1410, 1410, 1343, 1410, 1345, 1410, 1410, 1410, 1410,
-
- 1410, 1347, 1410, 1410, 1410, 1349, 1410, 1410, 1351, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1353, 1410,
- 1355, 1410, 1410, 1357, 1410, 1410, 1410, 1410, 1410, 1410,
- 1359, 1361, 1410, 1363, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1365, 1410, 1410, 1367, 1410,
- 1410, 1369, 1410, 1371, 1373, 1410, 1410, 1410, 1410, 1410,
- 1375, 1410, 1410, 1377, 1410, 1410, 1410, 1410, 1379, 1410,
- 1410, 1410, 1410, 1410, 1381, 1410, 1410, 1383, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1385,
- 1387, 1410, 1389, 1410, 1391, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1393, 1410, 1410, 1395, 1410, 1397,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1399,
- 1401, 1410, 1403, 1410, 1410, 1410, 1410, 1410, 1410, 1405,
- 1410, 1410, 1407, 1410, 1410, 1410, 1410, 1410, 1410, 1409,
- 1410, 120, 1410, 1410, 935, 1410, 1410, 1410, 1410, 1410,
- 933, 1410, 931, 929, 1410, 1410, 1410, 1410, 1410, 927,
- 1410, 1410, 925, 1410, 1410, 1410, 1410, 923, 1410, 1410,
- 1410, 921, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 919, 917, 1410, 915, 913, 1410, 1410, 911, 909,
- 1410, 907, 1410, 1410, 1410, 1410, 905, 903, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 901, 1410, 1410, 899, 1410, 1410, 897, 895, 893,
- 1410, 891, 1410, 1410, 1410, 1410, 1410, 1410, 889, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 887,
- 885, 1410, 1410, 883, 1410, 1410, 1410, 1410, 1410, 1410,
- 881, 1410, 1410, 879, 1410, 1410, 1410, 1410, 1410, 1410,
- 877, 1410, 1410, 1410, 1410, 1410, 875, 1410, 1410, 1410,
- 873, 1410, 1410, 871, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 869, 1410, 867, 1410, 865, 863, 1410,
- 861, 1410, 1410, 1410, 1410, 859, 857, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 855, 1410, 1410, 853, 1410, 1410, 851, 1410, 849, 847,
- 1410, 1410, 1410, 1410, 1410, 845, 1410, 1410, 843, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 841,
- 1410, 1410, 839, 1410, 1410, 1410, 837, 1410, 1410, 835,
- 1410, 1410, 1410, 1410, 1410, 833, 1410, 1410, 1410, 831,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 829,
- 1410, 1410, 827, 1410, 825, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 823, 821, 819, 817, 1410, 815,
- 1410, 1410, 1410, 1410, 813, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 811, 1410, 809, 1410, 1410, 807,
- 1410, 1410, 1410, 1410, 1410, 805, 1410, 803, 801, 1410,
- 1410, 1410, 1410, 1410, 799, 1410, 1410, 797, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 795, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 793, 791, 789, 787, 785,
- 783, 1410, 1410, 1410, 781, 1410, 1410, 1410, 1410, 1410,
- 1410, 779, 777, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 775, 1410, 1410, 773,
- 771, 1410, 769, 767, 765, 763, 761, 1410, 1410, 1410,
- 1410, 759, 1410, 757, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 755, 1410, 1410, 753, 1410,
- 1410, 1410, 751, 749, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 747, 1410, 745, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 743, 741, 1410, 1410, 739, 1410,
- 1410, 1410, 1410, 1410, 1410, 737, 1410, 1410, 1410, 1410,
- 1410, 1410, 735, 1410, 1410, 733, 731, 1410, 1410, 1410,
- 729, 727, 1410, 1410, 1410, 1410, 1410, 725, 1410, 1410,
- 723, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 721, 719, 717, 715, 713, 1410, 1410, 1410, 1410,
- 711, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 1410, 709, 1410, 707, 1410, 1410, 705, 1410, 1410,
- 1410, 703, 701, 699, 697, 1410, 695, 1410, 1410, 1410,
- 693, 1410, 1410, 1410, 1410, 1410, 1410, 691, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 689, 687, 1410, 685, 683, 681, 1410, 679, 1410,
- 1410, 677, 1410, 1410, 1410, 1410, 1410, 675, 1410, 673,
- 1410, 1410, 1410, 671, 1410, 1410, 669, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 667, 1410, 665, 1410,
- 1410, 663, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 661,
- 1410, 659, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
-
- 1410, 657, 1410, 1410, 655, 1410, 645, 1410, 645, 1410,
- 1410, 653, 1410, 1410, 1410, 1410, 1410, 1410, 649, 648,
- 1410, 647, 1410, 1410, 1410, 1410, 645, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 644, 1410, 1410, 643, 1410, 1410, 642, 640, 1410,
- 639, 638, 1410, 1410, 1410, 1410, 637, 1410, 1410, 1410,
- 1410, 1410, 631, 1410, 1410, 627, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 625, 624, 1410,
- 622, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 621, 1410, 1410, 1410, 1410, 1410, 1410, 620, 1410, 1410,
-
- 618, 1410, 1410, 617, 1410, 1410, 1410, 616, 614, 1410,
- 613, 1410, 1410, 1410, 1410, 1410, 1410, 612, 1410, 1410,
- 610, 1410, 1410, 1410, 1410, 609, 1410, 1410, 1410, 608,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 607, 1410, 1410, 1410, 1410, 1410, 1410, 606, 1410, 605,
- 603, 602, 1410, 1410, 601, 600, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 599,
- 1410, 1410, 598, 1410, 1410, 1410, 596, 595, 1410, 594,
- 1410, 1410, 1410, 1410, 1410, 593, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 592, 1410, 591,
-
- 1410, 1410, 590, 1410, 1410, 1410, 589, 588, 587, 586,
- 1410, 584, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 583, 1410, 582, 1410, 1410, 1410, 581, 1410,
- 1410, 580, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 579, 1410, 578, 1410, 1410, 577, 1410, 576, 1410,
- 1410, 1410, 1410, 1410, 575, 1410, 1410, 1410, 574, 1410,
- 1410, 573, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 572, 1410, 569, 1410, 1410, 567, 1410, 1410, 1410,
- 1410, 1410, 1410, 566, 565, 1410, 564, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 563, 1410,
-
- 1410, 562, 1410, 1410, 561, 1410, 560, 559, 1410, 1410,
- 1410, 1410, 1410, 558, 1410, 1410, 557, 1410, 1410, 1410,
- 1410, 556, 1410, 1410, 1410, 1410, 1410, 555, 1410, 1410,
- 554, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 553, 552, 1410, 551, 1410, 550, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 549, 1410, 1410,
- 548, 1410, 543, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 542, 540, 1410, 538, 1410, 1410, 1410, 1410,
- 1410, 1410, 537, 1410, 1410, 536, 1410, 1410, 1410, 1410,
- 1410, 1410, 535, 1410, 534, 1410, 1410, 533, 1410, 1410,
-
- 1410, 1410, 1410, 532, 1410, 531, 530, 1410, 1410, 1410,
- 1410, 1410, 529, 1410, 1410, 528, 1410, 1410, 1410, 1410,
- 527, 1410, 1410, 1410, 526, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 525, 524, 1410, 523, 522, 1410,
- 1410, 521, 520, 1410, 519, 1410, 1410, 1410, 1410, 518,
- 517, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 516, 1410, 1410, 515, 1410, 1410,
- 514, 511, 510, 1410, 509, 1410, 1410, 1410, 1410, 1410,
- 1410, 405, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 508, 505, 1410, 1410, 458, 1410, 1410, 1410,
-
- 1410, 1410, 1410, 504, 1410, 1410, 502, 1410, 1410, 1410,
- 1410, 1410, 1410, 501, 1410, 1410, 1410, 1410, 1410, 500,
- 1410, 1410, 1410, 499, 1410, 1410, 498, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 497, 1410, 496, 1410,
- 495, 494, 1410, 493, 1410, 1410, 1410, 1410, 492, 491,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 490, 1410, 1410, 489, 1410, 1410, 488,
- 1410, 487, 486, 1410, 1410, 1410, 1410, 1410, 485, 1410,
- 1410, 484, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 483, 1410, 1410, 482, 1410, 1410, 1410, 481,
-
- 1410, 1410, 480, 1410, 1410, 1410, 1410, 1410, 479, 1410,
- 1410, 1410, 478, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 477, 1410, 1410, 476, 1410, 475, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 474, 473, 409,
- 472, 1410, 471, 1410, 1410, 470, 1410, 467, 1410, 1410,
- 1410, 1410, 1410, 466, 1410, 1410, 1410, 405, 1410, 465,
- 1410, 461, 460, 1410, 457, 455, 454, 453, 452, 451,
- 450, 449, 448, 1410, 447, 446, 445, 444, 1410, 1410,
- 443, 442, 441, 440, 439, 438, 437, 1410, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 86,
-
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 103, 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 436, 111, 117, 117, 117, 117, 435, 117,
- 117, 117, 117, 117, 117, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 125, 125, 164, 434, 433, 164,
- 208, 208, 208, 432, 208, 208, 431, 208, 208, 214,
- 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
-
- 219, 430, 429, 219, 222, 222, 222, 222, 222, 428,
- 222, 222, 222, 222, 222, 232, 427, 426, 425, 424,
- 232, 232, 423, 232, 234, 422, 421, 234, 235, 420,
- 419, 235, 236, 236, 236, 236, 236, 236, 418, 236,
- 236, 236, 236, 239, 239, 239, 239, 239, 239, 239,
- 239, 239, 239, 239, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 249, 417, 416, 249, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
- 341, 415, 414, 413, 412, 340, 408, 407, 406, 341,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
-
- 393, 411, 405, 404, 400, 399, 411, 398, 397, 411,
- 456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
- 456, 503, 503, 503, 503, 503, 503, 503, 503, 503,
- 503, 503, 539, 539, 539, 539, 539, 539, 539, 539,
- 539, 539, 539, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 585, 585, 585, 585, 585, 585,
- 585, 585, 585, 585, 585, 597, 597, 597, 597, 597,
- 597, 597, 597, 597, 597, 597, 604, 604, 604, 604,
- 604, 604, 604, 604, 604, 604, 604, 611, 611, 611,
- 611, 611, 611, 611, 611, 611, 611, 611, 615, 615,
-
- 615, 615, 615, 615, 615, 615, 615, 615, 615, 619,
- 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
- 623, 623, 623, 623, 623, 623, 623, 623, 623, 623,
- 623, 626, 626, 626, 626, 626, 626, 626, 626, 626,
- 626, 626, 630, 630, 630, 630, 630, 630, 630, 630,
- 630, 630, 630, 636, 636, 636, 636, 636, 636, 636,
- 636, 636, 636, 636, 641, 641, 641, 641, 641, 641,
- 641, 641, 641, 641, 641, 646, 646, 646, 646, 646,
- 646, 646, 646, 646, 646, 646, 652, 652, 652, 652,
- 652, 652, 652, 652, 652, 652, 652, 654, 654, 654,
-
- 654, 654, 654, 654, 654, 654, 654, 654, 656, 656,
- 656, 656, 656, 656, 656, 656, 656, 656, 656, 658,
- 658, 658, 658, 658, 658, 658, 658, 658, 658, 658,
- 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
- 660, 662, 662, 662, 662, 662, 662, 662, 662, 662,
- 662, 662, 664, 664, 664, 664, 664, 664, 664, 664,
- 664, 664, 664, 666, 666, 666, 666, 666, 666, 666,
- 666, 666, 666, 666, 668, 668, 668, 668, 668, 668,
- 668, 668, 668, 668, 668, 670, 670, 670, 670, 670,
- 670, 670, 670, 670, 670, 670, 672, 672, 672, 672,
-
- 672, 672, 672, 672, 672, 672, 672, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 676, 676,
- 676, 676, 676, 676, 676, 676, 676, 676, 676, 678,
- 678, 678, 678, 678, 678, 678, 678, 678, 678, 678,
- 680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
- 680, 682, 682, 682, 682, 682, 682, 682, 682, 682,
- 682, 682, 684, 684, 684, 684, 684, 684, 684, 684,
- 684, 684, 684, 686, 686, 686, 686, 686, 686, 686,
- 686, 686, 686, 686, 688, 688, 688, 688, 688, 688,
- 688, 688, 688, 688, 688, 690, 690, 690, 690, 690,
-
- 690, 690, 690, 690, 690, 690, 692, 692, 692, 692,
- 692, 692, 692, 692, 692, 692, 692, 694, 694, 694,
- 694, 694, 694, 694, 694, 694, 694, 694, 696, 696,
- 696, 696, 696, 696, 696, 696, 696, 696, 696, 698,
- 698, 698, 698, 698, 698, 698, 698, 698, 698, 698,
- 700, 700, 700, 700, 700, 700, 700, 700, 700, 700,
- 700, 702, 702, 702, 702, 702, 702, 702, 702, 702,
- 702, 702, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 706, 706, 706, 706, 706, 706, 706,
- 706, 706, 706, 706, 708, 708, 708, 708, 708, 708,
-
- 708, 708, 708, 708, 708, 710, 710, 710, 710, 710,
- 710, 710, 710, 710, 710, 710, 712, 712, 712, 712,
- 712, 712, 712, 712, 712, 712, 712, 714, 714, 714,
- 714, 714, 714, 714, 714, 714, 714, 714, 716, 716,
- 716, 716, 716, 716, 716, 716, 716, 716, 716, 718,
- 718, 718, 718, 718, 718, 718, 718, 718, 718, 718,
- 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 724, 724, 724, 724, 724, 724, 724, 724,
- 724, 724, 724, 726, 726, 726, 726, 726, 726, 726,
-
- 726, 726, 726, 726, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 730, 730, 730, 730, 730,
- 730, 730, 730, 730, 730, 730, 732, 732, 732, 732,
- 732, 732, 732, 732, 732, 732, 732, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734, 736, 736,
- 736, 736, 736, 736, 736, 736, 736, 736, 736, 738,
- 738, 738, 738, 738, 738, 738, 738, 738, 738, 738,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 742, 742, 742, 742, 742, 742, 742, 742, 742,
- 742, 742, 744, 744, 744, 744, 744, 744, 744, 744,
-
- 744, 744, 744, 746, 746, 746, 746, 746, 746, 746,
- 746, 746, 746, 746, 748, 748, 748, 748, 748, 748,
- 748, 748, 748, 748, 748, 750, 750, 750, 750, 750,
- 750, 750, 750, 750, 750, 750, 752, 752, 752, 752,
- 752, 752, 752, 752, 752, 752, 752, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754, 756, 756,
- 756, 756, 756, 756, 756, 756, 756, 756, 756, 758,
- 758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
- 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
- 760, 762, 762, 762, 762, 762, 762, 762, 762, 762,
-
- 762, 762, 764, 764, 764, 764, 764, 764, 764, 764,
- 764, 764, 764, 766, 766, 766, 766, 766, 766, 766,
- 766, 766, 766, 766, 768, 768, 768, 768, 768, 768,
- 768, 768, 768, 768, 768, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 772, 772, 772, 772,
- 772, 772, 772, 772, 772, 772, 772, 774, 774, 774,
- 774, 774, 774, 774, 774, 774, 774, 774, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 778,
- 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
- 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
-
- 780, 782, 782, 782, 782, 782, 782, 782, 782, 782,
- 782, 782, 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 786, 786, 786, 786, 786, 786, 786,
- 786, 786, 786, 786, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 788, 790, 790, 790, 790, 790,
- 790, 790, 790, 790, 790, 790, 792, 792, 792, 792,
- 792, 792, 792, 792, 792, 792, 792, 794, 794, 794,
- 794, 794, 794, 794, 794, 794, 794, 794, 796, 796,
- 796, 796, 796, 796, 796, 796, 796, 796, 796, 798,
- 798, 798, 798, 798, 798, 798, 798, 798, 798, 798,
-
- 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
- 800, 802, 802, 802, 802, 802, 802, 802, 802, 802,
- 802, 802, 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 806, 806, 806, 806, 806, 806, 806,
- 806, 806, 806, 806, 808, 808, 808, 808, 808, 808,
- 808, 808, 808, 808, 808, 810, 810, 810, 810, 810,
- 810, 810, 810, 810, 810, 810, 812, 812, 812, 812,
- 812, 812, 812, 812, 812, 812, 812, 814, 814, 814,
- 814, 814, 814, 814, 814, 814, 814, 814, 816, 816,
- 816, 816, 816, 816, 816, 816, 816, 816, 816, 818,
-
- 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
- 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 822, 822, 822, 822, 822, 822, 822, 822, 822,
- 822, 822, 824, 824, 824, 824, 824, 824, 824, 824,
- 824, 824, 824, 826, 826, 826, 826, 826, 826, 826,
- 826, 826, 826, 826, 828, 828, 828, 828, 828, 828,
- 828, 828, 828, 828, 828, 830, 830, 830, 830, 830,
- 830, 830, 830, 830, 830, 830, 832, 832, 832, 832,
- 832, 832, 832, 832, 832, 832, 832, 834, 834, 834,
- 834, 834, 834, 834, 834, 834, 834, 834, 836, 836,
-
- 836, 836, 836, 836, 836, 836, 836, 836, 836, 838,
- 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
- 840, 840, 840, 840, 840, 840, 840, 840, 840, 840,
- 840, 842, 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 844, 844, 844, 844, 844, 844, 844, 844,
- 844, 844, 844, 846, 846, 846, 846, 846, 846, 846,
- 846, 846, 846, 846, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 850, 850, 850, 850, 850,
- 850, 850, 850, 850, 850, 850, 852, 852, 852, 852,
- 852, 852, 852, 852, 852, 852, 852, 854, 854, 854,
-
- 854, 854, 854, 854, 854, 854, 854, 854, 856, 856,
- 856, 856, 856, 856, 856, 856, 856, 856, 856, 858,
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 860, 860, 860, 860, 860, 860, 860, 860, 860, 860,
- 860, 862, 862, 862, 862, 862, 862, 862, 862, 862,
- 862, 862, 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 866, 866, 866, 866, 866, 866, 866,
- 866, 866, 866, 866, 868, 868, 868, 868, 868, 868,
- 868, 868, 868, 868, 868, 870, 870, 870, 870, 870,
- 870, 870, 870, 870, 870, 870, 872, 872, 872, 872,
-
- 872, 872, 872, 872, 872, 872, 872, 874, 874, 874,
- 874, 874, 874, 874, 874, 874, 874, 874, 876, 876,
- 876, 876, 876, 876, 876, 876, 876, 876, 876, 878,
- 878, 878, 878, 878, 878, 878, 878, 878, 878, 878,
- 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
- 880, 882, 882, 882, 882, 882, 882, 882, 882, 882,
- 882, 882, 884, 884, 884, 884, 884, 884, 884, 884,
- 884, 884, 884, 886, 886, 886, 886, 886, 886, 886,
- 886, 886, 886, 886, 888, 888, 888, 888, 888, 888,
- 888, 888, 888, 888, 888, 890, 890, 890, 890, 890,
-
- 890, 890, 890, 890, 890, 890, 892, 892, 892, 892,
- 892, 892, 892, 892, 892, 892, 892, 894, 894, 894,
- 894, 894, 894, 894, 894, 894, 894, 894, 896, 896,
- 896, 896, 896, 896, 896, 896, 896, 896, 896, 898,
- 898, 898, 898, 898, 898, 898, 898, 898, 898, 898,
- 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,
- 900, 902, 902, 902, 902, 902, 902, 902, 902, 902,
- 902, 902, 904, 904, 904, 904, 904, 904, 904, 904,
- 904, 904, 904, 906, 906, 906, 906, 906, 906, 906,
- 906, 906, 906, 906, 908, 908, 908, 908, 908, 908,
-
- 908, 908, 908, 908, 908, 910, 910, 910, 910, 910,
- 910, 910, 910, 910, 910, 910, 912, 912, 912, 912,
- 912, 912, 912, 912, 912, 912, 912, 914, 914, 914,
- 914, 914, 914, 914, 914, 914, 914, 914, 916, 916,
- 916, 916, 916, 916, 916, 916, 916, 916, 916, 918,
- 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
- 920, 920, 920, 920, 920, 920, 920, 920, 920, 920,
- 920, 922, 922, 922, 922, 922, 922, 922, 922, 922,
- 922, 922, 924, 924, 924, 924, 924, 924, 924, 924,
- 924, 924, 924, 926, 926, 926, 926, 926, 926, 926,
-
- 926, 926, 926, 926, 928, 928, 928, 928, 928, 928,
- 928, 928, 928, 928, 928, 930, 930, 930, 930, 930,
- 930, 930, 930, 930, 930, 930, 932, 932, 932, 932,
- 932, 932, 932, 932, 932, 932, 932, 934, 934, 934,
- 934, 934, 934, 934, 934, 934, 934, 934, 936, 936,
- 936, 936, 936, 936, 936, 936, 936, 936, 936, 938,
- 938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
- 940, 940, 940, 940, 940, 940, 940, 940, 940, 940,
- 940, 942, 942, 942, 942, 942, 942, 942, 942, 942,
- 942, 942, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 946, 946, 946, 946, 946, 946, 946,
- 946, 946, 946, 946, 948, 948, 948, 948, 948, 948,
- 948, 948, 948, 948, 948, 950, 950, 950, 950, 950,
- 950, 950, 950, 950, 950, 950, 952, 952, 952, 952,
- 952, 952, 952, 952, 952, 952, 952, 954, 954, 954,
- 954, 954, 954, 954, 954, 954, 954, 954, 956, 956,
- 956, 956, 956, 956, 956, 956, 956, 956, 956, 958,
- 958, 958, 958, 958, 958, 958, 958, 958, 958, 958,
- 960, 960, 960, 960, 960, 960, 960, 960, 960, 960,
- 960, 962, 962, 962, 962, 962, 962, 962, 962, 962,
-
- 962, 962, 964, 964, 964, 964, 964, 964, 964, 964,
- 964, 964, 964, 966, 966, 966, 966, 966, 966, 966,
- 966, 966, 966, 966, 968, 968, 968, 968, 968, 968,
- 968, 968, 968, 968, 968, 970, 970, 970, 970, 970,
- 970, 970, 970, 970, 970, 970, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 974, 974, 974,
- 974, 974, 974, 974, 974, 974, 974, 974, 976, 976,
- 976, 976, 976, 976, 976, 976, 976, 976, 976, 978,
- 978, 978, 978, 978, 978, 978, 978, 978, 978, 978,
- 980, 980, 980, 980, 980, 980, 980, 980, 980, 980,
-
- 980, 982, 982, 982, 982, 982, 982, 982, 982, 982,
- 982, 982, 984, 984, 984, 984, 984, 984, 984, 984,
- 984, 984, 984, 986, 986, 986, 986, 986, 986, 986,
- 986, 986, 986, 986, 988, 988, 988, 988, 988, 988,
- 988, 988, 988, 988, 988, 990, 990, 990, 990, 990,
- 990, 990, 990, 990, 990, 990, 992, 992, 992, 992,
- 992, 992, 992, 992, 992, 992, 992, 994, 994, 994,
- 994, 994, 994, 994, 994, 994, 994, 994, 996, 996,
- 996, 996, 996, 996, 996, 996, 996, 996, 996, 998,
- 998, 998, 998, 998, 998, 998, 998, 998, 998, 998,
-
- 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
- 1000, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
- 1002, 1002, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
- 1004, 1004, 1004, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
- 1006, 1006, 1006, 1006, 1008, 1008, 1008, 1008, 1008, 1008,
- 1008, 1008, 1008, 1008, 1008, 1010, 1010, 1010, 1010, 1010,
- 1010, 1010, 1010, 1010, 1010, 1010, 1012, 1012, 1012, 1012,
- 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1014, 1014, 1014,
- 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1016, 1016,
- 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1018,
-
- 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
- 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
- 1020, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
- 1022, 1022, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
- 1024, 1024, 1024, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
- 1026, 1026, 1026, 1026, 1028, 1028, 1028, 1028, 1028, 1028,
- 1028, 1028, 1028, 1028, 1028, 1030, 1030, 1030, 1030, 1030,
- 1030, 1030, 1030, 1030, 1030, 1030, 1032, 1032, 1032, 1032,
- 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1034, 1034, 1034,
- 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1036, 1036,
-
- 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
- 1042, 1042, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
- 1044, 1044, 1044, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
- 1046, 1046, 1046, 1046, 1048, 1048, 1048, 1048, 1048, 1048,
- 1048, 1048, 1048, 1048, 1048, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1052, 1052, 1052, 1052,
- 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1054, 1054, 1054,
-
- 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1056, 1056,
- 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1058,
- 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058,
- 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
- 1060, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
- 1062, 1062, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
- 1064, 1064, 1064, 1066, 1066, 1066, 1066, 1066, 1066, 1066,
- 1066, 1066, 1066, 1066, 1068, 1068, 1068, 1068, 1068, 1068,
- 1068, 1068, 1068, 1068, 1068, 1070, 1070, 1070, 1070, 1070,
- 1070, 1070, 1070, 1070, 1070, 1070, 1072, 1072, 1072, 1072,
-
- 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1076, 1076,
- 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078,
- 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
- 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
- 1080, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
- 1082, 1082, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
- 1084, 1084, 1084, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
- 1086, 1086, 1086, 1086, 1088, 1088, 1088, 1088, 1088, 1088,
- 1088, 1088, 1088, 1088, 1088, 1090, 1090, 1090, 1090, 1090,
-
- 1090, 1090, 1090, 1090, 1090, 1090, 1092, 1092, 1092, 1092,
- 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1096, 1096,
- 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1098,
- 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
- 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
- 1100, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
- 1102, 1102, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
- 1104, 1104, 1104, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1108, 1108, 1108, 1108, 1108, 1108,
-
- 1108, 1108, 1108, 1108, 1108, 1110, 1110, 1110, 1110, 1110,
- 1110, 1110, 1110, 1110, 1110, 1110, 1112, 1112, 1112, 1112,
- 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1114, 1114, 1114,
- 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1116, 1116,
- 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
- 1120, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
- 1122, 1122, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
-
- 1126, 1126, 1126, 1126, 1128, 1128, 1128, 1128, 1128, 1128,
- 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130,
- 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132,
- 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136,
- 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138,
- 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
- 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
-
- 1144, 1144, 1144, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148,
- 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152,
- 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154,
- 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1158,
- 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
-
- 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
- 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
- 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168,
- 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170,
- 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172,
- 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174,
- 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176,
- 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
-
- 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
- 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
- 1184, 1184, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
- 1186, 1186, 1186, 1186, 1188, 1188, 1188, 1188, 1188, 1188,
- 1188, 1188, 1188, 1188, 1188, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1192, 1192, 1192, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1194,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196,
- 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1198,
- 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
-
- 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
- 1200, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
- 1202, 1202, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1204, 1204, 1204, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1208, 1208, 1208,
- 1208, 1208, 1208, 1208, 1208, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1212, 1212, 1212, 1212,
- 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1214, 1214, 1214,
- 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1216, 1216,
- 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1218,
-
- 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
- 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
- 1224, 1224, 1224, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
- 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1228,
- 1228, 1228, 1228, 1228, 1228, 1230, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1232, 1232, 1232, 1232,
- 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234,
- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1236, 1236,
-
- 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1238,
- 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
- 1240, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244,
- 1244, 1244, 1244, 1246, 1246, 1246, 1246, 1246, 1246, 1246,
- 1246, 1246, 1246, 1246, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 1250, 1250, 1250, 1252, 1252, 1252, 1252,
- 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1254, 1254, 1254,
-
- 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256, 1256,
- 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1258,
- 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
- 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
- 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
- 1262, 1262, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
- 1264, 1264, 1264, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
- 1266, 1266, 1266, 1266, 1268, 1268, 1268, 1268, 1268, 1268,
- 1268, 1268, 1268, 1268, 1268, 1270, 1270, 1270, 1270, 1270,
- 1270, 1270, 1270, 1270, 1270, 1270, 1272, 1272, 1272, 1272,
-
- 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1274, 1274, 1274,
- 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1276, 1276,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1278,
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280,
- 1280, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
- 1282, 1282, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284,
- 1284, 1284, 1284, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1290, 1290, 1290, 1290, 1290,
-
- 1290, 1290, 1290, 1290, 1290, 1290, 1292, 1292, 1292, 1292,
- 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1294, 1294, 1294,
- 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1296, 1296,
- 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1298,
- 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
- 1304, 1304, 1304, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
- 1306, 1306, 1306, 1306, 1308, 1308, 1308, 1308, 1308, 1308,
-
- 1308, 1308, 1308, 1308, 1308, 1310, 1310, 1310, 1310, 1310,
- 1310, 1310, 1310, 1310, 1310, 1310, 1312, 1312, 1312, 1312,
- 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1314, 1314, 1314,
- 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1316, 1316,
- 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1318,
- 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324,
- 1324, 1324, 1324, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
-
- 1326, 1326, 1326, 1326, 1328, 1328, 1328, 1328, 1328, 1328,
- 1328, 1328, 1328, 1328, 1328, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1332, 1332, 1332, 1332,
- 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1334, 1334, 1334,
- 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1336, 1336,
- 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1338,
- 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338,
- 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340,
- 1340, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
- 1342, 1342, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
-
- 1344, 1344, 1344, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
- 1346, 1346, 1346, 1346, 1348, 1348, 1348, 1348, 1348, 1348,
- 1348, 1348, 1348, 1348, 1348, 1350, 1350, 1350, 1350, 1350,
- 1350, 1350, 1350, 1350, 1350, 1350, 1352, 1352, 1352, 1352,
- 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1354, 1354, 1354,
- 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1356, 1356,
- 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1358,
- 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
- 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
- 1360, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
-
- 1362, 1362, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
- 1364, 1364, 1364, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
- 1366, 1366, 1366, 1366, 1368, 1368, 1368, 1368, 1368, 1368,
- 1368, 1368, 1368, 1368, 1368, 1370, 1370, 1370, 1370, 1370,
- 1370, 1370, 1370, 1370, 1370, 1370, 1372, 1372, 1372, 1372,
- 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1374, 1374, 1374,
- 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1376, 1376,
- 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1378,
- 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
- 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
-
- 1380, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
- 1382, 1382, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
- 1384, 1384, 1384, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
- 1386, 1386, 1386, 1386, 1388, 1388, 1388, 1388, 1388, 1388,
- 1388, 1388, 1388, 1388, 1388, 1390, 1390, 1390, 1390, 1390,
- 1390, 1390, 1390, 1390, 1390, 1390, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1394, 1394, 1394,
- 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1396, 1396,
- 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1398,
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
-
- 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
- 1400, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402,
- 1402, 1402, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404,
- 1404, 1404, 1404, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
- 1406, 1406, 1406, 1406, 1408, 1408, 1408, 1408, 1408, 1408,
- 1408, 1408, 1408, 1408, 1408, 396, 395, 394, 390, 389,
- 388, 387, 386, 385, 384, 383, 382, 379, 378, 377,
- 376, 375, 374, 373, 372, 371, 370, 369, 368, 367,
- 361, 360, 359, 358, 357, 354, 353, 352, 351, 350,
- 349, 348, 347, 346, 345, 342, 271, 340, 339, 337,
-
- 336, 335, 334, 333, 332, 331, 330, 329, 250, 328,
- 327, 326, 230, 226, 1410, 223, 220, 321, 320, 319,
- 318, 317, 316, 315, 314, 313, 310, 307, 306, 305,
- 301, 300, 299, 298, 297, 294, 293, 292, 291, 290,
- 289, 286, 281, 280, 279, 278, 270, 269, 266, 261,
- 260, 259, 258, 257, 256, 255, 254, 253, 252, 1410,
- 248, 247, 245, 110, 244, 242, 242, 241, 238, 237,
- 226, 223, 221, 220, 211, 205, 204, 203, 196, 193,
- 192, 191, 186, 170, 165, 163, 162, 153, 138, 116,
- 110, 1410, 102, 102, 101, 101, 25, 25, 23, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410
+ 120, 120, 120, 120, 120, 120, 120, 120, 213, 212,
+ 212, 215, 215, 215, 218, 227, 231, 219, 219, 231,
+ 1421, 231, 219, 219, 232, 118, 233, 234, 219, 219,
+ 230, 243, 243, 126, 228, 248, 1421, 243, 950, 1421,
+
+ 115, 115, 115, 231, 253, 254, 231, 236, 216, 119,
+ 271, 272, 127, 289, 220, 243, 243, 221, 249, 220,
+ 256, 118, 221, 1421, 349, 220, 257, 290, 221, 144,
+ 144, 144, 266, 266, 266, 149, 350, 150, 150, 150,
+ 275, 276, 269, 269, 269, 119, 267, 151, 267, 126,
+ 151, 268, 268, 268, 952, 151, 269, 269, 269, 269,
+ 269, 269, 277, 287, 288, 278, 300, 279, 127, 307,
+ 313, 280, 281, 328, 328, 316, 314, 301, 317, 215,
+ 215, 215, 327, 327, 327, 308, 309, 231, 329, 329,
+ 329, 954, 231, 956, 233, 234, 327, 327, 327, 327,
+
+ 327, 327, 329, 329, 329, 329, 329, 329, 231, 233,
+ 234, 1421, 408, 232, 231, 236, 243, 243, 344, 344,
+ 344, 958, 243, 409, 266, 266, 266, 1421, 361, 362,
+ 1421, 268, 268, 268, 960, 231, 268, 268, 268, 962,
+ 243, 243, 151, 269, 269, 269, 397, 397, 368, 964,
+ 369, 416, 417, 370, 1421, 416, 417, 269, 269, 269,
+ 269, 269, 269, 371, 327, 327, 327, 372, 966, 968,
+ 398, 398, 398, 970, 1421, 344, 344, 344, 327, 327,
+ 327, 327, 327, 327, 398, 398, 398, 398, 398, 398,
+ 1421, 408, 1421, 1421, 465, 465, 466, 1421, 470, 476,
+
+ 972, 514, 409, 470, 476, 1421, 974, 521, 1421, 471,
+ 477, 1421, 515, 1421, 471, 477, 1421, 1421, 522, 976,
+ 514, 1421, 551, 1421, 1421, 555, 557, 410, 550, 550,
+ 550, 515, 521, 552, 472, 1421, 556, 558, 551, 1421,
+ 1421, 470, 1421, 522, 550, 550, 550, 408, 1421, 552,
+ 555, 557, 471, 582, 582, 582, 1421, 1421, 409, 978,
+ 980, 556, 558, 582, 582, 582, 1421, 1421, 639, 639,
+ 639, 982, 1421, 1421, 1421, 1421, 1421, 984, 162, 1421,
+ 986, 988, 990, 1421, 992, 1421, 1421, 581, 162, 1421,
+ 1421, 994, 640, 1421, 996, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 998, 1000, 1421, 1421, 1002, 1004, 1421, 1006,
+ 1421, 1008, 1421, 1421, 1421, 1421, 1421, 1421, 639, 639,
+ 639, 1010, 1421, 1012, 1014, 643, 643, 643, 1421, 644,
+ 1421, 1016, 1421, 1421, 645, 1421, 1018, 1421, 1020, 1421,
+ 1421, 1022, 640, 643, 643, 643, 1421, 644, 661, 661,
+ 661, 1421, 645, 1421, 1421, 1421, 1421, 1421, 661, 661,
+ 661, 1024, 1421, 1421, 1026, 1421, 1028, 1030, 1421, 1421,
+ 1032, 1421, 646, 662, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 662, 1421, 1421, 1421, 1421, 1421, 1421,
+ 646, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1034,
+
+ 1421, 1036, 1421, 1038, 1040, 1421, 1421, 1421, 1042, 1421,
+ 1044, 1421, 1421, 1046, 1421, 1421, 1421, 1048, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1050, 1421, 1421, 1052,
+ 1421, 1421, 1054, 1421, 1421, 1056, 1421, 1058, 1060, 1062,
+ 1421, 1064, 1421, 1421, 1066, 1421, 1068, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1070, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1072, 1421, 1421, 1074,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1076, 1421,
+ 1078, 1421, 1421, 1080, 1421, 1421, 1421, 1082, 1421, 1084,
+
+ 1421, 1421, 1086, 1421, 1421, 1421, 1421, 1421, 1088, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1090, 1421, 1421, 1421, 1092,
+ 1421, 1421, 1421, 1421, 1094, 1421, 1421, 1421, 1421, 1421,
+ 1096, 1421, 1421, 1098, 1100, 1421, 1102, 1421, 1421, 1104,
+ 1421, 1421, 1421, 1421, 1421, 1106, 1108, 1421, 1110, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1112, 1421, 1114, 1421, 1421,
+ 1116, 1421, 1421, 1421, 1118, 1421, 1120, 1122, 1421, 1124,
+ 1126, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1128, 1421, 1421, 1130, 1421,
+ 1132, 1134, 1421, 1421, 1136, 1138, 1421, 1140, 1421, 1421,
+ 1142, 1421, 1144, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1146, 1421, 1421, 1148, 1421,
+ 1421, 1150, 1421, 1421, 1152, 1154, 1421, 1421, 1156, 1421,
+ 1421, 1158, 1421, 1421, 1421, 1160, 1421, 1421, 1162, 1421,
+ 1421, 1421, 1164, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1166, 1421, 1421,
+ 1421, 1168, 1421, 1421, 1170, 1421, 1421, 1421, 1172, 1421,
+
+ 1421, 1174, 1421, 1421, 1176, 1178, 1421, 1180, 1182, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1184, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1186, 1421, 1421,
+ 1188, 1421, 1421, 1190, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1192, 1421, 1421, 1194, 1196, 1421,
+ 1198, 1421, 1421, 1200, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1202, 1421, 1421,
+ 1204, 1421, 1421, 1206, 1421, 1208, 1210, 1421, 1421, 1212,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1214, 1421, 1421, 1216, 1421, 1421, 1218, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1220, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1222, 1421, 1224, 1226,
+ 1421, 1228, 1230, 1421, 1421, 1232, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1234, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1236, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1238, 1421,
+ 1421, 1240, 1242, 1421, 1244, 1246, 1421, 1248, 1250, 1421,
+ 1421, 1421, 1421, 1421, 1252, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1254, 1421, 1256, 1421, 1421, 1258, 1421,
+
+ 1421, 1421, 1421, 1421, 1260, 1421, 1421, 1262, 1264, 1421,
+ 1266, 1421, 1421, 1268, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1270, 1421, 1272, 1274, 1421, 1276, 1278,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1280, 1421, 1421, 1282, 1421, 1421, 1284, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1286, 1421, 1421,
+ 1288, 1421, 1421, 1290, 1421, 1421, 1292, 1421, 1421, 1294,
+ 1421, 1296, 1298, 1421, 1421, 1300, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1302, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1304, 1421, 1421,
+ 1306, 1421, 1421, 1308, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1310, 1421, 1312, 1314, 1421, 1316, 1318, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1320, 1421, 1322, 1421, 1421, 1324, 1421,
+ 1421, 1421, 1421, 1421, 1326, 1421, 1421, 1328, 1330, 1421,
+ 1332, 1421, 1421, 1334, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1336, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1338, 1421, 1421, 1340, 1342,
+
+ 1421, 1344, 1421, 1421, 1346, 1421, 1421, 1421, 1421, 1421,
+ 1348, 1421, 1421, 1350, 1421, 1421, 1352, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1354, 1421, 1421,
+ 1356, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1358,
+ 1421, 1360, 1362, 1421, 1364, 1366, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1368, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1370, 1421, 1421,
+ 1372, 1421, 1421, 1374, 1421, 1421, 1376, 1421, 1421, 1378,
+ 1421, 1421, 1380, 1421, 1421, 1382, 1421, 1384, 1386, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1388, 1421, 1390, 1392, 1421, 1394, 1396,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1398, 1421,
+ 1400, 1421, 1421, 1402, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1404, 1421, 1421, 1406, 1408,
+ 1421, 1410, 1421, 1421, 1412, 1421, 1421, 1421, 1421, 1421,
+ 1414, 1421, 1421, 1416, 1421, 1421, 1418, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1420, 120, 1421, 1421,
+ 938, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 936, 1421, 1421, 934, 932, 1421, 930, 1421, 1421,
+ 928, 1421, 1421, 1421, 1421, 1421, 926, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 924, 1421, 1421,
+ 922, 1421, 1421, 920, 1421, 1421, 918, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 916, 1421, 914, 912, 1421,
+ 910, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 908, 1421, 906, 904, 1421, 902, 900,
+ 1421, 1421, 898, 1421, 1421, 896, 1421, 1421, 894, 1421,
+ 1421, 1421, 1421, 892, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 890, 1421, 1421, 888, 886,
+ 1421, 884, 882, 1421, 880, 878, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 876, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 874, 1421, 1421,
+ 872, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 870, 1421, 1421, 868, 866, 1421, 864, 1421, 1421,
+ 862, 1421, 1421, 1421, 1421, 1421, 860, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 858, 1421, 1421,
+ 856, 1421, 854, 852, 1421, 1421, 850, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 848, 1421, 1421,
+ 846, 1421, 1421, 844, 1421, 1421, 842, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 840, 1421, 838, 836, 1421, 834, 832,
+ 1421, 1421, 830, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 828, 1421, 1421, 826, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 824, 1421, 1421, 822, 820,
+ 1421, 818, 816, 1421, 814, 812, 1421, 1421, 810, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 808, 1421,
+ 1421, 806, 1421, 804, 802, 800, 1421, 798, 796, 1421,
+ 794, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 792, 790, 1421, 788, 786, 1421, 784,
+ 782, 1421, 1421, 780, 1421, 1421, 778, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 776, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 774, 1421, 1421, 772,
+ 770, 1421, 768, 766, 1421, 764, 762, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 760, 1421, 1421, 758, 1421,
+ 1421, 756, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 754, 1421, 1421, 752, 750, 1421, 748, 1421,
+ 1421, 746, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 744, 1421, 1421, 742, 1421,
+ 1421, 740, 1421, 738, 736, 1421, 1421, 734, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 732, 1421,
+
+ 1421, 730, 1421, 1421, 728, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 726, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 724, 1421, 722, 720, 1421, 718,
+ 716, 1421, 1421, 714, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 712, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 710, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 708, 1421, 1421, 706,
+ 704, 1421, 702, 700, 1421, 698, 696, 1421, 1421, 1421,
+ 1421, 1421, 694, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 692, 1421, 690, 1421, 1421, 688, 1421, 1421, 1421,
+ 1421, 1421, 686, 1421, 1421, 684, 682, 1421, 680, 1421,
+ 1421, 678, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 676, 1421, 674, 672, 1421, 670, 668, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 666, 1421,
+ 1421, 656, 1421, 1421, 656, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 664, 1421, 1421, 660, 1421,
+ 1421, 659, 1421, 1421, 658, 1421, 1421, 656, 1421, 655,
+ 654, 1421, 1421, 653, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 651, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 650, 1421, 1421, 649, 1421,
+ 1421, 648, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 642, 1421, 638, 636, 1421, 635, 633, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 632, 1421, 631, 1421, 1421, 629, 1421, 1421, 1421,
+ 1421, 1421, 628, 1421, 1421, 627, 625, 1421, 624, 1421,
+ 1421, 623, 1421, 1421, 1421, 1421, 1421, 1421, 621, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 620, 1421, 1421, 619, 618, 1421, 617,
+ 1421, 1421, 616, 1421, 1421, 1421, 1421, 1421, 614, 1421,
+ 1421, 613, 1421, 1421, 612, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 611, 1421, 1421, 610, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 609, 1421, 607,
+ 606, 1421, 605, 604, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 603, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 602, 1421, 1421, 601, 1421,
+ 1421, 600, 1421, 1421, 599, 1421, 1421, 598, 1421, 1421,
+ 597, 1421, 1421, 595, 1421, 594, 593, 1421, 1421, 1421,
+
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 592, 1421, 591, 590, 1421, 589, 588, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 587, 1421, 586, 1421,
+ 1421, 585, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 584, 1421, 1421, 583, 580, 1421, 578,
+ 1421, 1421, 577, 1421, 1421, 1421, 1421, 576, 575, 1421,
+ 1421, 574, 1421, 573, 572, 571, 1421, 1421, 1421, 570,
+ 1421, 569, 1421, 568, 567, 566, 565, 1421, 564, 563,
+
+ 562, 561, 560, 1421, 559, 554, 553, 549, 547, 546,
+ 545, 544, 543, 542, 1421, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 103, 103,
+ 103, 103, 103, 103, 103, 103, 103, 103, 103, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 541,
+ 111, 117, 117, 117, 117, 540, 117, 117, 117, 117,
+ 117, 117, 125, 125, 125, 125, 125, 125, 125, 125,
+
+ 125, 125, 125, 164, 539, 538, 164, 211, 211, 211,
+ 537, 211, 211, 536, 211, 211, 217, 217, 217, 217,
+ 217, 217, 217, 217, 217, 217, 217, 222, 535, 534,
+ 222, 225, 225, 225, 225, 225, 533, 225, 225, 225,
+ 225, 225, 235, 532, 531, 530, 529, 235, 235, 528,
+ 235, 237, 527, 526, 237, 238, 525, 524, 238, 239,
+ 239, 239, 239, 239, 239, 523, 239, 239, 239, 239,
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
+ 242, 246, 246, 246, 246, 246, 246, 246, 246, 246,
+ 246, 246, 252, 520, 519, 252, 330, 330, 330, 330,
+
+ 330, 330, 330, 330, 330, 330, 330, 347, 518, 412,
+ 517, 516, 513, 465, 512, 510, 347, 399, 399, 399,
+ 399, 399, 399, 399, 399, 399, 399, 399, 418, 509,
+ 508, 507, 506, 418, 505, 504, 418, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 511, 511,
+ 511, 511, 511, 511, 511, 511, 511, 511, 511, 548,
+ 548, 548, 548, 548, 548, 548, 548, 548, 548, 548,
+ 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
+ 579, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 608, 608, 608, 608, 608, 608, 608, 608,
+
+ 608, 608, 608, 615, 615, 615, 615, 615, 615, 615,
+ 615, 615, 615, 615, 622, 622, 622, 622, 622, 622,
+ 622, 622, 622, 622, 622, 626, 626, 626, 626, 626,
+ 626, 626, 626, 626, 626, 626, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 634, 634, 634,
+ 634, 634, 634, 634, 634, 634, 634, 634, 637, 637,
+ 637, 637, 637, 637, 637, 637, 637, 637, 637, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 647, 647, 647, 647, 647, 647, 647, 647, 647, 647,
+ 647, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+
+ 652, 652, 657, 657, 657, 657, 657, 657, 657, 657,
+ 657, 657, 657, 663, 663, 663, 663, 663, 663, 663,
+ 663, 663, 663, 663, 665, 665, 665, 665, 665, 665,
+ 665, 665, 665, 665, 665, 667, 667, 667, 667, 667,
+ 667, 667, 667, 667, 667, 667, 669, 669, 669, 669,
+ 669, 669, 669, 669, 669, 669, 669, 671, 671, 671,
+ 671, 671, 671, 671, 671, 671, 671, 671, 673, 673,
+ 673, 673, 673, 673, 673, 673, 673, 673, 673, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 677, 677, 677, 677, 677, 677, 677, 677, 677, 677,
+
+ 677, 679, 679, 679, 679, 679, 679, 679, 679, 679,
+ 679, 679, 681, 681, 681, 681, 681, 681, 681, 681,
+ 681, 681, 681, 683, 683, 683, 683, 683, 683, 683,
+ 683, 683, 683, 683, 685, 685, 685, 685, 685, 685,
+ 685, 685, 685, 685, 685, 687, 687, 687, 687, 687,
+ 687, 687, 687, 687, 687, 687, 689, 689, 689, 689,
+ 689, 689, 689, 689, 689, 689, 689, 691, 691, 691,
+ 691, 691, 691, 691, 691, 691, 691, 691, 693, 693,
+ 693, 693, 693, 693, 693, 693, 693, 693, 693, 695,
+ 695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
+
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 701, 701, 701, 701, 701, 701, 701, 701,
+ 701, 701, 701, 703, 703, 703, 703, 703, 703, 703,
+ 703, 703, 703, 703, 705, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 707, 707, 707, 707, 707,
+ 707, 707, 707, 707, 707, 707, 709, 709, 709, 709,
+ 709, 709, 709, 709, 709, 709, 709, 711, 711, 711,
+ 711, 711, 711, 711, 711, 711, 711, 711, 713, 713,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 715,
+
+ 715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
+ 717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
+ 717, 719, 719, 719, 719, 719, 719, 719, 719, 719,
+ 719, 719, 721, 721, 721, 721, 721, 721, 721, 721,
+ 721, 721, 721, 723, 723, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 725, 725, 725, 725, 725, 725,
+ 725, 725, 725, 725, 725, 727, 727, 727, 727, 727,
+ 727, 727, 727, 727, 727, 727, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 731, 731, 731,
+ 731, 731, 731, 731, 731, 731, 731, 731, 733, 733,
+
+ 733, 733, 733, 733, 733, 733, 733, 733, 733, 735,
+ 735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
+ 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 739, 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 741, 741, 741, 741, 741, 741, 741, 741,
+ 741, 741, 741, 743, 743, 743, 743, 743, 743, 743,
+ 743, 743, 743, 743, 745, 745, 745, 745, 745, 745,
+ 745, 745, 745, 745, 745, 747, 747, 747, 747, 747,
+ 747, 747, 747, 747, 747, 747, 749, 749, 749, 749,
+ 749, 749, 749, 749, 749, 749, 749, 751, 751, 751,
+
+ 751, 751, 751, 751, 751, 751, 751, 751, 753, 753,
+ 753, 753, 753, 753, 753, 753, 753, 753, 753, 755,
+ 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
+ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 759, 759, 759, 759, 759, 759, 759, 759, 759,
+ 759, 759, 761, 761, 761, 761, 761, 761, 761, 761,
+ 761, 761, 761, 763, 763, 763, 763, 763, 763, 763,
+ 763, 763, 763, 763, 765, 765, 765, 765, 765, 765,
+ 765, 765, 765, 765, 765, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 769, 769, 769, 769,
+
+ 769, 769, 769, 769, 769, 769, 769, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 773, 773,
+ 773, 773, 773, 773, 773, 773, 773, 773, 773, 775,
+ 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
+ 777, 777, 777, 777, 777, 777, 777, 777, 777, 777,
+ 777, 779, 779, 779, 779, 779, 779, 779, 779, 779,
+ 779, 779, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 785, 785, 785, 785, 785, 785,
+ 785, 785, 785, 785, 785, 787, 787, 787, 787, 787,
+
+ 787, 787, 787, 787, 787, 787, 789, 789, 789, 789,
+ 789, 789, 789, 789, 789, 789, 789, 791, 791, 791,
+ 791, 791, 791, 791, 791, 791, 791, 791, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 795,
+ 795, 795, 795, 795, 795, 795, 795, 795, 795, 795,
+ 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
+ 797, 799, 799, 799, 799, 799, 799, 799, 799, 799,
+ 799, 799, 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 801, 803, 803, 803, 803, 803, 803, 803,
+ 803, 803, 803, 803, 805, 805, 805, 805, 805, 805,
+
+ 805, 805, 805, 805, 805, 807, 807, 807, 807, 807,
+ 807, 807, 807, 807, 807, 807, 809, 809, 809, 809,
+ 809, 809, 809, 809, 809, 809, 809, 811, 811, 811,
+ 811, 811, 811, 811, 811, 811, 811, 811, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 815,
+ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
+ 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
+ 817, 819, 819, 819, 819, 819, 819, 819, 819, 819,
+ 819, 819, 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 823, 823, 823, 823, 823, 823, 823,
+
+ 823, 823, 823, 823, 825, 825, 825, 825, 825, 825,
+ 825, 825, 825, 825, 825, 827, 827, 827, 827, 827,
+ 827, 827, 827, 827, 827, 827, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 831, 831, 831,
+ 831, 831, 831, 831, 831, 831, 831, 831, 833, 833,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 835,
+ 835, 835, 835, 835, 835, 835, 835, 835, 835, 835,
+ 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
+ 837, 839, 839, 839, 839, 839, 839, 839, 839, 839,
+ 839, 839, 841, 841, 841, 841, 841, 841, 841, 841,
+
+ 841, 841, 841, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 845, 845, 845, 845, 845, 845,
+ 845, 845, 845, 845, 845, 847, 847, 847, 847, 847,
+ 847, 847, 847, 847, 847, 847, 849, 849, 849, 849,
+ 849, 849, 849, 849, 849, 849, 849, 851, 851, 851,
+ 851, 851, 851, 851, 851, 851, 851, 851, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
+ 857, 859, 859, 859, 859, 859, 859, 859, 859, 859,
+
+ 859, 859, 861, 861, 861, 861, 861, 861, 861, 861,
+ 861, 861, 861, 863, 863, 863, 863, 863, 863, 863,
+ 863, 863, 863, 863, 865, 865, 865, 865, 865, 865,
+ 865, 865, 865, 865, 865, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 867, 869, 869, 869, 869,
+ 869, 869, 869, 869, 869, 869, 869, 871, 871, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873, 873, 875,
+ 875, 875, 875, 875, 875, 875, 875, 875, 875, 875,
+ 877, 877, 877, 877, 877, 877, 877, 877, 877, 877,
+
+ 877, 879, 879, 879, 879, 879, 879, 879, 879, 879,
+ 879, 879, 881, 881, 881, 881, 881, 881, 881, 881,
+ 881, 881, 881, 883, 883, 883, 883, 883, 883, 883,
+ 883, 883, 883, 883, 885, 885, 885, 885, 885, 885,
+ 885, 885, 885, 885, 885, 887, 887, 887, 887, 887,
+ 887, 887, 887, 887, 887, 887, 889, 889, 889, 889,
+ 889, 889, 889, 889, 889, 889, 889, 891, 891, 891,
+ 891, 891, 891, 891, 891, 891, 891, 891, 893, 893,
+ 893, 893, 893, 893, 893, 893, 893, 893, 893, 895,
+ 895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
+
+ 897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
+ 897, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+ 899, 899, 901, 901, 901, 901, 901, 901, 901, 901,
+ 901, 901, 901, 903, 903, 903, 903, 903, 903, 903,
+ 903, 903, 903, 903, 905, 905, 905, 905, 905, 905,
+ 905, 905, 905, 905, 905, 907, 907, 907, 907, 907,
+ 907, 907, 907, 907, 907, 907, 909, 909, 909, 909,
+ 909, 909, 909, 909, 909, 909, 909, 911, 911, 911,
+ 911, 911, 911, 911, 911, 911, 911, 911, 913, 913,
+ 913, 913, 913, 913, 913, 913, 913, 913, 913, 915,
+
+ 915, 915, 915, 915, 915, 915, 915, 915, 915, 915,
+ 917, 917, 917, 917, 917, 917, 917, 917, 917, 917,
+ 917, 919, 919, 919, 919, 919, 919, 919, 919, 919,
+ 919, 919, 921, 921, 921, 921, 921, 921, 921, 921,
+ 921, 921, 921, 923, 923, 923, 923, 923, 923, 923,
+ 923, 923, 923, 923, 925, 925, 925, 925, 925, 925,
+ 925, 925, 925, 925, 925, 927, 927, 927, 927, 927,
+ 927, 927, 927, 927, 927, 927, 929, 929, 929, 929,
+ 929, 929, 929, 929, 929, 929, 929, 931, 931, 931,
+ 931, 931, 931, 931, 931, 931, 931, 931, 933, 933,
+
+ 933, 933, 933, 933, 933, 933, 933, 933, 933, 935,
+ 935, 935, 935, 935, 935, 935, 935, 935, 935, 935,
+ 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
+ 937, 939, 939, 939, 939, 939, 939, 939, 939, 939,
+ 939, 939, 941, 941, 941, 941, 941, 941, 941, 941,
+ 941, 941, 941, 943, 943, 943, 943, 943, 943, 943,
+ 943, 943, 943, 943, 945, 945, 945, 945, 945, 945,
+ 945, 945, 945, 945, 945, 947, 947, 947, 947, 947,
+ 947, 947, 947, 947, 947, 947, 949, 949, 949, 949,
+ 949, 949, 949, 949, 949, 949, 949, 951, 951, 951,
+
+ 951, 951, 951, 951, 951, 951, 951, 951, 953, 953,
+ 953, 953, 953, 953, 953, 953, 953, 953, 953, 955,
+ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
+ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 959, 959, 959, 959, 959, 959, 959, 959, 959,
+ 959, 959, 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 963, 963, 963, 963, 963, 963, 963,
+ 963, 963, 963, 963, 965, 965, 965, 965, 965, 965,
+ 965, 965, 965, 965, 965, 967, 967, 967, 967, 967,
+ 967, 967, 967, 967, 967, 967, 969, 969, 969, 969,
+
+ 969, 969, 969, 969, 969, 969, 969, 971, 971, 971,
+ 971, 971, 971, 971, 971, 971, 971, 971, 973, 973,
+ 973, 973, 973, 973, 973, 973, 973, 973, 973, 975,
+ 975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
+ 977, 977, 977, 977, 977, 977, 977, 977, 977, 977,
+ 977, 979, 979, 979, 979, 979, 979, 979, 979, 979,
+ 979, 979, 981, 981, 981, 981, 981, 981, 981, 981,
+ 981, 981, 981, 983, 983, 983, 983, 983, 983, 983,
+ 983, 983, 983, 983, 985, 985, 985, 985, 985, 985,
+ 985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
+
+ 987, 987, 987, 987, 987, 987, 989, 989, 989, 989,
+ 989, 989, 989, 989, 989, 989, 989, 991, 991, 991,
+ 991, 991, 991, 991, 991, 991, 991, 991, 993, 993,
+ 993, 993, 993, 993, 993, 993, 993, 993, 993, 995,
+ 995, 995, 995, 995, 995, 995, 995, 995, 995, 995,
+ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
+ 997, 999, 999, 999, 999, 999, 999, 999, 999, 999,
+ 999, 999, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
+ 1003, 1003, 1003, 1003, 1005, 1005, 1005, 1005, 1005, 1005,
+
+ 1005, 1005, 1005, 1005, 1005, 1007, 1007, 1007, 1007, 1007,
+ 1007, 1007, 1007, 1007, 1007, 1007, 1009, 1009, 1009, 1009,
+ 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1013, 1013,
+ 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,
+ 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
+ 1019, 1019, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
+ 1021, 1021, 1021, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+
+ 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1029, 1029, 1029, 1029,
+ 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1031, 1031, 1031,
+ 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1035,
+ 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
+ 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+ 1037, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
+
+ 1041, 1041, 1041, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1047, 1047, 1047, 1047, 1047,
+ 1047, 1047, 1047, 1047, 1047, 1047, 1049, 1049, 1049, 1049,
+ 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1051, 1051, 1051,
+ 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,
+ 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
+ 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057,
+ 1057, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
+
+ 1059, 1059, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
+ 1063, 1063, 1063, 1063, 1065, 1065, 1065, 1065, 1065, 1065,
+ 1065, 1065, 1065, 1065, 1065, 1067, 1067, 1067, 1067, 1067,
+ 1067, 1067, 1067, 1067, 1067, 1067, 1069, 1069, 1069, 1069,
+ 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1071, 1071, 1071,
+ 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1073, 1073,
+ 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1075,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
+
+ 1077, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
+ 1079, 1079, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
+ 1081, 1081, 1081, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1091, 1091, 1091,
+ 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1095,
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+
+ 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
+ 1097, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1101, 1101, 1101, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1111, 1111, 1111,
+ 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1115,
+
+ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
+ 1117, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
+ 1119, 1119, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
+ 1121, 1121, 1121, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+ 1123, 1123, 1123, 1123, 1125, 1125, 1125, 1125, 1125, 1125,
+ 1125, 1125, 1125, 1125, 1125, 1127, 1127, 1127, 1127, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1131, 1131, 1131,
+ 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1133, 1133,
+
+ 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
+ 1137, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+ 1139, 1139, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+ 1141, 1141, 1141, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 1145, 1145, 1145, 1145, 1145, 1145,
+ 1145, 1145, 1145, 1145, 1145, 1147, 1147, 1147, 1147, 1147,
+ 1147, 1147, 1147, 1147, 1147, 1147, 1149, 1149, 1149, 1149,
+ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1151, 1151, 1151,
+
+ 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1155,
+ 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
+ 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
+ 1161, 1161, 1161, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+ 1163, 1163, 1163, 1163, 1165, 1165, 1165, 1165, 1165, 1165,
+ 1165, 1165, 1165, 1165, 1165, 1167, 1167, 1167, 1167, 1167,
+ 1167, 1167, 1167, 1167, 1167, 1167, 1169, 1169, 1169, 1169,
+
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1171, 1171, 1171,
+ 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1173, 1173,
+ 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1175,
+ 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+ 1179, 1179, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
+ 1183, 1183, 1183, 1183, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1187, 1187, 1187, 1187, 1187,
+
+ 1187, 1187, 1187, 1187, 1187, 1187, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+ 1197, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
+ 1199, 1199, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
+ 1201, 1201, 1201, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
+ 1203, 1203, 1203, 1203, 1205, 1205, 1205, 1205, 1205, 1205,
+
+ 1205, 1205, 1205, 1205, 1205, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1209, 1209, 1209, 1209,
+ 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1215,
+ 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+ 1219, 1219, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
+ 1221, 1221, 1221, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1225, 1225, 1225, 1225, 1225, 1225,
+ 1225, 1225, 1225, 1225, 1225, 1227, 1227, 1227, 1227, 1227,
+ 1227, 1227, 1227, 1227, 1227, 1227, 1229, 1229, 1229, 1229,
+ 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1231, 1231, 1231,
+ 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1233, 1233,
+ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1235,
+ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
+ 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
+ 1237, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
+ 1239, 1239, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
+
+ 1241, 1241, 1241, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+ 1243, 1243, 1243, 1243, 1245, 1245, 1245, 1245, 1245, 1245,
+ 1245, 1245, 1245, 1245, 1245, 1247, 1247, 1247, 1247, 1247,
+ 1247, 1247, 1247, 1247, 1247, 1247, 1249, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1251, 1251, 1251,
+ 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1253, 1253,
+ 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
+ 1257, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+
+ 1259, 1259, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261,
+ 1261, 1261, 1261, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
+ 1263, 1263, 1263, 1263, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1267, 1267, 1267, 1267, 1267,
+ 1267, 1267, 1267, 1267, 1267, 1267, 1269, 1269, 1269, 1269,
+ 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1271, 1271, 1271,
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1273, 1273,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1275,
+ 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277,
+
+ 1277, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
+ 1279, 1279, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+ 1281, 1281, 1281, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
+ 1283, 1283, 1283, 1283, 1285, 1285, 1285, 1285, 1285, 1285,
+ 1285, 1285, 1285, 1285, 1285, 1287, 1287, 1287, 1287, 1287,
+ 1287, 1287, 1287, 1287, 1287, 1287, 1289, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1293, 1293,
+ 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1295,
+ 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
+
+ 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
+ 1297, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
+ 1299, 1299, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1301, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1305, 1305, 1305, 1305, 1305, 1305,
+ 1305, 1305, 1305, 1305, 1305, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1309, 1309, 1309, 1309,
+ 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1311, 1311, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1313, 1313,
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1315,
+
+ 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
+ 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317,
+ 1317, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319,
+ 1319, 1319, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1323, 1323, 1323, 1323, 1323, 1323, 1323,
+ 1323, 1323, 1323, 1323, 1325, 1325, 1325, 1325, 1325, 1325,
+ 1325, 1325, 1325, 1325, 1325, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1329, 1329, 1329, 1329,
+ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1333, 1333,
+
+ 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1335,
+ 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335,
+ 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
+ 1337, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341,
+ 1341, 1341, 1341, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1345, 1345, 1345, 1345, 1345, 1345,
+ 1345, 1345, 1345, 1345, 1345, 1347, 1347, 1347, 1347, 1347,
+ 1347, 1347, 1347, 1347, 1347, 1347, 1349, 1349, 1349, 1349,
+ 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1351, 1351, 1351,
+
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1353, 1353,
+ 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
+ 1357, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
+ 1363, 1363, 1363, 1363, 1365, 1365, 1365, 1365, 1365, 1365,
+ 1365, 1365, 1365, 1365, 1365, 1367, 1367, 1367, 1367, 1367,
+ 1367, 1367, 1367, 1367, 1367, 1367, 1369, 1369, 1369, 1369,
+
+ 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1375,
+ 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
+ 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377,
+ 1377, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
+ 1379, 1379, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1383, 1383, 1383, 1385, 1385, 1385, 1385, 1385, 1385,
+ 1385, 1385, 1385, 1385, 1385, 1387, 1387, 1387, 1387, 1387,
+
+ 1387, 1387, 1387, 1387, 1387, 1387, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1391, 1391, 1391,
+ 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1395,
+ 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
+ 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397,
+ 1397, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
+ 1399, 1399, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401,
+ 1401, 1401, 1401, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
+ 1403, 1403, 1403, 1403, 1405, 1405, 1405, 1405, 1405, 1405,
+
+ 1405, 1405, 1405, 1405, 1405, 1407, 1407, 1407, 1407, 1407,
+ 1407, 1407, 1407, 1407, 1407, 1407, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1411, 1411, 1411,
+ 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1413, 1413,
+ 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1415,
+ 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415,
+ 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417,
+ 1417, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419,
+ 1419, 1419, 503, 502, 501, 500, 499, 498, 497, 496,
+ 495, 494, 493, 492, 491, 490, 489, 488, 487, 486,
+
+ 485, 484, 483, 482, 481, 416, 480, 479, 478, 475,
+ 474, 412, 473, 469, 468, 467, 464, 462, 461, 460,
+ 459, 458, 457, 456, 455, 454, 453, 452, 451, 450,
+ 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
+ 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
+ 429, 428, 427, 426, 425, 424, 423, 422, 421, 420,
+ 419, 346, 415, 414, 413, 412, 411, 407, 406, 405,
+ 404, 403, 402, 401, 400, 396, 395, 394, 393, 392,
+ 391, 390, 389, 388, 385, 384, 383, 382, 381, 380,
+ 379, 378, 377, 376, 375, 374, 373, 367, 366, 365,
+
+ 364, 363, 360, 359, 358, 357, 356, 271, 355, 354,
+ 353, 352, 351, 348, 275, 346, 345, 343, 342, 341,
+ 340, 339, 338, 337, 336, 335, 334, 253, 333, 332,
+ 331, 233, 229, 1421, 226, 223, 326, 325, 324, 323,
+ 322, 321, 320, 319, 318, 315, 312, 311, 310, 306,
+ 305, 304, 303, 302, 299, 298, 297, 296, 295, 294,
+ 291, 286, 285, 284, 283, 282, 274, 273, 270, 265,
+ 264, 263, 262, 261, 260, 259, 258, 255, 1421, 251,
+ 250, 248, 110, 247, 245, 245, 244, 241, 240, 229,
+ 226, 224, 223, 214, 208, 207, 206, 199, 196, 195,
+
+ 194, 189, 165, 163, 162, 153, 138, 116, 110, 1421,
+ 102, 102, 101, 101, 25, 25, 23, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421
} ;
-static yyconst short int yy_chk[7662] =
+static yyconst short int yy_chk[7680] =
{ 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
@@ -1837,9 +1844,9 @@ static yyconst short int yy_chk[7662] =
27, 27, 27, 11, 21, 21, 29, 32, 32, 67,
21, 22, 22, 7, 8, 34, 33, 22, 25, 67,
9, 10, 11, 9, 10, 11, 12, 38, 21, 21,
- 29, 12, 33, 934, 34, 22, 22, 39, 38, 40,
+ 29, 12, 33, 937, 34, 22, 22, 39, 38, 40,
40, 40, 25, 46, 46, 40, 39, 39, 47, 47,
- 12, 936, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 939, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
@@ -1856,813 +1863,814 @@ static yyconst short int yy_chk[7662] =
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 35, 41, 938, 52, 45, 42,
+ 15, 15, 15, 15, 35, 41, 941, 52, 45, 42,
41, 42, 42, 42, 45, 45, 45, 41, 43, 52,
- 43, 43, 43, 52, 52, 64, 73, 88, 64, 42,
- 55, 54, 66, 940, 55, 66, 35, 35, 43, 35,
- 55, 35, 54, 125, 35, 54, 88, 68, 42, 56,
- 35, 57, 68, 35, 35, 172, 35, 57, 56, 56,
- 56, 73, 125, 57, 60, 80, 80, 80, 56, 172,
+ 43, 43, 43, 52, 52, 64, 53, 73, 64, 42,
+ 55, 53, 54, 943, 55, 945, 35, 35, 43, 35,
+ 55, 35, 68, 54, 35, 53, 54, 68, 42, 56,
+ 35, 57, 66, 35, 35, 66, 35, 57, 56, 56,
+ 56, 119, 73, 57, 177, 60, 119, 177, 56, 313,
- 56, 60, 60, 115, 115, 115, 942, 60, 77, 77,
+ 56, 53, 60, 60, 80, 80, 80, 313, 60, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 79, 79, 79, 82, 92, 93, 90, 90, 944, 92,
- 93, 94, 94, 95, 95, 103, 103, 82, 82, 90,
- 117, 103, 110, 119, 113, 122, 122, 194, 119, 155,
-
- 155, 92, 93, 194, 95, 162, 162, 79, 110, 103,
- 103, 110, 174, 90, 117, 174, 90, 113, 94, 171,
- 171, 94, 196, 189, 82, 196, 946, 82, 144, 144,
- 144, 149, 149, 149, 150, 110, 150, 150, 150, 189,
- 189, 152, 152, 152, 948, 151, 144, 151, 950, 149,
- 151, 151, 151, 274, 150, 152, 152, 152, 152, 152,
- 152, 165, 182, 952, 165, 274, 165, 212, 212, 212,
- 165, 165, 401, 182, 213, 213, 213, 216, 216, 228,
- 217, 217, 217, 401, 228, 954, 232, 232, 213, 213,
- 213, 213, 213, 213, 217, 217, 217, 217, 217, 217,
-
- 229, 233, 233, 244, 405, 229, 228, 232, 239, 239,
- 261, 261, 261, 956, 239, 405, 262, 262, 262, 244,
- 286, 286, 244, 263, 263, 263, 958, 229, 264, 264,
- 264, 308, 239, 239, 262, 265, 265, 265, 960, 308,
- 293, 962, 293, 323, 323, 293, 244, 341, 341, 265,
- 265, 265, 265, 265, 265, 293, 322, 322, 322, 293,
- 411, 411, 324, 324, 324, 964, 326, 338, 338, 338,
- 322, 322, 322, 322, 322, 322, 324, 324, 324, 324,
- 324, 324, 326, 333, 394, 326, 395, 395, 395, 457,
- 398, 461, 966, 462, 333, 468, 471, 504, 968, 970,
-
- 394, 398, 461, 394, 462, 457, 468, 471, 457, 326,
- 505, 505, 505, 504, 506, 972, 504, 510, 511, 333,
- 512, 974, 540, 976, 978, 506, 398, 394, 510, 511,
- 569, 512, 457, 541, 541, 541, 542, 543, 540, 544,
- 504, 540, 546, 548, 548, 548, 569, 542, 543, 569,
- 544, 586, 980, 546, 571, 571, 571, 982, 598, 605,
- 625, 625, 625, 984, 612, 540, 616, 586, 548, 986,
- 586, 620, 624, 569, 598, 605, 541, 598, 605, 571,
- 612, 627, 616, 612, 625, 616, 988, 620, 624, 990,
- 620, 624, 631, 992, 586, 994, 996, 627, 998, 1000,
-
- 627, 598, 605, 628, 628, 628, 1002, 612, 631, 616,
- 1004, 631, 1006, 1008, 620, 624, 629, 629, 629, 1010,
- 629, 1012, 637, 642, 627, 629, 1014, 628, 632, 632,
- 632, 647, 632, 1016, 1018, 631, 1020, 632, 637, 642,
- 653, 637, 642, 645, 645, 645, 1022, 647, 655, 1024,
- 647, 650, 650, 650, 657, 1026, 653, 1028, 1030, 653,
- 1032, 659, 661, 629, 655, 637, 642, 655, 645, 663,
- 657, 665, 1034, 657, 647, 632, 650, 659, 661, 667,
- 659, 661, 1036, 653, 669, 663, 1038, 665, 663, 1040,
- 665, 655, 671, 1042, 673, 667, 1044, 657, 667, 675,
-
- 669, 677, 1046, 669, 659, 661, 1048, 679, 671, 681,
- 673, 671, 663, 673, 665, 675, 1050, 677, 675, 1052,
- 677, 1054, 667, 679, 683, 681, 679, 669, 681, 685,
- 687, 1056, 1058, 1060, 1062, 671, 1064, 673, 689, 691,
- 683, 1066, 675, 683, 677, 685, 687, 693, 685, 687,
- 679, 1068, 681, 1070, 689, 691, 1072, 689, 691, 695,
- 697, 699, 1074, 693, 1076, 1078, 693, 683, 701, 703,
- 705, 1080, 685, 687, 1082, 695, 697, 699, 695, 697,
- 699, 689, 691, 1084, 701, 703, 705, 701, 703, 705,
- 693, 707, 1086, 1088, 1090, 1092, 1094, 1096, 709, 711,
-
- 713, 1098, 695, 697, 699, 715, 717, 707, 1100, 1102,
- 707, 701, 703, 705, 709, 711, 713, 709, 711, 713,
- 719, 715, 717, 1104, 715, 717, 1106, 1108, 721, 1110,
- 1112, 1114, 1116, 1118, 707, 723, 719, 725, 1120, 719,
- 1122, 709, 711, 713, 721, 727, 729, 721, 715, 717,
- 731, 723, 1124, 725, 723, 1126, 725, 733, 735, 1128,
- 1130, 727, 729, 719, 727, 729, 731, 737, 739, 731,
- 1132, 721, 1134, 733, 735, 741, 733, 735, 723, 743,
- 725, 1136, 1138, 737, 739, 1140, 737, 739, 727, 729,
- 745, 741, 1142, 731, 741, 743, 747, 749, 743, 1144,
-
- 733, 735, 1146, 1148, 751, 753, 745, 1150, 1152, 745,
- 737, 739, 747, 749, 1154, 747, 749, 1156, 741, 755,
- 751, 753, 743, 751, 753, 757, 759, 761, 1158, 1160,
- 1162, 1164, 1166, 745, 763, 755, 765, 1168, 755, 747,
- 749, 757, 759, 761, 757, 759, 761, 751, 753, 1170,
- 763, 1172, 765, 763, 1174, 765, 767, 769, 1176, 1178,
- 1180, 1182, 755, 1184, 771, 773, 775, 1186, 757, 759,
- 761, 777, 767, 769, 1188, 767, 769, 763, 779, 765,
- 771, 773, 775, 771, 773, 775, 781, 777, 1190, 1192,
- 777, 1194, 1196, 1198, 779, 1200, 783, 779, 1202, 767,
-
- 769, 785, 781, 787, 1204, 781, 1206, 771, 773, 775,
- 1208, 789, 783, 1210, 777, 783, 791, 785, 793, 787,
- 785, 779, 787, 1212, 795, 1214, 797, 789, 1216, 781,
- 789, 799, 791, 801, 793, 791, 1218, 793, 1220, 783,
- 795, 803, 797, 795, 785, 797, 787, 799, 1222, 801,
- 799, 1224, 801, 1226, 789, 1228, 805, 803, 1230, 791,
- 803, 793, 807, 809, 811, 1232, 1234, 795, 1236, 797,
- 813, 815, 805, 1238, 799, 805, 801, 817, 807, 809,
- 811, 807, 809, 811, 803, 819, 813, 815, 1240, 813,
- 815, 1242, 821, 817, 1244, 1246, 817, 1248, 1250, 805,
-
- 823, 819, 825, 1252, 819, 807, 809, 811, 821, 1254,
- 827, 821, 1256, 813, 815, 829, 823, 831, 825, 823,
- 817, 825, 833, 835, 1258, 1260, 827, 1262, 819, 827,
- 837, 829, 839, 831, 829, 821, 831, 1264, 833, 835,
- 841, 833, 835, 823, 1266, 825, 837, 1268, 839, 837,
- 1270, 839, 843, 827, 1272, 1274, 841, 1276, 829, 841,
- 831, 845, 847, 849, 1278, 833, 835, 1280, 843, 851,
- 853, 843, 1282, 837, 855, 839, 1284, 845, 847, 849,
- 845, 847, 849, 841, 857, 851, 853, 1286, 851, 853,
- 855, 859, 861, 855, 1288, 843, 1290, 1292, 1294, 863,
-
- 857, 1296, 1298, 857, 845, 847, 849, 859, 861, 865,
- 859, 861, 851, 853, 867, 863, 1300, 855, 863, 1302,
- 869, 871, 873, 1304, 1306, 865, 1308, 857, 865, 875,
- 867, 877, 1310, 867, 859, 861, 869, 871, 873, 869,
- 871, 873, 863, 879, 1312, 875, 1314, 877, 875, 1316,
- 877, 881, 865, 1318, 1320, 1322, 1324, 867, 1326, 879,
- 883, 885, 879, 869, 871, 873, 887, 881, 889, 1328,
- 881, 1330, 875, 891, 877, 1332, 883, 885, 1334, 883,
- 885, 893, 887, 895, 889, 887, 879, 889, 1336, 891,
- 1338, 897, 891, 1340, 881, 1342, 899, 893, 901, 895,
-
- 893, 1344, 895, 883, 885, 1346, 903, 897, 1348, 887,
- 897, 889, 899, 905, 901, 899, 891, 901, 1350, 907,
- 1352, 909, 903, 1354, 893, 903, 895, 911, 913, 905,
- 1356, 1358, 905, 1360, 897, 907, 915, 909, 907, 899,
- 909, 901, 917, 911, 913, 1362, 911, 913, 1364, 903,
- 919, 1366, 915, 1368, 1370, 915, 905, 921, 917, 923,
- 1372, 917, 907, 1374, 909, 925, 919, 927, 1376, 919,
- 911, 913, 929, 921, 1378, 923, 921, 1380, 923, 915,
- 931, 925, 933, 927, 925, 917, 927, 935, 929, 1382,
- 1384, 929, 1386, 919, 1388, 937, 931, 939, 933, 931,
-
- 921, 933, 923, 935, 1390, 941, 935, 1392, 925, 1394,
- 927, 937, 943, 939, 937, 929, 939, 945, 947, 1396,
- 1398, 941, 1400, 931, 941, 933, 949, 951, 943, 1402,
- 935, 943, 1404, 945, 947, 953, 945, 947, 937, 1406,
- 939, 1418, 949, 951, 932, 949, 951, 955, 941, 957,
- 930, 953, 928, 926, 953, 943, 959, 961, 963, 924,
- 945, 947, 922, 955, 965, 957, 955, 920, 957, 949,
- 951, 918, 959, 961, 963, 959, 961, 963, 953, 967,
- 965, 916, 914, 965, 912, 910, 969, 971, 908, 906,
- 955, 904, 957, 973, 975, 967, 902, 900, 967, 959,
-
- 961, 963, 969, 971, 977, 969, 971, 965, 979, 973,
- 975, 898, 973, 975, 896, 981, 983, 894, 892, 890,
- 977, 888, 967, 977, 979, 985, 987, 979, 886, 969,
- 971, 981, 983, 989, 981, 983, 973, 975, 991, 884,
- 882, 985, 987, 880, 985, 987, 993, 977, 995, 989,
- 878, 979, 989, 876, 991, 997, 999, 991, 981, 983,
- 874, 1001, 993, 1003, 995, 993, 872, 995, 985, 987,
- 870, 997, 999, 868, 997, 999, 989, 1001, 1005, 1003,
- 1001, 991, 1003, 866, 1007, 864, 1009, 862, 860, 993,
- 858, 995, 1011, 1013, 1005, 856, 854, 1005, 997, 999,
-
- 1007, 1015, 1009, 1007, 1001, 1009, 1003, 1017, 1011, 1013,
- 852, 1011, 1013, 850, 1019, 1021, 848, 1015, 846, 844,
- 1015, 1005, 1023, 1017, 1025, 842, 1017, 1007, 840, 1009,
- 1019, 1021, 1027, 1019, 1021, 1011, 1013, 1029, 1023, 838,
- 1025, 1023, 836, 1025, 1015, 1031, 834, 1033, 1027, 832,
- 1017, 1027, 1035, 1029, 1037, 830, 1029, 1019, 1021, 828,
- 1039, 1031, 1041, 1033, 1031, 1023, 1033, 1025, 1035, 826,
- 1037, 1035, 824, 1037, 822, 1027, 1039, 1043, 1041, 1039,
- 1029, 1041, 1045, 1047, 820, 818, 816, 814, 1031, 812,
- 1033, 1049, 1051, 1043, 810, 1035, 1043, 1037, 1045, 1047,
-
- 1053, 1045, 1047, 1039, 808, 1041, 806, 1049, 1051, 804,
- 1049, 1051, 1055, 1057, 1059, 802, 1053, 800, 798, 1053,
- 1043, 1061, 1063, 1065, 796, 1045, 1047, 794, 1055, 1057,
- 1059, 1055, 1057, 1059, 1049, 1051, 792, 1061, 1063, 1065,
- 1061, 1063, 1065, 1053, 1067, 790, 788, 786, 784, 782,
- 780, 1069, 1071, 1073, 778, 1055, 1057, 1059, 1075, 1077,
- 1067, 776, 774, 1067, 1061, 1063, 1065, 1069, 1071, 1073,
- 1069, 1071, 1073, 1079, 1075, 1077, 772, 1075, 1077, 770,
- 768, 1081, 766, 764, 762, 760, 758, 1067, 1083, 1079,
- 1085, 756, 1079, 754, 1069, 1071, 1073, 1081, 1087, 1089,
-
- 1081, 1075, 1077, 1091, 1083, 752, 1085, 1083, 750, 1085,
- 1093, 1095, 748, 746, 1087, 1089, 1079, 1087, 1089, 1091,
- 1097, 1099, 1091, 744, 1081, 742, 1093, 1095, 1101, 1093,
- 1095, 1083, 1103, 1085, 740, 738, 1097, 1099, 736, 1097,
- 1099, 1087, 1089, 1105, 1101, 734, 1091, 1101, 1103, 1107,
- 1109, 1103, 732, 1093, 1095, 730, 728, 1111, 1113, 1105,
- 726, 724, 1105, 1097, 1099, 1107, 1109, 722, 1107, 1109,
- 720, 1101, 1115, 1111, 1113, 1103, 1111, 1113, 1117, 1119,
- 1121, 718, 716, 714, 712, 710, 1105, 1123, 1115, 1125,
- 708, 1115, 1107, 1109, 1117, 1119, 1121, 1117, 1119, 1121,
-
- 1111, 1113, 706, 1123, 704, 1125, 1123, 702, 1125, 1127,
- 1129, 700, 698, 696, 694, 1115, 692, 1131, 1133, 1135,
- 690, 1117, 1119, 1121, 1137, 1127, 1129, 688, 1127, 1129,
- 1123, 1139, 1125, 1131, 1133, 1135, 1131, 1133, 1135, 1141,
- 1137, 686, 684, 1137, 682, 680, 678, 1139, 676, 1143,
- 1139, 674, 1127, 1129, 1145, 1141, 1147, 672, 1141, 670,
- 1131, 1133, 1135, 668, 1149, 1143, 666, 1137, 1143, 1151,
- 1145, 1153, 1147, 1145, 1139, 1147, 664, 1155, 662, 1157,
- 1149, 660, 1141, 1149, 1159, 1151, 1161, 1153, 1151, 658,
- 1153, 656, 1143, 1155, 1163, 1157, 1155, 1145, 1157, 1147,
-
- 1159, 654, 1161, 1159, 652, 1161, 649, 1149, 648, 1165,
- 1163, 646, 1151, 1163, 1153, 1167, 1169, 1171, 644, 643,
- 1155, 641, 1157, 1173, 1175, 1165, 640, 1159, 1165, 1161,
- 1177, 1167, 1169, 1171, 1167, 1169, 1171, 1163, 1179, 1173,
- 1175, 639, 1173, 1175, 638, 1181, 1177, 636, 635, 1177,
- 634, 633, 1165, 1183, 1179, 1185, 630, 1179, 1167, 1169,
- 1171, 1181, 626, 1187, 1181, 623, 1173, 1175, 1189, 1183,
- 1191, 1185, 1183, 1177, 1185, 1193, 1195, 621, 619, 1187,
- 618, 1179, 1187, 1197, 1189, 1199, 1191, 1189, 1181, 1191,
- 617, 1193, 1195, 1201, 1193, 1195, 1183, 615, 1185, 1197,
-
- 614, 1199, 1197, 613, 1199, 1203, 1187, 611, 608, 1201,
- 606, 1189, 1201, 1191, 1205, 1207, 1209, 604, 1193, 1195,
- 603, 1203, 1211, 1213, 1203, 602, 1197, 1215, 1199, 601,
- 1205, 1207, 1209, 1205, 1207, 1209, 1201, 1217, 1211, 1213,
- 600, 1211, 1213, 1215, 1219, 1221, 1215, 599, 1203, 597,
- 596, 594, 1223, 1217, 589, 588, 1217, 1205, 1207, 1209,
- 1219, 1221, 1225, 1219, 1221, 1211, 1213, 1227, 1223, 587,
- 1215, 1223, 585, 1229, 1231, 1233, 584, 581, 1225, 580,
- 1217, 1225, 1235, 1227, 1237, 579, 1227, 1219, 1221, 1229,
- 1231, 1233, 1229, 1231, 1233, 1223, 1239, 577, 1235, 576,
-
- 1237, 1235, 575, 1237, 1241, 1225, 574, 573, 570, 568,
- 1227, 567, 1239, 1243, 1245, 1239, 1229, 1231, 1233, 1247,
- 1241, 1249, 566, 1241, 565, 1235, 1251, 1237, 564, 1243,
- 1245, 563, 1243, 1245, 1253, 1247, 1255, 1249, 1247, 1239,
- 1249, 562, 1251, 559, 1257, 1251, 558, 1241, 557, 1259,
- 1253, 1261, 1255, 1253, 554, 1255, 1243, 1245, 552, 1263,
- 1257, 551, 1247, 1257, 1249, 1259, 1265, 1261, 1259, 1251,
- 1261, 549, 1267, 539, 1269, 1263, 538, 1253, 1263, 1255,
- 1271, 1273, 1265, 537, 535, 1265, 534, 1257, 1267, 1275,
- 1269, 1267, 1259, 1269, 1261, 1277, 1271, 1273, 533, 1271,
-
- 1273, 532, 1263, 1279, 531, 1275, 528, 527, 1275, 1265,
- 1281, 1277, 1283, 526, 1277, 1267, 525, 1269, 1285, 1279,
- 1287, 522, 1279, 1271, 1273, 1289, 1281, 521, 1283, 1281,
- 520, 1283, 1275, 1291, 1285, 1293, 1287, 1285, 1277, 1287,
- 1295, 1289, 519, 518, 1289, 517, 1279, 516, 1297, 1291,
- 1299, 1293, 1291, 1281, 1293, 1283, 1295, 515, 1301, 1295,
- 514, 1285, 509, 1287, 1297, 1303, 1299, 1297, 1289, 1299,
- 1305, 1307, 508, 503, 1301, 499, 1291, 1301, 1293, 1309,
- 1311, 1303, 497, 1295, 1303, 496, 1305, 1307, 1313, 1305,
- 1307, 1297, 495, 1299, 494, 1309, 1311, 493, 1309, 1311,
-
- 1315, 1301, 1317, 492, 1313, 490, 489, 1313, 1303, 1319,
- 1321, 1323, 488, 1305, 1307, 487, 1315, 1325, 1317, 1315,
- 486, 1317, 1309, 1311, 485, 1319, 1321, 1323, 1319, 1321,
- 1323, 1313, 1327, 1325, 484, 482, 1325, 481, 480, 1329,
- 1331, 479, 478, 1315, 477, 1317, 1333, 1335, 1327, 476,
- 475, 1327, 1319, 1321, 1323, 1329, 1331, 1337, 1329, 1331,
- 1325, 1339, 1333, 1335, 474, 1333, 1335, 473, 1341, 1343,
- 472, 470, 467, 1337, 466, 1327, 1337, 1339, 1345, 1347,
- 1339, 465, 1329, 1331, 1341, 1343, 1349, 1341, 1343, 1333,
- 1335, 1351, 464, 460, 1345, 1347, 459, 1345, 1347, 1353,
-
- 1337, 1355, 1349, 456, 1339, 1349, 452, 1351, 1357, 1359,
- 1351, 1341, 1343, 451, 1361, 1353, 1363, 1355, 1353, 450,
- 1355, 1345, 1347, 449, 1357, 1359, 448, 1357, 1359, 1349,
- 1361, 1365, 1363, 1361, 1351, 1363, 447, 1367, 446, 1369,
- 443, 442, 1353, 441, 1355, 1371, 1373, 1365, 440, 439,
- 1365, 1357, 1359, 1367, 1375, 1369, 1367, 1361, 1369, 1363,
- 1377, 1371, 1373, 438, 1371, 1373, 437, 1379, 1381, 435,
- 1375, 434, 433, 1375, 1365, 1383, 1377, 1385, 431, 1377,
- 1367, 430, 1369, 1379, 1381, 1387, 1379, 1381, 1371, 1373,
- 1389, 1383, 428, 1385, 1383, 427, 1385, 1375, 1391, 426,
-
- 1393, 1387, 425, 1377, 1387, 1395, 1389, 1397, 418, 1389,
- 1379, 1381, 417, 1399, 1391, 1401, 1393, 1391, 1383, 1393,
- 1385, 1395, 416, 1397, 1395, 415, 1397, 414, 1387, 1399,
- 1403, 1401, 1399, 1389, 1401, 1405, 1407, 413, 412, 410,
- 408, 1391, 407, 1393, 1409, 406, 1403, 404, 1395, 1403,
- 1397, 1405, 1407, 403, 1405, 1407, 1399, 400, 1401, 399,
- 1409, 397, 396, 1409, 393, 390, 389, 388, 387, 386,
- 385, 384, 383, 1403, 382, 381, 380, 378, 1405, 1407,
- 377, 376, 375, 374, 373, 372, 371, 1409, 1411, 1411,
- 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1412,
-
- 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
- 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
- 1413, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
- 1414, 1414, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415,
- 1415, 1415, 1415, 1416, 1416, 1416, 1416, 1416, 1416, 1416,
- 1416, 1416, 370, 1416, 1417, 1417, 1417, 1417, 369, 1417,
- 1417, 1417, 1417, 1417, 1417, 1419, 1419, 1419, 1419, 1419,
- 1419, 1419, 1419, 1419, 1419, 1419, 1420, 366, 365, 1420,
- 1421, 1421, 1421, 364, 1421, 1421, 363, 1421, 1421, 1422,
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
-
- 1423, 362, 361, 1423, 1424, 1424, 1424, 1424, 1424, 360,
- 1424, 1424, 1424, 1424, 1424, 1425, 358, 357, 356, 355,
- 1425, 1425, 354, 1425, 1426, 353, 352, 1426, 1427, 350,
- 349, 1427, 1428, 1428, 1428, 1428, 1428, 1428, 348, 1428,
- 1428, 1428, 1428, 1429, 1429, 1429, 1429, 1429, 1429, 1429,
- 1429, 1429, 1429, 1429, 1430, 1430, 1430, 1430, 1430, 1430,
- 1430, 1430, 1430, 1430, 1430, 1431, 347, 346, 1431, 1432,
- 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
- 1433, 345, 344, 343, 342, 340, 339, 337, 336, 1433,
- 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
-
- 1434, 1435, 335, 334, 332, 331, 1435, 330, 329, 1435,
- 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
- 1436, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
- 1437, 1437, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438,
- 1438, 1438, 1438, 1439, 1439, 1439, 1439, 1439, 1439, 1439,
- 1439, 1439, 1439, 1439, 1440, 1440, 1440, 1440, 1440, 1440,
- 1440, 1440, 1440, 1440, 1440, 1441, 1441, 1441, 1441, 1441,
- 1441, 1441, 1441, 1441, 1441, 1441, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1443, 1443, 1443,
- 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1444, 1444,
-
- 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1445,
- 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445,
- 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446,
- 1446, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
- 1449, 1449, 1449, 1449, 1450, 1450, 1450, 1450, 1450, 1450,
- 1450, 1450, 1450, 1450, 1450, 1451, 1451, 1451, 1451, 1451,
- 1451, 1451, 1451, 1451, 1451, 1451, 1452, 1452, 1452, 1452,
- 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1453, 1453, 1453,
-
- 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1454, 1454,
- 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1455,
- 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455,
- 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456,
- 1456, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457,
- 1457, 1457, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
- 1458, 1458, 1458, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
- 1459, 1459, 1459, 1459, 1460, 1460, 1460, 1460, 1460, 1460,
- 1460, 1460, 1460, 1460, 1460, 1461, 1461, 1461, 1461, 1461,
- 1461, 1461, 1461, 1461, 1461, 1461, 1462, 1462, 1462, 1462,
-
- 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1463, 1463, 1463,
- 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1464, 1464,
- 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1465,
- 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
- 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466,
- 1466, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
- 1467, 1467, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468,
- 1468, 1468, 1468, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
- 1469, 1469, 1469, 1469, 1470, 1470, 1470, 1470, 1470, 1470,
- 1470, 1470, 1470, 1470, 1470, 1471, 1471, 1471, 1471, 1471,
-
- 1471, 1471, 1471, 1471, 1471, 1471, 1472, 1472, 1472, 1472,
- 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1473, 1473, 1473,
- 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1474, 1474,
- 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1475,
- 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475,
- 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
- 1476, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477,
- 1477, 1477, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478,
- 1478, 1478, 1478, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
- 1479, 1479, 1479, 1479, 1480, 1480, 1480, 1480, 1480, 1480,
-
- 1480, 1480, 1480, 1480, 1480, 1481, 1481, 1481, 1481, 1481,
- 1481, 1481, 1481, 1481, 1481, 1481, 1482, 1482, 1482, 1482,
- 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1483, 1483, 1483,
- 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484, 1484,
- 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1485,
- 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
- 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486,
- 1486, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487,
- 1487, 1487, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489, 1489,
-
- 1489, 1489, 1489, 1489, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1491, 1491, 1491, 1491, 1491,
- 1491, 1491, 1491, 1491, 1491, 1491, 1492, 1492, 1492, 1492,
- 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1494, 1494,
- 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1495,
- 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
- 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
- 1496, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498,
-
- 1498, 1498, 1498, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1500, 1500, 1500, 1500, 1500, 1500,
- 1500, 1500, 1500, 1500, 1500, 1501, 1501, 1501, 1501, 1501,
- 1501, 1501, 1501, 1501, 1501, 1501, 1502, 1502, 1502, 1502,
- 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
-
- 1507, 1507, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
- 1508, 1508, 1508, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1511, 1511, 1511, 1511, 1511,
- 1511, 1511, 1511, 1511, 1511, 1511, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1513, 1513, 1513,
- 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
-
- 1516, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517,
- 1517, 1517, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
- 1518, 1518, 1518, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
- 1519, 1519, 1519, 1519, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1520, 1521, 1521, 1521, 1521, 1521,
- 1521, 1521, 1521, 1521, 1521, 1521, 1522, 1522, 1522, 1522,
- 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1523, 1523, 1523,
- 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1524, 1524,
- 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1525,
- 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525,
-
- 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526,
- 1526, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
- 1527, 1527, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528,
- 1528, 1528, 1528, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1530, 1530, 1530, 1530, 1530, 1530,
- 1530, 1530, 1530, 1530, 1530, 1531, 1531, 1531, 1531, 1531,
- 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1532, 1532, 1532,
- 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1533, 1533, 1533,
- 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1534, 1534,
- 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1535,
-
- 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
- 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
- 1536, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
- 1537, 1537, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
- 1539, 1539, 1539, 1539, 1540, 1540, 1540, 1540, 1540, 1540,
- 1540, 1540, 1540, 1540, 1540, 1541, 1541, 1541, 1541, 1541,
- 1541, 1541, 1541, 1541, 1541, 1541, 1542, 1542, 1542, 1542,
- 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1543, 1543, 1543,
- 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1544, 1544,
-
- 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1545,
- 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
- 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
- 1546, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1550, 1550, 1550, 1550, 1550, 1550,
- 1550, 1550, 1550, 1550, 1550, 1551, 1551, 1551, 1551, 1551,
- 1551, 1551, 1551, 1551, 1551, 1551, 1552, 1552, 1552, 1552,
- 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1553, 1553, 1553,
-
- 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1554, 1554,
- 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1555,
- 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
- 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
- 1556, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
- 1557, 1557, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
- 1558, 1558, 1558, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
- 1559, 1559, 1559, 1559, 1560, 1560, 1560, 1560, 1560, 1560,
- 1560, 1560, 1560, 1560, 1560, 1561, 1561, 1561, 1561, 1561,
- 1561, 1561, 1561, 1561, 1561, 1561, 1562, 1562, 1562, 1562,
-
- 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1563, 1563, 1563,
- 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1564, 1564,
- 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1565,
- 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567,
- 1567, 1567, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568,
- 1568, 1568, 1568, 1569, 1569, 1569, 1569, 1569, 1569, 1569,
- 1569, 1569, 1569, 1569, 1570, 1570, 1570, 1570, 1570, 1570,
- 1570, 1570, 1570, 1570, 1570, 1571, 1571, 1571, 1571, 1571,
-
- 1571, 1571, 1571, 1571, 1571, 1571, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1573, 1573, 1573,
- 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1574, 1574,
- 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1575,
- 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
- 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576,
- 1576, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577,
- 1577, 1577, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578,
- 1578, 1578, 1578, 1579, 1579, 1579, 1579, 1579, 1579, 1579,
- 1579, 1579, 1579, 1579, 1580, 1580, 1580, 1580, 1580, 1580,
-
- 1580, 1580, 1580, 1580, 1580, 1581, 1581, 1581, 1581, 1581,
- 1581, 1581, 1581, 1581, 1581, 1581, 1582, 1582, 1582, 1582,
- 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1583, 1583, 1583,
- 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1584, 1584,
- 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586,
- 1586, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
- 1587, 1587, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
- 1588, 1588, 1588, 1589, 1589, 1589, 1589, 1589, 1589, 1589,
-
- 1589, 1589, 1589, 1589, 1590, 1590, 1590, 1590, 1590, 1590,
- 1590, 1590, 1590, 1590, 1590, 1591, 1591, 1591, 1591, 1591,
- 1591, 1591, 1591, 1591, 1591, 1591, 1592, 1592, 1592, 1592,
- 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1593, 1593, 1593,
- 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1594, 1594,
- 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1595,
- 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
- 1597, 1597, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
-
- 1598, 1598, 1598, 1599, 1599, 1599, 1599, 1599, 1599, 1599,
- 1599, 1599, 1599, 1599, 1600, 1600, 1600, 1600, 1600, 1600,
- 1600, 1600, 1600, 1600, 1600, 1601, 1601, 1601, 1601, 1601,
- 1601, 1601, 1601, 1601, 1601, 1601, 1602, 1602, 1602, 1602,
- 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1603, 1603, 1603,
- 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1604, 1604,
- 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1605,
- 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605,
- 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
- 1606, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
-
- 1607, 1607, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608,
- 1608, 1608, 1608, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1609, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1611, 1611, 1611, 1611, 1611,
- 1611, 1611, 1611, 1611, 1611, 1611, 1612, 1612, 1612, 1612,
- 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1613, 1613, 1613,
- 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1614, 1614,
- 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1615,
- 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
- 1617, 1617, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618,
- 1618, 1618, 1618, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
- 1619, 1619, 1619, 1619, 1620, 1620, 1620, 1620, 1620, 1620,
- 1620, 1620, 1620, 1620, 1620, 1621, 1621, 1621, 1621, 1621,
- 1621, 1621, 1621, 1621, 1621, 1621, 1622, 1622, 1622, 1622,
- 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1623, 1623, 1623,
- 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1624, 1624,
- 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1625,
- 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
-
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1626, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
- 1627, 1627, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
- 1628, 1628, 1628, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
- 1629, 1629, 1629, 1629, 1630, 1630, 1630, 1630, 1630, 1630,
- 1630, 1630, 1630, 1630, 1630, 1631, 1631, 1631, 1631, 1631,
- 1631, 1631, 1631, 1631, 1631, 1631, 1632, 1632, 1632, 1632,
- 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1633, 1633, 1633,
- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1634, 1634,
- 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1635,
-
- 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
- 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636,
- 1636, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637,
- 1637, 1637, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
- 1638, 1638, 1638, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
- 1639, 1639, 1639, 1639, 1640, 1640, 1640, 1640, 1640, 1640,
- 1640, 1640, 1640, 1640, 1640, 1641, 1641, 1641, 1641, 1641,
- 1641, 1641, 1641, 1641, 1641, 1641, 1642, 1642, 1642, 1642,
- 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1643, 1643, 1643,
- 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1644, 1644,
-
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1645,
- 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645,
- 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646,
- 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
- 1647, 1647, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648,
- 1648, 1648, 1648, 1649, 1649, 1649, 1649, 1649, 1649, 1649,
- 1649, 1649, 1649, 1649, 1650, 1650, 1650, 1650, 1650, 1650,
- 1650, 1650, 1650, 1650, 1650, 1651, 1651, 1651, 1651, 1651,
- 1651, 1651, 1651, 1651, 1651, 1651, 1652, 1652, 1652, 1652,
- 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1653, 1653, 1653,
-
- 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1654, 1654,
- 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1655,
- 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655,
- 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
- 1656, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
- 1657, 1657, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658,
- 1658, 1658, 1658, 1659, 1659, 1659, 1659, 1659, 1659, 1659,
- 1659, 1659, 1659, 1659, 1660, 1660, 1660, 1660, 1660, 1660,
- 1660, 1660, 1660, 1660, 1660, 1661, 1661, 1661, 1661, 1661,
- 1661, 1661, 1661, 1661, 1661, 1661, 1662, 1662, 1662, 1662,
-
- 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1663, 1663, 1663,
- 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1664, 1664,
- 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1665,
- 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665,
- 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666,
- 1666, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
- 1667, 1667, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
- 1668, 1668, 1668, 1669, 1669, 1669, 1669, 1669, 1669, 1669,
- 1669, 1669, 1669, 1669, 1670, 1670, 1670, 1670, 1670, 1670,
- 1670, 1670, 1670, 1670, 1670, 1671, 1671, 1671, 1671, 1671,
-
- 1671, 1671, 1671, 1671, 1671, 1671, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1673, 1673, 1673,
- 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1674, 1674,
- 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
- 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
- 1676, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
- 1678, 1678, 1678, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1680, 1680, 1680, 1680, 1680, 1680,
-
- 1680, 1680, 1680, 1680, 1680, 1681, 1681, 1681, 1681, 1681,
- 1681, 1681, 1681, 1681, 1681, 1681, 1682, 1682, 1682, 1682,
- 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1683, 1683, 1683,
- 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1684, 1684,
- 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1685,
- 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
- 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686,
- 1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
- 1687, 1687, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688,
- 1688, 1688, 1688, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
-
- 1689, 1689, 1689, 1689, 1690, 1690, 1690, 1690, 1690, 1690,
- 1690, 1690, 1690, 1690, 1690, 1691, 1691, 1691, 1691, 1691,
- 1691, 1691, 1691, 1691, 1691, 1691, 1692, 1692, 1692, 1692,
- 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1693, 1693, 1693,
- 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1694, 1694,
- 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1695,
- 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697,
- 1697, 1697, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
-
- 1698, 1698, 1698, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
- 1699, 1699, 1699, 1699, 1700, 1700, 1700, 1700, 1700, 1700,
- 1700, 1700, 1700, 1700, 1700, 1701, 1701, 1701, 1701, 1701,
- 1701, 1701, 1701, 1701, 1701, 1701, 1702, 1702, 1702, 1702,
- 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1703, 1703, 1703,
- 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1704, 1704,
- 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1705,
- 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
- 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
- 1706, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
-
- 1707, 1707, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
- 1708, 1708, 1708, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
- 1709, 1709, 1709, 1709, 1710, 1710, 1710, 1710, 1710, 1710,
- 1710, 1710, 1710, 1710, 1710, 1711, 1711, 1711, 1711, 1711,
- 1711, 1711, 1711, 1711, 1711, 1711, 1712, 1712, 1712, 1712,
- 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1713, 1713, 1713,
- 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1714, 1714,
- 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1715,
- 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715,
- 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
-
- 1716, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
- 1717, 1717, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
- 1718, 1718, 1718, 1719, 1719, 1719, 1719, 1719, 1719, 1719,
- 1719, 1719, 1719, 1719, 1720, 1720, 1720, 1720, 1720, 1720,
- 1720, 1720, 1720, 1720, 1720, 1721, 1721, 1721, 1721, 1721,
- 1721, 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722, 1722,
- 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1723, 1723, 1723,
- 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1724, 1724,
- 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1725,
- 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725,
-
- 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
- 1726, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
- 1727, 1727, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
- 1728, 1728, 1728, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
- 1729, 1729, 1729, 1729, 1730, 1730, 1730, 1730, 1730, 1730,
- 1730, 1730, 1730, 1730, 1730, 1731, 1731, 1731, 1731, 1731,
- 1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732, 1732,
- 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1733, 1733, 1733,
- 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1734, 1734,
- 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735,
-
- 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
- 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
- 1736, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
- 1737, 1737, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738,
- 1738, 1738, 1738, 1739, 1739, 1739, 1739, 1739, 1739, 1739,
- 1739, 1739, 1739, 1739, 1740, 1740, 1740, 1740, 1740, 1740,
- 1740, 1740, 1740, 1740, 1740, 1741, 1741, 1741, 1741, 1741,
- 1741, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742, 1742,
- 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1743, 1743, 1743,
- 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1744, 1744,
-
- 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1745,
- 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
- 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
- 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
- 1747, 1747, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
- 1748, 1748, 1748, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
- 1749, 1749, 1749, 1749, 1750, 1750, 1750, 1750, 1750, 1750,
- 1750, 1750, 1750, 1750, 1750, 1751, 1751, 1751, 1751, 1751,
- 1751, 1751, 1751, 1751, 1751, 1751, 1752, 1752, 1752, 1752,
- 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1753, 1753, 1753,
-
- 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1754, 1754,
- 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1755,
- 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
- 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
- 1756, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
- 1757, 1757, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
- 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
- 1759, 1759, 1759, 1759, 1760, 1760, 1760, 1760, 1760, 1760,
- 1760, 1760, 1760, 1760, 1760, 1761, 1761, 1761, 1761, 1761,
- 1761, 1761, 1761, 1761, 1761, 1761, 1762, 1762, 1762, 1762,
-
- 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1763, 1763, 1763,
- 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1765,
- 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
- 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
- 1766, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
- 1767, 1767, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
- 1768, 1768, 1768, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
- 1769, 1769, 1769, 1769, 1770, 1770, 1770, 1770, 1770, 1770,
- 1770, 1770, 1770, 1770, 1770, 1771, 1771, 1771, 1771, 1771,
-
- 1771, 1771, 1771, 1771, 1771, 1771, 1772, 1772, 1772, 1772,
- 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1773, 1773, 1773,
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1774, 1774,
- 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1775,
- 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775,
- 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
- 1776, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777,
- 1777, 1777, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
- 1778, 1778, 1778, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
- 1779, 1779, 1779, 1779, 1780, 1780, 1780, 1780, 1780, 1780,
-
- 1780, 1780, 1780, 1780, 1780, 1781, 1781, 1781, 1781, 1781,
- 1781, 1781, 1781, 1781, 1781, 1781, 1782, 1782, 1782, 1782,
- 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1783, 1783, 1783,
- 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1784, 1784,
- 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
- 1786, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
- 1787, 1787, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
- 1788, 1788, 1788, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
-
- 1789, 1789, 1789, 1789, 1790, 1790, 1790, 1790, 1790, 1790,
- 1790, 1790, 1790, 1790, 1790, 1791, 1791, 1791, 1791, 1791,
- 1791, 1791, 1791, 1791, 1791, 1791, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1793, 1793, 1793,
- 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1794, 1794,
- 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1795,
- 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
- 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
- 1796, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797,
- 1797, 1797, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798,
-
- 1798, 1798, 1798, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
- 1799, 1799, 1799, 1799, 1800, 1800, 1800, 1800, 1800, 1800,
- 1800, 1800, 1800, 1800, 1800, 1801, 1801, 1801, 1801, 1801,
- 1801, 1801, 1801, 1801, 1801, 1801, 1802, 1802, 1802, 1802,
- 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1803, 1803, 1803,
- 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1804, 1804,
- 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1805,
- 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
- 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
- 1806, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
-
- 1807, 1807, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
- 1808, 1808, 1808, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, 1809, 1809, 1809, 1810, 1810, 1810, 1810, 1810, 1810,
- 1810, 1810, 1810, 1810, 1810, 1811, 1811, 1811, 1811, 1811,
- 1811, 1811, 1811, 1811, 1811, 1811, 1812, 1812, 1812, 1812,
- 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1813, 1813, 1813,
- 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1814, 1814,
- 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1815,
- 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
- 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
-
- 1816, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
- 1817, 1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
- 1818, 1818, 1818, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
- 1819, 1819, 1819, 1819, 1820, 1820, 1820, 1820, 1820, 1820,
- 1820, 1820, 1820, 1820, 1820, 1821, 1821, 1821, 1821, 1821,
- 1821, 1821, 1821, 1821, 1821, 1821, 1822, 1822, 1822, 1822,
- 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1823, 1823, 1823,
- 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1825,
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
-
- 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
- 1826, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
- 1827, 1827, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
- 1829, 1829, 1829, 1829, 1830, 1830, 1830, 1830, 1830, 1830,
- 1830, 1830, 1830, 1830, 1830, 328, 327, 325, 320, 317,
- 315, 314, 313, 312, 311, 310, 309, 306, 305, 304,
- 303, 302, 301, 300, 299, 298, 297, 296, 295, 294,
- 292, 291, 290, 288, 287, 285, 284, 283, 282, 281,
- 280, 278, 277, 276, 275, 273, 272, 267, 266, 260,
-
- 259, 258, 257, 256, 255, 254, 253, 252, 251, 247,
- 246, 243, 231, 226, 223, 222, 220, 205, 204, 203,
- 202, 201, 200, 199, 198, 197, 195, 192, 191, 190,
- 188, 186, 185, 184, 183, 181, 180, 179, 178, 177,
- 175, 173, 170, 168, 167, 166, 161, 158, 154, 146,
- 137, 136, 135, 134, 133, 132, 131, 130, 129, 127,
- 116, 114, 112, 111, 109, 108, 106, 105, 102, 101,
- 89, 86, 85, 84, 78, 71, 70, 69, 65, 63,
- 62, 61, 58, 53, 50, 49, 48, 44, 37, 28,
- 24, 23, 20, 19, 18, 17, 2, 1, 1410, 1410,
-
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
- 1410
+ 77, 79, 79, 79, 82, 88, 92, 90, 90, 93,
+ 110, 92, 94, 94, 93, 117, 95, 95, 82, 82,
+ 90, 103, 103, 125, 88, 113, 110, 103, 947, 110,
+
+ 115, 115, 115, 92, 122, 122, 93, 95, 79, 117,
+ 155, 155, 125, 175, 90, 103, 103, 90, 113, 94,
+ 130, 170, 94, 110, 278, 82, 130, 175, 82, 144,
+ 144, 144, 149, 149, 149, 150, 278, 150, 150, 150,
+ 162, 162, 152, 152, 152, 170, 151, 144, 151, 171,
+ 149, 151, 151, 151, 949, 150, 152, 152, 152, 152,
+ 152, 152, 165, 174, 174, 165, 185, 165, 171, 192,
+ 197, 165, 165, 219, 219, 199, 197, 185, 199, 215,
+ 215, 215, 216, 216, 216, 192, 192, 231, 220, 220,
+ 220, 951, 231, 953, 235, 235, 216, 216, 216, 216,
+
+ 216, 216, 220, 220, 220, 220, 220, 220, 232, 236,
+ 236, 247, 408, 232, 231, 235, 242, 242, 265, 265,
+ 265, 955, 242, 408, 266, 266, 266, 247, 291, 291,
+ 247, 267, 267, 267, 957, 232, 268, 268, 268, 959,
+ 242, 242, 266, 269, 269, 269, 328, 328, 298, 961,
+ 298, 347, 347, 298, 247, 418, 418, 269, 269, 269,
+ 269, 269, 269, 298, 327, 327, 327, 298, 963, 965,
+ 329, 329, 329, 967, 331, 344, 344, 344, 327, 327,
+ 327, 327, 327, 327, 329, 329, 329, 329, 329, 329,
+ 331, 339, 400, 331, 401, 401, 401, 464, 405, 412,
+
+ 969, 468, 339, 470, 476, 512, 971, 479, 400, 405,
+ 412, 400, 468, 464, 470, 476, 464, 331, 479, 973,
+ 514, 512, 516, 549, 512, 519, 520, 339, 513, 513,
+ 513, 514, 521, 516, 405, 400, 519, 520, 551, 549,
+ 464, 553, 549, 521, 550, 550, 550, 554, 512, 551,
+ 555, 557, 553, 559, 559, 559, 580, 597, 554, 975,
+ 977, 555, 557, 582, 582, 582, 549, 609, 636, 636,
+ 636, 979, 580, 597, 616, 580, 597, 981, 559, 623,
+ 983, 985, 987, 609, 989, 627, 609, 550, 582, 631,
+ 616, 991, 636, 616, 993, 623, 635, 638, 623, 580,
+
+ 597, 627, 995, 997, 627, 631, 999, 1001, 631, 1003,
+ 609, 1005, 635, 638, 642, 635, 638, 616, 639, 639,
+ 639, 1007, 623, 1009, 1011, 640, 640, 640, 627, 640,
+ 642, 1013, 631, 642, 640, 648, 1015, 653, 1017, 635,
+ 638, 1019, 639, 643, 643, 643, 658, 643, 656, 656,
+ 656, 648, 643, 653, 648, 664, 653, 642, 661, 661,
+ 661, 1021, 658, 666, 1023, 658, 1025, 1027, 668, 670,
+ 1029, 664, 640, 656, 664, 672, 674, 676, 648, 666,
+ 653, 678, 666, 661, 668, 670, 680, 668, 670, 658,
+ 643, 672, 674, 676, 672, 674, 676, 678, 664, 1031,
+
+ 678, 1033, 680, 1035, 1037, 680, 666, 682, 1039, 684,
+ 1041, 668, 670, 1043, 686, 688, 690, 1045, 672, 674,
+ 676, 692, 694, 682, 678, 684, 682, 696, 684, 680,
+ 686, 688, 690, 686, 688, 690, 1047, 692, 694, 1049,
+ 692, 694, 1051, 696, 698, 1053, 696, 1055, 1057, 1059,
+ 682, 1061, 684, 700, 1063, 702, 1065, 686, 688, 690,
+ 698, 704, 706, 698, 692, 694, 708, 710, 1067, 700,
+ 696, 702, 700, 712, 702, 714, 1069, 704, 706, 1071,
+ 704, 706, 708, 710, 716, 708, 710, 698, 1073, 712,
+ 1075, 714, 712, 1077, 714, 718, 700, 1079, 702, 1081,
+
+ 716, 720, 1083, 716, 704, 706, 722, 724, 1085, 708,
+ 710, 718, 726, 728, 718, 1087, 712, 720, 714, 1089,
+ 720, 730, 722, 724, 1091, 722, 724, 716, 726, 728,
+ 1093, 726, 728, 1095, 1097, 732, 1099, 730, 718, 1101,
+ 730, 734, 736, 738, 720, 1103, 1105, 740, 1107, 722,
+ 724, 732, 742, 744, 732, 726, 728, 734, 736, 738,
+ 734, 736, 738, 740, 730, 1109, 740, 1111, 742, 744,
+ 1113, 742, 744, 746, 1115, 748, 1117, 1119, 732, 1121,
+ 1123, 750, 752, 754, 734, 736, 738, 756, 758, 746,
+ 740, 748, 746, 760, 748, 742, 744, 750, 752, 754,
+
+ 750, 752, 754, 756, 758, 1125, 756, 758, 1127, 760,
+ 1129, 1131, 760, 762, 1133, 1135, 746, 1137, 748, 764,
+ 1139, 766, 1141, 768, 750, 752, 754, 770, 772, 762,
+ 756, 758, 762, 774, 776, 764, 760, 766, 764, 768,
+ 766, 778, 768, 770, 772, 1143, 770, 772, 1145, 774,
+ 776, 1147, 774, 776, 1149, 1151, 762, 778, 1153, 780,
+ 778, 1155, 764, 782, 766, 1157, 768, 784, 1159, 786,
+ 770, 772, 1161, 788, 790, 780, 774, 776, 780, 782,
+ 792, 794, 782, 784, 778, 786, 784, 1163, 786, 788,
+ 790, 1165, 788, 790, 1167, 796, 792, 794, 1169, 792,
+
+ 794, 1171, 780, 798, 1173, 1175, 782, 1177, 1179, 800,
+ 784, 796, 786, 802, 796, 804, 788, 790, 1181, 798,
+ 806, 808, 798, 792, 794, 800, 810, 1183, 800, 802,
+ 1185, 804, 802, 1187, 804, 812, 806, 808, 796, 806,
+ 808, 814, 810, 816, 1189, 810, 798, 1191, 1193, 818,
+ 1195, 812, 800, 1197, 812, 820, 802, 814, 804, 816,
+ 814, 822, 816, 806, 808, 818, 824, 1199, 818, 810,
+ 1201, 820, 826, 1203, 820, 1205, 1207, 822, 812, 1209,
+ 822, 828, 824, 830, 814, 824, 816, 832, 826, 834,
+ 1211, 826, 818, 1213, 836, 838, 1215, 828, 820, 830,
+
+ 828, 840, 830, 832, 822, 834, 832, 1217, 834, 824,
+ 836, 838, 842, 836, 838, 826, 1219, 840, 1221, 1223,
+ 840, 1225, 1227, 844, 828, 1229, 830, 846, 842, 848,
+ 832, 842, 834, 850, 852, 854, 1231, 836, 838, 844,
+ 856, 858, 844, 846, 840, 848, 846, 1233, 848, 850,
+ 852, 854, 850, 852, 854, 842, 856, 858, 1235, 856,
+ 858, 1237, 1239, 860, 1241, 1243, 844, 1245, 1247, 862,
+ 846, 864, 848, 866, 1249, 868, 850, 852, 854, 860,
+ 870, 872, 860, 856, 858, 862, 874, 864, 862, 866,
+ 864, 868, 866, 1251, 868, 1253, 870, 872, 1255, 870,
+
+ 872, 876, 874, 878, 1257, 874, 860, 1259, 1261, 880,
+ 1263, 882, 862, 1265, 864, 884, 866, 876, 868, 878,
+ 876, 886, 878, 870, 872, 880, 888, 882, 880, 874,
+ 882, 884, 890, 1267, 884, 1269, 1271, 886, 1273, 1275,
+ 886, 892, 888, 894, 876, 888, 878, 896, 890, 898,
+ 1277, 890, 880, 1279, 882, 900, 1281, 892, 884, 894,
+ 892, 902, 894, 896, 886, 898, 896, 1283, 898, 888,
+ 1285, 900, 904, 1287, 900, 890, 1289, 902, 906, 1291,
+ 902, 1293, 1295, 908, 892, 1297, 894, 910, 904, 912,
+ 896, 904, 898, 914, 906, 916, 1299, 906, 900, 908,
+
+ 918, 920, 908, 910, 902, 912, 910, 1301, 912, 914,
+ 1303, 916, 914, 1305, 916, 904, 918, 920, 922, 918,
+ 920, 906, 1307, 924, 1309, 1311, 908, 1313, 1315, 926,
+ 910, 928, 912, 930, 922, 932, 914, 922, 916, 924,
+ 934, 936, 924, 918, 920, 926, 938, 928, 926, 930,
+ 928, 932, 930, 1317, 932, 1319, 934, 936, 1321, 934,
+ 936, 922, 938, 940, 1323, 938, 924, 1325, 1327, 942,
+ 1329, 944, 926, 1331, 928, 946, 930, 948, 932, 940,
+ 1333, 950, 940, 934, 936, 942, 952, 944, 942, 938,
+ 944, 946, 954, 948, 946, 1335, 948, 950, 1337, 1339,
+
+ 950, 1341, 952, 956, 1343, 952, 940, 958, 954, 960,
+ 1345, 954, 942, 1347, 944, 962, 1349, 964, 946, 956,
+ 948, 966, 956, 958, 950, 960, 958, 1351, 960, 952,
+ 1353, 962, 968, 964, 962, 954, 964, 966, 970, 1355,
+ 966, 1357, 1359, 972, 1361, 1363, 956, 974, 968, 976,
+ 958, 968, 960, 978, 970, 980, 1365, 970, 962, 972,
+ 964, 982, 972, 974, 966, 976, 974, 1367, 976, 978,
+ 1369, 980, 978, 1371, 980, 968, 1373, 982, 984, 1375,
+ 982, 970, 1377, 986, 988, 1379, 972, 1381, 1383, 990,
+ 974, 992, 976, 994, 984, 996, 978, 984, 980, 986,
+
+ 988, 998, 986, 988, 982, 990, 1000, 992, 990, 994,
+ 992, 996, 994, 1385, 996, 1387, 1389, 998, 1391, 1393,
+ 998, 984, 1000, 1002, 1004, 1000, 986, 988, 1395, 1006,
+ 1397, 1008, 990, 1399, 992, 1010, 994, 1012, 996, 1002,
+ 1004, 1014, 1002, 1004, 998, 1006, 1016, 1008, 1006, 1000,
+ 1008, 1010, 1018, 1012, 1010, 1401, 1012, 1014, 1403, 1405,
+ 1014, 1407, 1016, 1020, 1409, 1016, 1002, 1004, 1018, 1022,
+ 1411, 1018, 1006, 1413, 1008, 1024, 1415, 1026, 1010, 1020,
+ 1012, 1028, 1020, 1030, 1014, 1022, 1417, 1429, 1022, 1016,
+ 935, 1024, 1032, 1026, 1024, 1018, 1026, 1028, 1034, 1030,
+
+ 1028, 933, 1030, 1036, 931, 929, 1020, 927, 1032, 1038,
+ 925, 1032, 1022, 1040, 1034, 1042, 923, 1034, 1024, 1036,
+ 1026, 1044, 1036, 1046, 1028, 1038, 1030, 921, 1038, 1040,
+ 919, 1042, 1040, 917, 1042, 1032, 915, 1044, 1048, 1046,
+ 1044, 1034, 1046, 1050, 1052, 913, 1036, 911, 909, 1054,
+ 907, 1056, 1038, 1058, 1048, 1060, 1040, 1048, 1042, 1050,
+ 1052, 1062, 1050, 1052, 1044, 1054, 1046, 1056, 1054, 1058,
+ 1056, 1060, 1058, 905, 1060, 903, 901, 1062, 899, 897,
+ 1062, 1048, 895, 1064, 1066, 893, 1050, 1052, 891, 1068,
+ 1070, 1072, 1054, 889, 1056, 1074, 1058, 1076, 1060, 1064,
+
+ 1066, 1078, 1064, 1066, 1062, 1068, 1070, 1072, 1068, 1070,
+ 1072, 1074, 1080, 1076, 1074, 887, 1076, 1078, 885, 883,
+ 1078, 881, 879, 1082, 877, 875, 1064, 1066, 1080, 1084,
+ 1086, 1080, 1068, 1070, 1072, 1088, 873, 1090, 1074, 1082,
+ 1076, 1092, 1082, 1094, 1078, 1084, 1086, 871, 1084, 1086,
+ 869, 1088, 1096, 1090, 1088, 1080, 1090, 1092, 1098, 1094,
+ 1092, 867, 1094, 1100, 865, 863, 1082, 861, 1096, 1102,
+ 859, 1096, 1084, 1086, 1098, 1104, 857, 1098, 1088, 1100,
+ 1090, 1106, 1100, 1108, 1092, 1102, 1094, 855, 1102, 1110,
+ 853, 1104, 851, 849, 1104, 1096, 847, 1106, 1112, 1108,
+
+ 1106, 1098, 1108, 1114, 1116, 1110, 1100, 845, 1110, 1118,
+ 843, 1120, 1102, 841, 1112, 1122, 839, 1112, 1104, 1114,
+ 1116, 1124, 1114, 1116, 1106, 1118, 1108, 1120, 1118, 1126,
+ 1120, 1122, 1110, 837, 1122, 835, 833, 1124, 831, 829,
+ 1124, 1112, 827, 1128, 1130, 1126, 1114, 1116, 1126, 1132,
+ 1134, 1136, 1118, 825, 1120, 1138, 823, 1140, 1122, 1128,
+ 1130, 1142, 1128, 1130, 1124, 1132, 1134, 1136, 1132, 1134,
+ 1136, 1138, 1126, 1140, 1138, 821, 1140, 1142, 819, 817,
+ 1142, 815, 813, 1144, 811, 809, 1128, 1130, 807, 1146,
+ 1148, 1150, 1132, 1134, 1136, 1152, 1154, 1156, 1138, 1144,
+
+ 1140, 1158, 1144, 1160, 1142, 1146, 1148, 1150, 1146, 1148,
+ 1150, 1152, 1154, 1156, 1152, 1154, 1156, 1158, 805, 1160,
+ 1158, 803, 1160, 801, 799, 797, 1144, 795, 793, 1162,
+ 791, 1164, 1146, 1148, 1150, 1166, 1168, 1170, 1152, 1154,
+ 1156, 1172, 1174, 1176, 1158, 1162, 1160, 1164, 1162, 1178,
+ 1164, 1166, 1168, 1170, 1166, 1168, 1170, 1172, 1174, 1176,
+ 1172, 1174, 1176, 789, 787, 1178, 785, 783, 1178, 781,
+ 779, 1180, 1162, 777, 1164, 1182, 775, 1184, 1166, 1168,
+ 1170, 1186, 1188, 1190, 1172, 1174, 1176, 1180, 1192, 1194,
+ 1180, 1182, 1178, 1184, 1182, 773, 1184, 1186, 1188, 1190,
+
+ 1186, 1188, 1190, 1196, 1192, 1194, 771, 1192, 1194, 769,
+ 767, 1198, 765, 763, 1180, 761, 759, 1200, 1182, 1196,
+ 1184, 1202, 1196, 1204, 1186, 1188, 1190, 1198, 1206, 1208,
+ 1198, 1192, 1194, 1200, 1210, 757, 1200, 1202, 755, 1204,
+ 1202, 753, 1204, 1212, 1206, 1208, 1196, 1206, 1208, 1214,
+ 1210, 1216, 751, 1210, 1198, 749, 747, 1218, 745, 1212,
+ 1200, 743, 1212, 1220, 1202, 1214, 1204, 1216, 1214, 1222,
+ 1216, 1206, 1208, 1218, 1224, 741, 1218, 1210, 739, 1220,
+ 1226, 737, 1220, 735, 733, 1222, 1212, 731, 1222, 1228,
+ 1224, 1230, 1214, 1224, 1216, 1232, 1226, 1234, 729, 1226,
+
+ 1218, 727, 1236, 1238, 725, 1228, 1220, 1230, 1228, 1240,
+ 1230, 1232, 1222, 1234, 1232, 723, 1234, 1224, 1236, 1238,
+ 1242, 1236, 1238, 1226, 721, 1240, 719, 717, 1240, 715,
+ 713, 1244, 1228, 711, 1230, 1246, 1242, 1248, 1232, 1242,
+ 1234, 1250, 1252, 1254, 709, 1236, 1238, 1244, 1256, 1258,
+ 1244, 1246, 1240, 1248, 1246, 707, 1248, 1250, 1252, 1254,
+ 1250, 1252, 1254, 1242, 1256, 1258, 705, 1256, 1258, 703,
+ 701, 1260, 699, 697, 1244, 695, 693, 1262, 1246, 1264,
+ 1248, 1266, 691, 1268, 1250, 1252, 1254, 1260, 1270, 1272,
+ 1260, 1256, 1258, 1262, 1274, 1264, 1262, 1266, 1264, 1268,
+
+ 1266, 689, 1268, 687, 1270, 1272, 685, 1270, 1272, 1276,
+ 1274, 1278, 683, 1274, 1260, 681, 679, 1280, 677, 1282,
+ 1262, 675, 1264, 1284, 1266, 1276, 1268, 1278, 1276, 1286,
+ 1278, 1270, 1272, 1280, 1288, 1282, 1280, 1274, 1282, 1284,
+ 1290, 673, 1284, 671, 669, 1286, 667, 665, 1286, 1292,
+ 1288, 1294, 1276, 1288, 1278, 1296, 1290, 1298, 663, 1290,
+ 1280, 660, 1282, 1300, 659, 1292, 1284, 1294, 1292, 1302,
+ 1294, 1296, 1286, 1298, 1296, 657, 1298, 1288, 655, 1300,
+ 1304, 654, 1300, 1290, 652, 1302, 1306, 651, 1302, 650,
+ 649, 1308, 1292, 647, 1294, 1310, 1304, 1312, 1296, 1304,
+
+ 1298, 1314, 1306, 1316, 646, 1306, 1300, 1308, 1318, 1320,
+ 1308, 1310, 1302, 1312, 1310, 645, 1312, 1314, 644, 1316,
+ 1314, 641, 1316, 1304, 1318, 1320, 1322, 1318, 1320, 1306,
+ 637, 1324, 634, 632, 1308, 630, 629, 1326, 1310, 1328,
+ 1312, 1330, 1322, 1332, 1314, 1322, 1316, 1324, 1334, 1336,
+ 1324, 1318, 1320, 1326, 1338, 1328, 1326, 1330, 1328, 1332,
+ 1330, 628, 1332, 626, 1334, 1336, 625, 1334, 1336, 1322,
+ 1338, 1340, 624, 1338, 1324, 622, 619, 1342, 617, 1344,
+ 1326, 615, 1328, 1346, 1330, 1348, 1332, 1340, 614, 1350,
+ 1340, 1334, 1336, 1342, 1352, 1344, 1342, 1338, 1344, 1346,
+
+ 1354, 1348, 1346, 613, 1348, 1350, 612, 611, 1350, 610,
+ 1352, 1356, 608, 1352, 1340, 1358, 1354, 1360, 607, 1354,
+ 1342, 605, 1344, 1362, 600, 1364, 1346, 1356, 1348, 1366,
+ 1356, 1358, 1350, 1360, 1358, 599, 1360, 1352, 598, 1362,
+ 1368, 1364, 1362, 1354, 1364, 1366, 1370, 596, 1366, 595,
+ 592, 1372, 591, 590, 1356, 1374, 1368, 1376, 1358, 1368,
+ 1360, 1378, 1370, 1380, 588, 1370, 1362, 1372, 1364, 1382,
+ 1372, 1374, 1366, 1376, 1374, 587, 1376, 1378, 586, 1380,
+ 1378, 585, 1380, 1368, 584, 1382, 1384, 581, 1382, 1370,
+ 579, 1386, 1388, 578, 1372, 577, 576, 1390, 1374, 1392,
+
+ 1376, 1394, 1384, 1396, 1378, 1384, 1380, 1386, 1388, 1398,
+ 1386, 1388, 1382, 1390, 1400, 1392, 1390, 1394, 1392, 1396,
+ 1394, 575, 1396, 574, 573, 1398, 570, 569, 1398, 1384,
+ 1400, 1402, 1404, 1400, 1386, 1388, 568, 1406, 565, 1408,
+ 1390, 563, 1392, 1410, 1394, 1412, 1396, 1402, 1404, 1414,
+ 1402, 1404, 1398, 1406, 1416, 1408, 1406, 1400, 1408, 1410,
+ 1418, 1412, 1410, 562, 1412, 1414, 560, 548, 1414, 547,
+ 1416, 1420, 546, 1416, 1402, 1404, 1418, 544, 543, 1418,
+ 1406, 542, 1408, 541, 540, 537, 1410, 1420, 1412, 536,
+ 1420, 535, 1414, 534, 531, 530, 529, 1416, 528, 527,
+
+ 526, 525, 524, 1418, 523, 518, 517, 511, 507, 505,
+ 504, 503, 502, 501, 1420, 1422, 1422, 1422, 1422, 1422,
+ 1422, 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423, 1423,
+ 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1424, 1424, 1424,
+ 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1425, 1425,
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 500,
+ 1427, 1428, 1428, 1428, 1428, 498, 1428, 1428, 1428, 1428,
+ 1428, 1428, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
+
+ 1430, 1430, 1430, 1431, 497, 496, 1431, 1432, 1432, 1432,
+ 495, 1432, 1432, 494, 1432, 1432, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1434, 493, 492,
+ 1434, 1435, 1435, 1435, 1435, 1435, 490, 1435, 1435, 1435,
+ 1435, 1435, 1436, 489, 488, 487, 486, 1436, 1436, 485,
+ 1436, 1437, 484, 483, 1437, 1438, 482, 481, 1438, 1439,
+ 1439, 1439, 1439, 1439, 1439, 480, 1439, 1439, 1439, 1439,
+ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
+ 1440, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441,
+ 1441, 1441, 1442, 478, 475, 1442, 1443, 1443, 1443, 1443,
+
+ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1444, 474, 473,
+ 472, 469, 467, 466, 463, 459, 1444, 1445, 1445, 1445,
+ 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1446, 458,
+ 457, 456, 455, 1446, 454, 453, 1446, 1447, 1447, 1447,
+ 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1448, 1448,
+ 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1449,
+ 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
+ 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450,
+ 1450, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451,
+ 1451, 1451, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
+
+ 1452, 1452, 1452, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
+ 1453, 1453, 1453, 1453, 1454, 1454, 1454, 1454, 1454, 1454,
+ 1454, 1454, 1454, 1454, 1454, 1455, 1455, 1455, 1455, 1455,
+ 1455, 1455, 1455, 1455, 1455, 1455, 1456, 1456, 1456, 1456,
+ 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1457, 1457, 1457,
+ 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1459,
+ 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
+ 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460,
+ 1460, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+
+ 1461, 1461, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
+ 1462, 1462, 1462, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1464, 1464, 1464, 1464, 1464, 1464,
+ 1464, 1464, 1464, 1464, 1464, 1465, 1465, 1465, 1465, 1465,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1466, 1466, 1466, 1466,
+ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1467, 1467, 1467,
+ 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1468, 1468,
+ 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1469,
+ 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
+ 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470,
+
+ 1470, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+ 1471, 1471, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472,
+ 1472, 1472, 1472, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1474, 1474, 1474, 1474, 1474, 1474,
+ 1474, 1474, 1474, 1474, 1474, 1475, 1475, 1475, 1475, 1475,
+ 1475, 1475, 1475, 1475, 1475, 1475, 1476, 1476, 1476, 1476,
+ 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1477, 1477, 1477,
+ 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1478, 1478,
+ 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
+ 1480, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481,
+ 1481, 1481, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482,
+ 1482, 1482, 1482, 1483, 1483, 1483, 1483, 1483, 1483, 1483,
+ 1483, 1483, 1483, 1483, 1484, 1484, 1484, 1484, 1484, 1484,
+ 1484, 1484, 1484, 1484, 1484, 1485, 1485, 1485, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1485, 1485, 1486, 1486, 1486, 1486,
+ 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1487, 1487, 1487,
+ 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1488, 1488,
+ 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1489,
+
+ 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489,
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+ 1490, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
+ 1492, 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1493, 1493, 1493, 1493, 1494, 1494, 1494, 1494, 1494, 1494,
+ 1494, 1494, 1494, 1494, 1494, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1496, 1496, 1496, 1496,
+ 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1497, 1497, 1497,
+ 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1498, 1498,
+
+ 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1499,
+ 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
+ 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500,
+ 1500, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
+ 1501, 1501, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
+ 1502, 1502, 1502, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
+ 1503, 1503, 1503, 1503, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1505, 1505, 1505, 1505, 1505,
+ 1505, 1505, 1505, 1505, 1505, 1505, 1506, 1506, 1506, 1506,
+ 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1507, 1507, 1507,
+
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1509,
+ 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
+ 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
+ 1510, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511,
+ 1511, 1511, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
+ 1512, 1512, 1512, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
+ 1513, 1513, 1513, 1513, 1514, 1514, 1514, 1514, 1514, 1514,
+ 1514, 1514, 1514, 1514, 1514, 1515, 1515, 1515, 1515, 1515,
+ 1515, 1515, 1515, 1515, 1515, 1515, 1516, 1516, 1516, 1516,
+
+ 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1517, 1517, 1517,
+ 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1518,
+ 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1519,
+ 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
+ 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
+ 1520, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
+ 1521, 1521, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522,
+ 1522, 1522, 1522, 1523, 1523, 1523, 1523, 1523, 1523, 1523,
+ 1523, 1523, 1523, 1523, 1524, 1524, 1524, 1524, 1524, 1524,
+ 1524, 1524, 1524, 1524, 1524, 1525, 1525, 1525, 1525, 1525,
+
+ 1525, 1525, 1525, 1525, 1525, 1525, 1526, 1526, 1526, 1526,
+ 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1527, 1527, 1527,
+ 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1528, 1528,
+ 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1529,
+ 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
+ 1530, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
+ 1531, 1531, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
+ 1532, 1532, 1532, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
+ 1533, 1533, 1533, 1533, 1534, 1534, 1534, 1534, 1534, 1534,
+
+ 1534, 1534, 1534, 1534, 1534, 1535, 1535, 1535, 1535, 1535,
+ 1535, 1535, 1535, 1535, 1535, 1535, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1539,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
+ 1540, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542,
+ 1542, 1542, 1542, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+
+ 1543, 1543, 1543, 1543, 1544, 1544, 1544, 1544, 1544, 1544,
+ 1544, 1544, 1544, 1544, 1544, 1545, 1545, 1545, 1545, 1545,
+ 1545, 1545, 1545, 1545, 1545, 1545, 1546, 1546, 1546, 1546,
+ 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547, 1547, 1547,
+ 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
+ 1551, 1551, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
+
+ 1552, 1552, 1552, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
+ 1553, 1553, 1553, 1553, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1555, 1555, 1555, 1555, 1555,
+ 1555, 1555, 1555, 1555, 1555, 1555, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1557, 1557, 1557,
+ 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1558, 1558,
+ 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1559,
+ 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
+ 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
+ 1560, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
+
+ 1561, 1561, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
+ 1563, 1563, 1563, 1563, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1564, 1565, 1565, 1565, 1565, 1565,
+ 1565, 1565, 1565, 1565, 1565, 1565, 1566, 1566, 1566, 1566,
+ 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1567, 1567, 1567,
+ 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1568, 1568,
+ 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1569,
+ 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569,
+ 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
+
+ 1570, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571,
+ 1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
+ 1572, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1573, 1573,
+ 1573, 1573, 1573, 1573, 1574, 1574, 1574, 1574, 1574, 1574,
+ 1574, 1574, 1574, 1574, 1574, 1575, 1575, 1575, 1575, 1575,
+ 1575, 1575, 1575, 1575, 1575, 1575, 1576, 1576, 1576, 1576,
+ 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1577, 1577, 1577,
+ 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1578, 1578,
+ 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1579,
+ 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579,
+
+ 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580,
+ 1580, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581,
+ 1581, 1581, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 1583, 1583, 1583, 1583, 1583, 1583, 1583,
+ 1583, 1583, 1583, 1583, 1584, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1585, 1585, 1585, 1585, 1585,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1586, 1586, 1586, 1586,
+ 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1587, 1587, 1587,
+ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1589,
+
+ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589,
+ 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590,
+ 1590, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
+ 1591, 1591, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
+ 1592, 1592, 1592, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1595, 1595, 1595, 1595, 1595,
+ 1595, 1595, 1595, 1595, 1595, 1595, 1596, 1596, 1596, 1596,
+ 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1597, 1597, 1597,
+ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1598,
+
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1599,
+ 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599,
+ 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
+ 1600, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1602, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
+ 1603, 1603, 1603, 1603, 1604, 1604, 1604, 1604, 1604, 1604,
+ 1604, 1604, 1604, 1604, 1604, 1605, 1605, 1605, 1605, 1605,
+ 1605, 1605, 1605, 1605, 1605, 1605, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1607, 1607, 1607,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1608, 1608,
+ 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1609,
+ 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+ 1610, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
+ 1611, 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1615, 1615, 1615, 1615, 1615,
+ 1615, 1615, 1615, 1615, 1615, 1615, 1616, 1616, 1616, 1616,
+
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1617, 1617, 1617,
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1618, 1618,
+ 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622,
+ 1622, 1622, 1622, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+ 1623, 1623, 1623, 1623, 1624, 1624, 1624, 1624, 1624, 1624,
+ 1624, 1624, 1624, 1624, 1624, 1625, 1625, 1625, 1625, 1625,
+
+ 1625, 1625, 1625, 1625, 1625, 1625, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1628, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1629,
+ 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1630, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
+ 1632, 1632, 1632, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1634, 1634, 1634, 1634, 1634, 1634,
+
+ 1634, 1634, 1634, 1634, 1634, 1635, 1635, 1635, 1635, 1635,
+ 1635, 1635, 1635, 1635, 1635, 1635, 1636, 1636, 1636, 1636,
+ 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1637, 1637, 1637,
+ 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1638, 1638,
+ 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1639,
+ 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
+ 1640, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
+ 1641, 1641, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
+ 1642, 1642, 1642, 1643, 1643, 1643, 1643, 1643, 1643, 1643,
+
+ 1643, 1643, 1643, 1643, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1644, 1644, 1644, 1644, 1645, 1645, 1645, 1645, 1645,
+ 1645, 1645, 1645, 1645, 1645, 1645, 1646, 1646, 1646, 1646,
+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1647, 1647, 1647,
+ 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1648, 1648,
+ 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1649,
+ 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649,
+ 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
+ 1650, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
+ 1651, 1651, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
+
+ 1652, 1652, 1652, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
+ 1653, 1653, 1653, 1653, 1654, 1654, 1654, 1654, 1654, 1654,
+ 1654, 1654, 1654, 1654, 1654, 1655, 1655, 1655, 1655, 1655,
+ 1655, 1655, 1655, 1655, 1655, 1655, 1656, 1656, 1656, 1656,
+ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1657, 1657, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1658, 1658,
+ 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1659,
+ 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659,
+ 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660,
+ 1660, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
+
+ 1661, 1661, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662,
+ 1662, 1662, 1662, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1663, 1664, 1664, 1664, 1664, 1664, 1664,
+ 1664, 1664, 1664, 1664, 1664, 1665, 1665, 1665, 1665, 1665,
+ 1665, 1665, 1665, 1665, 1665, 1665, 1666, 1666, 1666, 1666,
+ 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1667, 1667, 1667,
+ 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1668, 1668,
+ 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1669,
+ 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,
+ 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
+
+ 1670, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
+ 1672, 1672, 1672, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
+ 1673, 1673, 1673, 1673, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1675, 1675, 1675, 1675, 1675,
+ 1675, 1675, 1675, 1675, 1675, 1675, 1676, 1676, 1676, 1676,
+ 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1677, 1677, 1677,
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1678, 1678,
+ 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1679,
+ 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
+
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681,
+ 1681, 1681, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
+ 1682, 1682, 1682, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
+ 1683, 1683, 1683, 1683, 1684, 1684, 1684, 1684, 1684, 1684,
+ 1684, 1684, 1684, 1684, 1684, 1685, 1685, 1685, 1685, 1685,
+ 1685, 1685, 1685, 1685, 1685, 1685, 1686, 1686, 1686, 1686,
+ 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1687, 1687, 1687,
+ 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1688, 1688,
+ 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1689,
+
+ 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
+ 1692, 1692, 1692, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+ 1693, 1693, 1693, 1693, 1694, 1694, 1694, 1694, 1694, 1694,
+ 1694, 1694, 1694, 1694, 1694, 1695, 1695, 1695, 1695, 1695,
+ 1695, 1695, 1695, 1695, 1695, 1695, 1696, 1696, 1696, 1696,
+ 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1697, 1697, 1697,
+ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1698, 1698,
+
+ 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1699,
+ 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
+ 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
+ 1700, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
+ 1702, 1702, 1702, 1703, 1703, 1703, 1703, 1703, 1703, 1703,
+ 1703, 1703, 1703, 1703, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1705, 1705, 1705, 1705, 1705,
+ 1705, 1705, 1705, 1705, 1705, 1705, 1706, 1706, 1706, 1706,
+ 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1707, 1707, 1707,
+
+ 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1708, 1708,
+ 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1709,
+ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
+ 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710,
+ 1710, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1712, 1712, 1712, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
+ 1713, 1713, 1713, 1713, 1714, 1714, 1714, 1714, 1714, 1714,
+ 1714, 1714, 1714, 1714, 1714, 1715, 1715, 1715, 1715, 1715,
+ 1715, 1715, 1715, 1715, 1715, 1715, 1716, 1716, 1716, 1716,
+
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1717, 1717, 1717,
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1718, 1718,
+ 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1719,
+ 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719,
+ 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
+ 1720, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721,
+ 1721, 1721, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723, 1723, 1723,
+ 1723, 1723, 1723, 1723, 1724, 1724, 1724, 1724, 1724, 1724,
+ 1724, 1724, 1724, 1724, 1724, 1725, 1725, 1725, 1725, 1725,
+
+ 1725, 1725, 1725, 1725, 1725, 1725, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1727, 1727, 1727,
+ 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1729,
+ 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
+ 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
+ 1730, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731,
+ 1731, 1731, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
+ 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733, 1733, 1733,
+ 1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, 1734,
+
+ 1734, 1734, 1734, 1734, 1734, 1735, 1735, 1735, 1735, 1735,
+ 1735, 1735, 1735, 1735, 1735, 1735, 1736, 1736, 1736, 1736,
+ 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1737, 1737, 1737,
+ 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1738, 1738,
+ 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1739,
+ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739,
+ 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
+ 1740, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741,
+ 1741, 1741, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
+ 1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1744, 1744, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1745, 1745, 1745, 1745, 1745,
+ 1745, 1745, 1745, 1745, 1745, 1745, 1746, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1747, 1747, 1747,
+ 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1748, 1748,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1749,
+ 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751,
+ 1751, 1751, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+
+ 1752, 1752, 1752, 1753, 1753, 1753, 1753, 1753, 1753, 1753,
+ 1753, 1753, 1753, 1753, 1754, 1754, 1754, 1754, 1754, 1754,
+ 1754, 1754, 1754, 1754, 1754, 1755, 1755, 1755, 1755, 1755,
+ 1755, 1755, 1755, 1755, 1755, 1755, 1756, 1756, 1756, 1756,
+ 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1757, 1757, 1757,
+ 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1758, 1758,
+ 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759,
+ 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761,
+
+ 1761, 1761, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
+ 1762, 1762, 1762, 1763, 1763, 1763, 1763, 1763, 1763, 1763,
+ 1763, 1763, 1763, 1763, 1764, 1764, 1764, 1764, 1764, 1764,
+ 1764, 1764, 1764, 1764, 1764, 1765, 1765, 1765, 1765, 1765,
+ 1765, 1765, 1765, 1765, 1765, 1765, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1768, 1768,
+ 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1769,
+ 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
+ 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
+
+ 1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
+ 1771, 1771, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
+ 1772, 1772, 1772, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
+ 1773, 1773, 1773, 1773, 1774, 1774, 1774, 1774, 1774, 1774,
+ 1774, 1774, 1774, 1774, 1774, 1775, 1775, 1775, 1775, 1775,
+ 1775, 1775, 1775, 1775, 1775, 1775, 1776, 1776, 1776, 1776,
+ 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1777, 1777, 1777,
+ 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1779,
+ 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
+
+ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
+ 1780, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781,
+ 1781, 1781, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1784, 1784, 1784, 1784, 1784, 1784,
+ 1784, 1784, 1784, 1784, 1784, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786, 1786, 1786,
+ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787, 1787,
+ 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1789,
+
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791,
+ 1791, 1791, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794, 1794, 1794,
+ 1794, 1794, 1794, 1794, 1794, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1796, 1796, 1796, 1796,
+ 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1797, 1797, 1797,
+ 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1798, 1798,
+
+ 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1799,
+ 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801,
+ 1801, 1801, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802,
+ 1802, 1802, 1802, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
+ 1803, 1803, 1803, 1803, 1804, 1804, 1804, 1804, 1804, 1804,
+ 1804, 1804, 1804, 1804, 1804, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1807, 1807, 1807,
+
+ 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1808, 1808,
+ 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1809,
+ 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+ 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
+ 1810, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
+ 1811, 1811, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
+ 1812, 1812, 1812, 1813, 1813, 1813, 1813, 1813, 1813, 1813,
+ 1813, 1813, 1813, 1813, 1814, 1814, 1814, 1814, 1814, 1814,
+ 1814, 1814, 1814, 1814, 1814, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1816, 1816, 1816, 1816,
+
+ 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1817, 1817, 1817,
+ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1819,
+ 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
+ 1821, 1821, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1823, 1823, 1823, 1823, 1823, 1823, 1823,
+ 1823, 1823, 1823, 1823, 1824, 1824, 1824, 1824, 1824, 1824,
+ 1824, 1824, 1824, 1824, 1824, 1825, 1825, 1825, 1825, 1825,
+
+ 1825, 1825, 1825, 1825, 1825, 1825, 1826, 1826, 1826, 1826,
+ 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1827, 1827, 1827,
+ 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1828, 1828,
+ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1829,
+ 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831,
+ 1831, 1831, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
+ 1832, 1832, 1832, 1833, 1833, 1833, 1833, 1833, 1833, 1833,
+ 1833, 1833, 1833, 1833, 1834, 1834, 1834, 1834, 1834, 1834,
+
+ 1834, 1834, 1834, 1834, 1834, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1836, 1836, 1836, 1836,
+ 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1837, 1837, 1837,
+ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1838, 1838,
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1839,
+ 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 450, 449, 448, 447, 446, 445, 444, 442,
+ 441, 440, 438, 437, 435, 434, 433, 432, 425, 424,
+
+ 423, 422, 421, 420, 419, 417, 415, 414, 413, 411,
+ 410, 407, 406, 404, 403, 402, 399, 396, 395, 394,
+ 393, 392, 391, 390, 389, 388, 387, 386, 384, 383,
+ 382, 381, 380, 379, 378, 377, 376, 375, 372, 371,
+ 370, 369, 368, 367, 366, 364, 363, 362, 361, 360,
+ 359, 358, 356, 355, 354, 353, 352, 351, 350, 349,
+ 348, 346, 345, 343, 342, 341, 340, 338, 337, 336,
+ 335, 334, 333, 332, 330, 325, 322, 320, 319, 318,
+ 317, 316, 315, 314, 311, 310, 309, 308, 307, 306,
+ 305, 304, 303, 302, 301, 300, 299, 297, 296, 295,
+
+ 293, 292, 290, 289, 288, 287, 286, 285, 284, 282,
+ 281, 280, 279, 277, 276, 271, 270, 264, 263, 262,
+ 261, 260, 259, 258, 257, 256, 255, 254, 250, 249,
+ 246, 234, 229, 226, 225, 223, 208, 207, 206, 205,
+ 204, 203, 202, 201, 200, 198, 195, 194, 193, 191,
+ 189, 188, 187, 186, 184, 183, 182, 181, 180, 178,
+ 176, 173, 172, 168, 167, 166, 161, 158, 154, 146,
+ 137, 136, 135, 134, 133, 132, 131, 129, 127, 116,
+ 114, 112, 111, 109, 108, 106, 105, 102, 101, 89,
+ 86, 85, 84, 78, 71, 70, 69, 65, 63, 62,
+
+ 61, 58, 50, 49, 48, 44, 37, 28, 24, 23,
+ 20, 19, 18, 17, 2, 1, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
+ 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421
} ;
static yy_state_type yy_last_accepting_state;
@@ -2699,7 +2707,7 @@ char *yytext;
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_scanner.l,v 1.131.2.11 2006/04/13 13:48:28 dmitry Exp $ */
+/* $Id: zend_language_scanner.l,v 1.131.2.11.2.10 2007/04/22 21:33:10 tony2001 Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -2745,6 +2753,7 @@ char *yytext;
#include "zend_operators.h"
#include "zend_API.h"
#include "zend_strtod.h"
+#include "zend_exceptions.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
@@ -2972,6 +2981,11 @@ int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
{
zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
+ /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
+ file_handle->opened_path = NULL;
+ if (file_handle->free_filename) {
+ file_handle->filename = NULL;
+ }
}
@@ -3226,7 +3240,11 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
efree(op_array);
retval = NULL;
} else {
+ zend_bool orig_interactive = CG(interactive);
+
+ CG(interactive) = 0;
init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+ CG(interactive) = orig_interactive;
CG(active_op_array) = op_array;
BEGIN(ST_IN_SCRIPTING);
compiler_result = zendparse(TSRMLS_C);
@@ -3713,13 +3731,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1411 )
+ if ( yy_current_state >= 1422 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 7599 );
+ while ( yy_base[yy_current_state] != 7617 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -4023,324 +4041,330 @@ YY_RULE_SETUP
case 46:
YY_RULE_SETUP
{
- return T_ARRAY_CAST;
+ return T_STRING_CAST;
}
YY_BREAK
case 47:
YY_RULE_SETUP
{
- return T_OBJECT_CAST;
+ return T_ARRAY_CAST;
}
YY_BREAK
case 48:
YY_RULE_SETUP
{
- return T_BOOL_CAST;
+ return T_OBJECT_CAST;
}
YY_BREAK
case 49:
YY_RULE_SETUP
{
- return T_UNSET_CAST;
+ return T_BOOL_CAST;
}
YY_BREAK
case 50:
YY_RULE_SETUP
{
- return T_EVAL;
+ return T_UNSET_CAST;
}
YY_BREAK
case 51:
YY_RULE_SETUP
{
- return T_INCLUDE;
+ return T_EVAL;
}
YY_BREAK
case 52:
YY_RULE_SETUP
{
- return T_INCLUDE_ONCE;
+ return T_INCLUDE;
}
YY_BREAK
case 53:
YY_RULE_SETUP
{
- return T_REQUIRE;
+ return T_INCLUDE_ONCE;
}
YY_BREAK
case 54:
YY_RULE_SETUP
{
- return T_REQUIRE_ONCE;
+ return T_REQUIRE;
}
YY_BREAK
case 55:
YY_RULE_SETUP
{
- return T_USE;
+ return T_REQUIRE_ONCE;
}
YY_BREAK
case 56:
YY_RULE_SETUP
{
- return T_GLOBAL;
+ return T_USE;
}
YY_BREAK
case 57:
YY_RULE_SETUP
{
- return T_ISSET;
+ return T_GLOBAL;
}
YY_BREAK
case 58:
YY_RULE_SETUP
{
- return T_EMPTY;
+ return T_ISSET;
}
YY_BREAK
case 59:
YY_RULE_SETUP
{
- return T_HALT_COMPILER;
+ return T_EMPTY;
}
YY_BREAK
case 60:
YY_RULE_SETUP
{
- return T_STATIC;
+ return T_HALT_COMPILER;
}
YY_BREAK
case 61:
YY_RULE_SETUP
{
- return T_ABSTRACT;
+ return T_STATIC;
}
YY_BREAK
case 62:
YY_RULE_SETUP
{
- return T_FINAL;
+ return T_ABSTRACT;
}
YY_BREAK
case 63:
YY_RULE_SETUP
{
- return T_PRIVATE;
+ return T_FINAL;
}
YY_BREAK
case 64:
YY_RULE_SETUP
{
- return T_PROTECTED;
+ return T_PRIVATE;
}
YY_BREAK
case 65:
YY_RULE_SETUP
{
- return T_PUBLIC;
+ return T_PROTECTED;
}
YY_BREAK
case 66:
YY_RULE_SETUP
{
- return T_UNSET;
+ return T_PUBLIC;
}
YY_BREAK
case 67:
YY_RULE_SETUP
{
- return T_DOUBLE_ARROW;
+ return T_UNSET;
}
YY_BREAK
case 68:
YY_RULE_SETUP
{
- return T_LIST;
+ return T_DOUBLE_ARROW;
}
YY_BREAK
case 69:
YY_RULE_SETUP
{
- return T_ARRAY;
+ return T_LIST;
}
YY_BREAK
case 70:
YY_RULE_SETUP
{
- return T_INC;
+ return T_ARRAY;
}
YY_BREAK
case 71:
YY_RULE_SETUP
{
- return T_DEC;
+ return T_INC;
}
YY_BREAK
case 72:
YY_RULE_SETUP
{
- return T_IS_IDENTICAL;
+ return T_DEC;
}
YY_BREAK
case 73:
YY_RULE_SETUP
{
- return T_IS_NOT_IDENTICAL;
+ return T_IS_IDENTICAL;
}
YY_BREAK
case 74:
YY_RULE_SETUP
{
- return T_IS_EQUAL;
+ return T_IS_NOT_IDENTICAL;
}
YY_BREAK
case 75:
YY_RULE_SETUP
{
- return T_IS_NOT_EQUAL;
+ return T_IS_EQUAL;
}
YY_BREAK
case 76:
YY_RULE_SETUP
{
- return T_IS_SMALLER_OR_EQUAL;
+ return T_IS_NOT_EQUAL;
}
YY_BREAK
case 77:
YY_RULE_SETUP
{
- return T_IS_GREATER_OR_EQUAL;
+ return T_IS_SMALLER_OR_EQUAL;
}
YY_BREAK
case 78:
YY_RULE_SETUP
{
- return T_PLUS_EQUAL;
+ return T_IS_GREATER_OR_EQUAL;
}
YY_BREAK
case 79:
YY_RULE_SETUP
{
- return T_MINUS_EQUAL;
+ return T_PLUS_EQUAL;
}
YY_BREAK
case 80:
YY_RULE_SETUP
{
- return T_MUL_EQUAL;
+ return T_MINUS_EQUAL;
}
YY_BREAK
case 81:
YY_RULE_SETUP
{
- return T_DIV_EQUAL;
+ return T_MUL_EQUAL;
}
YY_BREAK
case 82:
YY_RULE_SETUP
{
- return T_CONCAT_EQUAL;
+ return T_DIV_EQUAL;
}
YY_BREAK
case 83:
YY_RULE_SETUP
{
- return T_MOD_EQUAL;
+ return T_CONCAT_EQUAL;
}
YY_BREAK
case 84:
YY_RULE_SETUP
{
- return T_SL_EQUAL;
+ return T_MOD_EQUAL;
}
YY_BREAK
case 85:
YY_RULE_SETUP
{
- return T_SR_EQUAL;
+ return T_SL_EQUAL;
}
YY_BREAK
case 86:
YY_RULE_SETUP
{
- return T_AND_EQUAL;
+ return T_SR_EQUAL;
}
YY_BREAK
case 87:
YY_RULE_SETUP
{
- return T_OR_EQUAL;
+ return T_AND_EQUAL;
}
YY_BREAK
case 88:
YY_RULE_SETUP
{
- return T_XOR_EQUAL;
+ return T_OR_EQUAL;
}
YY_BREAK
case 89:
YY_RULE_SETUP
{
- return T_BOOLEAN_OR;
+ return T_XOR_EQUAL;
}
YY_BREAK
case 90:
YY_RULE_SETUP
{
- return T_BOOLEAN_AND;
+ return T_BOOLEAN_OR;
}
YY_BREAK
case 91:
YY_RULE_SETUP
{
- return T_LOGICAL_OR;
+ return T_BOOLEAN_AND;
}
YY_BREAK
case 92:
YY_RULE_SETUP
{
- return T_LOGICAL_AND;
+ return T_LOGICAL_OR;
}
YY_BREAK
case 93:
YY_RULE_SETUP
{
- return T_LOGICAL_XOR;
+ return T_LOGICAL_AND;
}
YY_BREAK
case 94:
YY_RULE_SETUP
{
- return T_SL;
+ return T_LOGICAL_XOR;
}
YY_BREAK
case 95:
YY_RULE_SETUP
{
- return T_SR;
+ return T_SL;
}
YY_BREAK
case 96:
YY_RULE_SETUP
{
- return yytext[0];
+ return T_SR;
}
YY_BREAK
case 97:
YY_RULE_SETUP
{
+ return yytext[0];
+}
+ YY_BREAK
+case 98:
+YY_RULE_SETUP
+{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
YY_BREAK
-case 98:
+case 99:
YY_RULE_SETUP
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
YY_BREAK
-case 99:
+case 100:
YY_RULE_SETUP
{
RESET_DOC_COMMENT();
@@ -4351,7 +4375,7 @@ YY_RULE_SETUP
return '}';
}
YY_BREAK
-case 100:
+case 101:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
@@ -4361,7 +4385,7 @@ YY_RULE_SETUP
return T_STRING_VARNAME;
}
YY_BREAK
-case 101:
+case 102:
YY_RULE_SETUP
{
yyless(0);
@@ -4369,45 +4393,54 @@ YY_RULE_SETUP
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
}
YY_BREAK
-case 102:
-YY_RULE_SETUP
-{
- errno = 0;
- zendlval->value.lval = strtol(yytext, NULL, 0);
- if (errno == ERANGE) { /* overflow */
- zendlval->value.dval = zend_strtod(yytext, NULL);
- zendlval->type = IS_DOUBLE;
- return T_DNUMBER;
- } else {
- zendlval->type = IS_LONG;
- return T_LNUMBER;
- }
-}
- YY_BREAK
case 103:
YY_RULE_SETUP
{
- errno = 0;
- zendlval->value.lval = strtoul(yytext, NULL, 16);
- if (errno == ERANGE) { /* overflow */
- /* not trying strtod - it returns trash on 0x-es */
- zendlval->value.lval = LONG_MAX; /* maximal long */
- zend_error(E_NOTICE,"Hex number is too big: %s", yytext);
+ if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+ zendlval->value.lval = strtol(yytext, NULL, 0);
} else {
- if (zendlval->value.lval < 0) {
- /* maintain consistency with the old way */
- zendlval->value.dval = (unsigned long) zendlval->value.lval;
+ errno = 0;
+ zendlval->value.lval = strtol(yytext, NULL, 0);
+ if (errno == ERANGE) { /* Overflow */
+ if (yytext[0] == '0') { /* octal overflow */
+ zendlval->value.dval = zend_oct_strtod(yytext, NULL);
+ } else {
+ zendlval->value.dval = zend_strtod(yytext, NULL);
+ }
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
- zendlval->type = IS_LONG;
}
+
zendlval->type = IS_LONG;
return T_LNUMBER;
}
YY_BREAK
case 104:
YY_RULE_SETUP
+{
+ char *hex = yytext + 2; /* Skip "0x" */
+ int len = yyleng - 2;
+
+ /* Skip any leading 0s */
+ while (*hex == '0') {
+ hex++;
+ len--;
+ }
+
+ if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
+ zendlval->value.lval = strtol(hex, NULL, 16);
+ zendlval->type = IS_LONG;
+ return T_LNUMBER;
+ } else {
+ zendlval->value.dval = zend_hex_strtod(hex, NULL);
+ zendlval->type = IS_DOUBLE;
+ return T_DNUMBER;
+ }
+}
+ YY_BREAK
+case 105:
+YY_RULE_SETUP
{ /* treat numbers (almost) as strings inside encapsulated strings */
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
@@ -4415,7 +4448,7 @@ YY_RULE_SETUP
return T_NUM_STRING;
}
YY_BREAK
-case 105:
+case 106:
YY_RULE_SETUP
{
zendlval->value.dval = zend_strtod(yytext, NULL);
@@ -4423,7 +4456,7 @@ YY_RULE_SETUP
return T_DNUMBER;
}
YY_BREAK
-case 106:
+case 107:
YY_RULE_SETUP
{
char *class_name = NULL;
@@ -4441,7 +4474,7 @@ YY_RULE_SETUP
return T_CLASS_C;
}
YY_BREAK
-case 107:
+case 108:
YY_RULE_SETUP
{
char *func_name = NULL;
@@ -4459,7 +4492,7 @@ YY_RULE_SETUP
return T_FUNC_C;
}
YY_BREAK
-case 108:
+case 109:
YY_RULE_SETUP
{
char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
@@ -4473,18 +4506,16 @@ YY_RULE_SETUP
len += strlen(func_name);
}
- zendlval->value.str.val = emalloc(len+1);
- zendlval->value.str.len = sprintf(zendlval->value.str.val, "%s%s%s",
+ zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
class_name ? class_name : "",
class_name && func_name ? "::" : "",
func_name ? func_name : ""
);
- zendlval->value.str.len = strlen(zendlval->value.str.val);
zendlval->type = IS_STRING;
return T_METHOD_C;
}
YY_BREAK
-case 109:
+case 110:
YY_RULE_SETUP
{
zendlval->value.lval = CG(zend_lineno);
@@ -4492,7 +4523,7 @@ YY_RULE_SETUP
return T_LINE;
}
YY_BREAK
-case 110:
+case 111:
YY_RULE_SETUP
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -4506,7 +4537,7 @@ YY_RULE_SETUP
return T_FILE;
}
YY_BREAK
-case 111:
+case 112:
YY_RULE_SETUP
{
#ifdef ZEND_MULTIBYTE
@@ -4529,7 +4560,7 @@ YY_RULE_SETUP
return T_INLINE_HTML;
}
YY_BREAK
-case 112:
+case 113:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
@@ -4547,7 +4578,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 113:
+case 114:
YY_RULE_SETUP
{
if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' && CG(short_tags))) {
@@ -4564,7 +4595,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 114:
+case 115:
YY_RULE_SETUP
{
if (CG(asp_tags)) {
@@ -4581,7 +4612,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 115:
+case 116:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -4592,7 +4623,7 @@ YY_RULE_SETUP
return T_OPEN_TAG;
}
YY_BREAK
-case 116:
+case 117:
YY_RULE_SETUP
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
@@ -4600,7 +4631,7 @@ YY_RULE_SETUP
return T_VARIABLE;
}
YY_BREAK
-case 117:
+case 118:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
@@ -4608,7 +4639,7 @@ YY_RULE_SETUP
return T_STRING;
}
YY_BREAK
-case 118:
+case 119:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
@@ -4616,7 +4647,7 @@ YY_RULE_SETUP
return T_STRING;
}
YY_BREAK
-case 119:
+case 120:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -4626,20 +4657,20 @@ YY_RULE_SETUP
return T_WHITESPACE;
}
YY_BREAK
-case 120:
+case 121:
YY_RULE_SETUP
{
BEGIN(ST_ONE_LINE_COMMENT);
yymore();
}
YY_BREAK
-case 121:
+case 122:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
-case 122:
+case 123:
YY_RULE_SETUP
{
switch (yytext[yyleng-1]) {
@@ -4659,7 +4690,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 123:
+case 124:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -4670,7 +4701,7 @@ YY_RULE_SETUP
return T_COMMENT;
}
YY_BREAK
-case 124:
+case 125:
YY_RULE_SETUP
{
if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
@@ -4685,7 +4716,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 125:
+case 126:
YY_RULE_SETUP
{
CG(comment_start_line) = CG(zend_lineno);
@@ -4694,7 +4725,7 @@ YY_RULE_SETUP
yymore();
}
YY_BREAK
-case 126:
+case 127:
YY_RULE_SETUP
{
CG(comment_start_line) = CG(zend_lineno);
@@ -4702,13 +4733,13 @@ YY_RULE_SETUP
yymore();
}
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
-case 128:
+case 129:
YY_RULE_SETUP
{
CG(doc_comment) = estrndup(yytext, yyleng);
@@ -4718,7 +4749,7 @@ YY_RULE_SETUP
return T_DOC_COMMENT;
}
YY_BREAK
-case 129:
+case 130:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
@@ -4726,13 +4757,13 @@ YY_RULE_SETUP
return T_COMMENT;
}
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -4742,7 +4773,7 @@ YY_RULE_SETUP
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
{
if (CG(asp_tags)) {
@@ -4757,14 +4788,15 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
{
register char *s, *t;
char *end;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
- zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
- zendlval->value.str.len = yyleng-2;
+ zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
+ zendlval->value.str.len = yyleng-bprefix-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
@@ -4848,14 +4880,15 @@ YY_RULE_SETUP
return T_CONSTANT_ENCAPSED_STRING;
}
YY_BREAK
-case 134:
+case 135:
YY_RULE_SETUP
{
register char *s, *t;
char *end;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
- zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
- zendlval->value.str.len = yyleng-2;
+ zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
+ zendlval->value.str.len = yyleng-bprefix-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
@@ -4897,20 +4930,22 @@ YY_RULE_SETUP
return T_CONSTANT_ENCAPSED_STRING;
}
YY_BREAK
-case 135:
+case 136:
YY_RULE_SETUP
{
BEGIN(ST_DOUBLE_QUOTES);
return '\"';
}
YY_BREAK
-case 136:
+case 137:
YY_RULE_SETUP
{
char *s;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
+
CG(zend_lineno)++;
- CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0);
- s = yytext+3;
+ CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+ s = yytext+bprefix+3;
while ((*s == ' ') || (*s == '\t')) {
s++;
CG(heredoc_len)--;
@@ -4920,21 +4955,21 @@ YY_RULE_SETUP
return T_START_HEREDOC;
}
YY_BREAK
-case 137:
+case 138:
YY_RULE_SETUP
{
BEGIN(ST_BACKQUOTE);
return '`';
}
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
{
BEGIN(ST_SINGLE_QUOTE);
return '\'';
}
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
{
int label_len;
@@ -4966,7 +5001,7 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
@@ -4976,7 +5011,7 @@ YY_RULE_SETUP
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
@@ -4985,7 +5020,7 @@ YY_RULE_SETUP
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
-case 142:
+case 143:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
@@ -4993,7 +5028,7 @@ YY_RULE_SETUP
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
-case 143:
+case 144:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
@@ -5001,7 +5036,7 @@ YY_RULE_SETUP
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
-case 144:
+case 145:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
@@ -5011,14 +5046,14 @@ YY_RULE_SETUP
return T_CHARACTER;
}
YY_BREAK
-case 145:
+case 146:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
return yytext[0];
}
YY_BREAK
-case 146:
+case 147:
YY_RULE_SETUP
{
zendlval->value.str.val = estrndup("\\{", sizeof("\\{") - 1);
@@ -5027,7 +5062,7 @@ YY_RULE_SETUP
return T_STRING;
}
YY_BREAK
-case 147:
+case 148:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
@@ -5036,49 +5071,49 @@ YY_RULE_SETUP
return T_CURLY_OPEN;
}
YY_BREAK
-case 148:
+case 149:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '\'';
return T_CHARACTER;
}
YY_BREAK
-case 149:
+case 150:
YY_RULE_SETUP
{
zendlval->value.lval = (long)'\\';
return T_CHARACTER;
}
YY_BREAK
-case 150:
+case 151:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '"';
return T_CHARACTER;
}
YY_BREAK
-case 151:
+case 152:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '`';
return T_CHARACTER;
}
YY_BREAK
-case 152:
+case 153:
YY_RULE_SETUP
{
zendlval->value.lval = strtol(yytext+1, NULL, 8);
return T_CHARACTER;
}
YY_BREAK
-case 153:
+case 154:
YY_RULE_SETUP
{
zendlval->value.lval = strtol (yytext+2, NULL, 16);
return T_CHARACTER;
}
YY_BREAK
-case 154:
+case 155:
YY_RULE_SETUP
{
switch (yytext[1]) {
@@ -5107,7 +5142,7 @@ YY_RULE_SETUP
return T_CHARACTER;
}
YY_BREAK
-case 155:
+case 156:
YY_RULE_SETUP
{
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
@@ -5116,21 +5151,21 @@ YY_RULE_SETUP
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
-case 156:
+case 157:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
return '\"';
}
YY_BREAK
-case 157:
+case 158:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
YY_BREAK
-case 158:
+case 159:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
@@ -5153,13 +5188,13 @@ case YY_STATE_EOF(ST_DOC_COMMENT):
return 0;
}
YY_BREAK
-case 159:
+case 160:
YY_RULE_SETUP
{
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
}
YY_BREAK
-case 160:
+case 161:
YY_RULE_SETUP
ECHO;
YY_BREAK
@@ -5457,7 +5492,7 @@ static yy_state_type yy_get_previous_state(TSRMLS_D)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1411 )
+ if ( yy_current_state >= 1422 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -5495,11 +5530,11 @@ void ***tsrm_ls;
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1411 )
+ if ( yy_current_state >= 1422 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1410);
+ yy_is_jam = (yy_current_state == 1421);
return yy_is_jam ? 0 : yy_current_state;
}
diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h
index 2e1159497..e8ce560fc 100644
--- a/Zend/zend_language_scanner.h
+++ b/Zend/zend_language_scanner.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_scanner.h,v 1.19.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_language_scanner.h,v 1.19.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_SCANNER_H
#define ZEND_SCANNER_H
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 52465eb6b..26a8ebeb3 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_scanner.l,v 1.131.2.11 2006/04/13 13:48:28 dmitry Exp $ */
+/* $Id: zend_language_scanner.l,v 1.131.2.11.2.10 2007/04/22 21:33:10 tony2001 Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -59,6 +59,7 @@
#include "zend_operators.h"
#include "zend_API.h"
#include "zend_strtod.h"
+#include "zend_exceptions.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
@@ -286,6 +287,11 @@ int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
{
zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
+ /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
+ file_handle->opened_path = NULL;
+ if (file_handle->free_filename) {
+ file_handle->filename = NULL;
+ }
}
@@ -540,7 +546,11 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
efree(op_array);
retval = NULL;
} else {
+ zend_bool orig_interactive = CG(interactive);
+
+ CG(interactive) = 0;
init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+ CG(interactive) = orig_interactive;
CG(active_op_array) = op_array;
BEGIN(ST_IN_SCRIPTING);
compiler_result = zendparse(TSRMLS_C);
@@ -983,6 +993,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_STRING_CAST;
}
+<ST_IN_SCRIPTING>"("{TABS_AND_SPACES}"binary"{TABS_AND_SPACES}")" {
+ return T_STRING_CAST;
+}
+
<ST_IN_SCRIPTING>"("{TABS_AND_SPACES}"array"{TABS_AND_SPACES}")" {
return T_ARRAY_CAST;
}
@@ -1227,38 +1241,47 @@ NEWLINE ("\r"|"\n"|"\r\n")
<ST_IN_SCRIPTING>{LNUM} {
- errno = 0;
- zendlval->value.lval = strtol(yytext, NULL, 0);
- if (errno == ERANGE) { /* overflow */
- zendlval->value.dval = zend_strtod(yytext, NULL);
- zendlval->type = IS_DOUBLE;
- return T_DNUMBER;
+ if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+ zendlval->value.lval = strtol(yytext, NULL, 0);
} else {
- zendlval->type = IS_LONG;
- return T_LNUMBER;
- }
-}
-
-<ST_IN_SCRIPTING>{HNUM} {
- errno = 0;
- zendlval->value.lval = strtoul(yytext, NULL, 16);
- if (errno == ERANGE) { /* overflow */
- /* not trying strtod - it returns trash on 0x-es */
- zendlval->value.lval = LONG_MAX; /* maximal long */
- zend_error(E_NOTICE,"Hex number is too big: %s", yytext);
- } else {
- if (zendlval->value.lval < 0) {
- /* maintain consistency with the old way */
- zendlval->value.dval = (unsigned long) zendlval->value.lval;
+ errno = 0;
+ zendlval->value.lval = strtol(yytext, NULL, 0);
+ if (errno == ERANGE) { /* Overflow */
+ if (yytext[0] == '0') { /* octal overflow */
+ zendlval->value.dval = zend_oct_strtod(yytext, NULL);
+ } else {
+ zendlval->value.dval = zend_strtod(yytext, NULL);
+ }
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
- zendlval->type = IS_LONG;
}
+
zendlval->type = IS_LONG;
return T_LNUMBER;
}
+<ST_IN_SCRIPTING>{HNUM} {
+ char *hex = yytext + 2; /* Skip "0x" */
+ int len = yyleng - 2;
+
+ /* Skip any leading 0s */
+ while (*hex == '0') {
+ hex++;
+ len--;
+ }
+
+ if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
+ zendlval->value.lval = strtol(hex, NULL, 16);
+ zendlval->type = IS_LONG;
+ return T_LNUMBER;
+ } else {
+ zendlval->value.dval = zend_hex_strtod(hex, NULL);
+ zendlval->type = IS_DOUBLE;
+ return T_DNUMBER;
+ }
+}
+
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{LNUM}|{HNUM} { /* treat numbers (almost) as strings inside encapsulated strings */
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
@@ -1316,13 +1339,11 @@ NEWLINE ("\r"|"\n"|"\r\n")
len += strlen(func_name);
}
- zendlval->value.str.val = emalloc(len+1);
- zendlval->value.str.len = sprintf(zendlval->value.str.val, "%s%s%s",
+ zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
class_name ? class_name : "",
class_name && func_name ? "::" : "",
func_name ? func_name : ""
);
- zendlval->value.str.len = strlen(zendlval->value.str.val);
zendlval->type = IS_STRING;
return T_METHOD_C;
}
@@ -1560,12 +1581,13 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_IN_SCRIPTING>(["]([^$"\\]|("\\".))*["]) {
+<ST_IN_SCRIPTING>("b"?["]([^$"\\]|("\\".))*["]) {
register char *s, *t;
char *end;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
- zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
- zendlval->value.str.len = yyleng-2;
+ zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
+ zendlval->value.str.len = yyleng-bprefix-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
@@ -1650,12 +1672,13 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_IN_SCRIPTING>([']([^'\\]|("\\".))*[']) {
+<ST_IN_SCRIPTING>("b"?[']([^'\\]|("\\".))*[']) {
register char *s, *t;
char *end;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
- zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
- zendlval->value.str.len = yyleng-2;
+ zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
+ zendlval->value.str.len = yyleng-bprefix-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
@@ -1698,17 +1721,19 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_IN_SCRIPTING>["] {
+<ST_IN_SCRIPTING>b?["] {
BEGIN(ST_DOUBLE_QUOTES);
return '\"';
}
-<ST_IN_SCRIPTING>"<<<"{TABS_AND_SPACES}{LABEL}{NEWLINE} {
+<ST_IN_SCRIPTING>"b"?"<<<"{TABS_AND_SPACES}{LABEL}{NEWLINE} {
char *s;
+ int bprefix = (*yytext == 'b') ? 1 : 0;
+
CG(zend_lineno)++;
- CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0);
- s = yytext+3;
+ CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+ s = yytext+bprefix+3;
while ((*s == ' ') || (*s == '\t')) {
s++;
CG(heredoc_len)--;
@@ -1725,7 +1750,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_IN_SCRIPTING>['] {
+<ST_IN_SCRIPTING>b?['] {
BEGIN(ST_SINGLE_QUOTE);
return '\'';
}
diff --git a/Zend/zend_list.c b/Zend/zend_list.c
index d247551c8..805b14ea3 100644
--- a/Zend/zend_list.c
+++ b/Zend/zend_list.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_list.c,v 1.66.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_list.c,v 1.66.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
/* resource lists */
diff --git a/Zend/zend_list.h b/Zend/zend_list.h
index b44c518dd..176c7dcdb 100644
--- a/Zend/zend_list.h
+++ b/Zend/zend_list.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_list.h,v 1.48.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_list.h,v 1.48.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_LIST_H
#define ZEND_LIST_H
diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c
index 6991c0eb0..8e4f5a8d0 100644
--- a/Zend/zend_llist.c
+++ b/Zend/zend_llist.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_llist.c,v 1.35.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_llist.c,v 1.35.2.1.2.2 2007/02/16 08:33:28 dmitry Exp $ */
#include "zend.h"
#include "zend_llist.h"
@@ -134,13 +134,15 @@ ZEND_API void *zend_llist_remove_tail(zend_llist *l)
void *data;
if ((old_tail = l->tail)) {
- if (l->tail->prev) {
- l->tail->prev->next = NULL;
+ if (old_tail->prev) {
+ old_tail->prev->next = NULL;
+ } else {
+ l->head = NULL;
}
data = old_tail->data;
- l->tail = l->tail->prev;
+ l->tail = old_tail->prev;
if (l->dtor) {
l->dtor(data);
}
diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h
index b6addc9e4..7854297e8 100644
--- a/Zend/zend_llist.h
+++ b/Zend/zend_llist.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_llist.h,v 1.33.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_llist.h,v 1.33.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_LLIST_H
#define ZEND_LLIST_H
diff --git a/Zend/zend_mm.c b/Zend/zend_mm.c
deleted file mode 100644
index 562e6c8d1..000000000
--- a/Zend/zend_mm.c
+++ /dev/null
@@ -1,475 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | Zend Engine |
- +----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
- +----------------------------------------------------------------------+
- | 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 |
- | available through the world-wide-web at the following url: |
- | http://www.zend.com/license/2_00.txt. |
- | If you did not receive a copy of the Zend license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@zend.com so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Andi Gutmans <andi@zend.com> |
- | Zeev Suraski <zeev@zend.com> |
- +----------------------------------------------------------------------+
-*/
-
-/* $Id: zend_mm.c,v 1.31.2.1.2.1 2006/07/18 09:06:33 dmitry Exp $ */
-#if 0
-#include "zend.h"
-#include "zend_mm.h"
-
-#if WIN32|WINNT
-# ifndef inline
-# define inline __inline
-# endif
-#endif
-
-#define ZEND_MM_FREE_BLOCK 0
-#define ZEND_MM_USED_BLOCK 1
-
-#ifndef MAX
-#define MAX(a, b) (((a)>(b))?(a):(b))
-#endif
-
-#ifndef ZEND_MM_ALIGNMENT
-#define ZEND_MM_ALIGNMENT 8
-#define ZEND_MM_ALIGNMENT_LOG2 3
-#endif
-
-#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1)
-
-#define ZEND_MM_BUCKET_INDEX(true_size) (true_size >> ZEND_MM_ALIGNMENT_LOG2)
-
-/* Aligned header size */
-#define ZEND_MM_ALIGNED_SIZE(size) ((size + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK)
-#define ZEND_MM_ALIGNED_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block))
-#define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_free_block))
-#define ZEND_MM_ALIGNED_SEGMENT_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_segment))
-
-/* Memory calculations */
-#define ZEND_MM_BLOCK_AT(blk, offset) ((zend_mm_block *) (((char *) (blk))+(offset)))
-#define ZEND_MM_DATA_OF(p) ((void *) (((char *) (p))+ZEND_MM_ALIGNED_HEADER_SIZE))
-#define ZEND_MM_HEADER_OF(blk) ZEND_MM_BLOCK_AT(blk, -(int)ZEND_MM_ALIGNED_HEADER_SIZE)
-
-/* Debug output */
-#define ZEND_MM_DEBUG(stmt)
-
-
-/* Start Heap Code */
-
-static int left_child[ZEND_HEAP_MAX_BUCKETS];
-static int left_child_of_right_brother[ZEND_HEAP_MAX_BUCKETS];
-
-static inline void zend_heap_init(zend_heap heap)
-{
- int i;
-
- for (i=0; i<ZEND_HEAP_MAX_BUCKETS; i++) {
- left_child[i] = 2*i+1;
- left_child_of_right_brother[i] = 2*i+3;
- }
-
- memset(heap, 0, sizeof(zend_heap));
-}
-
-static inline void zend_heap_activate_leaf(zend_heap heap, int node)
-{
- int i = node + ZEND_HEAP_MAX_BUCKETS-1;
-
- heap[i] = node;
-
- do {
- i = (i-1)>>1; /* (i-1)/2 */
- if (heap[i] < node) {
- heap[i] = node;
- } else {
- break;
- }
- } while (i > 0);
-}
-
-static inline void zend_heap_deactivate_leaf(zend_heap heap, int node)
-{
- int i = node + ZEND_HEAP_MAX_BUCKETS-1;
-
- heap[i] = 0;
-
- do {
- i = (i-1)>>1; /* (i-1)/2 */
- if (heap[i] == node) {
- heap[i] = MAX(heap[2*i+1], heap[2*i+2]);
- } else {
- break;
- }
- } while (i > 0);
-}
-
-static inline int zend_heap_search_leaf(zend_heap heap, int value)
-{
- int i = 1;
-
- if (heap[0] < value) {
- return 0;
- }
-
-
- while (i < ZEND_HEAP_MAX_BUCKETS) {
- if (heap[i] >= value) {
- /* Go to left child */
- i = left_child[i];
- } else {
- /* Go to left child of right brother */
- i = left_child_of_right_brother[i];
- }
- }
- if (heap[i] >= value) {
- return heap[i];
- } else {
- return heap[i+1];
- }
-}
-
-/* End Heap Code */
-
-static inline void zend_mm_add_to_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
-{
- zend_mm_free_block **free_list_bucket;
- size_t index = ZEND_MM_BUCKET_INDEX(mm_block->size);
-
- if (index < ZEND_MM_NUM_BUCKETS) {
- free_list_bucket = &heap->free_buckets[index];
- if (*free_list_bucket == NULL) {
- zend_heap_activate_leaf(heap->heap, index);
- }
- } else {
- free_list_bucket = &heap->free_buckets[0];
- }
- mm_block->next_free_block = *free_list_bucket;
- if (*free_list_bucket != NULL) {
- mm_block->next_free_block->prev_free_block = mm_block;
- }
- *free_list_bucket = mm_block;
- mm_block->prev_free_block = NULL;
-}
-
-
-static inline void zend_mm_remove_from_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
-{
- if (mm_block->prev_free_block) {
- mm_block->prev_free_block->next_free_block = mm_block->next_free_block;
- } else {
- zend_mm_free_block **free_list_bucket;
- size_t index = ZEND_MM_BUCKET_INDEX(mm_block->size);
-
- if (index < ZEND_MM_NUM_BUCKETS) {
- free_list_bucket = &heap->free_buckets[index];
- *free_list_bucket = mm_block->next_free_block;
- if (*free_list_bucket == NULL) {
- zend_heap_deactivate_leaf(heap->heap, index);
- }
- } else {
- free_list_bucket = &heap->free_buckets[0];
- *free_list_bucket = mm_block->next_free_block;
- }
- }
-
- if (mm_block->next_free_block) {
- mm_block->next_free_block->prev_free_block = mm_block->prev_free_block;
- }
-}
-
-static inline void zend_mm_create_new_free_block(zend_mm_heap *heap, zend_mm_block *mm_block, size_t true_size)
-{
- int remaining_size;
- zend_mm_free_block *new_free_block;
-
- /* calculate sizes */
- remaining_size = mm_block->size - true_size;
-
- if (remaining_size < ZEND_MM_ALIGNED_FREE_HEADER_SIZE) {
- /* keep best_fit->size as is, it'll include this extra space */
- return;
- }
-
- /* prepare new free block */
- mm_block->size = true_size;
- new_free_block = (zend_mm_free_block *) ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
-
- new_free_block->type = ZEND_MM_FREE_BLOCK;
- new_free_block->size = remaining_size;
- new_free_block->prev_size = true_size;
-
- /* update the next block's prev_size */
- ZEND_MM_BLOCK_AT(new_free_block, new_free_block->size)->prev_size = new_free_block->size;
-
- /* add the new free block to the free list */
- zend_mm_add_to_free_list(heap, new_free_block);
-}
-
-zend_bool zend_mm_add_memory_block(zend_mm_heap *heap, size_t block_size)
-{
- /* We need to make sure that block_size is big enough for the minimum segment size */
- zend_mm_free_block *mm_block;
- zend_mm_block *guard_block;
- zend_mm_segment *segment;
-
- /* align block size downwards */
- block_size = block_size & ZEND_MM_ALIGNMENT_MASK;
-
- segment = (zend_mm_segment *) malloc(block_size);
- if (!segment) {
- return 1;
- }
-/* fprintf(stderr, "Allocating segment %X\n", segment); */
- segment->next_segment = heap->segments_list;
- heap->segments_list = segment;
-
- block_size -= ZEND_MM_ALIGNED_SEGMENT_SIZE;
- mm_block = (zend_mm_free_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
-
- mm_block->size = block_size - ZEND_MM_ALIGNED_HEADER_SIZE; /* keep one guard block in the end */
- mm_block->type = ZEND_MM_FREE_BLOCK;
- mm_block->prev_size = 0; /* Size is always at least ZEND_MM_ALIGNED_HEADER_SIZE big (>0) so 0 is OK */
-
- /* setup guard block */
- guard_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
- guard_block->type = ZEND_MM_USED_BLOCK;
- guard_block->size = ZEND_MM_ALIGNED_HEADER_SIZE;
- guard_block->guard_block = 1;
- guard_block->prev_size = mm_block->size;
- ZEND_MM_DEBUG(("Setup guard block at 0x%0.8X\n", guard_block));
-
- zend_mm_add_to_free_list(heap, mm_block);
-
- return 0;
-}
-
-/* Notes:
- * - This function may alter the block_sizes values to match platform alignment
- * - This function does *not* perform sanity checks on the arguments
- */
-zend_bool zend_mm_startup(zend_mm_heap *heap, size_t block_size)
-{
- heap->block_size = block_size;
- heap->segments_list = NULL;
- memset(heap->free_buckets, 0, sizeof(heap->free_buckets));
- zend_heap_init(heap->heap);
- return zend_mm_add_memory_block(heap, block_size);
-}
-
-
-void zend_mm_shutdown(zend_mm_heap *heap)
-{
- zend_mm_segment *segment = heap->segments_list;
- zend_mm_segment *prev;
-
- while (segment) {
- prev = segment;
- segment = segment->next_segment;
-/* fprintf(stderr, "Freeing segment %X\n", prev);*/
- free(prev);
- }
- heap->segments_list = NULL;
-}
-
-void *zend_mm_alloc(zend_mm_heap *heap, size_t size)
-{
- size_t true_size;
- zend_mm_free_block *p, *best_fit=NULL;
- zend_mm_free_block **free_list_bucket;
- size_t index;
-
- /* The max() can probably be optimized with an if () which checks more specific cases */
- true_size = MAX(ZEND_MM_ALIGNED_SIZE(size)+ZEND_MM_ALIGNED_HEADER_SIZE, ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
-
- index = ZEND_MM_BUCKET_INDEX(true_size);
-
- if (index < ZEND_MM_NUM_BUCKETS) {
- free_list_bucket = &heap->free_buckets[index];
- if (*free_list_bucket) {
- best_fit = *free_list_bucket;
- goto zend_mm_finished_searching_for_block;
- } else {
- int leaf;
-
- leaf = zend_heap_search_leaf(heap->heap, index);
- if (leaf != 0) {
- best_fit = heap->free_buckets[leaf];
- goto zend_mm_finished_searching_for_block;
- }
- }
- }
-
- for (p = heap->free_buckets[0]; p; p = p->next_free_block) {
- if (p->size == true_size) {
- best_fit = p;
- break;
- }
- if ((p->size > true_size) && (!best_fit || (best_fit->size > p->size))) { /* better fit */
- best_fit = p;
- }
- }
-
-zend_mm_finished_searching_for_block:
- if (!best_fit) {
- if (true_size > (heap->block_size - ZEND_MM_ALIGNED_SEGMENT_SIZE - ZEND_MM_ALIGNED_HEADER_SIZE)) {
- /* Make sure we add a memory block which is big enough */
- if (zend_mm_add_memory_block(heap, true_size + ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE)) {
- zend_error(E_ERROR, "Out of memory: cannot allocate %zd bytes!", true_size);
- return NULL;
- }
- } else {
- if (zend_mm_add_memory_block(heap, heap->block_size)) {
- zend_error(E_ERROR, "Out of memory: cannot allocate %zd bytes!", heap->block_size);
- return NULL;
- }
- }
- return zend_mm_alloc(heap, size);
- }
-
- /* mark as used */
- best_fit->type = ZEND_MM_USED_BLOCK;
- ((zend_mm_block *) best_fit)->guard_block = 0;
-
- /* remove from free list */
- zend_mm_remove_from_free_list(heap, best_fit);
-
- zend_mm_create_new_free_block(heap, (zend_mm_block *) best_fit, true_size);
-
- return ZEND_MM_DATA_OF(best_fit);
-}
-
-
-void zend_mm_free(zend_mm_heap *heap, void *p)
-{
- zend_mm_block *mm_block = ZEND_MM_HEADER_OF(p);
- zend_mm_block *prev_block, *next_block;
-
- if (mm_block->type != ZEND_MM_USED_BLOCK) {
- /* error */
- return;
- }
-
- next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
-
- /* merge with previous block if empty */
- if (mm_block->prev_size != 0
- && (prev_block=ZEND_MM_BLOCK_AT(mm_block, -(int)mm_block->prev_size))->type == ZEND_MM_FREE_BLOCK) {
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
- prev_block->size += mm_block->size;
- mm_block = prev_block;
- next_block->prev_size = mm_block->size;
- }
-
- /* merge with the next block if empty */
- if (next_block->type == ZEND_MM_FREE_BLOCK) {
- mm_block->size += next_block->size;
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
- next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size); /* recalculate */
- next_block->prev_size = mm_block->size;
- }
-
- mm_block->type = ZEND_MM_FREE_BLOCK;
- zend_mm_add_to_free_list(heap, (zend_mm_free_block *) mm_block);
-}
-
-void *zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size)
-{
- zend_mm_block *mm_block = ZEND_MM_HEADER_OF(p);
- zend_mm_block *next_block;
- size_t true_size = MAX(ZEND_MM_ALIGNED_SIZE(size)+ZEND_MM_ALIGNED_HEADER_SIZE, ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
-
- next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
-
- if (true_size <= mm_block->size) {
- zend_mm_create_new_free_block(heap, mm_block, true_size);
-
- if (next_block->type == ZEND_MM_FREE_BLOCK) {
- zend_mm_block *new_next_block;
-
- new_next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
- if (new_next_block != next_block) { /* A new free block was created */
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) new_next_block);
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
- new_next_block->size += next_block->size;
- /* update the next block's prev_size */
- ZEND_MM_BLOCK_AT(new_next_block, new_next_block->size)->prev_size = new_next_block->size;
- zend_mm_add_to_free_list(heap, (zend_mm_free_block *) new_next_block);
- }
- }
- return p;
- }
-
- if ((mm_block->prev_size == 0) && (next_block->type == ZEND_MM_USED_BLOCK) &&
- (next_block->guard_block)) {
- zend_mm_segment *segment = (zend_mm_segment *) ((char *)mm_block - ZEND_MM_ALIGNED_SEGMENT_SIZE);
- zend_mm_segment *segment_copy = segment;
- zend_mm_block *guard_block;
- size_t realloc_to_size;
-
- /* segment size, size of block and size of guard block */
- realloc_to_size = ZEND_MM_ALIGNED_SEGMENT_SIZE+true_size+ZEND_MM_ALIGNED_HEADER_SIZE;
- segment = realloc(segment, realloc_to_size);
- if (!segment) {
- return NULL;
- }
-
- if (segment != segment_copy) {
- if (heap->segments_list == segment_copy) {
- heap->segments_list = segment;
- } else {
- zend_mm_segment *seg = heap->segments_list;
-
- while (seg) {
- if (seg->next_segment == segment_copy) {
- seg->next_segment = segment;
- break;
- }
- seg = seg->next_segment;
- }
- }
- mm_block = (zend_mm_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
- }
-
- mm_block->size = true_size;
-
- /* setup guard block */
- guard_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
- guard_block->type = ZEND_MM_USED_BLOCK;
- guard_block->size = ZEND_MM_ALIGNED_HEADER_SIZE;
- guard_block->guard_block = 1;
- guard_block->prev_size = mm_block->size;
-
- return ZEND_MM_DATA_OF(mm_block);
- }
-
- if (next_block->type != ZEND_MM_FREE_BLOCK || (mm_block->size + next_block->size < true_size)) {
- void *ptr;
-
- ptr = zend_mm_alloc(heap, size);
- memcpy(ptr, p, mm_block->size - ZEND_MM_ALIGNED_HEADER_SIZE);
- zend_mm_free(heap, p);
- return ptr;
- }
-
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
- mm_block->size += next_block->size;
- /* update the next block's prev_size */
- ZEND_MM_BLOCK_AT(mm_block, mm_block->size)->prev_size = mm_block->size;
-
- zend_mm_create_new_free_block(heap, mm_block, true_size);
-
- return p;
-}
-#endif
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * indent-tabs-mode: t
- * End:
- */
diff --git a/Zend/zend_mm.h b/Zend/zend_mm.h
deleted file mode 100644
index 6403807df..000000000
--- a/Zend/zend_mm.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | Zend Engine |
- +----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
- +----------------------------------------------------------------------+
- | 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 |
- | available through the world-wide-web at the following url: |
- | http://www.zend.com/license/2_00.txt. |
- | If you did not receive a copy of the Zend license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@zend.com so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Andi Gutmans <andi@zend.com> |
- | Zeev Suraski <zeev@zend.com> |
- +----------------------------------------------------------------------+
-*/
-
-/* $Id: zend_mm.h,v 1.19.2.1.2.1 2006/07/18 09:06:33 dmitry Exp $ */
-#if 0
-#ifndef _ZEND_MM_H
-#define _ZEND_MM_H
-
-#include <sys/types.h>
-
-#include "zend.h"
-#include "zend_types.h"
-
-
-#ifdef ZEND_WIN32
-#undef ZEND_MM
-#else
-/* #define ZEND_MM */
-#undef ZEND_MM
-#endif
-
-/* mm block type */
-typedef struct _zend_mm_block {
- unsigned int size : 31;
- unsigned int type : 1;
- size_t prev_size;
- unsigned int guard_block : 1;
-} zend_mm_block;
-
-typedef struct _zend_mm_free_block {
- unsigned int size : 31;
- unsigned int type : 1;
- size_t prev_size;
- struct _zend_mm_free_block *prev_free_block;
- struct _zend_mm_free_block *next_free_block;
-} zend_mm_free_block;
-
-typedef struct _zend_mm_segment {
- struct _zend_mm_segment *next_segment;
-} zend_mm_segment;
-
-#define ZEND_MM_NUM_BUCKETS 16
-
-#define ZEND_HEAP_MAX_BUCKETS ZEND_MM_NUM_BUCKETS
-
-typedef int zend_heap[2*ZEND_HEAP_MAX_BUCKETS-1];
-
-typedef struct _zend_mm_heap {
- zend_mm_segment *segments_list;
- size_t block_size;
- zend_mm_free_block *free_buckets[ZEND_MM_NUM_BUCKETS];
- zend_heap heap;
-} zend_mm_heap;
-
-zend_bool zend_mm_startup(zend_mm_heap *heap, size_t block_size);
-void zend_mm_shutdown(zend_mm_heap *heap);
-void *zend_mm_alloc(zend_mm_heap *heap, size_t size);
-void zend_mm_free(zend_mm_heap *heap, void *p);
-void *zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size);
-
-#endif /* _ZEND_MM_H */
-#endif
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * indent-tabs-mode: t
- * End:
- */
diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h
index 3532fe2c3..8531c9676 100644
--- a/Zend/zend_modules.h
+++ b/Zend/zend_modules.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_modules.h,v 1.67.2.3.2.3 2006/06/22 21:24:23 tony2001 Exp $ */
+/* $Id: zend_modules.h,v 1.67.2.3.2.4 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef MODULES_H
#define MODULES_H
diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c
index c3833322b..e5114797e 100644
--- a/Zend/zend_multibyte.c
+++ b/Zend/zend_multibyte.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_multibyte.c,v 1.4.2.4 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_multibyte.c,v 1.4.2.4.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#include "zend.h"
#include "zend_compile.h"
diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h
index 319a6f088..57cbbe7cd 100644
--- a/Zend/zend_multibyte.h
+++ b/Zend/zend_multibyte.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_multibyte.h,v 1.3.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_multibyte.h,v 1.3.2.3.2.1 2007/01/01 09:35:46 sebastian Exp $ */
#ifndef ZEND_MULTIBYTE_H
#define ZEND_MULTIBYTE_H
diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h
index 6bae3c70a..1a4d1553b 100644
--- a/Zend/zend_multiply.h
+++ b/Zend/zend_multiply.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_multiply.h,v 1.10.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_multiply.h,v 1.10.2.1.2.2 2007/04/10 10:57:35 sniper Exp $ */
#if defined(__i386__) && defined(__GNUC__)
@@ -35,8 +35,8 @@
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
long __lres = (a) * (b); \
- double __dres = (double)(a) * (double)(b); \
- double __delta = (double) __lres - __dres; \
+ long double __dres = (long double)(a) * (long double)(b); \
+ long double __delta = (long double) __lres - __dres; \
if ( ((usedval) = (( __dres + __delta ) != __dres))) { \
(dval) = __dres; \
} else { \
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 765403381..68c7e122b 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_object_handlers.c,v 1.135.2.6.2.15 2006/09/12 11:01:16 dmitry Exp $ */
+/* $Id: zend_object_handlers.c,v 1.135.2.6.2.20 2007/03/23 17:16:55 stas Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -42,8 +42,8 @@
set, we call __set handler. If it fails, we do not change the array.
for both handlers above, when we are inside __get/__set, no further calls for
- __get/__set for these objects will be made, to prevent endless recursion and
- enable accessors to change properties array.
+ __get/__set for this property of this object will be made, to prevent endless
+ recursion and enable accessors to change properties array.
if we have __call and method which is not part of the class function table is
called, we cal __call handler.
@@ -334,14 +334,17 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC)
if (rv) {
retval = &rv;
- if ((type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) && rv->refcount > 0) {
- zval *tmp = rv;
-
- ALLOC_ZVAL(rv);
- *rv = *tmp;
- zval_copy_ctor(rv);
- rv->is_ref = 0;
- rv->refcount = 0;
+ if (!rv->is_ref &&
+ (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET)) {
+ if (rv->refcount > 0) {
+ zval *tmp = rv;
+
+ ALLOC_ZVAL(rv);
+ *rv = *tmp;
+ zval_copy_ctor(rv);
+ rv->is_ref = 0;
+ rv->refcount = 0;
+ }
if (Z_TYPE_P(rv) != IS_OBJECT) {
zend_error(E_NOTICE, "Indirect modification of overloaded property %s::$%s has no effect", zobj->ce->name, Z_STRVAL_P(member));
}
diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h
index f94ac6708..bb17045fd 100644
--- a/Zend/zend_object_handlers.h
+++ b/Zend/zend_object_handlers.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_object_handlers.h,v 1.47.2.2.2.4 2006/07/24 17:58:32 helly Exp $ */
+/* $Id: zend_object_handlers.h,v 1.47.2.2.2.5 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_OBJECT_HANDLERS_H
#define ZEND_OBJECT_HANDLERS_H
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index 2ff7d5acb..fdccf4a7d 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects.c,v 1.56.2.3.2.5 2006/07/26 15:29:27 dmitry Exp $ */
+/* $Id: zend_objects.c,v 1.56.2.3.2.6 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
#include "zend_globals.h"
diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h
index 65af84286..91f646418 100644
--- a/Zend/zend_objects.h
+++ b/Zend/zend_objects.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects.h,v 1.25.2.2 2006/03/29 14:28:40 tony2001 Exp $ */
+/* $Id: zend_objects.h,v 1.25.2.2.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_OBJECTS_H
#define ZEND_OBJECTS_H
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c
index 5a9a7a835..0cd1f6a47 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects_API.c,v 1.47.2.6.2.3 2006/08/07 15:15:20 dmitry Exp $ */
+/* $Id: zend_objects_API.c,v 1.47.2.6.2.5 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -64,8 +64,11 @@ ZEND_API void zend_objects_store_call_destructors(zend_objects_store *objects TS
ZEND_API void zend_objects_store_mark_destructed(zend_objects_store *objects TSRMLS_DC)
{
- zend_uint i = 1;
+ zend_uint i;
+ if (!objects->object_buckets) {
+ return;
+ }
for (i = 1; i < objects->top ; i++) {
if (objects->object_buckets[i].valid) {
objects->object_buckets[i].destructor_called = 1;
diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h
index 7fc8d0d74..bd05bbde9 100644
--- a/Zend/zend_objects_API.h
+++ b/Zend/zend_objects_API.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects_API.h,v 1.20.2.1.2.2 2006/08/07 15:15:20 dmitry Exp $ */
+/* $Id: zend_objects_API.h,v 1.20.2.1.2.3 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_OBJECTS_API_H
#define ZEND_OBJECTS_API_H
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 5f2a80391..ff9a3fb3d 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_opcode.c,v 1.110.2.6 2006/04/10 12:26:53 dmitry Exp $ */
+/* $Id: zend_opcode.c,v 1.110.2.6.2.3 2007/04/16 08:09:55 dmitry Exp $ */
#include <stdio.h>
@@ -99,6 +99,8 @@ void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_siz
op_array->start_op = NULL;
+ op_array->fn_flags = CG(interactive)?ZEND_ACC_INTERACTIVE:0;
+
zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_ctor_handler, op_array TSRMLS_CC);
}
@@ -158,7 +160,7 @@ ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC)
zend_hash_destroy(CE_STATIC_MEMBERS(*pce));
FREE_HASHTABLE(CE_STATIC_MEMBERS(*pce));
#ifdef ZTS
- CG(static_members)[(long)((*pce)->static_members)] = NULL;
+ CG(static_members)[(zend_intptr_t)((*pce)->static_members)] = NULL;
#else
(*pce)->static_members = NULL;
#endif
@@ -294,7 +296,7 @@ zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC)
zend_op *next_op;
if (next_op_num >= op_array->size) {
- if (CG(interactive)) {
+ if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) {
/* we messed up */
zend_printf("Ran out of opcode space!\n"
"You should probably consider writing this huge script into a file!\n");
@@ -367,7 +369,7 @@ int pass_two(zend_op_array *op_array TSRMLS_DC)
zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_handler, op_array TSRMLS_CC);
}
- if (!CG(interactive) && op_array->size != op_array->last) {
+ if (!(op_array->fn_flags & ZEND_ACC_INTERACTIVE) && op_array->size != op_array->last) {
op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last);
op_array->size = op_array->last;
}
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 6f6b65fab..b90fe47b6 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_operators.c,v 1.208.2.4.2.10 2006/10/03 17:54:51 tony2001 Exp $ */
+/* $Id: zend_operators.c,v 1.208.2.4.2.21 2007/04/23 09:56:30 dmitry Exp $ */
#include <ctype.h>
@@ -29,9 +29,19 @@
#include "zend_API.h"
#include "zend_multiply.h"
#include "zend_strtod.h"
+#include "zend_exceptions.h"
#define LONG_SIGN_MASK (1L << (8*sizeof(long)-1))
+#if ZEND_USE_TOLOWER_L
+#include <locale.h>
+static _locale_t current_locale = NULL;
+/* this is true global! may lead to strange effects on ZTS, but so is setlocale() */
+#define zend_tolower(c) _tolower_l(c, current_locale)
+#else
+#define zend_tolower(c) tolower(c)
+#endif
+
ZEND_API int zend_atoi(const char *str, int str_len)
{
int retval;
@@ -114,14 +124,9 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
char *strval;
strval = op->value.str.val;
- switch ((op->type=is_numeric_string(strval, op->value.str.len, &op->value.lval, &op->value.dval, 1))) {
- case IS_DOUBLE:
- case IS_LONG:
- break;
- default:
- op->value.lval = strtol(op->value.str.val, NULL, 10);
- op->type = IS_LONG;
- break;
+ if ((op->type=is_numeric_string(strval, op->value.str.len, &op->value.lval, &op->value.dval, 1)) == 0) {
+ op->value.lval = 0;
+ op->type = IS_LONG;
}
STR_FREE(strval);
break;
@@ -152,14 +157,9 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
switch ((op)->type) { \
case IS_STRING: \
{ \
- switch (((holder).type=is_numeric_string((op)->value.str.val, (op)->value.str.len, &(holder).value.lval, &(holder).value.dval, 1))) { \
- case IS_DOUBLE: \
- case IS_LONG: \
- break; \
- default: \
- (holder).value.lval = strtol((op)->value.str.val, NULL, 10); \
- (holder).type = IS_LONG; \
- break; \
+ if (((holder).type=is_numeric_string((op)->value.str.val, (op)->value.str.len, &(holder).value.lval, &(holder).value.dval, 1)) == 0) { \
+ (holder).value.lval = 0; \
+ (holder).type = IS_LONG; \
} \
(op) = &(holder); \
break; \
@@ -186,13 +186,21 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
} \
}
-#define DVAL_TO_LVAL(d, l) \
+#ifdef _WIN64
+# define DVAL_TO_LVAL(d, l) \
+ if ((d) > LONG_MAX) { \
+ (l) = (long)(unsigned long)(__int64) (d); \
+ } else { \
+ (l) = (long) (d); \
+ }
+#else
+# define DVAL_TO_LVAL(d, l) \
if ((d) > LONG_MAX) { \
(l) = (unsigned long) (d); \
} else { \
(l) = (long) (d); \
}
-
+#endif
#define zendi_convert_to_long(op, holder, result) \
if (op == result) { \
@@ -295,13 +303,13 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC)
} \
}
-
ZEND_API void convert_to_long(zval *op)
{
- convert_to_long_base(op, 10);
+ if ((op)->type != IS_LONG) {
+ convert_to_long_base(op, 10);
+ }
}
-
ZEND_API void convert_to_long_base(zval *op, int base)
{
char *strval;
@@ -447,6 +455,7 @@ ZEND_API void convert_to_null(zval *op)
return;
}
*op = *org;
+ FREE_ZVAL(org);
}
}
@@ -550,21 +559,18 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC)
TSRMLS_FETCH();
zend_list_delete(op->value.lval);
- op->value.str.val = (char *) emalloc(sizeof("Resource id #")-1 + MAX_LENGTH_OF_LONG);
- op->value.str.len = sprintf(op->value.str.val, "Resource id #%ld", tmp);
+ op->value.str.len = zend_spprintf(&op->value.str.val, 0, "Resource id #%ld", tmp);
break;
}
case IS_LONG:
lval = op->value.lval;
- op->value.str.val = (char *) emalloc_rel(MAX_LENGTH_OF_LONG + 1);
- op->value.str.len = zend_sprintf(op->value.str.val, "%ld", lval); /* SAFE */
+ op->value.str.len = zend_spprintf(&op->value.str.val, 0, "%ld", lval); /* SAFE */
break;
case IS_DOUBLE: {
TSRMLS_FETCH();
dval = op->value.dval;
- op->value.str.val = (char *) emalloc_rel(MAX_LENGTH_OF_DOUBLE + EG(precision) + 1);
- op->value.str.len = zend_sprintf(op->value.str.val, "%.*G", (int) EG(precision), dval); /* SAFE */
+ op->value.str.len = zend_spprintf(&op->value.str.val, 0, "%.*G", (int) EG(precision), dval); /* SAFE */
/* %G already handles removing trailing zeros from the fractional part, yay */
break;
}
@@ -651,6 +657,8 @@ ZEND_API void convert_to_array(zval *op)
convert_object_to_type(op, IS_ARRAY, convert_to_array);
if (op->type == IS_ARRAY) {
+ zend_hash_destroy(ht);
+ FREE_HASHTABLE(ht);
return;
}
}
@@ -1165,11 +1173,14 @@ ZEND_API int add_string_to_string(zval *result, zval *op1, zval *op2)
ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
{
zval op1_copy, op2_copy;
- int use_copy1, use_copy2;
-
+ int use_copy1 = 0, use_copy2 = 0;
- zend_make_printable_zval(op1, &op1_copy, &use_copy1);
- zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ if (op1->type != IS_STRING) {
+ zend_make_printable_zval(op1, &op1_copy, &use_copy1);
+ }
+ if (op2->type != IS_STRING) {
+ zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ }
if (use_copy1) {
/* We have created a converted copy of op1. Therefore, op1 won't become the result so
@@ -1212,10 +1223,14 @@ ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
ZEND_API int string_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
{
zval op1_copy, op2_copy;
- int use_copy1, use_copy2;
+ int use_copy1 = 0, use_copy2 = 0;
- zend_make_printable_zval(op1, &op1_copy, &use_copy1);
- zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ if (op1->type != IS_STRING) {
+ zend_make_printable_zval(op1, &op1_copy, &use_copy1);
+ }
+ if (op2->type != IS_STRING) {
+ zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ }
if (use_copy1) {
op1 = &op1_copy;
@@ -1240,10 +1255,14 @@ ZEND_API int string_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_D
ZEND_API int string_locale_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
{
zval op1_copy, op2_copy;
- int use_copy1, use_copy2;
+ int use_copy1 = 0, use_copy2 = 0;
- zend_make_printable_zval(op1, &op1_copy, &use_copy1);
- zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ if (op1->type != IS_STRING) {
+ zend_make_printable_zval(op1, &op1_copy, &use_copy1);
+ }
+ if (op2->type != IS_STRING) {
+ zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ }
if (use_copy1) {
op1 = &op1_copy;
@@ -1817,6 +1836,13 @@ ZEND_API int zval_is_true(zval *op)
return (op->value.lval ? 1 : 0);
}
+#ifdef ZEND_USE_TOLOWER_L
+ZEND_API void zend_update_current_locale()
+{
+ current_locale = _get_current_locale();
+}
+#endif
+
ZEND_API char *zend_str_tolower_copy(char *dest, const char *source, unsigned int length)
{
register unsigned char *str = (unsigned char*)source;
@@ -1824,7 +1850,7 @@ ZEND_API char *zend_str_tolower_copy(char *dest, const char *source, unsigned in
register unsigned char *end = str + length;
while (str < end) {
- *result++ = tolower((int)*str++);
+ *result++ = zend_tolower((int)*str++);
}
*result = '\0';
@@ -1837,7 +1863,7 @@ ZEND_API void zend_str_tolower(char *str, unsigned int length)
register unsigned char *end = p + length;
while (p < end) {
- *p = tolower((int)*p);
+ *p = zend_tolower((int)*p);
p++;
}
}
@@ -1875,8 +1901,8 @@ ZEND_API int zend_binary_strcasecmp(char *s1, uint len1, char *s2, uint len2)
len = MIN(len1, len2);
while (len--) {
- c1 = tolower((int)*(unsigned char *)s1++);
- c2 = tolower((int)*(unsigned char *)s2++);
+ c1 = zend_tolower((int)*(unsigned char *)s1++);
+ c2 = zend_tolower((int)*(unsigned char *)s2++);
if (c1 != c2) {
return c1 - c2;
}
@@ -1894,8 +1920,8 @@ ZEND_API int zend_binary_strncasecmp(char *s1, uint len1, char *s2, uint len2, u
len = MIN(length, MIN(len1, len2));
while (len--) {
- c1 = tolower((int)*(unsigned char *)s1++);
- c2 = tolower((int)*(unsigned char *)s2++);
+ c1 = zend_tolower((int)*(unsigned char *)s1++);
+ c2 = zend_tolower((int)*(unsigned char *)s2++);
if (c1 != c2) {
return c1 - c2;
}
@@ -1938,19 +1964,23 @@ ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2)
(ret2=is_numeric_string(s2->value.str.val, s2->value.str.len, &lval2, &dval2, 0))) {
if ((ret1==IS_DOUBLE) || (ret2==IS_DOUBLE)) {
if (ret1!=IS_DOUBLE) {
- dval1 = zend_strtod(s1->value.str.val, NULL);
+ dval1 = (double) lval1;
} else if (ret2!=IS_DOUBLE) {
- dval2 = zend_strtod(s2->value.str.val, NULL);
+ dval2 = (double) lval2;
+ } else if (dval1 == dval2 && !zend_finite(dval1)) {
+ /* Both values overflowed and have the same sign,
+ * so a numeric comparison would be inaccurate */
+ goto string_cmp;
}
result->value.dval = dval1 - dval2;
result->value.lval = ZEND_NORMALIZE_BOOL(result->value.dval);
result->type = IS_LONG;
} else { /* they both have to be long's */
- result->value.lval = lval1 - lval2;
- result->value.lval = ZEND_NORMALIZE_BOOL(result->value.lval);
+ result->value.lval = lval1 > lval2 ? 1 : (lval1 < lval2 ? -1 : 0);
result->type = IS_LONG;
}
} else {
+string_cmp:
result->value.lval = zend_binary_zval_strcmp(s1, s2);
result->value.lval = ZEND_NORMALIZE_BOOL(result->value.lval);
result->type = IS_LONG;
@@ -2007,13 +2037,9 @@ ZEND_API void zend_compare_objects(zval *result, zval *o1, zval *o2 TSRMLS_DC)
ZEND_API void zend_locale_sprintf_double(zval *op ZEND_FILE_LINE_DC)
{
- double dval = op->value.dval;
-
TSRMLS_FETCH();
-
- op->value.str.val = (char *) emalloc_rel(MAX_LENGTH_OF_DOUBLE + EG(precision) + 1);
- sprintf(op->value.str.val, "%.*G", (int) EG(precision), dval);
- op->value.str.len = strlen(op->value.str.val);
+
+ op->value.str.len = zend_spprintf(&op->value.str.val, 0, "%.*G", (int) EG(precision), (double)op->value.dval);
}
/*
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index ebdce7666..55710116d 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_operators.h,v 1.94.2.4.2.4 2006/08/08 10:54:24 tony2001 Exp $ */
+/* $Id: zend_operators.h,v 1.94.2.4.2.9 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_OPERATORS_H
#define ZEND_OPERATORS_H
@@ -36,7 +36,16 @@
#include "ext/bcmath/libbcmath/src/bcmath.h"
#endif
+#if SIZEOF_LONG == 4
+#define MAX_LENGTH_OF_LONG 11
+static const char long_min_digits[] = "2147483648";
+#elif SIZEOF_LONG == 8
#define MAX_LENGTH_OF_LONG 20
+static const char long_min_digits[] = "9223372036854775808";
+#else
+#error "Unknown SIZEOF_LONG"
+#endif
+
#define MAX_LENGTH_OF_DOUBLE 32
BEGIN_EXTERN_C()
@@ -66,82 +75,143 @@ ZEND_API zend_bool instanceof_function_ex(zend_class_entry *instance_ce, zend_cl
ZEND_API zend_bool instanceof_function(zend_class_entry *instance_ce, zend_class_entry *ce TSRMLS_DC);
END_EXTERN_C()
+#define ZEND_IS_DIGIT(c) ((c) >= '0' && (c) <= '9')
+#define ZEND_IS_XDIGIT(c) (((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'))
+
/**
- * Checks whether the string "str" with the length "length" is a numeric string.
+ * Checks whether the string "str" with length "length" is numeric. The value
+ * of allow_errors determines whether it's required to be entirely numeric, or
+ * just its prefix. Leading whitespace is allowed.
*
- * The function returns 0 if the string did not contain a string; IS_LONG if
- * the string contained a number that fits in the integer range and IS_DOUBLE
- * in case it did not. The long value is returned into the pointer *lval if
- * that pointer was not NULL or into the pointer *dval if that pointer was not
- * NULL.
+ * The function returns 0 if the string did not contain a valid number; IS_LONG
+ * if it contained a number that fits within the range of a long; or IS_DOUBLE
+ * if the number was out of long range or contained a decimal point/exponent.
+ * The number's value is returned into the respective pointer, *lval or *dval,
+ * if that pointer is not NULL.
*/
-static inline zend_bool is_numeric_string(char *str, int length, long *lval, double *dval, int allow_errors)
+
+static inline zend_uchar is_numeric_string(const char *str, int length, long *lval, double *dval, int allow_errors)
{
- long local_lval;
+ const char *ptr;
+ int base = 10, digits = 0, dp_or_e = 0;
double local_dval;
- char *end_ptr_long, *end_ptr_double;
- int conv_base=10;
+ zend_uchar type;
if (!length) {
return 0;
}
- /* handle hex numbers */
- if (length>=2 && str[0]=='0' && (str[1]=='x' || str[1]=='X')) {
- conv_base=16;
- }
- errno=0;
- local_lval = strtol(str, &end_ptr_long, conv_base);
- if (errno!=ERANGE) {
- if (end_ptr_long == str+length) { /* integer string */
- if (lval) {
- *lval = local_lval;
- }
- return IS_LONG;
- } else if (end_ptr_long == str && *end_ptr_long != '\0' && *str != '.' && *str != '-') { /* ignore partial string matches */
- return 0;
- }
- } else {
- end_ptr_long=NULL;
+ /* Skip any whitespace
+ * This is much faster than the isspace() function */
+ while (*str == ' ' || *str == '\t' || *str == '\n' || *str == '\r' || *str == '\v' || *str == '\f') {
+ str++;
+ length--;
}
+ ptr = str;
- if (conv_base==16) { /* hex string, under UNIX strtod() messes it up */
- return 0;
+ if (*ptr == '-' || *ptr == '+') {
+ ptr++;
}
- errno=0;
- local_dval = zend_strtod(str, &end_ptr_double);
- if (errno != ERANGE) {
- if (end_ptr_double == str+length) { /* floating point string */
- if (!zend_finite(local_dval)) {
- /* "inf","nan" and maybe other weird ones */
- return 0;
+ if (ZEND_IS_DIGIT(*ptr)) {
+ /* Handle hex numbers
+ * str is used instead of ptr to disallow signs and keep old behavior */
+ if (length > 2 && *str == '0' && (str[1] == 'x' || str[1] == 'X')) {
+ base = 16;
+ ptr += 2;
+ }
+
+ /* Skip any leading 0s */
+ while (*ptr == '0') {
+ ptr++;
+ }
+
+ /* Count the number of digits. If a decimal point/exponent is found,
+ * it's a double. Otherwise, if there's a dval or no need to check for
+ * a full match, stop when there are too many digits for a long */
+ for (type = IS_LONG; !(digits >= MAX_LENGTH_OF_LONG && (dval || allow_errors == 1)); digits++, ptr++) {
+check_digits:
+ if (ZEND_IS_DIGIT(*ptr) || (base == 16 && ZEND_IS_XDIGIT(*ptr))) {
+ continue;
+ } else if (base == 10) {
+ if (*ptr == '.' && dp_or_e < 1) {
+ goto process_double;
+ } else if ((*ptr == 'e' || *ptr == 'E') && dp_or_e < 2) {
+ const char *e = ptr + 1;
+
+ if (*e == '-' || *e == '+') {
+ ptr = e++;
+ }
+ if (ZEND_IS_DIGIT(*e)) {
+ goto process_double;
+ }
+ }
}
+ break;
+ }
+
+ if (base == 10) {
+ if (digits >= MAX_LENGTH_OF_LONG) {
+ dp_or_e = -1;
+ goto process_double;
+ }
+ } else if (!(digits < SIZEOF_LONG * 2 || (digits == SIZEOF_LONG * 2 && ptr[-digits] <= '7'))) {
if (dval) {
- *dval = local_dval;
+ local_dval = zend_hex_strtod(str, (char **)&ptr);
}
- return IS_DOUBLE;
+ type = IS_DOUBLE;
+ }
+ } else if (*ptr == '.' && ZEND_IS_DIGIT(ptr[1])) {
+process_double:
+ type = IS_DOUBLE;
+
+ /* If there's a dval, do the conversion; else continue checking
+ * the digits if we need to check for a full match */
+ if (dval) {
+ local_dval = zend_strtod(str, (char **)&ptr);
+ } else if (allow_errors != 1 && dp_or_e != -1) {
+ dp_or_e = (*ptr++ == '.') ? 1 : 2;
+ goto check_digits;
}
} else {
- end_ptr_double=NULL;
- }
-
- if (!allow_errors) {
return 0;
}
- if (allow_errors == -1) {
- zend_error(E_NOTICE, "A non well formed numeric value encountered");
+
+ if (ptr != str + length) {
+ if (!allow_errors) {
+ return 0;
+ }
+ if (allow_errors == -1) {
+ zend_error(E_NOTICE, "A non well formed numeric value encountered");
+ }
}
- if (end_ptr_double>end_ptr_long && dval) {
- *dval = local_dval;
- return IS_DOUBLE;
- } else if (end_ptr_long && lval) {
- *lval = local_lval;
+ if (type == IS_LONG) {
+ if (digits == MAX_LENGTH_OF_LONG - 1) {
+ int cmp = strcmp(&ptr[-digits], long_min_digits);
+
+ if (!(cmp < 0 || (cmp == 0 && *str == '-'))) {
+ if (dval) {
+ *dval = zend_strtod(str, NULL);
+ }
+
+ return IS_DOUBLE;
+ }
+ }
+
+ if (lval) {
+ *lval = strtol(str, NULL, base);
+ }
+
return IS_LONG;
+ } else {
+ if (dval) {
+ *dval = local_dval;
+ }
+
+ return IS_DOUBLE;
}
- return 0;
}
static inline char *
@@ -171,9 +241,13 @@ zend_memnstr(char *haystack, char *needle, int needle_len, char *end)
static inline void *zend_memrchr(const void *s, int c, size_t n)
{
- register unsigned char *e = (unsigned char *)s + n;
+ register unsigned char *e;
+
+ if (n <= 0) {
+ return NULL;
+ }
- for (e--; e >= (unsigned char *)s; e--) {
+ for (e = (unsigned char *)s + n - 1; e >= (unsigned char *)s; e--) {
if (*e == (unsigned char)c) {
return (void *)e;
}
@@ -200,7 +274,7 @@ ZEND_API void multi_convert_to_double_ex(int argc, ...);
ZEND_API void multi_convert_to_string_ex(int argc, ...);
ZEND_API int add_char_to_string(zval *result, zval *op1, zval *op2);
ZEND_API int add_string_to_string(zval *result, zval *op1, zval *op2);
-#define convert_to_string(op) _convert_to_string((op) ZEND_FILE_LINE_CC)
+#define convert_to_string(op) if ((op)->type != IS_STRING) { _convert_to_string((op) ZEND_FILE_LINE_CC); }
ZEND_API double zend_string_to_double(const char *number, zend_uint length);
@@ -346,6 +420,19 @@ END_EXTERN_C()
#define Z_TYPE_P(zval_p) Z_TYPE(*zval_p)
#define Z_TYPE_PP(zval_pp) Z_TYPE(**zval_pp)
+#if HAVE_SETLOCALE && defined(ZEND_WIN32) && !defined(ZTS) && defined(_MSC_VER) && (_MSC_VER >= 1400)
+/* This is performance improvement of tolower() on Windows and VC2005
+ * GIves 10-18% on bench.php
+ */
+#define ZEND_USE_TOLOWER_L 1
+#endif
+
+#ifdef ZEND_USE_TOLOWER_L
+ZEND_API void zend_update_current_locale();
+#else
+#define zend_update_current_locale()
+#endif
+
#endif
/*
diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c
index dc9d91a29..b0d2ed7f0 100644
--- a/Zend/zend_ptr_stack.c
+++ b/Zend/zend_ptr_stack.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ptr_stack.c,v 1.23.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ptr_stack.c,v 1.23.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
#include "zend_ptr_stack.h"
diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h
index 788089172..178278b14 100644
--- a/Zend/zend_ptr_stack.h
+++ b/Zend/zend_ptr_stack.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ptr_stack.h,v 1.22.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ptr_stack.h,v 1.22.2.2.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_PTR_STACK_H
#define ZEND_PTR_STACK_H
diff --git a/Zend/zend_qsort.c b/Zend/zend_qsort.c
index 02ca5b6ee..e186837da 100644
--- a/Zend/zend_qsort.c
+++ b/Zend/zend_qsort.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_qsort.c,v 1.8.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_qsort.c,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
diff --git a/Zend/zend_qsort.h b/Zend/zend_qsort.h
index 0965baba5..b0ae89791 100644
--- a/Zend/zend_qsort.h
+++ b/Zend/zend_qsort.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_qsort.h,v 1.8.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_qsort.h,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_QSORT_H
#define ZEND_QSORT_H
diff --git a/Zend/zend_sprintf.c b/Zend/zend_sprintf.c
index ec04f128c..e15ac02b2 100644
--- a/Zend/zend_sprintf.c
+++ b/Zend/zend_sprintf.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_sprintf.c,v 1.16.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_sprintf.c,v 1.16.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include <stdio.h>
diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c
index 30345324b..f2892042a 100644
--- a/Zend/zend_stack.c
+++ b/Zend/zend_stack.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_stack.c,v 1.16.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_stack.c,v 1.16.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
#include "zend_stack.h"
diff --git a/Zend/zend_stack.h b/Zend/zend_stack.h
index b40d26746..61e4226aa 100644
--- a/Zend/zend_stack.h
+++ b/Zend/zend_stack.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_stack.h,v 1.19.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_stack.h,v 1.19.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_STACK_H
#define ZEND_STACK_H
diff --git a/Zend/zend_static_allocator.c b/Zend/zend_static_allocator.c
index 9e0f4e0f5..6eaec24f5 100644
--- a/Zend/zend_static_allocator.c
+++ b/Zend/zend_static_allocator.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_static_allocator.c,v 1.13.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_static_allocator.c,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend_static_allocator.h"
diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h
index 7b51dd953..a053ca887 100644
--- a/Zend/zend_static_allocator.h
+++ b/Zend/zend_static_allocator.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_static_allocator.h,v 1.13.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_static_allocator.h,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_STATIC_ALLOCATOR_H
#define ZEND_STATIC_ALLOCATOR_H
diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c
index b56c045fa..0fbb91554 100644
--- a/Zend/zend_stream.c
+++ b/Zend/zend_stream.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_stream.c,v 1.13.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_stream.c,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h
index 90daf03b6..42367b2bd 100644
--- a/Zend/zend_stream.h
+++ b/Zend/zend_stream.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_stream.h,v 1.8.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_stream.h,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_STREAM_H
#define ZEND_STREAM_H
diff --git a/Zend/zend_strtod.c b/Zend/zend_strtod.c
index 3a469fd59..2c133bb0e 100644
--- a/Zend/zend_strtod.c
+++ b/Zend/zend_strtod.c
@@ -18,13 +18,13 @@
***************************************************************/
/* Please send bug reports to
- David M. Gay
- AT&T Bell Laboratories, Room 2C-463
- 600 Mountain Avenue
- Murray Hill, NJ 07974-2070
- U.S.A.
- dmg@research.att.com or research!dmg
- */
+ David M. Gay
+ AT&T Bell Laboratories, Room 2C-463
+ 600 Mountain Avenue
+ Murray Hill, NJ 07974-2070
+ U.S.A.
+ dmg@research.att.com or research!dmg
+ */
/* strtod for IEEE-, VAX-, and IBM-arithmetic machines.
*
@@ -89,8 +89,26 @@
* directly -- and assumed always to succeed.
*/
+/* $Id: zend_strtod.c,v 1.17.2.2.2.10 2007/04/26 23:13:25 tony2001 Exp $ */
+
#include <zend_strtod.h>
+#ifdef ZTS
+#include <TSRM.h>
+#endif
+
+#include <stddef.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdarg.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -125,10 +143,10 @@ typedef unsigned long int uint32_t;
#if defined(__arm__) && !defined(__VFP_FP__)
/*
- * Although the CPU is little endian the FP has different
- * byte and word endianness. The byte order is still little endian
- * but the word order is big endian.
- */
+ * * Although the CPU is little endian the FP has different
+ * * byte and word endianness. The byte order is still little endian
+ * * but the word order is big endian.
+ * */
#define IEEE_BIG_ENDIAN
#undef IEEE_LITTLE_ENDIAN
#endif
@@ -143,8 +161,8 @@ typedef unsigned long int uint32_t;
#define IEEE_LITTLE_ENDIAN
#endif
-#define Long int32_t
-#define ULong uint32_t
+#define Long int32_t
+#define ULong uint32_t
#ifdef __cplusplus
#include "malloc.h"
@@ -208,6 +226,7 @@ extern void *MALLOC(size_t);
#define DBL_MAX 1.7014118346046923e+38
#endif
+
#ifndef LONG_MAX
#define LONG_MAX 2147483647
#endif
@@ -218,9 +237,7 @@ extern void *MALLOC(size_t);
#include "math.h"
#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
+BEGIN_EXTERN_C()
#ifndef CONST
#ifdef KR_headers
@@ -237,15 +254,15 @@ extern "C" {
#endif
#if defined(IEEE_LITTLE_ENDIAN) + defined(IEEE_BIG_ENDIAN) + defined(VAX) + \
- defined(IBM) != 1
-Exactly one of IEEE_LITTLE_ENDIAN IEEE_BIG_ENDIAN, VAX, or
-IBM should be defined.
+ defined(IBM) != 1
+ Exactly one of IEEE_LITTLE_ENDIAN IEEE_BIG_ENDIAN, VAX, or
+ IBM should be defined.
#endif
-typedef union {
- double d;
- ULong ul[2];
-} _double;
+ typedef union {
+ double d;
+ ULong ul[2];
+ } _double;
#define value(x) ((x).d)
#ifdef IEEE_LITTLE_ENDIAN
#define word0(x) ((x).ul[1])
@@ -256,15 +273,15 @@ typedef union {
#endif
/* The following definition of Storeinc is appropriate for MIPS processors.
- * An alternative that might be better on some machines is
- * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
- */
+ * * An alternative that might be better on some machines is
+ * * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
+ * */
#if defined(IEEE_LITTLE_ENDIAN) + defined(VAX) + defined(__arm__)
#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
-((unsigned short *)a)[0] = (unsigned short)c, a++)
+ ((unsigned short *)a)[0] = (unsigned short)c, a++)
#else
#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
-((unsigned short *)a)[1] = (unsigned short)c, a++)
+ ((unsigned short *)a)[1] = (unsigned short)c, a++)
#endif
/* #define P DBL_MANT_DIG */
@@ -313,7 +330,7 @@ typedef union {
#define Bias 65
#define Exp_1 0x41000000
#define Exp_11 0x41000000
-#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */
+#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */
#define Frac_mask 0xffffff
#define Frac_mask1 0xffffff
#define Bletch 4
@@ -376,10 +393,10 @@ extern double rnd_prod(double, double), rnd_quot(double, double);
#ifndef Just_16
/* When Pack_32 is not defined, we store 16 bits per 32-bit Long.
- * This makes some inner loops simpler and sometimes saves work
- * during multiplications, but it often seems to make things slightly
- * slower. Hence the default is now to store 32 bits per Long.
- */
+ * * This makes some inner loops simpler and sometimes saves work
+ * * during multiplications, but it often seems to make things slightly
+ * * slower. Hence the default is now to store 32 bits per Long.
+ * */
#ifndef Pack_32
#define Pack_32
#endif
@@ -387,65 +404,131 @@ extern double rnd_prod(double, double), rnd_quot(double, double);
#define Kmax 15
- struct
-Bigint {
+struct Bigint {
struct Bigint *next;
int k, maxwds, sign, wds;
ULong x[1];
- };
+};
- typedef struct Bigint Bigint;
+typedef struct Bigint Bigint;
- static Bigint *freelist[Kmax+1];
+/* static variables, multithreading fun! */
+static Bigint *freelist[Kmax+1];
+static Bigint *p5s;
- static Bigint *
-Balloc
-#ifdef KR_headers
- (k) int k;
-#else
- (int k)
+static void destroy_freelist(void);
+
+#ifdef ZTS
+
+static MUTEX_T dtoa_mutex;
+static MUTEX_T pow5mult_mutex;
+
+#define _THREAD_PRIVATE_MUTEX_LOCK(x) tsrm_mutex_lock(x);
+#define _THREAD_PRIVATE_MUTEX_UNLOCK(x) tsrm_mutex_unlock(x);
+
+#else
+
+#define _THREAD_PRIVATE_MUTEX_LOCK(x)
+#define _THREAD_PRIVATE_MUTEX_UNLOCK(x)
+
+#endif /* ZTS */
+
+ZEND_API int zend_startup_strtod(void) /* {{{ */
+{
+#ifdef ZTS
+ dtoa_mutex = tsrm_mutex_alloc();
+ pow5mult_mutex = tsrm_mutex_alloc();
+#endif
+ return 1;
+}
+/* }}} */
+ZEND_API int zend_shutdown_strtod(void) /* {{{ */
+{
+ destroy_freelist();
+#ifdef ZTS
+ tsrm_mutex_free(dtoa_mutex);
+ dtoa_mutex = NULL;
+
+ tsrm_mutex_free(pow5mult_mutex);
+ pow5mult_mutex = NULL;
#endif
+ return 1;
+}
+/* }}} */
+
+static Bigint * Balloc(int k)
{
int x;
Bigint *rv;
+ if (k > Kmax) {
+ zend_error(E_ERROR, "Balloc() allocation exceeds list boundary");
+ }
+
+ _THREAD_PRIVATE_MUTEX_LOCK(dtoa_mutex);
if ((rv = freelist[k])) {
freelist[k] = rv->next;
- }
- else {
+ } else {
x = 1 << k;
rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(Long));
+ if (!rv) {
+ _THREAD_PRIVATE_MUTEX_UNLOCK(dtoa_mutex);
+ zend_error(E_ERROR, "Balloc() failed to allocate memory");
+ }
rv->k = k;
rv->maxwds = x;
- }
+ }
+ _THREAD_PRIVATE_MUTEX_UNLOCK(dtoa_mutex);
rv->sign = rv->wds = 0;
return rv;
- }
+}
- static void
-Bfree
-#ifdef KR_headers
- (v) Bigint *v;
-#else
- (Bigint *v)
-#endif
+static void Bfree(Bigint *v)
{
if (v) {
+ _THREAD_PRIVATE_MUTEX_LOCK(dtoa_mutex);
v->next = freelist[v->k];
freelist[v->k] = v;
- }
+ _THREAD_PRIVATE_MUTEX_UNLOCK(dtoa_mutex);
}
+}
#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
-y->wds*sizeof(Long) + 2*sizeof(int))
+ y->wds*sizeof(Long) + 2*sizeof(int))
- static Bigint *
-multadd
-#ifdef KR_headers
- (b, m, a) Bigint *b; int m, a;
-#else
- (Bigint *b, int m, int a) /* multiply by m and add a */
-#endif
+/* return value is only used as a simple string, so mis-aligned parts
+ * inside the Bigint are not at risk on strict align architectures
+ */
+static char * rv_alloc(int i) {
+ int j, k, *r;
+
+ j = sizeof(ULong);
+ for(k = 0;
+ sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= i;
+ j <<= 1) {
+ k++;
+ }
+ r = (int*)Balloc(k);
+ *r = k;
+ return (char *)(r+1);
+}
+
+
+static char * nrv_alloc(char *s, char **rve, int n)
+{
+ char *rv, *t;
+
+ t = rv = rv_alloc(n);
+ while((*t = *s++) !=0) {
+ t++;
+ }
+ if (rve) {
+ *rve = t;
+ }
+ return rv;
+}
+
+static Bigint * multadd(Bigint *b, int m, int a) /* multiply by m and add a */
{
int i, wds;
ULong *x, y;
@@ -469,148 +552,95 @@ multadd
a = (int)(y >> 16);
*x++ = y & 0xffff;
#endif
- }
- while(++i < wds);
+ }
+ while(++i < wds);
if (a) {
if (wds >= b->maxwds) {
b1 = Balloc(b->k+1);
Bcopy(b1, b);
Bfree(b);
b = b1;
- }
+ }
b->x[wds++] = a;
b->wds = wds;
- }
- return b;
}
-
- static Bigint *
-s2b
-#ifdef KR_headers
- (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9;
-#else
- (CONST char *s, int nd0, int nd, ULong y9)
-#endif
-{
- Bigint *b;
- int i, k;
- Long x, y;
-
- x = (nd + 8) / 9;
- for(k = 0, y = 1; x > y; y <<= 1, k++) ;
-#ifdef Pack_32
- b = Balloc(k);
- b->x[0] = y9;
- b->wds = 1;
-#else
- b = Balloc(k+1);
- b->x[0] = y9 & 0xffff;
- b->wds = (b->x[1] = y9 >> 16) ? 2 : 1;
-#endif
-
- i = 9;
- if (9 < nd0) {
- s += 9;
- do b = multadd(b, 10, *s++ - '0');
- while(++i < nd0);
- s++;
- }
- else
- s += 10;
- for(; i < nd; i++)
- b = multadd(b, 10, *s++ - '0');
return b;
- }
+}
- static int
-hi0bits
-#ifdef KR_headers
- (x) register ULong x;
-#else
- (register ULong x)
-#endif
+static int hi0bits(ULong x)
{
- register int k = 0;
+ int k = 0;
if (!(x & 0xffff0000)) {
k = 16;
x <<= 16;
- }
+ }
if (!(x & 0xff000000)) {
k += 8;
x <<= 8;
- }
+ }
if (!(x & 0xf0000000)) {
k += 4;
x <<= 4;
- }
+ }
if (!(x & 0xc0000000)) {
k += 2;
x <<= 2;
- }
+ }
if (!(x & 0x80000000)) {
k++;
- if (!(x & 0x40000000))
+ if (!(x & 0x40000000)) {
return 32;
}
- return k;
}
+ return k;
+}
- static int
-lo0bits
-#ifdef KR_headers
- (y) ULong *y;
-#else
- (ULong *y)
-#endif
+static int lo0bits(ULong *y)
{
- register int k;
- register ULong x = *y;
+ int k;
+ ULong x = *y;
if (x & 7) {
- if (x & 1)
+ if (x & 1) {
return 0;
+ }
if (x & 2) {
*y = x >> 1;
return 1;
- }
+ }
*y = x >> 2;
return 2;
- }
+ }
k = 0;
if (!(x & 0xffff)) {
k = 16;
x >>= 16;
- }
+ }
if (!(x & 0xff)) {
k += 8;
x >>= 8;
- }
+ }
if (!(x & 0xf)) {
k += 4;
x >>= 4;
- }
+ }
if (!(x & 0x3)) {
k += 2;
x >>= 2;
- }
+ }
if (!(x & 1)) {
k++;
x >>= 1;
- if (!x & 1)
+ if (!(x & 1)) {
return 32;
}
+ }
*y = x;
return k;
- }
+}
- static Bigint *
-i2b
-#ifdef KR_headers
- (i) int i;
-#else
- (int i)
-#endif
+static Bigint * i2b(int i)
{
Bigint *b;
@@ -618,15 +648,9 @@ i2b
b->x[0] = i;
b->wds = 1;
return b;
- }
+}
- static Bigint *
-mult
-#ifdef KR_headers
- (a, b) Bigint *a, *b;
-#else
- (Bigint *a, Bigint *b)
-#endif
+static Bigint * mult(Bigint *a, Bigint *b)
{
Bigint *c;
int k, wa, wb, wc;
@@ -640,16 +664,18 @@ mult
c = a;
a = b;
b = c;
- }
+ }
k = a->k;
wa = a->wds;
wb = b->wds;
wc = wa + wb;
- if (wc > a->maxwds)
+ if (wc > a->maxwds) {
k++;
+ }
c = Balloc(k);
- for(x = c->x, xa = x + wc; x < xa; x++)
+ for(x = c->x, xa = x + wc; x < xa; x++) {
*x = 0;
+ }
xa = a->x;
xae = xa + wa;
xb = b->x;
@@ -667,10 +693,10 @@ mult
z2 = (*x++ >> 16) * y + (*xc >> 16) + carry;
carry = z2 >> 16;
Storeinc(xc, z2, z);
- }
- while(x < xae);
- *xc = carry;
}
+ while(x < xae);
+ *xc = carry;
+ }
if ((y = *xb >> 16)) {
x = xa;
xc = xc0;
@@ -682,11 +708,11 @@ mult
Storeinc(xc, z, z2);
z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry;
carry = z2 >> 16;
- }
- while(x < xae);
- *xc = z2;
}
+ while(x < xae);
+ *xc = z2;
}
+ }
#else
for(; xb < xbe; xc0++) {
if (y = *xb++) {
@@ -697,65 +723,93 @@ mult
z = *x++ * y + *xc + carry;
carry = z >> 16;
*xc++ = z & 0xffff;
- }
- while(x < xae);
- *xc = carry;
}
+ while(x < xae);
+ *xc = carry;
}
+ }
#endif
for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ;
c->wds = wc;
return c;
- }
+}
- static Bigint *p5s;
+static Bigint * s2b (CONST char *s, int nd0, int nd, ULong y9)
+{
+ Bigint *b;
+ int i, k;
+ Long x, y;
- static Bigint *
-pow5mult
-#ifdef KR_headers
- (b, k) Bigint *b; int k;
+ x = (nd + 8) / 9;
+ for(k = 0, y = 1; x > y; y <<= 1, k++) ;
+#ifdef Pack_32
+ b = Balloc(k);
+ b->x[0] = y9;
+ b->wds = 1;
#else
- (Bigint *b, int k)
+ b = Balloc(k+1);
+ b->x[0] = y9 & 0xffff;
+ b->wds = (b->x[1] = y9 >> 16) ? 2 : 1;
#endif
+
+ i = 9;
+ if (9 < nd0) {
+ s += 9;
+ do b = multadd(b, 10, *s++ - '0');
+ while(++i < nd0);
+ s++;
+ } else {
+ s += 10;
+ }
+ for(; i < nd; i++) {
+ b = multadd(b, 10, *s++ - '0');
+ }
+ return b;
+}
+
+static Bigint * pow5mult(Bigint *b, int k)
{
Bigint *b1, *p5, *p51;
int i;
static int p05[3] = { 5, 25, 125 };
- if ((i = k & 3))
+ _THREAD_PRIVATE_MUTEX_LOCK(pow5mult_mutex);
+ if ((i = k & 3)) {
b = multadd(b, p05[i-1], 0);
+ }
- if (!(k >>= 2))
+ if (!(k >>= 2)) {
+ _THREAD_PRIVATE_MUTEX_UNLOCK(pow5mult_mutex);
return b;
+ }
if (!(p5 = p5s)) {
/* first time */
p5 = p5s = i2b(625);
p5->next = 0;
- }
+ }
for(;;) {
if (k & 1) {
b1 = mult(b, p5);
Bfree(b);
b = b1;
- }
- if (!(k >>= 1))
+ }
+ if (!(k >>= 1)) {
break;
+ }
if (!(p51 = p5->next)) {
- p51 = p5->next = mult(p5,p5);
- p51->next = 0;
+ if (!(p51 = p5->next)) {
+ p51 = p5->next = mult(p5,p5);
+ p51->next = 0;
}
- p5 = p51;
}
- return b;
+ p5 = p51;
}
+ _THREAD_PRIVATE_MUTEX_UNLOCK(pow5mult_mutex);
+ return b;
+}
- static Bigint *
-lshift
-#ifdef KR_headers
- (b, k) Bigint *b; int k;
-#else
- (Bigint *b, int k)
-#endif
+
+static Bigint *lshift(Bigint *b, int k)
{
int i, k1, n, n1;
Bigint *b1;
@@ -768,12 +822,14 @@ lshift
#endif
k1 = b->k;
n1 = n + b->wds + 1;
- for(i = b->maxwds; n1 > i; i <<= 1)
+ for(i = b->maxwds; n1 > i; i <<= 1) {
k1++;
+ }
b1 = Balloc(k1);
x1 = b1->x;
- for(i = 0; i < n; i++)
+ for(i = 0; i < n; i++) {
*x1++ = 0;
+ }
x = b->x;
xe = x + b->wds;
#ifdef Pack_32
@@ -783,11 +839,12 @@ lshift
do {
*x1++ = *x << k | z;
z = *x++ >> k1;
- }
- while(x < xe);
- if ((*x1 = z))
+ }
+ while(x < xe);
+ if ((*x1 = z)) {
++n1;
}
+ }
#else
if (k &= 0xf) {
k1 = 16 - k;
@@ -795,27 +852,22 @@ lshift
do {
*x1++ = *x << k & 0xffff | z;
z = *x++ >> k1;
- }
- while(x < xe);
- if (*x1 = z)
+ }
+ while(x < xe);
+ if (*x1 = z) {
++n1;
}
+ }
#endif
else do
*x1++ = *x++;
- while(x < xe);
+ while(x < xe);
b1->wds = n1 - 1;
Bfree(b);
return b1;
- }
+}
- static int
-cmp
-#ifdef KR_headers
- (a, b) Bigint *a, *b;
-#else
- (Bigint *a, Bigint *b)
-#endif
+static int cmp(Bigint *a, Bigint *b)
{
ULong *xa, *xa0, *xb, *xb0;
int i, j;
@@ -839,21 +891,16 @@ cmp
return *xa < *xb ? -1 : 1;
if (xa <= xa0)
break;
- }
- return 0;
}
+ return 0;
+}
- static Bigint *
-diff
-#ifdef KR_headers
- (a, b) Bigint *a, *b;
-#else
- (Bigint *a, Bigint *b)
-#endif
+
+static Bigint * diff(Bigint *a, Bigint *b)
{
Bigint *c;
int i, wa, wb;
- Long borrow, y; /* We need signed shifts here. */
+ Long borrow, y; /* We need signed shifts here. */
ULong *xa, *xae, *xb, *xbe, *xc;
#ifdef Pack_32
Long z;
@@ -865,15 +912,15 @@ diff
c->wds = 1;
c->x[0] = 0;
return c;
- }
+ }
if (i < 0) {
c = a;
a = b;
b = c;
i = 1;
- }
- else
+ } else {
i = 0;
+ }
c = Balloc(a->k);
c->sign = i;
wa = a->wds;
@@ -893,8 +940,7 @@ diff
borrow = z >> 16;
Sign_Extend(borrow, z);
Storeinc(xc, z, y);
- }
- while(xb < xbe);
+ } while(xb < xbe);
while(xa < xae) {
y = (*xa & 0xffff) + borrow;
borrow = y >> 16;
@@ -903,35 +949,29 @@ diff
borrow = z >> 16;
Sign_Extend(borrow, z);
Storeinc(xc, z, y);
- }
+ }
#else
do {
y = *xa++ - *xb++ + borrow;
borrow = y >> 16;
Sign_Extend(borrow, y);
*xc++ = y & 0xffff;
- }
- while(xb < xbe);
+ } while(xb < xbe);
while(xa < xae) {
y = *xa++ + borrow;
borrow = y >> 16;
Sign_Extend(borrow, y);
*xc++ = y & 0xffff;
- }
+ }
#endif
- while(!*--xc)
+ while(!*--xc) {
wa--;
+ }
c->wds = wa;
return c;
- }
+}
- static double
-ulp
-#ifdef KR_headers
- (_x) double _x;
-#else
- (double _x)
-#endif
+static double ulp (double _x)
{
_double x;
register Long L;
@@ -948,29 +988,29 @@ ulp
word0(a) = L;
word1(a) = 0;
#ifndef Sudden_Underflow
- }
+ }
else {
L = -L >> Exp_shift;
if (L < Exp_shift) {
word0(a) = 0x80000 >> L;
word1(a) = 0;
- }
+ }
else {
word0(a) = 0;
L -= Exp_shift;
word1(a) = L >= 31 ? 1 : 1 << (31 - L);
- }
}
+ }
#endif
return value(a);
- }
+}
- static double
+static double
b2d
#ifdef KR_headers
- (a, e) Bigint *a; int *e;
+(a, e) Bigint *a; int *e;
#else
- (Bigint *a, int *e)
+(Bigint *a, int *e)
#endif
{
ULong *xa, *xa0, w, y, z;
@@ -997,17 +1037,17 @@ b2d
w = xa > xa0 ? *--xa : 0;
d1 = y << ((32-Ebits) + k) | w >> (Ebits - k);
goto ret_d;
- }
+ }
z = xa > xa0 ? *--xa : 0;
if (k -= Ebits) {
d0 = Exp_1 | y << k | z >> (32 - k);
y = xa > xa0 ? *--xa : 0;
d1 = z << k | y >> (32 - k);
- }
+ }
else {
d0 = Exp_1 | y;
d1 = z;
- }
+ }
#else
if (k < Ebits + 16) {
z = xa > xa0 ? *--xa : 0;
@@ -1016,7 +1056,7 @@ b2d
y = xa > xa0 ? *--xa : 0;
d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k;
goto ret_d;
- }
+ }
z = xa > xa0 ? *--xa : 0;
w = xa > xa0 ? *--xa : 0;
k -= Ebits + 16;
@@ -1024,7 +1064,7 @@ b2d
y = xa > xa0 ? *--xa : 0;
d1 = w << k + 16 | y << k;
#endif
- ret_d:
+ret_d:
#ifdef VAX
word0(d) = d0 >> 16 | d0 << 16;
word1(d) = d1 >> 16 | d1 << 16;
@@ -1033,15 +1073,10 @@ b2d
#undef d1
#endif
return value(d);
- }
+}
- static Bigint *
-d2b
-#ifdef KR_headers
- (_d, e, bits) double d; int *e, *bits;
-#else
- (double _d, int *e, int *bits)
-#endif
+
+static Bigint * d2b(double _d, int *e, int *bits)
{
Bigint *b;
int de, i, k;
@@ -1068,7 +1103,7 @@ d2b
x = b->x;
z = d0 & Frac_mask;
- d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
+ d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
#ifdef Sudden_Underflow
de = (int)(d0 >> Exp_shift);
#ifndef IBM
@@ -1081,14 +1116,13 @@ d2b
#ifdef Pack_32
if ((y = d1)) {
if ((k = lo0bits(&y))) {
- x[0] = y | z << (32 - k);
+ x[0] = y | (z << (32 - k));
z >>= k;
- }
- else
+ } else {
x[0] = y;
- i = b->wds = (x[1] = z) ? 2 : 1;
}
- else {
+ i = b->wds = (x[1] = z) ? 2 : 1;
+ } else {
#ifdef DEBUG
if (!z)
Bug("Zero passed to d2b");
@@ -1097,32 +1131,30 @@ d2b
x[0] = z;
i = b->wds = 1;
k += 32;
- }
+ }
#else
if (y = d1) {
- if (k = lo0bits(&y))
+ if (k = lo0bits(&y)) {
if (k >= 16) {
x[0] = y | z << 32 - k & 0xffff;
x[1] = z >> k - 16 & 0xffff;
x[2] = z >> k;
i = 2;
- }
- else {
+ } else {
x[0] = y & 0xffff;
x[1] = y >> 16 | z << 16 - k & 0xffff;
x[2] = z >> k & 0xffff;
x[3] = z >> k+16;
i = 3;
- }
- else {
+ }
+ } else {
x[0] = y & 0xffff;
x[1] = y >> 16;
x[2] = z & 0xffff;
x[3] = z >> 16;
i = 3;
- }
}
- else {
+ } else {
#ifdef DEBUG
if (!z)
Bug("Zero passed to d2b");
@@ -1131,14 +1163,13 @@ d2b
if (k >= 16) {
x[0] = z;
i = 0;
- }
- else {
+ } else {
x[0] = z & 0xffff;
x[1] = z >> 16;
i = 1;
- }
- k += 32;
}
+ k += 32;
+ }
while(!x[i])
--i;
b->wds = i + 1;
@@ -1154,28 +1185,22 @@ d2b
*bits = P - k;
#endif
#ifndef Sudden_Underflow
- }
- else {
+ } else {
*e = de - Bias - (P-1) + 1 + k;
#ifdef Pack_32
*bits = 32*i - hi0bits(x[i-1]);
#else
*bits = (i+2)*16 - hi0bits(x[i]);
#endif
- }
+ }
#endif
return b;
- }
+}
#undef d0
#undef d1
- static double
-ratio
-#ifdef KR_headers
- (a, b) Bigint *a, *b;
-#else
- (Bigint *a, Bigint *b)
-#endif
+
+static double ratio (Bigint *a, Bigint *b)
{
_double da, db;
int k, ka, kb;
@@ -1190,35 +1215,35 @@ ratio
#ifdef IBM
if (k > 0) {
word0(da) += (k >> 2)*Exp_msk1;
- if (k &= 3)
+ if (k &= 3) {
da *= 1 << k;
}
- else {
+ } else {
k = -k;
word0(db) += (k >> 2)*Exp_msk1;
if (k &= 3)
db *= 1 << k;
- }
+ }
#else
- if (k > 0)
+ if (k > 0) {
word0(da) += k*Exp_msk1;
- else {
+ } else {
k = -k;
word0(db) += k*Exp_msk1;
- }
+ }
#endif
return value(da) / value(db);
- }
+}
static CONST double
tens[] = {
- 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
- 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
- 1e20, 1e21, 1e22
+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
+ 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
+ 1e20, 1e21, 1e22
#ifdef VAX
, 1e23, 1e24
#endif
- };
+};
#ifdef IEEE_Arith
static CONST double bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 };
@@ -1236,16 +1261,775 @@ static CONST double tinytens[] = { 1e-16, 1e-32 };
#endif
#endif
-ZEND_API double
-zend_strtod
-#ifdef KR_headers
- (s00, se) CONST char *s00; char **se;
+
+static int quorem(Bigint *b, Bigint *S)
+{
+ int n;
+ Long borrow, y;
+ ULong carry, q, ys;
+ ULong *bx, *bxe, *sx, *sxe;
+#ifdef Pack_32
+ Long z;
+ ULong si, zs;
+#endif
+
+ n = S->wds;
+#ifdef DEBUG
+ /*debug*/ if (b->wds > n)
+ /*debug*/ Bug("oversize b in quorem");
+#endif
+ if (b->wds < n)
+ return 0;
+ sx = S->x;
+ sxe = sx + --n;
+ bx = b->x;
+ bxe = bx + n;
+ q = *bxe / (*sxe + 1); /* ensure q <= true quotient */
+#ifdef DEBUG
+ /*debug*/ if (q > 9)
+ /*debug*/ Bug("oversized quotient in quorem");
+#endif
+ if (q) {
+ borrow = 0;
+ carry = 0;
+ do {
+#ifdef Pack_32
+ si = *sx++;
+ ys = (si & 0xffff) * q + carry;
+ zs = (si >> 16) * q + (ys >> 16);
+ carry = zs >> 16;
+ y = (*bx & 0xffff) - (ys & 0xffff) + borrow;
+ borrow = y >> 16;
+ Sign_Extend(borrow, y);
+ z = (*bx >> 16) - (zs & 0xffff) + borrow;
+ borrow = z >> 16;
+ Sign_Extend(borrow, z);
+ Storeinc(bx, z, y);
+#else
+ ys = *sx++ * q + carry;
+ carry = ys >> 16;
+ y = *bx - (ys & 0xffff) + borrow;
+ borrow = y >> 16;
+ Sign_Extend(borrow, y);
+ *bx++ = y & 0xffff;
+#endif
+ }
+ while(sx <= sxe);
+ if (!*bxe) {
+ bx = b->x;
+ while(--bxe > bx && !*bxe)
+ --n;
+ b->wds = n;
+ }
+ }
+ if (cmp(b, S) >= 0) {
+ q++;
+ borrow = 0;
+ carry = 0;
+ bx = b->x;
+ sx = S->x;
+ do {
+#ifdef Pack_32
+ si = *sx++;
+ ys = (si & 0xffff) + carry;
+ zs = (si >> 16) + (ys >> 16);
+ carry = zs >> 16;
+ y = (*bx & 0xffff) - (ys & 0xffff) + borrow;
+ borrow = y >> 16;
+ Sign_Extend(borrow, y);
+ z = (*bx >> 16) - (zs & 0xffff) + borrow;
+ borrow = z >> 16;
+ Sign_Extend(borrow, z);
+ Storeinc(bx, z, y);
+#else
+ ys = *sx++ + carry;
+ carry = ys >> 16;
+ y = *bx - (ys & 0xffff) + borrow;
+ borrow = y >> 16;
+ Sign_Extend(borrow, y);
+ *bx++ = y & 0xffff;
+#endif
+ }
+ while(sx <= sxe);
+ bx = b->x;
+ bxe = bx + n;
+ if (!*bxe) {
+ while(--bxe > bx && !*bxe)
+ --n;
+ b->wds = n;
+ }
+ }
+ return q;
+}
+
+static void destroy_freelist(void)
+{
+ int i;
+ Bigint *tmp;
+
+ _THREAD_PRIVATE_MUTEX_LOCK(dtoa_mutex);
+ for (i = 0; i <= Kmax; i++) {
+ Bigint **listp = &freelist[i];
+ while ((tmp = *listp) != NULL) {
+ *listp = tmp->next;
+ free(tmp);
+ }
+ freelist[i] = NULL;
+ }
+ _THREAD_PRIVATE_MUTEX_UNLOCK(dtoa_mutex);
+
+}
+
+
+ZEND_API void zend_freedtoa(char *s)
+{
+ Bigint *b = (Bigint *)((int *)s - 1);
+ b->maxwds = 1 << (b->k = *(int*)b);
+ Bfree(b);
+}
+
+/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
+ *
+ * Inspired by "How to Print Floating-Point Numbers Accurately" by
+ * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 92-101].
+ *
+ * Modifications:
+ * 1. Rather than iterating, we use a simple numeric overestimate
+ * to determine k = floor(log10(d)). We scale relevant
+ * quantities using O(log2(k)) rather than O(k) multiplications.
+ * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't
+ * try to generate digits strictly left to right. Instead, we
+ * compute with fewer bits and propagate the carry if necessary
+ * when rounding the final digit up. This is often faster.
+ * 3. Under the assumption that input will be rounded nearest,
+ * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.
+ * That is, we allow equality in stopping tests when the
+ * round-nearest rule will give the same floating-point value
+ * as would satisfaction of the stopping test with strict
+ * inequality.
+ * 4. We remove common factors of powers of 2 from relevant
+ * quantities.
+ * 5. When converting floating-point integers less than 1e16,
+ * we use floating-point arithmetic rather than resorting
+ * to multiple-precision integers.
+ * 6. When asked to produce fewer than 15 digits, we first try
+ * to get by with floating-point arithmetic; we resort to
+ * multiple-precision integer arithmetic only if we cannot
+ * guarantee that the floating-point calculation has given
+ * the correctly rounded result. For k requested digits and
+ * "uniformly" distributed input, the probability is
+ * something like 10^(k-15) that we must resort to the Long
+ * calculation.
+ */
+
+ZEND_API char * zend_dtoa(double _d, int mode, int ndigits, int *decpt, int *sign, char **rve)
+{
+ /* Arguments ndigits, decpt, sign are similar to those
+ of ecvt and fcvt; trailing zeros are suppressed from
+ the returned string. If not null, *rve is set to point
+ to the end of the return value. If d is +-Infinity or NaN,
+ then *decpt is set to 9999.
+
+ mode:
+ 0 ==> shortest string that yields d when read in
+ and rounded to nearest.
+ 1 ==> like 0, but with Steele & White stopping rule;
+ e.g. with IEEE P754 arithmetic , mode 0 gives
+ 1e23 whereas mode 1 gives 9.999999999999999e22.
+ 2 ==> max(1,ndigits) significant digits. This gives a
+ return value similar to that of ecvt, except
+ that trailing zeros are suppressed.
+ 3 ==> through ndigits past the decimal point. This
+ gives a return value similar to that from fcvt,
+ except that trailing zeros are suppressed, and
+ ndigits can be negative.
+ 4-9 should give the same return values as 2-3, i.e.,
+ 4 <= mode <= 9 ==> same return as mode
+ 2 + (mode & 1). These modes are mainly for
+ debugging; often they run slower but sometimes
+ faster than modes 2-3.
+ 4,5,8,9 ==> left-to-right digit generation.
+ 6-9 ==> don't try fast floating-point estimate
+ (if applicable).
+
+ Values of mode other than 0-9 are treated as mode 0.
+
+ Sufficient space is allocated to the return value
+ to hold the suppressed trailing zeros.
+ */
+
+ int bbits, b2, b5, be, dig, i, ieps, ilim = 0, ilim0, ilim1,
+ j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,
+ spec_case = 0, try_quick;
+ Long L;
+#ifndef Sudden_Underflow
+ int denorm;
+ ULong x;
+#endif
+ Bigint *b, *b1, *delta, *mlo, *mhi, *S, *tmp;
+ double ds;
+ char *s, *s0;
+ _double d, d2, eps;
+
+ value(d) = _d;
+
+ if (word0(d) & Sign_bit) {
+ /* set sign for everything, including 0's and NaNs */
+ *sign = 1;
+ word0(d) &= ~Sign_bit; /* clear sign bit */
+ }
+ else
+ *sign = 0;
+
+#if defined(IEEE_Arith) + defined(VAX)
+#ifdef IEEE_Arith
+ if ((word0(d) & Exp_mask) == Exp_mask)
+#else
+ if (word0(d) == 0x8000)
+#endif
+ {
+ /* Infinity or NaN */
+ *decpt = 9999;
+#ifdef IEEE_Arith
+ if (!word1(d) && !(word0(d) & 0xfffff))
+ return nrv_alloc("Infinity", rve, 8);
+#endif
+ return nrv_alloc("NaN", rve, 3);
+ }
+#endif
+#ifdef IBM
+ value(d) += 0; /* normalize */
+#endif
+ if (!value(d)) {
+ *decpt = 1;
+ return nrv_alloc("0", rve, 1);
+ }
+
+ b = d2b(value(d), &be, &bbits);
+#ifdef Sudden_Underflow
+ i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
+#else
+ if ((i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
+#endif
+ value(d2) = value(d);
+ word0(d2) &= Frac_mask1;
+ word0(d2) |= Exp_11;
+#ifdef IBM
+ if (j = 11 - hi0bits(word0(d2) & Frac_mask))
+ value(d2) /= 1 << j;
+#endif
+
+ /* log(x) ~=~ log(1.5) + (x-1.5)/1.5
+ * log10(x) = log(x) / log(10)
+ * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))
+ * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)
+ *
+ * This suggests computing an approximation k to log10(d) by
+ *
+ * k = (i - Bias)*0.301029995663981
+ * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );
+ *
+ * We want k to be too large rather than too small.
+ * The error in the first-order Taylor series approximation
+ * is in our favor, so we just round up the constant enough
+ * to compensate for any error in the multiplication of
+ * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077,
+ * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,
+ * adding 1e-13 to the constant term more than suffices.
+ * Hence we adjust the constant term to 0.1760912590558.
+ * (We could get a more accurate k by invoking log10,
+ * but this is probably not worthwhile.)
+ */
+
+ i -= Bias;
+#ifdef IBM
+ i <<= 2;
+ i += j;
+#endif
+#ifndef Sudden_Underflow
+ denorm = 0;
+ }
+ else {
+ /* d is denormalized */
+
+ i = bbits + be + (Bias + (P-1) - 1);
+ x = i > 32 ? (word0(d) << (64 - i)) | (word1(d) >> (i - 32))
+ : (word1(d) << (32 - i));
+ value(d2) = x;
+ word0(d2) -= 31*Exp_msk1; /* adjust exponent */
+ i -= (Bias + (P-1) - 1) + 1;
+ denorm = 1;
+ }
+#endif
+ ds = (value(d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
+ k = (int)ds;
+ if (ds < 0. && ds != k)
+ k--; /* want k = floor(ds) */
+ k_check = 1;
+ if (k >= 0 && k <= Ten_pmax) {
+ if (value(d) < tens[k])
+ k--;
+ k_check = 0;
+ }
+ j = bbits - i - 1;
+ if (j >= 0) {
+ b2 = 0;
+ s2 = j;
+ }
+ else {
+ b2 = -j;
+ s2 = 0;
+ }
+ if (k >= 0) {
+ b5 = 0;
+ s5 = k;
+ s2 += k;
+ }
+ else {
+ b2 -= k;
+ b5 = -k;
+ s5 = 0;
+ }
+ if (mode < 0 || mode > 9)
+ mode = 0;
+ try_quick = 1;
+ if (mode > 5) {
+ mode -= 4;
+ try_quick = 0;
+ }
+ leftright = 1;
+ switch(mode) {
+ case 0:
+ case 1:
+ ilim = ilim1 = -1;
+ i = 18;
+ ndigits = 0;
+ break;
+ case 2:
+ leftright = 0;
+ /* no break */
+ case 4:
+ if (ndigits <= 0)
+ ndigits = 1;
+ ilim = ilim1 = i = ndigits;
+ break;
+ case 3:
+ leftright = 0;
+ /* no break */
+ case 5:
+ i = ndigits + k + 1;
+ ilim = i;
+ ilim1 = i - 1;
+ if (i <= 0)
+ i = 1;
+ }
+ s = s0 = rv_alloc(i);
+
+ if (ilim >= 0 && ilim <= Quick_max && try_quick) {
+
+ /* Try to get by with floating-point arithmetic. */
+
+ i = 0;
+ value(d2) = value(d);
+ k0 = k;
+ ilim0 = ilim;
+ ieps = 2; /* conservative */
+ if (k > 0) {
+ ds = tens[k&0xf];
+ j = k >> 4;
+ if (j & Bletch) {
+ /* prevent overflows */
+ j &= Bletch - 1;
+ value(d) /= bigtens[n_bigtens-1];
+ ieps++;
+ }
+ for(; j; j >>= 1, i++)
+ if (j & 1) {
+ ieps++;
+ ds *= bigtens[i];
+ }
+ value(d) /= ds;
+ }
+ else if ((j1 = -k)) {
+ value(d) *= tens[j1 & 0xf];
+ for(j = j1 >> 4; j; j >>= 1, i++)
+ if (j & 1) {
+ ieps++;
+ value(d) *= bigtens[i];
+ }
+ }
+ if (k_check && value(d) < 1. && ilim > 0) {
+ if (ilim1 <= 0)
+ goto fast_failed;
+ ilim = ilim1;
+ k--;
+ value(d) *= 10.;
+ ieps++;
+ }
+ value(eps) = ieps*value(d) + 7.;
+ word0(eps) -= (P-1)*Exp_msk1;
+ if (ilim == 0) {
+ S = mhi = 0;
+ value(d) -= 5.;
+ if (value(d) > value(eps))
+ goto one_digit;
+ if (value(d) < -value(eps))
+ goto no_digits;
+ goto fast_failed;
+ }
+#ifndef No_leftright
+ if (leftright) {
+ /* Use Steele & White method of only
+ * generating digits needed.
+ */
+ value(eps) = 0.5/tens[ilim-1] - value(eps);
+ for(i = 0;;) {
+ L = value(d);
+ value(d) -= L;
+ *s++ = '0' + (int)L;
+ if (value(d) < value(eps))
+ goto ret1;
+ if (1. - value(d) < value(eps))
+ goto bump_up;
+ if (++i >= ilim)
+ break;
+ value(eps) *= 10.;
+ value(d) *= 10.;
+ }
+ }
+ else {
+#endif
+ /* Generate ilim digits, then fix them up. */
+ value(eps) *= tens[ilim-1];
+ for(i = 1;; i++, value(d) *= 10.) {
+ L = value(d);
+ value(d) -= L;
+ *s++ = '0' + (int)L;
+ if (i == ilim) {
+ if (value(d) > 0.5 + value(eps))
+ goto bump_up;
+ else if (value(d) < 0.5 - value(eps)) {
+ /* cut ALL traling zeros only if the number of chars is greater than precision
+ * otherwise cut only extra zeros
+ */
+ if (k < ndigits) {
+ while(*--s == '0' && (s - s0) > k);
+ } else {
+ while(*--s == '0');
+ }
+ s++;
+ goto ret1;
+ }
+ break;
+ }
+ }
+#ifndef No_leftright
+ }
+#endif
+fast_failed:
+ s = s0;
+ value(d) = value(d2);
+ k = k0;
+ ilim = ilim0;
+ }
+
+ /* Do we have a "small" integer? */
+
+ if (be >= 0 && k <= Int_max) {
+ /* Yes. */
+ ds = tens[k];
+ if (ndigits < 0 && ilim <= 0) {
+ S = mhi = 0;
+ if (ilim < 0 || value(d) <= 5*ds)
+ goto no_digits;
+ goto one_digit;
+ }
+ for(i = 1;; i++) {
+ L = value(d) / ds;
+ value(d) -= L*ds;
+#ifdef Check_FLT_ROUNDS
+ /* If FLT_ROUNDS == 2, L will usually be high by 1 */
+ if (value(d) < 0) {
+ L--;
+ value(d) += ds;
+ }
+#endif
+ *s++ = '0' + (int)L;
+ if (i == ilim) {
+ value(d) += value(d);
+ if (value(d) > ds || (value(d) == ds && (L & 1))) {
+bump_up:
+ while(*--s == '9')
+ if (s == s0) {
+ k++;
+ *s = '0';
+ break;
+ }
+ ++*s++;
+ }
+ break;
+ }
+ if (!(value(d) *= 10.))
+ break;
+ }
+ goto ret1;
+ }
+
+ m2 = b2;
+ m5 = b5;
+ mhi = mlo = 0;
+ if (leftright) {
+ if (mode < 2) {
+ i =
+#ifndef Sudden_Underflow
+ denorm ? be + (Bias + (P-1) - 1 + 1) :
+#endif
+#ifdef IBM
+ 1 + 4*P - 3 - bbits + ((bbits + be - 1) & 3);
+#else
+ 1 + P - bbits;
+#endif
+ }
+ else {
+ j = ilim - 1;
+ if (m5 >= j)
+ m5 -= j;
+ else {
+ s5 += j -= m5;
+ b5 += j;
+ m5 = 0;
+ }
+ if ((i = ilim) < 0) {
+ m2 -= i;
+ i = 0;
+ }
+ }
+ b2 += i;
+ s2 += i;
+ mhi = i2b(1);
+ }
+ if (m2 > 0 && s2 > 0) {
+ i = m2 < s2 ? m2 : s2;
+ b2 -= i;
+ m2 -= i;
+ s2 -= i;
+ }
+ if (b5 > 0) {
+ if (leftright) {
+ if (m5 > 0) {
+ mhi = pow5mult(mhi, m5);
+ b1 = mult(mhi, b);
+ Bfree(b);
+ b = b1;
+ }
+ if ((j = b5 - m5)) {
+ b = pow5mult(b, j);
+ }
+ } else {
+ b = pow5mult(b, b5);
+ }
+ }
+ S = i2b(1);
+ if (s5 > 0)
+ S = pow5mult(S, s5);
+ /* Check for special case that d is a normalized power of 2. */
+
+ if (mode < 2) {
+ if (!word1(d) && !(word0(d) & Bndry_mask)
+#ifndef Sudden_Underflow
+ && word0(d) & Exp_mask
+#endif
+ ) {
+ /* The special case */
+ b2 += Log2P;
+ s2 += Log2P;
+ spec_case = 1;
+ } else {
+ spec_case = 0;
+ }
+ }
+
+ /* Arrange for convenient computation of quotients:
+ * shift left if necessary so divisor has 4 leading 0 bits.
+ *
+ * Perhaps we should just compute leading 28 bits of S once
+ * and for all and pass them and a shift to quorem, so it
+ * can do shifts and ors to compute the numerator for q.
+ */
+#ifdef Pack_32
+ if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f))
+ i = 32 - i;
#else
- (CONST char *s00, char **se)
+ if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0xf))
+ i = 16 - i;
+#endif
+ if (i > 4) {
+ i -= 4;
+ b2 += i;
+ m2 += i;
+ s2 += i;
+ }
+ else if (i < 4) {
+ i += 28;
+ b2 += i;
+ m2 += i;
+ s2 += i;
+ }
+ if (b2 > 0)
+ b = lshift(b, b2);
+ if (s2 > 0)
+ S = lshift(S, s2);
+ if (k_check) {
+ if (cmp(b,S) < 0) {
+ k--;
+ b = multadd(b, 10, 0); /* we botched the k estimate */
+ if (leftright)
+ mhi = multadd(mhi, 10, 0);
+ ilim = ilim1;
+ }
+ }
+ if (ilim <= 0 && mode > 2) {
+ if (ilim < 0 || cmp(b,S = multadd(S,5,0)) <= 0) {
+ /* no digits, fcvt style */
+no_digits:
+ k = -1 - ndigits;
+ goto ret;
+ }
+one_digit:
+ *s++ = '1';
+ k++;
+ goto ret;
+ }
+ if (leftright) {
+ if (m2 > 0)
+ mhi = lshift(mhi, m2);
+
+ /* Compute mlo -- check for special case
+ * that d is a normalized power of 2.
+ */
+
+ mlo = mhi;
+ if (spec_case) {
+ mhi = Balloc(mhi->k);
+ Bcopy(mhi, mlo);
+ mhi = lshift(mhi, Log2P);
+ }
+
+ for(i = 1;;i++) {
+ dig = quorem(b,S) + '0';
+ /* Do we yet have the shortest decimal string
+ * that will round to d?
+ */
+ j = cmp(b, mlo);
+ delta = diff(S, mhi);
+ j1 = delta->sign ? 1 : cmp(b, delta);
+ Bfree(delta);
+#ifndef ROUND_BIASED
+ if (j1 == 0 && !mode && !(word1(d) & 1)) {
+ if (dig == '9')
+ goto round_9_up;
+ if (j > 0)
+ dig++;
+ *s++ = dig;
+ goto ret;
+ }
#endif
+ if (j < 0 || (j == 0 && !mode
+#ifndef ROUND_BIASED
+ && !(word1(d) & 1)
+#endif
+ )) {
+ if (j1 > 0) {
+ b = lshift(b, 1);
+ j1 = cmp(b, S);
+ if ((j1 > 0 || (j1 == 0 && (dig & 1)))
+ && dig++ == '9')
+ goto round_9_up;
+ }
+ *s++ = dig;
+ goto ret;
+ }
+ if (j1 > 0) {
+ if (dig == '9') { /* possible if i == 1 */
+round_9_up:
+ *s++ = '9';
+ goto roundoff;
+ }
+ *s++ = dig + 1;
+ goto ret;
+ }
+ *s++ = dig;
+ if (i == ilim)
+ break;
+ b = multadd(b, 10, 0);
+ if (mlo == mhi)
+ mlo = mhi = multadd(mhi, 10, 0);
+ else {
+ mlo = multadd(mlo, 10, 0);
+ mhi = multadd(mhi, 10, 0);
+ }
+ }
+ }
+ else
+ for(i = 1;; i++) {
+ *s++ = dig = quorem(b,S) + '0';
+ if (i >= ilim)
+ break;
+ b = multadd(b, 10, 0);
+ }
+
+ /* Round off last digit */
+
+ b = lshift(b, 1);
+ j = cmp(b, S);
+ if (j > 0 || (j == 0 && (dig & 1))) {
+roundoff:
+ while(*--s == '9')
+ if (s == s0) {
+ k++;
+ *s++ = '1';
+ goto ret;
+ }
+ ++*s++;
+ }
+ else {
+ while(*--s == '0');
+ s++;
+ }
+ret:
+ Bfree(S);
+ if (mhi) {
+ if (mlo && mlo != mhi)
+ Bfree(mlo);
+ Bfree(mhi);
+ }
+ret1:
+
+ _THREAD_PRIVATE_MUTEX_LOCK(pow5mult_mutex);
+ while (p5s) {
+ tmp = p5s;
+ p5s = p5s->next;
+ free(tmp);
+ }
+ _THREAD_PRIVATE_MUTEX_UNLOCK(pow5mult_mutex);
+
+ Bfree(b);
+
+ if (s == s0) { /* don't return empty string */
+ *s++ = '0';
+ k = 0;
+ }
+ *s = 0;
+ *decpt = k + 1;
+ if (rve)
+ *rve = s;
+ return s0;
+}
+
+ZEND_API double zend_strtod (CONST char *s00, char **se)
{
int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign,
- e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
+ e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
CONST char *s, *s0, *s1;
double aadj, aadj1, adj;
_double rv, rv0;
@@ -1280,7 +2064,7 @@ zend_strtod
while(*++s == '0') ;
if (!*s)
goto ret;
- }
+ }
s0 = s;
y = z = 0;
for(nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++)
@@ -1299,11 +2083,11 @@ zend_strtod
nf += nz;
nz = 0;
goto have_dig;
- }
- goto dig_done;
}
+ goto dig_done;
+ }
for(; c >= '0' && c <= '9'; c = *++s) {
- have_dig:
+have_dig:
nz++;
if (c -= '0') {
nf += nz;
@@ -1317,16 +2101,16 @@ zend_strtod
else if (nd <= DBL_DIG + 1)
z = 10*z + c;
nz = 0;
- }
}
}
- dig_done:
+ }
+dig_done:
e = 0;
if (c == 'e' || c == 'E') {
if (!nd && !nz && !nz0) {
s = s00;
goto ret;
- }
+ }
s00 = s;
esign = 0;
switch(c = *++s) {
@@ -1334,7 +2118,7 @@ zend_strtod
esign = 1;
case '+':
c = *++s;
- }
+ }
if (c >= '0' && c <= '9') {
while(c == '0')
c = *++s;
@@ -1352,18 +2136,18 @@ zend_strtod
e = (int)L;
if (esign)
e = -e;
- }
+ }
else
e = 0;
- }
+ }
else
s = s00;
- }
+ }
if (!nd) {
if (!nz && !nz0)
s = s00;
goto ret;
- }
+ }
e1 = e -= nf;
/* Now we have nd0 digits, starting at s0, followed by a
@@ -1380,9 +2164,9 @@ zend_strtod
bd0 = 0;
if (nd <= DBL_DIG
#ifndef RND_PRODQUOT
- && FLT_ROUNDS == 1
+ && FLT_ROUNDS == 1
#endif
- ) {
+ ) {
if (!e)
goto ret;
if (e > 0) {
@@ -1391,10 +2175,10 @@ zend_strtod
goto vax_ovfl_check;
#else
/* value(rv) = */ rounded_product(value(rv),
- tens[e]);
+ tens[e]);
goto ret;
#endif
- }
+ }
i = DBL_DIG - nd;
if (e <= Ten_pmax + i) {
/* A fancier test would sometimes let us do
@@ -1406,29 +2190,29 @@ zend_strtod
/* VAX exponent range is so narrow we must
* worry about overflow here...
*/
- vax_ovfl_check:
+vax_ovfl_check:
word0(rv) -= P*Exp_msk1;
/* value(rv) = */ rounded_product(value(rv),
- tens[e]);
+ tens[e]);
if ((word0(rv) & Exp_mask)
- > Exp_msk1*(DBL_MAX_EXP+Bias-1-P))
+ > Exp_msk1*(DBL_MAX_EXP+Bias-1-P))
goto ovfl;
word0(rv) += P*Exp_msk1;
#else
/* value(rv) = */ rounded_product(value(rv),
- tens[e]);
+ tens[e]);
#endif
goto ret;
- }
}
+ }
#ifndef Inaccurate_Divide
else if (e >= -Ten_pmax) {
/* value(rv) = */ rounded_quotient(value(rv),
- tens[-e]);
+ tens[-e]);
goto ret;
- }
-#endif
}
+#endif
+ }
e1 += nd - k;
/* Get starting approximation = rv * 10**e1 */
@@ -1438,7 +2222,7 @@ zend_strtod
value(rv) *= tens[i];
if (e1 &= ~15) {
if (e1 > DBL_MAX_10_EXP) {
- ovfl:
+ovfl:
errno = ERANGE;
#ifndef Bad_float_h
value(rv) = HUGE_VAL;
@@ -1455,29 +2239,29 @@ zend_strtod
if (bd0)
goto retfree;
goto ret;
- }
+ }
if (e1 >>= 4) {
for(j = 0; e1 > 1; j++, e1 >>= 1)
if (e1 & 1)
value(rv) *= bigtens[j];
- /* The last multiplication could overflow. */
+ /* The last multiplication could overflow. */
word0(rv) -= P*Exp_msk1;
value(rv) *= bigtens[j];
if ((z = word0(rv) & Exp_mask)
- > Exp_msk1*(DBL_MAX_EXP+Bias-P))
+ > Exp_msk1*(DBL_MAX_EXP+Bias-P))
goto ovfl;
if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) {
/* set to largest number */
/* (Can't trust DBL_MAX) */
word0(rv) = Big0;
word1(rv) = Big1;
- }
+ }
else
word0(rv) += P*Exp_msk1;
- }
-
}
+
}
+ }
else if (e1 < 0) {
e1 = -e1;
if ((i = e1 & 15))
@@ -1496,21 +2280,21 @@ zend_strtod
value(rv) = 2.*value(rv0);
value(rv) *= tinytens[j];
if (!value(rv)) {
- undfl:
+undfl:
value(rv) = 0.;
errno = ERANGE;
if (bd0)
goto retfree;
goto ret;
- }
+ }
word0(rv) = Tiny0;
word1(rv) = Tiny1;
/* The refinement below will clean
* this approximation up.
*/
- }
}
}
+ }
/* Now the hard part -- adjusting rv to the correct value.*/
@@ -1527,11 +2311,11 @@ zend_strtod
if (e >= 0) {
bb2 = bb5 = 0;
bd2 = bd5 = e;
- }
+ }
else {
bb2 = bb5 = -e;
bd2 = bd5 = 0;
- }
+ }
if (bbe >= 0)
bb2 += bbe;
else
@@ -1559,13 +2343,13 @@ zend_strtod
bb2 -= i;
bd2 -= i;
bs2 -= i;
- }
+ }
if (bb5 > 0) {
bs = pow5mult(bs, bb5);
bb1 = mult(bs, bb);
Bfree(bb);
bb = bb1;
- }
+ }
if (bb2 > 0)
bb = lshift(bb, bb2);
if (bd5 > 0)
@@ -1588,12 +2372,12 @@ zend_strtod
if (cmp(delta, bs) > 0)
goto drop_down;
break;
- }
+ }
if (i == 0) {
/* exactly half-way between */
if (dsign) {
if ((word0(rv) & Bndry_mask1) == Bndry_mask1
- && word1(rv) == 0xffffffff) {
+ && word1(rv) == 0xffffffff) {
/*boundary case -- increment exponent*/
word0(rv) = (word0(rv) & Exp_mask)
+ Exp_msk1
@@ -1603,19 +2387,19 @@ zend_strtod
;
word1(rv) = 0;
break;
- }
}
+ }
else if (!(word0(rv) & Bndry_mask) && !word1(rv)) {
- drop_down:
+drop_down:
/* boundary case -- decrement exponent */
#ifdef Sudden_Underflow
L = word0(rv) & Exp_mask;
#ifdef IBM
if (L < Exp_msk1)
#else
- if (L <= Exp_msk1)
+ if (L <= Exp_msk1)
#endif
- goto undfl;
+ goto undfl;
L -= Exp_msk1;
#else
L = (word0(rv) & Exp_mask) - Exp_msk1;
@@ -1627,7 +2411,7 @@ zend_strtod
#else
break;
#endif
- }
+ }
#ifndef ROUND_BIASED
if (!(word1(rv) & LSB))
break;
@@ -1641,10 +2425,10 @@ zend_strtod
if (!value(rv))
goto undfl;
#endif
- }
+ }
#endif
break;
- }
+ }
if ((aadj = ratio(delta, bs)) <= 2.) {
if (dsign)
aadj = aadj1 = 1.;
@@ -1655,7 +2439,7 @@ zend_strtod
#endif
aadj = 1.;
aadj1 = -1.;
- }
+ }
else {
/* special case -- power of FLT_RADIX to be */
/* rounded down... */
@@ -1665,8 +2449,8 @@ zend_strtod
else
aadj *= 0.5;
aadj1 = -aadj;
- }
}
+ }
else {
aadj *= 0.5;
aadj1 = dsign ? aadj : -aadj;
@@ -1678,12 +2462,12 @@ zend_strtod
case 0: /* towards 0 */
case 3: /* towards -infinity */
aadj1 += 0.5;
- }
+ }
#else
if (FLT_ROUNDS == 0)
aadj1 += 0.5;
#endif
- }
+ }
y = word0(rv) & Exp_mask;
/* Check for overflow */
@@ -1700,10 +2484,10 @@ zend_strtod
word0(rv) = Big0;
word1(rv) = Big1;
goto cont;
- }
+ }
else
word0(rv) += P*Exp_msk1;
- }
+ }
else {
#ifdef Sudden_Underflow
if ((word0(rv) & Exp_mask) <= P*Exp_msk1) {
@@ -1714,23 +2498,23 @@ zend_strtod
#ifdef IBM
if ((word0(rv) & Exp_mask) < P*Exp_msk1)
#else
- if ((word0(rv) & Exp_mask) <= P*Exp_msk1)
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1)
#endif
{
- if (word0(rv0) == Tiny0
- && word1(rv0) == Tiny1)
- goto undfl;
- word0(rv) = Tiny0;
- word1(rv) = Tiny1;
- goto cont;
+ if (word0(rv0) == Tiny0
+ && word1(rv0) == Tiny1)
+ goto undfl;
+ word0(rv) = Tiny0;
+ word1(rv) = Tiny1;
+ goto cont;
}
- else
- word0(rv) -= P*Exp_msk1;
- }
+ else
+ word0(rv) -= P*Exp_msk1;
+ }
else {
adj = aadj1 * ulp(value(rv));
value(rv) += adj;
- }
+ }
#else
/* Compute adj so that the IEEE rounding rules will
* correctly round rv + adj in some half-way cases.
@@ -1743,11 +2527,11 @@ zend_strtod
aadj1 = (double)(int)(aadj + 0.5);
if (!dsign)
aadj1 = -aadj1;
- }
+ }
adj = aadj1 * ulp(value(rv));
value(rv) += adj;
#endif
- }
+ }
z = word0(rv) & Exp_mask;
if (y == z) {
/* Can we stop now? */
@@ -1757,41 +2541,104 @@ zend_strtod
if (dsign || word1(rv) || word0(rv) & Bndry_mask) {
if (aadj < .4999999 || aadj > .5000001)
break;
- }
+ }
else if (aadj < .4999999/FLT_RADIX)
break;
- }
- cont:
+ }
+cont:
Bfree(bb);
Bfree(bd);
Bfree(bs);
Bfree(delta);
- }
- retfree:
+ }
+retfree:
Bfree(bb);
Bfree(bd);
Bfree(bs);
Bfree(bd0);
Bfree(delta);
- ret:
+ret:
if (se)
*se = (char *)s;
result = sign ? -value(rv) : value(rv);
-
- for (i = 0; i <= Kmax; i++) {
- Bigint **listp = &freelist[i];
- while ((tmp = *listp) != NULL) {
- *listp = tmp->next;
- free(tmp);
- }
- freelist[i] = NULL;
- }
-
+
+ _THREAD_PRIVATE_MUTEX_LOCK(pow5mult_mutex);
while (p5s) {
tmp = p5s;
p5s = p5s->next;
free(tmp);
}
-
+ _THREAD_PRIVATE_MUTEX_UNLOCK(pow5mult_mutex);
+
return result;
+}
+
+ZEND_API double zend_hex_strtod(const char *str, char **endptr)
+{
+ const char *s = str;
+ char c;
+ int any = 0;
+ double value = 0;
+
+ if (*s == '0' && (s[1] == 'x' || s[1] == 'X')) {
+ s += 2;
}
+
+ while ((c = *s++)) {
+ if (c >= '0' && c <= '9') {
+ c -= '0';
+ } else if (c >= 'A' && c <= 'F') {
+ c -= 'A' - 10;
+ } else if (c >= 'a' && c <= 'f') {
+ c -= 'a' - 10;
+ } else {
+ break;
+ }
+
+ any = 1;
+ value = value * 16 + c;
+ }
+
+ if (endptr != NULL) {
+ *endptr = (char *)(any ? s - 1 : str);
+ }
+
+ return value;
+}
+
+ZEND_API double zend_oct_strtod(const char *str, char **endptr)
+{
+ const char *s = str;
+ char c;
+ double value = 0;
+ int any = 0;
+
+ /* skip leading zero */
+ s++;
+
+ while ((c = *s++)) {
+ if (c > '7') {
+ /* break and return the current value if the number is not well-formed
+ * that's what Linux strtol() does
+ */
+ break;
+ }
+ value = value * 8 + c - '0';
+ any = 1;
+ }
+
+ if (endptr != NULL) {
+ *endptr = (char *)(any ? s - 1 : str);
+ }
+
+ return value;
+}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: sw=4 ts=4 fdm=marker
+ * vim<600: sw=4 ts=4
+ */
diff --git a/Zend/zend_strtod.h b/Zend/zend_strtod.h
index 093417298..249b63a39 100644
--- a/Zend/zend_strtod.h
+++ b/Zend/zend_strtod.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_strtod.h,v 1.3.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_strtod.h,v 1.3.2.1.2.4 2007/04/22 21:33:10 tony2001 Exp $ */
/* This is a header file for the strtod implementation by David M. Gay which
* can be found in zend_strtod.c */
@@ -25,7 +25,13 @@
#include <zend.h>
BEGIN_EXTERN_C()
+ZEND_API void zend_freedtoa(char *s);
+ZEND_API char * zend_dtoa(double _d, int mode, int ndigits, int *decpt, int *sign, char **rve);
ZEND_API double zend_strtod(const char *s00, char **se);
+ZEND_API double zend_hex_strtod(const char *str, char **endptr);
+ZEND_API double zend_oct_strtod(const char *str, char **endptr);
+ZEND_API int zend_startup_strtod(void);
+ZEND_API int zend_shutdown_strtod(void);
END_EXTERN_C()
#endif
diff --git a/Zend/zend_ts_hash.c b/Zend/zend_ts_hash.c
index 5017f9cee..f1680adf7 100644
--- a/Zend/zend_ts_hash.c
+++ b/Zend/zend_ts_hash.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ts_hash.c,v 1.14.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ts_hash.c,v 1.14.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#include "zend.h"
#include "zend_ts_hash.h"
diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h
index 5dfce0e48..d63400796 100644
--- a/Zend/zend_ts_hash.h
+++ b/Zend/zend_ts_hash.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ts_hash.h,v 1.13.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ts_hash.h,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_TS_HASH_H
#define ZEND_TS_HASH_H
diff --git a/Zend/zend_types.h b/Zend/zend_types.h
index 52f113306..c7c0b9717 100644
--- a/Zend/zend_types.h
+++ b/Zend/zend_types.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_types.h,v 1.6.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_types.h,v 1.6.2.2.2.3 2007/04/17 06:26:31 dmitry Exp $ */
#ifndef ZEND_TYPES_H
#define ZEND_TYPES_H
@@ -28,6 +28,14 @@ typedef unsigned int zend_uint;
typedef unsigned long zend_ulong;
typedef unsigned short zend_ushort;
+#ifdef _WIN64
+typedef __int64 zend_intptr_t;
+typedef unsigned __int64 zend_uintptr_t;
+#else
+typedef long zend_intptr_t;
+typedef unsigned long zend_uintptr_t;
+#endif
+
typedef unsigned int zend_object_handle;
typedef struct _zend_object_handlers zend_object_handlers;
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c
index 4faecc22e..9a2c374ec 100644
--- a/Zend/zend_variables.c
+++ b/Zend/zend_variables.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_variables.c,v 1.62.2.1.2.1 2006/10/03 11:10:33 dmitry Exp $ */
+/* $Id: zend_variables.c,v 1.62.2.1.2.2 2007/01/01 09:35:47 sebastian Exp $ */
#include <stdio.h>
#include "zend.h"
diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h
index f682949b7..ccebc3b96 100644
--- a/Zend/zend_variables.h
+++ b/Zend/zend_variables.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_variables.h,v 1.34.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_variables.h,v 1.34.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_VARIABLES_H
#define ZEND_VARIABLES_H
diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h
index 6a2de7aa2..158d8afb2 100644
--- a/Zend/zend_vm.h
+++ b/Zend/zend_vm.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm.h,v 1.7.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_vm.h,v 1.7.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */
#ifndef ZEND_VM_H
#define ZEND_VM_H
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 340579cd3..72967a230 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm_def.h,v 1.59.2.29.2.32 2006/10/30 11:04:31 dmitry Exp $ */
+/* $Id: zend_vm_def.h,v 1.59.2.29.2.43 2007/04/16 08:09:55 dmitry Exp $ */
/* If you change this file, please regenerate the zend_vm_execute.h and
* zend_vm_opcodes.h files by running:
@@ -408,11 +408,11 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
case ZEND_ASSIGN_DIM: {
zval **object_ptr = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_W);
- if (OP1_TYPE != IS_CV && !OP1_FREE) {
+ if (object_ptr && OP1_TYPE != IS_CV && !OP1_FREE) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
ZEND_VM_DISPATCH_TO_HELPER_EX(zend_binary_assign_op_obj_helper, binary_op, binary_op);
} else {
zend_op *op_data = opline+1;
@@ -1328,7 +1328,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
if (IS_OP2_TMP_FREE()) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (IS_OP2_TMP_FREE()) {
zval_ptr_dtor(&property);
} else {
@@ -1350,7 +1350,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
ZEND_VM_NEXT_OPCODE();
}
-ZEND_VM_HANDLER(98, ZEND_FETCH_DIM_TMP_VAR, TMP, CONST)
+ZEND_VM_HANDLER(98, ZEND_FETCH_DIM_TMP_VAR, CONST|TMP, CONST)
{
zend_op *opline = EX(opline);
zend_free_op free_op1;
@@ -1765,7 +1765,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, ANY, CONST|TMP|VAR|UNUSED|CV)
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -1857,7 +1857,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
}
}
- zend_ptr_stack_2_push(&EG(argument_stack), (void *) opline->extended_value, NULL);
+ zend_ptr_stack_2_push(&EG(argument_stack), (void *)(zend_uintptr_t)opline->extended_value, NULL);
EX_T(opline->result.u.var).var.ptr_ptr = &EX_T(opline->result.u.var).var.ptr;
@@ -1900,7 +1900,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
ulong arg_count;
p = (zval **) EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (ulong)(zend_uintptr_t) *p;
while (arg_count>0) {
zend_verify_arg_type(EX(function_state).function, ++i, *(p-arg_count) TSRMLS_CC);
@@ -2255,7 +2255,15 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
}
- varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ if (OP1_TYPE == IS_VAR &&
+ (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
+ EX_T(opline->op1.u.var).var.fcall_returned_reference &&
+ EX_T(opline->op1.u.var).var.ptr) {
+ varptr = EX_T(opline->op1.u.var).var.ptr;
+ PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
+ } else {
+ varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ }
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.u.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
@@ -3094,6 +3102,9 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
} else {
if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (opline->extended_value & ZEND_FE_FETCH_BYREF) {
+ (*array_ptr_ptr)->is_ref = 1;
+ }
}
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
@@ -3129,7 +3140,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
}
}
- if (ce && ce->get_iterator) {
+ if (OP1_TYPE != IS_TMP_VAR && ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (iter && !EG(exception)) {
@@ -3191,13 +3202,15 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
if (key_type != HASH_KEY_NON_EXISTANT &&
- zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS) {
+ (key_type == HASH_KEY_IS_LONG ||
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS)) {
break;
}
zend_hash_move_forward(fe_ht);
}
}
is_empty = zend_hash_has_more_elements(fe_ht) != SUCCESS;
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->result.u.var).fe.fe_pos);
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
is_empty = 1;
@@ -3242,6 +3255,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
zend_object *zobj = zend_objects_get_address(array TSRMLS_CC);
fe_ht = HASH_OF(array);
+ zend_hash_set_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
do {
if (zend_hash_get_current_data(fe_ht, (void **) &value)==FAILURE) {
/* reached end of iteration */
@@ -3250,8 +3264,11 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
zend_hash_move_forward(fe_ht);
- } while (key_type == HASH_KEY_NON_EXISTANT || zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) != SUCCESS);
- if (use_key) {
+ } while (key_type == HASH_KEY_NON_EXISTANT ||
+ (key_type != HASH_KEY_IS_LONG &&
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) != SUCCESS));
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
+ if (use_key && key_type != HASH_KEY_IS_LONG) {
zend_unmangle_property_name(str_key, str_key_len-1, &class_name, &prop_name);
str_key_len = strlen(prop_name);
str_key = estrndup(prop_name, str_key_len);
@@ -3262,6 +3279,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
case ZEND_ITER_PLAIN_ARRAY:
fe_ht = HASH_OF(array);
+ zend_hash_set_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
if (zend_hash_get_current_data(fe_ht, (void **) &value)==FAILURE) {
/* reached end of iteration */
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.u.opline_num);
@@ -3270,6 +3288,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 1, NULL);
}
zend_hash_move_forward(fe_ht);
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
break;
case ZEND_ITER_OBJECT:
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 19ecb8830..dc1758b17 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -145,7 +145,7 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
}
}
- zend_ptr_stack_2_push(&EG(argument_stack), (void *) opline->extended_value, NULL);
+ zend_ptr_stack_2_push(&EG(argument_stack), (void *)(zend_uintptr_t)opline->extended_value, NULL);
EX_T(opline->result.u.var).var.ptr_ptr = &EX_T(opline->result.u.var).var.ptr;
@@ -188,7 +188,7 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
ulong arg_count;
p = (zval **) EG(argument_stack).top_element-2;
- arg_count = (ulong) *p;
+ arg_count = (ulong)(zend_uintptr_t) *p;
while (arg_count>0) {
zend_verify_arg_type(EX(function_state).function, ++i, *(p-arg_count) TSRMLS_CC);
@@ -694,7 +694,7 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -898,7 +898,7 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -1059,7 +1059,7 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -1219,7 +1219,7 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -1312,7 +1312,7 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if(!ce->constructor) {
zend_error_noreturn(E_ERROR, "Can not call constructor");
}
- if (Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ if (EG(This) && Z_OBJCE_P(EG(This)) != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
zend_error(E_COMPILE_ERROR, "Cannot call private %s::__construct()", ce->name);
}
EX(fbc) = ce->constructor;
@@ -2151,6 +2151,9 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (opline->extended_value & ZEND_FE_FETCH_BYREF) {
+ (*array_ptr_ptr)->is_ref = 1;
+ }
}
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
@@ -2186,7 +2189,7 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
}
- if (ce && ce->get_iterator) {
+ if (IS_CONST != IS_TMP_VAR && ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (iter && !EG(exception)) {
@@ -2248,13 +2251,15 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
if (key_type != HASH_KEY_NON_EXISTANT &&
- zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS) {
+ (key_type == HASH_KEY_IS_LONG ||
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS)) {
break;
}
zend_hash_move_forward(fe_ht);
}
}
is_empty = zend_hash_has_more_elements(fe_ht) != SUCCESS;
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->result.u.var).fe.fe_pos);
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
is_empty = 1;
@@ -2607,6 +2612,29 @@ static int ZEND_BOOL_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ zend_op *opline = EX(opline);
+
+ zval *container = &opline->op1.u.constant;
+
+ if (Z_TYPE_P(container) != IS_ARRAY) {
+ if (!RETURN_VALUE_UNUSED(&opline->result)) {
+ EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
+ PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
+ }
+ } else {
+
+ zval *dim = &opline->op2.u.constant;
+
+ EX_T(opline->result.u.var).var.ptr_ptr = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, BP_VAR_R TSRMLS_CC);
+ SELECTIVE_PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &opline->result);
+
+ }
+ AI_USE_PTR(EX_T(opline->result.u.var).var);
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_CASE_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
zend_op *opline = EX(opline);
@@ -4690,6 +4718,9 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (opline->extended_value & ZEND_FE_FETCH_BYREF) {
+ (*array_ptr_ptr)->is_ref = 1;
+ }
}
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
@@ -4725,7 +4756,7 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
}
- if (ce && ce->get_iterator) {
+ if (IS_TMP_VAR != IS_TMP_VAR && ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (iter && !EG(exception)) {
@@ -4787,13 +4818,15 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
if (key_type != HASH_KEY_NON_EXISTANT &&
- zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS) {
+ (key_type == HASH_KEY_IS_LONG ||
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS)) {
break;
}
zend_hash_move_forward(fe_ht);
}
}
is_empty = zend_hash_has_more_elements(fe_ht) != SUCCESS;
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->result.u.var).fe.fe_pos);
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
is_empty = 1;
@@ -7412,7 +7445,15 @@ static int ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
- varptr = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
+ if (IS_VAR == IS_VAR &&
+ (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
+ EX_T(opline->op1.u.var).var.fcall_returned_reference &&
+ EX_T(opline->op1.u.var).var.ptr) {
+ varptr = EX_T(opline->op1.u.var).var.ptr;
+ PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
+ } else {
+ varptr = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
+ }
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.u.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
@@ -7811,6 +7852,9 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (opline->extended_value & ZEND_FE_FETCH_BYREF) {
+ (*array_ptr_ptr)->is_ref = 1;
+ }
}
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
@@ -7846,7 +7890,7 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
}
- if (ce && ce->get_iterator) {
+ if (IS_VAR != IS_TMP_VAR && ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (iter && !EG(exception)) {
@@ -7908,13 +7952,15 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
if (key_type != HASH_KEY_NON_EXISTANT &&
- zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS) {
+ (key_type == HASH_KEY_IS_LONG ||
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS)) {
break;
}
zend_hash_move_forward(fe_ht);
}
}
is_empty = zend_hash_has_more_elements(fe_ht) != SUCCESS;
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->result.u.var).fe.fe_pos);
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
is_empty = 1;
@@ -7959,6 +8005,7 @@ static int ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_object *zobj = zend_objects_get_address(array TSRMLS_CC);
fe_ht = HASH_OF(array);
+ zend_hash_set_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
do {
if (zend_hash_get_current_data(fe_ht, (void **) &value)==FAILURE) {
/* reached end of iteration */
@@ -7967,8 +8014,11 @@ static int ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
zend_hash_move_forward(fe_ht);
- } while (key_type == HASH_KEY_NON_EXISTANT || zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) != SUCCESS);
- if (use_key) {
+ } while (key_type == HASH_KEY_NON_EXISTANT ||
+ (key_type != HASH_KEY_IS_LONG &&
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) != SUCCESS));
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
+ if (use_key && key_type != HASH_KEY_IS_LONG) {
zend_unmangle_property_name(str_key, str_key_len-1, &class_name, &prop_name);
str_key_len = strlen(prop_name);
str_key = estrndup(prop_name, str_key_len);
@@ -7979,6 +8029,7 @@ static int ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
case ZEND_ITER_PLAIN_ARRAY:
fe_ht = HASH_OF(array);
+ zend_hash_set_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
if (zend_hash_get_current_data(fe_ht, (void **) &value)==FAILURE) {
/* reached end of iteration */
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.u.opline_num);
@@ -7987,6 +8038,7 @@ static int ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 1, NULL);
}
zend_hash_move_forward(fe_ht);
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->op1.u.var).fe.fe_pos);
break;
case ZEND_ITER_OBJECT:
@@ -8540,11 +8592,11 @@ static int zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binary_op)(zval *re
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- if (IS_VAR != IS_CV && !(free_op1.var != NULL)) {
+ if (object_ptr && IS_VAR != IS_CV && !(free_op1.var != NULL)) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -9142,7 +9194,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -10024,11 +10076,11 @@ static int zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_op)(zval *resu
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- if (IS_VAR != IS_CV && !(free_op1.var != NULL)) {
+ if (object_ptr && IS_VAR != IS_CV && !(free_op1.var != NULL)) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -10627,7 +10679,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (1) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (1) {
zval_ptr_dtor(&property);
} else {
@@ -11512,11 +11564,11 @@ static int zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_op)(zval *resu
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- if (IS_VAR != IS_CV && !(free_op1.var != NULL)) {
+ if (object_ptr && IS_VAR != IS_CV && !(free_op1.var != NULL)) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -12115,7 +12167,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -12804,11 +12856,11 @@ static int zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*binary_op)(zval *r
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- if (IS_VAR != IS_CV && !(free_op1.var != NULL)) {
+ if (object_ptr && IS_VAR != IS_CV && !(free_op1.var != NULL)) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -13473,11 +13525,11 @@ static int zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_op)(zval *resul
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- if (IS_VAR != IS_CV && !(free_op1.var != NULL)) {
+ if (object_ptr && IS_VAR != IS_CV && !(free_op1.var != NULL)) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_VAR_CV(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -14075,7 +14127,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -14839,11 +14891,11 @@ static int zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*binary_op)(zval
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- if (IS_UNUSED != IS_CV && !0) {
+ if (object_ptr && IS_UNUSED != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -15315,7 +15367,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -15842,11 +15894,11 @@ static int zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*binary_op)(zval *r
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- if (IS_UNUSED != IS_CV && !0) {
+ if (object_ptr && IS_UNUSED != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -16319,7 +16371,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (1) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (1) {
zval_ptr_dtor(&property);
} else {
@@ -16806,11 +16858,11 @@ static int zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*binary_op)(zval *r
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- if (IS_UNUSED != IS_CV && !0) {
+ if (object_ptr && IS_UNUSED != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -17283,7 +17335,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -17770,11 +17822,11 @@ static int zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*binary_op)(zval
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- if (IS_UNUSED != IS_CV && !0) {
+ if (object_ptr && IS_UNUSED != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -18036,11 +18088,11 @@ static int zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binary_op)(zval *re
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- if (IS_UNUSED != IS_CV && !0) {
+ if (object_ptr && IS_UNUSED != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -18512,7 +18564,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -19465,7 +19517,15 @@ static int ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
- varptr = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
+ if (IS_CV == IS_VAR &&
+ (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
+ EX_T(opline->op1.u.var).var.fcall_returned_reference &&
+ EX_T(opline->op1.u.var).var.ptr) {
+ varptr = EX_T(opline->op1.u.var).var.ptr;
+ PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
+ } else {
+ varptr = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
+ }
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.u.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
@@ -19856,6 +19916,9 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (opline->extended_value & ZEND_FE_FETCH_BYREF) {
+ (*array_ptr_ptr)->is_ref = 1;
+ }
}
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
@@ -19891,7 +19954,7 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
}
- if (ce && ce->get_iterator) {
+ if (IS_CV != IS_TMP_VAR && ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (iter && !EG(exception)) {
@@ -19953,13 +20016,15 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &str_key_len, &int_key, 0, NULL);
if (key_type != HASH_KEY_NON_EXISTANT &&
- zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS) {
+ (key_type == HASH_KEY_IS_LONG ||
+ zend_check_property_access(zobj, str_key, str_key_len-1 TSRMLS_CC) == SUCCESS)) {
break;
}
zend_hash_move_forward(fe_ht);
}
}
is_empty = zend_hash_has_more_elements(fe_ht) != SUCCESS;
+ zend_hash_get_pointer(fe_ht, &EX_T(opline->result.u.var).fe.fe_pos);
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
is_empty = 1;
@@ -20442,11 +20507,11 @@ static int zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary_op)(zval *res
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
- if (IS_CV != IS_CV && !0) {
+ if (object_ptr && IS_CV != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_CV_CONST(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -21043,7 +21108,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -21918,11 +21983,11 @@ static int zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_op)(zval *resul
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
- if (IS_CV != IS_CV && !0) {
+ if (object_ptr && IS_CV != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_CV_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -22520,7 +22585,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (1) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (1) {
zval_ptr_dtor(&property);
} else {
@@ -23398,11 +23463,11 @@ static int zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_op)(zval *resul
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
- if (IS_CV != IS_CV && !0) {
+ if (object_ptr && IS_CV != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_CV_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -24000,7 +24065,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -24681,11 +24746,11 @@ static int zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binary_op)(zval *re
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
- if (IS_CV != IS_CV && !0) {
+ if (object_ptr && IS_CV != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -25349,11 +25414,11 @@ static int zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op)(zval *result
case ZEND_ASSIGN_DIM: {
zval **object_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
- if (IS_CV != IS_CV && !0) {
+ if (object_ptr && IS_CV != IS_CV && !0) {
(*object_ptr)->refcount++; /* undo the effect of get_obj_zval_ptr_ptr() */
}
- if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
+ if (object_ptr && Z_TYPE_PP(object_ptr) == IS_OBJECT) {
return zend_binary_assign_op_obj_helper_SPEC_CV_CV(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
zend_op *op_data = opline+1;
@@ -25950,7 +26015,7 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (0) {
MAKE_REAL_ZVAL_PTR(property);
}
- zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_R TSRMLS_CC);
+ zend_fetch_property_address(RETURN_VALUE_UNUSED(&opline->result)?NULL:&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC);
if (0) {
zval_ptr_dtor(&property);
} else {
@@ -28960,7 +29025,7 @@ void zend_init_opcodes_handlers()
ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER,
- ZEND_NULL_HANDLER,
+ ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 9a1df4db8..062ac3915 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
@@ -16,7 +16,7 @@
| Authors: Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
- $Id: zend_vm_gen.php,v 1.12.2.5.2.3 2006/09/18 12:03:10 dmitry Exp $
+ $Id: zend_vm_gen.php,v 1.12.2.5.2.4 2007/01/09 11:53:08 dmitry Exp $
*/
$header_text = <<< DATA
@@ -24,7 +24,7 @@ $header_text = <<< DATA
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 31f17e1b7..230e11097 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| 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 |