summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2014-01-28 10:57:59 +0100
committerOndřej Surý <ondrej@sury.org>2014-01-28 10:57:59 +0100
commit575107aad92a460051e02de029067359083542b9 (patch)
tree462d4270312d11a5c064e151e3fdd2f671bd540b /Zend
parent650fb41a77b3a24ab4130b05fff243b64b241877 (diff)
downloadphp-575107aad92a460051e02de029067359083542b9.tar.gz
New upstream version 5.6.0~alpha1+dfsgupstream/5.6.0_alpha1+dfsg
Diffstat (limited to 'Zend')
-rw-r--r--Zend/Makefile.am2
-rw-r--r--Zend/RFCs/003.txt6
-rw-r--r--Zend/Zend.dsp8
-rw-r--r--Zend/ZendTS.dsp4
-rw-r--r--Zend/acinclude.m427
-rw-r--r--Zend/tests/arg_unpack/basic.phpt114
-rw-r--r--Zend/tests/arg_unpack/by_ref.phpt149
-rw-r--r--Zend/tests/arg_unpack/dynamic.phpt37
-rw-r--r--Zend/tests/arg_unpack/internal.phpt43
-rw-r--r--Zend/tests/arg_unpack/invalid_type.phpt59
-rw-r--r--Zend/tests/arg_unpack/many_args.phpt15
-rw-r--r--Zend/tests/arg_unpack/method.phpt45
-rw-r--r--Zend/tests/arg_unpack/new.phpt39
-rw-r--r--Zend/tests/arg_unpack/string_keys.phpt20
-rw-r--r--Zend/tests/arg_unpack/traversable_throwing_exception.phpt33
-rw-r--r--Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt34
-rw-r--r--Zend/tests/bug30820.phpt1
-rw-r--r--Zend/tests/bug65784.phpt2
-rw-r--r--Zend/tests/bug66252.phpt14
-rw-r--r--Zend/tests/bug66286.phpt26
-rw-r--r--Zend/tests/class_properties_dynamic.phpt13
-rw-r--r--Zend/tests/class_properties_static.phpt20
-rw-r--r--Zend/tests/closure_018.phpt5
-rw-r--r--Zend/tests/closure_019.phpt3
-rw-r--r--Zend/tests/constant_expressions.phpt91
-rw-r--r--Zend/tests/constant_expressions_classes.phpt43
-rw-r--r--Zend/tests/constant_expressions_dynamic.phpt11
-rw-r--r--Zend/tests/finally_goto_001.phpt14
-rw-r--r--Zend/tests/finally_goto_002.phpt14
-rw-r--r--Zend/tests/finally_goto_003.phpt15
-rw-r--r--Zend/tests/finally_goto_004.phpt14
-rw-r--r--Zend/tests/function_arguments_003.phpt17
-rw-r--r--Zend/tests/incompat_ctx_user.phpt20
-rw-r--r--Zend/tests/static_variable.phpt29
-rw-r--r--Zend/tests/use_const/alias.phpt26
-rw-r--r--Zend/tests/use_const/basic.phpt22
-rw-r--r--Zend/tests/use_const/case_sensivity.phpt12
-rw-r--r--Zend/tests/use_const/conflicting_use.phpt21
-rw-r--r--Zend/tests/use_const/conflicting_use_alias.phpt18
-rw-r--r--Zend/tests/use_const/define_imported.phpt14
-rw-r--r--Zend/tests/use_const/define_imported_before.phpt18
-rw-r--r--Zend/tests/use_const/includes/foo_bar.php5
-rw-r--r--Zend/tests/use_const/includes/foo_php_version.php5
-rw-r--r--Zend/tests/use_const/includes/global_bar.php3
-rw-r--r--Zend/tests/use_const/includes/global_baz.php3
-rw-r--r--Zend/tests/use_const/no_global_fallback.phpt14
-rw-r--r--Zend/tests/use_const/self_parent.phpt12
-rw-r--r--Zend/tests/use_const/shadow_core.phpt16
-rw-r--r--Zend/tests/use_const/shadow_global.phpt25
-rw-r--r--Zend/tests/use_function/alias.phpt30
-rw-r--r--Zend/tests/use_function/basic.phpt26
-rw-r--r--Zend/tests/use_function/case_insensivity.phpt13
-rw-r--r--Zend/tests/use_function/conditional_function_declaration.phpt17
-rw-r--r--Zend/tests/use_function/conflicting_use.phpt25
-rw-r--r--Zend/tests/use_function/conflicting_use_alias.phpt20
-rw-r--r--Zend/tests/use_function/conflicting_use_const_alias.phpt23
-rw-r--r--Zend/tests/use_function/define_imported.phpt14
-rw-r--r--Zend/tests/use_function/define_imported_before.phpt18
-rw-r--r--Zend/tests/use_function/ignore_constants.phpt23
-rw-r--r--Zend/tests/use_function/includes/foo_bar.php7
-rw-r--r--Zend/tests/use_function/includes/foo_strlen.php7
-rw-r--r--Zend/tests/use_function/includes/global_bar.php5
-rw-r--r--Zend/tests/use_function/includes/global_baz.php4
-rw-r--r--Zend/tests/use_function/no_global_fallback.phpt13
-rw-r--r--Zend/tests/use_function/no_global_fallback2.phpt18
-rw-r--r--Zend/tests/use_function/self_parent.phpt12
-rw-r--r--Zend/tests/use_function/shadow_core.phpt16
-rw-r--r--Zend/tests/use_function/shadow_global.phpt25
-rw-r--r--Zend/tests/variadic/adding_additional_optional_parameter.phpt17
-rw-r--r--Zend/tests/variadic/adding_additional_optional_parameter_error.phpt16
-rw-r--r--Zend/tests/variadic/basic.phpt57
-rw-r--r--Zend/tests/variadic/by_ref.phpt24
-rw-r--r--Zend/tests/variadic/by_ref_error.phpt12
-rw-r--r--Zend/tests/variadic/no_default_error.phpt10
-rw-r--r--Zend/tests/variadic/non_variadic_implements_variadic_error.phpt16
-rw-r--r--Zend/tests/variadic/only_last_error.phpt10
-rw-r--r--Zend/tests/variadic/optional_params.phpt49
-rw-r--r--Zend/tests/variadic/removing_parameter_error.phpt20
-rw-r--r--Zend/tests/variadic/typehint_error.phpt36
-rw-r--r--Zend/tests/variadic/typehint_suppressed_error.phpt33
-rw-r--r--Zend/tests/variadic/variadic_changed_byref_error.phpt16
-rw-r--r--Zend/tests/variadic/variadic_changed_typehint_error.phpt16
-rw-r--r--Zend/tests/variadic/variadic_implements_non_variadic.phpt17
-rw-r--r--Zend/tests/zend_signed_multiply-32bit.phpt14
-rw-r--r--Zend/tests/zend_signed_multiply-64bit.phpt14
-rw-r--r--Zend/zend.c22
-rw-r--r--Zend/zend.h37
-rw-r--r--Zend/zend_API.c93
-rw-r--r--Zend/zend_API.h52
-rw-r--r--Zend/zend_alloc.c4
-rw-r--r--Zend/zend_alloc.h2
-rw-r--r--Zend/zend_ast.c329
-rw-r--r--Zend/zend_ast.h61
-rw-r--r--Zend/zend_build.h2
-rw-r--r--Zend/zend_builtin_functions.c48
-rw-r--r--Zend/zend_builtin_functions.h2
-rw-r--r--Zend/zend_closures.c12
-rw-r--r--Zend/zend_closures.h2
-rw-r--r--Zend/zend_compile.c931
-rw-r--r--Zend/zend_compile.h64
-rw-r--r--Zend/zend_config.nw.h2
-rw-r--r--Zend/zend_config.w32.h11
-rw-r--r--Zend/zend_constants.c96
-rw-r--r--Zend/zend_constants.h10
-rw-r--r--Zend/zend_default_classes.c2
-rw-r--r--Zend/zend_dynamic_array.c2
-rw-r--r--Zend/zend_dynamic_array.h2
-rw-r--r--Zend/zend_errors.h2
-rw-r--r--Zend/zend_exceptions.c2
-rw-r--r--Zend/zend_exceptions.h2
-rw-r--r--Zend/zend_execute.c213
-rw-r--r--Zend/zend_execute.h28
-rw-r--r--Zend/zend_execute_API.c33
-rw-r--r--Zend/zend_extensions.c2
-rw-r--r--Zend/zend_extensions.h4
-rw-r--r--Zend/zend_float.c2
-rw-r--r--Zend/zend_float.h2
-rw-r--r--Zend/zend_gc.c2
-rw-r--r--Zend/zend_gc.h2
-rw-r--r--Zend/zend_generators.c12
-rw-r--r--Zend/zend_generators.h2
-rw-r--r--Zend/zend_globals.h9
-rw-r--r--Zend/zend_globals_macros.h2
-rw-r--r--Zend/zend_hash.c104
-rw-r--r--Zend/zend_hash.h14
-rw-r--r--Zend/zend_highlight.c2
-rw-r--r--Zend/zend_highlight.h2
-rw-r--r--Zend/zend_indent.c2
-rw-r--r--Zend/zend_indent.h2
-rw-r--r--Zend/zend_ini.c2
-rw-r--r--Zend/zend_ini.h2
-rw-r--r--Zend/zend_ini_parser.c2
-rw-r--r--Zend/zend_ini_parser.output716
-rw-r--r--Zend/zend_ini_parser.y2
-rw-r--r--Zend/zend_ini_scanner.c9326
-rw-r--r--Zend/zend_ini_scanner.h2
-rw-r--r--Zend/zend_ini_scanner.l2
-rw-r--r--Zend/zend_ini_scanner_defs.h26
-rw-r--r--Zend/zend_interfaces.c2
-rw-r--r--Zend/zend_interfaces.h2
-rw-r--r--Zend/zend_istdiostream.h2
-rw-r--r--Zend/zend_iterators.c2
-rw-r--r--Zend/zend_iterators.h2
-rw-r--r--Zend/zend_language_parser.c4337
-rw-r--r--Zend/zend_language_parser.h4
-rw-r--r--Zend/zend_language_parser.output46082
-rw-r--r--Zend/zend_language_parser.y123
-rw-r--r--Zend/zend_language_scanner.c4689
-rw-r--r--Zend/zend_language_scanner.h2
-rw-r--r--Zend/zend_language_scanner.l264
-rw-r--r--Zend/zend_list.c2
-rw-r--r--Zend/zend_list.h2
-rw-r--r--Zend/zend_llist.c2
-rw-r--r--Zend/zend_llist.h2
-rw-r--r--Zend/zend_modules.h4
-rw-r--r--Zend/zend_multibyte.c4
-rw-r--r--Zend/zend_multibyte.h2
-rw-r--r--Zend/zend_multiply.h2
-rw-r--r--Zend/zend_object_handlers.c22
-rw-r--r--Zend/zend_object_handlers.h7
-rw-r--r--Zend/zend_objects.c2
-rw-r--r--Zend/zend_objects.h2
-rw-r--r--Zend/zend_objects_API.c2
-rw-r--r--Zend/zend_objects_API.h2
-rw-r--r--Zend/zend_opcode.c16
-rw-r--r--Zend/zend_operators.c253
-rw-r--r--Zend/zend_operators.h31
-rw-r--r--Zend/zend_ptr_stack.c2
-rw-r--r--Zend/zend_ptr_stack.h2
-rw-r--r--Zend/zend_qsort.c2
-rw-r--r--Zend/zend_qsort.h2
-rw-r--r--Zend/zend_sprintf.c2
-rw-r--r--Zend/zend_stack.c2
-rw-r--r--Zend/zend_stack.h2
-rw-r--r--Zend/zend_static_allocator.c2
-rw-r--r--Zend/zend_static_allocator.h2
-rw-r--r--Zend/zend_stream.c2
-rw-r--r--Zend/zend_stream.h2
-rw-r--r--Zend/zend_string.c4
-rw-r--r--Zend/zend_string.h29
-rw-r--r--Zend/zend_strtod.h2
-rw-r--r--Zend/zend_ts_hash.c10
-rw-r--r--Zend/zend_ts_hash.h10
-rw-r--r--Zend/zend_types.h2
-rw-r--r--Zend/zend_variables.c12
-rw-r--r--Zend/zend_variables.h2
-rw-r--r--Zend/zend_virtual_cwd.c2005
-rw-r--r--Zend/zend_virtual_cwd.h340
-rw-r--r--Zend/zend_vm.h2
-rw-r--r--Zend/zend_vm_def.h553
-rw-r--r--Zend/zend_vm_execute.h3049
-rw-r--r--Zend/zend_vm_gen.php49
-rw-r--r--Zend/zend_vm_opcodes.c6
-rw-r--r--Zend/zend_vm_opcodes.h4
194 files changed, 42562 insertions, 33612 deletions
diff --git a/Zend/Makefile.am b/Zend/Makefile.am
index cea5c17fa..65c411349 100644
--- a/Zend/Makefile.am
+++ b/Zend/Makefile.am
@@ -18,7 +18,7 @@ libZend_la_SOURCES=\
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c \
- zend_generators.c
+ zend_generators.c zend_virtual_cwd.c zend_ast.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
diff --git a/Zend/RFCs/003.txt b/Zend/RFCs/003.txt
index 30fb4cec4..ac042183d 100644
--- a/Zend/RFCs/003.txt
+++ b/Zend/RFCs/003.txt
@@ -9,11 +9,11 @@ Modified: 2001-09-17
1. Background/Need
==================
-Many internal function of PHP will reject parameters because of their
+Many internal functions of PHP will reject parameters because of their
type (the array and variable function come to mind). For userland
this is not an easy task as there is no uniform way to do it. An
addition to the engine for requiring loose types would allow
-delevopers to know that the data passed to their functions is of the
+developers to know that the data passed to their functions are of the
correct type and reduce the need for duplicating the same code in
every function to check for the type of data.
@@ -57,7 +57,7 @@ function foo (array $var){
===========
Mis-matches in type should be reported as fatal errors and should halt
-the execution of a script as that function can not be run and code
+the execution of a script as that function cannot be run and code
following could not reliably run.
diff --git a/Zend/Zend.dsp b/Zend/Zend.dsp
index 61bdab087..348e1abaa 100644
--- a/Zend/Zend.dsp
+++ b/Zend/Zend.dsp
@@ -119,6 +119,10 @@ SOURCE=.\zend_API.c
# End Source File
# Begin Source File
+SOURCE=.\zend_ast.c
+# End Source File
+# Begin Source File
+
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
@@ -433,6 +437,10 @@ SOURCE=.\zend_ts_hash.h
SOURCE=.\zend_variables.h
# End Source File
+# Begin Source File
+
+SOURCE=.\zend_virtual_cwd.c
+# End Source File
# End Group
# Begin Group "Parsers"
diff --git a/Zend/ZendTS.dsp b/Zend/ZendTS.dsp
index 0292fda66..21210f108 100644
--- a/Zend/ZendTS.dsp
+++ b/Zend/ZendTS.dsp
@@ -140,6 +140,10 @@ SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
+SOURCE=.\zend_ast.c
+# End Source File
+# Begin Source File
+
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
index 5a521dc98..7fa8c9994 100644
--- a/Zend/acinclude.m4
+++ b/Zend/acinclude.m4
@@ -3,8 +3,13 @@ dnl
dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
- # we only support certain bison versions
- bison_version_list="2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7"
+ # we only support certain bison versions;
+ # min: 2.4 (i.e. 204, major * 100 + minor for easier comparison)
+ bison_version_min="204"
+ # non-working versions, e.g. "3.0 3.2";
+ # remove "none" when introducing the first incompatible bison version an
+ # separate any following additions by spaces
+ bison_version_exclude="3.0"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
@@ -17,18 +22,22 @@ AC_DEFUN([LIBZEND_BISON_CHECK],[
if test -n "$bison_version_vars"; then
set $bison_version_vars
bison_version="${1}.${2}"
- for bison_check_version in $bison_version_list; do
- if test "$bison_version" = "$bison_check_version"; then
- php_cv_bison_version="$bison_check_version (ok)"
- break
- fi
- done
+ bison_version_num="`expr ${1} \* 100 + ${2}`"
+ if test $bison_version_num -ge $bison_version_min; then
+ php_cv_bison_version="$bison_version (ok)"
+ for bison_check_version in $bison_version_exclude; do
+ if test "$bison_version" = "$bison_check_version"; then
+ php_cv_bison_version=invalid
+ break
+ fi
+ done
+ fi
fi
])
fi
case $php_cv_bison_version in
""|invalid[)]
- bison_msg="bison versions supported for regeneration of the Zend/PHP parsers: $bison_version_list (found: $bison_version)."
+ bison_msg="This bison version is not supported for regeneration of the Zend/PHP parsers (found: $bison_version, min: $bison_version_min, excluded: $bison_version_exclude)."
AC_MSG_WARN([$bison_msg])
YACC="exit 0;"
;;
diff --git a/Zend/tests/arg_unpack/basic.phpt b/Zend/tests/arg_unpack/basic.phpt
new file mode 100644
index 000000000..9c0365586
--- /dev/null
+++ b/Zend/tests/arg_unpack/basic.phpt
@@ -0,0 +1,114 @@
+--TEST--
+Basic argument unpacking
+--FILE--
+<?php
+
+function test(...$args) {
+ var_dump($args);
+}
+
+function test2($arg1, $arg2, $arg3 = null) {
+ var_dump($arg1, $arg2, $arg3);
+}
+
+function getArray($array) {
+ return $array;
+}
+
+function arrayGen($array) {
+ foreach ($array as $element) {
+ yield $element;
+ }
+}
+
+$array = [1, 2, 3];
+
+test(...[]);
+test(...[1, 2, 3]);
+test(...$array);
+test(...getArray([1, 2, 3]));
+test(...arrayGen([]));
+test(...arrayGen([1, 2, 3]));
+
+test(1, ...[2, 3], ...[4, 5], 6);
+test(1, ...getArray([2, 3]), ...arrayGen([4, 5]), 6);
+
+test2(...[1, 2]);
+test2(...[1, 2, 3]);
+test2(...[1], ...[], ...[], ...[2, 3], 4, ...[5, 6]);
+
+?>
+--EXPECT--
+array(0) {
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(0) {
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(6) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+ [5]=>
+ int(6)
+}
+array(6) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+ [5]=>
+ int(6)
+}
+int(1)
+int(2)
+NULL
+int(1)
+int(2)
+int(3)
+int(1)
+int(2)
+int(3)
diff --git a/Zend/tests/arg_unpack/by_ref.phpt b/Zend/tests/arg_unpack/by_ref.phpt
new file mode 100644
index 000000000..0619a3bab
--- /dev/null
+++ b/Zend/tests/arg_unpack/by_ref.phpt
@@ -0,0 +1,149 @@
+--TEST--
+Argument unpacking with by-ref arguments
+--FILE--
+<?php
+
+error_reporting(E_ALL);
+
+function test1(&...$args) {
+ foreach ($args as &$arg) {
+ $arg++;
+ }
+}
+
+test1(...[1, 2, 3]);
+
+$array = [1, 2, 3];
+test1(...$array);
+var_dump($array);
+
+$array1 = [1, 2]; $val2 = 3; $array2 = [4, 5];
+test1(...$array1, $val2, ...$array2);
+var_dump($array1, $val2, $array2);
+
+function test2($val1, &$ref1, $val2, &$ref2) {
+ $ref1++;
+ $ref2++;
+}
+
+$array = [1, 2, 3, 4];
+test2(...$array);
+var_dump($array);
+
+$a = $b = $c = $d = 0;
+
+$array = [];
+test2(...$array, $a, $b, $c, $d);
+var_dump($array, $a, $b, $c, $d);
+
+$array = [1];
+test2(...$array, $a, $b, $c, $d);
+var_dump($array, $a, $b, $c, $d);
+
+$array = [1, 2];
+test2(...$array, $a, $b, $c, $d);
+var_dump($array, $a, $b, $c, $d);
+
+$array = [1, 2, 3];
+test2(...$array, $a, $b, $c, $d);
+var_dump($array, $a, $b, $c, $d);
+
+$vars = [];
+$array = [];
+test2(...$array, $vars['a'], $vars['b'], $vars['c'], $vars['d']);
+var_dump($vars);
+
+$vars = [];
+$array = [1];
+test2(...$array, $vars['a'], $vars['b'], $vars['c'], $vars['d']);
+var_dump($vars);
+
+?>
+--EXPECTF--
+array(3) {
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+ [2]=>
+ int(4)
+}
+array(2) {
+ [0]=>
+ int(2)
+ [1]=>
+ int(3)
+}
+int(4)
+array(2) {
+ [0]=>
+ int(5)
+ [1]=>
+ int(6)
+}
+array(4) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(3)
+ [2]=>
+ int(3)
+ [3]=>
+ int(5)
+}
+array(0) {
+}
+int(0)
+int(1)
+int(0)
+int(1)
+array(1) {
+ [0]=>
+ int(1)
+}
+int(1)
+int(1)
+int(1)
+int(1)
+array(2) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(3)
+}
+int(1)
+int(2)
+int(1)
+int(1)
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(3)
+ [2]=>
+ int(3)
+}
+int(2)
+int(2)
+int(1)
+int(1)
+
+Notice: Undefined index: a in %s on line %d
+
+Notice: Undefined index: c in %s on line %d
+array(2) {
+ ["b"]=>
+ int(1)
+ ["d"]=>
+ int(1)
+}
+
+Notice: Undefined index: b in %s on line %d
+
+Notice: Undefined index: d in %s on line %d
+array(2) {
+ ["a"]=>
+ int(1)
+ ["c"]=>
+ int(1)
+}
diff --git a/Zend/tests/arg_unpack/dynamic.phpt b/Zend/tests/arg_unpack/dynamic.phpt
new file mode 100644
index 000000000..efed84da7
--- /dev/null
+++ b/Zend/tests/arg_unpack/dynamic.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Unpack arguments for dynamic call
+--FILE--
+<?php
+
+$fn = function(...$args) {
+ var_dump($args);
+};
+
+$fn(...[]);
+$fn(...[1, 2, 3]);
+$fn(1, ...[2, 3], ...[], 4, 5);
+
+?>
+--EXPECT--
+array(0) {
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
diff --git a/Zend/tests/arg_unpack/internal.phpt b/Zend/tests/arg_unpack/internal.phpt
new file mode 100644
index 000000000..adc985d94
--- /dev/null
+++ b/Zend/tests/arg_unpack/internal.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Argument unpacking with internal functions
+--FILE--
+<?php
+
+$arrays = [
+ [1, 2, 3],
+ [4, 5, 6],
+ [7, 8, 9],
+];
+var_dump(array_map(null, ...$arrays));
+
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(4)
+ [2]=>
+ int(7)
+ }
+ [1]=>
+ array(3) {
+ [0]=>
+ int(2)
+ [1]=>
+ int(5)
+ [2]=>
+ int(8)
+ }
+ [2]=>
+ array(3) {
+ [0]=>
+ int(3)
+ [1]=>
+ int(6)
+ [2]=>
+ int(9)
+ }
+}
diff --git a/Zend/tests/arg_unpack/invalid_type.phpt b/Zend/tests/arg_unpack/invalid_type.phpt
new file mode 100644
index 000000000..3efffebc7
--- /dev/null
+++ b/Zend/tests/arg_unpack/invalid_type.phpt
@@ -0,0 +1,59 @@
+--TEST--
+Only arrays and Traversables can be unpacked
+--FILE--
+<?php
+
+function test(...$args) {
+ var_dump($args);
+}
+
+test(...null);
+test(...42);
+test(...new stdClass);
+
+test(1, 2, 3, ..."foo", ...[4, 5]);
+test(1, 2, ...new StdClass, 3, ...3.14, ...[4, 5]);
+
+?>
+--EXPECTF--
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+array(0) {
+}
+
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+array(0) {
+}
+
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+array(0) {
+}
+
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
+
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+
+Warning: Only arrays and Traversables can be unpacked in %s on line %d
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
diff --git a/Zend/tests/arg_unpack/many_args.phpt b/Zend/tests/arg_unpack/many_args.phpt
new file mode 100644
index 000000000..0ef5a30d6
--- /dev/null
+++ b/Zend/tests/arg_unpack/many_args.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Argument unpacking with many arguments
+--FILE--
+<?php
+
+function fn(...$args) {
+ var_dump(count($args));
+}
+
+$array = array_fill(0, 10000, 42);
+fn(...$array, ...$array);
+
+?>
+--EXPECT--
+int(20000)
diff --git a/Zend/tests/arg_unpack/method.phpt b/Zend/tests/arg_unpack/method.phpt
new file mode 100644
index 000000000..d6a6e4712
--- /dev/null
+++ b/Zend/tests/arg_unpack/method.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Unpack arguments for method calls
+--FILE--
+<?php
+
+class Foo {
+ public function test(...$args) {
+ var_dump($args);
+ }
+
+ public static function test2(...$args) {
+ var_dump($args);
+ }
+}
+
+$foo = new Foo;
+$foo->test(...[1, 2], 3, 4, ...[], 5);
+Foo::test2(1, 2, ...[3, 4], ...[], 5);
+
+?>
+--EXPECT--
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
diff --git a/Zend/tests/arg_unpack/new.phpt b/Zend/tests/arg_unpack/new.phpt
new file mode 100644
index 000000000..3cf224f28
--- /dev/null
+++ b/Zend/tests/arg_unpack/new.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Unpack arguments for new expression
+--FILE--
+<?php
+
+class Foo {
+ public function __construct(...$args) {
+ var_dump($args);
+ }
+}
+
+new Foo(...[]);
+new Foo(...[1, 2, 3]);
+new Foo(...[1], 2, ...[], ...[3, 4], 5);
+
+?>
+--EXPECT--
+array(0) {
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(5) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ int(4)
+ [4]=>
+ int(5)
+}
diff --git a/Zend/tests/arg_unpack/string_keys.phpt b/Zend/tests/arg_unpack/string_keys.phpt
new file mode 100644
index 000000000..443a88294
--- /dev/null
+++ b/Zend/tests/arg_unpack/string_keys.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Argument unpacking does not work with string keys (forward compatibility for named args)
+--FILE--
+<?php
+
+set_error_handler(function($errno, $errstr) {
+ var_dump($errstr);
+});
+
+var_dump(...[1, 2, "foo" => 3, 4]);
+var_dump(...new ArrayIterator([1, 2, "foo" => 3, 4]));
+
+?>
+--EXPECTF--
+string(36) "Cannot unpack array with string keys"
+int(1)
+int(2)
+string(42) "Cannot unpack Traversable with string keys"
+int(1)
+int(2)
diff --git a/Zend/tests/arg_unpack/traversable_throwing_exception.phpt b/Zend/tests/arg_unpack/traversable_throwing_exception.phpt
new file mode 100644
index 000000000..8ddc24dc7
--- /dev/null
+++ b/Zend/tests/arg_unpack/traversable_throwing_exception.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Traversables that throw exceptions are properly handled during argument unpack
+--FILE--
+<?php
+
+function test(...$args) {
+ var_dump($args);
+}
+
+class Foo implements IteratorAggregate {
+ public function getIterator() {
+ throw new Exception('getIterator');
+ }
+}
+
+function gen() {
+ yield 1;
+ yield 2;
+ throw new Exception('gen');
+}
+
+try {
+ test(1, 2, ...new Foo, 3, 4);
+} catch (Exception $e) { var_dump($e->getMessage()); }
+
+try {
+ test(1, 2, ...gen(), 3, 4);
+} catch (Exception $e) { var_dump($e->getMessage()); }
+
+?>
+--EXPECT--
+string(11) "getIterator"
+string(3) "gen"
diff --git a/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt b/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt
new file mode 100644
index 000000000..e86234165
--- /dev/null
+++ b/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Traversables cannot be unpacked into by-reference parameters
+--FILE--
+<?php
+
+function test($val1, $val2, $val3, &$ref) {
+ $ref = 42;
+}
+
+function gen($array) {
+ foreach ($array as $element) {
+ yield $element;
+ }
+}
+
+test(...gen([1, 2, 3]), $a);
+var_dump($a);
+test(1, 2, 3, $b, ...gen([4, 5, 6]));
+var_dump($b);
+
+test(...gen([1, 2, 3, 4]));
+test(1, 2, ...gen([3, 4]));
+test(...gen([1, 2]), ...gen([3, 4]));
+
+?>
+--EXPECTF--
+int(42)
+int(42)
+
+Warning: Cannot pass by-reference argument 4 of test() by unpacking a Traversable, passing by-value instead in %s on line %d
+
+Warning: Cannot pass by-reference argument 4 of test() by unpacking a Traversable, passing by-value instead in %s on line %d
+
+Warning: Cannot pass by-reference argument 4 of test() by unpacking a Traversable, passing by-value instead in %s on line %d
diff --git a/Zend/tests/bug30820.phpt b/Zend/tests/bug30820.phpt
index 97e46e928..a0f71e72a 100644
--- a/Zend/tests/bug30820.phpt
+++ b/Zend/tests/bug30820.phpt
@@ -2,6 +2,7 @@
Bug #30820 (static member conflict with $this->member silently ignored)
--INI--
error_reporting=4095
+opcache.optimization_level=0
--FILE--
<?php
class Blah {
diff --git a/Zend/tests/bug65784.phpt b/Zend/tests/bug65784.phpt
index adc34113a..29f086b5e 100644
--- a/Zend/tests/bug65784.phpt
+++ b/Zend/tests/bug65784.phpt
@@ -1,7 +1,5 @@
--TEST--
Fixed Bug #65784 (Segfault with finally)
---XFAIL--
-This bug is not fixed in 5.5 due to ABI BC
--FILE--
<?php
function foo1() {
diff --git a/Zend/tests/bug66252.phpt b/Zend/tests/bug66252.phpt
new file mode 100644
index 000000000..e692a8e70
--- /dev/null
+++ b/Zend/tests/bug66252.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #66252 (Problems in AST evaluation invalidating valid parent:: reference)
+--FILE--
+<?php
+class A {
+ const HW = "this is A";
+}
+class B extends A {
+ const BHW = parent::HW . " extended by B";
+}
+const C = B::BHW;
+echo C, "\n";
+--EXPECT--
+this is A extended by B
diff --git a/Zend/tests/bug66286.phpt b/Zend/tests/bug66286.phpt
new file mode 100644
index 000000000..457e28240
--- /dev/null
+++ b/Zend/tests/bug66286.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #66286: Incorrect object comparison with inheritance
+--FILE--
+<?php
+
+abstract class first {
+ protected $someArray = array();
+}
+
+class second extends first {
+ protected $someArray = array();
+ protected $someValue = null;
+
+ public function __construct($someValue) {
+ $this->someValue = $someValue;
+ }
+}
+
+$objFirst = new second('123');
+$objSecond = new second('321');
+
+var_dump ($objFirst == $objSecond);
+
+?>
+--EXPECT--
+bool(false)
diff --git a/Zend/tests/class_properties_dynamic.phpt b/Zend/tests/class_properties_dynamic.phpt
new file mode 100644
index 000000000..8a1fc6f02
--- /dev/null
+++ b/Zend/tests/class_properties_dynamic.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Class Property Expressions
+--FILE--
+<?php
+class Foo {
+ const BAR = 1 << 0;
+ const BAZ = 1 << 1;
+ public $bar = self::BAR | self::BAZ;
+}
+echo (new Foo)->bar;
+?>
+--EXPECTF--
+3
diff --git a/Zend/tests/class_properties_static.phpt b/Zend/tests/class_properties_static.phpt
new file mode 100644
index 000000000..9a5646634
--- /dev/null
+++ b/Zend/tests/class_properties_static.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Static Class Property Expressions
+--FILE--
+<?php
+class Foo {
+ public $b1 = 1 + 1;
+ public $b2 = 1 << 2;
+ public $b3 = "foo " . " bar " . " baz";
+}
+$f = new Foo;
+var_dump(
+ $f->b1,
+ $f->b2,
+ $f->b3
+);
+?>
+--EXPECT--
+int(2)
+int(4)
+string(13) "foo bar baz"
diff --git a/Zend/tests/closure_018.phpt b/Zend/tests/closure_018.phpt
index d98c78aea..2dcf15c6a 100644
--- a/Zend/tests/closure_018.phpt
+++ b/Zend/tests/closure_018.phpt
@@ -21,8 +21,11 @@ var_dump($x = $test->test($y));
var_dump($y, $x);
?>
---EXPECT--
+--EXPECTF--
+Notice: Only variable references should be returned by reference in %sclosure_018.php on line 7
int(4)
+
+Notice: Only variable references should be returned by reference in %sclosure_018.php on line 7
int(16)
int(16)
int(16)
diff --git a/Zend/tests/closure_019.phpt b/Zend/tests/closure_019.phpt
index 0c4c34e16..57aa2dec1 100644
--- a/Zend/tests/closure_019.phpt
+++ b/Zend/tests/closure_019.phpt
@@ -20,7 +20,10 @@ test();
?>
--EXPECTF--
+Notice: Only variable references should be returned by reference in %sclosure_019.php on line 4
int(9)
+
+Notice: Only variable references should be returned by reference in %sclosure_019.php on line 4
int(81)
Fatal error: Cannot pass parameter 1 by reference in %s on line %d
diff --git a/Zend/tests/constant_expressions.phpt b/Zend/tests/constant_expressions.phpt
new file mode 100644
index 000000000..7dea0d83f
--- /dev/null
+++ b/Zend/tests/constant_expressions.phpt
@@ -0,0 +1,91 @@
+--TEST--
+Constant Expressions
+--FILE--
+<?php
+const T_1 = 1 << 1;
+const T_2 = 1 / 2;
+const T_3 = 1.5 + 1.5;
+const T_4 = "foo" . "bar";
+const T_5 = (1.5 + 1.5) * 2;
+const T_6 = "foo" . 2 . 3 . 4.0;
+const T_7 = __LINE__;
+const T_8 = <<<ENDOFSTRING
+This is a test string
+ENDOFSTRING;
+const T_9 = ~-1;
+const T_10 = (-1?:1) + (0?2:3);
+const T_11 = 1 && 0;
+const T_12 = 1 and 1;
+const T_13 = 0 || 0;
+const T_14 = 1 or 0;
+const T_15 = 1 xor 1;
+const T_16 = 1 xor 0;
+const T_17 = 1 < 0;
+const T_18 = 0 <= 0;
+const T_19 = 1 > 0;
+const T_20 = 1 >= 0;
+const T_21 = 1 === 1;
+const T_22 = 1 !== 1;
+const T_23 = 0 != "0";
+const T_24 = 1 == "1";
+
+// Test order of operations
+const T_25 = 1 + 2 * 3;
+
+// Test for memory leaks
+const T_26 = "1" + 2 + "3";
+
+var_dump(T_1);
+var_dump(T_2);
+var_dump(T_3);
+var_dump(T_4);
+var_dump(T_5);
+var_dump(T_6);
+var_dump(T_7);
+var_dump(T_8);
+var_dump(T_9);
+var_dump(T_10);
+var_dump(T_11);
+var_dump(T_12);
+var_dump(T_13);
+var_dump(T_14);
+var_dump(T_15);
+var_dump(T_16);
+var_dump(T_17);
+var_dump(T_18);
+var_dump(T_19);
+var_dump(T_20);
+var_dump(T_21);
+var_dump(T_22);
+var_dump(T_23);
+var_dump(T_24);
+var_dump(T_25);
+var_dump(T_26);
+?>
+--EXPECT--
+int(2)
+float(0.5)
+float(3)
+string(6) "foobar"
+float(6)
+string(6) "foo234"
+int(8)
+string(21) "This is a test string"
+int(0)
+int(2)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(false)
+bool(false)
+bool(true)
+int(7)
+int(6)
diff --git a/Zend/tests/constant_expressions_classes.phpt b/Zend/tests/constant_expressions_classes.phpt
new file mode 100644
index 000000000..6298ff66d
--- /dev/null
+++ b/Zend/tests/constant_expressions_classes.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Constant scalar expressions with autoloading and classes
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--SKIPIF--
+<?php if (!extension_loaded('Zend OPcache') || php_sapi_name() != "cli") die("skip CLI only"); ?>
+--FILE--
+<?php
+
+# This test validates that autoloading works for common const expression (AST) use cases
+$classlist = [
+ 'A'=> 'class A { const HW = "this is A"; }',
+ 'B'=> 'class B extends A { const HW = parent::HW." extended by B"; }',
+ 'space1\C' => 'namespace space1; class C { const HW = "this is space1\C"; }',
+ 'D' => 'class D { const HW = \space1\C::HW." extented by D"; }',
+ 'trE' => 'trait trE { public static function getHW() { return parent::HW; } }',
+ 'E' => 'class E extends B { use trE; }',
+ 'F' => 'class F { const XX = "this is F"; }',
+ 'G' => 'class G extends F { const XX = parent::XX." extended by G"; public static function get_me($x = "got ".self::XX) { return $x; } }',
+];
+
+spl_autoload_register(function ($class) use ($classlist) {
+ if (isset($classlist[$class])) {
+ eval($classlist[$class]);
+ } else {
+ die("Cannot autoload $class\n");
+ }
+});
+
+printf("B::HW = %s\n", B::HW);
+printf("D::HW = %s\n", D::HW);
+
+printf("E::getHW() = %s\n", E::getHW());
+printf("G::get_me() = %s\n", G::get_me());
+
+?>
+--EXPECT--
+B::HW = this is A extended by B
+D::HW = this is space1\C extented by D
+E::getHW() = this is A extended by B
+G::get_me() = got this is F extended by G
diff --git a/Zend/tests/constant_expressions_dynamic.phpt b/Zend/tests/constant_expressions_dynamic.phpt
new file mode 100644
index 000000000..21c9216cc
--- /dev/null
+++ b/Zend/tests/constant_expressions_dynamic.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Dynamic Constant Expressions
+--FILE--
+<?php
+const FOO = 1;
+const BAR = FOO | 2;
+
+echo BAR;
+?>
+--EXPECTF--
+3
diff --git a/Zend/tests/finally_goto_001.phpt b/Zend/tests/finally_goto_001.phpt
new file mode 100644
index 000000000..990f78d4c
--- /dev/null
+++ b/Zend/tests/finally_goto_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+jmp into a finally block 01
+--FILE--
+<?php
+function foo() {
+ goto test;
+ try {
+ } finally {
+test:
+ }
+}
+?>
+--EXPECTF--
+Fatal error: jump into a finally block is disallowed in %sfinally_goto_001.php on line %d
diff --git a/Zend/tests/finally_goto_002.phpt b/Zend/tests/finally_goto_002.phpt
new file mode 100644
index 000000000..a6bd9e307
--- /dev/null
+++ b/Zend/tests/finally_goto_002.phpt
@@ -0,0 +1,14 @@
+--TEST--
+jmp into a finally block 02
+--FILE--
+<?php
+function foo() {
+ try {
+ goto test;
+ } finally {
+test:
+ }
+}
+?>
+--EXPECTF--
+Fatal error: jump into a finally block is disallowed in %sfinally_goto_002.php on line %d
diff --git a/Zend/tests/finally_goto_003.phpt b/Zend/tests/finally_goto_003.phpt
new file mode 100644
index 000000000..8529ff786
--- /dev/null
+++ b/Zend/tests/finally_goto_003.phpt
@@ -0,0 +1,15 @@
+--TEST--
+jmp into a finally block 03
+--FILE--
+<?php
+function foo() {
+ try {
+ } finally {
+ goto test;
+test:
+ }
+}
+echo "okey";
+?>
+--EXPECTF--
+okey
diff --git a/Zend/tests/finally_goto_004.phpt b/Zend/tests/finally_goto_004.phpt
new file mode 100644
index 000000000..d88ceedf5
--- /dev/null
+++ b/Zend/tests/finally_goto_004.phpt
@@ -0,0 +1,14 @@
+--TEST--
+jmp into a finally block 03
+--FILE--
+<?php
+function foo() {
+ try {
+ } finally {
+test:
+ }
+ goto test;
+}
+?>
+--EXPECTF--
+Fatal error: jump into a finally block is disallowed in %sfinally_goto_004.php on line %d
diff --git a/Zend/tests/function_arguments_003.phpt b/Zend/tests/function_arguments_003.phpt
new file mode 100644
index 000000000..b882476d1
--- /dev/null
+++ b/Zend/tests/function_arguments_003.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Function Argument Parsing #003
+--FILE--
+<?php
+const a = 10;
+
+function t1($a = 1 + 1, $b = 1 << 2, $c = "foo" . "bar", $d = a * 10) {
+ var_dump($a, $b, $c, $d);
+}
+
+t1();
+?>
+--EXPECT--
+int(2)
+int(4)
+string(6) "foobar"
+int(100)
diff --git a/Zend/tests/incompat_ctx_user.phpt b/Zend/tests/incompat_ctx_user.phpt
new file mode 100644
index 000000000..2d9b59c1e
--- /dev/null
+++ b/Zend/tests/incompat_ctx_user.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Incompatible context call (non-internal function)
+--INI--
+error_reporting=E_ALL
+--FILE--
+<?php
+
+class A {
+ function foo() { var_dump(get_class($this)); }
+}
+class B {
+ function bar() { A::foo(); }
+}
+$b = new B;
+$b->bar();
+
+?>
+--EXPECTF--
+Deprecated: Non-static method A::foo() should not be called statically, assuming $this from incompatible context in %s on line %d
+string(1) "B"
diff --git a/Zend/tests/static_variable.phpt b/Zend/tests/static_variable.phpt
new file mode 100644
index 000000000..62ca565ff
--- /dev/null
+++ b/Zend/tests/static_variable.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Static Variable Expressions
+--FILE--
+<?php
+const bar = 2, baz = bar + 1;
+
+function foo() {
+ static $a = 1 + 1;
+ static $b = [bar => 1 + 1, baz * 2 => 1 << 2];
+ static $c = [1 => bar, 3 => baz];
+ var_dump($a, $b, $c);
+}
+
+foo();
+?>
+--EXPECT--
+int(2)
+array(2) {
+ [2]=>
+ int(2)
+ [6]=>
+ int(4)
+}
+array(2) {
+ [1]=>
+ int(2)
+ [3]=>
+ int(3)
+}
diff --git a/Zend/tests/use_const/alias.phpt b/Zend/tests/use_const/alias.phpt
new file mode 100644
index 000000000..f17939300
--- /dev/null
+++ b/Zend/tests/use_const/alias.phpt
@@ -0,0 +1,26 @@
+--TEST--
+aliasing imported constants to resolve naming conflicts
+--FILE--
+<?php
+
+namespace foo {
+ const baz = 42;
+}
+
+namespace bar {
+ const baz = 43;
+}
+
+namespace {
+ use const foo\baz as foo_baz,
+ bar\baz as bar_baz;
+ var_dump(foo_baz);
+ var_dump(bar_baz);
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+int(42)
+int(43)
+Done
diff --git a/Zend/tests/use_const/basic.phpt b/Zend/tests/use_const/basic.phpt
new file mode 100644
index 000000000..6eaed7f27
--- /dev/null
+++ b/Zend/tests/use_const/basic.phpt
@@ -0,0 +1,22 @@
+--TEST--
+import namespaced constant
+--FILE--
+<?php
+
+namespace foo\bar {
+ const baz = 42;
+ const qux = 43;
+}
+
+namespace {
+ use const foo\bar\baz, foo\bar\qux;
+ var_dump(baz);
+ var_dump(qux);
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+int(42)
+int(43)
+Done
diff --git a/Zend/tests/use_const/case_sensivity.phpt b/Zend/tests/use_const/case_sensivity.phpt
new file mode 100644
index 000000000..1977daa93
--- /dev/null
+++ b/Zend/tests/use_const/case_sensivity.phpt
@@ -0,0 +1,12 @@
+--TEST--
+importing const with same name but different case
+--FILE--
+<?php
+
+namespace {
+ use const foo\bar;
+ use const foo\BAR;
+}
+
+?>
+--EXPECT--
diff --git a/Zend/tests/use_const/conflicting_use.phpt b/Zend/tests/use_const/conflicting_use.phpt
new file mode 100644
index 000000000..3b3c4b326
--- /dev/null
+++ b/Zend/tests/use_const/conflicting_use.phpt
@@ -0,0 +1,21 @@
+--TEST--
+use const statements with conflicting names
+--FILE--
+<?php
+
+namespace foo {
+ const baz = 42;
+}
+
+namespace bar {
+ const baz = 42;
+}
+
+namespace {
+ use const foo\baz, bar\baz;
+ echo "Done\n";
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use const bar\baz as baz because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_const/conflicting_use_alias.phpt b/Zend/tests/use_const/conflicting_use_alias.phpt
new file mode 100644
index 000000000..8b563a4ca
--- /dev/null
+++ b/Zend/tests/use_const/conflicting_use_alias.phpt
@@ -0,0 +1,18 @@
+--TEST--
+use and use const with the same alias
+--FILE--
+<?php
+
+namespace {
+ const foo = 'foo';
+}
+
+namespace x {
+ use foo as bar;
+ use const foo as bar;
+ var_dump(bar);
+}
+
+?>
+--EXPECT--
+string(3) "foo"
diff --git a/Zend/tests/use_const/define_imported.phpt b/Zend/tests/use_const/define_imported.phpt
new file mode 100644
index 000000000..5eb44be64
--- /dev/null
+++ b/Zend/tests/use_const/define_imported.phpt
@@ -0,0 +1,14 @@
+--TEST--
+defining const with same name as imported should fail
+--FILE--
+<?php
+
+namespace {
+ use const foo\bar;
+
+ const bar = 42;
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare const bar because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_const/define_imported_before.phpt b/Zend/tests/use_const/define_imported_before.phpt
new file mode 100644
index 000000000..f674ce81e
--- /dev/null
+++ b/Zend/tests/use_const/define_imported_before.phpt
@@ -0,0 +1,18 @@
+--TEST--
+using const with same name as defined should fail
+--FILE--
+<?php
+
+namespace {
+ const bar = 42;
+
+ use const foo\bar;
+}
+
+namespace {
+ echo "Done";
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use const foo\bar as bar because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_const/includes/foo_bar.php b/Zend/tests/use_const/includes/foo_bar.php
new file mode 100644
index 000000000..90ed451f3
--- /dev/null
+++ b/Zend/tests/use_const/includes/foo_bar.php
@@ -0,0 +1,5 @@
+<?php
+
+namespace foo;
+
+const bar = 'local bar';
diff --git a/Zend/tests/use_const/includes/foo_php_version.php b/Zend/tests/use_const/includes/foo_php_version.php
new file mode 100644
index 000000000..08f9fd150
--- /dev/null
+++ b/Zend/tests/use_const/includes/foo_php_version.php
@@ -0,0 +1,5 @@
+<?php
+
+namespace foo;
+
+const PHP_VERSION = 42;
diff --git a/Zend/tests/use_const/includes/global_bar.php b/Zend/tests/use_const/includes/global_bar.php
new file mode 100644
index 000000000..609d17b7b
--- /dev/null
+++ b/Zend/tests/use_const/includes/global_bar.php
@@ -0,0 +1,3 @@
+<?php
+
+const bar = 'global bar';
diff --git a/Zend/tests/use_const/includes/global_baz.php b/Zend/tests/use_const/includes/global_baz.php
new file mode 100644
index 000000000..8b6fba97b
--- /dev/null
+++ b/Zend/tests/use_const/includes/global_baz.php
@@ -0,0 +1,3 @@
+<?php
+
+const baz = NULL;
diff --git a/Zend/tests/use_const/no_global_fallback.phpt b/Zend/tests/use_const/no_global_fallback.phpt
new file mode 100644
index 000000000..a128f353e
--- /dev/null
+++ b/Zend/tests/use_const/no_global_fallback.phpt
@@ -0,0 +1,14 @@
+--TEST--
+non-existent imported constants should not be looked up in the global table
+--FILE--
+<?php
+
+require 'includes/global_baz.php';
+
+use const foo\bar\baz;
+var_dump(baz);
+
+?>
+--EXPECTF--
+Notice: Use of undefined constant baz - assumed 'baz' in %s on line %d
+string(3) "baz"
diff --git a/Zend/tests/use_const/self_parent.phpt b/Zend/tests/use_const/self_parent.phpt
new file mode 100644
index 000000000..b71f2ecc8
--- /dev/null
+++ b/Zend/tests/use_const/self_parent.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Allow self and parent in use const statement
+--FILE--
+<?php
+
+namespace {
+ use const self as foo;
+ use const parent as bar;
+}
+
+?>
+--EXPECT--
diff --git a/Zend/tests/use_const/shadow_core.phpt b/Zend/tests/use_const/shadow_core.phpt
new file mode 100644
index 000000000..7d8bcbd18
--- /dev/null
+++ b/Zend/tests/use_const/shadow_core.phpt
@@ -0,0 +1,16 @@
+--TEST--
+shadowing a global core constant with a local version
+--FILE--
+<?php
+
+require 'includes/foo_php_version.php';
+
+use const foo\PHP_VERSION;
+
+var_dump(PHP_VERSION);
+echo "Done\n";
+
+?>
+--EXPECTF--
+int(42)
+Done
diff --git a/Zend/tests/use_const/shadow_global.phpt b/Zend/tests/use_const/shadow_global.phpt
new file mode 100644
index 000000000..930cc9f0b
--- /dev/null
+++ b/Zend/tests/use_const/shadow_global.phpt
@@ -0,0 +1,25 @@
+--TEST--
+shadowing a global constant with a local version
+--FILE--
+<?php
+
+namespace {
+ require 'includes/global_bar.php';
+ require 'includes/foo_bar.php';
+}
+
+namespace {
+ var_dump(bar);
+}
+
+namespace {
+ use const foo\bar;
+ var_dump(bar);
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+string(10) "global bar"
+string(9) "local bar"
+Done
diff --git a/Zend/tests/use_function/alias.phpt b/Zend/tests/use_function/alias.phpt
new file mode 100644
index 000000000..5f7e97fff
--- /dev/null
+++ b/Zend/tests/use_function/alias.phpt
@@ -0,0 +1,30 @@
+--TEST--
+aliasing imported functions to resolve naming conflicts
+--FILE--
+<?php
+
+namespace foo {
+ function baz() {
+ return 'foo.baz';
+ }
+}
+
+namespace bar {
+ function baz() {
+ return 'bar.baz';
+ }
+}
+
+namespace {
+ use function foo\baz as foo_baz,
+ bar\baz as bar_baz;
+ var_dump(foo_baz());
+ var_dump(bar_baz());
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+string(7) "foo.baz"
+string(7) "bar.baz"
+Done
diff --git a/Zend/tests/use_function/basic.phpt b/Zend/tests/use_function/basic.phpt
new file mode 100644
index 000000000..513a96620
--- /dev/null
+++ b/Zend/tests/use_function/basic.phpt
@@ -0,0 +1,26 @@
+--TEST--
+import namespaced function
+--FILE--
+<?php
+
+namespace foo\bar {
+ function baz() {
+ return 'foo.bar.baz';
+ }
+ function qux() {
+ return baz();
+ }
+}
+
+namespace {
+ use function foo\bar\baz, foo\bar\qux;
+ var_dump(baz());
+ var_dump(qux());
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+string(11) "foo.bar.baz"
+string(11) "foo.bar.baz"
+Done
diff --git a/Zend/tests/use_function/case_insensivity.phpt b/Zend/tests/use_function/case_insensivity.phpt
new file mode 100644
index 000000000..ba6e3a7e4
--- /dev/null
+++ b/Zend/tests/use_function/case_insensivity.phpt
@@ -0,0 +1,13 @@
+--TEST--
+importing function with same name but different case should fail
+--FILE--
+<?php
+
+namespace {
+ use function foo\bar;
+ use function foo\BAR;
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use function foo\BAR as BAR because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_function/conditional_function_declaration.phpt b/Zend/tests/use_function/conditional_function_declaration.phpt
new file mode 100644
index 000000000..ccfb96103
--- /dev/null
+++ b/Zend/tests/use_function/conditional_function_declaration.phpt
@@ -0,0 +1,17 @@
+--TEST--
+function that is conditionally defined at runtime should not cause compiler error
+--FILE--
+<?php
+
+if (0) {
+ function foo() {
+ }
+}
+
+use function bar\foo;
+
+echo "Done";
+
+?>
+--EXPECT--
+Done
diff --git a/Zend/tests/use_function/conflicting_use.phpt b/Zend/tests/use_function/conflicting_use.phpt
new file mode 100644
index 000000000..0221fbdeb
--- /dev/null
+++ b/Zend/tests/use_function/conflicting_use.phpt
@@ -0,0 +1,25 @@
+--TEST--
+use function statements with conflicting names
+--FILE--
+<?php
+
+namespace foo {
+ function baz() {
+ return 'foo.baz';
+ }
+}
+
+namespace bar {
+ function baz() {
+ return 'bar.baz';
+ }
+}
+
+namespace {
+ use function foo\baz, bar\baz;
+ echo "Done\n";
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use function bar\baz as baz because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_function/conflicting_use_alias.phpt b/Zend/tests/use_function/conflicting_use_alias.phpt
new file mode 100644
index 000000000..287051201
--- /dev/null
+++ b/Zend/tests/use_function/conflicting_use_alias.phpt
@@ -0,0 +1,20 @@
+--TEST--
+use and use function with the same alias
+--FILE--
+<?php
+
+namespace {
+ function foo() {
+ return 'foo';
+ }
+}
+
+namespace x {
+ use foo as bar;
+ use function foo as bar;
+ var_dump(bar());
+}
+
+?>
+--EXPECT--
+string(3) "foo"
diff --git a/Zend/tests/use_function/conflicting_use_const_alias.phpt b/Zend/tests/use_function/conflicting_use_const_alias.phpt
new file mode 100644
index 000000000..2e0faf0da
--- /dev/null
+++ b/Zend/tests/use_function/conflicting_use_const_alias.phpt
@@ -0,0 +1,23 @@
+--TEST--
+use const and use function with the same alias
+--FILE--
+<?php
+
+namespace {
+ const foo = 'foo.const';
+ function foo() {
+ return 'foo.function';
+ }
+}
+
+namespace x {
+ use const foo as bar;
+ use function foo as bar;
+ var_dump(bar);
+ var_dump(bar());
+}
+
+?>
+--EXPECT--
+string(9) "foo.const"
+string(12) "foo.function"
diff --git a/Zend/tests/use_function/define_imported.phpt b/Zend/tests/use_function/define_imported.phpt
new file mode 100644
index 000000000..c542a4d54
--- /dev/null
+++ b/Zend/tests/use_function/define_imported.phpt
@@ -0,0 +1,14 @@
+--TEST--
+defining function with same name as imported should fail
+--FILE--
+<?php
+
+namespace {
+ use function foo\bar;
+
+ function bar() {}
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare function bar because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_function/define_imported_before.phpt b/Zend/tests/use_function/define_imported_before.phpt
new file mode 100644
index 000000000..91974e078
--- /dev/null
+++ b/Zend/tests/use_function/define_imported_before.phpt
@@ -0,0 +1,18 @@
+--TEST--
+using function with same name as defined should fail
+--FILE--
+<?php
+
+namespace {
+ function bar() {}
+
+ use function foo\bar;
+}
+
+namespace {
+ echo "Done";
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use function foo\bar as bar because the name is already in use in %s on line %d
diff --git a/Zend/tests/use_function/ignore_constants.phpt b/Zend/tests/use_function/ignore_constants.phpt
new file mode 100644
index 000000000..c50ff7357
--- /dev/null
+++ b/Zend/tests/use_function/ignore_constants.phpt
@@ -0,0 +1,23 @@
+--TEST--
+use function should ignore namespaced constants
+--FILE--
+<?php
+
+namespace foo {
+ const bar = 42;
+}
+
+namespace {
+ const bar = 43;
+}
+
+namespace {
+ use function foo\bar;
+ var_dump(bar);
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+int(43)
+Done
diff --git a/Zend/tests/use_function/includes/foo_bar.php b/Zend/tests/use_function/includes/foo_bar.php
new file mode 100644
index 000000000..6d2f8cab4
--- /dev/null
+++ b/Zend/tests/use_function/includes/foo_bar.php
@@ -0,0 +1,7 @@
+<?php
+
+namespace foo;
+
+function bar() {
+ return 'local bar';
+}
diff --git a/Zend/tests/use_function/includes/foo_strlen.php b/Zend/tests/use_function/includes/foo_strlen.php
new file mode 100644
index 000000000..d2df2aa2b
--- /dev/null
+++ b/Zend/tests/use_function/includes/foo_strlen.php
@@ -0,0 +1,7 @@
+<?php
+
+namespace foo;
+
+function strlen($str) {
+ return 4;
+}
diff --git a/Zend/tests/use_function/includes/global_bar.php b/Zend/tests/use_function/includes/global_bar.php
new file mode 100644
index 000000000..6d7d91f80
--- /dev/null
+++ b/Zend/tests/use_function/includes/global_bar.php
@@ -0,0 +1,5 @@
+<?php
+
+function bar() {
+ return 'global bar';
+}
diff --git a/Zend/tests/use_function/includes/global_baz.php b/Zend/tests/use_function/includes/global_baz.php
new file mode 100644
index 000000000..6383b9dd3
--- /dev/null
+++ b/Zend/tests/use_function/includes/global_baz.php
@@ -0,0 +1,4 @@
+<?php
+
+function baz() {
+}
diff --git a/Zend/tests/use_function/no_global_fallback.phpt b/Zend/tests/use_function/no_global_fallback.phpt
new file mode 100644
index 000000000..6597d0d30
--- /dev/null
+++ b/Zend/tests/use_function/no_global_fallback.phpt
@@ -0,0 +1,13 @@
+--TEST--
+non-existent imported functions should not be looked up in the global table
+--FILE--
+<?php
+
+require 'includes/global_baz.php';
+
+use function foo\bar\baz;
+var_dump(baz());
+
+?>
+--EXPECTF--
+Fatal error: Call to undefined function foo\bar\baz() in %s on line %d
diff --git a/Zend/tests/use_function/no_global_fallback2.phpt b/Zend/tests/use_function/no_global_fallback2.phpt
new file mode 100644
index 000000000..5d012c10e
--- /dev/null
+++ b/Zend/tests/use_function/no_global_fallback2.phpt
@@ -0,0 +1,18 @@
+--TEST--
+non-existent imported functions should not be looked up in the global table
+--FILE--
+<?php
+
+namespace {
+ function test() {
+ echo "NO!";
+ }
+}
+namespace foo {
+ use function bar\test;
+ test();
+}
+
+?>
+--EXPECTF--
+Fatal error: Call to undefined function bar\test() in %s on line %d
diff --git a/Zend/tests/use_function/self_parent.phpt b/Zend/tests/use_function/self_parent.phpt
new file mode 100644
index 000000000..f1e1fa84f
--- /dev/null
+++ b/Zend/tests/use_function/self_parent.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Allow self and parent in use function statement
+--FILE--
+<?php
+
+namespace {
+ use function self as foo;
+ use function parent as bar;
+}
+
+?>
+--EXPECT--
diff --git a/Zend/tests/use_function/shadow_core.phpt b/Zend/tests/use_function/shadow_core.phpt
new file mode 100644
index 000000000..8f92ff1e1
--- /dev/null
+++ b/Zend/tests/use_function/shadow_core.phpt
@@ -0,0 +1,16 @@
+--TEST--
+shadowing a global core function with a local version
+--FILE--
+<?php
+
+require 'includes/foo_strlen.php';
+
+use function foo\strlen;
+
+var_dump(strlen('foo bar baz'));
+echo "Done\n";
+
+?>
+--EXPECT--
+int(4)
+Done
diff --git a/Zend/tests/use_function/shadow_global.phpt b/Zend/tests/use_function/shadow_global.phpt
new file mode 100644
index 000000000..791bcdf4d
--- /dev/null
+++ b/Zend/tests/use_function/shadow_global.phpt
@@ -0,0 +1,25 @@
+--TEST--
+shadowing a global function with a local version
+--FILE--
+<?php
+
+namespace {
+ require 'includes/global_bar.php';
+ require 'includes/foo_bar.php';
+}
+
+namespace {
+ var_dump(bar());
+}
+
+namespace {
+ use function foo\bar;
+ var_dump(bar());
+ echo "Done\n";
+}
+
+?>
+--EXPECT--
+string(10) "global bar"
+string(9) "local bar"
+Done
diff --git a/Zend/tests/variadic/adding_additional_optional_parameter.phpt b/Zend/tests/variadic/adding_additional_optional_parameter.phpt
new file mode 100644
index 000000000..b4e797803
--- /dev/null
+++ b/Zend/tests/variadic/adding_additional_optional_parameter.phpt
@@ -0,0 +1,17 @@
+--TEST--
+It's possible to add additional optional arguments with matching signature
+--FILE--
+<?php
+
+interface DB {
+ public function query($query, string ...$params);
+}
+
+class MySQL implements DB {
+ public function query($query, string $extraParam = null, string ...$params) { }
+}
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/Zend/tests/variadic/adding_additional_optional_parameter_error.phpt b/Zend/tests/variadic/adding_additional_optional_parameter_error.phpt
new file mode 100644
index 000000000..2f31d47dc
--- /dev/null
+++ b/Zend/tests/variadic/adding_additional_optional_parameter_error.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Additional optional parameters must have a matching prototype
+--FILE--
+<?php
+
+interface DB {
+ public function query($query, string ...$params);
+}
+
+class MySQL implements DB {
+ public function query($query, int $extraParam = null, string ...$params) { }
+}
+
+?>
+--EXPECTF--
+Fatal error: Declaration of MySQL::query() must be compatible with DB::query($query, string ...$params) in %s on line %d
diff --git a/Zend/tests/variadic/basic.phpt b/Zend/tests/variadic/basic.phpt
new file mode 100644
index 000000000..810d4756a
--- /dev/null
+++ b/Zend/tests/variadic/basic.phpt
@@ -0,0 +1,57 @@
+--TEST--
+Basic variadic function
+--FILE--
+<?php
+
+function test1(... $args) {
+ var_dump($args);
+}
+
+test1();
+test1(1);
+test1(1, 2, 3);
+
+function test2($arg1, $arg2, ...$args) {
+ var_dump($arg1, $arg2, $args);
+}
+
+test2(1, 2);
+test2(1, 2, 3);
+test2(1, 2, 3, 4, 5);
+
+?>
+--EXPECT--
+array(0) {
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+int(1)
+int(2)
+array(0) {
+}
+int(1)
+int(2)
+array(1) {
+ [0]=>
+ int(3)
+}
+int(1)
+int(2)
+array(3) {
+ [0]=>
+ int(3)
+ [1]=>
+ int(4)
+ [2]=>
+ int(5)
+}
diff --git a/Zend/tests/variadic/by_ref.phpt b/Zend/tests/variadic/by_ref.phpt
new file mode 100644
index 000000000..e1635f4ec
--- /dev/null
+++ b/Zend/tests/variadic/by_ref.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Variadic arguments with by-reference passing
+--FILE--
+<?php
+
+function test(&... $args) {
+ $i = 0;
+ foreach ($args as &$arg) {
+ $arg = $i++;
+ }
+}
+
+test();
+test($a);
+var_dump($a);
+test($b, $c, $d);
+var_dump($b, $c, $d);
+
+?>
+--EXPECT--
+int(0)
+int(0)
+int(1)
+int(2)
diff --git a/Zend/tests/variadic/by_ref_error.phpt b/Zend/tests/variadic/by_ref_error.phpt
new file mode 100644
index 000000000..7f2101414
--- /dev/null
+++ b/Zend/tests/variadic/by_ref_error.phpt
@@ -0,0 +1,12 @@
+--TEST--
+By-ref variadics enforce the reference
+--FILE--
+<?php
+
+function test(&... $args) { }
+
+test(1);
+
+?>
+--EXPECTF--
+Fatal error: Only variables can be passed by reference in %s on line %d
diff --git a/Zend/tests/variadic/no_default_error.phpt b/Zend/tests/variadic/no_default_error.phpt
new file mode 100644
index 000000000..427ebed02
--- /dev/null
+++ b/Zend/tests/variadic/no_default_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Variadic argument cannot have a default value
+--FILE--
+<?php
+
+function test(...$args = 123) {}
+
+?>
+--EXPECTF--
+Fatal error: Variadic parameter cannot have a default value in %s on line %d
diff --git a/Zend/tests/variadic/non_variadic_implements_variadic_error.phpt b/Zend/tests/variadic/non_variadic_implements_variadic_error.phpt
new file mode 100644
index 000000000..f447837ca
--- /dev/null
+++ b/Zend/tests/variadic/non_variadic_implements_variadic_error.phpt
@@ -0,0 +1,16 @@
+--TEST--
+It's not possible to turn a variadic function into a non-variadic one
+--FILE--
+<?php
+
+interface DB {
+ public function query($query, ...$params);
+}
+
+class MySQL implements DB {
+ public function query($query, $params) { }
+}
+
+?>
+--EXPECTF--
+Fatal error: Declaration of MySQL::query() must be compatible with DB::query($query, ...$params) in %s on line %d
diff --git a/Zend/tests/variadic/only_last_error.phpt b/Zend/tests/variadic/only_last_error.phpt
new file mode 100644
index 000000000..ee6ff3f77
--- /dev/null
+++ b/Zend/tests/variadic/only_last_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Only the last argument can be variadic
+--FILE--
+<?php
+
+function test($foo, ...$bar, $baz) {}
+
+?>
+--EXPECTF--
+Fatal error: Only the last parameter can be variadic in %s on line %d
diff --git a/Zend/tests/variadic/optional_params.phpt b/Zend/tests/variadic/optional_params.phpt
new file mode 100644
index 000000000..ba965e538
--- /dev/null
+++ b/Zend/tests/variadic/optional_params.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Optional parameter before variadic parameter
+--FILE--
+<?php
+
+function fn($reqParam, $optParam = null, ...$params) {
+ var_dump($reqParam, $optParam, $params);
+}
+
+fn(1);
+fn(1, 2);
+fn(1, 2, 3);
+fn(1, 2, 3, 4);
+fn(1, 2, 3, 4, 5);
+
+?>
+--EXPECT--
+int(1)
+NULL
+array(0) {
+}
+int(1)
+int(2)
+array(0) {
+}
+int(1)
+int(2)
+array(1) {
+ [0]=>
+ int(3)
+}
+int(1)
+int(2)
+array(2) {
+ [0]=>
+ int(3)
+ [1]=>
+ int(4)
+}
+int(1)
+int(2)
+array(3) {
+ [0]=>
+ int(3)
+ [1]=>
+ int(4)
+ [2]=>
+ int(5)
+}
diff --git a/Zend/tests/variadic/removing_parameter_error.phpt b/Zend/tests/variadic/removing_parameter_error.phpt
new file mode 100644
index 000000000..a189e5cf0
--- /dev/null
+++ b/Zend/tests/variadic/removing_parameter_error.phpt
@@ -0,0 +1,20 @@
+--TEST--
+It's not possible to remove required parameter before a variadic parameter
+--FILE--
+<?php
+
+/* Theoretically this should be valid because it weakens the constraint, but
+ * PHP does not allow this (for non-variadics), so I'm not allowing it here, too,
+ * to stay consistent. */
+
+interface DB {
+ public function query($query, ...$params);
+}
+
+class MySQL implements DB {
+ public function query(...$params) { }
+}
+
+?>
+--EXPECTF--
+Fatal error: Declaration of MySQL::query() must be compatible with DB::query($query, ...$params) in %s on line %d
diff --git a/Zend/tests/variadic/typehint_error.phpt b/Zend/tests/variadic/typehint_error.phpt
new file mode 100644
index 000000000..3006b9995
--- /dev/null
+++ b/Zend/tests/variadic/typehint_error.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Variadic arguments enforce typehints
+--FILE--
+<?php
+
+function test(array... $args) {
+ var_dump($args);
+}
+
+test();
+test([0], [1], [2]);
+test([0], [1], 2);
+
+?>
+--EXPECTF--
+array(0) {
+}
+array(3) {
+ [0]=>
+ array(1) {
+ [0]=>
+ int(0)
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ int(1)
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ int(2)
+ }
+}
+
+Catchable fatal error: Argument 3 passed to test() must be of the type array, integer given, called in %s on line %d
diff --git a/Zend/tests/variadic/typehint_suppressed_error.phpt b/Zend/tests/variadic/typehint_suppressed_error.phpt
new file mode 100644
index 000000000..5048e1c1b
--- /dev/null
+++ b/Zend/tests/variadic/typehint_suppressed_error.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Error suppression for typehints on variadic arguments works
+--FILE--
+<?php
+
+function test(array... $args) {
+ var_dump($args);
+}
+
+set_error_handler(function($errno, $errstr) {
+ var_dump($errstr);
+ return true;
+});
+
+test([0], [1], 2);
+
+?>
+--EXPECTF--
+string(%d) "Argument 3 passed to test() must be of the type array, integer given, called in %s on line %d and defined"
+array(3) {
+ [0]=>
+ array(1) {
+ [0]=>
+ int(0)
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ int(1)
+ }
+ [2]=>
+ int(2)
+}
diff --git a/Zend/tests/variadic/variadic_changed_byref_error.phpt b/Zend/tests/variadic/variadic_changed_byref_error.phpt
new file mode 100644
index 000000000..14fb6ae5e
--- /dev/null
+++ b/Zend/tests/variadic/variadic_changed_byref_error.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Variadic arguments must have compatible passing modes
+--FILE--
+<?php
+
+interface DB {
+ public function query($query, &...$params);
+}
+
+class MySQL implements DB {
+ public function query($query, ...$params) { }
+}
+
+?>
+--EXPECTF--
+Fatal error: Declaration of MySQL::query() must be compatible with DB::query($query, &...$params) in %s on line %d
diff --git a/Zend/tests/variadic/variadic_changed_typehint_error.phpt b/Zend/tests/variadic/variadic_changed_typehint_error.phpt
new file mode 100644
index 000000000..00df33a04
--- /dev/null
+++ b/Zend/tests/variadic/variadic_changed_typehint_error.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Typehints for variadic arguments have to be compatible
+--FILE--
+<?php
+
+interface DB {
+ public function query($query, string ...$params);
+}
+
+class MySQL implements DB {
+ public function query($query, int ...$params) { }
+}
+
+?>
+--EXPECTF--
+Fatal error: Declaration of MySQL::query() must be compatible with DB::query($query, string ...$params) in %s on line %d
diff --git a/Zend/tests/variadic/variadic_implements_non_variadic.phpt b/Zend/tests/variadic/variadic_implements_non_variadic.phpt
new file mode 100644
index 000000000..a66ec280b
--- /dev/null
+++ b/Zend/tests/variadic/variadic_implements_non_variadic.phpt
@@ -0,0 +1,17 @@
+--TEST--
+A non-variadic function can be turned into a variadic one
+--FILE--
+<?php
+
+interface DB {
+ public function query($query);
+}
+
+class MySQL implements DB {
+ public function query($query, ...$params) { }
+}
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/Zend/tests/zend_signed_multiply-32bit.phpt b/Zend/tests/zend_signed_multiply-32bit.phpt
new file mode 100644
index 000000000..3f37cbac1
--- /dev/null
+++ b/Zend/tests/zend_signed_multiply-32bit.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Zend signed multiply 32-bit
+--SKIPIF--
+<?php if ((1 << 31) > 0) print "skip Running on 64-bit target"; ?>
+--FILE--
+<?php
+var_dump(0x8000 * -0xffff);
+var_dump(0x8001 * 0xfffe);
+var_dump(0x8001 * -0xffff);
+?>
+--EXPECTF--
+int(-2147450880)
+int(2147483646)
+float(-2147516415)
diff --git a/Zend/tests/zend_signed_multiply-64bit.phpt b/Zend/tests/zend_signed_multiply-64bit.phpt
new file mode 100644
index 000000000..94a6e035f
--- /dev/null
+++ b/Zend/tests/zend_signed_multiply-64bit.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Zend signed multiply 64-bit
+--SKIPIF--
+<?php if ((1 << 31) < 0) print "skip Running on 32-bit target"; ?>
+--FILE--
+<?php
+var_dump(0x80000000 * -0xffffffff);
+var_dump(0x80000001 * 0xfffffffe);
+var_dump(0x80000001 * -0xffffffff);
+?>
+--EXPECTF--
+int(-9223372034707292160)
+int(9223372036854775806)
+float(-9.2233720390023E+18)
diff --git a/Zend/zend.c b/Zend/zend.c
index 80037e5c1..ce1163130 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -30,6 +30,7 @@
#include "zend_ini.h"
#include "zend_vm.h"
#include "zend_dtrace.h"
+#include "zend_virtual_cwd.h"
#ifdef ZTS
# define GLOBAL_FUNCTION_TABLE global_function_table
@@ -127,7 +128,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-2013 Zend Technologies\n"
+#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2014 Zend Technologies\n"
#define PRINT_ZVAL_INDENT 4
static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) /* {{{ */
@@ -648,6 +649,8 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions TS
start_memory_manager(TSRMLS_C);
+ virtual_cwd_startup(); /* Could use shutdown to free the main cwd but it would just slow it down for CGI */
+
#if defined(__FreeBSD__) || defined(__DragonFly__)
/* FreeBSD and DragonFly floating point precision fix */
fpsetmask(0);
@@ -798,9 +801,14 @@ void zend_post_startup(TSRMLS_D) /* {{{ */
compiler_globals_ctor(compiler_globals, tsrm_ls);
}
free(EG(zend_constants));
+
+ virtual_cwd_deactivate(TSRMLS_C);
+
executor_globals_ctor(executor_globals, tsrm_ls);
global_persistent_list = &EG(persistent_list);
zend_copy_ini_directives(TSRMLS_C);
+#else
+ virtual_cwd_deactivate(TSRMLS_C);
#endif
}
/* }}} */
@@ -816,6 +824,9 @@ void zend_shutdown(TSRMLS_D) /* {{{ */
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
zend_destroy_modules();
+ virtual_cwd_deactivate(TSRMLS_C);
+ virtual_cwd_shutdown();
+
zend_hash_destroy(GLOBAL_FUNCTION_TABLE);
zend_hash_destroy(GLOBAL_CLASS_TABLE);
@@ -904,8 +915,11 @@ ZEND_API char *get_zend_version(void) /* {{{ */
}
/* }}} */
-void zend_activate(TSRMLS_D) /* {{{ */
+ZEND_API void zend_activate(TSRMLS_D) /* {{{ */
{
+#ifdef ZTS
+ virtual_cwd_activate(TSRMLS_C);
+#endif
gc_reset(TSRMLS_C);
init_compiler(TSRMLS_C);
init_executor(TSRMLS_C);
@@ -921,7 +935,7 @@ void zend_call_destructors(TSRMLS_D) /* {{{ */
}
/* }}} */
-void zend_deactivate(TSRMLS_D) /* {{{ */
+ZEND_API void zend_deactivate(TSRMLS_D) /* {{{ */
{
/* we're no longer executing anything */
EG(opline_ptr) = NULL;
diff --git a/Zend/zend.h b/Zend/zend.h
index af653b15e..ac2b28a1e 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -22,7 +22,7 @@
#ifndef ZEND_H
#define ZEND_H
-#define ZEND_VERSION "2.5.0"
+#define ZEND_VERSION "2.6.0-dev"
#define ZEND_ENGINE_2
@@ -193,7 +193,7 @@ char *alloca ();
#endif
#define restrict __restrict__
-#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN)
+#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN)
# define ZEND_ALLOCA_MAX_SIZE (32 * 1024)
# define ALLOCA_FLAG(name) \
zend_bool name;
@@ -317,6 +317,7 @@ typedef struct _zend_object {
} zend_object;
#include "zend_object_handlers.h"
+#include "zend_ast.h"
typedef union _zvalue_value {
long lval; /* long value */
@@ -327,6 +328,7 @@ typedef union _zvalue_value {
} str;
HashTable *ht; /* hash table value */
zend_object_value obj;
+ zend_ast *ast;
} zvalue_value;
struct _zval_struct {
@@ -587,7 +589,8 @@ typedef int (*zend_write_func_t)(const char *str, uint str_length);
#define IS_RESOURCE 7
#define IS_CONSTANT 8
#define IS_CONSTANT_ARRAY 9
-#define IS_CALLABLE 10
+#define IS_CONSTANT_AST 10
+#define IS_CALLABLE 11
/* Ugly hack to support constants as static array indices */
#define IS_CONSTANT_TYPE_MASK 0x00f
@@ -597,6 +600,8 @@ typedef int (*zend_write_func_t)(const char *str, uint str_length);
#define IS_LEXICAL_REF 0x040
#define IS_CONSTANT_IN_NAMESPACE 0x100
+#define IS_CONSTANT_TYPE(type) (((type) & IS_CONSTANT_TYPE_MASK) >= IS_CONSTANT && ((type) & IS_CONSTANT_TYPE_MASK) <= IS_CONSTANT_AST)
+
/* overloaded elements data types */
#define OE_IS_ARRAY (1<<0)
#define OE_IS_OBJECT (1<<1)
@@ -651,12 +656,14 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int
ZEND_API void zend_output_debug_string(zend_bool trigger_break, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
END_EXTERN_C()
-void zend_activate(TSRMLS_D);
-void zend_deactivate(TSRMLS_D);
-void zend_call_destructors(TSRMLS_D);
-void zend_activate_modules(TSRMLS_D);
-void zend_deactivate_modules(TSRMLS_D);
-void zend_post_deactivate_modules(TSRMLS_D);
+BEGIN_EXTERN_C()
+ZEND_API void zend_activate(TSRMLS_D);
+ZEND_API void zend_deactivate(TSRMLS_D);
+ZEND_API void zend_call_destructors(TSRMLS_D);
+ZEND_API void zend_activate_modules(TSRMLS_D);
+ZEND_API void zend_deactivate_modules(TSRMLS_D);
+ZEND_API void zend_post_deactivate_modules(TSRMLS_D);
+END_EXTERN_C()
#if ZEND_DEBUG
#define Z_DBG(expr) (expr)
@@ -670,10 +677,14 @@ END_EXTERN_C()
/* FIXME: Check if we can save if (ptr) too */
-#define STR_FREE(ptr) if (ptr && !IS_INTERNED(ptr)) { efree(ptr); }
-#define STR_FREE_REL(ptr) if (ptr && !IS_INTERNED(ptr)) { efree_rel(ptr); }
+#define STR_FREE(ptr) if (ptr) { str_efree(ptr); }
+#define STR_FREE_REL(ptr) if (ptr) { str_efree_rel(ptr); }
+#ifndef ZTS
+#define STR_EMPTY_ALLOC() CG(interned_empty_string)? CG(interned_empty_string) : estrndup("", sizeof("")-1)
+#else
#define STR_EMPTY_ALLOC() estrndup("", sizeof("")-1)
+#endif
#define STR_REALLOC(ptr, size) \
ptr = (char *) erealloc(ptr, size);
@@ -683,7 +694,7 @@ END_EXTERN_C()
#define ZEND_WRITE_EX(str, str_len) write_func((str), (str_len))
#define ZEND_PUTS(str) zend_write((str), strlen((str)))
#define ZEND_PUTS_EX(str) write_func((str), strlen((str)))
-#define ZEND_PUTC(c) zend_write(&(c), 1), (c)
+#define ZEND_PUTC(c) zend_write(&(c), 1)
BEGIN_EXTERN_C()
extern ZEND_API int (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2);
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index b59faab28..c17af9813 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -1010,7 +1010,7 @@ ZEND_API int _array_init(zval *arg, uint size ZEND_FILE_LINE_DC) /* {{{ */
{
ALLOC_HASHTABLE_REL(Z_ARRVAL_P(arg));
- _zend_hash_init(Z_ARRVAL_P(arg), size, NULL, ZVAL_PTR_DTOR, 0 ZEND_FILE_LINE_RELAY_CC);
+ _zend_hash_init(Z_ARRVAL_P(arg), size, ZVAL_PTR_DTOR, 0 ZEND_FILE_LINE_RELAY_CC);
Z_TYPE_P(arg) = IS_ARRAY;
return SUCCESS;
}
@@ -1053,8 +1053,7 @@ ZEND_API void zend_merge_properties(zval *obj, HashTable *properties, int destro
static int zval_update_class_constant(zval **pp, int is_static, int offset TSRMLS_DC) /* {{{ */
{
- if ((Z_TYPE_PP(pp) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT ||
- (Z_TYPE_PP(pp) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT_ARRAY) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_PP(pp))) {
zend_class_entry **scope = EG(in_execution)?&EG(scope):&CG(active_class_entry);
if ((*scope)->parent) {
@@ -1078,7 +1077,7 @@ static int zval_update_class_constant(zval **pp, int is_static, int offset TSRML
}
ce = ce->parent;
} while (ce);
-
+
}
return zval_update_constant(pp, (void*)1 TSRMLS_CC);
}
@@ -1973,35 +1972,35 @@ ZEND_API void zend_check_magic_method_implementation(const zend_class_entry *ce,
zend_str_tolower_copy(lcname, fptr->common.function_name, MIN(name_len, sizeof(lcname)-1));
lcname[sizeof(lcname)-1] = '\0'; /* zend_str_tolower_copy won't necessarily set the zero byte */
- if (name_len == sizeof(ZEND_DESTRUCTOR_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_DESTRUCTOR_FUNC_NAME, sizeof(ZEND_DESTRUCTOR_FUNC_NAME)) && fptr->common.num_args != 0) {
+ if (name_len == sizeof(ZEND_DESTRUCTOR_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_DESTRUCTOR_FUNC_NAME, sizeof(ZEND_DESTRUCTOR_FUNC_NAME) - 1) && fptr->common.num_args != 0) {
zend_error(error_type, "Destructor %s::%s() cannot take arguments", ce->name, ZEND_DESTRUCTOR_FUNC_NAME);
- } else if (name_len == sizeof(ZEND_CLONE_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_CLONE_FUNC_NAME, sizeof(ZEND_CLONE_FUNC_NAME)) && fptr->common.num_args != 0) {
+ } else if (name_len == sizeof(ZEND_CLONE_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_CLONE_FUNC_NAME, sizeof(ZEND_CLONE_FUNC_NAME) - 1) && fptr->common.num_args != 0) {
zend_error(error_type, "Method %s::%s() cannot accept any arguments", ce->name, ZEND_CLONE_FUNC_NAME);
- } else if (name_len == sizeof(ZEND_GET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_GET_FUNC_NAME, sizeof(ZEND_GET_FUNC_NAME))) {
+ } else if (name_len == sizeof(ZEND_GET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_GET_FUNC_NAME, sizeof(ZEND_GET_FUNC_NAME) - 1)) {
if (fptr->common.num_args != 1) {
zend_error(error_type, "Method %s::%s() must take exactly 1 argument", ce->name, ZEND_GET_FUNC_NAME);
} else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1)) {
zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_GET_FUNC_NAME);
}
- } else if (name_len == sizeof(ZEND_SET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_SET_FUNC_NAME, sizeof(ZEND_SET_FUNC_NAME))) {
+ } else if (name_len == sizeof(ZEND_SET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_SET_FUNC_NAME, sizeof(ZEND_SET_FUNC_NAME) - 1)) {
if (fptr->common.num_args != 2) {
zend_error(error_type, "Method %s::%s() must take exactly 2 arguments", ce->name, ZEND_SET_FUNC_NAME);
} else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1) || ARG_SHOULD_BE_SENT_BY_REF(fptr, 2)) {
zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_SET_FUNC_NAME);
}
- } else if (name_len == sizeof(ZEND_UNSET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_UNSET_FUNC_NAME, sizeof(ZEND_UNSET_FUNC_NAME))) {
+ } else if (name_len == sizeof(ZEND_UNSET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_UNSET_FUNC_NAME, sizeof(ZEND_UNSET_FUNC_NAME) - 1)) {
if (fptr->common.num_args != 1) {
zend_error(error_type, "Method %s::%s() must take exactly 1 argument", ce->name, ZEND_UNSET_FUNC_NAME);
} else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1)) {
zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_UNSET_FUNC_NAME);
}
- } else if (name_len == sizeof(ZEND_ISSET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME))) {
+ } else if (name_len == sizeof(ZEND_ISSET_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME) - 1)) {
if (fptr->common.num_args != 1) {
zend_error(error_type, "Method %s::%s() must take exactly 1 argument", ce->name, ZEND_ISSET_FUNC_NAME);
} else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1)) {
zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_ISSET_FUNC_NAME);
}
- } else if (name_len == sizeof(ZEND_CALL_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME))) {
+ } else if (name_len == sizeof(ZEND_CALL_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME) - 1)) {
if (fptr->common.num_args != 2) {
zend_error(error_type, "Method %s::%s() must take exactly 2 arguments", ce->name, ZEND_CALL_FUNC_NAME);
} else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1) || ARG_SHOULD_BE_SENT_BY_REF(fptr, 2)) {
@@ -2029,7 +2028,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
const zend_function_entry *ptr = functions;
zend_function function, *reg_function;
zend_internal_function *internal_function = (zend_internal_function *)&function;
- int count=0, unload=0, result=0;
+ int count=0, unload=0;
HashTable *target_function_table = function_table;
int error_type;
zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__call = NULL, *__callstatic = NULL, *__tostring = NULL;
@@ -2037,6 +2036,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
int fname_len;
const char *lc_class_name = NULL;
int class_name_len = 0;
+ zend_ulong hash;
if (type==MODULE_PERSISTENT) {
error_type = E_CORE_WARNING;
@@ -2089,16 +2089,12 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
} else {
internal_function->required_num_args = info->required_num_args;
}
- if (info->pass_rest_by_reference) {
- if (info->pass_rest_by_reference == ZEND_SEND_PREFER_REF) {
- internal_function->fn_flags |= ZEND_ACC_PASS_REST_PREFER_REF;
- } else {
- internal_function->fn_flags |= ZEND_ACC_PASS_REST_BY_REFERENCE;
- }
- }
if (info->return_reference) {
internal_function->fn_flags |= ZEND_ACC_RETURN_REFERENCE;
}
+ if (ptr->arg_info[ptr->num_args].is_variadic) {
+ internal_function->fn_flags |= ZEND_ACC_VARIADIC;
+ }
} else {
internal_function->arg_info = NULL;
internal_function->num_args = 0;
@@ -2135,16 +2131,25 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
}
fname_len = strlen(ptr->fname);
lowercase_name = zend_new_interned_string(zend_str_tolower_dup(ptr->fname, fname_len), fname_len + 1, 1 TSRMLS_CC);
- if (IS_INTERNED(lowercase_name)) {
- result = zend_hash_quick_add(target_function_table, lowercase_name, fname_len+1, INTERNED_HASH(lowercase_name), &function, sizeof(zend_function), (void**)&reg_function);
- } else {
- result = zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)&reg_function);
- }
- if (result == FAILURE) {
+ hash = str_hash(lowercase_name, fname_len);
+ if (zend_hash_quick_add(target_function_table, lowercase_name, fname_len+1, hash, &function, sizeof(zend_function), (void**)&reg_function) == FAILURE) {
unload=1;
str_efree(lowercase_name);
break;
}
+
+ /* If types of arguments have to be checked */
+ if (reg_function->common.arg_info && reg_function->common.num_args) {
+ int i;
+ for (i = 0; i < reg_function->common.num_args; i++) {
+ if (reg_function->common.arg_info[i].class_name ||
+ reg_function->common.arg_info[i].type_hint) {
+ reg_function->common.fn_flags |= ZEND_ACC_HAS_TYPE_HINTS;
+ break;
+ }
+ }
+ }
+
if (scope) {
/* Look for ctor, dtor, clone
* If it's an old-style constructor, store it only if we don't have
@@ -2152,28 +2157,28 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
*/
if ((fname_len == class_name_len) && !ctor && !memcmp(lowercase_name, lc_class_name, class_name_len+1)) {
ctor = reg_function;
- } else if ((fname_len == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME) - 1)) {
ctor = reg_function;
- } else if ((fname_len == sizeof(ZEND_DESTRUCTOR_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_DESTRUCTOR_FUNC_NAME, sizeof(ZEND_DESTRUCTOR_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_DESTRUCTOR_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_DESTRUCTOR_FUNC_NAME, sizeof(ZEND_DESTRUCTOR_FUNC_NAME) - 1)) {
dtor = reg_function;
if (internal_function->num_args) {
zend_error(error_type, "Destructor %s::%s() cannot take arguments", scope->name, ptr->fname);
}
- } else if ((fname_len == sizeof(ZEND_CLONE_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CLONE_FUNC_NAME, sizeof(ZEND_CLONE_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_CLONE_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CLONE_FUNC_NAME, sizeof(ZEND_CLONE_FUNC_NAME) - 1)) {
clone = reg_function;
- } else if ((fname_len == sizeof(ZEND_CALL_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_CALL_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME) - 1)) {
__call = reg_function;
- } else if ((fname_len == sizeof(ZEND_CALLSTATIC_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CALLSTATIC_FUNC_NAME, sizeof(ZEND_CALLSTATIC_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_CALLSTATIC_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_CALLSTATIC_FUNC_NAME, sizeof(ZEND_CALLSTATIC_FUNC_NAME) - 1)) {
__callstatic = reg_function;
- } else if ((fname_len == sizeof(ZEND_TOSTRING_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_TOSTRING_FUNC_NAME, sizeof(ZEND_TOSTRING_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_TOSTRING_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_TOSTRING_FUNC_NAME, sizeof(ZEND_TOSTRING_FUNC_NAME) - 1)) {
__tostring = reg_function;
- } else if ((fname_len == sizeof(ZEND_GET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_GET_FUNC_NAME, sizeof(ZEND_GET_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_GET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_GET_FUNC_NAME, sizeof(ZEND_GET_FUNC_NAME) - 1)) {
__get = reg_function;
- } else if ((fname_len == sizeof(ZEND_SET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_SET_FUNC_NAME, sizeof(ZEND_SET_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_SET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_SET_FUNC_NAME, sizeof(ZEND_SET_FUNC_NAME) - 1)) {
__set = reg_function;
- } else if ((fname_len == sizeof(ZEND_UNSET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_UNSET_FUNC_NAME, sizeof(ZEND_UNSET_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_UNSET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_UNSET_FUNC_NAME, sizeof(ZEND_UNSET_FUNC_NAME) - 1)) {
__unset = reg_function;
- } else if ((fname_len == sizeof(ZEND_ISSET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME))) {
+ } else if ((fname_len == sizeof(ZEND_ISSET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME) - 1)) {
__isset = reg_function;
} else {
reg_function = NULL;
@@ -2388,7 +2393,7 @@ void module_destructor(zend_module_entry *module) /* {{{ */
}
/* }}} */
-void zend_activate_modules(TSRMLS_D) /* {{{ */
+ZEND_API void zend_activate_modules(TSRMLS_D) /* {{{ */
{
zend_module_entry **p = module_request_startup_handlers;
@@ -2417,7 +2422,7 @@ int module_registry_cleanup(zend_module_entry *module TSRMLS_DC) /* {{{ */
}
/* }}} */
-void zend_deactivate_modules(TSRMLS_D) /* {{{ */
+ZEND_API void zend_deactivate_modules(TSRMLS_D) /* {{{ */
{
EG(opline_ptr) = NULL; /* we're no longer executing anything */
@@ -2464,7 +2469,7 @@ static int exec_done_cb(zend_module_entry *module TSRMLS_DC) /* {{{ */
}
/* }}} */
-void zend_post_deactivate_modules(TSRMLS_D) /* {{{ */
+ZEND_API void zend_post_deactivate_modules(TSRMLS_D) /* {{{ */
{
if (EG(full_tables_cleanup)) {
zend_hash_apply(&module_registry, (apply_func_t) exec_done_cb TSRMLS_CC);
@@ -2493,6 +2498,7 @@ static zend_class_entry *do_register_internal_class(zend_class_entry *orig_class
{
zend_class_entry *class_entry = malloc(sizeof(zend_class_entry));
char *lowercase_name = emalloc(orig_class_entry->name_length + 1);
+ zend_ulong hash;
*class_entry = *orig_class_entry;
class_entry->type = ZEND_INTERNAL_CLASS;
@@ -2506,11 +2512,8 @@ static zend_class_entry *do_register_internal_class(zend_class_entry *orig_class
zend_str_tolower_copy(lowercase_name, orig_class_entry->name, class_entry->name_length);
lowercase_name = (char*)zend_new_interned_string(lowercase_name, class_entry->name_length + 1, 1 TSRMLS_CC);
- if (IS_INTERNED(lowercase_name)) {
- zend_hash_quick_update(CG(class_table), lowercase_name, class_entry->name_length+1, INTERNED_HASH(lowercase_name), &class_entry, sizeof(zend_class_entry *), NULL);
- } else {
- zend_hash_update(CG(class_table), lowercase_name, class_entry->name_length+1, &class_entry, sizeof(zend_class_entry *), NULL);
- }
+ hash = str_hash(lowercase_name, class_entry->name_length);
+ zend_hash_quick_update(CG(class_table), lowercase_name, class_entry->name_length+1, hash, &class_entry, sizeof(zend_class_entry *), NULL);
str_efree(lowercase_name);
return class_entry;
}
@@ -2827,7 +2830,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
if (strict_class &&
fcc->calling_scope &&
mlen == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1 &&
- !memcmp(lmname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME))) {
+ !memcmp(lmname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME) - 1)) {
fcc->function_handler = fcc->calling_scope->constructor;
if (fcc->function_handler) {
retval = 1;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index ecc8d9acd..0a7695b1c 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -98,16 +98,18 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_FE_END { NULL, NULL, NULL, 0, 0 }
-#define ZEND_ARG_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, 0, pass_by_ref},
-#define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, NULL, 0, 0, 0, pass_by_ref},
-#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, IS_OBJECT, allow_null, pass_by_ref},
-#define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, sizeof(#name)-1, NULL, 0, IS_ARRAY, allow_null, pass_by_ref},
-#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, sizeof(#name)-1, NULL, 0, type_hint, allow_null, pass_by_ref},
-#define ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, return_reference, required_num_args) \
+#define ZEND_ARG_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, pass_by_ref, 0, 0 },
+#define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, NULL, 0, 0, pass_by_ref, 0, 0 },
+#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, IS_OBJECT, pass_by_ref, allow_null, 0 },
+#define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, sizeof(#name)-1, NULL, 0, IS_ARRAY, pass_by_ref, allow_null, 0 },
+#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, sizeof(#name)-1, NULL, 0, type_hint, pass_by_ref, allow_null, 0 },
+#define ZEND_ARG_VARIADIC_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, pass_by_ref, 0, 1 },
+
+#define ZEND_BEGIN_ARG_INFO_EX(name, _unused, return_reference, required_num_args) \
static const zend_arg_info name[] = { \
- { NULL, 0, NULL, required_num_args, 0, return_reference, pass_rest_by_reference},
-#define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference) \
- ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, -1)
+ { NULL, 0, NULL, required_num_args, 0, return_reference, 0, 0 },
+#define ZEND_BEGIN_ARG_INFO(name, _unused) \
+ ZEND_BEGIN_ARG_INFO_EX(name, 0, ZEND_RETURN_VALUE, -1)
#define ZEND_END_ARG_INFO() };
/* Name macros */
@@ -594,22 +596,20 @@ END_EXTERN_C()
Z_TYPE_P(__z) = IS_STRING; \
} while (0)
-#define ZVAL_ZVAL(z, zv, copy, dtor) { \
- zend_uchar is_ref = Z_ISREF_P(z); \
- zend_uint refcount = Z_REFCOUNT_P(z); \
- ZVAL_COPY_VALUE(z, zv); \
+#define ZVAL_ZVAL(z, zv, copy, dtor) do { \
+ zval *__z = (z); \
+ zval *__zv = (zv); \
+ ZVAL_COPY_VALUE(__z, __zv); \
if (copy) { \
- zval_copy_ctor(z); \
+ zval_copy_ctor(__z); \
} \
if (dtor) { \
if (!copy) { \
- ZVAL_NULL(zv); \
+ ZVAL_NULL(__zv); \
} \
- zval_ptr_dtor(&zv); \
+ zval_ptr_dtor(&__zv); \
} \
- Z_SET_ISREF_TO_P(z, is_ref); \
- Z_SET_REFCOUNT_P(z, refcount); \
- }
+ } while (0)
#define ZVAL_FALSE(z) ZVAL_BOOL(z, 0)
#define ZVAL_TRUE(z) ZVAL_BOOL(z, 1)
@@ -638,6 +638,18 @@ END_EXTERN_C()
#define RETURN_FALSE { RETVAL_FALSE; return; }
#define RETURN_TRUE { RETVAL_TRUE; return; }
+#define RETVAL_ZVAL_FAST(z) do { \
+ zval *_z = (z); \
+ if (Z_ISREF_P(_z)) { \
+ RETVAL_ZVAL(_z, 1, 0); \
+ } else { \
+ zval_ptr_dtor(&return_value); \
+ Z_ADDREF_P(_z); \
+ *return_value_ptr = _z; \
+ } \
+} while (0)
+#define RETURN_ZVAL_FAST(z) { RETVAL_ZVAL_FAST(z); return; }
+
#define SET_VAR_STRING(n, v) { \
{ \
zval *var; \
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index bf9d00043..bdcee5cbe 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -201,7 +201,7 @@ static int zend_mm_dev_zero_fd = -1;
static zend_mm_storage* zend_mm_mem_mmap_zero_init(void *params)
{
- if (zend_mm_dev_zero_fd != -1) {
+ if (zend_mm_dev_zero_fd == -1) {
zend_mm_dev_zero_fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
}
if (zend_mm_dev_zero_fd >= 0) {
diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h
index 0b4e74d89..05494ee37 100644
--- a/Zend/zend_alloc.h
+++ b/Zend/zend_alloc.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ast.c b/Zend/zend_ast.c
new file mode 100644
index 000000000..cf595b4d5
--- /dev/null
+++ b/Zend/zend_ast.c
@@ -0,0 +1,329 @@
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2014 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: Bob Weinand <bwoebi@php.net> |
+ | Dmitry Stogov <dmitry@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#include "zend_ast.h"
+#include "zend_API.h"
+#include "zend_operators.h"
+
+ZEND_API zend_ast *zend_ast_create_constant(zval *zv)
+{
+ zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zval));
+ ast->kind = ZEND_CONST;
+ ast->children = 0;
+ ast->u.val = (zval*)(ast + 1);
+ INIT_PZVAL_COPY(ast->u.val, zv);
+ return ast;
+}
+
+ZEND_API zend_ast* zend_ast_create_unary(uint kind, zend_ast *op0)
+{
+ zend_ast *ast = emalloc(sizeof(zend_ast));
+ ast->kind = kind;
+ ast->children = 1;
+ (&ast->u.child)[0] = op0;
+ return ast;
+}
+
+ZEND_API zend_ast* zend_ast_create_binary(uint kind, zend_ast *op0, zend_ast *op1)
+{
+ zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zend_ast*));
+ ast->kind = kind;
+ ast->children = 2;
+ (&ast->u.child)[0] = op0;
+ (&ast->u.child)[1] = op1;
+ return ast;
+}
+
+ZEND_API zend_ast* zend_ast_create_ternary(uint kind, zend_ast *op0, zend_ast *op1, zend_ast *op2)
+{
+ zend_ast *ast = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * 2);
+ ast->kind = kind;
+ ast->children = 3;
+ (&ast->u.child)[0] = op0;
+ (&ast->u.child)[1] = op1;
+ (&ast->u.child)[2] = op2;
+ return ast;
+}
+
+ZEND_API int zend_ast_is_ct_constant(zend_ast *ast)
+{
+ int i;
+
+ if (ast->kind == ZEND_CONST) {
+ return !IS_CONSTANT_TYPE(Z_TYPE_P(ast->u.val));
+ } else {
+ for (i = 0; i < ast->children; i++) {
+ if ((&ast->u.child)[i]) {
+ if (!zend_ast_is_ct_constant((&ast->u.child)[i])) {
+ return 0;
+ }
+ }
+ }
+ return 1;
+ }
+}
+
+ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope TSRMLS_DC)
+{
+ zval op1, op2;
+
+ switch (ast->kind) {
+ case ZEND_ADD:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ add_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_SUB:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ sub_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_MUL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ mul_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_DIV:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ div_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_MOD:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ mod_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_SL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ shift_left_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_SR:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ shift_right_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_CONCAT:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ concat_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_BW_OR:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ bitwise_or_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_BW_AND:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ bitwise_and_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_BW_XOR:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ bitwise_xor_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_BW_NOT:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ bitwise_not_function(result, &op1 TSRMLS_CC);
+ zval_dtor(&op1);
+ break;
+ case ZEND_BOOL_NOT:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ boolean_not_function(result, &op1 TSRMLS_CC);
+ zval_dtor(&op1);
+ break;
+ case ZEND_BOOL_XOR:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ boolean_xor_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_IDENTICAL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_identical_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_NOT_IDENTICAL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_not_identical_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_EQUAL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_equal_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_NOT_EQUAL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_not_equal_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_SMALLER:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_smaller_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_IS_SMALLER_OR_EQUAL:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ is_smaller_or_equal_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
+ case ZEND_CONST:
+ *result = *ast->u.val;
+ zval_copy_ctor(result);
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(result))) {
+ zval_update_constant_ex(&result, (void *) 1, scope TSRMLS_CC);
+ }
+ break;
+ case ZEND_BOOL_AND:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ if (zend_is_true(&op1)) {
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ ZVAL_BOOL(result, zend_is_true(&op2));
+ zval_dtor(&op2);
+ } else {
+ ZVAL_BOOL(result, 0);
+ }
+ zval_dtor(&op1);
+ break;
+ case ZEND_BOOL_OR:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ if (zend_is_true(&op1)) {
+ ZVAL_BOOL(result, 1);
+ } else {
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ ZVAL_BOOL(result, zend_is_true(&op2));
+ zval_dtor(&op2);
+ }
+ zval_dtor(&op1);
+ break;
+ case ZEND_SELECT:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ if (zend_is_true(&op1)) {
+ if (!(&ast->u.child)[1]) {
+ *result = op1;
+ } else {
+ zend_ast_evaluate(result, (&ast->u.child)[1], scope TSRMLS_CC);
+ zval_dtor(&op1);
+ }
+ } else {
+ zend_ast_evaluate(result, (&ast->u.child)[2], scope TSRMLS_CC);
+ zval_dtor(&op1);
+ }
+ break;
+ case ZEND_UNARY_PLUS:
+ ZVAL_LONG(&op1, 0);
+ zend_ast_evaluate(&op2, (&ast->u.child)[0], scope TSRMLS_CC);
+ add_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op2);
+ break;
+ case ZEND_UNARY_MINUS:
+ ZVAL_LONG(&op1, 0);
+ zend_ast_evaluate(&op2, (&ast->u.child)[0], scope TSRMLS_CC);
+ sub_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op2);
+ break;
+ default:
+ zend_error(E_ERROR, "Unsupported constant expression");
+ }
+}
+
+ZEND_API zend_ast *zend_ast_copy(zend_ast *ast)
+{
+ if (ast == NULL) {
+ return NULL;
+ } else if (ast->kind == ZEND_CONST) {
+ zend_ast *copy = zend_ast_create_constant(ast->u.val);
+ zval_copy_ctor(copy->u.val);
+ return copy;
+ } else {
+ switch (ast->children) {
+ case 1:
+ return zend_ast_create_unary(
+ ast->kind,
+ zend_ast_copy((&ast->u.child)[0]));
+ case 2:
+ return zend_ast_create_binary(
+ ast->kind,
+ zend_ast_copy((&ast->u.child)[0]),
+ zend_ast_copy((&ast->u.child)[1]));
+ case 3:
+ return zend_ast_create_ternary(
+ ast->kind,
+ zend_ast_copy((&ast->u.child)[0]),
+ zend_ast_copy((&ast->u.child)[1]),
+ zend_ast_copy((&ast->u.child)[2]));
+ }
+ }
+ return NULL;
+}
+
+ZEND_API void zend_ast_destroy(zend_ast *ast)
+{
+ int i;
+
+ if (ast->kind == ZEND_CONST) {
+ zval_dtor(ast->u.val);
+ } else {
+ for (i = 0; i < ast->children; i++) {
+ if ((&ast->u.child)[i]) {
+ zend_ast_destroy((&ast->u.child)[i]);
+ }
+ }
+ }
+ efree(ast);
+}
diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h
new file mode 100644
index 000000000..927e99cff
--- /dev/null
+++ b/Zend/zend_ast.h
@@ -0,0 +1,61 @@
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2014 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: Bob Weinand <bwoebi@php.net> |
+ | Dmitry Stogov <dmitry@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef ZEND_AST_H
+#define ZEND_AST_H
+
+typedef struct _zend_ast zend_ast;
+
+#include "zend.h"
+
+typedef enum _zend_ast_kind {
+ /* first 256 kinds are reserved for opcodes */
+ ZEND_CONST = 256,
+ ZEND_BOOL_AND,
+ ZEND_BOOL_OR,
+ ZEND_SELECT,
+ ZEND_UNARY_PLUS,
+ ZEND_UNARY_MINUS,
+} zend_ast_kind;
+
+struct _zend_ast {
+ unsigned short kind;
+ unsigned short children;
+ union {
+ zval *val;
+ zend_ast *child;
+ } u;
+};
+
+ZEND_API zend_ast *zend_ast_create_constant(zval *zv);
+
+ZEND_API zend_ast *zend_ast_create_unary(uint kind, zend_ast *op0);
+ZEND_API zend_ast *zend_ast_create_binary(uint kind, zend_ast *op0, zend_ast *op1);
+ZEND_API zend_ast *zend_ast_create_ternary(uint kind, zend_ast *op0, zend_ast *op1, zend_ast *op2);
+
+ZEND_API int zend_ast_is_ct_constant(zend_ast *ast);
+
+ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope TSRMLS_DC);
+
+ZEND_API zend_ast *zend_ast_copy(zend_ast *ast);
+ZEND_API void zend_ast_destroy(zend_ast *ast);
+
+#endif
diff --git a/Zend/zend_build.h b/Zend/zend_build.h
index 152e1bd44..bec174d5c 100644
--- a/Zend/zend_build.h
+++ b/Zend/zend_build.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_builtin_functions.c b/Zend/zend_builtin_functions.c
index b2eb941fd..6bfb88898 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -435,9 +435,7 @@ ZEND_FUNCTION(func_get_arg)
}
arg = *(p-(arg_count-requested_offset));
- *return_value = *arg;
- zval_copy_ctor(return_value);
- INIT_PZVAL(return_value);
+ RETURN_ZVAL_FAST(arg);
}
/* }}} */
@@ -461,12 +459,17 @@ ZEND_FUNCTION(func_get_args)
array_init_size(return_value, arg_count);
for (i=0; i<arg_count; i++) {
- zval *element;
+ zval *element, *arg;
- ALLOC_ZVAL(element);
- *element = **((zval **) (p-(arg_count-i)));
- zval_copy_ctor(element);
- INIT_PZVAL(element);
+ arg = *((zval **) (p-(arg_count-i)));
+ if (!Z_ISREF_P(arg)) {
+ element = arg;
+ Z_ADDREF_P(element);
+ } else {
+ ALLOC_ZVAL(element);
+ INIT_PZVAL_COPY(element, arg);
+ zval_copy_ctor(element);
+ }
zend_hash_next_index_insert(return_value->value.ht, &element, sizeof(zval *), NULL);
}
}
@@ -606,9 +609,9 @@ ZEND_FUNCTION(each)
Z_ADDREF_P(entry);
/* add the key elements */
- switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_key_len, &num_key, 1, NULL)) {
+ switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_key_len, &num_key, 0, NULL)) {
case HASH_KEY_IS_STRING:
- add_get_index_stringl(return_value, 0, string_key, string_key_len-1, (void **) &inserted_pointer, 0);
+ add_get_index_stringl(return_value, 0, string_key, string_key_len-1, (void **) &inserted_pointer, !IS_INTERNED(string_key));
break;
case HASH_KEY_IS_LONG:
add_get_index_long(return_value, 0, num_key, (void **) &inserted_pointer);
@@ -706,7 +709,7 @@ repeat:
zval_ptr_dtor(&val_free);
}
c.flags = case_sensitive; /* non persistent */
- c.name = IS_INTERNED(name) ? name : zend_strndup(name, name_len);
+ c.name = str_strndup(name, name_len);
if(c.name == NULL) {
RETURN_FALSE;
}
@@ -943,11 +946,11 @@ static void add_class_vars(zend_class_entry *ce, int statics, zval *return_value
/* this is necessary to make it able to work with default array
* properties, returned to user */
- if (Z_TYPE_P(prop_copy) == IS_CONSTANT_ARRAY || (Z_TYPE_P(prop_copy) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(prop_copy))) {
zval_update_constant(&prop_copy, 0 TSRMLS_CC);
}
- add_assoc_zval(return_value, key, prop_copy);
+ zend_hash_update(Z_ARRVAL_P(return_value), key, key_len, &prop_copy, sizeof(zval*), NULL);
}
}
/* }}} */
@@ -1017,7 +1020,14 @@ ZEND_FUNCTION(get_object_vars)
zend_unmangle_property_name_ex(key, key_len - 1, &class_name, &prop_name, (int*) &prop_len);
/* Not separating references */
Z_ADDREF_PP(value);
- add_assoc_zval_ex(return_value, prop_name, prop_len + 1, *value);
+ if (IS_INTERNED(key) && prop_name != key) {
+ /* we can't use substring of interned string as a new key */
+ char *tmp = estrndup(prop_name, prop_len);
+ add_assoc_zval_ex(return_value, tmp, prop_len + 1, *value);
+ efree(tmp);
+ } else {
+ add_assoc_zval_ex(return_value, prop_name, prop_len + 1, *value);
+ }
}
}
zend_hash_move_forward_ex(properties, &pos);
@@ -1388,12 +1398,11 @@ ZEND_FUNCTION(function_exists)
Creates an alias for user defined class */
ZEND_FUNCTION(class_alias)
{
- char *class_name, *lc_name, *alias_name;
+ char *class_name, *alias_name;
zend_class_entry **ce;
int class_name_len, alias_name_len;
int found;
zend_bool autoload = 1;
- ALLOCA_FLAG(use_heap)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|b", &class_name, &class_name_len, &alias_name, &alias_name_len, &autoload) == FAILURE) {
return;
@@ -1474,6 +1483,7 @@ ZEND_FUNCTION(crash)
ZEND_FUNCTION(get_included_files)
{
char *entry;
+ uint entry_len;
if (zend_parse_parameters_none() == FAILURE) {
return;
@@ -1481,8 +1491,8 @@ ZEND_FUNCTION(get_included_files)
array_init(return_value);
zend_hash_internal_pointer_reset(&EG(included_files));
- while (zend_hash_get_current_key(&EG(included_files), &entry, NULL, 1) == HASH_KEY_IS_STRING) {
- add_next_index_string(return_value, entry, 0);
+ while (zend_hash_get_current_key_ex(&EG(included_files), &entry, &entry_len, NULL, 0, NULL) == HASH_KEY_IS_STRING) {
+ add_next_index_stringl(return_value, entry, entry_len-1, !IS_INTERNED(entry));
zend_hash_move_forward(&EG(included_files));
}
}
diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h
index e1af53637..3db0d2002 100644
--- a/Zend/zend_builtin_functions.h
+++ b/Zend/zend_builtin_functions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_closures.c b/Zend/zend_closures.c
index 5faefbd22..d714b35b3 100644
--- a/Zend/zend_closures.c
+++ b/Zend/zend_closures.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -59,14 +59,8 @@ ZEND_METHOD(Closure, __invoke) /* {{{ */
} else if (call_user_function_ex(CG(function_table), NULL, this_ptr, &closure_result_ptr, ZEND_NUM_ARGS(), arguments, 1, NULL TSRMLS_CC) == FAILURE) {
RETVAL_FALSE;
} else if (closure_result_ptr) {
- if (Z_ISREF_P(closure_result_ptr) && return_value_ptr) {
- if (return_value) {
- zval_ptr_dtor(&return_value);
- }
- *return_value_ptr = closure_result_ptr;
- } else {
- RETVAL_ZVAL(closure_result_ptr, 1, 1);
- }
+ zval_ptr_dtor(&return_value);
+ *return_value_ptr = closure_result_ptr;
}
efree(arguments);
diff --git a/Zend/zend_closures.h b/Zend/zend_closures.h
index 9d50641d2..fa66e9747 100644
--- a/Zend/zend_closures.h
+++ b/Zend/zend_closures.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_compile.c b/Zend/zend_compile.c
index c5f376921..f789e3397 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -26,7 +26,7 @@
#include "zend_llist.h"
#include "zend_API.h"
#include "zend_exceptions.h"
-#include "tsrm_virtual_cwd.h"
+#include "zend_virtual_cwd.h"
#include "zend_multibyte.h"
#include "zend_language_scanner.h"
@@ -61,11 +61,8 @@
} while (0)
#define CALCULATE_LITERAL_HASH(num) do { \
- if (IS_INTERNED(Z_STRVAL(CONSTANT(num)))) { \
- Z_HASH_P(&CONSTANT(num)) = INTERNED_HASH(Z_STRVAL(CONSTANT(num))); \
- } else { \
- Z_HASH_P(&CONSTANT(num)) = zend_hash_func(Z_STRVAL(CONSTANT(num)), Z_STRLEN(CONSTANT(num))+1); \
- } \
+ zval *c = &CONSTANT(num); \
+ Z_HASH_P(c) = str_hash(Z_STRVAL_P(c), Z_STRLEN_P(c)); \
} while (0)
#define GET_CACHE_SLOT(literal) do { \
@@ -107,9 +104,7 @@ ZEND_API zend_executor_globals executor_globals;
static void zend_duplicate_property_info(zend_property_info *property_info) /* {{{ */
{
- if (!IS_INTERNED(property_info->name)) {
- property_info->name = estrndup(property_info->name, property_info->name_length);
- }
+ property_info->name = str_estrndup(property_info->name, property_info->name_length);
if (property_info->doc_comment) {
property_info->doc_comment = estrndup(property_info->doc_comment, property_info->doc_comment_len);
}
@@ -118,9 +113,7 @@ static void zend_duplicate_property_info(zend_property_info *property_info) /* {
static void zend_duplicate_property_info_internal(zend_property_info *property_info) /* {{{ */
{
- if (!IS_INTERNED(property_info->name)) {
- property_info->name = zend_strndup(property_info->name, property_info->name_length);
- }
+ property_info->name = str_strndup(property_info->name, property_info->name_length);
}
/* }}} */
@@ -153,12 +146,12 @@ static void build_runtime_defined_function_key(zval *result, const char *name, i
}
/* NULL, name length, filename length, last accepting char position length */
- result->value.str.len = 1+name_length+strlen(filename)+char_pos_len;
+ Z_STRLEN_P(result) = 1+name_length+strlen(filename)+char_pos_len;
/* must be binary safe */
- result->value.str.val = (char *) safe_emalloc(result->value.str.len, 1, 1);
- result->value.str.val[0] = '\0';
- sprintf(result->value.str.val+1, "%s%s%s", name, filename, char_pos_buf);
+ Z_STRVAL_P(result) = (char *) safe_emalloc(Z_STRLEN_P(result), 1, 1);
+ Z_STRVAL_P(result)[0] = '\0';
+ sprintf(Z_STRVAL_P(result)+1, "%s%s%s", name, filename, char_pos_buf);
result->type = IS_STRING;
Z_SET_REFCOUNT_P(result, 1);
@@ -204,6 +197,9 @@ void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */
CG(in_namespace) = 0;
CG(has_bracketed_namespaces) = 0;
CG(current_import) = NULL;
+ CG(current_import_function) = NULL;
+ CG(current_import_const) = NULL;
+ zend_hash_init(&CG(const_filenames), 0, NULL, NULL, 0);
init_compiler_declarables(TSRMLS_C);
zend_stack_init(&CG(context_stack));
@@ -242,6 +238,7 @@ void shutdown_compiler(TSRMLS_D) /* {{{ */
zend_stack_destroy(&CG(list_stack));
zend_hash_destroy(&CG(filenames_table));
zend_llist_destroy(&CG(open_files));
+ zend_hash_destroy(&CG(const_filenames));
zend_stack_destroy(&CG(context_stack));
}
/* }}} */
@@ -424,12 +421,16 @@ int zend_add_ns_func_name_literal(zend_op_array *op_array, const zval *zv TSRMLS
lc_literal = zend_add_literal(CG(active_op_array), &c TSRMLS_CC);
CALCULATE_LITERAL_HASH(lc_literal);
- ns_separator = (const char*)zend_memrchr(Z_STRVAL_P(zv), '\\', Z_STRLEN_P(zv)) + 1;
- lc_len = Z_STRLEN_P(zv) - (ns_separator - Z_STRVAL_P(zv));
- lc_name = zend_str_tolower_dup(ns_separator, lc_len);
- ZVAL_STRINGL(&c, lc_name, lc_len, 0);
- lc_literal = zend_add_literal(CG(active_op_array), &c TSRMLS_CC);
- CALCULATE_LITERAL_HASH(lc_literal);
+ ns_separator = (const char*)zend_memrchr(Z_STRVAL_P(zv), '\\', Z_STRLEN_P(zv));
+
+ if (ns_separator != NULL) {
+ ns_separator += 1;
+ lc_len = Z_STRLEN_P(zv) - (ns_separator - Z_STRVAL_P(zv));
+ lc_name = zend_str_tolower_dup(ns_separator, lc_len);
+ ZVAL_STRINGL(&c, lc_name, lc_len, 0);
+ lc_literal = zend_add_literal(CG(active_op_array), &c TSRMLS_CC);
+ CALCULATE_LITERAL_HASH(lc_literal);
+ }
return ret;
}
@@ -657,21 +658,21 @@ void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar
zend_llist *fetch_list_ptr;
if (varname->op_type == IS_CONST) {
- ulong hash = 0;
+ ulong hash;
if (Z_TYPE(varname->u.constant) != IS_STRING) {
convert_to_string(&varname->u.constant);
- } else if (IS_INTERNED(Z_STRVAL(varname->u.constant))) {
- hash = INTERNED_HASH(Z_STRVAL(varname->u.constant));
}
- if (!zend_is_auto_global_quick(varname->u.constant.value.str.val, varname->u.constant.value.str.len, hash TSRMLS_CC) &&
- !(varname->u.constant.value.str.len == (sizeof("this")-1) &&
- !memcmp(varname->u.constant.value.str.val, "this", sizeof("this"))) &&
+
+ hash = str_hash(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant));
+ if (!zend_is_auto_global_quick(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant), hash TSRMLS_CC) &&
+ !(Z_STRLEN(varname->u.constant) == (sizeof("this")-1) &&
+ !memcmp(Z_STRVAL(varname->u.constant), "this", sizeof("this") - 1)) &&
(CG(active_op_array)->last == 0 ||
CG(active_op_array)->opcodes[CG(active_op_array)->last-1].opcode != ZEND_BEGIN_SILENCE)) {
result->op_type = IS_CV;
- result->u.op.var = lookup_cv(CG(active_op_array), varname->u.constant.value.str.val, varname->u.constant.value.str.len, hash TSRMLS_CC);
- varname->u.constant.value.str.val = (char*)CG(active_op_array)->vars[result->u.op.var].name;
+ result->u.op.var = lookup_cv(CG(active_op_array), Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant), hash TSRMLS_CC);
+ Z_STRVAL(varname->u.constant) = (char*)CG(active_op_array)->vars[result->u.op.var].name;
result->EA = 0;
return;
}
@@ -694,7 +695,7 @@ void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar
if (varname->op_type == IS_CONST) {
CALCULATE_LITERAL_HASH(opline_ptr->op1.constant);
- if (zend_is_auto_global_quick(varname->u.constant.value.str.val, varname->u.constant.value.str.len, Z_HASH_P(&CONSTANT(opline_ptr->op1.constant)) TSRMLS_CC)) {
+ if (zend_is_auto_global_quick(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant), Z_HASH_P(&CONSTANT(opline_ptr->op1.constant)) TSRMLS_CC)) {
opline_ptr->extended_value = ZEND_FETCH_GLOBAL;
}
}
@@ -723,7 +724,7 @@ void zend_do_fetch_static_member(znode *result, znode *class_name TSRMLS_DC) /*
if (class_name->op_type == IS_CONST &&
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) {
- zend_resolve_class_name(class_name, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
class_node = *class_name;
} else {
zend_do_fetch_class(&class_node, class_name TSRMLS_CC);
@@ -882,9 +883,9 @@ void zend_do_abstract_method(const znode *function_name, znode *modifiers, const
method_type = "Abstract";
}
- if (modifiers->u.constant.value.lval & ZEND_ACC_ABSTRACT) {
- if(modifiers->u.constant.value.lval & ZEND_ACC_PRIVATE) {
- zend_error(E_COMPILE_ERROR, "%s function %s::%s() cannot be declared private", method_type, CG(active_class_entry)->name, function_name->u.constant.value.str.val);
+ if (Z_LVAL(modifiers->u.constant) & ZEND_ACC_ABSTRACT) {
+ if(Z_LVAL(modifiers->u.constant) & ZEND_ACC_PRIVATE) {
+ zend_error_noreturn(E_COMPILE_ERROR, "%s function %s::%s() cannot be declared private", method_type, CG(active_class_entry)->name, Z_STRVAL(function_name->u.constant));
}
if (Z_LVAL(body->u.constant) == ZEND_ACC_ABSTRACT) {
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -894,11 +895,11 @@ void zend_do_abstract_method(const znode *function_name, znode *modifiers, const
SET_UNUSED(opline->op2);
} else {
/* we had code in the function body */
- zend_error(E_COMPILE_ERROR, "%s function %s::%s() cannot contain body", method_type, CG(active_class_entry)->name, function_name->u.constant.value.str.val);
+ zend_error_noreturn(E_COMPILE_ERROR, "%s function %s::%s() cannot contain body", method_type, CG(active_class_entry)->name, Z_STRVAL(function_name->u.constant));
}
} else {
- if (body->u.constant.value.lval == ZEND_ACC_ABSTRACT) {
- zend_error(E_COMPILE_ERROR, "Non-abstract method %s::%s() must contain body", CG(active_class_entry)->name, function_name->u.constant.value.str.val);
+ if (Z_LVAL(body->u.constant) == ZEND_ACC_ABSTRACT) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Non-abstract method %s::%s() must contain body", CG(active_class_entry)->name, Z_STRVAL(function_name->u.constant));
}
}
}
@@ -911,7 +912,7 @@ static zend_bool opline_is_fetch_this(const zend_op *opline TSRMLS_DC) /* {{{ */
&& ((opline->extended_value & ZEND_FETCH_STATIC_MEMBER) != ZEND_FETCH_STATIC_MEMBER)
&& (Z_HASH_P(&CONSTANT(opline->op1.constant)) == THIS_HASHVAL)
&& (Z_STRLEN(CONSTANT(opline->op1.constant)) == (sizeof("this")-1))
- && !memcmp(Z_STRVAL(CONSTANT(opline->op1.constant)), "this", sizeof("this"))) {
+ && !memcmp(Z_STRVAL(CONSTANT(opline->op1.constant)), "this", sizeof("this") - 1)) {
return 1;
} else {
return 0;
@@ -958,7 +959,7 @@ void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC) /* {
if (variable->op_type == IS_CV) {
if (variable->u.op.var == CG(active_op_array)->this_var) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign $this");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
}
} else if (variable->op_type == IS_VAR) {
int n = 0;
@@ -1004,7 +1005,7 @@ void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC) /* {
GET_NODE(result, last_op->result);
return;
} else if (opline_is_fetch_this(last_op TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign $this");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
} else {
break;
}
@@ -1028,7 +1029,7 @@ void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRM
if (lvar->op_type == IS_CV) {
if (lvar->u.op.var == CG(active_op_array)->this_var) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign $this");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
}
} else if (lvar->op_type == IS_VAR) {
int last_op_number = get_next_op_number(CG(active_op_array));
@@ -1036,7 +1037,7 @@ void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRM
if (last_op_number > 0) {
opline = &CG(active_op_array)->opcodes[last_op_number-1];
if (opline_is_fetch_this(opline TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign $this");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
}
}
}
@@ -1278,10 +1279,10 @@ void zend_check_writable_variable(const znode *variable) /* {{{ */
zend_uint type = variable->EA;
if (type & ZEND_PARSED_METHOD_CALL) {
- zend_error(E_COMPILE_ERROR, "Can't use method return value in write context");
+ zend_error_noreturn(E_COMPILE_ERROR, "Can't use method return value in write context");
}
if (type == ZEND_PARSED_FUNCTION_CALL) {
- zend_error(E_COMPILE_ERROR, "Can't use function return value in write context");
+ zend_error_noreturn(E_COMPILE_ERROR, "Can't use function return value in write context");
}
}
/* }}} */
@@ -1354,7 +1355,7 @@ void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS
switch (type) {
case BP_VAR_R:
if (opline->opcode == ZEND_FETCH_DIM_W && opline->op2_type == IS_UNUSED) {
- zend_error(E_COMPILE_ERROR, "Cannot use [] for reading");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use [] for reading");
}
opline->opcode -= 3;
break;
@@ -1365,7 +1366,7 @@ void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS
break;
case BP_VAR_IS:
if (opline->opcode == ZEND_FETCH_DIM_W && opline->op2_type == IS_UNUSED) {
- zend_error(E_COMPILE_ERROR, "Cannot use [] for reading");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use [] for reading");
}
opline->opcode += 6; /* 3+3 */
break;
@@ -1375,7 +1376,7 @@ void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS
break;
case BP_VAR_UNSET:
if (opline->opcode == ZEND_FETCH_DIM_W && opline->op2_type == IS_UNUSED) {
- zend_error(E_COMPILE_ERROR, "Cannot use [] for unsetting");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use [] for unsetting");
}
opline->opcode += 12; /* 3+3+3+3 */
break;
@@ -1503,22 +1504,22 @@ int zend_do_verify_access_types(const znode *current_access_type, const znode *n
{
if ((Z_LVAL(current_access_type->u.constant) & ZEND_ACC_PPP_MASK)
&& (Z_LVAL(new_modifier->u.constant) & ZEND_ACC_PPP_MASK)) {
- zend_error(E_COMPILE_ERROR, "Multiple access type modifiers are not allowed");
+ zend_error_noreturn(E_COMPILE_ERROR, "Multiple access type modifiers are not allowed");
}
if ((Z_LVAL(current_access_type->u.constant) & ZEND_ACC_ABSTRACT)
&& (Z_LVAL(new_modifier->u.constant) & ZEND_ACC_ABSTRACT)) {
- zend_error(E_COMPILE_ERROR, "Multiple abstract modifiers are not allowed");
+ zend_error_noreturn(E_COMPILE_ERROR, "Multiple abstract modifiers are not allowed");
}
if ((Z_LVAL(current_access_type->u.constant) & ZEND_ACC_STATIC)
&& (Z_LVAL(new_modifier->u.constant) & ZEND_ACC_STATIC)) {
- zend_error(E_COMPILE_ERROR, "Multiple static modifiers are not allowed");
+ zend_error_noreturn(E_COMPILE_ERROR, "Multiple static modifiers are not allowed");
}
if ((Z_LVAL(current_access_type->u.constant) & ZEND_ACC_FINAL)
&& (Z_LVAL(new_modifier->u.constant) & ZEND_ACC_FINAL)) {
- zend_error(E_COMPILE_ERROR, "Multiple final modifiers are not allowed");
+ zend_error_noreturn(E_COMPILE_ERROR, "Multiple final modifiers are not allowed");
}
if (((Z_LVAL(current_access_type->u.constant) | Z_LVAL(new_modifier->u.constant)) & (ZEND_ACC_ABSTRACT | ZEND_ACC_FINAL)) == (ZEND_ACC_ABSTRACT | ZEND_ACC_FINAL)) {
- zend_error(E_COMPILE_ERROR, "Cannot use the final modifier on an abstract class member");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use the final modifier on an abstract class member");
}
return (Z_LVAL(current_access_type->u.constant) | Z_LVAL(new_modifier->u.constant));
}
@@ -1527,8 +1528,8 @@ int zend_do_verify_access_types(const znode *current_access_type, const znode *n
void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC) /* {{{ */
{
zend_op_array op_array;
- char *name = function_name->u.constant.value.str.val;
- int name_len = function_name->u.constant.value.str.len;
+ char *name = Z_STRVAL(function_name->u.constant);
+ int name_len = Z_STRLEN(function_name->u.constant);
int function_begin_line = function_token->u.op.opline_num;
zend_uint fn_flags;
const char *lcname;
@@ -1538,7 +1539,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
if (is_method) {
if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
if ((Z_LVAL(fn_flags_znode->u.constant) & ~(ZEND_ACC_STATIC|ZEND_ACC_PUBLIC))) {
- zend_error(E_COMPILE_ERROR, "Access type for interface method %s::%s() must be omitted", CG(active_class_entry)->name, function_name->u.constant.value.str.val);
+ zend_error_noreturn(E_COMPILE_ERROR, "Access type for interface method %s::%s() must be omitted", CG(active_class_entry)->name, Z_STRVAL(function_name->u.constant));
}
Z_LVAL(fn_flags_znode->u.constant) |= ZEND_ACC_ABSTRACT; /* propagates to the rest of the parser */
}
@@ -1569,17 +1570,12 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
op_array.line_start = zend_get_compiled_lineno(TSRMLS_C);
if (is_method) {
- int result;
+ zend_ulong hash;
lcname = zend_new_interned_string(zend_str_tolower_dup(name, name_len), name_len + 1, 1 TSRMLS_CC);
-
- if (IS_INTERNED(lcname)) {
- result = zend_hash_quick_add(&CG(active_class_entry)->function_table, lcname, name_len+1, INTERNED_HASH(lcname), &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array));
- } else {
- result = zend_hash_add(&CG(active_class_entry)->function_table, lcname, name_len+1, &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array));
- }
- if (result == FAILURE) {
- zend_error(E_COMPILE_ERROR, "Cannot redeclare %s::%s()", CG(active_class_entry)->name, name);
+ hash = str_hash(lcname, name_len);
+ if (zend_hash_quick_add(&CG(active_class_entry)->function_table, lcname, name_len+1, hash, &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array)) == FAILURE) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s::%s()", CG(active_class_entry)->name, name);
}
zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));
@@ -1696,6 +1692,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
} else {
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
zval key;
+ zval **ns_name;
if (CG(current_namespace)) {
/* Prefix function name with current namespace name */
@@ -1711,18 +1708,32 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
lcname = zend_str_tolower_dup(name, name_len);
}
+ /* Function name must not conflict with import names */
+ if (CG(current_import_function) &&
+ zend_hash_find(CG(current_import_function), lcname, Z_STRLEN(function_name->u.constant)+1, (void**)&ns_name) == SUCCESS) {
+
+ char *tmp = zend_str_tolower_dup(Z_STRVAL_PP(ns_name), Z_STRLEN_PP(ns_name));
+
+ if (Z_STRLEN_PP(ns_name) != Z_STRLEN(function_name->u.constant) ||
+ memcmp(tmp, lcname, Z_STRLEN(function_name->u.constant))) {
+ zend_error(E_COMPILE_ERROR, "Cannot declare function %s because the name is already in use", Z_STRVAL(function_name->u.constant));
+ }
+ efree(tmp);
+ }
+
opline->opcode = ZEND_DECLARE_FUNCTION;
opline->op1_type = IS_CONST;
build_runtime_defined_function_key(&key, lcname, name_len TSRMLS_CC);
opline->op1.constant = zend_add_literal(CG(active_op_array), &key TSRMLS_CC);
Z_HASH_P(&CONSTANT(opline->op1.constant)) = zend_hash_func(Z_STRVAL(CONSTANT(opline->op1.constant)), Z_STRLEN(CONSTANT(opline->op1.constant)));
opline->op2_type = IS_CONST;
- LITERAL_STRINGL(opline->op2, lcname, name_len, 0);
+ LITERAL_STRINGL(opline->op2, lcname, name_len, 1);
CALCULATE_LITERAL_HASH(opline->op2.constant);
opline->extended_value = ZEND_DECLARE_FUNCTION;
zend_hash_quick_update(CG(function_table), Z_STRVAL(key), Z_STRLEN(key), Z_HASH_P(&CONSTANT(opline->op1.constant)), &op_array, sizeof(zend_op_array), (void **) &CG(active_op_array));
zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));
zend_init_compiler_context(TSRMLS_C);
+ str_efree(lcname);
}
if (CG(compiler_options) & ZEND_COMPILE_EXTENDED_INFO) {
@@ -1820,7 +1831,7 @@ void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) /*
zend_str_tolower_copy(lcname, CG(active_op_array)->function_name, MIN(name_len, sizeof(lcname)-1));
lcname[sizeof(lcname)-1] = '\0'; /* zend_str_tolower_copy won't necessarily set the zero byte */
if (name_len == sizeof(ZEND_AUTOLOAD_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_AUTOLOAD_FUNC_NAME, sizeof(ZEND_AUTOLOAD_FUNC_NAME)) && CG(active_op_array)->num_args != 1) {
- zend_error(E_COMPILE_ERROR, "%s() must take exactly 1 argument", ZEND_AUTOLOAD_FUNC_NAME);
+ zend_error_noreturn(E_COMPILE_ERROR, "%s() must take exactly 1 argument", ZEND_AUTOLOAD_FUNC_NAME);
}
}
@@ -1834,26 +1845,17 @@ void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) /*
}
/* }}} */
-void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, const znode *initialization, znode *class_type, zend_uchar pass_by_reference TSRMLS_DC) /* {{{ */
+void zend_do_receive_param(zend_uchar op, znode *varname, const znode *initialization, znode *class_type, zend_uchar pass_by_reference, zend_bool is_variadic TSRMLS_DC) /* {{{ */
{
zend_op *opline;
zend_arg_info *cur_arg_info;
znode var;
- if (class_type->op_type == IS_CONST &&
- Z_TYPE(class_type->u.constant) == IS_STRING &&
- Z_STRLEN(class_type->u.constant) == 0) {
- /* Usage of namespace as class name not in namespace */
- zval_dtor(&class_type->u.constant);
- zend_error(E_COMPILE_ERROR, "Cannot use 'namespace' as a class name");
- return;
- }
-
- if (zend_is_auto_global_quick(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant), 0 TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign auto-global variable %s", Z_STRVAL(varname->u.constant));
+ if (zend_is_auto_global(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant) TSRMLS_CC)) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign auto-global variable %s", Z_STRVAL(varname->u.constant));
} else {
var.op_type = IS_CV;
- var.u.op.var = lookup_cv(CG(active_op_array), varname->u.constant.value.str.val, varname->u.constant.value.str.len, 0 TSRMLS_CC);
+ var.u.op.var = lookup_cv(CG(active_op_array), Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant), 0 TSRMLS_CC);
Z_STRVAL(varname->u.constant) = (char*)CG(active_op_array)->vars[var.u.op.var].name;
var.EA = 0;
if (CG(active_op_array)->vars[var.u.op.var].hash_value == THIS_HASHVAL &&
@@ -1861,30 +1863,47 @@ void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, con
!memcmp(Z_STRVAL(varname->u.constant), "this", sizeof("this")-1)) {
if (CG(active_op_array)->scope &&
(CG(active_op_array)->fn_flags & ZEND_ACC_STATIC) == 0) {
- zend_error(E_COMPILE_ERROR, "Cannot re-assign $this");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
}
CG(active_op_array)->this_var = var.u.op.var;
}
}
+ if (CG(active_op_array)->fn_flags & ZEND_ACC_VARIADIC) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Only the last parameter can be variadic");
+ }
+
+ if (is_variadic) {
+ if (op == ZEND_RECV_INIT) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Variadic parameter cannot have a default value");
+ }
+
+ op = ZEND_RECV_VARIADIC;
+ CG(active_op_array)->fn_flags |= ZEND_ACC_VARIADIC;
+ }
+
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
CG(active_op_array)->num_args++;
opline->opcode = op;
SET_NODE(opline->result, &var);
- SET_NODE(opline->op1, offset);
+ opline->op1_type = IS_UNUSED;
+ opline->op1.num = CG(active_op_array)->num_args;
if (op == ZEND_RECV_INIT) {
SET_NODE(opline->op2, initialization);
} else {
- CG(active_op_array)->required_num_args = CG(active_op_array)->num_args;
SET_UNUSED(opline->op2);
+ if (!is_variadic) {
+ CG(active_op_array)->required_num_args = CG(active_op_array)->num_args;
+ }
}
CG(active_op_array)->arg_info = erealloc(CG(active_op_array)->arg_info, sizeof(zend_arg_info)*(CG(active_op_array)->num_args));
cur_arg_info = &CG(active_op_array)->arg_info[CG(active_op_array)->num_args-1];
- cur_arg_info->name = zend_new_interned_string(estrndup(varname->u.constant.value.str.val, varname->u.constant.value.str.len), varname->u.constant.value.str.len + 1, 1 TSRMLS_CC);
- cur_arg_info->name_len = varname->u.constant.value.str.len;
+ cur_arg_info->name = zend_new_interned_string(estrndup(Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant)), Z_STRLEN(varname->u.constant) + 1, 1 TSRMLS_CC);
+ cur_arg_info->name_len = Z_STRLEN(varname->u.constant);
cur_arg_info->type_hint = 0;
- cur_arg_info->allow_null = 1;
cur_arg_info->pass_by_reference = pass_by_reference;
+ cur_arg_info->allow_null = 1;
+ cur_arg_info->is_variadic = is_variadic;
cur_arg_info->class_name = NULL;
cur_arg_info->class_name_len = 0;
@@ -1895,34 +1914,34 @@ void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, con
if (class_type->u.constant.type == IS_ARRAY) {
cur_arg_info->type_hint = IS_ARRAY;
if (op == ZEND_RECV_INIT) {
- if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
+ if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
cur_arg_info->allow_null = 1;
} else if (Z_TYPE(initialization->u.constant) != IS_ARRAY && Z_TYPE(initialization->u.constant) != IS_CONSTANT_ARRAY) {
- zend_error(E_COMPILE_ERROR, "Default value for parameters with array type hint can only be an array or NULL");
+ zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with array type hint can only be an array or NULL");
}
}
} else if (class_type->u.constant.type == IS_CALLABLE) {
cur_arg_info->type_hint = IS_CALLABLE;
if (op == ZEND_RECV_INIT) {
- if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
+ if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
cur_arg_info->allow_null = 1;
} else {
- zend_error(E_COMPILE_ERROR, "Default value for parameters with callable type hint can only be NULL");
+ zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with callable type hint can only be NULL");
}
}
} else {
cur_arg_info->type_hint = IS_OBJECT;
if (ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(class_type->u.constant), Z_STRLEN(class_type->u.constant))) {
- zend_resolve_class_name(class_type, opline->extended_value, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_type TSRMLS_CC);
}
- Z_STRVAL(class_type->u.constant) = (char*)zend_new_interned_string(class_type->u.constant.value.str.val, class_type->u.constant.value.str.len + 1, 1 TSRMLS_CC);
- cur_arg_info->class_name = class_type->u.constant.value.str.val;
- cur_arg_info->class_name_len = class_type->u.constant.value.str.len;
+ Z_STRVAL(class_type->u.constant) = (char*)zend_new_interned_string(Z_STRVAL(class_type->u.constant), Z_STRLEN(class_type->u.constant) + 1, 1 TSRMLS_CC);
+ cur_arg_info->class_name = Z_STRVAL(class_type->u.constant);
+ cur_arg_info->class_name_len = Z_STRLEN(class_type->u.constant);
if (op == ZEND_RECV_INIT) {
- if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL"))) {
+ if (Z_TYPE(initialization->u.constant) == IS_NULL || (Z_TYPE(initialization->u.constant) == IS_CONSTANT && !strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")) || Z_TYPE(initialization->u.constant) == IS_CONSTANT_AST) {
cur_arg_info->allow_null = 1;
} else {
- zend_error(E_COMPILE_ERROR, "Default value for parameters with a class type hint can only be NULL");
+ zend_error_noreturn(E_COMPILE_ERROR, "Default value for parameters with a class type hint can only be NULL");
}
}
}
@@ -1937,7 +1956,7 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace
char *lcname;
char *is_compound = memchr(Z_STRVAL(function_name->u.constant), '\\', Z_STRLEN(function_name->u.constant));
- zend_resolve_non_class_name(function_name, check_namespace TSRMLS_CC);
+ zend_resolve_function_name(function_name, &check_namespace TSRMLS_CC);
if (check_namespace && CG(current_namespace) && !is_compound) {
/* We assume we call function from the current namespace
@@ -1949,16 +1968,16 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace
return 1;
}
- lcname = zend_str_tolower_dup(function_name->u.constant.value.str.val, function_name->u.constant.value.str.len);
- if ((zend_hash_find(CG(function_table), lcname, function_name->u.constant.value.str.len+1, (void **) &function)==FAILURE) ||
+ lcname = zend_str_tolower_dup(Z_STRVAL(function_name->u.constant), Z_STRLEN(function_name->u.constant));
+ if ((zend_hash_find(CG(function_table), lcname, Z_STRLEN(function_name->u.constant)+1, (void **) &function)==FAILURE) ||
((CG(compiler_options) & ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS) &&
(function->type == ZEND_INTERNAL_FUNCTION))) {
zend_do_begin_dynamic_function_call(function_name, 0 TSRMLS_CC);
efree(lcname);
return 1; /* Dynamic */
}
- efree(function_name->u.constant.value.str.val);
- function_name->u.constant.value.str.val = lcname;
+ efree(Z_STRVAL(function_name->u.constant));
+ Z_STRVAL(function_name->u.constant) = lcname;
zend_stack_push(&CG(function_call_stack), (void *) &function, sizeof(zend_function *));
if (CG(context).nested_calls + 1 > CG(active_op_array)->nested_calls) {
@@ -1983,7 +2002,7 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */
if ((last_op->op2_type == IS_CONST) && (Z_TYPE(CONSTANT(last_op->op2.constant)) == IS_STRING) && (Z_STRLEN(CONSTANT(last_op->op2.constant)) == sizeof(ZEND_CLONE_FUNC_NAME)-1)
&& !zend_binary_strcasecmp(Z_STRVAL(CONSTANT(last_op->op2.constant)), Z_STRLEN(CONSTANT(last_op->op2.constant)), ZEND_CLONE_FUNC_NAME, sizeof(ZEND_CLONE_FUNC_NAME)-1)) {
- zend_error(E_COMPILE_ERROR, "Cannot call __clone() method on objects - use 'clone $obj' instead");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot call __clone() method on objects - use 'clone $obj' instead");
}
if (last_op->opcode == ZEND_FETCH_OBJ_R) {
@@ -1991,11 +2010,9 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */
zval name;
name = CONSTANT(last_op->op2.constant);
if (Z_TYPE(name) != IS_STRING) {
- zend_error(E_COMPILE_ERROR, "Method name must be a string");
- }
- if (!IS_INTERNED(Z_STRVAL(name))) {
- Z_STRVAL(name) = estrndup(Z_STRVAL(name), Z_STRLEN(name));
+ zend_error_noreturn(E_COMPILE_ERROR, "Method name must be a string");
}
+ Z_STRVAL(name) = str_estrndup(Z_STRVAL(name), Z_STRLEN(name));
FREE_POLYMORPHIC_CACHE_SLOT(last_op->op2.constant);
last_op->op2.constant =
zend_add_func_name_literal(CG(active_op_array), &name TSRMLS_CC);
@@ -2076,12 +2093,12 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRML
}
/* }}} */
-void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC) /* {{{ */
+void zend_resolve_non_class_name(znode *element_name, zend_bool *check_namespace, zend_bool case_sensitive, HashTable *current_import_sub TSRMLS_DC) /* {{{ */
{
znode tmp;
int len;
zval **ns;
- char *lcname, *compound = memchr(Z_STRVAL(element_name->u.constant), '\\', Z_STRLEN(element_name->u.constant));
+ char *lookup_name, *compound = memchr(Z_STRVAL(element_name->u.constant), '\\', Z_STRLEN(element_name->u.constant));
if (Z_STRVAL(element_name->u.constant)[0] == '\\') {
/* name starts with \ so it is known and unambiguos, nothing to do here but shorten it */
@@ -2090,15 +2107,35 @@ void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace
return;
}
- if(!check_namespace) {
+ if(!*check_namespace) {
return;
}
+ if (current_import_sub) {
+ len = Z_STRLEN(element_name->u.constant)+1;
+ if (case_sensitive) {
+ lookup_name = estrndup(Z_STRVAL(element_name->u.constant), len);
+ } else {
+ lookup_name = zend_str_tolower_dup(Z_STRVAL(element_name->u.constant), len);
+ }
+ /* Check if function/const matches imported name */
+ if (zend_hash_find(current_import_sub, lookup_name, len, (void**)&ns) == SUCCESS) {
+ zval_dtor(&element_name->u.constant);
+ element_name->u.constant = **ns;
+ zval_copy_ctor(&element_name->u.constant);
+ efree(lookup_name);
+ *check_namespace = 0;
+ return;
+ }
+ efree(lookup_name);
+ }
+
if (compound && CG(current_import)) {
len = compound - Z_STRVAL(element_name->u.constant);
- lcname = zend_str_tolower_dup(Z_STRVAL(element_name->u.constant), len);
+ /* namespace is always lowercase */
+ lookup_name = zend_str_tolower_dup(Z_STRVAL(element_name->u.constant), len);
/* Check if first part of compound name is an import name */
- if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) {
+ if (zend_hash_find(CG(current_import), lookup_name, len+1, (void**)&ns) == SUCCESS) {
/* Substitute import name */
tmp.op_type = IS_CONST;
tmp.u.constant = **ns;
@@ -2108,10 +2145,11 @@ void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace
memmove(Z_STRVAL(element_name->u.constant), Z_STRVAL(element_name->u.constant)+len, Z_STRLEN(element_name->u.constant)+1);
zend_do_build_namespace_name(&tmp, &tmp, element_name TSRMLS_CC);
*element_name = tmp;
- efree(lcname);
+ efree(lookup_name);
+ *check_namespace = 0;
return;
}
- efree(lcname);
+ efree(lookup_name);
}
if (CG(current_namespace)) {
@@ -2121,24 +2159,36 @@ void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace
memcpy(Z_STRVAL(tmp.u.constant), Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace)));
memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace))]), "\\", sizeof("\\")-1);
memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace)) + sizeof("\\")-1]), Z_STRVAL(element_name->u.constant), Z_STRLEN(element_name->u.constant)+1);
- STR_FREE(Z_STRVAL(element_name->u.constant));
+ str_efree(Z_STRVAL(element_name->u.constant));
*element_name = tmp;
}
}
/* }}} */
+void zend_resolve_function_name(znode *element_name, zend_bool *check_namespace TSRMLS_DC) /* {{{ */
+{
+ zend_resolve_non_class_name(element_name, check_namespace, 0, CG(current_import_function) TSRMLS_CC);
+}
+/* }}} */
+
+void zend_resolve_const_name(znode *element_name, zend_bool *check_namespace TSRMLS_DC) /* {{{ */
+{
+ zend_resolve_non_class_name(element_name, check_namespace, 1, CG(current_import_const) TSRMLS_CC);
+}
+/* }}} */
+
void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static TSRMLS_DC) /* {{{ */
{
char *lcname;
int lctype;
znode constant_name;
- lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), class_name->u.constant.value.str.len);
+ lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant));
lctype = zend_get_class_fetch_type(lcname, strlen(lcname));
switch (lctype) {
case ZEND_FETCH_CLASS_SELF:
if (!CG(active_class_entry)) {
- zend_error(E_COMPILE_ERROR, "Cannot access self::class when no class scope is active");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot access self::class when no class scope is active");
}
zval_dtor(&class_name->u.constant);
class_name->op_type = IS_CONST;
@@ -2148,13 +2198,13 @@ void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static
case ZEND_FETCH_CLASS_STATIC:
case ZEND_FETCH_CLASS_PARENT:
if (is_static) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"%s::class cannot be used for compile-time class name resolution",
lctype == ZEND_FETCH_CLASS_STATIC ? "static" : "parent"
);
}
if (!CG(active_class_entry)) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"Cannot access %s::class when no class scope is active",
lctype == ZEND_FETCH_CLASS_STATIC ? "static" : "parent"
);
@@ -2164,7 +2214,7 @@ void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static
zend_do_fetch_constant(result, class_name, &constant_name, ZEND_RT, 1 TSRMLS_CC);
break;
case ZEND_FETCH_CLASS_DEFAULT:
- zend_resolve_class_name(class_name, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
*result = *class_name;
break;
}
@@ -2174,7 +2224,7 @@ void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static
}
/* }}} */
-void zend_resolve_class_name(znode *class_name, ulong fetch_type, int check_ns_name TSRMLS_DC) /* {{{ */
+void zend_resolve_class_name(znode *class_name TSRMLS_DC) /* {{{ */
{
char *compound;
char *lcname;
@@ -2194,7 +2244,7 @@ void zend_resolve_class_name(znode *class_name, ulong fetch_type, int check_ns_n
Z_STRLEN(class_name->u.constant) + 1);
if (ZEND_FETCH_CLASS_DEFAULT != zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) {
- zend_error(E_COMPILE_ERROR, "'\\%s' is an invalid class name", Z_STRVAL(class_name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "'\\%s' is an invalid class name", Z_STRVAL(class_name->u.constant));
}
} else {
if (CG(current_import)) {
@@ -2253,26 +2303,17 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) /* {{{ */
long fetch_class_op_number;
zend_op *opline;
- if (class_name->op_type == IS_CONST &&
- Z_TYPE(class_name->u.constant) == IS_STRING &&
- Z_STRLEN(class_name->u.constant) == 0) {
- /* Usage of namespace as class name not in namespace */
- zval_dtor(&class_name->u.constant);
- zend_error(E_COMPILE_ERROR, "Cannot use 'namespace' as a class name");
- return;
- }
-
fetch_class_op_number = get_next_op_number(CG(active_op_array));
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_FETCH_CLASS;
SET_UNUSED(opline->op1);
- opline->extended_value = ZEND_FETCH_CLASS_GLOBAL;
+ opline->extended_value = ZEND_FETCH_CLASS_DEFAULT;
CG(catch_begin) = fetch_class_op_number;
if (class_name->op_type == IS_CONST) {
int fetch_type;
- fetch_type = zend_get_class_fetch_type(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
+ fetch_type = zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant));
switch (fetch_type) {
case ZEND_FETCH_CLASS_SELF:
case ZEND_FETCH_CLASS_PARENT:
@@ -2282,7 +2323,7 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) /* {{{ */
zval_dtor(&class_name->u.constant);
break;
default:
- zend_resolve_class_name(class_name, opline->extended_value, 0 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
opline->op2_type = IS_CONST;
opline->op2.constant =
zend_add_class_name_literal(CG(active_op_array), &class_name->u.constant TSRMLS_CC);
@@ -2311,7 +2352,7 @@ void zend_do_label(znode *label TSRMLS_DC) /* {{{ */
dest.opline_num = get_next_op_number(CG(active_op_array));
if (zend_hash_add(CG(context).labels, Z_STRVAL(label->u.constant), Z_STRLEN(label->u.constant) + 1, (void**)&dest, sizeof(zend_label), NULL) == FAILURE) {
- zend_error(E_COMPILE_ERROR, "Label '%s' already defined", Z_STRVAL(label->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Label '%s' already defined", Z_STRVAL(label->u.constant));
}
/* Done with label now */
@@ -2337,7 +2378,7 @@ void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2
CG(in_compilation) = 1;
CG(active_op_array) = op_array;
CG(zend_lineno) = opline->lineno;
- zend_error(E_COMPILE_ERROR, "'goto' to undefined label '%s'", Z_STRVAL_P(label));
+ zend_error_noreturn(E_COMPILE_ERROR, "'goto' to undefined label '%s'", Z_STRVAL_P(label));
} else {
/* Label is not defined. Delay to pass 2. */
INC_BPC(op_array);
@@ -2358,7 +2399,7 @@ void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2
CG(active_op_array) = op_array;
CG(zend_lineno) = opline->lineno;
}
- zend_error(E_COMPILE_ERROR, "'goto' into loop or switch statement is disallowed");
+ zend_error_noreturn(E_COMPILE_ERROR, "'goto' into loop or switch statement is disallowed");
}
current = op_array->brk_cont_array[current].parent;
}
@@ -2419,19 +2460,19 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_c
}
if (is_class_member) {
- length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len;
- result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1);
- memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1);
- memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1);
- STR_FREE(name->u.constant.value.str.val);
- result->u.constant.value.str.len = length;
+ length = sizeof("::")-1 + Z_STRLEN(result->u.constant) + Z_STRLEN(name->u.constant);
+ Z_STRVAL(result->u.constant) = str_erealloc(Z_STRVAL(result->u.constant), length+1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)], "::", sizeof("::")-1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant) + sizeof("::")-1], Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1);
+ str_efree(Z_STRVAL(name->u.constant));
+ Z_STRLEN(result->u.constant) = length;
} else {
- length = sizeof("\\")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len;
- result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1);
- memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "\\", sizeof("\\")-1);
- memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("\\")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1);
- STR_FREE(name->u.constant.value.str.val);
- result->u.constant.value.str.len = length;
+ length = sizeof("\\")-1 + Z_STRLEN(result->u.constant) + Z_STRLEN(name->u.constant);
+ Z_STRVAL(result->u.constant) = str_erealloc(Z_STRVAL(result->u.constant), length+1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)], "\\", sizeof("\\")-1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant) + sizeof("\\")-1], Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1);
+ str_efree(Z_STRVAL(name->u.constant));
+ Z_STRLEN(result->u.constant) = length;
}
}
/* }}} */
@@ -2445,7 +2486,7 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
if (method_name->op_type == IS_CONST) {
char *lcname;
if (Z_TYPE(method_name->u.constant) != IS_STRING) {
- zend_error(E_COMPILE_ERROR, "Method name must be a string");
+ zend_error_noreturn(E_COMPILE_ERROR, "Method name must be a string");
}
lcname = zend_str_tolower_dup(Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant));
if ((sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == Z_STRLEN(method_name->u.constant) &&
@@ -2458,7 +2499,7 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
if (class_name->op_type == IS_CONST &&
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) {
- zend_resolve_class_name(class_name, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
class_node = *class_name;
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
} else {
@@ -2508,8 +2549,11 @@ void zend_do_end_function_call(znode *function_name, znode *result, const znode
}
opline = &CG(active_op_array)->opcodes[Z_LVAL(function_name->u.constant)];
} else {
+ zend_function **function_ptr_ptr;
+ zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
+
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- if (!is_method && !is_dynamic_fcall && function_name->op_type==IS_CONST) {
+ if (*function_ptr_ptr) {
opline->opcode = ZEND_DO_FCALL;
SET_NODE(opline->op1, function_name);
SET_UNUSED(opline->op2);
@@ -2521,6 +2565,13 @@ void zend_do_end_function_call(znode *function_name, znode *result, const znode
SET_UNUSED(opline->op1);
SET_UNUSED(opline->op2);
opline->op2.num = --CG(context).nested_calls;
+
+ /* This would normally be a ZEND_DO_FCALL, but was forced to use
+ * ZEND_DO_FCALL_BY_NAME due to a ... argument. In this case we need to
+ * free the function_name */
+ if (!is_method && !is_dynamic_fcall && function_name->op_type==IS_CONST) {
+ zval_dtor(&function_name->u.constant);
+ }
}
}
@@ -2541,9 +2592,9 @@ void zend_do_end_function_call(znode *function_name, znode *result, const znode
void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{{ */
{
zend_op *opline;
- int original_op=op;
+ int original_op = op;
zend_function **function_ptr_ptr, *function_ptr;
- int send_by_reference;
+ int send_by_reference = 0;
int send_function = 0;
zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
@@ -2554,34 +2605,31 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
function_ptr->common.function_name &&
function_ptr->common.type == ZEND_USER_FUNCTION &&
!ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"Call-time pass-by-reference has been removed; "
"If you would like to pass argument by reference, modify the declaration of %s().",
function_ptr->common.function_name);
} else {
- zend_error(E_COMPILE_ERROR, "Call-time pass-by-reference has been removed");
+ zend_error_noreturn(E_COMPILE_ERROR, "Call-time pass-by-reference has been removed");
}
return;
}
if (function_ptr) {
if (ARG_MAY_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
- if (param->op_type & (IS_VAR|IS_CV) && original_op != ZEND_SEND_VAL) {
- send_by_reference = 1;
- if (op == ZEND_SEND_VAR && zend_is_function_or_method_call(param)) {
+ if (op == ZEND_SEND_VAR && param->op_type & (IS_VAR|IS_CV)) {
+ send_by_reference = ZEND_ARG_SEND_BY_REF;
+ if (zend_is_function_or_method_call(param)) {
/* Method call */
op = ZEND_SEND_VAR_NO_REF;
send_function = ZEND_ARG_SEND_FUNCTION | ZEND_ARG_SEND_SILENT;
}
} else {
op = ZEND_SEND_VAL;
- send_by_reference = 0;
}
- } else {
- send_by_reference = ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset) ? ZEND_ARG_SEND_BY_REF : 0;
+ } else if (ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
+ send_by_reference = ZEND_ARG_SEND_BY_REF;
}
- } else {
- send_by_reference = 0;
}
if (op == ZEND_SEND_VAR && zend_is_function_or_method_call(param)) {
@@ -2600,7 +2648,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
op = ZEND_SEND_REF;
break;
default:
- zend_error(E_COMPILE_ERROR, "Only variables can be passed by reference");
+ zend_error_noreturn(E_COMPILE_ERROR, "Only variables can be passed by reference");
break;
}
}
@@ -2649,6 +2697,39 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
}
/* }}} */
+void zend_do_unpack_params(znode *params, int offset TSRMLS_DC) /* {{{ */
+{
+ zend_op *opline;
+ zend_function **function_ptr_ptr;
+
+ zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
+ if (*function_ptr_ptr) {
+ /* If argument unpacking is used argument numbers and sending modes can no longer be
+ * computed at compile time, thus we need access to EX(call). In order to have it we
+ * retroactively emit a ZEND_INIT_FCALL_BY_NAME opcode. */
+ zval func_name;
+ ZVAL_STRING(&func_name, (*function_ptr_ptr)->common.function_name, 1);
+
+ opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ opline->opcode = ZEND_INIT_FCALL_BY_NAME;
+ opline->result.num = CG(context).nested_calls;
+ SET_UNUSED(opline->op1);
+ opline->op2_type = IS_CONST;
+ opline->op2.constant = zend_add_func_name_literal(CG(active_op_array), &func_name TSRMLS_CC);
+ GET_CACHE_SLOT(opline->op2.constant);
+
+ ++CG(context).nested_calls;
+ *function_ptr_ptr = NULL;
+ }
+
+ opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ opline->opcode = ZEND_SEND_UNPACK;
+ SET_NODE(opline->op1, params);
+ SET_UNUSED(opline->op2);
+ opline->op2.num = (zend_uint) offset;
+}
+/* }}} */
+
static int generate_free_switch_expr(const zend_switch_entry *switch_entry TSRMLS_DC) /* {{{ */
{
zend_op *opline;
@@ -2732,7 +2813,9 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */
if (expr) {
SET_NODE(opline->op1, expr);
- if (do_end_vparse && zend_is_function_or_method_call(expr)) {
+ if (!do_end_vparse) {
+ opline->extended_value = ZEND_RETURNS_VALUE;
+ } else if (zend_is_function_or_method_call(expr)) {
opline->extended_value = ZEND_RETURNS_FUNCTION;
}
} else {
@@ -2749,7 +2832,7 @@ void zend_do_yield(znode *result, znode *value, const znode *key, zend_bool is_v
zend_op *opline;
if (!CG(active_op_array)->function_name) {
- zend_error(E_COMPILE_ERROR, "The \"yield\" expression can only be used inside a function");
+ zend_error_noreturn(E_COMPILE_ERROR, "The \"yield\" expression can only be used inside a function");
}
CG(active_op_array)->fn_flags |= ZEND_ACC_GENERATOR;
@@ -2886,10 +2969,10 @@ void zend_do_begin_catch(znode *catch_token, znode *class_name, znode *catch_var
if (class_name->op_type == IS_CONST &&
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) {
- zend_resolve_class_name(class_name, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
catch_class = *class_name;
} else {
- zend_error(E_COMPILE_ERROR, "Bad class name in the catch statement");
+ zend_error_noreturn(E_COMPILE_ERROR, "Bad class name in the catch statement");
}
catch_op_number = get_next_op_number(CG(active_op_array));
@@ -2902,7 +2985,7 @@ void zend_do_begin_catch(znode *catch_token, znode *class_name, znode *catch_var
opline->op1_type = IS_CONST;
opline->op1.constant = zend_add_class_name_literal(CG(active_op_array), &catch_class.u.constant TSRMLS_CC);
opline->op2_type = IS_CV;
- opline->op2.var = lookup_cv(CG(active_op_array), catch_var->u.constant.value.str.val, catch_var->u.constant.value.str.len, 0 TSRMLS_CC);
+ opline->op2.var = lookup_cv(CG(active_op_array), Z_STRVAL(catch_var->u.constant), Z_STRLEN(catch_var->u.constant), 0 TSRMLS_CC);
Z_STRVAL(catch_var->u.constant) = (char*)CG(active_op_array)->vars[opline->op2.var].name;
opline->result.num = 0; /* 1 means it's the last catch in the block */
@@ -2938,7 +3021,7 @@ void zend_do_bind_catch(znode *try_token, znode *catch_token TSRMLS_DC) /* {{{ *
void zend_do_end_finally(znode *try_token, znode* catch_token, znode *finally_token TSRMLS_DC) /* {{{ */
{
if (catch_token->op_type == IS_UNUSED && finally_token->op_type == IS_UNUSED) {
- zend_error(E_COMPILE_ERROR, "Cannot use try without catch or finally");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use try without catch or finally");
}
if (finally_token->op_type != IS_UNUSED) {
zend_op *opline;
@@ -3105,7 +3188,7 @@ static void do_inherit_method(zend_function *function) /* {{{ */
static zend_bool zend_do_perform_implementation_check(const zend_function *fe, const zend_function *proto TSRMLS_DC) /* {{{ */
{
- zend_uint i;
+ zend_uint i, num_args;
/* If it's a user function then arg_info == NULL means we don't have any parameters but
* we still need to do the arg number checks. We are only willing to ignore this for internal
@@ -3135,48 +3218,66 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
return 0;
}
- if (fe->common.type != ZEND_USER_FUNCTION
- && (proto->common.fn_flags & ZEND_ACC_PASS_REST_BY_REFERENCE) != 0
- && (fe->common.fn_flags & ZEND_ACC_PASS_REST_BY_REFERENCE) == 0) {
- return 0;
- }
-
/* by-ref constraints on return values are covariant */
if ((proto->common.fn_flags & ZEND_ACC_RETURN_REFERENCE)
&& !(fe->common.fn_flags & ZEND_ACC_RETURN_REFERENCE)) {
return 0;
}
- for (i=0; i < proto->common.num_args; i++) {
- if (ZEND_LOG_XOR(fe->common.arg_info[i].class_name, proto->common.arg_info[i].class_name)) {
+ if ((proto->common.fn_flags & ZEND_ACC_VARIADIC)
+ && !(fe->common.fn_flags & ZEND_ACC_VARIADIC)) {
+ return 0;
+ }
+
+ /* For variadic functions any additional (optional) arguments that were added must be
+ * checked against the signature of the variadic argument, so in this case we have to
+ * go through all the parameters of the function and not just those present in the
+ * prototype. */
+ num_args = proto->common.num_args;
+ if ((fe->common.fn_flags & ZEND_ACC_VARIADIC)
+ && fe->common.num_args > proto->common.num_args) {
+ num_args = fe->common.num_args;
+ }
+
+ for (i = 0; i < num_args; i++) {
+ zend_arg_info *fe_arg_info = &fe->common.arg_info[i];
+
+ zend_arg_info *proto_arg_info;
+ if (i < proto->common.num_args) {
+ proto_arg_info = &proto->common.arg_info[i];
+ } else {
+ proto_arg_info = &proto->common.arg_info[proto->common.num_args-1];
+ }
+
+ if (ZEND_LOG_XOR(fe_arg_info->class_name, proto_arg_info->class_name)) {
/* Only one has a type hint and the other one doesn't */
return 0;
}
- if (fe->common.arg_info[i].class_name) {
+ if (fe_arg_info->class_name) {
const char *fe_class_name, *proto_class_name;
zend_uint fe_class_name_len, proto_class_name_len;
- if (!strcasecmp(fe->common.arg_info[i].class_name, "parent") && proto->common.scope) {
+ if (!strcasecmp(fe_arg_info->class_name, "parent") && proto->common.scope) {
fe_class_name = proto->common.scope->name;
fe_class_name_len = proto->common.scope->name_length;
- } else if (!strcasecmp(fe->common.arg_info[i].class_name, "self") && fe->common.scope) {
+ } else if (!strcasecmp(fe_arg_info->class_name, "self") && fe->common.scope) {
fe_class_name = fe->common.scope->name;
fe_class_name_len = fe->common.scope->name_length;
} else {
- fe_class_name = fe->common.arg_info[i].class_name;
- fe_class_name_len = fe->common.arg_info[i].class_name_len;
+ fe_class_name = fe_arg_info->class_name;
+ fe_class_name_len = fe_arg_info->class_name_len;
}
- if (!strcasecmp(proto->common.arg_info[i].class_name, "parent") && proto->common.scope && proto->common.scope->parent) {
+ if (!strcasecmp(proto_arg_info->class_name, "parent") && proto->common.scope && proto->common.scope->parent) {
proto_class_name = proto->common.scope->parent->name;
proto_class_name_len = proto->common.scope->parent->name_length;
- } else if (!strcasecmp(proto->common.arg_info[i].class_name, "self") && proto->common.scope) {
+ } else if (!strcasecmp(proto_arg_info->class_name, "self") && proto->common.scope) {
proto_class_name = proto->common.scope->name;
proto_class_name_len = proto->common.scope->name_length;
} else {
- proto_class_name = proto->common.arg_info[i].class_name;
- proto_class_name_len = proto->common.arg_info[i].class_name_len;
+ proto_class_name = proto_arg_info->class_name;
+ proto_class_name_len = proto_arg_info->class_name_len;
}
if (strcasecmp(fe_class_name, proto_class_name)!=0) {
@@ -3203,24 +3304,17 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
}
}
}
- if (fe->common.arg_info[i].type_hint != proto->common.arg_info[i].type_hint) {
+ if (fe_arg_info->type_hint != proto_arg_info->type_hint) {
/* Incompatible type hint */
return 0;
}
/* by-ref constraints on arguments are invariant */
- if (fe->common.arg_info[i].pass_by_reference != proto->common.arg_info[i].pass_by_reference) {
+ if (fe_arg_info->pass_by_reference != proto_arg_info->pass_by_reference) {
return 0;
}
}
- if (proto->common.fn_flags & ZEND_ACC_PASS_REST_BY_REFERENCE) {
- for (i=proto->common.num_args; i < fe->common.num_args; i++) {
- if (!fe->common.arg_info[i].pass_by_reference) {
- return 0;
- }
- }
- }
return 1;
}
/* }}} */
@@ -3293,6 +3387,13 @@ static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{
if (arg_info->pass_by_reference) {
*(offset++) = '&';
}
+
+ if (arg_info->is_variadic) {
+ *(offset++) = '.';
+ *(offset++) = '.';
+ *(offset++) = '.';
+ }
+
*(offset++) = '$';
if (arg_info->name) {
@@ -3308,7 +3409,7 @@ static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{
idx /= 10;
} while (idx > 0);
}
- if (i >= required) {
+ if (i >= required && !arg_info->is_variadic) {
*(offset++) = ' ';
*(offset++) = '=';
*(offset++) = ' ';
@@ -3403,14 +3504,14 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
&& parent->common.fn_flags & ZEND_ACC_ABSTRACT
&& parent->common.scope != (child->common.prototype ? child->common.prototype->common.scope : child->common.scope)
&& child->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_IMPLEMENTED_ABSTRACT)) {
- zend_error(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)",
+ zend_error_noreturn(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)",
parent->common.scope->name,
child->common.function_name,
child->common.prototype ? child->common.prototype->common.scope->name : child->common.scope->name);
}
if (parent_flags & ZEND_ACC_FINAL) {
- zend_error(E_COMPILE_ERROR, "Cannot override final method %s::%s()", ZEND_FN_SCOPE_NAME(parent), child->common.function_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot override final method %s::%s()", ZEND_FN_SCOPE_NAME(parent), child->common.function_name);
}
child_flags = child->common.fn_flags;
@@ -3418,15 +3519,15 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
*/
if ((child_flags & ZEND_ACC_STATIC) != (parent_flags & ZEND_ACC_STATIC)) {
if (child->common.fn_flags & ZEND_ACC_STATIC) {
- zend_error(E_COMPILE_ERROR, "Cannot make non static method %s::%s() static in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot make non static method %s::%s() static in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
} else {
- zend_error(E_COMPILE_ERROR, "Cannot make static method %s::%s() non static in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot make static method %s::%s() non static in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
}
}
/* Disallow making an inherited method abstract. */
if ((child_flags & ZEND_ACC_ABSTRACT) && !(parent_flags & ZEND_ACC_ABSTRACT)) {
- zend_error(E_COMPILE_ERROR, "Cannot make non abstract method %s::%s() abstract in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot make non abstract method %s::%s() abstract in class %s", ZEND_FN_SCOPE_NAME(parent), child->common.function_name, ZEND_FN_SCOPE_NAME(child));
}
if (parent_flags & ZEND_ACC_CHANGED) {
@@ -3435,7 +3536,7 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
/* Prevent derived classes from restricting access that was available in parent classes
*/
if ((child_flags & ZEND_ACC_PPP_MASK) > (parent_flags & ZEND_ACC_PPP_MASK)) {
- zend_error(E_COMPILE_ERROR, "Access level to %s::%s() must be %s (as in class %s)%s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_visibility_string(parent_flags), ZEND_FN_SCOPE_NAME(parent), (parent_flags&ZEND_ACC_PUBLIC) ? "" : " or weaker");
+ zend_error_noreturn(E_COMPILE_ERROR, "Access level to %s::%s() must be %s (as in class %s)%s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_visibility_string(parent_flags), ZEND_FN_SCOPE_NAME(parent), (parent_flags&ZEND_ACC_PUBLIC) ? "" : " or weaker");
} else if (((child_flags & ZEND_ACC_PPP_MASK) < (parent_flags & ZEND_ACC_PPP_MASK))
&& ((parent_flags & ZEND_ACC_PPP_MASK) & ZEND_ACC_PRIVATE)) {
child->common.fn_flags |= ZEND_ACC_CHANGED;
@@ -3454,7 +3555,7 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
if (child->common.prototype && (child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) {
if (!zend_do_perform_implementation_check(child, child->common.prototype TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype TSRMLS_CC));
+ zend_error_noreturn(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype TSRMLS_CC));
}
} else if (EG(error_reporting) & E_STRICT || EG(user_error_handler)) { /* Check E_STRICT (or custom error handler) before the check so that we save some time */
if (!zend_do_perform_implementation_check(child, parent TSRMLS_CC)) {
@@ -3508,7 +3609,7 @@ static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_pro
if (zend_hash_quick_find(&ce->properties_info, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void **) &child_info)==SUCCESS) {
if ((parent_info->flags & ZEND_ACC_STATIC) != (child_info->flags & ZEND_ACC_STATIC)) {
- zend_error(E_COMPILE_ERROR, "Cannot redeclare %s%s::$%s as %s%s::$%s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s%s::$%s as %s%s::$%s",
(parent_info->flags & ZEND_ACC_STATIC) ? "static " : "non static ", parent_ce->name, hash_key->arKey,
(child_info->flags & ZEND_ACC_STATIC) ? "static " : "non static ", ce->name, hash_key->arKey);
@@ -3519,7 +3620,7 @@ static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_pro
}
if ((child_info->flags & ZEND_ACC_PPP_MASK) > (parent_info->flags & ZEND_ACC_PPP_MASK)) {
- zend_error(E_COMPILE_ERROR, "Access level to %s::$%s must be %s (as in class %s)%s", ce->name, hash_key->arKey, zend_visibility_string(parent_info->flags), parent_ce->name, (parent_info->flags&ZEND_ACC_PUBLIC) ? "" : " or weaker");
+ zend_error_noreturn(E_COMPILE_ERROR, "Access level to %s::$%s must be %s (as in class %s)%s", ce->name, hash_key->arKey, zend_visibility_string(parent_info->flags), parent_ce->name, (parent_info->flags&ZEND_ACC_PUBLIC) ? "" : " or weaker");
} else if ((child_info->flags & ZEND_ACC_STATIC) == 0) {
zval_ptr_dtor(&(ce->default_properties_table[parent_info->offset]));
ce->default_properties_table[parent_info->offset] = ce->default_properties_table[child_info->offset];
@@ -3604,10 +3705,10 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent
if ((ce->ce_flags & ZEND_ACC_INTERFACE)
&& !(parent_ce->ce_flags & ZEND_ACC_INTERFACE)) {
- zend_error(E_COMPILE_ERROR, "Interface %s may not inherit from class (%s)", ce->name, parent_ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Interface %s may not inherit from class (%s)", ce->name, parent_ce->name);
}
if (parent_ce->ce_flags & ZEND_ACC_FINAL_CLASS) {
- zend_error(E_COMPILE_ERROR, "Class %s may not inherit from final class (%s)", ce->name, parent_ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Class %s may not inherit from final class (%s)", ce->name, parent_ce->name);
}
ce->parent = parent_ce;
@@ -3729,7 +3830,7 @@ static zend_bool do_inherit_constant_check(HashTable *child_constants_table, con
if (zend_hash_quick_find(child_constants_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void**)&old_constant) == SUCCESS) {
if (*old_constant != *parent_constant) {
- zend_error(E_COMPILE_ERROR, "Cannot inherit previously-inherited or override constant %s from interface %s", hash_key->arKey, iface->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot inherit previously-inherited or override constant %s from interface %s", hash_key->arKey, iface->name);
}
return 0;
}
@@ -3761,7 +3862,7 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry
if (i < parent_iface_num) {
ignore = 1;
} else {
- zend_error(E_COMPILE_ERROR, "Class %s cannot implement previously implemented interface %s", ce->name, iface->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Class %s cannot implement previously implemented interface %s", ce->name, iface->name);
}
}
}
@@ -3834,7 +3935,7 @@ static void zend_add_magic_methods(zend_class_entry* ce, const char* mname, uint
ce->clone = fe; fe->common.fn_flags |= ZEND_ACC_CLONE;
} else if (!strncmp(mname, ZEND_CONSTRUCTOR_FUNC_NAME, mname_len)) {
if (ce->constructor) {
- zend_error(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ce->name);
}
ce->constructor = fe; fe->common.fn_flags |= ZEND_ACC_CTOR;
} else if (!strncmp(mname, ZEND_DESTRUCTOR_FUNC_NAME, mname_len)) {
@@ -3859,7 +3960,7 @@ static void zend_add_magic_methods(zend_class_entry* ce, const char* mname, uint
lowercase_name = (char*)zend_new_interned_string(lowercase_name, ce->name_length + 1, 1 TSRMLS_CC);
if (!memcmp(mname, lowercase_name, mname_len)) {
if (ce->constructor) {
- zend_error(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ce->name);
}
ce->constructor = fe;
fe->common.fn_flags |= ZEND_ACC_CTOR;
@@ -3883,14 +3984,14 @@ static void zend_add_trait_method(zend_class_entry *ce, const char *name, const
if (existing_fn->common.fn_flags & ZEND_ACC_ABSTRACT) {
/* Make sure the trait method is compatible with previosly declared abstract method */
if (!zend_traits_method_compatibility_check(fn, existing_fn TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
zend_get_function_declaration(fn TSRMLS_CC),
zend_get_function_declaration(existing_fn TSRMLS_CC));
}
} else if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) {
/* Make sure the abstract declaration is compatible with previous declaration */
if (!zend_traits_method_compatibility_check(existing_fn, fn TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
zend_get_function_declaration(fn TSRMLS_CC),
zend_get_function_declaration(existing_fn TSRMLS_CC));
}
@@ -3906,25 +4007,25 @@ static void zend_add_trait_method(zend_class_entry *ce, const char *name, const
} else if (existing_fn->common.fn_flags & ZEND_ACC_ABSTRACT) {
/* Make sure the trait method is compatible with previosly declared abstract method */
if (!zend_traits_method_compatibility_check(fn, existing_fn TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
zend_get_function_declaration(fn TSRMLS_CC),
zend_get_function_declaration(existing_fn TSRMLS_CC));
}
} else if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) {
/* Make sure the abstract declaration is compatible with previous declaration */
if (!zend_traits_method_compatibility_check(existing_fn, fn TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s",
zend_get_function_declaration(fn TSRMLS_CC),
zend_get_function_declaration(existing_fn TSRMLS_CC));
}
return;
} else if ((existing_fn->common.scope->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) {
- /* two trais can't define the same non-abstract method */
+ /* two traits can't define the same non-abstract method */
#if 1
- zend_error(E_COMPILE_ERROR, "Trait method %s has not been applied, because there are collisions with other trait methods on %s",
+ zend_error_noreturn(E_COMPILE_ERROR, "Trait method %s has not been applied, because there are collisions with other trait methods on %s",
name, ce->name);
-#else /* TODO: better errot message */
- zend_error(E_COMPILE_ERROR, "Trait method %s::%s has not been applied as %s::%s, because of collision with %s::%s",
+#else /* TODO: better error message */
+ zend_error_noreturn(E_COMPILE_ERROR, "Trait method %s::%s has not been applied as %s::%s, because of collision with %s::%s",
fn->common.scope->name, fn->common.function_name,
ce->name, name,
existing_fn->common.scope->name, existing_fn->common.function_name);
@@ -4007,7 +4108,7 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args,
}
}
- lcname = hash_key->arKey;
+ lcname = (char *) hash_key->arKey;
if (exclude_table == NULL || zend_hash_find(exclude_table, lcname, fnname_len, &dummy) == FAILURE) {
/* is not in hashtable, thus, function is not to be excluded */
@@ -4048,7 +4149,7 @@ static void zend_check_trait_usage(zend_class_entry *ce, zend_class_entry *trait
zend_uint i;
if ((trait->ce_flags & ZEND_ACC_TRAIT) != ZEND_ACC_TRAIT) {
- zend_error(E_COMPILE_ERROR, "Class %s is not a trait, Only traits may be used in 'as' and 'insteadof' statements", trait->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Class %s is not a trait, Only traits may be used in 'as' and 'insteadof' statements", trait->name);
}
for (i = 0; i < ce->num_traits; i++) {
@@ -4056,7 +4157,7 @@ static void zend_check_trait_usage(zend_class_entry *ce, zend_class_entry *trait
return;
}
}
- zend_error(E_COMPILE_ERROR, "Required Trait %s wasn't added to %s", trait->name, ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Required Trait %s wasn't added to %s", trait->name, ce->name);
}
/* }}} */
@@ -4077,7 +4178,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
cur_method_ref = cur_precedence->trait_method;
if (!(cur_precedence->trait_method->ce = zend_fetch_class(cur_method_ref->class_name, cur_method_ref->cname_len,
ZEND_FETCH_CLASS_TRAIT|ZEND_FETCH_CLASS_NO_AUTOLOAD TSRMLS_CC))) {
- zend_error(E_COMPILE_ERROR, "Could not find trait %s", cur_method_ref->class_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Could not find trait %s", cur_method_ref->class_name);
}
zend_check_trait_usage(ce, cur_precedence->trait_method->ce TSRMLS_CC);
@@ -4089,7 +4190,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
cur_method_ref->mname_len + 1);
efree(lcname);
if (!method_exists) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"A precedence rule was defined for %s::%s but this method does not exist",
cur_method_ref->ce->name,
cur_method_ref->method_name);
@@ -4107,14 +4208,14 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
zend_uint name_length = strlen(class_name);
if (!(cur_precedence->exclude_from_classes[j] = zend_fetch_class(class_name, name_length, ZEND_FETCH_CLASS_TRAIT |ZEND_FETCH_CLASS_NO_AUTOLOAD TSRMLS_CC))) {
- zend_error(E_COMPILE_ERROR, "Could not find trait %s", class_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Could not find trait %s", class_name);
}
zend_check_trait_usage(ce, cur_precedence->exclude_from_classes[j] TSRMLS_CC);
/* make sure that the trait method is not from a class mentioned in
exclude_from_classes, for consistency */
if (cur_precedence->trait_method->ce == cur_precedence->exclude_from_classes[i]) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"Inconsistent insteadof definition. "
"The method %s is to be used from %s, but %s is also on the exclude list",
cur_method_ref->method_name,
@@ -4137,7 +4238,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
if (ce->trait_aliases[i]->trait_method->class_name) {
cur_method_ref = ce->trait_aliases[i]->trait_method;
if (!(cur_method_ref->ce = zend_fetch_class(cur_method_ref->class_name, cur_method_ref->cname_len, ZEND_FETCH_CLASS_TRAIT|ZEND_FETCH_CLASS_NO_AUTOLOAD TSRMLS_CC))) {
- zend_error(E_COMPILE_ERROR, "Could not find trait %s", cur_method_ref->class_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Could not find trait %s", cur_method_ref->class_name);
}
zend_check_trait_usage(ce, cur_method_ref->ce TSRMLS_CC);
@@ -4149,7 +4250,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
efree(lcname);
if (!method_exists) {
- zend_error(E_COMPILE_ERROR, "An alias was defined for %s::%s but this method does not exist", cur_method_ref->ce->name, cur_method_ref->method_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "An alias was defined for %s::%s but this method does not exist", cur_method_ref->ce->name, cur_method_ref->method_name);
}
}
i++;
@@ -4175,7 +4276,7 @@ static void zend_traits_compile_exclude_table(HashTable* exclude_table, zend_tra
if (zend_hash_add(exclude_table, lcname, lcname_len, NULL, 0, NULL) == FAILURE) {
efree(lcname);
- zend_error(E_COMPILE_ERROR, "Failed to evaluate a trait precedence (%s). Method of trait %s was defined to be excluded multiple times", precedences[i]->trait_method->method_name, trait->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Failed to evaluate a trait precedence (%s). Method of trait %s was defined to be excluded multiple times", precedences[i]->trait_method->method_name, trait->name);
}
efree(lcname);
}
@@ -4300,7 +4401,7 @@ static void zend_do_traits_property_binding(zend_class_entry *ce TSRMLS_DC) /* {
}
if (not_compatible) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"%s and %s define the same property ($%s) in the composition of %s. However, the definition differs and is considered incompatible. Class was composed",
find_first_definition(ce, i, prop_name, prop_name_length, prop_hash, coliding_prop->ce)->name,
property_info->ce->name,
@@ -4349,7 +4450,7 @@ static void zend_do_check_for_inconsistent_traits_aliasing(zend_class_entry *ce
if (!cur_alias->trait_method->ce) {
if (cur_alias->alias) {
/** Plain old inconsistency/typo/bug */
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"An alias (%s) was defined for method %s(), but this method does not exist",
cur_alias->alias,
cur_alias->trait_method->method_name);
@@ -4368,12 +4469,12 @@ static void zend_do_check_for_inconsistent_traits_aliasing(zend_class_entry *ce
lc_method_name,
cur_alias->trait_method->mname_len+1)) {
efree(lc_method_name);
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"The modifiers for the trait alias %s() need to be changed in the same statment in which the alias is defined. Error",
cur_alias->trait_method->method_name);
} else {
efree(lc_method_name);
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"The modifiers of the trait method %s() are changed, but this method does not exist. Error",
cur_alias->trait_method->method_name);
@@ -4460,7 +4561,7 @@ void zend_prepare_reference(znode *result, znode *class_name, znode *method_name
/* REM: There should not be a need for copying,
zend_do_begin_class_declaration is also just using that string */
if (class_name) {
- zend_resolve_class_name(class_name, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC);
+ zend_resolve_class_name(class_name TSRMLS_CC);
method_ref->class_name = Z_STRVAL(class_name->u.constant);
method_ref->cname_len = Z_STRLEN(class_name->u.constant);
} else {
@@ -4482,13 +4583,13 @@ void zend_add_trait_alias(znode *method_reference, znode *modifiers, znode *alia
zend_trait_alias *trait_alias;
if (Z_LVAL(modifiers->u.constant) == ZEND_ACC_STATIC) {
- zend_error(E_COMPILE_ERROR, "Cannot use 'static' as method modifier");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'static' as method modifier");
return;
} else if (Z_LVAL(modifiers->u.constant) == ZEND_ACC_ABSTRACT) {
- zend_error(E_COMPILE_ERROR, "Cannot use 'abstract' as method modifier");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'abstract' as method modifier");
return;
} else if (Z_LVAL(modifiers->u.constant) == ZEND_ACC_FINAL) {
- zend_error(E_COMPILE_ERROR, "Cannot use 'final' as method modifier");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'final' as method modifier");
return;
}
@@ -4530,7 +4631,7 @@ ZEND_API zend_class_entry *do_bind_class(const zend_op_array* op_array, const ze
op2 = opline->op2.zv;
}
if (zend_hash_quick_find(class_table, Z_STRVAL_P(op1), Z_STRLEN_P(op1), Z_HASH_P(op1), (void **) &pce)==FAILURE) {
- zend_error(E_COMPILE_ERROR, "Internal Zend error - Missing class information for %s", Z_STRVAL_P(op1));
+ zend_error_noreturn(E_COMPILE_ERROR, "Internal Zend error - Missing class information for %s", Z_STRVAL_P(op1));
return NULL;
} else {
ce = *pce;
@@ -4544,7 +4645,7 @@ ZEND_API zend_class_entry *do_bind_class(const zend_op_array* op_array, const ze
* so we shut up about it. This allows the if (!defined('FOO')) { return; }
* approach to work.
*/
- zend_error(E_COMPILE_ERROR, "Cannot redeclare class %s", ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare class %s", ce->name);
}
return NULL;
} else {
@@ -4579,7 +4680,7 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
* so we shut up about it. This allows the if (!defined('FOO')) { return; }
* approach to work.
*/
- zend_error(E_COMPILE_ERROR, "Cannot redeclare class %s", Z_STRVAL_P(op2));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare class %s", Z_STRVAL_P(op2));
}
return NULL;
} else {
@@ -4587,9 +4688,9 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
}
if (parent_ce->ce_flags & ZEND_ACC_INTERFACE) {
- zend_error(E_COMPILE_ERROR, "Class %s cannot extend from interface %s", ce->name, parent_ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Class %s cannot extend from interface %s", ce->name, parent_ce->name);
} else if ((parent_ce->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) {
- zend_error(E_COMPILE_ERROR, "Class %s cannot extend from trait %s", ce->name, parent_ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Class %s cannot extend from trait %s", ce->name, parent_ce->name);
}
zend_do_inheritance(ce, parent_ce TSRMLS_CC);
@@ -4598,7 +4699,7 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
/* Register the derived class */
if (zend_hash_quick_add(class_table, Z_STRVAL_P(op2), Z_STRLEN_P(op2)+1, Z_HASH_P(op2), pce, sizeof(zend_class_entry *), NULL)==FAILURE) {
- zend_error(E_COMPILE_ERROR, "Cannot redeclare class %s", ce->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare class %s", ce->name);
}
return ce;
}
@@ -4667,7 +4768,7 @@ void zend_do_early_binding(TSRMLS_D) /* {{{ */
/* Classes with traits are handled exactly the same, no early-bind here */
return;
default:
- zend_error(E_COMPILE_ERROR, "Invalid binding type");
+ zend_error_noreturn(E_COMPILE_ERROR, "Invalid binding type");
return;
}
@@ -4798,9 +4899,9 @@ void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC) /* {{{ */
SET_UNUSED(opline->op1);
if (expr) {
if (expr->op_type != IS_CONST) {
- zend_error(E_COMPILE_ERROR, "'%s' operator with non-constant operand is no longer supported", op == ZEND_BRK ? "break" : "continue");
+ zend_error_noreturn(E_COMPILE_ERROR, "'%s' operator with non-constant operand is no longer supported", op == ZEND_BRK ? "break" : "continue");
} else if (Z_TYPE(expr->u.constant) != IS_LONG || Z_LVAL(expr->u.constant) < 1) {
- zend_error(E_COMPILE_ERROR, "'%s' operator accepts only positive numbers", op == ZEND_BRK ? "break" : "continue");
+ zend_error_noreturn(E_COMPILE_ERROR, "'%s' operator accepts only positive numbers", op == ZEND_BRK ? "break" : "continue");
}
SET_NODE(opline->op2, expr);
} else {
@@ -4959,15 +5060,15 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name
zval **ns_name, key;
if (CG(active_class_entry)) {
- zend_error(E_COMPILE_ERROR, "Class declarations may not be nested");
+ zend_error_noreturn(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);
+ lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant));
if (!(strcmp(lcname, "self") && strcmp(lcname, "parent"))) {
efree(lcname);
- zend_error(E_COMPILE_ERROR, "Cannot use '%s' as class name as it is reserved", Z_STRVAL(class_name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as class name as it is reserved", Z_STRVAL(class_name->u.constant));
}
/* Class name must not conflict with import names */
@@ -4994,7 +5095,7 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name
if (Z_STRLEN_PP(ns_name) != Z_STRLEN(class_name->u.constant) ||
memcmp(tmp, lcname, Z_STRLEN(class_name->u.constant))) {
- zend_error(E_COMPILE_ERROR, "Cannot declare class %s because the name is already in use", Z_STRVAL(class_name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare class %s because the name is already in use", Z_STRVAL(class_name->u.constant));
}
efree(tmp);
}
@@ -5012,13 +5113,13 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name
if (parent_class_name && parent_class_name->op_type != IS_UNUSED) {
switch (parent_class_name->EA) {
case ZEND_FETCH_CLASS_SELF:
- zend_error(E_COMPILE_ERROR, "Cannot use 'self' as class name as it is reserved");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'self' as class name as it is reserved");
break;
case ZEND_FETCH_CLASS_PARENT:
- zend_error(E_COMPILE_ERROR, "Cannot use 'parent' as class name as it is reserved");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'parent' as class name as it is reserved");
break;
case ZEND_FETCH_CLASS_STATIC:
- zend_error(E_COMPILE_ERROR, "Cannot use 'static' as class name as it is reserved");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use 'static' as class name as it is reserved");
break;
default:
break;
@@ -5037,7 +5138,7 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name
if (doing_inheritance) {
/* Make sure a trait does not try to extend a class */
if ((new_class_entry->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) {
- zend_error(E_COMPILE_ERROR, "A trait (%s) cannot extend a class. Traits can only be composed from other traits with the 'use' keyword. Error", new_class_entry->name);
+ zend_error_noreturn(E_COMPILE_ERROR, "A trait (%s) cannot extend a class. Traits can only be composed from other traits with the 'use' keyword. Error", new_class_entry->name);
}
opline->extended_value = parent_class_name->u.op.var;
@@ -5082,19 +5183,19 @@ void zend_do_end_class_declaration(const znode *class_token, const znode *parent
if (ce->constructor) {
ce->constructor->common.fn_flags |= ZEND_ACC_CTOR;
if (ce->constructor->common.fn_flags & ZEND_ACC_STATIC) {
- zend_error(E_COMPILE_ERROR, "Constructor %s::%s() cannot be static", ce->name, ce->constructor->common.function_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Constructor %s::%s() cannot be static", ce->name, ce->constructor->common.function_name);
}
}
if (ce->destructor) {
ce->destructor->common.fn_flags |= ZEND_ACC_DTOR;
if (ce->destructor->common.fn_flags & ZEND_ACC_STATIC) {
- zend_error(E_COMPILE_ERROR, "Destructor %s::%s() cannot be static", ce->name, ce->destructor->common.function_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Destructor %s::%s() cannot be static", ce->name, ce->destructor->common.function_name);
}
}
if (ce->clone) {
ce->clone->common.fn_flags |= ZEND_ACC_CLONE;
if (ce->clone->common.fn_flags & ZEND_ACC_STATIC) {
- zend_error(E_COMPILE_ERROR, "Clone method %s::%s() cannot be static", ce->name, ce->clone->common.function_name);
+ zend_error_noreturn(E_COMPILE_ERROR, "Clone method %s::%s() cannot be static", ce->name, ce->clone->common.function_name);
}
}
@@ -5143,7 +5244,7 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */
/* Traits can not implement interfaces */
if ((CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) {
- zend_error(E_COMPILE_ERROR, "Cannot use '%s' as interface on '%s' since it is a Trait",
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as interface on '%s' since it is a Trait",
Z_STRVAL(interface_name->u.constant),
CG(active_class_entry)->name);
}
@@ -5152,7 +5253,7 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */
case ZEND_FETCH_CLASS_SELF:
case ZEND_FETCH_CLASS_PARENT:
case ZEND_FETCH_CLASS_STATIC:
- zend_error(E_COMPILE_ERROR, "Cannot use '%s' as interface name as it is reserved", Z_STRVAL(interface_name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as interface name as it is reserved", Z_STRVAL(interface_name->u.constant));
break;
default:
break;
@@ -5161,7 +5262,7 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_ADD_INTERFACE;
SET_NODE(opline->op1, &CG(implementing_class));
- zend_resolve_class_name(interface_name, opline->extended_value, 0 TSRMLS_CC);
+ zend_resolve_class_name(interface_name TSRMLS_CC);
opline->extended_value = (opline->extended_value & ~ZEND_FETCH_CLASS_MASK) | ZEND_FETCH_CLASS_INTERFACE;
opline->op2_type = IS_CONST;
opline->op2.constant = zend_add_class_name_literal(CG(active_op_array), &interface_name->u.constant TSRMLS_CC);
@@ -5174,7 +5275,7 @@ void zend_do_use_trait(znode *trait_name TSRMLS_DC) /* {{{ */
zend_op *opline;
if ((CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE)) {
- zend_error(E_COMPILE_ERROR,
+ zend_error_noreturn(E_COMPILE_ERROR,
"Cannot use traits inside of interfaces. %s is used in %s",
Z_STRVAL(trait_name->u.constant), CG(active_class_entry)->name);
}
@@ -5184,7 +5285,7 @@ void zend_do_use_trait(znode *trait_name TSRMLS_DC) /* {{{ */
case ZEND_FETCH_CLASS_SELF:
case ZEND_FETCH_CLASS_PARENT:
case ZEND_FETCH_CLASS_STATIC:
- zend_error(E_COMPILE_ERROR, "Cannot use '%s' as trait name as it is reserved", Z_STRVAL(trait_name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as trait name as it is reserved", Z_STRVAL(trait_name->u.constant));
break;
default:
break;
@@ -5193,7 +5294,7 @@ void zend_do_use_trait(znode *trait_name TSRMLS_DC) /* {{{ */
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_ADD_TRAIT;
SET_NODE(opline->op1, &CG(implementing_class));
- zend_resolve_class_name(trait_name, opline->extended_value, 0 TSRMLS_CC);
+ zend_resolve_class_name(trait_name TSRMLS_CC);
opline->extended_value = ZEND_FETCH_CLASS_TRAIT;
opline->op2_type = IS_CONST;
opline->op2.constant = zend_add_class_name_literal(CG(active_op_array), &trait_name->u.constant TSRMLS_CC);
@@ -5273,20 +5374,20 @@ void zend_do_declare_property(const znode *var_name, const znode *value, zend_ui
int comment_len = 0;
if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
- zend_error(E_COMPILE_ERROR, "Interfaces may not include member variables");
+ zend_error_noreturn(E_COMPILE_ERROR, "Interfaces may not include member variables");
}
if (access_type & ZEND_ACC_ABSTRACT) {
- zend_error(E_COMPILE_ERROR, "Properties cannot be declared abstract");
+ zend_error_noreturn(E_COMPILE_ERROR, "Properties cannot be declared abstract");
}
if (access_type & ZEND_ACC_FINAL) {
- zend_error(E_COMPILE_ERROR, "Cannot declare property %s::$%s final, the final modifier is allowed only for methods and classes",
- CG(active_class_entry)->name, var_name->u.constant.value.str.val);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare property %s::$%s final, the final modifier is allowed only for methods and classes",
+ CG(active_class_entry)->name, Z_STRVAL(var_name->u.constant));
}
- if (zend_hash_find(&CG(active_class_entry)->properties_info, var_name->u.constant.value.str.val, var_name->u.constant.value.str.len+1, (void **) &existing_property_info)==SUCCESS) {
- zend_error(E_COMPILE_ERROR, "Cannot redeclare %s::$%s", CG(active_class_entry)->name, var_name->u.constant.value.str.val);
+ if (zend_hash_find(&CG(active_class_entry)->properties_info, Z_STRVAL(var_name->u.constant), Z_STRLEN(var_name->u.constant)+1, (void **) &existing_property_info)==SUCCESS) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s::$%s", CG(active_class_entry)->name, Z_STRVAL(var_name->u.constant));
}
ALLOC_ZVAL(property);
@@ -5304,8 +5405,8 @@ void zend_do_declare_property(const znode *var_name, const znode *value, zend_ui
CG(doc_comment_len) = 0;
}
- zend_declare_property_ex(CG(active_class_entry), zend_new_interned_string(var_name->u.constant.value.str.val, var_name->u.constant.value.str.len + 1, 0 TSRMLS_CC), var_name->u.constant.value.str.len, property, access_type, comment, comment_len TSRMLS_CC);
- efree(var_name->u.constant.value.str.val);
+ zend_declare_property_ex(CG(active_class_entry), zend_new_interned_string(Z_STRVAL(var_name->u.constant), Z_STRLEN(var_name->u.constant) + 1, 0 TSRMLS_CC), Z_STRLEN(var_name->u.constant), property, access_type, comment, comment_len TSRMLS_CC);
+ efree(Z_STRVAL(var_name->u.constant));
}
/* }}} */
@@ -5313,30 +5414,25 @@ void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_D
{
zval *property;
const char *cname = NULL;
- int result;
+ zend_ulong hash;
if(Z_TYPE(value->u.constant) == IS_CONSTANT_ARRAY) {
- zend_error(E_COMPILE_ERROR, "Arrays are not allowed in class constants");
+ zend_error_noreturn(E_COMPILE_ERROR, "Arrays are not allowed in class constants");
return;
}
if ((CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) {
- zend_error(E_COMPILE_ERROR, "Traits cannot have constants");
+ zend_error_noreturn(E_COMPILE_ERROR, "Traits cannot have constants");
return;
}
ALLOC_ZVAL(property);
*property = value->u.constant;
- cname = zend_new_interned_string(var_name->u.constant.value.str.val, var_name->u.constant.value.str.len+1, 0 TSRMLS_CC);
-
- if (IS_INTERNED(cname)) {
- result = zend_hash_quick_add(&CG(active_class_entry)->constants_table, cname, var_name->u.constant.value.str.len+1, INTERNED_HASH(cname), &property, sizeof(zval *), NULL);
- } else {
- result = zend_hash_add(&CG(active_class_entry)->constants_table, cname, var_name->u.constant.value.str.len+1, &property, sizeof(zval *), NULL);
- }
- if (result == FAILURE) {
+ cname = zend_new_interned_string(Z_STRVAL(var_name->u.constant), Z_STRLEN(var_name->u.constant)+1, 0 TSRMLS_CC);
+ hash = str_hash(cname, Z_STRLEN(var_name->u.constant));
+ if (zend_hash_quick_add(&CG(active_class_entry)->constants_table, cname, Z_STRLEN(var_name->u.constant)+1, hash, &property, sizeof(zval *), NULL) == FAILURE) {
FREE_ZVAL(property);
- zend_error(E_COMPILE_ERROR, "Cannot redefine class constant %s::%s", CG(active_class_entry)->name, var_name->u.constant.value.str.val);
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redefine class constant %s::%s", CG(active_class_entry)->name, Z_STRVAL(var_name->u.constant));
}
FREE_PNODE(var_name);
@@ -5430,7 +5526,7 @@ void zend_do_halt_compiler_register(TSRMLS_D) /* {{{ */
int len, clen;
if (CG(has_bracketed_namespaces) && CG(in_namespace)) {
- zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope");
+ zend_error_noreturn(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope");
}
cfilename = zend_get_compiled_filename(TSRMLS_C);
@@ -5531,8 +5627,7 @@ static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal
if (all_internal_constants_substitution &&
(c->flags & CONST_PERSISTENT) &&
!(CG(compiler_options) & ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION) &&
- Z_TYPE(c->value) != IS_CONSTANT &&
- Z_TYPE(c->value) != IS_CONSTANT_ARRAY) {
+ !IS_CONSTANT_TYPE(Z_TYPE(c->value))) {
return c;
}
return NULL;
@@ -5572,7 +5667,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
if (ZEND_FETCH_CLASS_STATIC == type) {
zend_error(E_ERROR, "\"static::\" is not allowed in compile-time constants");
} else if (ZEND_FETCH_CLASS_DEFAULT == type) {
- zend_resolve_class_name(constant_container, fetch_type, 1 TSRMLS_CC);
+ zend_resolve_class_name(constant_container TSRMLS_CC);
}
zend_do_build_full_name(NULL, constant_container, constant_name, 1 TSRMLS_CC);
*result = *constant_container;
@@ -5581,7 +5676,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
case ZEND_RT:
if (constant_container->op_type == IS_CONST &&
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) {
- zend_resolve_class_name(constant_container, fetch_type, 1 TSRMLS_CC);
+ zend_resolve_class_name(constant_container TSRMLS_CC);
} else {
zend_do_fetch_class(&tmp, constant_container TSRMLS_CC);
constant_container = &tmp;
@@ -5619,7 +5714,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
break;
}
- zend_resolve_non_class_name(constant_name, check_namespace TSRMLS_CC);
+ zend_resolve_const_name(constant_name, &check_namespace TSRMLS_CC);
if(!compound) {
fetch_type |= IS_CONSTANT_UNQUALIFIED;
@@ -5631,7 +5726,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
case ZEND_RT:
compound = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant));
- zend_resolve_non_class_name(constant_name, check_namespace TSRMLS_CC);
+ zend_resolve_const_name(constant_name, &check_namespace TSRMLS_CC);
if(zend_constant_ct_subst(result, &constant_name->u.constant, 1 TSRMLS_CC)) {
break;
@@ -5774,18 +5869,32 @@ void zend_do_add_static_array_element(znode *result, znode *offset, const znode
ALLOC_ZVAL(element);
*element = expr->u.constant;
if (offset) {
- switch (offset->u.constant.type & IS_CONSTANT_TYPE_MASK) {
+ switch (Z_TYPE(offset->u.constant) & IS_CONSTANT_TYPE_MASK) {
case IS_CONSTANT:
/* Ugly hack to denote that this value has a constant index */
Z_TYPE_P(element) |= IS_CONSTANT_INDEX;
Z_STRVAL(offset->u.constant) = erealloc(Z_STRVAL(offset->u.constant), Z_STRLEN(offset->u.constant)+3);
Z_STRVAL(offset->u.constant)[Z_STRLEN(offset->u.constant)+1] = Z_TYPE(offset->u.constant);
Z_STRVAL(offset->u.constant)[Z_STRLEN(offset->u.constant)+2] = 0;
- zend_symtable_update(result->u.constant.value.ht, Z_STRVAL(offset->u.constant), Z_STRLEN(offset->u.constant)+3, &element, sizeof(zval *), NULL);
+ zend_symtable_update(Z_ARRVAL(result->u.constant), Z_STRVAL(offset->u.constant), Z_STRLEN(offset->u.constant)+3, &element, sizeof(zval *), NULL);
zval_dtor(&offset->u.constant);
break;
+ case IS_CONSTANT_AST: {
+ /* Another ugly hack to store the data about the AST in the array */
+ char* key;
+ int len = sizeof(zend_ast *);
+ Z_TYPE_P(element) |= IS_CONSTANT_INDEX;
+
+ key = emalloc(len + 2);
+ *(zend_ast **)key = Z_AST(offset->u.constant);
+ key[len] = Z_TYPE(offset->u.constant);
+ key[len + 1] = 0;
+ zend_symtable_update(Z_ARRVAL(result->u.constant), key, len + 2, &element, sizeof(zval *), NULL);
+ efree(key);
+ break;
+ }
case IS_STRING:
- zend_symtable_update(result->u.constant.value.ht, offset->u.constant.value.str.val, offset->u.constant.value.str.len+1, &element, sizeof(zval *), NULL);
+ zend_symtable_update(Z_ARRVAL(result->u.constant), Z_STRVAL(offset->u.constant), Z_STRLEN(offset->u.constant)+1, &element, sizeof(zval *), NULL);
zval_dtor(&offset->u.constant);
break;
case IS_NULL:
@@ -5962,7 +6071,7 @@ void zend_do_fetch_static_variable(znode *varname, const znode *static_assignmen
ALLOC_HASHTABLE(CG(active_op_array)->static_variables);
zend_hash_init(CG(active_op_array)->static_variables, 2, NULL, ZVAL_PTR_DTOR, 0);
}
- zend_hash_update(CG(active_op_array)->static_variables, varname->u.constant.value.str.val, varname->u.constant.value.str.len+1, &tmp, sizeof(zval *), NULL);
+ zend_hash_update(CG(active_op_array)->static_variables, Z_STRVAL(varname->u.constant), Z_STRLEN(varname->u.constant)+1, &tmp, sizeof(zval *), NULL);
if (varname->op_type == IS_CONST) {
if (Z_TYPE(varname->u.constant) != IS_STRING) {
@@ -6006,7 +6115,7 @@ void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC)
if (Z_STRLEN(varname->u.constant) == sizeof("this") - 1 &&
memcmp(Z_STRVAL(varname->u.constant), "this", sizeof("this") - 1) == 0) {
- zend_error(E_COMPILE_ERROR, "Cannot use $this as lexical variable");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use $this as lexical variable");
return;
}
@@ -6091,7 +6200,7 @@ void zend_do_indirect_references(znode *result, const znode *num_references, zno
int i;
zend_do_end_variable_parse(variable, BP_VAR_R, 0 TSRMLS_CC);
- for (i=1; i<num_references->u.constant.value.lval; i++) {
+ for (i=1; i<Z_LVAL(num_references->u.constant); i++) {
fetch_simple_variable_ex(result, variable, 0, ZEND_FETCH_R TSRMLS_CC);
*variable = *result;
}
@@ -6150,7 +6259,7 @@ void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC
/* empty(func()) can be transformed to !func() */
zend_do_unary_op(ZEND_BOOL_NOT, result, variable TSRMLS_CC);
} else {
- zend_error(E_COMPILE_ERROR, "Cannot use isset() on the result of a function call (you can use \"null !== func()\" instead)");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use isset() on the result of a function call (you can use \"null !== func()\" instead)");
}
return;
@@ -6198,7 +6307,7 @@ void zend_do_instanceof(znode *result, const znode *expr, const znode *class_zno
}
if (expr->op_type == IS_CONST) {
- zend_error(E_COMPILE_ERROR, "instanceof expects an object instance, constant given");
+ zend_error_noreturn(E_COMPILE_ERROR, "instanceof expects an object instance, constant given");
}
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -6289,10 +6398,10 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
if ((key->op_type != IS_UNUSED)) {
if (key->EA & ZEND_PARSED_REFERENCE_VARIABLE) {
- zend_error(E_COMPILE_ERROR, "Key element cannot be a reference");
+ zend_error_noreturn(E_COMPILE_ERROR, "Key element cannot be a reference");
}
if (key->EA & ZEND_PARSED_LIST_EXPR) {
- zend_error(E_COMPILE_ERROR, "Cannot use list as key element");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use list as key element");
}
}
@@ -6311,7 +6420,7 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
while (fetch != end) {
--fetch;
if (fetch->opcode == ZEND_FETCH_DIM_W && fetch->op2_type == IS_UNUSED) {
- zend_error(E_COMPILE_ERROR, "Cannot use [] for reading");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use [] for reading");
}
if (fetch->opcode == ZEND_SEPARATE) {
MAKE_NOP(fetch);
@@ -6325,7 +6434,7 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
if (value->EA & ZEND_PARSED_LIST_EXPR) {
if (!CG(list_llist).head) {
- zend_error(E_COMPILE_ERROR, "Cannot use empty list");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use empty list");
}
zend_do_list_end(&dummy, &value_node TSRMLS_CC);
zend_do_free(&dummy TSRMLS_CC);
@@ -6388,12 +6497,12 @@ void zend_do_declare_begin(TSRMLS_D) /* {{{ */
void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */
{
- if (!zend_binary_strcasecmp(var->u.constant.value.str.val, var->u.constant.value.str.len, "ticks", sizeof("ticks")-1)) {
+ if (!zend_binary_strcasecmp(Z_STRVAL(var->u.constant), Z_STRLEN(var->u.constant), "ticks", sizeof("ticks")-1)) {
convert_to_long(&val->u.constant);
CG(declarables).ticks = val->u.constant;
- } else if (!zend_binary_strcasecmp(var->u.constant.value.str.val, var->u.constant.value.str.len, "encoding", sizeof("encoding")-1)) {
+ } else if (!zend_binary_strcasecmp(Z_STRVAL(var->u.constant), Z_STRLEN(var->u.constant), "encoding", sizeof("encoding")-1)) {
if ((Z_TYPE(val->u.constant) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
- zend_error(E_COMPILE_ERROR, "Cannot use constants as encoding");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use constants as encoding");
}
/*
@@ -6412,7 +6521,7 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */
}
if (num > 0) {
- zend_error(E_COMPILE_ERROR, "Encoding declaration pragma must be the very first statement in the script");
+ zend_error_noreturn(E_COMPILE_ERROR, "Encoding declaration pragma must be the very first statement in the script");
}
}
@@ -6423,9 +6532,9 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */
CG(encoding_declared) = 1;
convert_to_string(&val->u.constant);
- new_encoding = zend_multibyte_fetch_encoding(val->u.constant.value.str.val TSRMLS_CC);
+ new_encoding = zend_multibyte_fetch_encoding(Z_STRVAL(val->u.constant) TSRMLS_CC);
if (!new_encoding) {
- zend_error(E_COMPILE_WARNING, "Unsupported encoding [%s]", val->u.constant.value.str.val);
+ zend_error(E_COMPILE_WARNING, "Unsupported encoding [%s]", Z_STRVAL(val->u.constant));
} else {
old_input_filter = LANG_SCNG(input_filter);
old_encoding = LANG_SCNG(script_encoding);
@@ -6442,7 +6551,7 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */
}
zval_dtor(&val->u.constant);
} else {
- zend_error(E_COMPILE_WARNING, "Unsupported declare '%s'", var->u.constant.value.str.val);
+ zend_error(E_COMPILE_WARNING, "Unsupported declare '%s'", Z_STRVAL(var->u.constant));
zval_dtor(&val->u.constant);
}
zval_dtor(&var->u.constant);
@@ -6682,10 +6791,9 @@ void zend_do_ticks(TSRMLS_D) /* {{{ */
}
/* }}} */
-zend_bool zend_is_auto_global_quick(const char *name, uint name_len, ulong hashval TSRMLS_DC) /* {{{ */
+zend_bool zend_is_auto_global_quick(const char *name, uint name_len, ulong hash TSRMLS_DC) /* {{{ */
{
zend_auto_global *auto_global;
- ulong hash = hashval ? hashval : zend_hash_func(name, name_len+1);
if (zend_hash_quick_find(CG(auto_globals), name, name_len+1, hash, (void **) &auto_global)==SUCCESS) {
if (auto_global->armed) {
@@ -6699,7 +6807,7 @@ zend_bool zend_is_auto_global_quick(const char *name, uint name_len, ulong hashv
zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC) /* {{{ */
{
- return zend_is_auto_global_quick(name, name_len, 0 TSRMLS_CC);
+ return zend_is_auto_global_quick(name, name_len, zend_hash_func(name, name_len+1) TSRMLS_CC);
}
/* }}} */
@@ -6909,15 +7017,15 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC
if (CG(current_namespace)) {
/* previous namespace declarations were unbracketed */
if (with_bracket) {
- zend_error(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
}
}
} else {
/* previous namespace declarations were bracketed */
if (!with_bracket) {
- zend_error(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
} else if (CG(current_namespace) || CG(in_namespace)) {
- zend_error(E_COMPILE_ERROR, "Namespace declarations cannot be nested");
+ zend_error_noreturn(E_COMPILE_ERROR, "Namespace declarations cannot be nested");
}
}
@@ -6930,7 +7038,7 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC
--num;
}
if (num > 0) {
- zend_error(E_COMPILE_ERROR, "Namespace declaration statement has to be the very first statement in the script");
+ zend_error_noreturn(E_COMPILE_ERROR, "Namespace declaration statement has to be the very first statement in the script");
}
}
@@ -6945,7 +7053,7 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC
!memcmp(lcname, "self", sizeof("self")-1)) ||
((Z_STRLEN(name->u.constant) == sizeof("parent")-1) &&
!memcmp(lcname, "parent", sizeof("parent")-1))) {
- zend_error(E_COMPILE_ERROR, "Cannot use '%s' as namespace name", Z_STRVAL(name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as namespace name", Z_STRVAL(name->u.constant));
}
efree(lcname);
@@ -6969,6 +7077,18 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC
CG(current_import) = NULL;
}
+ if (CG(current_import_function)) {
+ zend_hash_destroy(CG(current_import_function));
+ efree(CG(current_import_function));
+ CG(current_import_function) = NULL;
+ }
+
+ if (CG(current_import_const)) {
+ zend_hash_destroy(CG(current_import_const));
+ efree(CG(current_import_const));
+ CG(current_import_const) = NULL;
+ }
+
if (CG(doc_comment)) {
efree(CG(doc_comment));
CG(doc_comment) = NULL;
@@ -6989,8 +7109,8 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
zend_hash_init(CG(current_import), 0, NULL, ZVAL_PTR_DTOR, 0);
}
- ALLOC_ZVAL(ns);
- *ns = ns_name->u.constant;
+ MAKE_STD_ZVAL(ns);
+ ZVAL_ZVAL(ns, &ns_name->u.constant, 0, 0);
if (new_name) {
name = &new_name->u.constant;
} else {
@@ -7003,8 +7123,7 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
if (p) {
ZVAL_STRING(name, p+1, 1);
} else {
- *name = *ns;
- zval_copy_ctor(name);
+ ZVAL_ZVAL(name, ns, 1, 0);
warn = !is_global && !CG(current_namespace);
}
}
@@ -7015,7 +7134,7 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
!memcmp(lcname, "self", sizeof("self")-1)) ||
((Z_STRLEN_P(name) == sizeof("parent")-1) &&
!memcmp(lcname, "parent", sizeof("parent")-1))) {
- zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because '%s' is a special class name", Z_STRVAL_P(ns), Z_STRVAL_P(name), Z_STRVAL_P(name));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use %s as %s because '%s' is a special class name", Z_STRVAL_P(ns), Z_STRVAL_P(name), Z_STRVAL_P(name));
}
if (CG(current_namespace)) {
@@ -7030,7 +7149,7 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) ||
memcmp(tmp2, c_ns_name, Z_STRLEN_P(ns))) {
- zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
}
efree(tmp2);
}
@@ -7042,17 +7161,17 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
if (Z_STRLEN_P(ns) != Z_STRLEN_P(name) ||
memcmp(c_tmp, lcname, Z_STRLEN_P(ns))) {
- zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
}
efree(c_tmp);
}
if (zend_hash_add(CG(current_import), lcname, Z_STRLEN_P(name)+1, &ns, sizeof(zval*), NULL) != SUCCESS) {
- zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
}
if (warn) {
if (!strcmp(Z_STRVAL_P(name), "strict")) {
- zend_error(E_COMPILE_ERROR, "You seem to be trying to use a different language...");
+ zend_error_noreturn(E_COMPILE_ERROR, "You seem to be trying to use a different language...");
}
zend_error(E_WARNING, "The use statement with non-compound name '%s' has no effect", Z_STRVAL_P(name));
}
@@ -7061,16 +7180,124 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
}
/* }}} */
+void zend_do_use_non_class(znode *ns_name, znode *new_name, int is_global, int is_function, zend_bool case_sensitive, HashTable *current_import_sub, HashTable *lookup_table TSRMLS_DC) /* {{{ */
+{
+ char *lookup_name;
+ zval *name, *ns, tmp;
+ zend_bool warn = 0;
+
+ MAKE_STD_ZVAL(ns);
+ ZVAL_ZVAL(ns, &ns_name->u.constant, 0, 0);
+ if (new_name) {
+ name = &new_name->u.constant;
+ } else {
+ const char *p;
+
+ /* The form "use A\B" is eqivalent to "use A\B as B".
+ So we extract the last part of compound name to use as a new_name */
+ name = &tmp;
+ p = zend_memrchr(Z_STRVAL_P(ns), '\\', Z_STRLEN_P(ns));
+ if (p) {
+ ZVAL_STRING(name, p+1, 1);
+ } else {
+ ZVAL_ZVAL(name, ns, 1, 0);
+ warn = !is_global && !CG(current_namespace);
+ }
+ }
+
+ if (case_sensitive) {
+ lookup_name = estrndup(Z_STRVAL_P(name), Z_STRLEN_P(name));
+ } else {
+ lookup_name = zend_str_tolower_dup(Z_STRVAL_P(name), Z_STRLEN_P(name));
+ }
+
+ if (CG(current_namespace)) {
+ /* Prefix import name with current namespace name to avoid conflicts with functions/consts */
+ char *c_ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) + 1);
+
+ zend_str_tolower_copy(c_ns_name, Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace)));
+ c_ns_name[Z_STRLEN_P(CG(current_namespace))] = '\\';
+ memcpy(c_ns_name+Z_STRLEN_P(CG(current_namespace))+1, lookup_name, Z_STRLEN_P(name)+1);
+ if (zend_hash_exists(lookup_table, c_ns_name, Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name)+1)) {
+ char *tmp2 = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns));
+
+ if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) ||
+ memcmp(tmp2, c_ns_name, Z_STRLEN_P(ns))) {
+ zend_error(E_COMPILE_ERROR, "Cannot use %s %s as %s because the name is already in use", is_function ? "function" : "const", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ }
+ efree(tmp2);
+ }
+ efree(c_ns_name);
+ } else if (is_function) {
+ zend_function *function;
+
+ if (zend_hash_find(lookup_table, lookup_name, Z_STRLEN_P(name)+1, (void **) &function) == SUCCESS && function->type == ZEND_USER_FUNCTION && strcmp(function->op_array.filename, CG(compiled_filename)) == 0) {
+ char *c_tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns));
+
+ if (Z_STRLEN_P(ns) != Z_STRLEN_P(name) ||
+ memcmp(c_tmp, lookup_name, Z_STRLEN_P(ns))) {
+ zend_error(E_COMPILE_ERROR, "Cannot use function %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ }
+ efree(c_tmp);
+ }
+ } else {
+ const char *filename;
+
+ if (zend_hash_find(lookup_table, lookup_name, Z_STRLEN_P(name)+1, (void **) &filename) == SUCCESS && strcmp(filename, CG(compiled_filename)) == 0) {
+ char *c_tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns));
+
+ if (Z_STRLEN_P(ns) != Z_STRLEN_P(name) ||
+ memcmp(c_tmp, lookup_name, Z_STRLEN_P(ns))) {
+ zend_error(E_COMPILE_ERROR, "Cannot use const %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ }
+ efree(c_tmp);
+ }
+ }
+
+ if (zend_hash_add(current_import_sub, lookup_name, Z_STRLEN_P(name)+1, &ns, sizeof(zval*), NULL) != SUCCESS) {
+ zend_error(E_COMPILE_ERROR, "Cannot use %s %s as %s because the name is already in use", is_function ? "function" : "const", Z_STRVAL_P(ns), Z_STRVAL_P(name));
+ }
+ if (warn) {
+ zend_error(E_WARNING, "The use %s statement with non-compound name '%s' has no effect", is_function ? "function" : "const", Z_STRVAL_P(name));
+ }
+ efree(lookup_name);
+ zval_dtor(name);
+}
+/* }}} */
+
+void zend_do_use_function(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{{ */
+{
+ if (!CG(current_import_function)) {
+ CG(current_import_function) = emalloc(sizeof(HashTable));
+ zend_hash_init(CG(current_import_function), 0, NULL, ZVAL_PTR_DTOR, 0);
+ }
+
+ zend_do_use_non_class(ns_name, new_name, is_global, 1, 0, CG(current_import_function), CG(function_table) TSRMLS_CC);
+}
+/* }}} */
+
+void zend_do_use_const(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{{ */
+{
+ if (!CG(current_import_const)) {
+ CG(current_import_const) = emalloc(sizeof(HashTable));
+ zend_hash_init(CG(current_import_const), 0, NULL, ZVAL_PTR_DTOR, 0);
+ }
+
+ zend_do_use_non_class(ns_name, new_name, is_global, 0, 1, CG(current_import_const), &CG(const_filenames) TSRMLS_CC);
+}
+/* }}} */
+
void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC) /* {{{ */
{
zend_op *opline;
+ zval **ns_name;
if(Z_TYPE(value->u.constant) == IS_CONSTANT_ARRAY) {
- zend_error(E_COMPILE_ERROR, "Arrays are not allowed as constants");
+ zend_error_noreturn(E_COMPILE_ERROR, "Arrays are not allowed as constants");
}
if (zend_get_ct_const(&name->u.constant, 0 TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Cannot redeclare constant '%s'", Z_STRVAL(name->u.constant));
+ zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare constant '%s'", Z_STRVAL(name->u.constant));
}
if (CG(current_namespace)) {
@@ -7084,18 +7311,33 @@ void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC) /* {{{ */
*name = tmp;
}
+ /* Constant name must not conflict with import names */
+ if (CG(current_import_const) &&
+ zend_hash_find(CG(current_import_const), Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1, (void**)&ns_name) == SUCCESS) {
+
+ char *tmp = estrndup(Z_STRVAL_PP(ns_name), Z_STRLEN_PP(ns_name));
+
+ if (Z_STRLEN_PP(ns_name) != Z_STRLEN(name->u.constant) ||
+ memcmp(tmp, Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant))) {
+ zend_error(E_COMPILE_ERROR, "Cannot declare const %s because the name is already in use", Z_STRVAL(name->u.constant));
+ }
+ efree(tmp);
+ }
+
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_DECLARE_CONST;
SET_UNUSED(opline->result);
SET_NODE(opline->op1, name);
SET_NODE(opline->op2, value);
+
+ zend_hash_add(&CG(const_filenames), Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1, CG(compiled_filename), strlen(CG(compiled_filename))+1, NULL);
}
/* }}} */
void zend_verify_namespace(TSRMLS_D) /* {{{ */
{
if (CG(has_bracketed_namespaces) && !CG(in_namespace)) {
- zend_error(E_COMPILE_ERROR, "No code may exist outside of namespace {}");
+ zend_error_noreturn(E_COMPILE_ERROR, "No code may exist outside of namespace {}");
}
}
/* }}} */
@@ -7113,6 +7355,16 @@ void zend_do_end_namespace(TSRMLS_D) /* {{{ */
efree(CG(current_import));
CG(current_import) = NULL;
}
+ if (CG(current_import_function)) {
+ zend_hash_destroy(CG(current_import_function));
+ efree(CG(current_import_function));
+ CG(current_import_function) = NULL;
+ }
+ if (CG(current_import_const)) {
+ zend_hash_destroy(CG(current_import_const));
+ efree(CG(current_import_const));
+ CG(current_import_const) = NULL;
+ }
}
/* }}} */
@@ -7123,6 +7375,21 @@ void zend_do_end_compilation(TSRMLS_D) /* {{{ */
}
/* }}} */
+void zend_do_constant_expression(znode *result, zend_ast *ast TSRMLS_DC) /* {{{ */
+{
+ if (ast->kind == ZEND_CONST) {
+ result->u.constant = *ast->u.val;
+ efree(ast);
+ } else if (zend_ast_is_ct_constant(ast)) {
+ zend_ast_evaluate(&result->u.constant, ast, NULL TSRMLS_CC);
+ zend_ast_destroy(ast);
+ } else {
+ Z_TYPE(result->u.constant) = IS_CONSTANT_AST;
+ Z_AST(result->u.constant) = ast;
+ }
+}
+/* }}} */
+
/* {{{ zend_dirname
Returns directory name component of path */
ZEND_API size_t zend_dirname(char *path, size_t len)
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index 9c55b5ebe..f884df194 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -23,6 +23,7 @@
#define ZEND_COMPILE_H
#include "zend.h"
+#include "zend_ast.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
@@ -74,7 +75,7 @@ typedef struct _zend_literal {
#define Z_HASH_P(zv) \
(((zend_literal*)(zv))->hash_value)
-typedef union _znode_op {
+typedef union _znode_op {
zend_uint constant;
zend_uint var;
zend_uint num;
@@ -86,12 +87,13 @@ typedef union _znode_op {
void *ptr; /* Used for passing pointers from the compile to execution phase, currently used for traits */
} znode_op;
-typedef struct _znode { /* used only during compilation */
+typedef struct _znode { /* used only during compilation */
int op_type;
union {
znode_op op;
zval constant; /* replaced by literal/zv */
zend_op_array *op_array;
+ zend_ast *ast;
} u;
zend_uint EA; /* extended attributes */
} znode;
@@ -207,12 +209,14 @@ typedef struct _zend_try_catch_element {
/* disable inline caching */
#define ZEND_ACC_NEVER_CACHE 0x400000
-#define ZEND_ACC_PASS_REST_BY_REFERENCE 0x1000000
-#define ZEND_ACC_PASS_REST_PREFER_REF 0x2000000
+#define ZEND_ACC_VARIADIC 0x1000000
#define ZEND_ACC_RETURN_REFERENCE 0x4000000
#define ZEND_ACC_DONE_PASS_TWO 0x8000000
+/* function has arguments with type hinting */
+#define ZEND_ACC_HAS_TYPE_HINTS 0x10000000
+
char *zend_visibility_string(zend_uint fn_flags);
@@ -234,12 +238,13 @@ typedef struct _zend_arg_info {
const char *class_name;
zend_uint class_name_len;
zend_uchar type_hint;
+ zend_uchar pass_by_reference;
zend_bool allow_null;
- zend_bool pass_by_reference;
+ zend_bool is_variadic;
} zend_arg_info;
/* the following structure repeats the layout of zend_arg_info,
- * but its fields have different meaning. It's used as the first element of
+ * but its fields have different meaning. It's used as the first element of
* arg_info array to define properties of internal functions.
*/
typedef struct _zend_internal_function_info {
@@ -249,7 +254,8 @@ typedef struct _zend_internal_function_info {
zend_uint required_num_args;
zend_uchar _type_hint;
zend_bool return_reference;
- zend_bool pass_rest_by_reference;
+ zend_bool _allow_null;
+ zend_bool _is_variadic;
} zend_internal_function_info;
typedef struct _zend_compiled_variable {
@@ -261,7 +267,7 @@ typedef struct _zend_compiled_variable {
struct _zend_op_array {
/* Common elements */
zend_uchar type;
- const char *function_name;
+ const char *function_name;
zend_class_entry *scope;
zend_uint fn_flags;
union _zend_function *prototype;
@@ -377,6 +383,7 @@ typedef struct _call_slot {
zend_function *fbc;
zval *object;
zend_class_entry *called_scope;
+ zend_uint num_additional_args;
zend_bool is_ctor_call;
zend_bool is_ctor_result_used;
} call_slot;
@@ -395,6 +402,7 @@ struct _zend_execute_data {
zend_class_entry *current_called_scope;
zval *current_this;
struct _zend_op *fast_ret; /* used by FAST_CALL/FAST_RET (finally keyword) */
+ zval *delayed_exception;
call_slot *call_slots;
call_slot *call;
};
@@ -437,8 +445,10 @@ ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D);
-void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC);
-void zend_resolve_class_name(znode *class_name, ulong fetch_type, int check_ns_name TSRMLS_DC);
+void zend_resolve_non_class_name(znode *element_name, zend_bool *check_namespace, zend_bool case_sensitive, HashTable *current_import_sub TSRMLS_DC);
+void zend_resolve_function_name(znode *element_name, zend_bool *check_namespace TSRMLS_DC);
+void zend_resolve_const_name(znode *element_name, zend_bool *check_namespace TSRMLS_DC);
+void zend_resolve_class_name(znode *class_name TSRMLS_DC);
ZEND_API const char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len);
#ifdef ZTS
@@ -500,7 +510,7 @@ void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRM
int zend_do_verify_access_types(const znode *current_access_type, const znode *new_modifier);
void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC);
void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC);
-void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, const znode *initialization, znode *class_type, zend_bool pass_by_reference TSRMLS_DC);
+void zend_do_receive_param(zend_uchar op, znode *varname, const znode *initialization, znode *class_type, zend_bool pass_by_reference, zend_bool is_variadic TSRMLS_DC);
int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace TSRMLS_DC);
void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC);
void zend_do_clone(znode *result, const znode *expr TSRMLS_DC);
@@ -545,6 +555,7 @@ void zend_do_early_binding(TSRMLS_D);
ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS_DC);
void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
+void zend_do_unpack_params(znode *params, int offset TSRMLS_DC);
void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
@@ -636,7 +647,11 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_brackets TSRMLS_D
void zend_do_end_namespace(TSRMLS_D);
void zend_verify_namespace(TSRMLS_D);
void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC);
+void zend_do_use_non_class(znode *ns_name, znode *new_name, int is_global, int is_function, zend_bool case_sensitive, HashTable *current_import_sub, HashTable *lookup_table TSRMLS_DC);
+void zend_do_use_function(znode *name, znode *new_name, int is_global TSRMLS_DC);
+void zend_do_use_const(znode *name, znode *new_name, int is_global TSRMLS_DC);
void zend_do_end_compilation(TSRMLS_D);
+void zend_do_constant_expression(znode *result, zend_ast *ast TSRMLS_DC);
void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static TSRMLS_DC);
@@ -674,7 +689,7 @@ void zend_class_add_ref(zend_class_entry **ce);
ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, const char *src1, int src1_length, const char *src2, int src2_length, int internal);
#define zend_unmangle_property_name(mangled_property, mangled_property_len, class_name, prop_name) \
- zend_unmangle_property_name_ex(mangled_property, mangled_property_len, class_name, prop_name, NULL)
+ zend_unmangle_property_name_ex(mangled_property, mangled_property_len, class_name, prop_name, NULL)
ZEND_API int zend_unmangle_property_name_ex(const char *mangled_property, int mangled_property_len, const char **class_name, const char **prop_name, int *prop_len);
#define ZEND_FUNCTION_DTOR (void (*)(void *)) zend_function_dtor
@@ -726,8 +741,8 @@ int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
#define ZEND_FETCH_CLASS_DEFAULT 0
#define ZEND_FETCH_CLASS_SELF 1
#define ZEND_FETCH_CLASS_PARENT 2
-#define ZEND_FETCH_CLASS_MAIN 3
-#define ZEND_FETCH_CLASS_GLOBAL 4
+#define ZEND_FETCH_CLASS_MAIN 3 /* unused */
+#define ZEND_FETCH_CLASS_GLOBAL 4 /* unused */
#define ZEND_FETCH_CLASS_AUTO 5
#define ZEND_FETCH_CLASS_INTERFACE 6
#define ZEND_FETCH_CLASS_STATIC 7
@@ -817,21 +832,21 @@ int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
#define ZEND_SEND_BY_REF 1
#define ZEND_SEND_PREFER_REF 2
-#define CHECK_ARG_SEND_TYPE(zf, arg_num, m1, m2) \
- ((zf) && \
- ((((zend_function*)(zf))->common.arg_info && \
- arg_num <= ((zend_function*)(zf))->common.num_args) ? \
- (((zend_function *)(zf))->common.arg_info[arg_num-1].pass_by_reference & (m1)) : \
- (((zend_function *)(zf))->common.fn_flags & (m2))))
+#define CHECK_ARG_SEND_TYPE(zf, arg_num, m) \
+ ((zf)->common.arg_info && \
+ (arg_num <= (zf)->common.num_args \
+ ? ((zf)->common.arg_info[arg_num-1].pass_by_reference & (m)) \
+ : ((zf)->common.fn_flags & ZEND_ACC_VARIADIC) \
+ ? ((zf)->common.arg_info[(zf)->common.num_args-1].pass_by_reference & (m)) : 0))
#define ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \
- CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF, ZEND_ACC_PASS_REST_BY_REFERENCE)
+ CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF)
#define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \
- CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF, ZEND_ACC_PASS_REST_BY_REFERENCE|ZEND_ACC_PASS_REST_PREFER_REF)
+ CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF)
#define ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \
- CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_PREFER_REF, ZEND_ACC_PASS_REST_PREFER_REF)
+ CHECK_ARG_SEND_TYPE(zf, arg_num, ZEND_SEND_PREFER_REF)
#define ZEND_RETURN_VAL 0
#define ZEND_RETURN_REF 1
@@ -839,6 +854,7 @@ int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
#define ZEND_RETURNS_FUNCTION 1<<0
#define ZEND_RETURNS_NEW 1<<1
+#define ZEND_RETURNS_VALUE 1<<2
#define ZEND_FAST_RET_TO_CATCH 1
#define ZEND_FAST_RET_TO_FINALLY 2
diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h
index 04f80bfe7..bbb2da6e7 100644
--- a/Zend/zend_config.nw.h
+++ b/Zend/zend_config.nw.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_config.w32.h b/Zend/zend_config.w32.h
index 73bd0525b..6ea67602b 100644
--- a/Zend/zend_config.w32.h
+++ b/Zend/zend_config.w32.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -62,10 +62,15 @@ typedef unsigned int uint;
/* This will cause the compilation process to be MUCH longer, but will generate
* a much quicker PHP binary
*/
-#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
+/* _ALLOW_KEYWORD_MACROS is only relevant for C++ */
+# if (_MSC_VER >= 1700) && !defined(_ALLOW_KEYWORD_MACROS)
+# define _ALLOW_KEYWORD_MACROS
+# endif
+# undef inline
# define inline __forceinline
-#else
+#elif !defined(ZEND_WIN32_KEEP_INLINE)
+# undef inline
# define inline
#endif
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index 21580d3d5..03762b50d 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -25,7 +25,7 @@
#include "zend_variables.h"
#include "zend_operators.h"
#include "zend_globals.h"
-
+#include "zend_API.h"
void free_zend_constant(zend_constant *c)
{
@@ -38,9 +38,7 @@ void free_zend_constant(zend_constant *c)
void copy_zend_constant(zend_constant *c)
{
- if (!IS_INTERNED(c->name)) {
- c->name = zend_strndup(c->name, c->name_len - 1);
- }
+ c->name = str_strndup(c->name, c->name_len - 1);
if (!(c->flags & CONST_PERSISTENT)) {
zval_copy_ctor(&c->value);
}
@@ -119,42 +117,12 @@ void zend_register_standard_constants(TSRMLS_D)
REGISTER_MAIN_LONG_CONSTANT("DEBUG_BACKTRACE_IGNORE_ARGS", DEBUG_BACKTRACE_IGNORE_ARGS, CONST_PERSISTENT | CONST_CS);
/* true/false constants */
{
- zend_constant c;
-
- c.flags = CONST_PERSISTENT | CONST_CT_SUBST;
- c.module_number = 0;
-
- c.name = zend_strndup(ZEND_STRL("TRUE"));
- c.name_len = sizeof("TRUE");
- c.value.value.lval = 1;
- c.value.type = IS_BOOL;
- zend_register_constant(&c TSRMLS_CC);
-
- c.name = zend_strndup(ZEND_STRL("FALSE"));
- c.name_len = sizeof("FALSE");
- c.value.value.lval = 0;
- c.value.type = IS_BOOL;
- zend_register_constant(&c TSRMLS_CC);
-
- c.name = zend_strndup(ZEND_STRL("NULL"));
- c.name_len = sizeof("NULL");
- c.value.type = IS_NULL;
- zend_register_constant(&c TSRMLS_CC);
-
- c.flags = CONST_PERSISTENT | CONST_CS;
-
- c.name = zend_strndup(ZEND_STRL("ZEND_THREAD_SAFE"));
- c.name_len = sizeof("ZEND_THREAD_SAFE");
- c.value.value.lval = ZTS_V;
- c.value.type = IS_BOOL;
- zend_register_constant(&c TSRMLS_CC);
-
- c.name = zend_strndup(ZEND_STRL("ZEND_DEBUG_BUILD"));
- c.name_len = sizeof("ZEND_DEBUG_BUILD");
- c.value.value.lval = ZEND_DEBUG;
- c.value.type = IS_BOOL;
- zend_register_constant(&c TSRMLS_CC);
+ REGISTER_MAIN_BOOL_CONSTANT("TRUE", 1, CONST_PERSISTENT | CONST_CT_SUBST);
+ REGISTER_MAIN_BOOL_CONSTANT("FALSE", 0, CONST_PERSISTENT | CONST_CT_SUBST);
+ REGISTER_MAIN_BOOL_CONSTANT("ZEND_THREAD_SAFE", ZTS_V, CONST_PERSISTENT | CONST_CS);
+ REGISTER_MAIN_BOOL_CONSTANT("ZEND_DEBUG_BUILD", ZEND_DEBUG, CONST_PERSISTENT | CONST_CS);
}
+ REGISTER_MAIN_NULL_CONSTANT("NULL", CONST_PERSISTENT | CONST_CT_SUBST);
}
@@ -175,13 +143,35 @@ void clean_non_persistent_constants(TSRMLS_D)
}
}
+ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC)
+{
+ zend_constant c;
+
+ ZVAL_NULL(&c.value);
+ c.flags = flags;
+ c.name = zend_strndup(name, name_len-1);
+ c.name_len = name_len;
+ c.module_number = module_number;
+ zend_register_constant(&c TSRMLS_CC);
+}
+
+ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC)
+{
+ zend_constant c;
+
+ ZVAL_BOOL(&c.value, bval);
+ c.flags = flags;
+ c.name = zend_strndup(name, name_len-1);
+ c.name_len = name_len;
+ c.module_number = module_number;
+ zend_register_constant(&c TSRMLS_CC);
+}
ZEND_API void zend_register_long_constant(const char *name, uint name_len, long lval, int flags, int module_number TSRMLS_DC)
{
zend_constant c;
- c.value.type = IS_LONG;
- c.value.value.lval = lval;
+ ZVAL_LONG(&c.value, lval);
c.flags = flags;
c.name = zend_strndup(name, name_len-1);
c.name_len = name_len;
@@ -194,8 +184,7 @@ ZEND_API void zend_register_double_constant(const char *name, uint name_len, dou
{
zend_constant c;
- c.value.type = IS_DOUBLE;
- c.value.value.dval = dval;
+ ZVAL_DOUBLE(&c.value, dval);
c.flags = flags;
c.name = zend_strndup(name, name_len-1);
c.name_len = name_len;
@@ -208,9 +197,7 @@ ZEND_API void zend_register_stringl_constant(const char *name, uint name_len, ch
{
zend_constant c;
- c.value.type = IS_STRING;
- c.value.value.str.val = strval;
- c.value.value.str.len = strlen;
+ ZVAL_STRINGL(&c.value, strval, strlen, 0);
c.flags = flags;
c.name = zend_strndup(name, name_len-1);
c.name_len = name_len;
@@ -485,7 +472,7 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
char *lowercase_name = NULL;
char *name;
int ret = SUCCESS;
- ulong chash = 0;
+ ulong chash;
#if 0
printf("Registering constant for module %d\n", c->module_number);
@@ -497,23 +484,18 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
zend_str_tolower(lowercase_name, c->name_len-1);
lowercase_name = (char*)zend_new_interned_string(lowercase_name, c->name_len, 1 TSRMLS_CC);
name = lowercase_name;
- chash = IS_INTERNED(lowercase_name) ? INTERNED_HASH(lowercase_name) : 0;
} else {
char *slash = strrchr(c->name, '\\');
- if(slash) {
+ if (slash) {
lowercase_name = estrndup(c->name, c->name_len-1);
zend_str_tolower(lowercase_name, slash-c->name);
lowercase_name = (char*)zend_new_interned_string(lowercase_name, c->name_len, 1 TSRMLS_CC);
name = lowercase_name;
-
- chash = IS_INTERNED(lowercase_name) ? INTERNED_HASH(lowercase_name) : 0;
} else {
name = c->name;
}
}
- if (chash == 0) {
- chash = zend_hash_func(name, c->name_len);
- }
+ chash = str_hash(name, c->name_len-1);
/* Check if the user is trying to define the internal pseudo constant name __COMPILER_HALT_OFFSET__ */
if ((c->name_len == sizeof("__COMPILER_HALT_OFFSET__")
@@ -532,8 +514,8 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
}
ret = FAILURE;
}
- if (lowercase_name && !IS_INTERNED(lowercase_name)) {
- efree(lowercase_name);
+ if (lowercase_name) {
+ str_efree(lowercase_name);
}
return ret;
}
diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h
index c7261946c..a40db3a8a 100644
--- a/Zend/zend_constants.h
+++ b/Zend/zend_constants.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -38,16 +38,22 @@ typedef struct _zend_constant {
int module_number;
} zend_constant;
+#define REGISTER_NULL_CONSTANT(name, flags) zend_register_null_constant((name), sizeof(name), (flags), module_number TSRMLS_CC)
+#define REGISTER_BOOL_CONSTANT(name, bval, flags) zend_register_bool_constant((name), sizeof(name), (bval), (flags), module_number TSRMLS_CC)
#define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name), (lval), (flags), module_number TSRMLS_CC)
#define REGISTER_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name), (dval), (flags), module_number TSRMLS_CC)
#define REGISTER_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name), (str), (flags), module_number TSRMLS_CC)
#define REGISTER_STRINGL_CONSTANT(name, str, len, flags) zend_register_stringl_constant((name), sizeof(name), (str), (len), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_NULL_CONSTANT(ns, name, flags) zend_register_null_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_BOOL_CONSTANT(ns, name, bval, flags) zend_register_bool_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (bval), (flags), module_number TSRMLS_CC)
#define REGISTER_NS_LONG_CONSTANT(ns, name, lval, flags) zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (lval), (flags), module_number TSRMLS_CC)
#define REGISTER_NS_DOUBLE_CONSTANT(ns, name, dval, flags) zend_register_double_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (dval), (flags), module_number TSRMLS_CC)
#define REGISTER_NS_STRING_CONSTANT(ns, name, str, flags) zend_register_string_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (str), (flags), module_number TSRMLS_CC)
#define REGISTER_NS_STRINGL_CONSTANT(ns, name, str, len, flags) zend_register_stringl_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (str), (len), (flags), module_number TSRMLS_CC)
+#define REGISTER_MAIN_NULL_CONSTANT(name, flags) zend_register_null_constant((name), sizeof(name), (flags), 0 TSRMLS_CC)
+#define REGISTER_MAIN_BOOL_CONSTANT(name, bval, flags) zend_register_bool_constant((name), sizeof(name), (bval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name), (lval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name), (dval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name), (str), (flags), 0 TSRMLS_CC)
@@ -62,6 +68,8 @@ void zend_register_standard_constants(TSRMLS_D);
void clean_non_persistent_constants(TSRMLS_D);
ZEND_API int zend_get_constant(const char *name, uint name_len, zval *result TSRMLS_DC);
ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, zend_class_entry *scope, ulong flags TSRMLS_DC);
+ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC);
+ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_long_constant(const char *name, uint name_len, long lval, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_double_constant(const char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_string_constant(const char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC);
diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c
index 46b00eac4..40b28f7a2 100644
--- a/Zend/zend_default_classes.c
+++ b/Zend/zend_default_classes.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_dynamic_array.c b/Zend/zend_dynamic_array.c
index 543479c43..db81b00a7 100644
--- a/Zend/zend_dynamic_array.c
+++ b/Zend/zend_dynamic_array.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_dynamic_array.h b/Zend/zend_dynamic_array.h
index 2c96f8543..e69eb1876 100644
--- a/Zend/zend_dynamic_array.h
+++ b/Zend/zend_dynamic_array.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_errors.h b/Zend/zend_errors.h
index a2cdc20a6..941903d16 100644
--- a/Zend/zend_errors.h
+++ b/Zend/zend_errors.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_exceptions.c b/Zend/zend_exceptions.c
index c7f157c4d..e973a67a9 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_exceptions.h b/Zend/zend_exceptions.h
index 81c8a1f21..2ce9c1295 100644
--- a/Zend/zend_exceptions.h
+++ b/Zend/zend_exceptions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_execute.c b/Zend/zend_execute.c
index f1ec47f73..31caceecb 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -40,7 +40,7 @@
#include "zend_dtrace.h"
/* Virtual current working directory support */
-#include "tsrm_virtual_cwd.h"
+#include "zend_virtual_cwd.h"
#define _CONST_CODE 0
#define _TMP_CODE 1
@@ -79,7 +79,6 @@ static zend_always_inline void zend_pzval_unlock_func(zval *z, zend_free_op *sho
if (unref && Z_ISREF_P(z) && Z_REFCOUNT_P(z) == 1) {
Z_UNSET_ISREF_P(z);
}
- GC_ZVAL_CHECK_POSSIBLE_ROOT(z);
}
}
@@ -94,7 +93,8 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
}
#undef zval_ptr_dtor
-#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC)
+#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC)
+#define zval_ptr_dtor_nogc(pzv) i_zval_ptr_dtor_nogc(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC)
#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f, 1 TSRMLS_CC)
#define PZVAL_UNLOCK_EX(z, f, u) zend_pzval_unlock_func(z, f, u TSRMLS_CC)
@@ -102,16 +102,14 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
#define PZVAL_LOCK(z) Z_ADDREF_P((z))
#define SELECTIVE_PZVAL_LOCK(pzv, opline) if (RETURN_VALUE_USED(opline)) { PZVAL_LOCK(pzv); }
-#define EXTRACT_ZVAL_PTR(t) do { \
- temp_variable *__t = (t); \
- if (__t->var.ptr_ptr) { \
- __t->var.ptr = *__t->var.ptr_ptr; \
- __t->var.ptr_ptr = &__t->var.ptr; \
- if (!PZVAL_IS_REF(__t->var.ptr) && \
- Z_REFCOUNT_P(__t->var.ptr) > 2) { \
- SEPARATE_ZVAL(__t->var.ptr_ptr); \
- } \
- } \
+#define EXTRACT_ZVAL_PTR(t) do { \
+ temp_variable *__t = (t); \
+ __t->var.ptr = *__t->var.ptr_ptr; \
+ __t->var.ptr_ptr = &__t->var.ptr; \
+ if (!PZVAL_IS_REF(__t->var.ptr) && \
+ Z_REFCOUNT_P(__t->var.ptr) > 2) { \
+ SEPARATE_ZVAL(__t->var.ptr_ptr); \
+ } \
} while (0)
#define AI_SET_PTR(t, val) do { \
@@ -125,18 +123,18 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
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); \
+ zval_ptr_dtor_nogc(&should_free.var); \
} \
}
#define FREE_OP_IF_VAR(should_free) \
if (should_free.var != NULL && (((zend_uintptr_t)should_free.var & 1L) == 0)) { \
- zval_ptr_dtor(&should_free.var); \
+ zval_ptr_dtor_nogc(&should_free.var); \
}
#define FREE_OP_VAR_PTR(should_free) \
if (should_free.var) { \
- zval_ptr_dtor(&should_free.var); \
+ zval_ptr_dtor_nogc(&should_free.var); \
}
#define TMP_FREE(z) (zval*)(((zend_uintptr_t)(z)) | 1L)
@@ -183,8 +181,7 @@ static zend_always_inline zval *_get_zval_ptr_var(zend_uint var, const zend_exec
{
zval *ptr = EX_T(var).var.ptr;
- PZVAL_UNLOCK(ptr, should_free);
- return ptr;
+ return should_free->var = ptr;
}
static zend_never_inline zval **_get_zval_cv_lookup(zval ***ptr, zend_uint var, int type TSRMLS_DC)
@@ -386,6 +383,19 @@ static zend_always_inline zval **_get_zval_ptr_ptr_var(zend_uint var, const zend
return ptr_ptr;
}
+static zend_always_inline zval **_get_zval_ptr_ptr_var_fast(zend_uint var, const zend_execute_data *execute_data, zend_free_op *should_free TSRMLS_DC)
+{
+ zval** ptr_ptr = EX_T(var).var.ptr_ptr;
+
+ if (EXPECTED(ptr_ptr != NULL)) {
+ should_free->var = *ptr_ptr;
+ } else {
+ /* string offset */
+ should_free->var = EX_T(var).str_offset.str;
+ }
+ return ptr_ptr;
+}
+
static zend_always_inline zval **_get_zval_ptr_ptr_cv(zend_uint var, int type TSRMLS_DC)
{
zval ***ptr = EX_CV_NUM(EG(current_execute_data), var);
@@ -604,12 +614,17 @@ static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zva
char *need_msg;
zend_class_entry *ce;
- if (!zf->common.arg_info
- || arg_num>zf->common.num_args) {
+ if (!zf->common.arg_info) {
return 1;
}
- cur_arg_info = &zf->common.arg_info[arg_num-1];
+ if (arg_num <= zf->common.num_args) {
+ cur_arg_info = &zf->common.arg_info[arg_num-1];
+ } else if (zf->common.fn_flags & ZEND_ACC_VARIADIC) {
+ cur_arg_info = &zf->common.arg_info[zf->common.num_args-1];
+ } else {
+ return 1;
+ }
if (cur_arg_info->class_name) {
const char *class_name;
@@ -755,32 +770,21 @@ static inline void zend_assign_to_object(zval **retval, zval **object_ptr, zval
static inline int zend_assign_to_string_offset(const temp_variable *T, const zval *value, int value_type TSRMLS_DC)
{
- if (Z_TYPE_P(T->str_offset.str) == IS_STRING) {
-
- if (((int)T->str_offset.offset < 0)) {
- zend_error(E_WARNING, "Illegal string offset: %d", T->str_offset.offset);
+ zval *str = T->str_offset.str;
+ zend_uint offset = T->str_offset.offset;
+ if (Z_TYPE_P(str) == IS_STRING) {
+ if ((int)offset < 0) {
+ zend_error(E_WARNING, "Illegal string offset: %d", offset);
return 0;
}
- if (T->str_offset.offset >= Z_STRLEN_P(T->str_offset.str)) {
- if (IS_INTERNED(Z_STRVAL_P(T->str_offset.str))) {
- char *tmp = (char *) emalloc(T->str_offset.offset+1+1);
-
- memcpy(tmp, Z_STRVAL_P(T->str_offset.str), Z_STRLEN_P(T->str_offset.str)+1);
- Z_STRVAL_P(T->str_offset.str) = tmp;
- } else {
- Z_STRVAL_P(T->str_offset.str) = (char *) erealloc(Z_STRVAL_P(T->str_offset.str), T->str_offset.offset+1+1);
- }
- memset(Z_STRVAL_P(T->str_offset.str) + Z_STRLEN_P(T->str_offset.str),
- ' ',
- T->str_offset.offset - Z_STRLEN_P(T->str_offset.str));
- Z_STRVAL_P(T->str_offset.str)[T->str_offset.offset+1] = 0;
- Z_STRLEN_P(T->str_offset.str) = T->str_offset.offset+1;
- } else if (IS_INTERNED(Z_STRVAL_P(T->str_offset.str))) {
- char *tmp = (char *) emalloc(Z_STRLEN_P(T->str_offset.str) + 1);
-
- memcpy(tmp, Z_STRVAL_P(T->str_offset.str), Z_STRLEN_P(T->str_offset.str) + 1);
- Z_STRVAL_P(T->str_offset.str) = tmp;
+ if (offset >= Z_STRLEN_P(str)) {
+ Z_STRVAL_P(str) = str_erealloc(Z_STRVAL_P(str), offset+1+1);
+ memset(Z_STRVAL_P(str) + Z_STRLEN_P(str), ' ', offset - Z_STRLEN_P(str));
+ Z_STRVAL_P(str)[offset+1] = 0;
+ Z_STRLEN_P(str) = offset+1;
+ } else if (IS_INTERNED(Z_STRVAL_P(str))) {
+ Z_STRVAL_P(str) = estrndup(Z_STRVAL_P(str), Z_STRLEN_P(str));
}
if (Z_TYPE_P(value) != IS_STRING) {
@@ -791,15 +795,15 @@ static inline int zend_assign_to_string_offset(const temp_variable *T, const zva
zval_copy_ctor(&tmp);
}
convert_to_string(&tmp);
- Z_STRVAL_P(T->str_offset.str)[T->str_offset.offset] = Z_STRVAL(tmp)[0];
- STR_FREE(Z_STRVAL(tmp));
+ Z_STRVAL_P(str)[offset] = Z_STRVAL(tmp)[0];
+ str_efree(Z_STRVAL(tmp));
} else {
- Z_STRVAL_P(T->str_offset.str)[T->str_offset.offset] = Z_STRVAL_P(value)[0];
+ Z_STRVAL_P(str)[offset] = Z_STRVAL_P(value)[0];
if (value_type == IS_TMP_VAR) {
/* we can safely free final_value here
* because separation is done only
* in case value_type == IS_VAR */
- STR_FREE(Z_STRVAL_P(value));
+ str_efree(Z_STRVAL_P(value));
}
}
/*
@@ -909,7 +913,7 @@ static inline zval* zend_assign_to_variable(zval **variable_ptr_ptr, zval *value
} else { /* we need to split */
Z_DELREF_P(variable_ptr);
GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr);
- if (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0) {
+ if (PZVAL_IS_REF(value)) {
ALLOC_ZVAL(variable_ptr);
*variable_ptr_ptr = variable_ptr;
INIT_PZVAL_COPY(variable_ptr, value);
@@ -918,7 +922,6 @@ static inline zval* zend_assign_to_variable(zval **variable_ptr_ptr, zval *value
} else {
*variable_ptr_ptr = value;
Z_ADDREF_P(value);
- Z_UNSET_ISREF_P(value);
return value;
}
}
@@ -1013,11 +1016,7 @@ static inline zval **zend_fetch_dimension_address_inner(HashTable *ht, const zva
hval = Z_HASH_P(dim);
} else {
ZEND_HANDLE_NUMERIC_EX(offset_key, offset_key_length+1, hval, goto num_index);
- if (IS_INTERNED(offset_key)) {
- hval = INTERNED_HASH(offset_key);
- } else {
- hval = zend_hash_func(offset_key, offset_key_length+1);
- }
+ hval = str_hash(offset_key, offset_key_length);
}
fetch_string_dim:
if (zend_hash_quick_find(ht, offset_key, offset_key_length+1, hval, (void **) &retval) == FAILURE) {
@@ -1214,12 +1213,12 @@ convert_to_array:
zend_error(E_NOTICE, "Indirect modification of overloaded element of %s has no effect", ce->name);
}
}
- retval = &overloaded_result;
+ AI_SET_PTR(result, overloaded_result);
+ PZVAL_LOCK(overloaded_result);
} else {
- retval = &EG(error_zval_ptr);
+ result->var.ptr_ptr = &EG(error_zval_ptr);
+ PZVAL_LOCK(EG(error_zval_ptr));
}
- AI_SET_PTR(result, *retval);
- PZVAL_LOCK(*retval);
if (dim_type == IS_TMP_VAR) {
zval_ptr_dtor(&dim);
}
@@ -1236,8 +1235,8 @@ convert_to_array:
default:
if (type == BP_VAR_UNSET) {
zend_error(E_WARNING, "Cannot unset offset in a non-array variable");
- AI_SET_PTR(result, &EG(uninitialized_zval));
- PZVAL_LOCK(&EG(uninitialized_zval));
+ result->var.ptr_ptr = &EG(uninitialized_zval_ptr);
+ PZVAL_LOCK(EG(uninitialized_zval_ptr));
} else {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
result->var.ptr_ptr = &EG(error_zval_ptr);
@@ -1255,12 +1254,12 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
case IS_ARRAY:
retval = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, dim_type, type TSRMLS_CC);
- AI_SET_PTR(result, *retval);
+ result->var.ptr = *retval;
PZVAL_LOCK(*retval);
return;
case IS_NULL:
- AI_SET_PTR(result, &EG(uninitialized_zval));
+ result->var.ptr = &EG(uninitialized_zval);
PZVAL_LOCK(&EG(uninitialized_zval));
return;
@@ -1313,7 +1312,7 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
Z_STRVAL_P(ptr)[1] = 0;
Z_STRLEN_P(ptr) = 1;
}
- AI_SET_PTR(result, ptr);
+ result->var.ptr = ptr;
return;
}
break;
@@ -1331,12 +1330,14 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
}
overloaded_result = Z_OBJ_HT_P(container)->read_dimension(container, dim, type TSRMLS_CC);
- if (overloaded_result) {
- AI_SET_PTR(result, overloaded_result);
- PZVAL_LOCK(overloaded_result);
- } else if (result) {
- AI_SET_PTR(result, &EG(uninitialized_zval));
- PZVAL_LOCK(&EG(uninitialized_zval));
+ if (result) {
+ if (overloaded_result) {
+ result->var.ptr = overloaded_result;
+ PZVAL_LOCK(overloaded_result);
+ } else {
+ result->var.ptr = &EG(uninitialized_zval);
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ }
}
if (dim_type == IS_TMP_VAR) {
zval_ptr_dtor(&dim);
@@ -1345,7 +1346,7 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
return;
default:
- AI_SET_PTR(result, &EG(uninitialized_zval));
+ result->var.ptr = &EG(uninitialized_zval);
PZVAL_LOCK(&EG(uninitialized_zval));
return;
}
@@ -1475,15 +1476,17 @@ ZEND_API opcode_handler_t *zend_opcode_handlers;
ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC)
{
- if(fci != NULL) {
- ((zend_internal_function *) execute_data_ptr->function_state.function)->handler(fci->param_count,
- *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC);
-
+ if (fci != NULL) {
+ execute_data_ptr->function_state.function->internal_function.handler(
+ fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr,
+ fci->object_ptr, 1 TSRMLS_CC
+ );
} else {
zval **return_value_ptr = &EX_TMP_VAR(execute_data_ptr, execute_data_ptr->opline->result.var)->var.ptr;
- ((zend_internal_function *) execute_data_ptr->function_state.function)->handler(execute_data_ptr->opline->extended_value, *return_value_ptr,
- (execute_data_ptr->function_state.function->common.fn_flags & ZEND_ACC_RETURN_REFERENCE)?return_value_ptr:NULL,
- execute_data_ptr->object, return_value_used TSRMLS_CC);
+ execute_data_ptr->function_state.function->internal_function.handler(
+ execute_data_ptr->opline->extended_value, *return_value_ptr, return_value_ptr,
+ execute_data_ptr->object, return_value_used TSRMLS_CC
+ );
}
}
@@ -1501,7 +1504,7 @@ void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC) /* {{{
}
/* }}} */
-static zend_always_inline void i_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */
+static zend_always_inline void i_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC) /* {{{ */
{
zval ***cv = EX_CV_NUM(execute_data, 0);
zval ***end = cv + EX(op_array)->last_var;
@@ -1514,9 +1517,9 @@ static zend_always_inline void i_free_compiled_variables(zend_execute_data *exec
}
/* }}} */
-void zend_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */
+void zend_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC) /* {{{ */
{
- i_free_compiled_variables(execute_data);
+ i_free_compiled_variables(execute_data TSRMLS_CC);
}
/* }}} */
@@ -1647,6 +1650,7 @@ static zend_always_inline zend_execute_data *i_create_execute_data_from_op_array
EX(call) = NULL;
EG(current_execute_data) = execute_data;
EX(nested) = nested;
+ EX(delayed_exception) = NULL;
if (!op_array->run_time_cache && op_array->last_cache_slot) {
op_array->run_time_cache = ecalloc(op_array->last_cache_slot, sizeof(void*));
@@ -1674,12 +1678,55 @@ static zend_always_inline zend_execute_data *i_create_execute_data_from_op_array
}
/* }}} */
-zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC) /* {{{ */
+ZEND_API zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC) /* {{{ */
{
return i_create_execute_data_from_op_array(op_array, nested TSRMLS_CC);
}
/* }}} */
+static zend_always_inline zend_bool zend_is_by_ref_func_arg_fetch(zend_op *opline, call_slot *call TSRMLS_DC) /* {{{ */
+{
+ zend_uint arg_num = (opline->extended_value & ZEND_FETCH_ARG_MASK) + call->num_additional_args;
+ return ARG_SHOULD_BE_SENT_BY_REF(call->fbc, arg_num);
+}
+/* }}} */
+
+static void **zend_vm_stack_push_args_with_copy(int count TSRMLS_DC) /* {{{ */
+{
+ zend_vm_stack p = EG(argument_stack);
+
+ zend_vm_stack_extend(count + 1 TSRMLS_CC);
+
+ EG(argument_stack)->top += count;
+ *(EG(argument_stack)->top) = (void*)(zend_uintptr_t)count;
+ while (count-- > 0) {
+ void *data = *(--p->top);
+
+ if (UNEXPECTED(p->top == ZEND_VM_STACK_ELEMETS(p))) {
+ zend_vm_stack r = p;
+
+ EG(argument_stack)->prev = p->prev;
+ p = p->prev;
+ efree(r);
+ }
+ *(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) + count) = data;
+ }
+ return EG(argument_stack)->top++;
+}
+/* }}} */
+
+static zend_always_inline void** zend_vm_stack_push_args(int count TSRMLS_DC) /* {{{ */
+{
+ if (UNEXPECTED(EG(argument_stack)->top - ZEND_VM_STACK_ELEMETS(EG(argument_stack)) < count)
+ || UNEXPECTED(EG(argument_stack)->top == EG(argument_stack)->end)) {
+ return zend_vm_stack_push_args_with_copy(count TSRMLS_CC);
+ }
+ *(EG(argument_stack)->top) = (void*)(zend_uintptr_t)count;
+ return EG(argument_stack)->top++;
+}
+/* }}} */
+
+
#define ZEND_VM_NEXT_OPCODE() \
CHECK_SYMBOL_TABLES() \
ZEND_VM_INC_OPCODE(); \
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index ff0758772..0d3a908a1 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -56,7 +56,7 @@ ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data_pt
void init_executor(TSRMLS_D);
void shutdown_executor(TSRMLS_D);
void shutdown_destructors(TSRMLS_D);
-zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC);
+ZEND_API zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC);
ZEND_API void zend_execute(zend_op_array *op_array TSRMLS_DC);
ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC);
ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, struct _zend_fcall_info *fci, int return_value_used TSRMLS_DC);
@@ -71,18 +71,14 @@ ZEND_API int zend_eval_stringl_ex(char *str, int str_len, zval *retval_ptr, char
ZEND_API char * zend_verify_arg_class_kind(const zend_arg_info *cur_arg_info, ulong fetch_type, const char **class_name, zend_class_entry **pce TSRMLS_DC);
ZEND_API int zend_verify_arg_error(int error_type, const zend_function *zf, zend_uint arg_num, const char *need_msg, const char *need_kind, const char *given_msg, const char *given_kind TSRMLS_DC);
-static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC)
+static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC TSRMLS_DC)
{
if (!Z_DELREF_P(zval_ptr)) {
- TSRMLS_FETCH();
-
ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval));
GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr);
zval_dtor(zval_ptr);
efree_rel(zval_ptr);
} else {
- TSRMLS_FETCH();
-
if (Z_REFCOUNT_P(zval_ptr) == 1) {
Z_UNSET_ISREF_P(zval_ptr);
}
@@ -91,6 +87,20 @@ static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC)
}
}
+static zend_always_inline void i_zval_ptr_dtor_nogc(zval *zval_ptr ZEND_FILE_LINE_DC TSRMLS_DC)
+{
+ if (!Z_DELREF_P(zval_ptr)) {
+ ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval));
+ GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr);
+ zval_dtor(zval_ptr);
+ efree_rel(zval_ptr);
+ } else {
+ if (Z_REFCOUNT_P(zval_ptr) == 1) {
+ Z_UNSET_ISREF_P(zval_ptr);
+ }
+ }
+}
+
static zend_always_inline int i_zend_is_true(zval *op)
{
int result;
@@ -295,7 +305,7 @@ static zend_always_inline void zend_vm_stack_clear_multiple(int nested TSRMLS_DC
while (p != end) {
zval *q = (zval *) *(--p);
*p = NULL;
- i_zval_ptr_dtor(q ZEND_FILE_LINE_CC);
+ i_zval_ptr_dtor(q ZEND_FILE_LINE_CC TSRMLS_CC);
}
if (nested) {
EG(argument_stack)->top = p;
@@ -394,7 +404,7 @@ ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const z
ZEND_API int zend_do_fcall(ZEND_OPCODE_HANDLER_ARGS);
void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC);
-void zend_free_compiled_variables(zend_execute_data *execute_data);
+void zend_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC);
#define CACHED_PTR(num) \
EG(active_op_array)->run_time_cache[(num)]
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 3cc8b1008..5d5153dc1 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -423,7 +423,8 @@ ZEND_API zend_bool zend_is_executing(TSRMLS_D) /* {{{ */
ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{ */
{
- i_zval_ptr_dtor(*zval_ptr ZEND_FILE_LINE_RELAY_CC);
+ TSRMLS_FETCH();
+ i_zval_ptr_dtor(*zval_ptr ZEND_FILE_LINE_RELAY_CC TSRMLS_CC);
}
/* }}} */
@@ -533,13 +534,13 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
if (fix_save) {
save--;
}
- if (inline_change && !IS_INTERNED(save)) {
- efree(save);
+ if (inline_change) {
+ str_efree(save);
}
save = NULL;
}
- if (inline_change && save && save != actual && !IS_INTERNED(save)) {
- efree(save);
+ if (inline_change && save && save != actual) {
+ str_efree(save);
}
zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual);
p->type = IS_STRING;
@@ -551,7 +552,7 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
}
} else {
if (inline_change) {
- STR_FREE(Z_STRVAL_P(p));
+ str_efree(Z_STRVAL_P(p));
}
*p = const_value;
}
@@ -591,7 +592,10 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
zend_hash_move_forward(Z_ARRVAL_P(p));
continue;
}
- if (!zend_get_constant_ex(str_index, str_index_len - 3, &const_value, scope, str_index[str_index_len - 2] TSRMLS_CC)) {
+ if (str_index[str_index_len - 2] == IS_CONSTANT_AST) {
+ zend_ast_evaluate(&const_value, *(zend_ast **)str_index, scope TSRMLS_CC);
+ zend_ast_destroy(*(zend_ast **)str_index);
+ } else if (!zend_get_constant_ex(str_index, str_index_len - 3, &const_value, scope, str_index[str_index_len - 2] TSRMLS_CC)) {
char *actual;
const char *save = str_index;
if ((colon = (char*)zend_memrchr(str_index, ':', str_index_len - 3))) {
@@ -659,6 +663,15 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
}
zend_hash_apply_with_argument(Z_ARRVAL_P(p), (apply_func_arg_t) zval_update_constant_inline_change, (void *) scope TSRMLS_CC);
zend_hash_internal_pointer_reset(Z_ARRVAL_P(p));
+ } else if (Z_TYPE_P(p) == IS_CONSTANT_AST) {
+ SEPARATE_ZVAL_IF_NOT_REF(pp);
+ p = *pp;
+
+ zend_ast_evaluate(&const_value, Z_AST_P(p), scope TSRMLS_CC);
+ if (inline_change) {
+ zend_ast_destroy(Z_AST_P(p));
+ }
+ ZVAL_COPY_VALUE(p, &const_value);
}
return 0;
}
@@ -952,9 +965,9 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
if (EX(function_state).function->common.scope) {
EG(scope) = EX(function_state).function->common.scope;
}
- if(EXPECTED(zend_execute_internal == NULL)) {
+ if (EXPECTED(zend_execute_internal == NULL)) {
/* saves one function call if zend_execute_internal is not used */
- ((zend_internal_function *) EX(function_state).function)->handler(fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC);
+ EX(function_state).function->internal_function.handler(fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC);
} else {
zend_execute_internal(&execute_data, fci, 1 TSRMLS_CC);
}
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c
index 2dd7cd4c5..e1290b78c 100644
--- a/Zend/zend_extensions.c
+++ b/Zend/zend_extensions.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_extensions.h b/Zend/zend_extensions.h
index 83cad7f38..3eda38aa9 100644
--- a/Zend/zend_extensions.h
+++ b/Zend/zend_extensions.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -28,7 +28,7 @@
/* The first number is the engine version and the rest is the date.
* This way engine 2/3 API no. is always greater than engine 1 API no..
*/
-#define ZEND_EXTENSION_API_NO 220121212
+#define ZEND_EXTENSION_API_NO 220131226
typedef struct _zend_extension_version_info {
int zend_extension_api_no;
diff --git a/Zend/zend_float.c b/Zend/zend_float.c
index cd6fcf2a1..ca0130134 100644
--- a/Zend/zend_float.c
+++ b/Zend/zend_float.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_float.h b/Zend/zend_float.h
index 56bdb151a..33f8e93fb 100644
--- a/Zend/zend_float.h
+++ b/Zend/zend_float.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_gc.c b/Zend/zend_gc.c
index 7b83ddb54..76217e369 100644
--- a/Zend/zend_gc.c
+++ b/Zend/zend_gc.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_gc.h b/Zend/zend_gc.h
index 3483e9dbf..ac5f6350a 100644
--- a/Zend/zend_gc.h
+++ b/Zend/zend_gc.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_generators.c b/Zend/zend_generators.c
index ec9e9b89f..7d7c33071 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -113,7 +113,7 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished
zend_op_array *op_array = execute_data->op_array;
if (!execute_data->symbol_table) {
- zend_free_compiled_variables(execute_data);
+ zend_free_compiled_variables(execute_data TSRMLS_CC);
} else {
zend_clean_and_cache_symbol_table(execute_data->symbol_table TSRMLS_CC);
}
@@ -466,7 +466,7 @@ ZEND_METHOD(Generator, current)
zend_generator_ensure_initialized(generator TSRMLS_CC);
if (generator->value) {
- RETURN_ZVAL(generator->value, 1, 0);
+ RETURN_ZVAL_FAST(generator->value);
}
}
/* }}} */
@@ -486,7 +486,7 @@ ZEND_METHOD(Generator, key)
zend_generator_ensure_initialized(generator TSRMLS_CC);
if (generator->key) {
- RETURN_ZVAL(generator->key, 1, 0);
+ RETURN_ZVAL_FAST(generator->key);
}
}
/* }}} */
@@ -539,7 +539,7 @@ ZEND_METHOD(Generator, send)
zend_generator_resume(generator TSRMLS_CC);
if (generator->value) {
- RETURN_ZVAL(generator->value, 1, 0);
+ RETURN_ZVAL_FAST(generator->value);
}
}
/* }}} */
@@ -574,7 +574,7 @@ ZEND_METHOD(Generator, throw)
zend_generator_resume(generator TSRMLS_CC);
if (generator->value) {
- RETURN_ZVAL(generator->value, 1, 0);
+ RETURN_ZVAL_FAST(generator->value);
}
} else {
/* If the generator is already closed throw the exception in the
diff --git a/Zend/zend_generators.h b/Zend/zend_generators.h
index d5f610131..2373a1a7c 100644
--- a/Zend/zend_generators.h
+++ b/Zend/zend_generators.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_globals.h b/Zend/zend_globals.h
index b9a5b3991..31dd9af61 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -131,9 +131,13 @@ struct _zend_compiler_globals {
zval *current_namespace;
HashTable *current_import;
+ HashTable *current_import_function;
+ HashTable *current_import_const;
zend_bool in_namespace;
zend_bool has_bracketed_namespaces;
+ HashTable const_filenames;
+
zend_compiler_context context;
zend_stack context_stack;
@@ -142,6 +146,9 @@ struct _zend_compiler_globals {
char *interned_strings_end;
char *interned_strings_top;
char *interned_strings_snapshot_top;
+#ifndef ZTS
+ char *interned_empty_string;
+#endif
HashTable interned_strings;
diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h
index 9bb1b8026..ac9b79377 100644
--- a/Zend/zend_globals_macros.h
+++ b/Zend/zend_globals_macros.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_hash.c b/Zend/zend_hash.c
index 96c3f3d7b..829cd3364 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -96,7 +96,7 @@ static void _zend_is_inconsistent(const HashTable *ht, const char *file, int lin
zend_hash_do_resize(ht); \
}
-static int zend_hash_do_resize(HashTable *ht);
+static void zend_hash_do_resize(HashTable *ht);
ZEND_API ulong zend_hash_func(const char *arKey, uint nKeyLength)
{
@@ -128,10 +128,6 @@ ZEND_API ulong zend_hash_func(const char *arKey, uint nKeyLength)
(p)->pData = &(p)->pDataPtr; \
} else { \
(p)->pData = (void *) pemalloc_rel(nDataSize, (ht)->persistent);\
- if (!(p)->pData) { \
- pefree_rel(p, (ht)->persistent); \
- return FAILURE; \
- } \
memcpy((p)->pData, pData, nDataSize); \
(p)->pDataPtr=NULL; \
}
@@ -145,7 +141,7 @@ ZEND_API ulong zend_hash_func(const char *arKey, uint nKeyLength)
static const Bucket *uninitialized_bucket = NULL;
-ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
+ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
{
uint i = 3;
@@ -176,9 +172,9 @@ ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunctio
}
-ZEND_API int _zend_hash_init_ex(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC)
+ZEND_API int _zend_hash_init_ex(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC)
{
- int retval = _zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent ZEND_FILE_LINE_CC);
+ int retval = _zend_hash_init(ht, nSize, pDestructor, persistent ZEND_FILE_LINE_CC);
ht->bApplyProtection = bApplyProtection;
return retval;
@@ -203,12 +199,7 @@ ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKe
IS_CONSISTENT(ht);
- if (nKeyLength <= 0) {
-#if ZEND_DEBUG
- ZEND_PUTS("zend_hash_update: Can't put in empty key\n");
-#endif
- return FAILURE;
- }
+ ZEND_ASSERT(nKeyLength != 0);
CHECK_INIT(ht);
@@ -222,14 +213,8 @@ ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKe
if (flag & HASH_ADD) {
return FAILURE;
}
+ ZEND_ASSERT(p->pData != pData);
HANDLE_BLOCK_INTERRUPTIONS();
-#if ZEND_DEBUG
- if (p->pData == pData) {
- ZEND_PUTS("Fatal error in zend_hash_update: p->pData == pData\n");
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return FAILURE;
- }
-#endif
if (ht->pDestructor) {
ht->pDestructor(p->pData);
}
@@ -245,15 +230,9 @@ ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKe
if (IS_INTERNED(arKey)) {
p = (Bucket *) pemalloc(sizeof(Bucket), ht->persistent);
- if (!p) {
- return FAILURE;
- }
p->arKey = arKey;
} else {
p = (Bucket *) pemalloc(sizeof(Bucket) + nKeyLength, ht->persistent);
- if (!p) {
- return FAILURE;
- }
p->arKey = (const char*)(p + 1);
memcpy((char*)p->arKey, arKey, nKeyLength);
}
@@ -285,9 +264,7 @@ ZEND_API int _zend_hash_quick_add_or_update(HashTable *ht, const char *arKey, ui
IS_CONSISTENT(ht);
- if (nKeyLength == 0) {
- return zend_hash_index_update(ht, h, pData, nDataSize, pDest);
- }
+ ZEND_ASSERT(nKeyLength != 0);
CHECK_INIT(ht);
nIndex = h & ht->nTableMask;
@@ -299,14 +276,8 @@ ZEND_API int _zend_hash_quick_add_or_update(HashTable *ht, const char *arKey, ui
if (flag & HASH_ADD) {
return FAILURE;
}
+ ZEND_ASSERT(p->pData != pData);
HANDLE_BLOCK_INTERRUPTIONS();
-#if ZEND_DEBUG
- if (p->pData == pData) {
- ZEND_PUTS("Fatal error in zend_hash_update: p->pData == pData\n");
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return FAILURE;
- }
-#endif
if (ht->pDestructor) {
ht->pDestructor(p->pData);
}
@@ -322,15 +293,9 @@ ZEND_API int _zend_hash_quick_add_or_update(HashTable *ht, const char *arKey, ui
if (IS_INTERNED(arKey)) {
p = (Bucket *) pemalloc(sizeof(Bucket), ht->persistent);
- if (!p) {
- return FAILURE;
- }
p->arKey = arKey;
} else {
p = (Bucket *) pemalloc(sizeof(Bucket) + nKeyLength, ht->persistent);
- if (!p) {
- return FAILURE;
- }
p->arKey = (const char*)(p + 1);
memcpy((char*)p->arKey, arKey, nKeyLength);
}
@@ -386,14 +351,8 @@ ZEND_API int _zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
if (flag & HASH_NEXT_INSERT || flag & HASH_ADD) {
return FAILURE;
}
+ ZEND_ASSERT(p->pData != pData);
HANDLE_BLOCK_INTERRUPTIONS();
-#if ZEND_DEBUG
- if (p->pData == pData) {
- ZEND_PUTS("Fatal error in zend_hash_index_update: p->pData == pData\n");
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return FAILURE;
- }
-#endif
if (ht->pDestructor) {
ht->pDestructor(p->pData);
}
@@ -410,9 +369,6 @@ ZEND_API int _zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
p = p->pNext;
}
p = (Bucket *) pemalloc_rel(sizeof(Bucket), ht->persistent);
- if (!p) {
- return FAILURE;
- }
p->arKey = NULL;
p->nKeyLength = 0; /* Numeric indices are marked by making the nKeyLength == 0 */
p->h = h;
@@ -437,7 +393,7 @@ ZEND_API int _zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
}
-static int zend_hash_do_resize(HashTable *ht)
+static void zend_hash_do_resize(HashTable *ht)
{
Bucket **t;
#ifdef ZEND_SIGNALS
@@ -447,19 +403,14 @@ static int zend_hash_do_resize(HashTable *ht)
IS_CONSISTENT(ht);
if ((ht->nTableSize << 1) > 0) { /* Let's double the table size */
- t = (Bucket **) perealloc_recoverable(ht->arBuckets, (ht->nTableSize << 1) * sizeof(Bucket *), ht->persistent);
- if (t) {
- HANDLE_BLOCK_INTERRUPTIONS();
- ht->arBuckets = t;
- ht->nTableSize = (ht->nTableSize << 1);
- ht->nTableMask = ht->nTableSize - 1;
- zend_hash_rehash(ht);
- HANDLE_UNBLOCK_INTERRUPTIONS();
- return SUCCESS;
- }
- return FAILURE;
+ t = (Bucket **) perealloc(ht->arBuckets, (ht->nTableSize << 1) * sizeof(Bucket *), ht->persistent);
+ HANDLE_BLOCK_INTERRUPTIONS();
+ ht->arBuckets = t;
+ ht->nTableSize = (ht->nTableSize << 1);
+ ht->nTableMask = ht->nTableSize - 1;
+ zend_hash_rehash(ht);
+ HANDLE_UNBLOCK_INTERRUPTIONS();
}
- return SUCCESS;
}
ZEND_API int zend_hash_rehash(HashTable *ht)
@@ -900,12 +851,6 @@ ZEND_API void zend_hash_merge_ex(HashTable *target, HashTable *source, copy_ctor
}
-ZEND_API ulong zend_get_hash_value(const char *arKey, uint nKeyLength)
-{
- return zend_inline_hash_func(arKey, nKeyLength);
-}
-
-
/* Returns SUCCESS if found and FAILURE if not. The pointer to the
* data is returned in pData. The reason is that there's no reason
* someone using the hash table might not want to have NULL data
@@ -939,9 +884,7 @@ ZEND_API int zend_hash_quick_find(const HashTable *ht, const char *arKey, uint n
uint nIndex;
Bucket *p;
- if (nKeyLength==0) {
- return zend_hash_index_find(ht, h, pData);
- }
+ ZEND_ASSERT(nKeyLength != 0);
IS_CONSISTENT(ht);
@@ -988,9 +931,7 @@ ZEND_API int zend_hash_quick_exists(const HashTable *ht, const char *arKey, uint
uint nIndex;
Bucket *p;
- if (nKeyLength==0) {
- return zend_hash_index_exists(ht, h);
- }
+ ZEND_ASSERT(nKeyLength != 0);
IS_CONSISTENT(ht);
@@ -1182,7 +1123,7 @@ ZEND_API void zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key,
Z_TYPE_P(key) = IS_NULL;
} else if (p->nKeyLength) {
Z_TYPE_P(key) = IS_STRING;
- Z_STRVAL_P(key) = estrndup(p->arKey, p->nKeyLength - 1);
+ Z_STRVAL_P(key) = IS_INTERNED(p->arKey) ? (char*)p->arKey : estrndup(p->arKey, p->nKeyLength - 1);
Z_STRLEN_P(key) = p->nKeyLength - 1;
} else {
Z_TYPE_P(key) = IS_LONG;
@@ -1449,9 +1390,6 @@ ZEND_API int zend_hash_sort(HashTable *ht, sort_func_t sort_func,
return SUCCESS;
}
arTmp = (Bucket **) pemalloc(ht->nNumOfElements * sizeof(Bucket *), ht->persistent);
- if (!arTmp) {
- return FAILURE;
- }
p = ht->pListHead;
i = 0;
while (p) {
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 69732cd59..d990c1667 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -97,12 +97,12 @@ typedef Bucket* HashPosition;
BEGIN_EXTERN_C()
/* startup/shutdown */
-ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
-ZEND_API int _zend_hash_init_ex(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
+ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
+ZEND_API int _zend_hash_init_ex(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
ZEND_API void zend_hash_destroy(HashTable *ht);
ZEND_API void zend_hash_clean(HashTable *ht);
-#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) _zend_hash_init((ht), (nSize), (pHashFunction), (pDestructor), (persistent) ZEND_FILE_LINE_CC)
-#define zend_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) _zend_hash_init_ex((ht), (nSize), (pHashFunction), (pDestructor), (persistent), (bApplyProtection) ZEND_FILE_LINE_CC)
+#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) _zend_hash_init((ht), (nSize), (pDestructor), (persistent) ZEND_FILE_LINE_CC)
+#define zend_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) _zend_hash_init_ex((ht), (nSize), (pDestructor), (persistent), (bApplyProtection) ZEND_FILE_LINE_CC)
/* additions/updates/changes */
ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC);
@@ -157,8 +157,8 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, const char *arKey, uint n
zend_hash_del_key_or_index(ht, arKey, nKeyLength, h, HASH_DEL_KEY_QUICK)
#define zend_hash_index_del(ht, h) \
zend_hash_del_key_or_index(ht, NULL, 0, h, HASH_DEL_INDEX)
-
-ZEND_API ulong zend_get_hash_value(const char *arKey, uint nKeyLength);
+#define zend_get_hash_value \
+ zend_hash_func
/* Data retreival */
ZEND_API int zend_hash_find(const HashTable *ht, const char *arKey, uint nKeyLength, void **pData);
diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c
index c789cb719..ffec58780 100644
--- a/Zend/zend_highlight.c
+++ b/Zend/zend_highlight.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_highlight.h b/Zend/zend_highlight.h
index 20adf349a..1a3550513 100644
--- a/Zend/zend_highlight.h
+++ b/Zend/zend_highlight.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_indent.c b/Zend/zend_indent.c
index fea78d9c5..cacdf8df3 100644
--- a/Zend/zend_indent.c
+++ b/Zend/zend_indent.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_indent.h b/Zend/zend_indent.h
index bba02a738..6d0996efa 100644
--- a/Zend/zend_indent.h
+++ b/Zend/zend_indent.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini.c b/Zend/zend_ini.c
index 2c74f20f6..f286ccd15 100644
--- a/Zend/zend_ini.c
+++ b/Zend/zend_ini.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini.h b/Zend/zend_ini.h
index b27d3d4ad..0fe4c3161 100644
--- a/Zend/zend_ini.h
+++ b/Zend/zend_ini.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini_parser.c b/Zend/zend_ini_parser.c
index e27e539f8..c9d3b3893 100644
--- a/Zend/zend_ini_parser.c
+++ b/Zend/zend_ini_parser.c
@@ -80,7 +80,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini_parser.output b/Zend/zend_ini_parser.output
index 404ab4114..cfd6dd4af 100644
--- a/Zend/zend_ini_parser.output
+++ b/Zend/zend_ini_parser.output
@@ -17,12 +17,12 @@ Terminals unused in grammar
'{'
-Grammaire
+Grammar
0 $accept: statement_list $end
1 statement_list: statement_list statement
- 2 | /* vide */
+ 2 | /* empty */
3 statement: TC_SECTION section_string_or_value ']'
4 | TC_LABEL '=' string_or_value
@@ -31,7 +31,7 @@ Grammaire
7 | END_OF_LINE
8 section_string_or_value: var_string_list_section
- 9 | /* vide */
+ 9 | /* empty */
10 string_or_value: expr
11 | BOOL_TRUE
@@ -39,11 +39,11 @@ Grammaire
13 | END_OF_LINE
14 option_offset: var_string_list
- 15 | /* vide */
+ 15 | /* empty */
16 encapsed_list: encapsed_list cfg_var_ref
17 | encapsed_list TC_QUOTED_STRING
- 18 | /* vide */
+ 18 | /* empty */
19 var_string_list_section: cfg_var_ref
20 | constant_literal
@@ -82,7 +82,7 @@ Grammaire
48 | TC_WHITESPACE
-Terminaux, suivis des règles où ils apparaissent
+Terminals, with rules where they appear
$end (0) 0
'!' (33) 36
@@ -128,788 +128,788 @@ BOOL_FALSE (270) 12
END_OF_LINE (271) 7 13
-Non-terminaux, suivis des règles où ils apparaissent
+Nonterminals, with rules where they appear
$accept (43)
- à gauche: 0
+ on left: 0
statement_list (44)
- à gauche: 1 2, à droite: 0 1
+ on left: 1 2, on right: 0 1
statement (45)
- à gauche: 3 4 5 6 7, à droite: 1
+ on left: 3 4 5 6 7, on right: 1
section_string_or_value (46)
- à gauche: 8 9, à droite: 3
+ on left: 8 9, on right: 3
string_or_value (47)
- à gauche: 10 11 12 13, à droite: 4 5
+ on left: 10 11 12 13, on right: 4 5
option_offset (48)
- à gauche: 14 15, à droite: 5
+ on left: 14 15, on right: 5
encapsed_list (49)
- à gauche: 16 17 18, à droite: 16 17 21 24 27 30
+ on left: 16 17 18, on right: 16 17 21 24 27 30
var_string_list_section (50)
- à gauche: 19 20 21 22 23 24, à droite: 8 22 23 24
+ on left: 19 20 21 22 23 24, on right: 8 22 23 24
var_string_list (51)
- à gauche: 25 26 27 28 29 30, à droite: 14 28 29 30 31
+ on left: 25 26 27 28 29 30, on right: 14 28 29 30 31
expr (52)
- à gauche: 31 32 33 34 35 36 37, à droite: 10 32 33 34 35 36 37
+ on left: 31 32 33 34 35 36 37, on right: 10 32 33 34 35 36 37
cfg_var_ref (53)
- à gauche: 38, à droite: 16 19 22 25 28
+ on left: 38, on right: 16 19 22 25 28
constant_literal (54)
- à gauche: 39 40 41 42 43, à droite: 20 23
+ on left: 39 40 41 42 43, on right: 20 23
constant_string (55)
- à gauche: 44 45 46 47 48, à droite: 26 29
+ on left: 44 45 46 47 48, on right: 26 29
-état 0
+state 0
0 $accept: . statement_list $end
- $défaut réduction par utilisation de la règle 2 (statement_list)
+ $default reduce using rule 2 (statement_list)
- statement_list aller à l'état 1
+ statement_list go to state 1
-état 1
+state 1
0 $accept: statement_list . $end
1 statement_list: statement_list . statement
- $end décalage et aller à l'état 2
- TC_SECTION décalage et aller à l'état 3
- TC_LABEL décalage et aller à l'état 4
- TC_OFFSET décalage et aller à l'état 5
- END_OF_LINE décalage et aller à l'état 6
+ $end shift, and go to state 2
+ TC_SECTION shift, and go to state 3
+ TC_LABEL shift, and go to state 4
+ TC_OFFSET shift, and go to state 5
+ END_OF_LINE shift, and go to state 6
- statement aller à l'état 7
+ statement go to state 7
-état 2
+state 2
0 $accept: statement_list $end .
- $défaut accepter
+ $default accept
-état 3
+state 3
3 statement: TC_SECTION . section_string_or_value ']'
- TC_RAW décalage et aller à l'état 8
- TC_CONSTANT décalage et aller à l'état 9
- TC_NUMBER décalage et aller à l'état 10
- TC_STRING décalage et aller à l'état 11
- TC_WHITESPACE décalage et aller à l'état 12
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 14
+ TC_RAW shift, and go to state 8
+ TC_CONSTANT shift, and go to state 9
+ TC_NUMBER shift, and go to state 10
+ TC_STRING shift, and go to state 11
+ TC_WHITESPACE shift, and go to state 12
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 14
- $défaut réduction par utilisation de la règle 9 (section_string_or_value)
+ $default reduce using rule 9 (section_string_or_value)
- section_string_or_value aller à l'état 15
- var_string_list_section aller à l'état 16
- cfg_var_ref aller à l'état 17
- constant_literal aller à l'état 18
+ section_string_or_value go to state 15
+ var_string_list_section go to state 16
+ cfg_var_ref go to state 17
+ constant_literal go to state 18
-état 4
+state 4
4 statement: TC_LABEL . '=' string_or_value
6 | TC_LABEL .
- '=' décalage et aller à l'état 19
+ '=' shift, and go to state 19
- $défaut réduction par utilisation de la règle 6 (statement)
+ $default reduce using rule 6 (statement)
-état 5
+state 5
5 statement: TC_OFFSET . option_offset ']' '=' string_or_value
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
- $défaut réduction par utilisation de la règle 15 (option_offset)
+ $default reduce using rule 15 (option_offset)
- option_offset aller à l'état 26
- var_string_list aller à l'état 27
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ option_offset go to state 26
+ var_string_list go to state 27
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 6
+state 6
7 statement: END_OF_LINE .
- $défaut réduction par utilisation de la règle 7 (statement)
+ $default reduce using rule 7 (statement)
-état 7
+state 7
1 statement_list: statement_list statement .
- $défaut réduction par utilisation de la règle 1 (statement_list)
+ $default reduce using rule 1 (statement_list)
-état 8
+state 8
40 constant_literal: TC_RAW .
- $défaut réduction par utilisation de la règle 40 (constant_literal)
+ $default reduce using rule 40 (constant_literal)
-état 9
+state 9
39 constant_literal: TC_CONSTANT .
- $défaut réduction par utilisation de la règle 39 (constant_literal)
+ $default reduce using rule 39 (constant_literal)
-état 10
+state 10
41 constant_literal: TC_NUMBER .
- $défaut réduction par utilisation de la règle 41 (constant_literal)
+ $default reduce using rule 41 (constant_literal)
-état 11
+state 11
42 constant_literal: TC_STRING .
- $défaut réduction par utilisation de la règle 42 (constant_literal)
+ $default reduce using rule 42 (constant_literal)
-état 12
+state 12
43 constant_literal: TC_WHITESPACE .
- $défaut réduction par utilisation de la règle 43 (constant_literal)
+ $default reduce using rule 43 (constant_literal)
-état 13
+state 13
38 cfg_var_ref: TC_DOLLAR_CURLY . TC_VARNAME '}'
- TC_VARNAME décalage et aller à l'état 30
+ TC_VARNAME shift, and go to state 30
-état 14
+state 14
21 var_string_list_section: '"' . encapsed_list '"'
- $défaut réduction par utilisation de la règle 18 (encapsed_list)
+ $default reduce using rule 18 (encapsed_list)
- encapsed_list aller à l'état 31
+ encapsed_list go to state 31
-état 15
+state 15
3 statement: TC_SECTION section_string_or_value . ']'
- ']' décalage et aller à l'état 32
+ ']' shift, and go to state 32
-état 16
+state 16
8 section_string_or_value: var_string_list_section .
22 var_string_list_section: var_string_list_section . cfg_var_ref
23 | var_string_list_section . constant_literal
24 | var_string_list_section . '"' encapsed_list '"'
- TC_RAW décalage et aller à l'état 8
- TC_CONSTANT décalage et aller à l'état 9
- TC_NUMBER décalage et aller à l'état 10
- TC_STRING décalage et aller à l'état 11
- TC_WHITESPACE décalage et aller à l'état 12
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 33
+ TC_RAW shift, and go to state 8
+ TC_CONSTANT shift, and go to state 9
+ TC_NUMBER shift, and go to state 10
+ TC_STRING shift, and go to state 11
+ TC_WHITESPACE shift, and go to state 12
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 33
- $défaut réduction par utilisation de la règle 8 (section_string_or_value)
+ $default reduce using rule 8 (section_string_or_value)
- cfg_var_ref aller à l'état 34
- constant_literal aller à l'état 35
+ cfg_var_ref go to state 34
+ constant_literal go to state 35
-état 17
+state 17
19 var_string_list_section: cfg_var_ref .
- $défaut réduction par utilisation de la règle 19 (var_string_list_section)
+ $default reduce using rule 19 (var_string_list_section)
-état 18
+state 18
20 var_string_list_section: constant_literal .
- $défaut réduction par utilisation de la règle 20 (var_string_list_section)
+ $default reduce using rule 20 (var_string_list_section)
-état 19
+state 19
4 statement: TC_LABEL '=' . string_or_value
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- BOOL_TRUE décalage et aller à l'état 36
- BOOL_FALSE décalage et aller à l'état 37
- END_OF_LINE décalage et aller à l'état 38
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
-
- string_or_value aller à l'état 42
- var_string_list aller à l'état 43
- expr aller à l'état 44
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
-
-
-état 20
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ BOOL_TRUE shift, and go to state 36
+ BOOL_FALSE shift, and go to state 37
+ END_OF_LINE shift, and go to state 38
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
+
+ string_or_value go to state 42
+ var_string_list go to state 43
+ expr go to state 44
+ cfg_var_ref go to state 28
+ constant_string go to state 29
+
+
+state 20
45 constant_string: TC_RAW .
- $défaut réduction par utilisation de la règle 45 (constant_string)
+ $default reduce using rule 45 (constant_string)
-état 21
+state 21
44 constant_string: TC_CONSTANT .
- $défaut réduction par utilisation de la règle 44 (constant_string)
+ $default reduce using rule 44 (constant_string)
-état 22
+state 22
46 constant_string: TC_NUMBER .
- $défaut réduction par utilisation de la règle 46 (constant_string)
+ $default reduce using rule 46 (constant_string)
-état 23
+state 23
47 constant_string: TC_STRING .
- $défaut réduction par utilisation de la règle 47 (constant_string)
+ $default reduce using rule 47 (constant_string)
-état 24
+state 24
48 constant_string: TC_WHITESPACE .
- $défaut réduction par utilisation de la règle 48 (constant_string)
+ $default reduce using rule 48 (constant_string)
-état 25
+state 25
27 var_string_list: '"' . encapsed_list '"'
- $défaut réduction par utilisation de la règle 18 (encapsed_list)
+ $default reduce using rule 18 (encapsed_list)
- encapsed_list aller à l'état 45
+ encapsed_list go to state 45
-état 26
+state 26
5 statement: TC_OFFSET option_offset . ']' '=' string_or_value
- ']' décalage et aller à l'état 46
+ ']' shift, and go to state 46
-état 27
+state 27
14 option_offset: var_string_list .
28 var_string_list: var_string_list . cfg_var_ref
29 | var_string_list . constant_string
30 | var_string_list . '"' encapsed_list '"'
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 47
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 47
- $défaut réduction par utilisation de la règle 14 (option_offset)
+ $default reduce using rule 14 (option_offset)
- cfg_var_ref aller à l'état 48
- constant_string aller à l'état 49
+ cfg_var_ref go to state 48
+ constant_string go to state 49
-état 28
+state 28
25 var_string_list: cfg_var_ref .
- $défaut réduction par utilisation de la règle 25 (var_string_list)
+ $default reduce using rule 25 (var_string_list)
-état 29
+state 29
26 var_string_list: constant_string .
- $défaut réduction par utilisation de la règle 26 (var_string_list)
+ $default reduce using rule 26 (var_string_list)
-état 30
+state 30
38 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME . '}'
- '}' décalage et aller à l'état 50
+ '}' shift, and go to state 50
-état 31
+state 31
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
21 var_string_list_section: '"' encapsed_list . '"'
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- TC_QUOTED_STRING décalage et aller à l'état 51
- '"' décalage et aller à l'état 52
+ TC_DOLLAR_CURLY shift, and go to state 13
+ TC_QUOTED_STRING shift, and go to state 51
+ '"' shift, and go to state 52
- cfg_var_ref aller à l'état 53
+ cfg_var_ref go to state 53
-état 32
+state 32
3 statement: TC_SECTION section_string_or_value ']' .
- $défaut réduction par utilisation de la règle 3 (statement)
+ $default reduce using rule 3 (statement)
-état 33
+state 33
24 var_string_list_section: var_string_list_section '"' . encapsed_list '"'
- $défaut réduction par utilisation de la règle 18 (encapsed_list)
+ $default reduce using rule 18 (encapsed_list)
- encapsed_list aller à l'état 54
+ encapsed_list go to state 54
-état 34
+state 34
22 var_string_list_section: var_string_list_section cfg_var_ref .
- $défaut réduction par utilisation de la règle 22 (var_string_list_section)
+ $default reduce using rule 22 (var_string_list_section)
-état 35
+state 35
23 var_string_list_section: var_string_list_section constant_literal .
- $défaut réduction par utilisation de la règle 23 (var_string_list_section)
+ $default reduce using rule 23 (var_string_list_section)
-état 36
+state 36
11 string_or_value: BOOL_TRUE .
- $défaut réduction par utilisation de la règle 11 (string_or_value)
+ $default reduce using rule 11 (string_or_value)
-état 37
+state 37
12 string_or_value: BOOL_FALSE .
- $défaut réduction par utilisation de la règle 12 (string_or_value)
+ $default reduce using rule 12 (string_or_value)
-état 38
+state 38
13 string_or_value: END_OF_LINE .
- $défaut réduction par utilisation de la règle 13 (string_or_value)
+ $default reduce using rule 13 (string_or_value)
-état 39
+state 39
35 expr: '~' . expr
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 55
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 55
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 40
+state 40
36 expr: '!' . expr
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 56
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 56
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 41
+state 41
37 expr: '(' . expr ')'
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 57
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 57
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 42
+state 42
4 statement: TC_LABEL '=' string_or_value .
- $défaut réduction par utilisation de la règle 4 (statement)
+ $default reduce using rule 4 (statement)
-état 43
+state 43
28 var_string_list: var_string_list . cfg_var_ref
29 | var_string_list . constant_string
30 | var_string_list . '"' encapsed_list '"'
31 expr: var_string_list .
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 47
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 47
- $défaut réduction par utilisation de la règle 31 (expr)
+ $default reduce using rule 31 (expr)
- cfg_var_ref aller à l'état 48
- constant_string aller à l'état 49
+ cfg_var_ref go to state 48
+ constant_string go to state 49
-état 44
+state 44
10 string_or_value: expr .
32 expr: expr . '|' expr
33 | expr . '&' expr
34 | expr . '^' expr
- '^' décalage et aller à l'état 58
- '|' décalage et aller à l'état 59
- '&' décalage et aller à l'état 60
+ '^' shift, and go to state 58
+ '|' shift, and go to state 59
+ '&' shift, and go to state 60
- $défaut réduction par utilisation de la règle 10 (string_or_value)
+ $default reduce using rule 10 (string_or_value)
-état 45
+state 45
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
27 var_string_list: '"' encapsed_list . '"'
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- TC_QUOTED_STRING décalage et aller à l'état 51
- '"' décalage et aller à l'état 61
+ TC_DOLLAR_CURLY shift, and go to state 13
+ TC_QUOTED_STRING shift, and go to state 51
+ '"' shift, and go to state 61
- cfg_var_ref aller à l'état 53
+ cfg_var_ref go to state 53
-état 46
+state 46
5 statement: TC_OFFSET option_offset ']' . '=' string_or_value
- '=' décalage et aller à l'état 62
+ '=' shift, and go to state 62
-état 47
+state 47
30 var_string_list: var_string_list '"' . encapsed_list '"'
- $défaut réduction par utilisation de la règle 18 (encapsed_list)
+ $default reduce using rule 18 (encapsed_list)
- encapsed_list aller à l'état 63
+ encapsed_list go to state 63
-état 48
+state 48
28 var_string_list: var_string_list cfg_var_ref .
- $défaut réduction par utilisation de la règle 28 (var_string_list)
+ $default reduce using rule 28 (var_string_list)
-état 49
+state 49
29 var_string_list: var_string_list constant_string .
- $défaut réduction par utilisation de la règle 29 (var_string_list)
+ $default reduce using rule 29 (var_string_list)
-état 50
+state 50
38 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}' .
- $défaut réduction par utilisation de la règle 38 (cfg_var_ref)
+ $default reduce using rule 38 (cfg_var_ref)
-état 51
+state 51
17 encapsed_list: encapsed_list TC_QUOTED_STRING .
- $défaut réduction par utilisation de la règle 17 (encapsed_list)
+ $default reduce using rule 17 (encapsed_list)
-état 52
+state 52
21 var_string_list_section: '"' encapsed_list '"' .
- $défaut réduction par utilisation de la règle 21 (var_string_list_section)
+ $default reduce using rule 21 (var_string_list_section)
-état 53
+state 53
16 encapsed_list: encapsed_list cfg_var_ref .
- $défaut réduction par utilisation de la règle 16 (encapsed_list)
+ $default reduce using rule 16 (encapsed_list)
-état 54
+state 54
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
24 var_string_list_section: var_string_list_section '"' encapsed_list . '"'
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- TC_QUOTED_STRING décalage et aller à l'état 51
- '"' décalage et aller à l'état 64
+ TC_DOLLAR_CURLY shift, and go to state 13
+ TC_QUOTED_STRING shift, and go to state 51
+ '"' shift, and go to state 64
- cfg_var_ref aller à l'état 53
+ cfg_var_ref go to state 53
-état 55
+state 55
32 expr: expr . '|' expr
33 | expr . '&' expr
34 | expr . '^' expr
35 | '~' expr .
- $défaut réduction par utilisation de la règle 35 (expr)
+ $default reduce using rule 35 (expr)
-état 56
+state 56
32 expr: expr . '|' expr
33 | expr . '&' expr
34 | expr . '^' expr
36 | '!' expr .
- $défaut réduction par utilisation de la règle 36 (expr)
+ $default reduce using rule 36 (expr)
-état 57
+state 57
32 expr: expr . '|' expr
33 | expr . '&' expr
34 | expr . '^' expr
37 | '(' expr . ')'
- '^' décalage et aller à l'état 58
- '|' décalage et aller à l'état 59
- '&' décalage et aller à l'état 60
- ')' décalage et aller à l'état 65
+ '^' shift, and go to state 58
+ '|' shift, and go to state 59
+ '&' shift, and go to state 60
+ ')' shift, and go to state 65
-état 58
+state 58
34 expr: expr '^' . expr
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 66
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 66
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 59
+state 59
32 expr: expr '|' . expr
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 67
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 67
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 60
+state 60
33 expr: expr '&' . expr
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
- var_string_list aller à l'état 43
- expr aller à l'état 68
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
+ var_string_list go to state 43
+ expr go to state 68
+ cfg_var_ref go to state 28
+ constant_string go to state 29
-état 61
+state 61
27 var_string_list: '"' encapsed_list '"' .
- $défaut réduction par utilisation de la règle 27 (var_string_list)
+ $default reduce using rule 27 (var_string_list)
-état 62
+state 62
5 statement: TC_OFFSET option_offset ']' '=' . string_or_value
- TC_RAW décalage et aller à l'état 20
- TC_CONSTANT décalage et aller à l'état 21
- TC_NUMBER décalage et aller à l'état 22
- TC_STRING décalage et aller à l'état 23
- TC_WHITESPACE décalage et aller à l'état 24
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- BOOL_TRUE décalage et aller à l'état 36
- BOOL_FALSE décalage et aller à l'état 37
- END_OF_LINE décalage et aller à l'état 38
- '"' décalage et aller à l'état 25
- '~' décalage et aller à l'état 39
- '!' décalage et aller à l'état 40
- '(' décalage et aller à l'état 41
-
- string_or_value aller à l'état 69
- var_string_list aller à l'état 43
- expr aller à l'état 44
- cfg_var_ref aller à l'état 28
- constant_string aller à l'état 29
-
-
-état 63
+ TC_RAW shift, and go to state 20
+ TC_CONSTANT shift, and go to state 21
+ TC_NUMBER shift, and go to state 22
+ TC_STRING shift, and go to state 23
+ TC_WHITESPACE shift, and go to state 24
+ TC_DOLLAR_CURLY shift, and go to state 13
+ BOOL_TRUE shift, and go to state 36
+ BOOL_FALSE shift, and go to state 37
+ END_OF_LINE shift, and go to state 38
+ '"' shift, and go to state 25
+ '~' shift, and go to state 39
+ '!' shift, and go to state 40
+ '(' shift, and go to state 41
+
+ string_or_value go to state 69
+ var_string_list go to state 43
+ expr go to state 44
+ cfg_var_ref go to state 28
+ constant_string go to state 29
+
+
+state 63
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
30 var_string_list: var_string_list '"' encapsed_list . '"'
- TC_DOLLAR_CURLY décalage et aller à l'état 13
- TC_QUOTED_STRING décalage et aller à l'état 51
- '"' décalage et aller à l'état 70
+ TC_DOLLAR_CURLY shift, and go to state 13
+ TC_QUOTED_STRING shift, and go to state 51
+ '"' shift, and go to state 70
- cfg_var_ref aller à l'état 53
+ cfg_var_ref go to state 53
-état 64
+state 64
24 var_string_list_section: var_string_list_section '"' encapsed_list '"' .
- $défaut réduction par utilisation de la règle 24 (var_string_list_section)
+ $default reduce using rule 24 (var_string_list_section)
-état 65
+state 65
37 expr: '(' expr ')' .
- $défaut réduction par utilisation de la règle 37 (expr)
+ $default reduce using rule 37 (expr)
-état 66
+state 66
32 expr: expr . '|' expr
33 | expr . '&' expr
34 | expr . '^' expr
34 | expr '^' expr .
- $défaut réduction par utilisation de la règle 34 (expr)
+ $default reduce using rule 34 (expr)
-état 67
+state 67
32 expr: expr . '|' expr
32 | expr '|' expr .
33 | expr . '&' expr
34 | expr . '^' expr
- $défaut réduction par utilisation de la règle 32 (expr)
+ $default reduce using rule 32 (expr)
-état 68
+state 68
32 expr: expr . '|' expr
33 | expr . '&' expr
33 | expr '&' expr .
34 | expr . '^' expr
- $défaut réduction par utilisation de la règle 33 (expr)
+ $default reduce using rule 33 (expr)
-état 69
+state 69
5 statement: TC_OFFSET option_offset ']' '=' string_or_value .
- $défaut réduction par utilisation de la règle 5 (statement)
+ $default reduce using rule 5 (statement)
-état 70
+state 70
30 var_string_list: var_string_list '"' encapsed_list '"' .
- $défaut réduction par utilisation de la règle 30 (var_string_list)
+ $default reduce using rule 30 (var_string_list)
diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y
index 901babad6..3823efd41 100644
--- a/Zend/zend_ini_parser.y
+++ b/Zend/zend_ini_parser.y
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini_scanner.c b/Zend/zend_ini_scanner.c
index 87ba66431..c73f3cedd 100644
--- a/Zend/zend_ini_scanner.c
+++ b/Zend/zend_ini_scanner.c
@@ -1,4663 +1,4663 @@
-/* Generated by re2c 0.13.5 */
-#line 1 "Zend/zend_ini_scanner.l"
-/*
- +----------------------------------------------------------------------+
- | Zend Engine |
- +----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 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: Zeev Suraski <zeev@zend.com> |
- | Jani Taskinen <jani@php.net> |
- | Marcus Boerger <helly@php.net> |
- | Nuno Lopes <nlopess@php.net> |
- | Scott MacVicar <scottmac@php.net> |
- +----------------------------------------------------------------------+
-*/
-
-/* $Id$ */
-
-#include <errno.h>
-#include "zend.h"
-#include "zend_globals.h"
-#include <zend_ini_parser.h>
-#include "zend_ini_scanner.h"
-
-#if 0
-# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
-#else
-# define YYDEBUG(s, c)
-#endif
-
-#include "zend_ini_scanner_defs.h"
-
-#define YYCTYPE unsigned char
-/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
- * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
-#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
-#define YYCURSOR SCNG(yy_cursor)
-#define YYLIMIT SCNG(yy_limit)
-#define YYMARKER SCNG(yy_marker)
-
-#define YYGETCONDITION() SCNG(yy_state)
-#define YYSETCONDITION(s) SCNG(yy_state) = s
-
-#define STATE(name) yyc##name
-
-/* emulate flex constructs */
-#define BEGIN(state) YYSETCONDITION(STATE(state))
-#define YYSTATE YYGETCONDITION()
-#define yytext ((char*)SCNG(yy_text))
-#define yyleng SCNG(yy_leng)
-#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \
- yyleng = (unsigned int)x; } while(0)
-
-/* #define yymore() goto yymore_restart */
-
-/* perform sanity check. If this message is triggered you should
- increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
-#define YYMAXFILL 6
-#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
-# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
-#endif
-
-
-/* How it works (for the core ini directives):
- * ===========================================
- *
- * 1. Scanner scans file for tokens and passes them to parser.
- * 2. Parser parses the tokens and passes the name/value pairs to the callback
- * function which stores them in the configuration hash table.
- * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual
- * registering of ini entries and uses zend_get_configuration_directive()
- * to fetch the previously stored name/value pair from configuration hash table
- * and registers the static ini entries which match the name to the value
- * into EG(ini_directives) hash table.
- * 4. PATH section entries are used per-request from down to top, each overriding
- * previous if one exists. zend_alter_ini_entry() is called for each entry.
- * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the
- * php_admin_* directives used within Apache httpd.conf when PHP is compiled as
- * module for Apache.
- * 5. User defined ini files (like .htaccess for apache) are parsed for each request and
- * stored in separate hash defined by SAPI.
- */
-
-/* TODO: (ordered by importance :-)
- * ===============================================================================
- *
- * - Separate constant lookup totally from plain strings (using CONSTANT pattern)
- * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators
- * - Add #include "some.ini"
- * - Allow variables to refer to options also when using parse_ini_file()
- *
- */
-
-/* Globals Macros */
-#define SCNG INI_SCNG
-#ifdef ZTS
-ZEND_API ts_rsrc_id ini_scanner_globals_id;
-#else
-ZEND_API zend_ini_scanner_globals ini_scanner_globals;
-#endif
-
-/* Eat leading whitespace */
-#define EAT_LEADING_WHITESPACE() \
- while (yytext[0]) { \
- if (yytext[0] == ' ' || yytext[0] == '\t') { \
- SCNG(yy_text)++; \
- yyleng--; \
- } else { \
- break; \
- } \
- }
-
-/* Eat trailing whitespace + extra char */
-#define EAT_TRAILING_WHITESPACE_EX(ch) \
- while (yyleng > 0 && ( \
- (ch != 'X' && yytext[yyleng - 1] == ch) || \
- yytext[yyleng - 1] == '\n' || \
- yytext[yyleng - 1] == '\r' || \
- yytext[yyleng - 1] == '\t' || \
- yytext[yyleng - 1] == ' ') \
- ) { \
- yyleng--; \
- }
-
-/* Eat trailing whitespace */
-#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
-
-#define zend_ini_copy_value(retval, str, len) { \
- Z_STRVAL_P(retval) = zend_strndup(str, len); \
- Z_STRLEN_P(retval) = len; \
- Z_TYPE_P(retval) = IS_STRING; \
-}
-
-#define RETURN_TOKEN(type, str, len) { \
- zend_ini_copy_value(ini_lval, str, len); \
- return type; \
-}
-
-static void _yy_push_state(int new_state TSRMLS_DC)
-{
- zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
- YYSETCONDITION(new_state);
-}
-
-#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
-
-static void yy_pop_state(TSRMLS_D)
-{
- int *stack_state;
- zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
- YYSETCONDITION(*stack_state);
- zend_stack_del_top(&SCNG(state_stack));
-}
-
-static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
-{
- YYCURSOR = (YYCTYPE*)str;
- SCNG(yy_start) = YYCURSOR;
- YYLIMIT = YYCURSOR + len;
-}
-
-#define ini_filename SCNG(filename)
-
-/* {{{ init_ini_scanner()
-*/
-static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
-{
- /* Sanity check */
- if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) {
- zend_error(E_WARNING, "Invalid scanner mode");
- return FAILURE;
- }
-
- SCNG(lineno) = 1;
- SCNG(scanner_mode) = scanner_mode;
- SCNG(yy_in) = fh;
-
- if (fh != NULL) {
- ini_filename = zend_strndup(fh->filename, strlen(fh->filename));
- } else {
- ini_filename = NULL;
- }
-
- zend_stack_init(&SCNG(state_stack));
- BEGIN(INITIAL);
-
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ shutdown_ini_scanner()
-*/
-void shutdown_ini_scanner(TSRMLS_D)
-{
- zend_stack_destroy(&SCNG(state_stack));
- if (ini_filename) {
- free(ini_filename);
- }
-}
-/* }}} */
-
-/* {{{ zend_ini_scanner_get_lineno()
-*/
-int zend_ini_scanner_get_lineno(TSRMLS_D)
-{
- return SCNG(lineno);
-}
-/* }}} */
-
-/* {{{ zend_ini_scanner_get_filename()
-*/
-char *zend_ini_scanner_get_filename(TSRMLS_D)
-{
- return ini_filename ? ini_filename : "Unknown";
-}
-/* }}} */
-
-/* {{{ zend_ini_open_file_for_scanning()
-*/
-int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC)
-{
- char *buf;
- size_t size;
-
- if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) {
- return FAILURE;
- }
-
- if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) {
- zend_file_handle_dtor(fh TSRMLS_CC);
- return FAILURE;
- }
-
- yy_scan_buffer(buf, size TSRMLS_CC);
-
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ zend_ini_prepare_string_for_scanning()
-*/
-int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC)
-{
- int len = strlen(str);
-
- if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) {
- return FAILURE;
- }
-
- yy_scan_buffer(str, len TSRMLS_CC);
-
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ zend_ini_escape_string()
- */
-static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC)
-{
- register char *s, *t;
- char *end;
-
- zend_ini_copy_value(lval, str, len);
-
- /* convert escape sequences */
- s = t = Z_STRVAL_P(lval);
- end = s + Z_STRLEN_P(lval);
-
- while (s < end) {
- if (*s == '\\') {
- s++;
- if (s >= end) {
- *t++ = '\\';
- continue;
- }
- switch (*s) {
- case '"':
- if (*s != quote_type) {
- *t++ = '\\';
- *t++ = *s;
- break;
- }
- case '\\':
- case '$':
- *t++ = *s;
- Z_STRLEN_P(lval)--;
- break;
- default:
- *t++ = '\\';
- *t++ = *s;
- break;
- }
- } else {
- *t++ = *s;
- }
- if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
- SCNG(lineno)++;
- }
- s++;
- }
- *t = 0;
-}
-/* }}} */
-
-int ini_lex(zval *ini_lval TSRMLS_DC)
-{
-restart:
- SCNG(yy_text) = YYCURSOR;
-
-/* yymore_restart: */
- /* detect EOF */
- if (YYCURSOR >= YYLIMIT) {
- if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) {
- BEGIN(INITIAL);
- return END_OF_LINE;
- }
- return 0;
- }
-
- /* Eat any UTF-8 BOM we find in the first 3 bytes */
- if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
- if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
- YYCURSOR += 3;
- goto restart;
- }
- }
-
-#line 337 "Zend/zend_ini_scanner.c"
-{
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- if (YYGETCONDITION() < 4) {
- if (YYGETCONDITION() < 2) {
- if (YYGETCONDITION() < 1) {
- goto yyc_INITIAL;
- } else {
- goto yyc_ST_OFFSET;
- }
- } else {
- if (YYGETCONDITION() < 3) {
- goto yyc_ST_SECTION_VALUE;
- } else {
- goto yyc_ST_VALUE;
- }
- }
- } else {
- if (YYGETCONDITION() < 6) {
- if (YYGETCONDITION() < 5) {
- goto yyc_ST_SECTION_RAW;
- } else {
- goto yyc_ST_DOUBLE_QUOTES;
- }
- } else {
- if (YYGETCONDITION() < 7) {
- goto yyc_ST_VARNAME;
- } else {
- goto yyc_ST_RAW;
- }
- }
- }
-/* *********************************** */
-yyc_INITIAL:
- {
- static const unsigned char yybm[] = {
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 160, 0, 144, 144, 0, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 240, 128, 128, 144, 128, 144, 128, 144,
- 128, 128, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 128, 144, 128, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 128, 144, 144, 128, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 128, 128, 128, 128, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144,
- };
-
- YYDEBUG(0, *YYCURSOR);
- YYFILL(5);
- yych = *YYCURSOR;
- YYDEBUG(-1, yych);
- switch (yych) {
- case '\t': goto yy4;
- case '\n': goto yy6;
- case '\r': goto yy8;
- case ' ': goto yy9;
- case '!':
- case '"':
- case '$':
- case '&':
- case '(':
- case ')':
- case '^':
- case '{':
- case '|':
- case '}':
- case '~': goto yy10;
- case '#': goto yy12;
- case '%':
- case '\'':
- case '*':
- case '+':
- case ',':
- case '-':
- case '.':
- case '/':
- case ':':
- case '<':
- case '>':
- case '?':
- case '@':
- case ']': goto yy13;
- case ';': goto yy14;
- case '=': goto yy16;
- case 'F':
- case 'f': goto yy18;
- case 'N':
- case 'n': goto yy19;
- case 'O':
- case 'o': goto yy20;
- case 'T':
- case 't': goto yy21;
- case 'Y':
- case 'y': goto yy22;
- case '[': goto yy23;
- default: goto yy2;
- }
-yy2:
- YYDEBUG(2, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy26;
-yy3:
- YYDEBUG(3, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 429 "Zend/zend_ini_scanner.l"
- { /* Get option name */
- /* Eat leading whitespace */
- EAT_LEADING_WHITESPACE();
-
- /* Eat trailing whitespace */
- EAT_TRAILING_WHITESPACE();
-
- RETURN_TOKEN(TC_LABEL, yytext, yyleng);
-}
-#line 476 "Zend/zend_ini_scanner.c"
-yy4:
- YYDEBUG(4, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy68;
-yy5:
- YYDEBUG(5, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 575 "Zend/zend_ini_scanner.l"
- {
- /* eat whitespace */
- goto restart;
-}
-#line 490 "Zend/zend_ini_scanner.c"
-yy6:
- YYDEBUG(6, *YYCURSOR);
- ++YYCURSOR;
-yy7:
- YYDEBUG(7, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 580 "Zend/zend_ini_scanner.l"
- {
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 502 "Zend/zend_ini_scanner.c"
-yy8:
- YYDEBUG(8, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy71;
- goto yy7;
-yy9:
- YYDEBUG(9, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy26;
- if (yych <= '\t') goto yy67;
- goto yy71;
- } else {
- if (yych == '\r') goto yy72;
- if (yych <= 0x1F) goto yy26;
- goto yy69;
- }
- } else {
- if (yych <= ':') {
- if (yych == '#') goto yy58;
- goto yy26;
- } else {
- if (yych <= ';') goto yy53;
- if (yych == '=') goto yy51;
- goto yy26;
- }
- }
-yy10:
- YYDEBUG(10, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(11, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 503 "Zend/zend_ini_scanner.l"
- { /* Disallow these chars outside option values */
- return yytext[0];
-}
-#line 541 "Zend/zend_ini_scanner.c"
-yy12:
- YYDEBUG(12, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy59;
-yy13:
- YYDEBUG(13, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy26;
-yy14:
- YYDEBUG(14, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy54;
- YYDEBUG(15, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 603 "Zend/zend_ini_scanner.l"
- {
- return 0;
-}
-#line 562 "Zend/zend_ini_scanner.c"
-yy16:
- YYDEBUG(16, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy52;
-yy17:
- YYDEBUG(17, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 439 "Zend/zend_ini_scanner.l"
- { /* Start option value */
- if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
- yy_push_state(ST_RAW TSRMLS_CC);
- } else {
- yy_push_state(ST_VALUE TSRMLS_CC);
- }
- return '=';
-}
-#line 580 "Zend/zend_ini_scanner.c"
-yy18:
- YYDEBUG(18, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy48;
- if (yych == 'a') goto yy48;
- goto yy26;
-yy19:
- YYDEBUG(19, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'U') {
- if (yych == 'O') goto yy44;
- if (yych <= 'T') goto yy26;
- goto yy45;
- } else {
- if (yych <= 'o') {
- if (yych <= 'n') goto yy26;
- goto yy44;
- } else {
- if (yych == 'u') goto yy45;
- goto yy26;
- }
- }
-yy20:
- YYDEBUG(20, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'N') {
- if (yych == 'F') goto yy38;
- if (yych <= 'M') goto yy26;
- goto yy31;
- } else {
- if (yych <= 'f') {
- if (yych <= 'e') goto yy26;
- goto yy38;
- } else {
- if (yych == 'n') goto yy31;
- goto yy26;
- }
- }
-yy21:
- YYDEBUG(21, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy36;
- if (yych == 'r') goto yy36;
- goto yy26;
-yy22:
- YYDEBUG(22, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy27;
- if (yych == 'e') goto yy27;
- goto yy26;
-yy23:
- YYDEBUG(23, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(24, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 358 "Zend/zend_ini_scanner.l"
- { /* Section start */
- /* Enter section data lookup state */
- if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
- yy_push_state(ST_SECTION_RAW TSRMLS_CC);
- } else {
- yy_push_state(ST_SECTION_VALUE TSRMLS_CC);
- }
- return TC_SECTION;
-}
-#line 646 "Zend/zend_ini_scanner.c"
-yy25:
- YYDEBUG(25, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy26:
- YYDEBUG(26, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy25;
- }
- if (yych == '[') goto yy28;
- goto yy3;
-yy27:
- YYDEBUG(27, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy31;
- if (yych == 's') goto yy31;
- goto yy26;
-yy28:
- YYDEBUG(28, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(29, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy28;
- }
- YYDEBUG(30, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 383 "Zend/zend_ini_scanner.l"
- { /* Start of option with offset */
- /* Eat leading whitespace */
- EAT_LEADING_WHITESPACE();
-
- /* Eat trailing whitespace and [ */
- EAT_TRAILING_WHITESPACE_EX('[');
-
- /* Enter offset lookup state */
- yy_push_state(ST_OFFSET TSRMLS_CC);
-
- RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
-}
-#line 689 "Zend/zend_ini_scanner.c"
-yy31:
- YYDEBUG(31, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(32, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy31;
- }
- if (yych <= '\'') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\t') goto yy34;
- } else {
- if (yych != '\r') goto yy25;
- }
- } else {
- if (yych <= '$') {
- if (yych == '#') goto yy25;
- } else {
- if (yych != '&') goto yy25;
- }
- }
- } else {
- if (yych <= 'Z') {
- if (yych <= ';') {
- if (yych <= ')') goto yy33;
- if (yych <= ':') goto yy25;
- } else {
- if (yych != '=') goto yy25;
- }
- } else {
- if (yych <= '^') {
- if (yych <= '[') goto yy28;
- if (yych <= ']') goto yy25;
- } else {
- if (yych <= 'z') goto yy25;
- if (yych >= 0x7F) goto yy25;
- }
- }
- }
-yy33:
- YYDEBUG(33, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 421 "Zend/zend_ini_scanner.l"
- { /* TRUE value (when used outside option value/offset this causes parse error!) */
- RETURN_TOKEN(BOOL_TRUE, "1", 1);
-}
-#line 739 "Zend/zend_ini_scanner.c"
-yy34:
- YYDEBUG(34, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(35, *YYCURSOR);
- if (yych == '\t') goto yy34;
- if (yych == ' ') goto yy34;
- goto yy33;
-yy36:
- YYDEBUG(36, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy37;
- if (yych != 'u') goto yy26;
-yy37:
- YYDEBUG(37, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy31;
- if (yych == 'e') goto yy31;
- goto yy26;
-yy38:
- YYDEBUG(38, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy39;
- if (yych != 'f') goto yy26;
-yy39:
- YYDEBUG(39, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(40, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\t') goto yy42;
- } else {
- if (yych != '\r') goto yy25;
- }
- } else {
- if (yych <= '#') {
- if (yych <= ' ') goto yy39;
- if (yych >= '#') goto yy25;
- } else {
- if (yych == '%') goto yy25;
- }
- }
- } else {
- if (yych <= '=') {
- if (yych <= ':') {
- if (yych <= '\'') goto yy25;
- if (yych >= '*') goto yy25;
- } else {
- if (yych == '<') goto yy25;
- }
- } else {
- if (yych <= ']') {
- if (yych == '[') goto yy28;
- goto yy25;
- } else {
- if (yych <= '^') goto yy41;
- if (yych <= 'z') goto yy25;
- if (yych >= 0x7F) goto yy25;
- }
- }
- }
-yy41:
- YYDEBUG(41, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
- { /* FALSE value (when used outside option value/offset this causes parse error!)*/
- RETURN_TOKEN(BOOL_FALSE, "", 0);
-}
-#line 813 "Zend/zend_ini_scanner.c"
-yy42:
- YYDEBUG(42, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(43, *YYCURSOR);
- if (yych == '\t') goto yy42;
- if (yych == ' ') goto yy42;
- goto yy41;
-yy44:
- YYDEBUG(44, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '\'') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy26;
- if (yych <= '\t') goto yy42;
- goto yy41;
- } else {
- if (yych == '\r') goto yy41;
- goto yy26;
- }
- } else {
- if (yych <= '#') {
- if (yych <= ' ') goto yy39;
- if (yych <= '"') goto yy41;
- goto yy26;
- } else {
- if (yych == '%') goto yy26;
- if (yych <= '&') goto yy41;
- goto yy26;
- }
- }
- } else {
- if (yych <= 'N') {
- if (yych <= ';') {
- if (yych <= ')') goto yy41;
- if (yych <= ':') goto yy26;
- goto yy41;
- } else {
- if (yych == '=') goto yy41;
- if (yych <= 'M') goto yy26;
- goto yy47;
- }
- } else {
- if (yych <= 'm') {
- if (yych == '^') goto yy41;
- goto yy26;
- } else {
- if (yych <= 'n') goto yy47;
- if (yych <= 'z') goto yy26;
- if (yych <= '~') goto yy41;
- goto yy26;
- }
- }
- }
-yy45:
- YYDEBUG(45, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy46;
- if (yych != 'l') goto yy26;
-yy46:
- YYDEBUG(46, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy39;
- if (yych == 'l') goto yy39;
- goto yy26;
-yy47:
- YYDEBUG(47, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy39;
- if (yych == 'e') goto yy39;
- goto yy26;
-yy48:
- YYDEBUG(48, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy49;
- if (yych != 'l') goto yy26;
-yy49:
- YYDEBUG(49, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy50;
- if (yych != 's') goto yy26;
-yy50:
- YYDEBUG(50, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy39;
- if (yych == 'e') goto yy39;
- goto yy26;
-yy51:
- YYDEBUG(51, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy52:
- YYDEBUG(52, *YYCURSOR);
- if (yych == '\t') goto yy51;
- if (yych == ' ') goto yy51;
- goto yy17;
-yy53:
- YYDEBUG(53, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy54:
- YYDEBUG(54, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy53;
- }
- if (yych >= '\r') goto yy57;
-yy55:
- YYDEBUG(55, *YYCURSOR);
- ++YYCURSOR;
-yy56:
- YYDEBUG(56, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 585 "Zend/zend_ini_scanner.l"
- { /* Comment */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 936 "Zend/zend_ini_scanner.c"
-yy57:
- YYDEBUG(57, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy55;
- goto yy56;
-yy58:
- YYDEBUG(58, *YYCURSOR);
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy59:
- YYDEBUG(59, *YYCURSOR);
- if (yych <= '\'') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy58;
- if (yych >= '\n') goto yy64;
- } else {
- if (yych == '\r') goto yy66;
- goto yy58;
- }
- } else {
- if (yych <= '$') {
- if (yych == '#') goto yy58;
- } else {
- if (yych != '&') goto yy58;
- }
- }
- } else {
- if (yych <= 'Z') {
- if (yych <= ';') {
- if (yych <= ')') goto yy60;
- if (yych <= ':') goto yy58;
- } else {
- if (yych != '=') goto yy58;
- }
- } else {
- if (yych <= '^') {
- if (yych <= '[') goto yy62;
- if (yych <= ']') goto yy58;
- } else {
- if (yych <= 'z') goto yy58;
- if (yych >= 0x7F) goto yy58;
- }
- }
- }
-yy60:
- YYDEBUG(60, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
- YYDEBUG(61, *YYCURSOR);
- if (yych == '\n') goto yy64;
- if (yych == '\r') goto yy66;
- goto yy60;
-yy62:
- YYDEBUG(62, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
- YYDEBUG(63, *YYCURSOR);
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy60;
- if (yych <= '\t') goto yy62;
- if (yych >= '\v') goto yy60;
- } else {
- if (yych <= '\r') goto yy66;
- if (yych == ' ') goto yy62;
- goto yy60;
- }
-yy64:
- YYDEBUG(64, *YYCURSOR);
- ++YYCURSOR;
-yy65:
- YYDEBUG(65, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 591 "Zend/zend_ini_scanner.l"
- { /* #Comment */
- zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno));
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 1022 "Zend/zend_ini_scanner.c"
-yy66:
- YYDEBUG(66, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy64;
- goto yy65;
-yy67:
- YYDEBUG(67, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy68:
- YYDEBUG(68, *YYCURSOR);
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy5;
- if (yych <= '\t') goto yy67;
- goto yy71;
- } else {
- if (yych == '\r') goto yy72;
- if (yych <= 0x1F) goto yy5;
- goto yy67;
- }
- } else {
- if (yych <= ':') {
- if (yych == '#') goto yy60;
- goto yy5;
- } else {
- if (yych <= ';') goto yy53;
- if (yych == '=') goto yy51;
- goto yy5;
- }
- }
-yy69:
- YYDEBUG(69, *YYCURSOR);
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
- YYDEBUG(70, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\t') goto yy67;
- } else {
- if (yych == '\r') goto yy72;
- goto yy25;
- }
- } else {
- if (yych <= '#') {
- if (yych <= ' ') goto yy69;
- if (yych <= '"') goto yy3;
- goto yy58;
- } else {
- if (yych == '%') goto yy25;
- goto yy3;
- }
- }
- } else {
- if (yych <= '=') {
- if (yych <= ':') {
- if (yych <= '\'') goto yy25;
- if (yych <= ')') goto yy3;
- goto yy25;
- } else {
- if (yych <= ';') goto yy53;
- if (yych <= '<') goto yy25;
- goto yy51;
- }
- } else {
- if (yych <= ']') {
- if (yych == '[') goto yy28;
- goto yy25;
- } else {
- if (yych <= '^') goto yy3;
- if (yych <= 'z') goto yy25;
- if (yych <= '~') goto yy3;
- goto yy25;
- }
- }
- }
-yy71:
- YYDEBUG(71, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy7;
-yy72:
- YYDEBUG(72, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy71;
- goto yy7;
- }
-/* *********************************** */
-yyc_ST_DOUBLE_QUOTES:
- {
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
- YYDEBUG(73, *YYCURSOR);
- YYFILL(2);
- yych = *YYCURSOR;
- if (yych == '"') goto yy77;
- if (yych == '$') goto yy79;
- YYDEBUG(75, *YYCURSOR);
- ++YYCURSOR;
-yy76:
- YYDEBUG(76, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 535 "Zend/zend_ini_scanner.l"
- { /* Escape double quoted string contents */
- if (YYCURSOR > YYLIMIT) {
- return 0;
- }
-
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '"':
- if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') {
- continue;
- }
- break;
- case '$':
- if (*YYCURSOR == '{') {
- break;
- }
- continue;
- case '\\':
- if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') {
- YYCURSOR++;
- }
- /* fall through */
- default:
- continue;
- }
-
- YYCURSOR--;
- break;
- }
-
- yyleng = YYCURSOR - SCNG(yy_text);
-
- zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
- return TC_QUOTED_STRING;
-}
-#line 1198 "Zend/zend_ini_scanner.c"
-yy77:
- YYDEBUG(77, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy83;
-yy78:
- YYDEBUG(78, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 530 "Zend/zend_ini_scanner.l"
- { /* Double quoted '"' string ends */
- yy_pop_state(TSRMLS_C);
- return '"';
-}
-#line 1212 "Zend/zend_ini_scanner.c"
-yy79:
- YYDEBUG(79, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '{') goto yy76;
- YYDEBUG(80, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(81, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 401 "Zend/zend_ini_scanner.l"
- { /* Variable start */
- yy_push_state(ST_VARNAME TSRMLS_CC);
- return TC_DOLLAR_CURLY;
-}
-#line 1226 "Zend/zend_ini_scanner.c"
-yy82:
- YYDEBUG(82, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy83:
- YYDEBUG(83, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy82;
- }
- goto yy78;
- }
-/* *********************************** */
-yyc_ST_OFFSET:
- {
- static const unsigned char yybm[] = {
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 194, 64, 66, 66, 64, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 194, 66, 64, 66, 68, 66, 66, 0,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 66, 64, 66, 66, 66, 66,
- 66, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 66, 72, 64, 66, 82,
- 66, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66,
- };
- YYDEBUG(84, *YYCURSOR);
- YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '-') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy86;
- if (yych <= '\t') goto yy88;
- goto yy89;
- } else {
- if (yych == '\r') goto yy89;
- if (yych >= ' ') goto yy88;
- }
- } else {
- if (yych <= '$') {
- if (yych == '"') goto yy91;
- if (yych >= '$') goto yy93;
- } else {
- if (yych == '\'') goto yy94;
- if (yych >= '-') goto yy95;
- }
- }
- } else {
- if (yych <= 'Z') {
- if (yych <= '9') {
- if (yych <= '.') goto yy96;
- if (yych >= '0') goto yy97;
- } else {
- if (yych == ';') goto yy89;
- if (yych >= 'A') goto yy99;
- }
- } else {
- if (yych <= '^') {
- if (yych <= '[') goto yy86;
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy102;
- } else {
- if (yych == '`') goto yy86;
- if (yych <= 'z') goto yy99;
- }
- }
- }
-yy86:
- YYDEBUG(86, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy105;
-yy87:
- YYDEBUG(87, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 521 "Zend/zend_ini_scanner.l"
- { /* Get rest as section/offset value */
- RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 1330 "Zend/zend_ini_scanner.c"
-yy88:
- YYDEBUG(88, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy131;
- }
- if (yych == '"') goto yy133;
- if (yych == ']') goto yy134;
- goto yy105;
-yy89:
- YYDEBUG(89, *YYCURSOR);
- ++YYCURSOR;
-yy90:
- YYDEBUG(90, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 603 "Zend/zend_ini_scanner.l"
- {
- return 0;
-}
-#line 1351 "Zend/zend_ini_scanner.c"
-yy91:
- YYDEBUG(91, *YYCURSOR);
- ++YYCURSOR;
-yy92:
- YYDEBUG(92, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 525 "Zend/zend_ini_scanner.l"
- { /* Double quoted '"' string start */
- yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
- return '"';
-}
-#line 1363 "Zend/zend_ini_scanner.c"
-yy93:
- YYDEBUG(93, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy90;
- if (yych <= '[') goto yy104;
- goto yy109;
- } else {
- if (yych == '{') goto yy129;
- goto yy104;
- }
-yy94:
- YYDEBUG(94, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy125;
- }
- goto yy90;
-yy95:
- YYDEBUG(95, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy105;
- if (yych <= '9') goto yy123;
- goto yy105;
-yy96:
- YYDEBUG(96, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy105;
- if (yych <= '9') goto yy121;
- goto yy105;
-yy97:
- YYDEBUG(97, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\'') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy98;
- if (yych <= '\f') goto yy105;
- } else {
- if (yych == '"') goto yy98;
- if (yych <= '&') goto yy105;
- }
- } else {
- if (yych <= '9') {
- if (yych == '.') goto yy117;
- if (yych <= '/') goto yy105;
- goto yy119;
- } else {
- if (yych <= ';') {
- if (yych <= ':') goto yy105;
- } else {
- if (yych != ']') goto yy105;
- }
- }
- }
-yy98:
- YYDEBUG(98, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 499 "Zend/zend_ini_scanner.l"
- { /* Get number option value as string */
- RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 1429 "Zend/zend_ini_scanner.c"
-yy99:
- YYDEBUG(99, *YYCURSOR);
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy115;
- }
- if (yych <= '"') {
- if (yych <= '\f') {
- if (yych != '\n') goto yy105;
- } else {
- if (yych <= '\r') goto yy100;
- if (yych <= '!') goto yy105;
- }
- } else {
- if (yych <= ':') {
- if (yych != '\'') goto yy105;
- } else {
- if (yych <= ';') goto yy100;
- if (yych != ']') goto yy105;
- }
- }
-yy100:
- YYDEBUG(100, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
- { /* Get constant option value */
- RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 1459 "Zend/zend_ini_scanner.c"
-yy101:
- YYDEBUG(101, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy104;
-yy102:
- YYDEBUG(102, *YYCURSOR);
- ++YYCURSOR;
-yy103:
- YYDEBUG(103, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 396 "Zend/zend_ini_scanner.l"
- { /* End of section or an option offset */
- BEGIN(INITIAL);
- return ']';
-}
-#line 1475 "Zend/zend_ini_scanner.c"
-yy104:
- YYDEBUG(104, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy105:
- YYDEBUG(105, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy104;
- }
- if (yych == '$') goto yy107;
- if (yych != '\\') goto yy87;
-yy106:
- YYDEBUG(106, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- goto yy104;
-yy107:
- YYDEBUG(107, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy108;
- if (yych <= '[') goto yy104;
- goto yy109;
- } else {
- if (yych != '{') goto yy104;
- }
-yy108:
- YYDEBUG(108, *YYCURSOR);
- YYCURSOR = YYMARKER;
- if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy87;
- } else {
- goto yy90;
- }
- } else {
- if (yyaccept <= 2) {
- goto yy98;
- } else {
- goto yy100;
- }
- }
-yy109:
- YYDEBUG(109, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 4) {
- goto yy110;
- }
- if (yych == '\\') goto yy112;
- goto yy104;
-yy110:
- YYDEBUG(110, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(111, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy110;
- }
- if (yych == '\\') goto yy114;
- goto yy104;
-yy112:
- YYDEBUG(112, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(113, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy110;
- }
- if (yych == '\\') goto yy112;
- goto yy104;
-yy114:
- YYDEBUG(114, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 4) {
- goto yy110;
- }
- if (yych == '\\') goto yy112;
- goto yy104;
-yy115:
- YYDEBUG(115, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(116, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy115;
- }
- if (yych <= '$') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy100;
- if (yych <= '\f') goto yy104;
- goto yy100;
- } else {
- if (yych == '"') goto yy100;
- if (yych <= '#') goto yy104;
- goto yy107;
- }
- } else {
- if (yych <= ';') {
- if (yych == '\'') goto yy100;
- if (yych <= ':') goto yy104;
- goto yy100;
- } else {
- if (yych <= '[') goto yy104;
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy100;
- goto yy104;
- }
- }
-yy117:
- YYDEBUG(117, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(118, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy117;
- }
- if (yych <= '$') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy98;
- if (yych <= '\f') goto yy104;
- goto yy98;
- } else {
- if (yych == '"') goto yy98;
- if (yych <= '#') goto yy104;
- goto yy107;
- }
- } else {
- if (yych <= ';') {
- if (yych == '\'') goto yy98;
- if (yych <= ':') goto yy104;
- goto yy98;
- } else {
- if (yych <= '[') goto yy104;
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy98;
- goto yy104;
- }
- }
-yy119:
- YYDEBUG(119, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(120, *YYCURSOR);
- if (yych <= '\'') {
- if (yych <= '!') {
- if (yych <= '\n') {
- if (yych <= '\t') goto yy104;
- goto yy98;
- } else {
- if (yych == '\r') goto yy98;
- goto yy104;
- }
- } else {
- if (yych <= '#') {
- if (yych <= '"') goto yy98;
- goto yy104;
- } else {
- if (yych <= '$') goto yy107;
- if (yych <= '&') goto yy104;
- goto yy98;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '.') {
- if (yych <= '-') goto yy104;
- goto yy117;
- } else {
- if (yych <= '/') goto yy104;
- if (yych <= '9') goto yy119;
- goto yy104;
- }
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy98;
- goto yy104;
- } else {
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy98;
- goto yy104;
- }
- }
- }
-yy121:
- YYDEBUG(121, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(122, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy98;
- if (yych <= '\f') goto yy104;
- goto yy98;
- } else {
- if (yych <= '"') {
- if (yych <= '!') goto yy104;
- goto yy98;
- } else {
- if (yych == '$') goto yy107;
- goto yy104;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '\'') goto yy98;
- if (yych <= '/') goto yy104;
- if (yych <= '9') goto yy121;
- goto yy104;
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy98;
- goto yy104;
- } else {
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy98;
- goto yy104;
- }
- }
- }
-yy123:
- YYDEBUG(123, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(124, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy98;
- if (yych <= '\f') goto yy104;
- goto yy98;
- } else {
- if (yych <= '"') {
- if (yych <= '!') goto yy104;
- goto yy98;
- } else {
- if (yych == '$') goto yy107;
- goto yy104;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '\'') goto yy98;
- if (yych <= '/') goto yy104;
- if (yych <= '9') goto yy123;
- goto yy104;
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy98;
- goto yy104;
- } else {
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy98;
- goto yy104;
- }
- }
- }
-yy125:
- YYDEBUG(125, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(126, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy125;
- }
- YYDEBUG(127, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(128, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 368 "Zend/zend_ini_scanner.l"
- { /* Raw string */
- /* Eat leading and trailing single quotes */
- if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
- SCNG(yy_text)++;
- yyleng = yyleng - 2;
- }
- RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 1774 "Zend/zend_ini_scanner.c"
-yy129:
- YYDEBUG(129, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(130, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 401 "Zend/zend_ini_scanner.l"
- { /* Variable start */
- yy_push_state(ST_VARNAME TSRMLS_CC);
- return TC_DOLLAR_CURLY;
-}
-#line 1785 "Zend/zend_ini_scanner.c"
-yy131:
- YYDEBUG(131, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(132, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy131;
- }
- if (yych <= '$') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy87;
- if (yych <= '\f') goto yy104;
- goto yy87;
- } else {
- if (yych == '"') goto yy133;
- if (yych <= '#') goto yy104;
- goto yy107;
- }
- } else {
- if (yych <= ';') {
- if (yych == '\'') goto yy87;
- if (yych <= ':') goto yy104;
- goto yy87;
- } else {
- if (yych <= '[') goto yy104;
- if (yych <= '\\') goto yy106;
- if (yych <= ']') goto yy134;
- goto yy104;
- }
- }
-yy133:
- YYDEBUG(133, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy92;
-yy134:
- YYDEBUG(134, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy103;
- }
-/* *********************************** */
-yyc_ST_RAW:
- {
- static const unsigned char yybm[] = {
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 192, 0, 64, 64, 0, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 192, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- };
- YYDEBUG(135, *YYCURSOR);
- YYFILL(3);
- yych = *YYCURSOR;
- if (yych <= '\f') {
- if (yych <= 0x08) {
- if (yych >= 0x01) goto yy139;
- } else {
- if (yych <= '\t') goto yy141;
- if (yych <= '\n') goto yy142;
- goto yy139;
- }
- } else {
- if (yych <= ' ') {
- if (yych <= '\r') goto yy144;
- if (yych <= 0x1F) goto yy139;
- goto yy141;
- } else {
- if (yych == ';') goto yy145;
- goto yy139;
- }
- }
- YYDEBUG(137, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(138, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 598 "Zend/zend_ini_scanner.l"
- { /* End of option value (if EOF is reached before EOL */
- BEGIN(INITIAL);
- return END_OF_LINE;
-}
-#line 1895 "Zend/zend_ini_scanner.c"
-yy139:
- YYDEBUG(139, *YYCURSOR);
- ++YYCURSOR;
-yy140:
- YYDEBUG(140, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 448 "Zend/zend_ini_scanner.l"
- { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
- char *sc = NULL;
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR) {
- case '\n':
- case '\r':
- goto end_raw_value_chars;
- break;
- case ';':
- if (sc == NULL) {
- sc = YYCURSOR;
- }
- /* no break */
- default:
- YYCURSOR++;
- break;
- }
- }
-end_raw_value_chars:
- yyleng = YYCURSOR - SCNG(yy_text);
-
- /* Eat trailing semicolons */
- while (yytext[yyleng - 1] == ';') {
- yyleng--;
- }
-
- /* Eat leading and trailing double quotes */
- if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
- SCNG(yy_text)++;
- yyleng = yyleng - 2;
- } else if (sc) {
- YYCURSOR = sc;
- yyleng = YYCURSOR - SCNG(yy_text);
- }
- RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 1939 "Zend/zend_ini_scanner.c"
-yy141:
- YYDEBUG(141, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\r') {
- if (yych <= 0x08) goto yy140;
- if (yych <= '\n') goto yy153;
- if (yych <= '\f') goto yy140;
- goto yy153;
- } else {
- if (yych <= ' ') {
- if (yych <= 0x1F) goto yy140;
- goto yy153;
- } else {
- if (yych == ';') goto yy153;
- goto yy140;
- }
- }
-yy142:
- YYDEBUG(142, *YYCURSOR);
- ++YYCURSOR;
-yy143:
- YYDEBUG(143, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 489 "Zend/zend_ini_scanner.l"
- { /* End of option value */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 1970 "Zend/zend_ini_scanner.c"
-yy144:
- YYDEBUG(144, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy151;
- goto yy143;
-yy145:
- YYDEBUG(145, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy147;
-yy146:
- YYDEBUG(146, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy147:
- YYDEBUG(147, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy146;
- }
- if (yych >= '\r') goto yy150;
-yy148:
- YYDEBUG(148, *YYCURSOR);
- ++YYCURSOR;
-yy149:
- YYDEBUG(149, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 585 "Zend/zend_ini_scanner.l"
- { /* Comment */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 2004 "Zend/zend_ini_scanner.c"
-yy150:
- YYDEBUG(150, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy148;
- goto yy149;
-yy151:
- YYDEBUG(151, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy143;
-yy152:
- YYDEBUG(152, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy153:
- YYDEBUG(153, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy152;
- }
- if (yych <= '\f') {
- if (yych == '\n') goto yy151;
- } else {
- if (yych <= '\r') goto yy155;
- if (yych == ';') goto yy146;
- }
- YYDEBUG(154, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 575 "Zend/zend_ini_scanner.l"
- {
- /* eat whitespace */
- goto restart;
-}
-#line 2038 "Zend/zend_ini_scanner.c"
-yy155:
- YYDEBUG(155, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy151;
- goto yy143;
- }
-/* *********************************** */
-yyc_ST_SECTION_RAW:
- {
- static const unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 192, 0, 128, 128, 0, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 192, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 0, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
- YYDEBUG(156, *YYCURSOR);
- YYFILL(3);
- yych = *YYCURSOR;
- if (yych <= '\f') {
- if (yych == '\n') goto yy160;
- } else {
- if (yych <= '\r') goto yy160;
- if (yych == ']') goto yy162;
- }
- YYDEBUG(158, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy169;
-yy159:
- YYDEBUG(159, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 485 "Zend/zend_ini_scanner.l"
- { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
- RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 2102 "Zend/zend_ini_scanner.c"
-yy160:
- YYDEBUG(160, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(161, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 603 "Zend/zend_ini_scanner.l"
- {
- return 0;
-}
-#line 2112 "Zend/zend_ini_scanner.c"
-yy162:
- YYDEBUG(162, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy165;
-yy163:
- YYDEBUG(163, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 377 "Zend/zend_ini_scanner.l"
- { /* End of section */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return ']';
-}
-#line 2127 "Zend/zend_ini_scanner.c"
-yy164:
- YYDEBUG(164, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy165:
- YYDEBUG(165, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy164;
- }
- if (yych == '\n') goto yy166;
- if (yych == '\r') goto yy167;
- goto yy163;
-yy166:
- YYDEBUG(166, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy163;
-yy167:
- YYDEBUG(167, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy166;
- goto yy163;
-yy168:
- YYDEBUG(168, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy169:
- YYDEBUG(169, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy168;
- }
- goto yy159;
- }
-/* *********************************** */
-yyc_ST_SECTION_VALUE:
- {
- static const unsigned char yybm[] = {
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 134, 128, 132, 132, 128, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 134, 132, 128, 132, 136, 132, 132, 0,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 132, 128, 132, 132, 132, 132,
- 132, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 132, 144, 128, 132, 164,
- 132, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132,
- };
- YYDEBUG(170, *YYCURSOR);
- YYFILL(3);
- yych = *YYCURSOR;
- if (yych <= '-') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy172;
- if (yych <= '\t') goto yy174;
- goto yy175;
- } else {
- if (yych == '\r') goto yy175;
- if (yych >= ' ') goto yy174;
- }
- } else {
- if (yych <= '$') {
- if (yych == '"') goto yy177;
- if (yych >= '$') goto yy179;
- } else {
- if (yych == '\'') goto yy180;
- if (yych >= '-') goto yy181;
- }
- }
- } else {
- if (yych <= 'Z') {
- if (yych <= '9') {
- if (yych <= '.') goto yy182;
- if (yych >= '0') goto yy183;
- } else {
- if (yych == ';') goto yy175;
- if (yych >= 'A') goto yy185;
- }
- } else {
- if (yych <= '^') {
- if (yych <= '[') goto yy172;
- if (yych <= '\\') goto yy187;
- if (yych <= ']') goto yy188;
- } else {
- if (yych == '`') goto yy172;
- if (yych <= 'z') goto yy185;
- }
- }
- }
-yy172:
- YYDEBUG(172, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy195;
-yy173:
- YYDEBUG(173, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 521 "Zend/zend_ini_scanner.l"
- { /* Get rest as section/offset value */
- RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 2253 "Zend/zend_ini_scanner.c"
-yy174:
- YYDEBUG(174, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy221;
- goto yy195;
- } else {
- if (yych <= ' ') goto yy221;
- if (yych == '"') goto yy223;
- goto yy195;
- }
-yy175:
- YYDEBUG(175, *YYCURSOR);
- ++YYCURSOR;
-yy176:
- YYDEBUG(176, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 603 "Zend/zend_ini_scanner.l"
- {
- return 0;
-}
-#line 2276 "Zend/zend_ini_scanner.c"
-yy177:
- YYDEBUG(177, *YYCURSOR);
- ++YYCURSOR;
-yy178:
- YYDEBUG(178, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 525 "Zend/zend_ini_scanner.l"
- { /* Double quoted '"' string start */
- yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
- return '"';
-}
-#line 2288 "Zend/zend_ini_scanner.c"
-yy179:
- YYDEBUG(179, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy176;
- if (yych <= '[') goto yy194;
- goto yy199;
- } else {
- if (yych == '{') goto yy219;
- goto yy194;
- }
-yy180:
- YYDEBUG(180, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy215;
- }
- goto yy176;
-yy181:
- YYDEBUG(181, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy195;
- if (yych <= '9') goto yy213;
- goto yy195;
-yy182:
- YYDEBUG(182, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy195;
- if (yych <= '9') goto yy211;
- goto yy195;
-yy183:
- YYDEBUG(183, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\'') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy184;
- if (yych <= '\f') goto yy195;
- } else {
- if (yych == '"') goto yy184;
- if (yych <= '&') goto yy195;
- }
- } else {
- if (yych <= '9') {
- if (yych == '.') goto yy207;
- if (yych <= '/') goto yy195;
- goto yy209;
- } else {
- if (yych <= ';') {
- if (yych <= ':') goto yy195;
- } else {
- if (yych != ']') goto yy195;
- }
- }
- }
-yy184:
- YYDEBUG(184, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 499 "Zend/zend_ini_scanner.l"
- { /* Get number option value as string */
- RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 2354 "Zend/zend_ini_scanner.c"
-yy185:
- YYDEBUG(185, *YYCURSOR);
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy205;
- }
- if (yych <= '"') {
- if (yych <= '\f') {
- if (yych != '\n') goto yy195;
- } else {
- if (yych <= '\r') goto yy186;
- if (yych <= '!') goto yy195;
- }
- } else {
- if (yych <= ':') {
- if (yych != '\'') goto yy195;
- } else {
- if (yych <= ';') goto yy186;
- if (yych != ']') goto yy195;
- }
- }
-yy186:
- YYDEBUG(186, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
- { /* Get constant option value */
- RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 2384 "Zend/zend_ini_scanner.c"
-yy187:
- YYDEBUG(187, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy194;
-yy188:
- YYDEBUG(188, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy191;
-yy189:
- YYDEBUG(189, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 377 "Zend/zend_ini_scanner.l"
- { /* End of section */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return ']';
-}
-#line 2403 "Zend/zend_ini_scanner.c"
-yy190:
- YYDEBUG(190, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy191:
- YYDEBUG(191, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy190;
- }
- if (yych == '\n') goto yy192;
- if (yych == '\r') goto yy193;
- goto yy189;
-yy192:
- YYDEBUG(192, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy189;
-yy193:
- YYDEBUG(193, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy192;
- goto yy189;
-yy194:
- YYDEBUG(194, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy195:
- YYDEBUG(195, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
- }
- if (yych == '$') goto yy197;
- if (yych != '\\') goto yy173;
-yy196:
- YYDEBUG(196, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- goto yy194;
-yy197:
- YYDEBUG(197, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy198;
- if (yych <= '[') goto yy194;
- goto yy199;
- } else {
- if (yych != '{') goto yy194;
- }
-yy198:
- YYDEBUG(198, *YYCURSOR);
- YYCURSOR = YYMARKER;
- if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy173;
- } else {
- goto yy176;
- }
- } else {
- if (yyaccept <= 2) {
- goto yy184;
- } else {
- goto yy186;
- }
- }
-yy199:
- YYDEBUG(199, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 8) {
- goto yy200;
- }
- if (yych == '\\') goto yy202;
- goto yy194;
-yy200:
- YYDEBUG(200, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(201, *YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy200;
- }
- if (yych == '\\') goto yy204;
- goto yy194;
-yy202:
- YYDEBUG(202, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(203, *YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy200;
- }
- if (yych == '\\') goto yy202;
- goto yy194;
-yy204:
- YYDEBUG(204, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 8) {
- goto yy200;
- }
- if (yych == '\\') goto yy202;
- goto yy194;
-yy205:
- YYDEBUG(205, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(206, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy205;
- }
- if (yych <= '$') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy186;
- if (yych <= '\f') goto yy194;
- goto yy186;
- } else {
- if (yych == '"') goto yy186;
- if (yych <= '#') goto yy194;
- goto yy197;
- }
- } else {
- if (yych <= ';') {
- if (yych == '\'') goto yy186;
- if (yych <= ':') goto yy194;
- goto yy186;
- } else {
- if (yych <= '[') goto yy194;
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy186;
- goto yy194;
- }
- }
-yy207:
- YYDEBUG(207, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(208, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy207;
- }
- if (yych <= '$') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy184;
- if (yych <= '\f') goto yy194;
- goto yy184;
- } else {
- if (yych == '"') goto yy184;
- if (yych <= '#') goto yy194;
- goto yy197;
- }
- } else {
- if (yych <= ';') {
- if (yych == '\'') goto yy184;
- if (yych <= ':') goto yy194;
- goto yy184;
- } else {
- if (yych <= '[') goto yy194;
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy184;
- goto yy194;
- }
- }
-yy209:
- YYDEBUG(209, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(210, *YYCURSOR);
- if (yych <= '\'') {
- if (yych <= '!') {
- if (yych <= '\n') {
- if (yych <= '\t') goto yy194;
- goto yy184;
- } else {
- if (yych == '\r') goto yy184;
- goto yy194;
- }
- } else {
- if (yych <= '#') {
- if (yych <= '"') goto yy184;
- goto yy194;
- } else {
- if (yych <= '$') goto yy197;
- if (yych <= '&') goto yy194;
- goto yy184;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '.') {
- if (yych <= '-') goto yy194;
- goto yy207;
- } else {
- if (yych <= '/') goto yy194;
- if (yych <= '9') goto yy209;
- goto yy194;
- }
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy184;
- goto yy194;
- } else {
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy184;
- goto yy194;
- }
- }
- }
-yy211:
- YYDEBUG(211, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(212, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy184;
- if (yych <= '\f') goto yy194;
- goto yy184;
- } else {
- if (yych <= '"') {
- if (yych <= '!') goto yy194;
- goto yy184;
- } else {
- if (yych == '$') goto yy197;
- goto yy194;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '\'') goto yy184;
- if (yych <= '/') goto yy194;
- if (yych <= '9') goto yy211;
- goto yy194;
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy184;
- goto yy194;
- } else {
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy184;
- goto yy194;
- }
- }
- }
-yy213:
- YYDEBUG(213, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(214, *YYCURSOR);
- if (yych <= '&') {
- if (yych <= '\r') {
- if (yych == '\n') goto yy184;
- if (yych <= '\f') goto yy194;
- goto yy184;
- } else {
- if (yych <= '"') {
- if (yych <= '!') goto yy194;
- goto yy184;
- } else {
- if (yych == '$') goto yy197;
- goto yy194;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '\'') goto yy184;
- if (yych <= '/') goto yy194;
- if (yych <= '9') goto yy213;
- goto yy194;
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy184;
- goto yy194;
- } else {
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy184;
- goto yy194;
- }
- }
- }
-yy215:
- YYDEBUG(215, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(216, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy215;
- }
- YYDEBUG(217, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(218, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 368 "Zend/zend_ini_scanner.l"
- { /* Raw string */
- /* Eat leading and trailing single quotes */
- if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
- SCNG(yy_text)++;
- yyleng = yyleng - 2;
- }
- RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 2724 "Zend/zend_ini_scanner.c"
-yy219:
- YYDEBUG(219, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(220, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 401 "Zend/zend_ini_scanner.l"
- { /* Variable start */
- yy_push_state(ST_VARNAME TSRMLS_CC);
- return TC_DOLLAR_CURLY;
-}
-#line 2735 "Zend/zend_ini_scanner.c"
-yy221:
- YYDEBUG(221, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(222, *YYCURSOR);
- if (yych <= '"') {
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy194;
- if (yych <= '\t') goto yy221;
- if (yych <= '\n') goto yy173;
- goto yy194;
- } else {
- if (yych <= 0x1F) {
- if (yych <= '\r') goto yy173;
- goto yy194;
- } else {
- if (yych <= ' ') goto yy221;
- if (yych <= '!') goto yy194;
- }
- }
- } else {
- if (yych <= ':') {
- if (yych <= '$') {
- if (yych <= '#') goto yy194;
- goto yy197;
- } else {
- if (yych == '\'') goto yy173;
- goto yy194;
- }
- } else {
- if (yych <= '[') {
- if (yych <= ';') goto yy173;
- goto yy194;
- } else {
- if (yych <= '\\') goto yy196;
- if (yych <= ']') goto yy173;
- goto yy194;
- }
- }
- }
-yy223:
- YYDEBUG(223, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy178;
- }
-/* *********************************** */
-yyc_ST_VALUE:
- {
- static const unsigned char yybm[] = {
- 160, 162, 162, 162, 162, 162, 162, 162,
- 162, 176, 128, 162, 162, 128, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 176, 160, 160, 162, 168, 162, 160, 32,
- 160, 160, 162, 162, 162, 162, 162, 162,
- 230, 230, 230, 230, 230, 230, 230, 230,
- 230, 230, 162, 160, 162, 160, 162, 162,
- 162, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 162, 162, 162, 160, 166,
- 162, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 162, 160, 162, 160, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- };
- YYDEBUG(224, *YYCURSOR);
- YYFILL(6);
- yych = *YYCURSOR;
- YYDEBUG(-1, yych);
- switch (yych) {
- case 0x00: goto yy226;
- case '\t':
- case ' ': goto yy230;
- case '\n': goto yy232;
- case '\r': goto yy234;
- case '!':
- case '&':
- case '(':
- case ')':
- case '^':
- case '|':
- case '~': goto yy235;
- case '"': goto yy237;
- case '$': goto yy239;
- case '\'': goto yy240;
- case '-': goto yy241;
- case '.': goto yy242;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy243;
- case ';': goto yy245;
- case '=': goto yy246;
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Z':
- case '_':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'z': goto yy248;
- case 'F':
- case 'f': goto yy250;
- case 'N':
- case 'n': goto yy251;
- case 'O':
- case 'o': goto yy252;
- case 'T':
- case 't': goto yy253;
- case 'Y':
- case 'y': goto yy254;
- default: goto yy228;
- }
-yy226:
- YYDEBUG(226, *YYCURSOR);
- ++YYCURSOR;
-yy227:
- YYDEBUG(227, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 598 "Zend/zend_ini_scanner.l"
- { /* End of option value (if EOF is reached before EOL */
- BEGIN(INITIAL);
- return END_OF_LINE;
-}
-#line 2921 "Zend/zend_ini_scanner.c"
-yy228:
- YYDEBUG(228, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy256;
-yy229:
- YYDEBUG(229, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 517 "Zend/zend_ini_scanner.l"
- { /* Get everything else as option/offset value */
- RETURN_TOKEN(TC_STRING, yytext, yyleng);
-}
-#line 2934 "Zend/zend_ini_scanner.c"
-yy230:
- YYDEBUG(230, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy306;
-yy231:
- YYDEBUG(231, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 571 "Zend/zend_ini_scanner.l"
- {
- RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
-}
-#line 2947 "Zend/zend_ini_scanner.c"
-yy232:
- YYDEBUG(232, *YYCURSOR);
- ++YYCURSOR;
-yy233:
- YYDEBUG(233, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 489 "Zend/zend_ini_scanner.l"
- { /* End of option value */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 2960 "Zend/zend_ini_scanner.c"
-yy234:
- YYDEBUG(234, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy304;
- goto yy233;
-yy235:
- YYDEBUG(235, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy303;
-yy236:
- YYDEBUG(236, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 507 "Zend/zend_ini_scanner.l"
- { /* Boolean operators */
- return yytext[0];
-}
-#line 2978 "Zend/zend_ini_scanner.c"
-yy237:
- YYDEBUG(237, *YYCURSOR);
- ++YYCURSOR;
-yy238:
- YYDEBUG(238, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 525 "Zend/zend_ini_scanner.l"
- { /* Double quoted '"' string start */
- yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
- return '"';
-}
-#line 2990 "Zend/zend_ini_scanner.c"
-yy239:
- YYDEBUG(239, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy227;
- if (yych <= '[') goto yy255;
- goto yy262;
- } else {
- if (yych == '{') goto yy300;
- goto yy255;
- }
-yy240:
- YYDEBUG(240, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy296;
- }
- goto yy227;
-yy241:
- YYDEBUG(241, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy256;
- if (yych <= '9') goto yy294;
- goto yy256;
-yy242:
- YYDEBUG(242, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy256;
- if (yych <= '9') goto yy292;
- goto yy256;
-yy243:
- YYDEBUG(243, *YYCURSOR);
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy256;
- } else {
- if (yych != '\r') goto yy256;
- }
- } else {
- if (yych <= ')') {
- if (yych <= '"') goto yy244;
- if (yych <= '%') goto yy256;
- } else {
- if (yych == '.') goto yy288;
- goto yy256;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= '9') goto yy290;
- if (yych <= ':') goto yy256;
- } else {
- if (yych != '=') goto yy256;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy244;
- if (yych <= '{') goto yy256;
- } else {
- if (yych != '~') goto yy256;
- }
- }
- }
-yy244:
- YYDEBUG(244, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 499 "Zend/zend_ini_scanner.l"
- { /* Get number option value as string */
- RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
-}
-#line 3069 "Zend/zend_ini_scanner.c"
-yy245:
- YYDEBUG(245, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy284;
-yy246:
- YYDEBUG(246, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(247, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 511 "Zend/zend_ini_scanner.l"
- { /* Make = used in option value to trigger error */
- yyless(0);
- BEGIN(INITIAL);
- return END_OF_LINE;
-}
-#line 3086 "Zend/zend_ini_scanner.c"
-yy248:
- YYDEBUG(248, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy257;
- }
- if (yych <= ':') {
- if (yych <= '\r') {
- if (yych <= 0x08) {
- if (yych >= 0x01) goto yy256;
- } else {
- if (yych <= '\n') goto yy249;
- if (yych <= '\f') goto yy256;
- }
- } else {
- if (yych <= '"') {
- if (yych <= 0x1F) goto yy256;
- } else {
- if (yych <= '%') goto yy256;
- if (yych >= '*') goto yy256;
- }
- }
- } else {
- if (yych <= '^') {
- if (yych <= '<') {
- if (yych >= '<') goto yy256;
- } else {
- if (yych <= '=') goto yy249;
- if (yych <= ']') goto yy256;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '{') goto yy256;
- } else {
- if (yych != '~') goto yy256;
- }
- }
- }
-yy249:
- YYDEBUG(249, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
- { /* Get constant option value */
- RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
-}
-#line 3133 "Zend/zend_ini_scanner.c"
-yy250:
- YYDEBUG(250, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '<') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '/') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- goto yy256;
- } else {
- if (yych <= '9') goto yy257;
- if (yych == ';') goto yy249;
- goto yy256;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= 'A') {
- if (yych <= '=') goto yy249;
- if (yych <= '@') goto yy256;
- goto yy280;
- } else {
- if (yych <= 'Z') goto yy257;
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- goto yy257;
- }
- } else {
- if (yych <= '{') {
- if (yych <= '`') goto yy256;
- if (yych <= 'a') goto yy280;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy251:
- YYDEBUG(251, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'N') {
- if (yych <= '%') {
- if (yych <= '\f') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- if (yych <= '\n') goto yy249;
- goto yy256;
- } else {
- if (yych <= '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- if (yych <= '"') goto yy249;
- goto yy256;
- }
- } else {
- if (yych <= ':') {
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- if (yych <= '9') goto yy257;
- goto yy256;
- } else {
- if (yych <= '<') {
- if (yych <= ';') goto yy249;
- goto yy256;
- } else {
- if (yych <= '=') goto yy249;
- if (yych <= '@') goto yy256;
- goto yy257;
- }
- }
- }
- } else {
- if (yych <= 'n') {
- if (yych <= 'Z') {
- if (yych <= 'O') goto yy276;
- if (yych == 'U') goto yy277;
- goto yy257;
- } else {
- if (yych <= '^') {
- if (yych <= ']') goto yy256;
- goto yy249;
- } else {
- if (yych == '`') goto yy256;
- goto yy257;
- }
- }
- } else {
- if (yych <= 'z') {
- if (yych <= 'o') goto yy276;
- if (yych == 'u') goto yy277;
- goto yy257;
- } else {
- if (yych <= '|') {
- if (yych <= '{') goto yy256;
- goto yy249;
- } else {
- if (yych == '~') goto yy249;
- goto yy256;
- }
- }
- }
- }
-yy252:
- YYDEBUG(252, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'E') {
- if (yych <= '%') {
- if (yych <= '\f') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- if (yych <= '\n') goto yy249;
- goto yy256;
- } else {
- if (yych <= '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- if (yych <= '"') goto yy249;
- goto yy256;
- }
- } else {
- if (yych <= ':') {
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- if (yych <= '9') goto yy257;
- goto yy256;
- } else {
- if (yych <= '<') {
- if (yych <= ';') goto yy249;
- goto yy256;
- } else {
- if (yych <= '=') goto yy249;
- if (yych <= '@') goto yy256;
- goto yy257;
- }
- }
- }
- } else {
- if (yych <= 'e') {
- if (yych <= 'Z') {
- if (yych <= 'F') goto yy271;
- if (yych == 'N') goto yy265;
- goto yy257;
- } else {
- if (yych <= '^') {
- if (yych <= ']') goto yy256;
- goto yy249;
- } else {
- if (yych == '`') goto yy256;
- goto yy257;
- }
- }
- } else {
- if (yych <= 'z') {
- if (yych <= 'f') goto yy271;
- if (yych == 'n') goto yy265;
- goto yy257;
- } else {
- if (yych <= '|') {
- if (yych <= '{') goto yy256;
- goto yy249;
- } else {
- if (yych == '~') goto yy249;
- goto yy256;
- }
- }
- }
- }
-yy253:
- YYDEBUG(253, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'R') goto yy269;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'r') goto yy269;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy254:
- YYDEBUG(254, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'E') goto yy259;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'e') goto yy259;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy255:
- YYDEBUG(255, *YYCURSOR);
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy256:
- YYDEBUG(256, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy255;
- }
- if (yych == '$') goto yy260;
- goto yy229;
-yy257:
- YYDEBUG(257, *YYCURSOR);
- yyaccept = 4;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(258, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy257;
- }
- if (yych <= ')') {
- if (yych <= '\r') {
- if (yych <= 0x08) {
- if (yych <= 0x00) goto yy249;
- goto yy255;
- } else {
- if (yych <= '\n') goto yy249;
- if (yych <= '\f') goto yy255;
- goto yy249;
- }
- } else {
- if (yych <= '#') {
- if (yych <= 0x1F) goto yy255;
- if (yych <= '"') goto yy249;
- goto yy255;
- } else {
- if (yych <= '$') goto yy260;
- if (yych <= '%') goto yy255;
- goto yy249;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= ':') goto yy255;
- goto yy249;
- } else {
- if (yych == '=') goto yy249;
- goto yy255;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy249;
- if (yych <= '{') goto yy255;
- goto yy249;
- } else {
- if (yych == '~') goto yy249;
- goto yy255;
- }
- }
- }
-yy259:
- YYDEBUG(259, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'S') goto yy265;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 's') goto yy265;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy260:
- YYDEBUG(260, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '\\') {
- if (yych <= 0x00) goto yy261;
- if (yych <= '[') goto yy255;
- goto yy262;
- } else {
- if (yych != '{') goto yy255;
- }
-yy261:
- YYDEBUG(261, *YYCURSOR);
- YYCURSOR = YYMARKER;
- if (yyaccept <= 3) {
- if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy229;
- } else {
- goto yy231;
- }
- } else {
- if (yyaccept <= 2) {
- goto yy227;
- } else {
- goto yy244;
- }
- }
- } else {
- if (yyaccept <= 5) {
- if (yyaccept <= 4) {
- goto yy249;
- } else {
- goto yy266;
- }
- } else {
- goto yy273;
- }
- }
-yy262:
- YYDEBUG(262, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 8) {
- goto yy263;
- }
- goto yy255;
-yy263:
- YYDEBUG(263, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(264, *YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy263;
- }
- if (yych <= 0x00) goto yy229;
- if (yych == '\\') goto yy262;
- goto yy255;
-yy265:
- YYDEBUG(265, *YYCURSOR);
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy267;
- }
- if (yych <= ';') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy266;
- if (yych <= '\t') goto yy256;
- } else {
- if (yych != '\r') goto yy256;
- }
- } else {
- if (yych <= ')') {
- if (yych <= '"') goto yy266;
- if (yych <= '%') goto yy256;
- } else {
- if (yych <= '/') goto yy256;
- if (yych <= '9') goto yy257;
- if (yych <= ':') goto yy256;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= '@') {
- if (yych != '=') goto yy256;
- } else {
- if (yych <= 'Z') goto yy257;
- if (yych <= ']') goto yy256;
- if (yych >= '_') goto yy257;
- }
- } else {
- if (yych <= '{') {
- if (yych <= '`') goto yy256;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych >= 0x7F) goto yy256;
- }
- }
- }
-yy266:
- YYDEBUG(266, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 421 "Zend/zend_ini_scanner.l"
- { /* TRUE value (when used outside option value/offset this causes parse error!) */
- RETURN_TOKEN(BOOL_TRUE, "1", 1);
-}
-#line 3645 "Zend/zend_ini_scanner.c"
-yy267:
- YYDEBUG(267, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(268, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy267;
- }
- goto yy266;
-yy269:
- YYDEBUG(269, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych != 'U') goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'u') goto yy270;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy270:
- YYDEBUG(270, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'E') goto yy265;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'e') goto yy265;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy271:
- YYDEBUG(271, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych != 'F') goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'f') goto yy272;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy272:
- YYDEBUG(272, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy257;
- }
- if (yych <= ')') {
- if (yych <= '\f') {
- if (yych <= 0x08) {
- if (yych >= 0x01) goto yy256;
- } else {
- if (yych <= '\t') goto yy274;
- if (yych >= '\v') goto yy256;
- }
- } else {
- if (yych <= ' ') {
- if (yych <= '\r') goto yy273;
- if (yych <= 0x1F) goto yy256;
- goto yy274;
- } else {
- if (yych <= '"') goto yy273;
- if (yych <= '%') goto yy256;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= ':') goto yy256;
- } else {
- if (yych != '=') goto yy256;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy273;
- if (yych <= '{') goto yy256;
- } else {
- if (yych != '~') goto yy256;
- }
- }
- }
-yy273:
- YYDEBUG(273, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
- { /* FALSE value (when used outside option value/offset this causes parse error!)*/
- RETURN_TOKEN(BOOL_FALSE, "", 0);
-}
-#line 3855 "Zend/zend_ini_scanner.c"
-yy274:
- YYDEBUG(274, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(275, *YYCURSOR);
- if (yych == '\t') goto yy274;
- if (yych == ' ') goto yy274;
- goto yy273;
-yy276:
- YYDEBUG(276, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '<') {
- if (yych <= ' ') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy273;
- if (yych <= 0x08) goto yy256;
- if (yych <= '\t') goto yy274;
- goto yy273;
- } else {
- if (yych == '\r') goto yy273;
- if (yych <= 0x1F) goto yy256;
- goto yy274;
- }
- } else {
- if (yych <= '/') {
- if (yych <= '"') goto yy273;
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy273;
- goto yy256;
- } else {
- if (yych <= '9') goto yy257;
- if (yych == ';') goto yy273;
- goto yy256;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= 'N') {
- if (yych <= '=') goto yy273;
- if (yych <= '@') goto yy256;
- if (yych <= 'M') goto yy257;
- goto yy279;
- } else {
- if (yych <= 'Z') goto yy257;
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy273;
- goto yy257;
- }
- } else {
- if (yych <= 'z') {
- if (yych <= '`') goto yy256;
- if (yych == 'n') goto yy279;
- goto yy257;
- } else {
- if (yych <= '|') {
- if (yych <= '{') goto yy256;
- goto yy273;
- } else {
- if (yych == '~') goto yy273;
- goto yy256;
- }
- }
- }
- }
-yy277:
- YYDEBUG(277, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych != 'L') goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'l') goto yy278;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy278:
- YYDEBUG(278, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'L') goto yy272;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'l') goto yy272;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy279:
- YYDEBUG(279, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'E') goto yy272;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'e') goto yy272;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy280:
- YYDEBUG(280, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych != 'L') goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'l') goto yy281;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy281:
- YYDEBUG(281, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych != 'S') goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 's') goto yy282;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy282:
- YYDEBUG(282, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '=') {
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy249;
- if (yych <= 0x08) goto yy256;
- goto yy249;
- } else {
- if (yych == '\r') goto yy249;
- if (yych <= 0x1F) goto yy256;
- goto yy249;
- }
- } else {
- if (yych <= '9') {
- if (yych <= '%') goto yy256;
- if (yych <= ')') goto yy249;
- if (yych <= '/') goto yy256;
- goto yy257;
- } else {
- if (yych == ';') goto yy249;
- if (yych <= '<') goto yy256;
- goto yy249;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy256;
- if (yych == 'E') goto yy272;
- goto yy257;
- } else {
- if (yych <= ']') goto yy256;
- if (yych <= '^') goto yy249;
- if (yych <= '_') goto yy257;
- goto yy256;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'e') goto yy272;
- if (yych <= 'z') goto yy257;
- goto yy256;
- } else {
- if (yych == '}') goto yy256;
- if (yych <= '~') goto yy249;
- goto yy256;
- }
- }
- }
-yy283:
- YYDEBUG(283, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy284:
- YYDEBUG(284, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy283;
- }
- if (yych >= '\r') goto yy287;
-yy285:
- YYDEBUG(285, *YYCURSOR);
- ++YYCURSOR;
-yy286:
- YYDEBUG(286, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 585 "Zend/zend_ini_scanner.l"
- { /* Comment */
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-#line 4248 "Zend/zend_ini_scanner.c"
-yy287:
- YYDEBUG(287, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy285;
- goto yy286;
-yy288:
- YYDEBUG(288, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(289, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy288;
- }
- if (yych <= ')') {
- if (yych <= '\r') {
- if (yych <= 0x08) {
- if (yych <= 0x00) goto yy244;
- goto yy255;
- } else {
- if (yych <= '\n') goto yy244;
- if (yych <= '\f') goto yy255;
- goto yy244;
- }
- } else {
- if (yych <= '#') {
- if (yych <= 0x1F) goto yy255;
- if (yych <= '"') goto yy244;
- goto yy255;
- } else {
- if (yych <= '$') goto yy260;
- if (yych <= '%') goto yy255;
- goto yy244;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= ':') goto yy255;
- goto yy244;
- } else {
- if (yych == '=') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy244;
- if (yych <= '{') goto yy255;
- goto yy244;
- } else {
- if (yych == '~') goto yy244;
- goto yy255;
- }
- }
- }
-yy290:
- YYDEBUG(290, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(291, *YYCURSOR);
- if (yych <= '.') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy255;
- goto yy244;
- } else {
- if (yych == '\r') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '$') {
- if (yych <= '"') goto yy244;
- if (yych <= '#') goto yy255;
- goto yy260;
- } else {
- if (yych <= '%') goto yy255;
- if (yych <= ')') goto yy244;
- if (yych <= '-') goto yy255;
- goto yy288;
- }
- }
- } else {
- if (yych <= '=') {
- if (yych <= ':') {
- if (yych <= '/') goto yy255;
- if (yych <= '9') goto yy290;
- goto yy255;
- } else {
- if (yych == '<') goto yy255;
- goto yy244;
- }
- } else {
- if (yych <= '{') {
- if (yych == '^') goto yy244;
- goto yy255;
- } else {
- if (yych == '}') goto yy255;
- if (yych <= '~') goto yy244;
- goto yy255;
- }
- }
- }
-yy292:
- YYDEBUG(292, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(293, *YYCURSOR);
- if (yych <= '/') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy255;
- goto yy244;
- } else {
- if (yych == '\r') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '$') {
- if (yych <= '"') goto yy244;
- if (yych <= '#') goto yy255;
- goto yy260;
- } else {
- if (yych <= '%') goto yy255;
- if (yych <= ')') goto yy244;
- goto yy255;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= '9') goto yy292;
- if (yych <= ':') goto yy255;
- goto yy244;
- } else {
- if (yych == '=') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy244;
- if (yych <= '{') goto yy255;
- goto yy244;
- } else {
- if (yych == '~') goto yy244;
- goto yy255;
- }
- }
- }
-yy294:
- YYDEBUG(294, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(295, *YYCURSOR);
- if (yych <= '/') {
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy255;
- goto yy244;
- } else {
- if (yych == '\r') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '$') {
- if (yych <= '"') goto yy244;
- if (yych <= '#') goto yy255;
- goto yy260;
- } else {
- if (yych <= '%') goto yy255;
- if (yych <= ')') goto yy244;
- goto yy255;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= ';') {
- if (yych <= '9') goto yy294;
- if (yych <= ':') goto yy255;
- goto yy244;
- } else {
- if (yych == '=') goto yy244;
- goto yy255;
- }
- } else {
- if (yych <= '|') {
- if (yych <= '^') goto yy244;
- if (yych <= '{') goto yy255;
- goto yy244;
- } else {
- if (yych == '~') goto yy244;
- goto yy255;
- }
- }
- }
-yy296:
- YYDEBUG(296, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(297, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy296;
- }
- YYDEBUG(298, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(299, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 368 "Zend/zend_ini_scanner.l"
- { /* Raw string */
- /* Eat leading and trailing single quotes */
- if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
- SCNG(yy_text)++;
- yyleng = yyleng - 2;
- }
- RETURN_TOKEN(TC_RAW, yytext, yyleng);
-}
-#line 4475 "Zend/zend_ini_scanner.c"
-yy300:
- YYDEBUG(300, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(301, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 401 "Zend/zend_ini_scanner.l"
- { /* Variable start */
- yy_push_state(ST_VARNAME TSRMLS_CC);
- return TC_DOLLAR_CURLY;
-}
-#line 4486 "Zend/zend_ini_scanner.c"
-yy302:
- YYDEBUG(302, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy303:
- YYDEBUG(303, *YYCURSOR);
- if (yych == '\t') goto yy302;
- if (yych == ' ') goto yy302;
- goto yy236;
-yy304:
- YYDEBUG(304, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy233;
-yy305:
- YYDEBUG(305, *YYCURSOR);
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
-yy306:
- YYDEBUG(306, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych <= '\n') {
- if (yych <= 0x08) goto yy231;
- if (yych <= '\t') goto yy305;
- goto yy304;
- } else {
- if (yych == '\r') goto yy308;
- goto yy231;
- }
- } else {
- if (yych <= '"') {
- if (yych <= ' ') goto yy305;
- if (yych <= '!') goto yy231;
- } else {
- if (yych == ';') goto yy283;
- goto yy231;
- }
- }
- YYDEBUG(307, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy238;
-yy308:
- YYDEBUG(308, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy304;
- goto yy233;
- }
-/* *********************************** */
-yyc_ST_VARNAME:
- {
- static const unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 0, 0, 128, 128, 0, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 0, 0, 128, 0, 128, 0, 128,
- 0, 0, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 128, 0, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 128, 128, 0, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
- YYDEBUG(309, *YYCURSOR);
- YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= ')') {
- if (yych <= '"') {
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy311;
- if (yych <= '\n') goto yy313;
- } else {
- if (yych <= '\r') goto yy313;
- if (yych >= '!') goto yy313;
- }
- } else {
- if (yych <= '%') {
- if (yych == '$') goto yy313;
- } else {
- if (yych != '\'') goto yy313;
- }
- }
- } else {
- if (yych <= '[') {
- if (yych <= '<') {
- if (yych == ';') goto yy313;
- } else {
- if (yych <= '=') goto yy313;
- if (yych >= '[') goto yy313;
- }
- } else {
- if (yych <= 'z') {
- if (yych == '^') goto yy313;
- } else {
- if (yych == '}') goto yy315;
- if (yych <= '~') goto yy313;
- }
- }
- }
-yy311:
- YYDEBUG(311, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy318;
-yy312:
- YYDEBUG(312, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 406 "Zend/zend_ini_scanner.l"
- { /* Variable name */
- /* Eat leading whitespace */
- EAT_LEADING_WHITESPACE();
-
- /* Eat trailing whitespace */
- EAT_TRAILING_WHITESPACE();
-
- RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
-}
-#line 4627 "Zend/zend_ini_scanner.c"
-yy313:
- YYDEBUG(313, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(314, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 603 "Zend/zend_ini_scanner.l"
- {
- return 0;
-}
-#line 4637 "Zend/zend_ini_scanner.c"
-yy315:
- YYDEBUG(315, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(316, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
- { /* Variable end */
- yy_pop_state(TSRMLS_C);
- return '}';
-}
-#line 4648 "Zend/zend_ini_scanner.c"
-yy317:
- YYDEBUG(317, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy318:
- YYDEBUG(318, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy317;
- }
- goto yy312;
- }
-}
-#line 607 "Zend/zend_ini_scanner.l"
-
-}
+/* Generated by re2c 0.13.5 */
+#line 1 "Zend/zend_ini_scanner.l"
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2014 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: Zeev Suraski <zeev@zend.com> |
+ | Jani Taskinen <jani@php.net> |
+ | Marcus Boerger <helly@php.net> |
+ | Nuno Lopes <nlopess@php.net> |
+ | Scott MacVicar <scottmac@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#include <errno.h>
+#include "zend.h"
+#include "zend_globals.h"
+#include <zend_ini_parser.h>
+#include "zend_ini_scanner.h"
+
+#if 0
+# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
+#else
+# define YYDEBUG(s, c)
+#endif
+
+#include "zend_ini_scanner_defs.h"
+
+#define YYCTYPE unsigned char
+/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
+ * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
+#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
+#define YYCURSOR SCNG(yy_cursor)
+#define YYLIMIT SCNG(yy_limit)
+#define YYMARKER SCNG(yy_marker)
+
+#define YYGETCONDITION() SCNG(yy_state)
+#define YYSETCONDITION(s) SCNG(yy_state) = s
+
+#define STATE(name) yyc##name
+
+/* emulate flex constructs */
+#define BEGIN(state) YYSETCONDITION(STATE(state))
+#define YYSTATE YYGETCONDITION()
+#define yytext ((char*)SCNG(yy_text))
+#define yyleng SCNG(yy_leng)
+#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \
+ yyleng = (unsigned int)x; } while(0)
+
+/* #define yymore() goto yymore_restart */
+
+/* perform sanity check. If this message is triggered you should
+ increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+#define YYMAXFILL 6
+#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
+# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
+#endif
+
+
+/* How it works (for the core ini directives):
+ * ===========================================
+ *
+ * 1. Scanner scans file for tokens and passes them to parser.
+ * 2. Parser parses the tokens and passes the name/value pairs to the callback
+ * function which stores them in the configuration hash table.
+ * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual
+ * registering of ini entries and uses zend_get_configuration_directive()
+ * to fetch the previously stored name/value pair from configuration hash table
+ * and registers the static ini entries which match the name to the value
+ * into EG(ini_directives) hash table.
+ * 4. PATH section entries are used per-request from down to top, each overriding
+ * previous if one exists. zend_alter_ini_entry() is called for each entry.
+ * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the
+ * php_admin_* directives used within Apache httpd.conf when PHP is compiled as
+ * module for Apache.
+ * 5. User defined ini files (like .htaccess for apache) are parsed for each request and
+ * stored in separate hash defined by SAPI.
+ */
+
+/* TODO: (ordered by importance :-)
+ * ===============================================================================
+ *
+ * - Separate constant lookup totally from plain strings (using CONSTANT pattern)
+ * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators
+ * - Add #include "some.ini"
+ * - Allow variables to refer to options also when using parse_ini_file()
+ *
+ */
+
+/* Globals Macros */
+#define SCNG INI_SCNG
+#ifdef ZTS
+ZEND_API ts_rsrc_id ini_scanner_globals_id;
+#else
+ZEND_API zend_ini_scanner_globals ini_scanner_globals;
+#endif
+
+/* Eat leading whitespace */
+#define EAT_LEADING_WHITESPACE() \
+ while (yytext[0]) { \
+ if (yytext[0] == ' ' || yytext[0] == '\t') { \
+ SCNG(yy_text)++; \
+ yyleng--; \
+ } else { \
+ break; \
+ } \
+ }
+
+/* Eat trailing whitespace + extra char */
+#define EAT_TRAILING_WHITESPACE_EX(ch) \
+ while (yyleng > 0 && ( \
+ (ch != 'X' && yytext[yyleng - 1] == ch) || \
+ yytext[yyleng - 1] == '\n' || \
+ yytext[yyleng - 1] == '\r' || \
+ yytext[yyleng - 1] == '\t' || \
+ yytext[yyleng - 1] == ' ') \
+ ) { \
+ yyleng--; \
+ }
+
+/* Eat trailing whitespace */
+#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
+
+#define zend_ini_copy_value(retval, str, len) { \
+ Z_STRVAL_P(retval) = zend_strndup(str, len); \
+ Z_STRLEN_P(retval) = len; \
+ Z_TYPE_P(retval) = IS_STRING; \
+}
+
+#define RETURN_TOKEN(type, str, len) { \
+ zend_ini_copy_value(ini_lval, str, len); \
+ return type; \
+}
+
+static void _yy_push_state(int new_state TSRMLS_DC)
+{
+ zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
+ YYSETCONDITION(new_state);
+}
+
+#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
+
+static void yy_pop_state(TSRMLS_D)
+{
+ int *stack_state;
+ zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
+ YYSETCONDITION(*stack_state);
+ zend_stack_del_top(&SCNG(state_stack));
+}
+
+static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
+{
+ YYCURSOR = (YYCTYPE*)str;
+ SCNG(yy_start) = YYCURSOR;
+ YYLIMIT = YYCURSOR + len;
+}
+
+#define ini_filename SCNG(filename)
+
+/* {{{ init_ini_scanner()
+*/
+static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
+{
+ /* Sanity check */
+ if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) {
+ zend_error(E_WARNING, "Invalid scanner mode");
+ return FAILURE;
+ }
+
+ SCNG(lineno) = 1;
+ SCNG(scanner_mode) = scanner_mode;
+ SCNG(yy_in) = fh;
+
+ if (fh != NULL) {
+ ini_filename = zend_strndup(fh->filename, strlen(fh->filename));
+ } else {
+ ini_filename = NULL;
+ }
+
+ zend_stack_init(&SCNG(state_stack));
+ BEGIN(INITIAL);
+
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ shutdown_ini_scanner()
+*/
+void shutdown_ini_scanner(TSRMLS_D)
+{
+ zend_stack_destroy(&SCNG(state_stack));
+ if (ini_filename) {
+ free(ini_filename);
+ }
+}
+/* }}} */
+
+/* {{{ zend_ini_scanner_get_lineno()
+*/
+int zend_ini_scanner_get_lineno(TSRMLS_D)
+{
+ return SCNG(lineno);
+}
+/* }}} */
+
+/* {{{ zend_ini_scanner_get_filename()
+*/
+char *zend_ini_scanner_get_filename(TSRMLS_D)
+{
+ return ini_filename ? ini_filename : "Unknown";
+}
+/* }}} */
+
+/* {{{ zend_ini_open_file_for_scanning()
+*/
+int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC)
+{
+ char *buf;
+ size_t size;
+
+ if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) {
+ return FAILURE;
+ }
+
+ if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) {
+ zend_file_handle_dtor(fh TSRMLS_CC);
+ return FAILURE;
+ }
+
+ yy_scan_buffer(buf, size TSRMLS_CC);
+
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ zend_ini_prepare_string_for_scanning()
+*/
+int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC)
+{
+ int len = strlen(str);
+
+ if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) {
+ return FAILURE;
+ }
+
+ yy_scan_buffer(str, len TSRMLS_CC);
+
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ zend_ini_escape_string()
+ */
+static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC)
+{
+ register char *s, *t;
+ char *end;
+
+ zend_ini_copy_value(lval, str, len);
+
+ /* convert escape sequences */
+ s = t = Z_STRVAL_P(lval);
+ end = s + Z_STRLEN_P(lval);
+
+ while (s < end) {
+ if (*s == '\\') {
+ s++;
+ if (s >= end) {
+ *t++ = '\\';
+ continue;
+ }
+ switch (*s) {
+ case '"':
+ if (*s != quote_type) {
+ *t++ = '\\';
+ *t++ = *s;
+ break;
+ }
+ case '\\':
+ case '$':
+ *t++ = *s;
+ Z_STRLEN_P(lval)--;
+ break;
+ default:
+ *t++ = '\\';
+ *t++ = *s;
+ break;
+ }
+ } else {
+ *t++ = *s;
+ }
+ if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+ SCNG(lineno)++;
+ }
+ s++;
+ }
+ *t = 0;
+}
+/* }}} */
+
+int ini_lex(zval *ini_lval TSRMLS_DC)
+{
+restart:
+ SCNG(yy_text) = YYCURSOR;
+
+/* yymore_restart: */
+ /* detect EOF */
+ if (YYCURSOR >= YYLIMIT) {
+ if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) {
+ BEGIN(INITIAL);
+ return END_OF_LINE;
+ }
+ return 0;
+ }
+
+ /* Eat any UTF-8 BOM we find in the first 3 bytes */
+ if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
+ if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
+ YYCURSOR += 3;
+ goto restart;
+ }
+ }
+
+#line 337 "Zend/zend_ini_scanner.c"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ if (YYGETCONDITION() < 4) {
+ if (YYGETCONDITION() < 2) {
+ if (YYGETCONDITION() < 1) {
+ goto yyc_INITIAL;
+ } else {
+ goto yyc_ST_OFFSET;
+ }
+ } else {
+ if (YYGETCONDITION() < 3) {
+ goto yyc_ST_SECTION_VALUE;
+ } else {
+ goto yyc_ST_VALUE;
+ }
+ }
+ } else {
+ if (YYGETCONDITION() < 6) {
+ if (YYGETCONDITION() < 5) {
+ goto yyc_ST_SECTION_RAW;
+ } else {
+ goto yyc_ST_DOUBLE_QUOTES;
+ }
+ } else {
+ if (YYGETCONDITION() < 7) {
+ goto yyc_ST_VARNAME;
+ } else {
+ goto yyc_ST_RAW;
+ }
+ }
+ }
+/* *********************************** */
+yyc_INITIAL:
+ {
+ static const unsigned char yybm[] = {
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 160, 0, 144, 144, 0, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 240, 128, 128, 144, 128, 144, 128, 144,
+ 128, 128, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 128, 144, 128, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 128, 144, 144, 128, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 128, 128, 128, 128, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ };
+
+ YYDEBUG(0, *YYCURSOR);
+ YYFILL(5);
+ yych = *YYCURSOR;
+ YYDEBUG(-1, yych);
+ switch (yych) {
+ case '\t': goto yy4;
+ case '\n': goto yy6;
+ case '\r': goto yy8;
+ case ' ': goto yy9;
+ case '!':
+ case '"':
+ case '$':
+ case '&':
+ case '(':
+ case ')':
+ case '^':
+ case '{':
+ case '|':
+ case '}':
+ case '~': goto yy10;
+ case '#': goto yy12;
+ case '%':
+ case '\'':
+ case '*':
+ case '+':
+ case ',':
+ case '-':
+ case '.':
+ case '/':
+ case ':':
+ case '<':
+ case '>':
+ case '?':
+ case '@':
+ case ']': goto yy13;
+ case ';': goto yy14;
+ case '=': goto yy16;
+ case 'F':
+ case 'f': goto yy18;
+ case 'N':
+ case 'n': goto yy19;
+ case 'O':
+ case 'o': goto yy20;
+ case 'T':
+ case 't': goto yy21;
+ case 'Y':
+ case 'y': goto yy22;
+ case '[': goto yy23;
+ default: goto yy2;
+ }
+yy2:
+ YYDEBUG(2, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy26;
+yy3:
+ YYDEBUG(3, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 429 "Zend/zend_ini_scanner.l"
+ { /* Get option name */
+ /* Eat leading whitespace */
+ EAT_LEADING_WHITESPACE();
+
+ /* Eat trailing whitespace */
+ EAT_TRAILING_WHITESPACE();
+
+ RETURN_TOKEN(TC_LABEL, yytext, yyleng);
+}
+#line 476 "Zend/zend_ini_scanner.c"
+yy4:
+ YYDEBUG(4, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy68;
+yy5:
+ YYDEBUG(5, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 575 "Zend/zend_ini_scanner.l"
+ {
+ /* eat whitespace */
+ goto restart;
+}
+#line 490 "Zend/zend_ini_scanner.c"
+yy6:
+ YYDEBUG(6, *YYCURSOR);
+ ++YYCURSOR;
+yy7:
+ YYDEBUG(7, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 580 "Zend/zend_ini_scanner.l"
+ {
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 502 "Zend/zend_ini_scanner.c"
+yy8:
+ YYDEBUG(8, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy71;
+ goto yy7;
+yy9:
+ YYDEBUG(9, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy26;
+ if (yych <= '\t') goto yy67;
+ goto yy71;
+ } else {
+ if (yych == '\r') goto yy72;
+ if (yych <= 0x1F) goto yy26;
+ goto yy69;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych == '#') goto yy58;
+ goto yy26;
+ } else {
+ if (yych <= ';') goto yy53;
+ if (yych == '=') goto yy51;
+ goto yy26;
+ }
+ }
+yy10:
+ YYDEBUG(10, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(11, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 503 "Zend/zend_ini_scanner.l"
+ { /* Disallow these chars outside option values */
+ return yytext[0];
+}
+#line 541 "Zend/zend_ini_scanner.c"
+yy12:
+ YYDEBUG(12, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy59;
+yy13:
+ YYDEBUG(13, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy26;
+yy14:
+ YYDEBUG(14, *YYCURSOR);
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy54;
+ YYDEBUG(15, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 603 "Zend/zend_ini_scanner.l"
+ {
+ return 0;
+}
+#line 562 "Zend/zend_ini_scanner.c"
+yy16:
+ YYDEBUG(16, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy52;
+yy17:
+ YYDEBUG(17, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 439 "Zend/zend_ini_scanner.l"
+ { /* Start option value */
+ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
+ yy_push_state(ST_RAW TSRMLS_CC);
+ } else {
+ yy_push_state(ST_VALUE TSRMLS_CC);
+ }
+ return '=';
+}
+#line 580 "Zend/zend_ini_scanner.c"
+yy18:
+ YYDEBUG(18, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy48;
+ if (yych == 'a') goto yy48;
+ goto yy26;
+yy19:
+ YYDEBUG(19, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'O') goto yy44;
+ if (yych <= 'T') goto yy26;
+ goto yy45;
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'n') goto yy26;
+ goto yy44;
+ } else {
+ if (yych == 'u') goto yy45;
+ goto yy26;
+ }
+ }
+yy20:
+ YYDEBUG(20, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych == 'F') goto yy38;
+ if (yych <= 'M') goto yy26;
+ goto yy31;
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'e') goto yy26;
+ goto yy38;
+ } else {
+ if (yych == 'n') goto yy31;
+ goto yy26;
+ }
+ }
+yy21:
+ YYDEBUG(21, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy36;
+ if (yych == 'r') goto yy36;
+ goto yy26;
+yy22:
+ YYDEBUG(22, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy27;
+ if (yych == 'e') goto yy27;
+ goto yy26;
+yy23:
+ YYDEBUG(23, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(24, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 358 "Zend/zend_ini_scanner.l"
+ { /* Section start */
+ /* Enter section data lookup state */
+ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
+ yy_push_state(ST_SECTION_RAW TSRMLS_CC);
+ } else {
+ yy_push_state(ST_SECTION_VALUE TSRMLS_CC);
+ }
+ return TC_SECTION;
+}
+#line 646 "Zend/zend_ini_scanner.c"
+yy25:
+ YYDEBUG(25, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy26:
+ YYDEBUG(26, *YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy25;
+ }
+ if (yych == '[') goto yy28;
+ goto yy3;
+yy27:
+ YYDEBUG(27, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy31;
+ if (yych == 's') goto yy31;
+ goto yy26;
+yy28:
+ YYDEBUG(28, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(29, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy28;
+ }
+ YYDEBUG(30, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 383 "Zend/zend_ini_scanner.l"
+ { /* Start of option with offset */
+ /* Eat leading whitespace */
+ EAT_LEADING_WHITESPACE();
+
+ /* Eat trailing whitespace and [ */
+ EAT_TRAILING_WHITESPACE_EX('[');
+
+ /* Enter offset lookup state */
+ yy_push_state(ST_OFFSET TSRMLS_CC);
+
+ RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
+}
+#line 689 "Zend/zend_ini_scanner.c"
+yy31:
+ YYDEBUG(31, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(32, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy31;
+ }
+ if (yych <= '\'') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy34;
+ } else {
+ if (yych != '\r') goto yy25;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych == '#') goto yy25;
+ } else {
+ if (yych != '&') goto yy25;
+ }
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= ';') {
+ if (yych <= ')') goto yy33;
+ if (yych <= ':') goto yy25;
+ } else {
+ if (yych != '=') goto yy25;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= '[') goto yy28;
+ if (yych <= ']') goto yy25;
+ } else {
+ if (yych <= 'z') goto yy25;
+ if (yych >= 0x7F) goto yy25;
+ }
+ }
+ }
+yy33:
+ YYDEBUG(33, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 421 "Zend/zend_ini_scanner.l"
+ { /* TRUE value (when used outside option value/offset this causes parse error!) */
+ RETURN_TOKEN(BOOL_TRUE, "1", 1);
+}
+#line 739 "Zend/zend_ini_scanner.c"
+yy34:
+ YYDEBUG(34, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(35, *YYCURSOR);
+ if (yych == '\t') goto yy34;
+ if (yych == ' ') goto yy34;
+ goto yy33;
+yy36:
+ YYDEBUG(36, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy37;
+ if (yych != 'u') goto yy26;
+yy37:
+ YYDEBUG(37, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy31;
+ if (yych == 'e') goto yy31;
+ goto yy26;
+yy38:
+ YYDEBUG(38, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy39;
+ if (yych != 'f') goto yy26;
+yy39:
+ YYDEBUG(39, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(40, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy42;
+ } else {
+ if (yych != '\r') goto yy25;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= ' ') goto yy39;
+ if (yych >= '#') goto yy25;
+ } else {
+ if (yych == '%') goto yy25;
+ }
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy25;
+ if (yych >= '*') goto yy25;
+ } else {
+ if (yych == '<') goto yy25;
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych == '[') goto yy28;
+ goto yy25;
+ } else {
+ if (yych <= '^') goto yy41;
+ if (yych <= 'z') goto yy25;
+ if (yych >= 0x7F) goto yy25;
+ }
+ }
+ }
+yy41:
+ YYDEBUG(41, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 425 "Zend/zend_ini_scanner.l"
+ { /* FALSE value (when used outside option value/offset this causes parse error!)*/
+ RETURN_TOKEN(BOOL_FALSE, "", 0);
+}
+#line 813 "Zend/zend_ini_scanner.c"
+yy42:
+ YYDEBUG(42, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(43, *YYCURSOR);
+ if (yych == '\t') goto yy42;
+ if (yych == ' ') goto yy42;
+ goto yy41;
+yy44:
+ YYDEBUG(44, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '\'') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy26;
+ if (yych <= '\t') goto yy42;
+ goto yy41;
+ } else {
+ if (yych == '\r') goto yy41;
+ goto yy26;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= ' ') goto yy39;
+ if (yych <= '"') goto yy41;
+ goto yy26;
+ } else {
+ if (yych == '%') goto yy26;
+ if (yych <= '&') goto yy41;
+ goto yy26;
+ }
+ }
+ } else {
+ if (yych <= 'N') {
+ if (yych <= ';') {
+ if (yych <= ')') goto yy41;
+ if (yych <= ':') goto yy26;
+ goto yy41;
+ } else {
+ if (yych == '=') goto yy41;
+ if (yych <= 'M') goto yy26;
+ goto yy47;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == '^') goto yy41;
+ goto yy26;
+ } else {
+ if (yych <= 'n') goto yy47;
+ if (yych <= 'z') goto yy26;
+ if (yych <= '~') goto yy41;
+ goto yy26;
+ }
+ }
+ }
+yy45:
+ YYDEBUG(45, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy46;
+ if (yych != 'l') goto yy26;
+yy46:
+ YYDEBUG(46, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy39;
+ if (yych == 'l') goto yy39;
+ goto yy26;
+yy47:
+ YYDEBUG(47, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy39;
+ if (yych == 'e') goto yy39;
+ goto yy26;
+yy48:
+ YYDEBUG(48, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy49;
+ if (yych != 'l') goto yy26;
+yy49:
+ YYDEBUG(49, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy50;
+ if (yych != 's') goto yy26;
+yy50:
+ YYDEBUG(50, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy39;
+ if (yych == 'e') goto yy39;
+ goto yy26;
+yy51:
+ YYDEBUG(51, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy52:
+ YYDEBUG(52, *YYCURSOR);
+ if (yych == '\t') goto yy51;
+ if (yych == ' ') goto yy51;
+ goto yy17;
+yy53:
+ YYDEBUG(53, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy54:
+ YYDEBUG(54, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy53;
+ }
+ if (yych >= '\r') goto yy57;
+yy55:
+ YYDEBUG(55, *YYCURSOR);
+ ++YYCURSOR;
+yy56:
+ YYDEBUG(56, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 585 "Zend/zend_ini_scanner.l"
+ { /* Comment */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 936 "Zend/zend_ini_scanner.c"
+yy57:
+ YYDEBUG(57, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy55;
+ goto yy56;
+yy58:
+ YYDEBUG(58, *YYCURSOR);
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy59:
+ YYDEBUG(59, *YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy58;
+ if (yych >= '\n') goto yy64;
+ } else {
+ if (yych == '\r') goto yy66;
+ goto yy58;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych == '#') goto yy58;
+ } else {
+ if (yych != '&') goto yy58;
+ }
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= ';') {
+ if (yych <= ')') goto yy60;
+ if (yych <= ':') goto yy58;
+ } else {
+ if (yych != '=') goto yy58;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= '[') goto yy62;
+ if (yych <= ']') goto yy58;
+ } else {
+ if (yych <= 'z') goto yy58;
+ if (yych >= 0x7F) goto yy58;
+ }
+ }
+ }
+yy60:
+ YYDEBUG(60, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+ YYDEBUG(61, *YYCURSOR);
+ if (yych == '\n') goto yy64;
+ if (yych == '\r') goto yy66;
+ goto yy60;
+yy62:
+ YYDEBUG(62, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+ YYDEBUG(63, *YYCURSOR);
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy60;
+ if (yych <= '\t') goto yy62;
+ if (yych >= '\v') goto yy60;
+ } else {
+ if (yych <= '\r') goto yy66;
+ if (yych == ' ') goto yy62;
+ goto yy60;
+ }
+yy64:
+ YYDEBUG(64, *YYCURSOR);
+ ++YYCURSOR;
+yy65:
+ YYDEBUG(65, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 591 "Zend/zend_ini_scanner.l"
+ { /* #Comment */
+ zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno));
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 1022 "Zend/zend_ini_scanner.c"
+yy66:
+ YYDEBUG(66, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy64;
+ goto yy65;
+yy67:
+ YYDEBUG(67, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy68:
+ YYDEBUG(68, *YYCURSOR);
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy5;
+ if (yych <= '\t') goto yy67;
+ goto yy71;
+ } else {
+ if (yych == '\r') goto yy72;
+ if (yych <= 0x1F) goto yy5;
+ goto yy67;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych == '#') goto yy60;
+ goto yy5;
+ } else {
+ if (yych <= ';') goto yy53;
+ if (yych == '=') goto yy51;
+ goto yy5;
+ }
+ }
+yy69:
+ YYDEBUG(69, *YYCURSOR);
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+ YYDEBUG(70, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy67;
+ } else {
+ if (yych == '\r') goto yy72;
+ goto yy25;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= ' ') goto yy69;
+ if (yych <= '"') goto yy3;
+ goto yy58;
+ } else {
+ if (yych == '%') goto yy25;
+ goto yy3;
+ }
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy25;
+ if (yych <= ')') goto yy3;
+ goto yy25;
+ } else {
+ if (yych <= ';') goto yy53;
+ if (yych <= '<') goto yy25;
+ goto yy51;
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych == '[') goto yy28;
+ goto yy25;
+ } else {
+ if (yych <= '^') goto yy3;
+ if (yych <= 'z') goto yy25;
+ if (yych <= '~') goto yy3;
+ goto yy25;
+ }
+ }
+ }
+yy71:
+ YYDEBUG(71, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy7;
+yy72:
+ YYDEBUG(72, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy71;
+ goto yy7;
+ }
+/* *********************************** */
+yyc_ST_DOUBLE_QUOTES:
+ {
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ YYDEBUG(73, *YYCURSOR);
+ YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych == '"') goto yy77;
+ if (yych == '$') goto yy79;
+ YYDEBUG(75, *YYCURSOR);
+ ++YYCURSOR;
+yy76:
+ YYDEBUG(76, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 535 "Zend/zend_ini_scanner.l"
+ { /* Escape double quoted string contents */
+ if (YYCURSOR > YYLIMIT) {
+ return 0;
+ }
+
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {
+ case '"':
+ if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') {
+ continue;
+ }
+ break;
+ case '$':
+ if (*YYCURSOR == '{') {
+ break;
+ }
+ continue;
+ case '\\':
+ if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') {
+ YYCURSOR++;
+ }
+ /* fall through */
+ default:
+ continue;
+ }
+
+ YYCURSOR--;
+ break;
+ }
+
+ yyleng = YYCURSOR - SCNG(yy_text);
+
+ zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
+ return TC_QUOTED_STRING;
+}
+#line 1198 "Zend/zend_ini_scanner.c"
+yy77:
+ YYDEBUG(77, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy83;
+yy78:
+ YYDEBUG(78, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 530 "Zend/zend_ini_scanner.l"
+ { /* Double quoted '"' string ends */
+ yy_pop_state(TSRMLS_C);
+ return '"';
+}
+#line 1212 "Zend/zend_ini_scanner.c"
+yy79:
+ YYDEBUG(79, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '{') goto yy76;
+ YYDEBUG(80, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(81, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 401 "Zend/zend_ini_scanner.l"
+ { /* Variable start */
+ yy_push_state(ST_VARNAME TSRMLS_CC);
+ return TC_DOLLAR_CURLY;
+}
+#line 1226 "Zend/zend_ini_scanner.c"
+yy82:
+ YYDEBUG(82, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy83:
+ YYDEBUG(83, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy82;
+ }
+ goto yy78;
+ }
+/* *********************************** */
+yyc_ST_OFFSET:
+ {
+ static const unsigned char yybm[] = {
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 194, 64, 66, 66, 64, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 194, 66, 64, 66, 68, 66, 66, 0,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 66, 64, 66, 66, 66, 66,
+ 66, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 66, 72, 64, 66, 82,
+ 66, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ };
+ YYDEBUG(84, *YYCURSOR);
+ YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy86;
+ if (yych <= '\t') goto yy88;
+ goto yy89;
+ } else {
+ if (yych == '\r') goto yy89;
+ if (yych >= ' ') goto yy88;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych == '"') goto yy91;
+ if (yych >= '$') goto yy93;
+ } else {
+ if (yych == '\'') goto yy94;
+ if (yych >= '-') goto yy95;
+ }
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '9') {
+ if (yych <= '.') goto yy96;
+ if (yych >= '0') goto yy97;
+ } else {
+ if (yych == ';') goto yy89;
+ if (yych >= 'A') goto yy99;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= '[') goto yy86;
+ if (yych <= '\\') goto yy101;
+ if (yych <= ']') goto yy102;
+ } else {
+ if (yych == '`') goto yy86;
+ if (yych <= 'z') goto yy99;
+ }
+ }
+ }
+yy86:
+ YYDEBUG(86, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy105;
+yy87:
+ YYDEBUG(87, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 521 "Zend/zend_ini_scanner.l"
+ { /* Get rest as section/offset value */
+ RETURN_TOKEN(TC_STRING, yytext, yyleng);
+}
+#line 1330 "Zend/zend_ini_scanner.c"
+yy88:
+ YYDEBUG(88, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy131;
+ }
+ if (yych == '"') goto yy133;
+ if (yych == ']') goto yy134;
+ goto yy105;
+yy89:
+ YYDEBUG(89, *YYCURSOR);
+ ++YYCURSOR;
+yy90:
+ YYDEBUG(90, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 603 "Zend/zend_ini_scanner.l"
+ {
+ return 0;
+}
+#line 1351 "Zend/zend_ini_scanner.c"
+yy91:
+ YYDEBUG(91, *YYCURSOR);
+ ++YYCURSOR;
+yy92:
+ YYDEBUG(92, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 525 "Zend/zend_ini_scanner.l"
+ { /* Double quoted '"' string start */
+ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
+ return '"';
+}
+#line 1363 "Zend/zend_ini_scanner.c"
+yy93:
+ YYDEBUG(93, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy90;
+ if (yych <= '[') goto yy104;
+ goto yy109;
+ } else {
+ if (yych == '{') goto yy129;
+ goto yy104;
+ }
+yy94:
+ YYDEBUG(94, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy125;
+ }
+ goto yy90;
+yy95:
+ YYDEBUG(95, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy105;
+ if (yych <= '9') goto yy123;
+ goto yy105;
+yy96:
+ YYDEBUG(96, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy105;
+ if (yych <= '9') goto yy121;
+ goto yy105;
+yy97:
+ YYDEBUG(97, *YYCURSOR);
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy98;
+ if (yych <= '\f') goto yy105;
+ } else {
+ if (yych == '"') goto yy98;
+ if (yych <= '&') goto yy105;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych == '.') goto yy117;
+ if (yych <= '/') goto yy105;
+ goto yy119;
+ } else {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy105;
+ } else {
+ if (yych != ']') goto yy105;
+ }
+ }
+ }
+yy98:
+ YYDEBUG(98, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 499 "Zend/zend_ini_scanner.l"
+ { /* Get number option value as string */
+ RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
+}
+#line 1429 "Zend/zend_ini_scanner.c"
+yy99:
+ YYDEBUG(99, *YYCURSOR);
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy115;
+ }
+ if (yych <= '"') {
+ if (yych <= '\f') {
+ if (yych != '\n') goto yy105;
+ } else {
+ if (yych <= '\r') goto yy100;
+ if (yych <= '!') goto yy105;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych != '\'') goto yy105;
+ } else {
+ if (yych <= ';') goto yy100;
+ if (yych != ']') goto yy105;
+ }
+ }
+yy100:
+ YYDEBUG(100, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 495 "Zend/zend_ini_scanner.l"
+ { /* Get constant option value */
+ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
+}
+#line 1459 "Zend/zend_ini_scanner.c"
+yy101:
+ YYDEBUG(101, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy104;
+yy102:
+ YYDEBUG(102, *YYCURSOR);
+ ++YYCURSOR;
+yy103:
+ YYDEBUG(103, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 396 "Zend/zend_ini_scanner.l"
+ { /* End of section or an option offset */
+ BEGIN(INITIAL);
+ return ']';
+}
+#line 1475 "Zend/zend_ini_scanner.c"
+yy104:
+ YYDEBUG(104, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy105:
+ YYDEBUG(105, *YYCURSOR);
+ if (yybm[0+yych] & 2) {
+ goto yy104;
+ }
+ if (yych == '$') goto yy107;
+ if (yych != '\\') goto yy87;
+yy106:
+ YYDEBUG(106, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy104;
+yy107:
+ YYDEBUG(107, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy108;
+ if (yych <= '[') goto yy104;
+ goto yy109;
+ } else {
+ if (yych != '{') goto yy104;
+ }
+yy108:
+ YYDEBUG(108, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept <= 0) {
+ goto yy87;
+ } else {
+ goto yy90;
+ }
+ } else {
+ if (yyaccept <= 2) {
+ goto yy98;
+ } else {
+ goto yy100;
+ }
+ }
+yy109:
+ YYDEBUG(109, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 4) {
+ goto yy110;
+ }
+ if (yych == '\\') goto yy112;
+ goto yy104;
+yy110:
+ YYDEBUG(110, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(111, *YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy110;
+ }
+ if (yych == '\\') goto yy114;
+ goto yy104;
+yy112:
+ YYDEBUG(112, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(113, *YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy110;
+ }
+ if (yych == '\\') goto yy112;
+ goto yy104;
+yy114:
+ YYDEBUG(114, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 4) {
+ goto yy110;
+ }
+ if (yych == '\\') goto yy112;
+ goto yy104;
+yy115:
+ YYDEBUG(115, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(116, *YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy115;
+ }
+ if (yych <= '$') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy100;
+ if (yych <= '\f') goto yy104;
+ goto yy100;
+ } else {
+ if (yych == '"') goto yy100;
+ if (yych <= '#') goto yy104;
+ goto yy107;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych == '\'') goto yy100;
+ if (yych <= ':') goto yy104;
+ goto yy100;
+ } else {
+ if (yych <= '[') goto yy104;
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy100;
+ goto yy104;
+ }
+ }
+yy117:
+ YYDEBUG(117, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(118, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy117;
+ }
+ if (yych <= '$') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy98;
+ if (yych <= '\f') goto yy104;
+ goto yy98;
+ } else {
+ if (yych == '"') goto yy98;
+ if (yych <= '#') goto yy104;
+ goto yy107;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych == '\'') goto yy98;
+ if (yych <= ':') goto yy104;
+ goto yy98;
+ } else {
+ if (yych <= '[') goto yy104;
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy98;
+ goto yy104;
+ }
+ }
+yy119:
+ YYDEBUG(119, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(120, *YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych <= '\t') goto yy104;
+ goto yy98;
+ } else {
+ if (yych == '\r') goto yy98;
+ goto yy104;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= '"') goto yy98;
+ goto yy104;
+ } else {
+ if (yych <= '$') goto yy107;
+ if (yych <= '&') goto yy104;
+ goto yy98;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '.') {
+ if (yych <= '-') goto yy104;
+ goto yy117;
+ } else {
+ if (yych <= '/') goto yy104;
+ if (yych <= '9') goto yy119;
+ goto yy104;
+ }
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy98;
+ goto yy104;
+ } else {
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy98;
+ goto yy104;
+ }
+ }
+ }
+yy121:
+ YYDEBUG(121, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(122, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy98;
+ if (yych <= '\f') goto yy104;
+ goto yy98;
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy104;
+ goto yy98;
+ } else {
+ if (yych == '$') goto yy107;
+ goto yy104;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy98;
+ if (yych <= '/') goto yy104;
+ if (yych <= '9') goto yy121;
+ goto yy104;
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy98;
+ goto yy104;
+ } else {
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy98;
+ goto yy104;
+ }
+ }
+ }
+yy123:
+ YYDEBUG(123, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(124, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy98;
+ if (yych <= '\f') goto yy104;
+ goto yy98;
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy104;
+ goto yy98;
+ } else {
+ if (yych == '$') goto yy107;
+ goto yy104;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy98;
+ if (yych <= '/') goto yy104;
+ if (yych <= '9') goto yy123;
+ goto yy104;
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy98;
+ goto yy104;
+ } else {
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy98;
+ goto yy104;
+ }
+ }
+ }
+yy125:
+ YYDEBUG(125, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(126, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy125;
+ }
+ YYDEBUG(127, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(128, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 368 "Zend/zend_ini_scanner.l"
+ { /* Raw string */
+ /* Eat leading and trailing single quotes */
+ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
+ SCNG(yy_text)++;
+ yyleng = yyleng - 2;
+ }
+ RETURN_TOKEN(TC_RAW, yytext, yyleng);
+}
+#line 1774 "Zend/zend_ini_scanner.c"
+yy129:
+ YYDEBUG(129, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(130, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 401 "Zend/zend_ini_scanner.l"
+ { /* Variable start */
+ yy_push_state(ST_VARNAME TSRMLS_CC);
+ return TC_DOLLAR_CURLY;
+}
+#line 1785 "Zend/zend_ini_scanner.c"
+yy131:
+ YYDEBUG(131, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(132, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy131;
+ }
+ if (yych <= '$') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy87;
+ if (yych <= '\f') goto yy104;
+ goto yy87;
+ } else {
+ if (yych == '"') goto yy133;
+ if (yych <= '#') goto yy104;
+ goto yy107;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych == '\'') goto yy87;
+ if (yych <= ':') goto yy104;
+ goto yy87;
+ } else {
+ if (yych <= '[') goto yy104;
+ if (yych <= '\\') goto yy106;
+ if (yych <= ']') goto yy134;
+ goto yy104;
+ }
+ }
+yy133:
+ YYDEBUG(133, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy92;
+yy134:
+ YYDEBUG(134, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy103;
+ }
+/* *********************************** */
+yyc_ST_RAW:
+ {
+ static const unsigned char yybm[] = {
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 192, 0, 64, 64, 0, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 192, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ };
+ YYDEBUG(135, *YYCURSOR);
+ YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '\f') {
+ if (yych <= 0x08) {
+ if (yych >= 0x01) goto yy139;
+ } else {
+ if (yych <= '\t') goto yy141;
+ if (yych <= '\n') goto yy142;
+ goto yy139;
+ }
+ } else {
+ if (yych <= ' ') {
+ if (yych <= '\r') goto yy144;
+ if (yych <= 0x1F) goto yy139;
+ goto yy141;
+ } else {
+ if (yych == ';') goto yy145;
+ goto yy139;
+ }
+ }
+ YYDEBUG(137, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(138, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 598 "Zend/zend_ini_scanner.l"
+ { /* End of option value (if EOF is reached before EOL */
+ BEGIN(INITIAL);
+ return END_OF_LINE;
+}
+#line 1895 "Zend/zend_ini_scanner.c"
+yy139:
+ YYDEBUG(139, *YYCURSOR);
+ ++YYCURSOR;
+yy140:
+ YYDEBUG(140, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 448 "Zend/zend_ini_scanner.l"
+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
+ char *sc = NULL;
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR) {
+ case '\n':
+ case '\r':
+ goto end_raw_value_chars;
+ break;
+ case ';':
+ if (sc == NULL) {
+ sc = YYCURSOR;
+ }
+ /* no break */
+ default:
+ YYCURSOR++;
+ break;
+ }
+ }
+end_raw_value_chars:
+ yyleng = YYCURSOR - SCNG(yy_text);
+
+ /* Eat trailing semicolons */
+ while (yytext[yyleng - 1] == ';') {
+ yyleng--;
+ }
+
+ /* Eat leading and trailing double quotes */
+ if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
+ SCNG(yy_text)++;
+ yyleng = yyleng - 2;
+ } else if (sc) {
+ YYCURSOR = sc;
+ yyleng = YYCURSOR - SCNG(yy_text);
+ }
+ RETURN_TOKEN(TC_RAW, yytext, yyleng);
+}
+#line 1939 "Zend/zend_ini_scanner.c"
+yy141:
+ YYDEBUG(141, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\r') {
+ if (yych <= 0x08) goto yy140;
+ if (yych <= '\n') goto yy153;
+ if (yych <= '\f') goto yy140;
+ goto yy153;
+ } else {
+ if (yych <= ' ') {
+ if (yych <= 0x1F) goto yy140;
+ goto yy153;
+ } else {
+ if (yych == ';') goto yy153;
+ goto yy140;
+ }
+ }
+yy142:
+ YYDEBUG(142, *YYCURSOR);
+ ++YYCURSOR;
+yy143:
+ YYDEBUG(143, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 489 "Zend/zend_ini_scanner.l"
+ { /* End of option value */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 1970 "Zend/zend_ini_scanner.c"
+yy144:
+ YYDEBUG(144, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy151;
+ goto yy143;
+yy145:
+ YYDEBUG(145, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy147;
+yy146:
+ YYDEBUG(146, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy147:
+ YYDEBUG(147, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy146;
+ }
+ if (yych >= '\r') goto yy150;
+yy148:
+ YYDEBUG(148, *YYCURSOR);
+ ++YYCURSOR;
+yy149:
+ YYDEBUG(149, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 585 "Zend/zend_ini_scanner.l"
+ { /* Comment */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 2004 "Zend/zend_ini_scanner.c"
+yy150:
+ YYDEBUG(150, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy148;
+ goto yy149;
+yy151:
+ YYDEBUG(151, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy143;
+yy152:
+ YYDEBUG(152, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy153:
+ YYDEBUG(153, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy152;
+ }
+ if (yych <= '\f') {
+ if (yych == '\n') goto yy151;
+ } else {
+ if (yych <= '\r') goto yy155;
+ if (yych == ';') goto yy146;
+ }
+ YYDEBUG(154, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 575 "Zend/zend_ini_scanner.l"
+ {
+ /* eat whitespace */
+ goto restart;
+}
+#line 2038 "Zend/zend_ini_scanner.c"
+yy155:
+ YYDEBUG(155, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy151;
+ goto yy143;
+ }
+/* *********************************** */
+yyc_ST_SECTION_RAW:
+ {
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 192, 0, 128, 128, 0, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 192, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 0, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ YYDEBUG(156, *YYCURSOR);
+ YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '\f') {
+ if (yych == '\n') goto yy160;
+ } else {
+ if (yych <= '\r') goto yy160;
+ if (yych == ']') goto yy162;
+ }
+ YYDEBUG(158, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy169;
+yy159:
+ YYDEBUG(159, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 485 "Zend/zend_ini_scanner.l"
+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
+ RETURN_TOKEN(TC_RAW, yytext, yyleng);
+}
+#line 2102 "Zend/zend_ini_scanner.c"
+yy160:
+ YYDEBUG(160, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(161, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 603 "Zend/zend_ini_scanner.l"
+ {
+ return 0;
+}
+#line 2112 "Zend/zend_ini_scanner.c"
+yy162:
+ YYDEBUG(162, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy165;
+yy163:
+ YYDEBUG(163, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 377 "Zend/zend_ini_scanner.l"
+ { /* End of section */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return ']';
+}
+#line 2127 "Zend/zend_ini_scanner.c"
+yy164:
+ YYDEBUG(164, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy165:
+ YYDEBUG(165, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy164;
+ }
+ if (yych == '\n') goto yy166;
+ if (yych == '\r') goto yy167;
+ goto yy163;
+yy166:
+ YYDEBUG(166, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy163;
+yy167:
+ YYDEBUG(167, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy166;
+ goto yy163;
+yy168:
+ YYDEBUG(168, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy169:
+ YYDEBUG(169, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy168;
+ }
+ goto yy159;
+ }
+/* *********************************** */
+yyc_ST_SECTION_VALUE:
+ {
+ static const unsigned char yybm[] = {
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 134, 128, 132, 132, 128, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 134, 132, 128, 132, 136, 132, 132, 0,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 132, 128, 132, 132, 132, 132,
+ 132, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 132, 144, 128, 132, 164,
+ 132, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132,
+ };
+ YYDEBUG(170, *YYCURSOR);
+ YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy172;
+ if (yych <= '\t') goto yy174;
+ goto yy175;
+ } else {
+ if (yych == '\r') goto yy175;
+ if (yych >= ' ') goto yy174;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych == '"') goto yy177;
+ if (yych >= '$') goto yy179;
+ } else {
+ if (yych == '\'') goto yy180;
+ if (yych >= '-') goto yy181;
+ }
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '9') {
+ if (yych <= '.') goto yy182;
+ if (yych >= '0') goto yy183;
+ } else {
+ if (yych == ';') goto yy175;
+ if (yych >= 'A') goto yy185;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= '[') goto yy172;
+ if (yych <= '\\') goto yy187;
+ if (yych <= ']') goto yy188;
+ } else {
+ if (yych == '`') goto yy172;
+ if (yych <= 'z') goto yy185;
+ }
+ }
+ }
+yy172:
+ YYDEBUG(172, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy195;
+yy173:
+ YYDEBUG(173, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 521 "Zend/zend_ini_scanner.l"
+ { /* Get rest as section/offset value */
+ RETURN_TOKEN(TC_STRING, yytext, yyleng);
+}
+#line 2253 "Zend/zend_ini_scanner.c"
+yy174:
+ YYDEBUG(174, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy221;
+ goto yy195;
+ } else {
+ if (yych <= ' ') goto yy221;
+ if (yych == '"') goto yy223;
+ goto yy195;
+ }
+yy175:
+ YYDEBUG(175, *YYCURSOR);
+ ++YYCURSOR;
+yy176:
+ YYDEBUG(176, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 603 "Zend/zend_ini_scanner.l"
+ {
+ return 0;
+}
+#line 2276 "Zend/zend_ini_scanner.c"
+yy177:
+ YYDEBUG(177, *YYCURSOR);
+ ++YYCURSOR;
+yy178:
+ YYDEBUG(178, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 525 "Zend/zend_ini_scanner.l"
+ { /* Double quoted '"' string start */
+ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
+ return '"';
+}
+#line 2288 "Zend/zend_ini_scanner.c"
+yy179:
+ YYDEBUG(179, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy176;
+ if (yych <= '[') goto yy194;
+ goto yy199;
+ } else {
+ if (yych == '{') goto yy219;
+ goto yy194;
+ }
+yy180:
+ YYDEBUG(180, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy215;
+ }
+ goto yy176;
+yy181:
+ YYDEBUG(181, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy195;
+ if (yych <= '9') goto yy213;
+ goto yy195;
+yy182:
+ YYDEBUG(182, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy195;
+ if (yych <= '9') goto yy211;
+ goto yy195;
+yy183:
+ YYDEBUG(183, *YYCURSOR);
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy184;
+ if (yych <= '\f') goto yy195;
+ } else {
+ if (yych == '"') goto yy184;
+ if (yych <= '&') goto yy195;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych == '.') goto yy207;
+ if (yych <= '/') goto yy195;
+ goto yy209;
+ } else {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy195;
+ } else {
+ if (yych != ']') goto yy195;
+ }
+ }
+ }
+yy184:
+ YYDEBUG(184, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 499 "Zend/zend_ini_scanner.l"
+ { /* Get number option value as string */
+ RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
+}
+#line 2354 "Zend/zend_ini_scanner.c"
+yy185:
+ YYDEBUG(185, *YYCURSOR);
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy205;
+ }
+ if (yych <= '"') {
+ if (yych <= '\f') {
+ if (yych != '\n') goto yy195;
+ } else {
+ if (yych <= '\r') goto yy186;
+ if (yych <= '!') goto yy195;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych != '\'') goto yy195;
+ } else {
+ if (yych <= ';') goto yy186;
+ if (yych != ']') goto yy195;
+ }
+ }
+yy186:
+ YYDEBUG(186, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 495 "Zend/zend_ini_scanner.l"
+ { /* Get constant option value */
+ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
+}
+#line 2384 "Zend/zend_ini_scanner.c"
+yy187:
+ YYDEBUG(187, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy194;
+yy188:
+ YYDEBUG(188, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy191;
+yy189:
+ YYDEBUG(189, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 377 "Zend/zend_ini_scanner.l"
+ { /* End of section */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return ']';
+}
+#line 2403 "Zend/zend_ini_scanner.c"
+yy190:
+ YYDEBUG(190, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy191:
+ YYDEBUG(191, *YYCURSOR);
+ if (yybm[0+yych] & 2) {
+ goto yy190;
+ }
+ if (yych == '\n') goto yy192;
+ if (yych == '\r') goto yy193;
+ goto yy189;
+yy192:
+ YYDEBUG(192, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy189;
+yy193:
+ YYDEBUG(193, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy192;
+ goto yy189;
+yy194:
+ YYDEBUG(194, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy195:
+ YYDEBUG(195, *YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if (yych == '$') goto yy197;
+ if (yych != '\\') goto yy173;
+yy196:
+ YYDEBUG(196, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy194;
+yy197:
+ YYDEBUG(197, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy198;
+ if (yych <= '[') goto yy194;
+ goto yy199;
+ } else {
+ if (yych != '{') goto yy194;
+ }
+yy198:
+ YYDEBUG(198, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept <= 0) {
+ goto yy173;
+ } else {
+ goto yy176;
+ }
+ } else {
+ if (yyaccept <= 2) {
+ goto yy184;
+ } else {
+ goto yy186;
+ }
+ }
+yy199:
+ YYDEBUG(199, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 8) {
+ goto yy200;
+ }
+ if (yych == '\\') goto yy202;
+ goto yy194;
+yy200:
+ YYDEBUG(200, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(201, *YYCURSOR);
+ if (yybm[0+yych] & 8) {
+ goto yy200;
+ }
+ if (yych == '\\') goto yy204;
+ goto yy194;
+yy202:
+ YYDEBUG(202, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(203, *YYCURSOR);
+ if (yybm[0+yych] & 8) {
+ goto yy200;
+ }
+ if (yych == '\\') goto yy202;
+ goto yy194;
+yy204:
+ YYDEBUG(204, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 8) {
+ goto yy200;
+ }
+ if (yych == '\\') goto yy202;
+ goto yy194;
+yy205:
+ YYDEBUG(205, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(206, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy205;
+ }
+ if (yych <= '$') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy186;
+ if (yych <= '\f') goto yy194;
+ goto yy186;
+ } else {
+ if (yych == '"') goto yy186;
+ if (yych <= '#') goto yy194;
+ goto yy197;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych == '\'') goto yy186;
+ if (yych <= ':') goto yy194;
+ goto yy186;
+ } else {
+ if (yych <= '[') goto yy194;
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy186;
+ goto yy194;
+ }
+ }
+yy207:
+ YYDEBUG(207, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(208, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy207;
+ }
+ if (yych <= '$') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy184;
+ if (yych <= '\f') goto yy194;
+ goto yy184;
+ } else {
+ if (yych == '"') goto yy184;
+ if (yych <= '#') goto yy194;
+ goto yy197;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych == '\'') goto yy184;
+ if (yych <= ':') goto yy194;
+ goto yy184;
+ } else {
+ if (yych <= '[') goto yy194;
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy184;
+ goto yy194;
+ }
+ }
+yy209:
+ YYDEBUG(209, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(210, *YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych <= '\t') goto yy194;
+ goto yy184;
+ } else {
+ if (yych == '\r') goto yy184;
+ goto yy194;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= '"') goto yy184;
+ goto yy194;
+ } else {
+ if (yych <= '$') goto yy197;
+ if (yych <= '&') goto yy194;
+ goto yy184;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '.') {
+ if (yych <= '-') goto yy194;
+ goto yy207;
+ } else {
+ if (yych <= '/') goto yy194;
+ if (yych <= '9') goto yy209;
+ goto yy194;
+ }
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy184;
+ goto yy194;
+ } else {
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy184;
+ goto yy194;
+ }
+ }
+ }
+yy211:
+ YYDEBUG(211, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(212, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy184;
+ if (yych <= '\f') goto yy194;
+ goto yy184;
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy194;
+ goto yy184;
+ } else {
+ if (yych == '$') goto yy197;
+ goto yy194;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy184;
+ if (yych <= '/') goto yy194;
+ if (yych <= '9') goto yy211;
+ goto yy194;
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy184;
+ goto yy194;
+ } else {
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy184;
+ goto yy194;
+ }
+ }
+ }
+yy213:
+ YYDEBUG(213, *YYCURSOR);
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(214, *YYCURSOR);
+ if (yych <= '&') {
+ if (yych <= '\r') {
+ if (yych == '\n') goto yy184;
+ if (yych <= '\f') goto yy194;
+ goto yy184;
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy194;
+ goto yy184;
+ } else {
+ if (yych == '$') goto yy197;
+ goto yy194;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '\'') goto yy184;
+ if (yych <= '/') goto yy194;
+ if (yych <= '9') goto yy213;
+ goto yy194;
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy184;
+ goto yy194;
+ } else {
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy184;
+ goto yy194;
+ }
+ }
+ }
+yy215:
+ YYDEBUG(215, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(216, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy215;
+ }
+ YYDEBUG(217, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(218, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 368 "Zend/zend_ini_scanner.l"
+ { /* Raw string */
+ /* Eat leading and trailing single quotes */
+ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
+ SCNG(yy_text)++;
+ yyleng = yyleng - 2;
+ }
+ RETURN_TOKEN(TC_RAW, yytext, yyleng);
+}
+#line 2724 "Zend/zend_ini_scanner.c"
+yy219:
+ YYDEBUG(219, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(220, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 401 "Zend/zend_ini_scanner.l"
+ { /* Variable start */
+ yy_push_state(ST_VARNAME TSRMLS_CC);
+ return TC_DOLLAR_CURLY;
+}
+#line 2735 "Zend/zend_ini_scanner.c"
+yy221:
+ YYDEBUG(221, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(222, *YYCURSOR);
+ if (yych <= '"') {
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy194;
+ if (yych <= '\t') goto yy221;
+ if (yych <= '\n') goto yy173;
+ goto yy194;
+ } else {
+ if (yych <= 0x1F) {
+ if (yych <= '\r') goto yy173;
+ goto yy194;
+ } else {
+ if (yych <= ' ') goto yy221;
+ if (yych <= '!') goto yy194;
+ }
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= '$') {
+ if (yych <= '#') goto yy194;
+ goto yy197;
+ } else {
+ if (yych == '\'') goto yy173;
+ goto yy194;
+ }
+ } else {
+ if (yych <= '[') {
+ if (yych <= ';') goto yy173;
+ goto yy194;
+ } else {
+ if (yych <= '\\') goto yy196;
+ if (yych <= ']') goto yy173;
+ goto yy194;
+ }
+ }
+ }
+yy223:
+ YYDEBUG(223, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy178;
+ }
+/* *********************************** */
+yyc_ST_VALUE:
+ {
+ static const unsigned char yybm[] = {
+ 160, 162, 162, 162, 162, 162, 162, 162,
+ 162, 176, 128, 162, 162, 128, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 176, 160, 160, 162, 168, 162, 160, 32,
+ 160, 160, 162, 162, 162, 162, 162, 162,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 162, 160, 162, 160, 162, 162,
+ 162, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 162, 162, 162, 160, 166,
+ 162, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 166, 166, 166, 166, 166,
+ 166, 166, 166, 162, 160, 162, 160, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ };
+ YYDEBUG(224, *YYCURSOR);
+ YYFILL(6);
+ yych = *YYCURSOR;
+ YYDEBUG(-1, yych);
+ switch (yych) {
+ case 0x00: goto yy226;
+ case '\t':
+ case ' ': goto yy230;
+ case '\n': goto yy232;
+ case '\r': goto yy234;
+ case '!':
+ case '&':
+ case '(':
+ case ')':
+ case '^':
+ case '|':
+ case '~': goto yy235;
+ case '"': goto yy237;
+ case '$': goto yy239;
+ case '\'': goto yy240;
+ case '-': goto yy241;
+ case '.': goto yy242;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy243;
+ case ';': goto yy245;
+ case '=': goto yy246;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Z':
+ case '_':
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'z': goto yy248;
+ case 'F':
+ case 'f': goto yy250;
+ case 'N':
+ case 'n': goto yy251;
+ case 'O':
+ case 'o': goto yy252;
+ case 'T':
+ case 't': goto yy253;
+ case 'Y':
+ case 'y': goto yy254;
+ default: goto yy228;
+ }
+yy226:
+ YYDEBUG(226, *YYCURSOR);
+ ++YYCURSOR;
+yy227:
+ YYDEBUG(227, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 598 "Zend/zend_ini_scanner.l"
+ { /* End of option value (if EOF is reached before EOL */
+ BEGIN(INITIAL);
+ return END_OF_LINE;
+}
+#line 2921 "Zend/zend_ini_scanner.c"
+yy228:
+ YYDEBUG(228, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy256;
+yy229:
+ YYDEBUG(229, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 517 "Zend/zend_ini_scanner.l"
+ { /* Get everything else as option/offset value */
+ RETURN_TOKEN(TC_STRING, yytext, yyleng);
+}
+#line 2934 "Zend/zend_ini_scanner.c"
+yy230:
+ YYDEBUG(230, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy306;
+yy231:
+ YYDEBUG(231, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 571 "Zend/zend_ini_scanner.l"
+ {
+ RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
+}
+#line 2947 "Zend/zend_ini_scanner.c"
+yy232:
+ YYDEBUG(232, *YYCURSOR);
+ ++YYCURSOR;
+yy233:
+ YYDEBUG(233, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 489 "Zend/zend_ini_scanner.l"
+ { /* End of option value */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 2960 "Zend/zend_ini_scanner.c"
+yy234:
+ YYDEBUG(234, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy304;
+ goto yy233;
+yy235:
+ YYDEBUG(235, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy303;
+yy236:
+ YYDEBUG(236, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 507 "Zend/zend_ini_scanner.l"
+ { /* Boolean operators */
+ return yytext[0];
+}
+#line 2978 "Zend/zend_ini_scanner.c"
+yy237:
+ YYDEBUG(237, *YYCURSOR);
+ ++YYCURSOR;
+yy238:
+ YYDEBUG(238, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 525 "Zend/zend_ini_scanner.l"
+ { /* Double quoted '"' string start */
+ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
+ return '"';
+}
+#line 2990 "Zend/zend_ini_scanner.c"
+yy239:
+ YYDEBUG(239, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy227;
+ if (yych <= '[') goto yy255;
+ goto yy262;
+ } else {
+ if (yych == '{') goto yy300;
+ goto yy255;
+ }
+yy240:
+ YYDEBUG(240, *YYCURSOR);
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy296;
+ }
+ goto yy227;
+yy241:
+ YYDEBUG(241, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy256;
+ if (yych <= '9') goto yy294;
+ goto yy256;
+yy242:
+ YYDEBUG(242, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy256;
+ if (yych <= '9') goto yy292;
+ goto yy256;
+yy243:
+ YYDEBUG(243, *YYCURSOR);
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy244;
+ if (yych <= 0x08) goto yy256;
+ } else {
+ if (yych != '\r') goto yy256;
+ }
+ } else {
+ if (yych <= ')') {
+ if (yych <= '"') goto yy244;
+ if (yych <= '%') goto yy256;
+ } else {
+ if (yych == '.') goto yy288;
+ goto yy256;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= '9') goto yy290;
+ if (yych <= ':') goto yy256;
+ } else {
+ if (yych != '=') goto yy256;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy244;
+ if (yych <= '{') goto yy256;
+ } else {
+ if (yych != '~') goto yy256;
+ }
+ }
+ }
+yy244:
+ YYDEBUG(244, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 499 "Zend/zend_ini_scanner.l"
+ { /* Get number option value as string */
+ RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
+}
+#line 3069 "Zend/zend_ini_scanner.c"
+yy245:
+ YYDEBUG(245, *YYCURSOR);
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy284;
+yy246:
+ YYDEBUG(246, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(247, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 511 "Zend/zend_ini_scanner.l"
+ { /* Make = used in option value to trigger error */
+ yyless(0);
+ BEGIN(INITIAL);
+ return END_OF_LINE;
+}
+#line 3086 "Zend/zend_ini_scanner.c"
+yy248:
+ YYDEBUG(248, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy257;
+ }
+ if (yych <= ':') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) {
+ if (yych >= 0x01) goto yy256;
+ } else {
+ if (yych <= '\n') goto yy249;
+ if (yych <= '\f') goto yy256;
+ }
+ } else {
+ if (yych <= '"') {
+ if (yych <= 0x1F) goto yy256;
+ } else {
+ if (yych <= '%') goto yy256;
+ if (yych >= '*') goto yy256;
+ }
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= '<') {
+ if (yych >= '<') goto yy256;
+ } else {
+ if (yych <= '=') goto yy249;
+ if (yych <= ']') goto yy256;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '{') goto yy256;
+ } else {
+ if (yych != '~') goto yy256;
+ }
+ }
+ }
+yy249:
+ YYDEBUG(249, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 495 "Zend/zend_ini_scanner.l"
+ { /* Get constant option value */
+ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
+}
+#line 3133 "Zend/zend_ini_scanner.c"
+yy250:
+ YYDEBUG(250, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '<') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ goto yy256;
+ } else {
+ if (yych <= '9') goto yy257;
+ if (yych == ';') goto yy249;
+ goto yy256;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'A') {
+ if (yych <= '=') goto yy249;
+ if (yych <= '@') goto yy256;
+ goto yy280;
+ } else {
+ if (yych <= 'Z') goto yy257;
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ goto yy257;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= '`') goto yy256;
+ if (yych <= 'a') goto yy280;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy251:
+ YYDEBUG(251, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+ if (yych <= '%') {
+ if (yych <= '\f') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ if (yych <= '\n') goto yy249;
+ goto yy256;
+ } else {
+ if (yych <= '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ if (yych <= '"') goto yy249;
+ goto yy256;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ if (yych <= '9') goto yy257;
+ goto yy256;
+ } else {
+ if (yych <= '<') {
+ if (yych <= ';') goto yy249;
+ goto yy256;
+ } else {
+ if (yych <= '=') goto yy249;
+ if (yych <= '@') goto yy256;
+ goto yy257;
+ }
+ }
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'Z') {
+ if (yych <= 'O') goto yy276;
+ if (yych == 'U') goto yy277;
+ goto yy257;
+ } else {
+ if (yych <= '^') {
+ if (yych <= ']') goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '`') goto yy256;
+ goto yy257;
+ }
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= 'o') goto yy276;
+ if (yych == 'u') goto yy277;
+ goto yy257;
+ } else {
+ if (yych <= '|') {
+ if (yych <= '{') goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+ }
+yy252:
+ YYDEBUG(252, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'E') {
+ if (yych <= '%') {
+ if (yych <= '\f') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ if (yych <= '\n') goto yy249;
+ goto yy256;
+ } else {
+ if (yych <= '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ if (yych <= '"') goto yy249;
+ goto yy256;
+ }
+ } else {
+ if (yych <= ':') {
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ if (yych <= '9') goto yy257;
+ goto yy256;
+ } else {
+ if (yych <= '<') {
+ if (yych <= ';') goto yy249;
+ goto yy256;
+ } else {
+ if (yych <= '=') goto yy249;
+ if (yych <= '@') goto yy256;
+ goto yy257;
+ }
+ }
+ }
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'Z') {
+ if (yych <= 'F') goto yy271;
+ if (yych == 'N') goto yy265;
+ goto yy257;
+ } else {
+ if (yych <= '^') {
+ if (yych <= ']') goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '`') goto yy256;
+ goto yy257;
+ }
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= 'f') goto yy271;
+ if (yych == 'n') goto yy265;
+ goto yy257;
+ } else {
+ if (yych <= '|') {
+ if (yych <= '{') goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+ }
+yy253:
+ YYDEBUG(253, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'R') goto yy269;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'r') goto yy269;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy254:
+ YYDEBUG(254, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'E') goto yy259;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'e') goto yy259;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy255:
+ YYDEBUG(255, *YYCURSOR);
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy256:
+ YYDEBUG(256, *YYCURSOR);
+ if (yybm[0+yych] & 2) {
+ goto yy255;
+ }
+ if (yych == '$') goto yy260;
+ goto yy229;
+yy257:
+ YYDEBUG(257, *YYCURSOR);
+ yyaccept = 4;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(258, *YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy257;
+ }
+ if (yych <= ')') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00) goto yy249;
+ goto yy255;
+ } else {
+ if (yych <= '\n') goto yy249;
+ if (yych <= '\f') goto yy255;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= 0x1F) goto yy255;
+ if (yych <= '"') goto yy249;
+ goto yy255;
+ } else {
+ if (yych <= '$') goto yy260;
+ if (yych <= '%') goto yy255;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy255;
+ goto yy249;
+ } else {
+ if (yych == '=') goto yy249;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy249;
+ if (yych <= '{') goto yy255;
+ goto yy249;
+ } else {
+ if (yych == '~') goto yy249;
+ goto yy255;
+ }
+ }
+ }
+yy259:
+ YYDEBUG(259, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'S') goto yy265;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 's') goto yy265;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy260:
+ YYDEBUG(260, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy261;
+ if (yych <= '[') goto yy255;
+ goto yy262;
+ } else {
+ if (yych != '{') goto yy255;
+ }
+yy261:
+ YYDEBUG(261, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 3) {
+ if (yyaccept <= 1) {
+ if (yyaccept <= 0) {
+ goto yy229;
+ } else {
+ goto yy231;
+ }
+ } else {
+ if (yyaccept <= 2) {
+ goto yy227;
+ } else {
+ goto yy244;
+ }
+ }
+ } else {
+ if (yyaccept <= 5) {
+ if (yyaccept <= 4) {
+ goto yy249;
+ } else {
+ goto yy266;
+ }
+ } else {
+ goto yy273;
+ }
+ }
+yy262:
+ YYDEBUG(262, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 8) {
+ goto yy263;
+ }
+ goto yy255;
+yy263:
+ YYDEBUG(263, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(264, *YYCURSOR);
+ if (yybm[0+yych] & 8) {
+ goto yy263;
+ }
+ if (yych <= 0x00) goto yy229;
+ if (yych == '\\') goto yy262;
+ goto yy255;
+yy265:
+ YYDEBUG(265, *YYCURSOR);
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy267;
+ }
+ if (yych <= ';') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy266;
+ if (yych <= '\t') goto yy256;
+ } else {
+ if (yych != '\r') goto yy256;
+ }
+ } else {
+ if (yych <= ')') {
+ if (yych <= '"') goto yy266;
+ if (yych <= '%') goto yy256;
+ } else {
+ if (yych <= '/') goto yy256;
+ if (yych <= '9') goto yy257;
+ if (yych <= ':') goto yy256;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= '@') {
+ if (yych != '=') goto yy256;
+ } else {
+ if (yych <= 'Z') goto yy257;
+ if (yych <= ']') goto yy256;
+ if (yych >= '_') goto yy257;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= '`') goto yy256;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych >= 0x7F) goto yy256;
+ }
+ }
+ }
+yy266:
+ YYDEBUG(266, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 421 "Zend/zend_ini_scanner.l"
+ { /* TRUE value (when used outside option value/offset this causes parse error!) */
+ RETURN_TOKEN(BOOL_TRUE, "1", 1);
+}
+#line 3645 "Zend/zend_ini_scanner.c"
+yy267:
+ YYDEBUG(267, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(268, *YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy267;
+ }
+ goto yy266;
+yy269:
+ YYDEBUG(269, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych != 'U') goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'u') goto yy270;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy270:
+ YYDEBUG(270, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'E') goto yy265;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'e') goto yy265;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy271:
+ YYDEBUG(271, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych != 'F') goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'f') goto yy272;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy272:
+ YYDEBUG(272, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy257;
+ }
+ if (yych <= ')') {
+ if (yych <= '\f') {
+ if (yych <= 0x08) {
+ if (yych >= 0x01) goto yy256;
+ } else {
+ if (yych <= '\t') goto yy274;
+ if (yych >= '\v') goto yy256;
+ }
+ } else {
+ if (yych <= ' ') {
+ if (yych <= '\r') goto yy273;
+ if (yych <= 0x1F) goto yy256;
+ goto yy274;
+ } else {
+ if (yych <= '"') goto yy273;
+ if (yych <= '%') goto yy256;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy256;
+ } else {
+ if (yych != '=') goto yy256;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy273;
+ if (yych <= '{') goto yy256;
+ } else {
+ if (yych != '~') goto yy256;
+ }
+ }
+ }
+yy273:
+ YYDEBUG(273, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 425 "Zend/zend_ini_scanner.l"
+ { /* FALSE value (when used outside option value/offset this causes parse error!)*/
+ RETURN_TOKEN(BOOL_FALSE, "", 0);
+}
+#line 3855 "Zend/zend_ini_scanner.c"
+yy274:
+ YYDEBUG(274, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(275, *YYCURSOR);
+ if (yych == '\t') goto yy274;
+ if (yych == ' ') goto yy274;
+ goto yy273;
+yy276:
+ YYDEBUG(276, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '<') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy273;
+ if (yych <= 0x08) goto yy256;
+ if (yych <= '\t') goto yy274;
+ goto yy273;
+ } else {
+ if (yych == '\r') goto yy273;
+ if (yych <= 0x1F) goto yy256;
+ goto yy274;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy273;
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy273;
+ goto yy256;
+ } else {
+ if (yych <= '9') goto yy257;
+ if (yych == ';') goto yy273;
+ goto yy256;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'N') {
+ if (yych <= '=') goto yy273;
+ if (yych <= '@') goto yy256;
+ if (yych <= 'M') goto yy257;
+ goto yy279;
+ } else {
+ if (yych <= 'Z') goto yy257;
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy273;
+ goto yy257;
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy256;
+ if (yych == 'n') goto yy279;
+ goto yy257;
+ } else {
+ if (yych <= '|') {
+ if (yych <= '{') goto yy256;
+ goto yy273;
+ } else {
+ if (yych == '~') goto yy273;
+ goto yy256;
+ }
+ }
+ }
+ }
+yy277:
+ YYDEBUG(277, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych != 'L') goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'l') goto yy278;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy278:
+ YYDEBUG(278, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'L') goto yy272;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'l') goto yy272;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy279:
+ YYDEBUG(279, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'E') goto yy272;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'e') goto yy272;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy280:
+ YYDEBUG(280, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych != 'L') goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'l') goto yy281;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy281:
+ YYDEBUG(281, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych != 'S') goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 's') goto yy282;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy282:
+ YYDEBUG(282, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '=') {
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy249;
+ if (yych <= 0x08) goto yy256;
+ goto yy249;
+ } else {
+ if (yych == '\r') goto yy249;
+ if (yych <= 0x1F) goto yy256;
+ goto yy249;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '%') goto yy256;
+ if (yych <= ')') goto yy249;
+ if (yych <= '/') goto yy256;
+ goto yy257;
+ } else {
+ if (yych == ';') goto yy249;
+ if (yych <= '<') goto yy256;
+ goto yy249;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy256;
+ if (yych == 'E') goto yy272;
+ goto yy257;
+ } else {
+ if (yych <= ']') goto yy256;
+ if (yych <= '^') goto yy249;
+ if (yych <= '_') goto yy257;
+ goto yy256;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'e') goto yy272;
+ if (yych <= 'z') goto yy257;
+ goto yy256;
+ } else {
+ if (yych == '}') goto yy256;
+ if (yych <= '~') goto yy249;
+ goto yy256;
+ }
+ }
+ }
+yy283:
+ YYDEBUG(283, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy284:
+ YYDEBUG(284, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy283;
+ }
+ if (yych >= '\r') goto yy287;
+yy285:
+ YYDEBUG(285, *YYCURSOR);
+ ++YYCURSOR;
+yy286:
+ YYDEBUG(286, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 585 "Zend/zend_ini_scanner.l"
+ { /* Comment */
+ BEGIN(INITIAL);
+ SCNG(lineno)++;
+ return END_OF_LINE;
+}
+#line 4248 "Zend/zend_ini_scanner.c"
+yy287:
+ YYDEBUG(287, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy285;
+ goto yy286;
+yy288:
+ YYDEBUG(288, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(289, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy288;
+ }
+ if (yych <= ')') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00) goto yy244;
+ goto yy255;
+ } else {
+ if (yych <= '\n') goto yy244;
+ if (yych <= '\f') goto yy255;
+ goto yy244;
+ }
+ } else {
+ if (yych <= '#') {
+ if (yych <= 0x1F) goto yy255;
+ if (yych <= '"') goto yy244;
+ goto yy255;
+ } else {
+ if (yych <= '$') goto yy260;
+ if (yych <= '%') goto yy255;
+ goto yy244;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '=') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy244;
+ if (yych <= '{') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '~') goto yy244;
+ goto yy255;
+ }
+ }
+ }
+yy290:
+ YYDEBUG(290, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(291, *YYCURSOR);
+ if (yych <= '.') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy244;
+ if (yych <= 0x08) goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '\r') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych <= '"') goto yy244;
+ if (yych <= '#') goto yy255;
+ goto yy260;
+ } else {
+ if (yych <= '%') goto yy255;
+ if (yych <= ')') goto yy244;
+ if (yych <= '-') goto yy255;
+ goto yy288;
+ }
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych <= ':') {
+ if (yych <= '/') goto yy255;
+ if (yych <= '9') goto yy290;
+ goto yy255;
+ } else {
+ if (yych == '<') goto yy255;
+ goto yy244;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == '^') goto yy244;
+ goto yy255;
+ } else {
+ if (yych == '}') goto yy255;
+ if (yych <= '~') goto yy244;
+ goto yy255;
+ }
+ }
+ }
+yy292:
+ YYDEBUG(292, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(293, *YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy244;
+ if (yych <= 0x08) goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '\r') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych <= '"') goto yy244;
+ if (yych <= '#') goto yy255;
+ goto yy260;
+ } else {
+ if (yych <= '%') goto yy255;
+ if (yych <= ')') goto yy244;
+ goto yy255;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= '9') goto yy292;
+ if (yych <= ':') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '=') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy244;
+ if (yych <= '{') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '~') goto yy244;
+ goto yy255;
+ }
+ }
+ }
+yy294:
+ YYDEBUG(294, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(295, *YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy244;
+ if (yych <= 0x08) goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '\r') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '$') {
+ if (yych <= '"') goto yy244;
+ if (yych <= '#') goto yy255;
+ goto yy260;
+ } else {
+ if (yych <= '%') goto yy255;
+ if (yych <= ')') goto yy244;
+ goto yy255;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= ';') {
+ if (yych <= '9') goto yy294;
+ if (yych <= ':') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '=') goto yy244;
+ goto yy255;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '^') goto yy244;
+ if (yych <= '{') goto yy255;
+ goto yy244;
+ } else {
+ if (yych == '~') goto yy244;
+ goto yy255;
+ }
+ }
+ }
+yy296:
+ YYDEBUG(296, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(297, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy296;
+ }
+ YYDEBUG(298, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(299, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 368 "Zend/zend_ini_scanner.l"
+ { /* Raw string */
+ /* Eat leading and trailing single quotes */
+ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
+ SCNG(yy_text)++;
+ yyleng = yyleng - 2;
+ }
+ RETURN_TOKEN(TC_RAW, yytext, yyleng);
+}
+#line 4475 "Zend/zend_ini_scanner.c"
+yy300:
+ YYDEBUG(300, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(301, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 401 "Zend/zend_ini_scanner.l"
+ { /* Variable start */
+ yy_push_state(ST_VARNAME TSRMLS_CC);
+ return TC_DOLLAR_CURLY;
+}
+#line 4486 "Zend/zend_ini_scanner.c"
+yy302:
+ YYDEBUG(302, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ if (yych == '\t') goto yy302;
+ if (yych == ' ') goto yy302;
+ goto yy236;
+yy304:
+ YYDEBUG(304, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy233;
+yy305:
+ YYDEBUG(305, *YYCURSOR);
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+yy306:
+ YYDEBUG(306, *YYCURSOR);
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy231;
+ if (yych <= '\t') goto yy305;
+ goto yy304;
+ } else {
+ if (yych == '\r') goto yy308;
+ goto yy231;
+ }
+ } else {
+ if (yych <= '"') {
+ if (yych <= ' ') goto yy305;
+ if (yych <= '!') goto yy231;
+ } else {
+ if (yych == ';') goto yy283;
+ goto yy231;
+ }
+ }
+ YYDEBUG(307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy238;
+yy308:
+ YYDEBUG(308, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy304;
+ goto yy233;
+ }
+/* *********************************** */
+yyc_ST_VARNAME:
+ {
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 0, 0, 128, 128, 0, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 0, 0, 128, 0, 128, 0, 128,
+ 0, 0, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 128, 0, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 128, 128, 0, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ YYDEBUG(309, *YYCURSOR);
+ YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= ')') {
+ if (yych <= '"') {
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy311;
+ if (yych <= '\n') goto yy313;
+ } else {
+ if (yych <= '\r') goto yy313;
+ if (yych >= '!') goto yy313;
+ }
+ } else {
+ if (yych <= '%') {
+ if (yych == '$') goto yy313;
+ } else {
+ if (yych != '\'') goto yy313;
+ }
+ }
+ } else {
+ if (yych <= '[') {
+ if (yych <= '<') {
+ if (yych == ';') goto yy313;
+ } else {
+ if (yych <= '=') goto yy313;
+ if (yych >= '[') goto yy313;
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych == '^') goto yy313;
+ } else {
+ if (yych == '}') goto yy315;
+ if (yych <= '~') goto yy313;
+ }
+ }
+ }
+yy311:
+ YYDEBUG(311, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy318;
+yy312:
+ YYDEBUG(312, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 406 "Zend/zend_ini_scanner.l"
+ { /* Variable name */
+ /* Eat leading whitespace */
+ EAT_LEADING_WHITESPACE();
+
+ /* Eat trailing whitespace */
+ EAT_TRAILING_WHITESPACE();
+
+ RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
+}
+#line 4627 "Zend/zend_ini_scanner.c"
+yy313:
+ YYDEBUG(313, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(314, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 603 "Zend/zend_ini_scanner.l"
+ {
+ return 0;
+}
+#line 4637 "Zend/zend_ini_scanner.c"
+yy315:
+ YYDEBUG(315, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(316, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 416 "Zend/zend_ini_scanner.l"
+ { /* Variable end */
+ yy_pop_state(TSRMLS_C);
+ return '}';
+}
+#line 4648 "Zend/zend_ini_scanner.c"
+yy317:
+ YYDEBUG(317, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy318:
+ YYDEBUG(318, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy317;
+ }
+ goto yy312;
+ }
+}
+#line 607 "Zend/zend_ini_scanner.l"
+
+}
diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h
index 2655fc873..aafe7efdd 100644
--- a/Zend/zend_ini_scanner.h
+++ b/Zend/zend_ini_scanner.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini_scanner.l b/Zend/zend_ini_scanner.l
index 92fb08f02..6207c76b2 100644
--- a/Zend/zend_ini_scanner.l
+++ b/Zend/zend_ini_scanner.l
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h
index 287d7bc1f..572395497 100644
--- a/Zend/zend_ini_scanner_defs.h
+++ b/Zend/zend_ini_scanner_defs.h
@@ -1,13 +1,13 @@
-/* Generated by re2c 0.13.5 */
-#line 3 "Zend/zend_ini_scanner_defs.h"
-
-enum YYCONDTYPE {
- yycINITIAL,
- yycST_OFFSET,
- yycST_SECTION_VALUE,
- yycST_VALUE,
- yycST_SECTION_RAW,
- yycST_DOUBLE_QUOTES,
- yycST_VARNAME,
- yycST_RAW,
-};
+/* Generated by re2c 0.13.5 */
+#line 3 "Zend/zend_ini_scanner_defs.h"
+
+enum YYCONDTYPE {
+ yycINITIAL,
+ yycST_OFFSET,
+ yycST_SECTION_VALUE,
+ yycST_VALUE,
+ yycST_SECTION_RAW,
+ yycST_DOUBLE_QUOTES,
+ yycST_VARNAME,
+ yycST_RAW,
+};
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 16751549b..4b01eb3c4 100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_interfaces.h b/Zend/zend_interfaces.h
index ba4bc6ccb..7b70bc49d 100644
--- a/Zend/zend_interfaces.h
+++ b/Zend/zend_interfaces.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_istdiostream.h b/Zend/zend_istdiostream.h
index d7edf172f..40fdb4310 100644
--- a/Zend/zend_istdiostream.h
+++ b/Zend/zend_istdiostream.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_iterators.c b/Zend/zend_iterators.c
index f2c27fa63..a2854c4b7 100644
--- a/Zend/zend_iterators.c
+++ b/Zend/zend_iterators.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_iterators.h b/Zend/zend_iterators.h
index f74068a27..873f36efb 100644
--- a/Zend/zend_iterators.h
+++ b/Zend/zend_iterators.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_language_parser.c b/Zend/zend_language_parser.c
index ccb2be0a0..509bb3824 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -80,7 +80,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -286,7 +286,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
T_NAMESPACE = 383,
T_NS_C = 384,
T_DIR = 385,
- T_NS_SEPARATOR = 386
+ T_NS_SEPARATOR = 386,
+ T_ELLIPSIS = 387
};
#endif
/* Tokens. */
@@ -420,6 +421,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
#define T_NS_C 384
#define T_DIR 385
#define T_NS_SEPARATOR 386
+#define T_ELLIPSIS 387
@@ -649,20 +651,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 5126
+#define YYLAST 5848
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 160
+#define YYNTOKENS 161
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 218
+#define YYNNTS 226
/* YYNRULES -- Number of rules. */
-#define YYNRULES 545
+#define YYNRULES 590
/* YYNRULES -- Number of states. */
-#define YYNSTATES 1002
+#define YYNSTATES 1088
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 386
+#define YYMAXUTOK 387
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -673,16 +675,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 49, 159, 2, 156, 48, 32, 2,
- 151, 152, 46, 43, 8, 44, 45, 47, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 27, 153,
+ 2, 2, 2, 49, 160, 2, 157, 48, 32, 2,
+ 152, 153, 46, 43, 8, 44, 45, 47, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 27, 154,
37, 14, 38, 26, 52, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 62, 2, 157, 31, 2, 158, 2, 2, 2,
+ 2, 62, 2, 158, 31, 2, 159, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 154, 30, 155, 51, 2, 2, 2,
+ 2, 2, 2, 155, 30, 156, 51, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -708,7 +710,7 @@ static const yytype_uint8 yytranslate[] =
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150
+ 144, 145, 146, 147, 148, 149, 150, 151
};
#if YYDEBUG
@@ -717,299 +719,324 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 6, 10, 11, 13, 17, 19,
- 21, 23, 28, 32, 33, 40, 41, 47, 51, 54,
- 58, 60, 62, 66, 69, 74, 80, 85, 86, 90,
- 91, 93, 95, 97, 102, 104, 107, 111, 112, 113,
- 121, 122, 123, 134, 135, 136, 142, 143, 144, 152,
- 153, 154, 155, 168, 169, 174, 177, 181, 184, 188,
- 191, 195, 199, 202, 206, 210, 214, 216, 219, 225,
- 226, 227, 238, 239, 240, 251, 252, 259, 261, 262,
- 263, 272, 276, 280, 281, 282, 283, 284, 285, 299,
- 300, 301, 307, 309, 310, 312, 315, 316, 317, 328,
- 330, 334, 336, 338, 340, 341, 343, 344, 355, 356,
- 365, 366, 374, 376, 379, 381, 384, 385, 388, 390,
- 391, 394, 395, 398, 400, 404, 405, 408, 410, 413,
- 414, 420, 422, 427, 429, 434, 436, 441, 445, 451,
- 455, 460, 465, 471, 472, 473, 480, 481, 487, 489,
- 491, 493, 498, 499, 500, 506, 507, 508, 515, 516,
- 519, 520, 524, 526, 527, 530, 534, 540, 545, 550,
- 556, 564, 571, 572, 574, 576, 578, 581, 585, 589,
- 591, 593, 596, 600, 604, 609, 613, 615, 617, 620,
- 625, 629, 635, 637, 641, 644, 645, 646, 651, 654,
- 656, 657, 667, 671, 673, 677, 679, 683, 684, 686,
- 688, 691, 694, 697, 701, 703, 707, 709, 711, 715,
- 720, 724, 725, 727, 729, 733, 735, 737, 738, 740,
- 742, 745, 747, 749, 751, 753, 755, 757, 761, 767,
- 769, 773, 779, 784, 788, 790, 791, 793, 794, 799,
- 801, 804, 806, 811, 815, 816, 820, 822, 824, 825,
- 826, 829, 830, 835, 836, 844, 848, 853, 854, 862,
- 865, 869, 873, 877, 881, 885, 889, 893, 897, 901,
- 905, 909, 912, 915, 918, 921, 922, 927, 928, 933,
- 934, 939, 940, 945, 949, 953, 957, 961, 965, 969,
- 973, 977, 981, 985, 989, 993, 996, 999, 1002, 1005,
- 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1037, 1041, 1043,
- 1045, 1046, 1052, 1053, 1054, 1062, 1063, 1069, 1071, 1074,
- 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1096, 1100, 1102,
- 1104, 1106, 1110, 1113, 1115, 1116, 1127, 1128, 1140, 1143,
- 1146, 1151, 1156, 1161, 1166, 1171, 1176, 1180, 1182, 1183,
- 1188, 1192, 1197, 1199, 1202, 1203, 1207, 1208, 1214, 1215,
- 1220, 1221, 1227, 1228, 1234, 1235, 1241, 1242, 1248, 1249,
- 1253, 1255, 1257, 1261, 1264, 1266, 1270, 1273, 1275, 1277,
- 1278, 1279, 1286, 1288, 1291, 1292, 1295, 1296, 1299, 1301,
- 1302, 1304, 1306, 1307, 1309, 1311, 1313, 1315, 1317, 1319,
- 1321, 1323, 1325, 1327, 1329, 1333, 1336, 1338, 1340, 1342,
- 1346, 1349, 1352, 1355, 1360, 1364, 1366, 1368, 1372, 1374,
- 1376, 1378, 1380, 1384, 1387, 1389, 1393, 1397, 1399, 1400,
- 1403, 1404, 1406, 1412, 1416, 1420, 1422, 1424, 1426, 1430,
- 1434, 1436, 1438, 1440, 1441, 1442, 1450, 1452, 1455, 1456,
- 1457, 1462, 1467, 1472, 1473, 1476, 1478, 1480, 1481, 1483,
- 1486, 1490, 1494, 1496, 1501, 1502, 1508, 1510, 1512, 1514,
- 1516, 1519, 1521, 1526, 1531, 1533, 1535, 1540, 1541, 1543,
- 1545, 1546, 1549, 1554, 1559, 1561, 1563, 1567, 1569, 1572,
- 1576, 1578, 1580, 1581, 1587, 1588, 1589, 1592, 1598, 1602,
- 1606, 1608, 1615, 1620, 1625, 1628, 1631, 1634, 1636, 1639,
- 1641, 1642, 1648, 1652, 1656, 1663, 1667, 1669, 1671, 1673,
- 1678, 1683, 1688, 1691, 1694, 1699, 1702, 1705, 1707, 1708,
- 1713, 1715, 1717, 1721, 1725, 1729
+ 21, 23, 28, 32, 33, 40, 41, 47, 51, 56,
+ 61, 64, 68, 70, 72, 76, 79, 84, 88, 90,
+ 92, 96, 99, 104, 108, 110, 112, 116, 119, 124,
+ 130, 135, 136, 140, 141, 143, 145, 147, 152, 154,
+ 157, 161, 162, 163, 171, 172, 173, 184, 185, 186,
+ 192, 193, 194, 202, 203, 204, 205, 218, 219, 224,
+ 227, 231, 234, 238, 241, 245, 249, 252, 256, 260,
+ 264, 266, 269, 275, 276, 277, 288, 289, 290, 301,
+ 302, 309, 311, 312, 313, 322, 326, 330, 331, 332,
+ 333, 334, 335, 349, 350, 351, 357, 359, 360, 362,
+ 365, 366, 367, 378, 380, 384, 386, 388, 390, 391,
+ 393, 394, 396, 397, 408, 409, 418, 419, 427, 429,
+ 432, 434, 437, 438, 441, 443, 444, 447, 448, 451,
+ 453, 457, 458, 461, 463, 466, 467, 473, 475, 480,
+ 482, 487, 489, 494, 498, 504, 508, 513, 518, 524,
+ 525, 526, 533, 534, 540, 542, 544, 546, 551, 552,
+ 553, 559, 560, 561, 568, 569, 572, 573, 577, 579,
+ 580, 582, 586, 591, 598, 599, 601, 603, 605, 608,
+ 612, 616, 618, 620, 623, 626, 630, 634, 639, 644,
+ 648, 650, 652, 655, 660, 664, 670, 672, 676, 679,
+ 680, 681, 686, 689, 691, 692, 702, 706, 708, 712,
+ 714, 718, 719, 721, 723, 726, 729, 732, 736, 738,
+ 742, 744, 746, 750, 755, 759, 760, 762, 764, 768,
+ 770, 772, 773, 775, 777, 780, 782, 784, 786, 788,
+ 790, 792, 796, 802, 804, 808, 814, 819, 823, 825,
+ 826, 828, 829, 834, 836, 839, 841, 846, 850, 851,
+ 855, 857, 859, 860, 861, 864, 865, 870, 871, 879,
+ 883, 888, 889, 897, 900, 904, 908, 912, 916, 920,
+ 924, 928, 932, 936, 940, 944, 947, 950, 953, 956,
+ 957, 962, 963, 968, 969, 974, 975, 980, 984, 988,
+ 992, 996, 1000, 1004, 1008, 1012, 1016, 1020, 1024, 1028,
+ 1031, 1034, 1037, 1040, 1044, 1048, 1052, 1056, 1060, 1064,
+ 1068, 1072, 1076, 1078, 1080, 1081, 1087, 1088, 1089, 1097,
+ 1098, 1104, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127,
+ 1130, 1131, 1135, 1137, 1139, 1141, 1145, 1148, 1150, 1151,
+ 1162, 1163, 1175, 1178, 1181, 1186, 1191, 1196, 1201, 1206,
+ 1211, 1215, 1217, 1218, 1223, 1227, 1232, 1234, 1237, 1238,
+ 1242, 1243, 1249, 1250, 1255, 1256, 1262, 1263, 1269, 1270,
+ 1276, 1277, 1283, 1284, 1288, 1290, 1292, 1296, 1299, 1301,
+ 1305, 1308, 1310, 1312, 1313, 1314, 1321, 1323, 1326, 1327,
+ 1330, 1331, 1334, 1336, 1337, 1339, 1341, 1342, 1344, 1346,
+ 1348, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1368,
+ 1371, 1375, 1377, 1382, 1386, 1388, 1390, 1392, 1396, 1399,
+ 1401, 1403, 1405, 1409, 1413, 1417, 1421, 1425, 1428, 1431,
+ 1435, 1439, 1443, 1447, 1451, 1455, 1459, 1463, 1467, 1471,
+ 1475, 1479, 1483, 1487, 1491, 1495, 1499, 1503, 1507, 1512,
+ 1518, 1521, 1524, 1528, 1530, 1532, 1534, 1536, 1540, 1543,
+ 1545, 1549, 1553, 1555, 1556, 1559, 1560, 1562, 1568, 1572,
+ 1576, 1578, 1580, 1582, 1586, 1590, 1592, 1594, 1596, 1597,
+ 1598, 1606, 1608, 1611, 1612, 1613, 1618, 1623, 1628, 1629,
+ 1632, 1634, 1636, 1637, 1639, 1642, 1646, 1650, 1652, 1657,
+ 1658, 1664, 1666, 1668, 1670, 1672, 1675, 1677, 1682, 1687,
+ 1689, 1691, 1696, 1697, 1699, 1701, 1702, 1705, 1710, 1715,
+ 1717, 1719, 1723, 1725, 1728, 1732, 1734, 1736, 1737, 1743,
+ 1744, 1745, 1748, 1754, 1758, 1762, 1764, 1771, 1776, 1781,
+ 1784, 1787, 1790, 1792, 1795, 1797, 1798, 1804, 1808, 1812,
+ 1819, 1823, 1825, 1827, 1829, 1834, 1839, 1844, 1847, 1850,
+ 1855, 1858, 1861, 1863, 1864, 1869, 1871, 1873, 1877, 1881,
+ 1885
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 161, 0, -1, 162, -1, -1, 162, 163, 165, -1,
- -1, 72, -1, 164, 150, 72, -1, 174, -1, 209,
- -1, 210, -1, 119, 151, 152, 153, -1, 147, 164,
- 153, -1, -1, 147, 164, 154, 166, 162, 155, -1,
- -1, 147, 154, 167, 162, 155, -1, 106, 168, 153,
- -1, 170, 153, -1, 168, 8, 169, -1, 169, -1,
- 164, -1, 164, 91, 72, -1, 150, 164, -1, 150,
- 164, 91, 72, -1, 170, 8, 72, 14, 326, -1,
- 100, 72, 14, 326, -1, -1, 171, 172, 173, -1,
- -1, 174, -1, 209, -1, 210, -1, 119, 151, 152,
- 153, -1, 175, -1, 72, 27, -1, 154, 171, 155,
- -1, -1, -1, 66, 333, 176, 174, 177, 236, 240,
- -1, -1, -1, 66, 333, 27, 178, 171, 179, 238,
- 241, 69, 153, -1, -1, -1, 83, 180, 333, 181,
- 235, -1, -1, -1, 82, 182, 174, 83, 183, 333,
- 153, -1, -1, -1, -1, 85, 151, 274, 153, 184,
- 274, 153, 185, 274, 152, 186, 226, -1, -1, 92,
- 333, 187, 230, -1, 96, 153, -1, 96, 332, 153,
- -1, 97, 153, -1, 97, 332, 153, -1, 101, 153,
- -1, 101, 285, 153, -1, 101, 337, 153, -1, 299,
- 153, -1, 108, 247, 153, -1, 114, 249, 153, -1,
- 81, 273, 153, -1, 76, -1, 332, 153, -1, 116,
- 151, 207, 152, 153, -1, -1, -1, 87, 151, 337,
- 91, 188, 224, 223, 152, 189, 227, -1, -1, -1,
- 87, 151, 285, 91, 190, 224, 223, 152, 191, 227,
- -1, -1, 89, 192, 151, 229, 152, 228, -1, 153,
- -1, -1, -1, 102, 193, 154, 171, 155, 195, 194,
- 200, -1, 105, 332, 153, -1, 98, 72, 153, -1,
- -1, -1, -1, -1, -1, 103, 151, 196, 315, 197,
- 74, 152, 198, 154, 171, 155, 199, 202, -1, -1,
- -1, 104, 201, 154, 171, 155, -1, 203, -1, -1,
- 204, -1, 203, 204, -1, -1, -1, 103, 151, 315,
- 205, 74, 152, 206, 154, 171, 155, -1, 208, -1,
- 207, 8, 208, -1, 337, -1, 212, -1, 214, -1,
- -1, 32, -1, -1, 302, 211, 72, 213, 151, 242,
- 152, 154, 171, 155, -1, -1, 217, 72, 218, 215,
- 221, 154, 250, 155, -1, -1, 219, 72, 216, 220,
- 154, 250, 155, -1, 120, -1, 113, 120, -1, 121,
- -1, 112, 120, -1, -1, 123, 315, -1, 122, -1,
- -1, 123, 222, -1, -1, 124, 222, -1, 315, -1,
- 222, 8, 315, -1, -1, 126, 224, -1, 337, -1,
- 32, 337, -1, -1, 127, 151, 225, 362, 152, -1,
- 174, -1, 27, 171, 86, 153, -1, 174, -1, 27,
- 171, 88, 153, -1, 174, -1, 27, 171, 90, 153,
- -1, 72, 14, 326, -1, 229, 8, 72, 14, 326,
- -1, 154, 231, 155, -1, 154, 153, 231, 155, -1,
- 27, 231, 93, 153, -1, 27, 153, 231, 93, 153,
- -1, -1, -1, 231, 94, 332, 234, 232, 171, -1,
- -1, 231, 95, 234, 233, 171, -1, 27, -1, 153,
- -1, 174, -1, 27, 171, 84, 153, -1, -1, -1,
- 236, 67, 333, 237, 174, -1, -1, -1, 238, 67,
- 333, 27, 239, 171, -1, -1, 68, 174, -1, -1,
- 68, 27, 171, -1, 243, -1, -1, 244, 74, -1,
- 244, 32, 74, -1, 244, 32, 74, 14, 326, -1,
- 244, 74, 14, 326, -1, 243, 8, 244, 74, -1,
- 243, 8, 244, 32, 74, -1, 243, 8, 244, 32,
- 74, 14, 326, -1, 243, 8, 244, 74, 14, 326,
- -1, -1, 128, -1, 129, -1, 315, -1, 151, 152,
- -1, 151, 246, 152, -1, 151, 299, 152, -1, 285,
- -1, 337, -1, 32, 335, -1, 246, 8, 285, -1,
- 246, 8, 337, -1, 246, 8, 32, 335, -1, 247,
- 8, 248, -1, 248, -1, 74, -1, 156, 334, -1,
- 156, 154, 332, 155, -1, 249, 8, 74, -1, 249,
- 8, 74, 14, 326, -1, 74, -1, 74, 14, 326,
- -1, 250, 251, -1, -1, -1, 267, 252, 271, 153,
- -1, 272, 153, -1, 254, -1, -1, 268, 302, 211,
- 72, 253, 151, 242, 152, 266, -1, 106, 255, 256,
- -1, 315, -1, 255, 8, 315, -1, 153, -1, 154,
- 257, 155, -1, -1, 258, -1, 259, -1, 258, 259,
- -1, 260, 153, -1, 264, 153, -1, 263, 107, 261,
- -1, 315, -1, 261, 8, 315, -1, 72, -1, 263,
- -1, 315, 146, 72, -1, 262, 91, 265, 72, -1,
- 262, 91, 270, -1, -1, 270, -1, 153, -1, 154,
- 171, 155, -1, 269, -1, 115, -1, -1, 269, -1,
- 270, -1, 269, 270, -1, 109, -1, 110, -1, 111,
- -1, 114, -1, 113, -1, 112, -1, 271, 8, 74,
- -1, 271, 8, 74, 14, 326, -1, 74, -1, 74,
- 14, 326, -1, 272, 8, 72, 14, 326, -1, 100,
- 72, 14, 326, -1, 273, 8, 332, -1, 332, -1,
- -1, 275, -1, -1, 275, 8, 276, 332, -1, 332,
- -1, 277, 341, -1, 341, -1, 278, 62, 356, 157,
- -1, 62, 356, 157, -1, -1, 278, 280, 277, -1,
- 278, -1, 277, -1, -1, -1, 282, 279, -1, -1,
- 64, 316, 284, 324, -1, -1, 127, 151, 286, 362,
- 152, 14, 332, -1, 337, 14, 332, -1, 337, 14,
- 32, 337, -1, -1, 337, 14, 32, 64, 316, 287,
- 324, -1, 63, 332, -1, 337, 25, 332, -1, 337,
- 24, 332, -1, 337, 23, 332, -1, 337, 22, 332,
- -1, 337, 21, 332, -1, 337, 20, 332, -1, 337,
- 19, 332, -1, 337, 18, 332, -1, 337, 17, 332,
- -1, 337, 16, 332, -1, 337, 15, 332, -1, 336,
- 61, -1, 61, 336, -1, 336, 60, -1, 60, 336,
- -1, -1, 332, 28, 288, 332, -1, -1, 332, 29,
- 289, 332, -1, -1, 332, 9, 290, 332, -1, -1,
- 332, 11, 291, 332, -1, 332, 10, 332, -1, 332,
- 30, 332, -1, 332, 32, 332, -1, 332, 31, 332,
- -1, 332, 45, 332, -1, 332, 43, 332, -1, 332,
- 44, 332, -1, 332, 46, 332, -1, 332, 47, 332,
- -1, 332, 48, 332, -1, 332, 42, 332, -1, 332,
- 41, 332, -1, 43, 332, -1, 44, 332, -1, 49,
- 332, -1, 51, 332, -1, 332, 34, 332, -1, 332,
- 33, 332, -1, 332, 36, 332, -1, 332, 35, 332,
- -1, 332, 37, 332, -1, 332, 40, 332, -1, 332,
- 38, 332, -1, 332, 39, 332, -1, 332, 50, 316,
- -1, 333, -1, 283, -1, -1, 151, 283, 152, 292,
- 281, -1, -1, -1, 332, 26, 293, 332, 27, 294,
- 332, -1, -1, 332, 26, 27, 295, 332, -1, 371,
- -1, 59, 332, -1, 58, 332, -1, 57, 332, -1,
- 56, 332, -1, 55, 332, -1, 54, 332, -1, 53,
- 332, -1, 65, 322, -1, -1, 52, 296, 332, -1,
- 328, -1, 300, -1, 301, -1, 158, 323, 158, -1,
- 12, 332, -1, 13, -1, -1, 302, 211, 297, 151,
- 242, 152, 303, 154, 171, 155, -1, -1, 114, 302,
- 211, 298, 151, 242, 152, 303, 154, 171, 155, -1,
- 13, 285, -1, 13, 337, -1, 13, 332, 126, 285,
- -1, 13, 332, 126, 337, -1, 301, 62, 356, 157,
- -1, 300, 62, 356, 157, -1, 80, 62, 356, 157,
- -1, 128, 151, 365, 152, -1, 62, 365, 157, -1,
- 99, -1, -1, 106, 151, 304, 152, -1, 304, 8,
- 74, -1, 304, 8, 32, 74, -1, 74, -1, 32,
- 74, -1, -1, 164, 306, 245, -1, -1, 147, 150,
- 164, 307, 245, -1, -1, 150, 164, 308, 245, -1,
- -1, 314, 146, 360, 309, 245, -1, -1, 314, 146,
- 347, 310, 245, -1, -1, 349, 146, 360, 311, 245,
- -1, -1, 349, 146, 347, 312, 245, -1, -1, 347,
- 313, 245, -1, 114, -1, 164, -1, 147, 150, 164,
- -1, 150, 164, -1, 164, -1, 147, 150, 164, -1,
- 150, 164, -1, 314, -1, 317, -1, -1, -1, 353,
- 125, 318, 357, 319, 320, -1, 353, -1, 320, 321,
- -1, -1, 125, 357, -1, -1, 151, 152, -1, 333,
- -1, -1, 79, -1, 367, -1, -1, 245, -1, 70,
- -1, 71, -1, 80, -1, 134, -1, 135, -1, 149,
- -1, 131, -1, 132, -1, 133, -1, 148, -1, 142,
- 79, 143, -1, 142, 143, -1, 325, -1, 376, -1,
- 164, -1, 147, 150, 164, -1, 150, 164, -1, 43,
- 326, -1, 44, 326, -1, 128, 151, 329, 152, -1,
- 62, 329, 157, -1, 327, -1, 130, -1, 314, 146,
- 72, -1, 73, -1, 377, -1, 375, -1, 164, -1,
- 147, 150, 164, -1, 150, 164, -1, 325, -1, 159,
- 367, 159, -1, 142, 367, 143, -1, 130, -1, -1,
- 331, 330, -1, -1, 8, -1, 331, 8, 326, 126,
- 326, -1, 331, 8, 326, -1, 326, 126, 326, -1,
- 326, -1, 334, -1, 285, -1, 151, 332, 152, -1,
- 151, 299, 152, -1, 337, -1, 337, -1, 337, -1,
- -1, -1, 352, 125, 338, 357, 339, 346, 340, -1,
- 352, -1, 340, 341, -1, -1, -1, 125, 357, 342,
- 346, -1, 343, 62, 356, 157, -1, 344, 62, 356,
- 157, -1, -1, 345, 245, -1, 344, -1, 343, -1,
- -1, 354, -1, 361, 354, -1, 314, 146, 347, -1,
- 349, 146, 347, -1, 354, -1, 350, 62, 356, 157,
- -1, -1, 305, 351, 62, 356, 157, -1, 353, -1,
- 350, -1, 305, -1, 354, -1, 361, 354, -1, 348,
- -1, 354, 62, 356, 157, -1, 354, 154, 332, 155,
- -1, 355, -1, 74, -1, 156, 154, 332, 155, -1,
- -1, 332, -1, 359, -1, -1, 347, 358, -1, 359,
- 62, 356, 157, -1, 359, 154, 332, 155, -1, 360,
- -1, 72, -1, 154, 332, 155, -1, 156, -1, 361,
- 156, -1, 362, 8, 363, -1, 363, -1, 337, -1,
- -1, 127, 151, 364, 362, 152, -1, -1, -1, 366,
- 330, -1, 366, 8, 332, 126, 332, -1, 366, 8,
- 332, -1, 332, 126, 332, -1, 332, -1, 366, 8,
- 332, 126, 32, 335, -1, 366, 8, 32, 335, -1,
- 332, 126, 32, 335, -1, 32, 335, -1, 367, 368,
- -1, 367, 79, -1, 368, -1, 79, 368, -1, 74,
- -1, -1, 74, 62, 369, 370, 157, -1, 74, 125,
- 72, -1, 144, 332, 155, -1, 144, 73, 62, 332,
- 157, 155, -1, 145, 337, 155, -1, 72, -1, 75,
- -1, 74, -1, 117, 151, 372, 152, -1, 118, 151,
- 337, 152, -1, 118, 151, 285, 152, -1, 7, 332,
- -1, 6, 332, -1, 5, 151, 332, 152, -1, 4,
- 332, -1, 3, 332, -1, 374, -1, -1, 372, 8,
- 373, 374, -1, 337, -1, 285, -1, 314, 146, 72,
- -1, 349, 146, 72, -1, 314, 146, 120, -1, 314,
- 146, 120, -1
+ 162, 0, -1, 163, -1, -1, 163, 164, 166, -1,
+ -1, 72, -1, 165, 150, 72, -1, 179, -1, 214,
+ -1, 215, -1, 119, 152, 153, 154, -1, 147, 165,
+ 154, -1, -1, 147, 165, 155, 167, 163, 156, -1,
+ -1, 147, 155, 168, 163, 156, -1, 106, 169, 154,
+ -1, 106, 99, 171, 154, -1, 106, 100, 173, 154,
+ -1, 175, 154, -1, 169, 8, 170, -1, 170, -1,
+ 165, -1, 165, 91, 72, -1, 150, 165, -1, 150,
+ 165, 91, 72, -1, 171, 8, 172, -1, 172, -1,
+ 165, -1, 165, 91, 72, -1, 150, 165, -1, 150,
+ 165, 91, 72, -1, 173, 8, 174, -1, 174, -1,
+ 165, -1, 165, 91, 72, -1, 150, 165, -1, 150,
+ 165, 91, 72, -1, 175, 8, 72, 14, 334, -1,
+ 100, 72, 14, 334, -1, -1, 176, 177, 178, -1,
+ -1, 179, -1, 214, -1, 215, -1, 119, 152, 153,
+ 154, -1, 180, -1, 72, 27, -1, 155, 176, 156,
+ -1, -1, -1, 66, 342, 181, 179, 182, 242, 246,
+ -1, -1, -1, 66, 342, 27, 183, 176, 184, 244,
+ 247, 69, 154, -1, -1, -1, 83, 185, 342, 186,
+ 241, -1, -1, -1, 82, 187, 179, 83, 188, 342,
+ 154, -1, -1, -1, -1, 85, 152, 281, 154, 189,
+ 281, 154, 190, 281, 153, 191, 232, -1, -1, 92,
+ 342, 192, 236, -1, 96, 154, -1, 96, 341, 154,
+ -1, 97, 154, -1, 97, 341, 154, -1, 101, 154,
+ -1, 101, 292, 154, -1, 101, 346, 154, -1, 306,
+ 154, -1, 108, 254, 154, -1, 114, 256, 154, -1,
+ 81, 280, 154, -1, 76, -1, 341, 154, -1, 116,
+ 152, 212, 153, 154, -1, -1, -1, 87, 152, 346,
+ 91, 193, 230, 229, 153, 194, 233, -1, -1, -1,
+ 87, 152, 292, 91, 195, 230, 229, 153, 196, 233,
+ -1, -1, 89, 197, 152, 235, 153, 234, -1, 154,
+ -1, -1, -1, 102, 198, 155, 176, 156, 200, 199,
+ 205, -1, 105, 341, 154, -1, 98, 72, 154, -1,
+ -1, -1, -1, -1, -1, 103, 152, 201, 322, 202,
+ 74, 153, 203, 155, 176, 156, 204, 207, -1, -1,
+ -1, 104, 206, 155, 176, 156, -1, 208, -1, -1,
+ 209, -1, 208, 209, -1, -1, -1, 103, 152, 322,
+ 210, 74, 153, 211, 155, 176, 156, -1, 213, -1,
+ 212, 8, 213, -1, 346, -1, 218, -1, 220, -1,
+ -1, 32, -1, -1, 151, -1, -1, 309, 216, 72,
+ 219, 152, 248, 153, 155, 176, 156, -1, -1, 223,
+ 72, 224, 221, 227, 155, 257, 156, -1, -1, 225,
+ 72, 222, 226, 155, 257, 156, -1, 120, -1, 113,
+ 120, -1, 121, -1, 112, 120, -1, -1, 123, 322,
+ -1, 122, -1, -1, 123, 228, -1, -1, 124, 228,
+ -1, 322, -1, 228, 8, 322, -1, -1, 126, 230,
+ -1, 346, -1, 32, 346, -1, -1, 127, 152, 231,
+ 371, 153, -1, 179, -1, 27, 176, 86, 154, -1,
+ 179, -1, 27, 176, 88, 154, -1, 179, -1, 27,
+ 176, 90, 154, -1, 72, 14, 334, -1, 235, 8,
+ 72, 14, 334, -1, 155, 237, 156, -1, 155, 154,
+ 237, 156, -1, 27, 237, 93, 154, -1, 27, 154,
+ 237, 93, 154, -1, -1, -1, 237, 94, 341, 240,
+ 238, 176, -1, -1, 237, 95, 240, 239, 176, -1,
+ 27, -1, 154, -1, 179, -1, 27, 176, 84, 154,
+ -1, -1, -1, 242, 67, 342, 243, 179, -1, -1,
+ -1, 244, 67, 342, 27, 245, 176, -1, -1, 68,
+ 179, -1, -1, 68, 27, 176, -1, 249, -1, -1,
+ 250, -1, 249, 8, 250, -1, 251, 216, 217, 74,
+ -1, 251, 216, 217, 74, 14, 334, -1, -1, 128,
+ -1, 129, -1, 322, -1, 152, 153, -1, 152, 253,
+ 153, -1, 152, 306, 153, -1, 292, -1, 346, -1,
+ 32, 344, -1, 151, 341, -1, 253, 8, 292, -1,
+ 253, 8, 346, -1, 253, 8, 32, 344, -1, 253,
+ 8, 151, 341, -1, 254, 8, 255, -1, 255, -1,
+ 74, -1, 157, 343, -1, 157, 155, 341, 156, -1,
+ 256, 8, 74, -1, 256, 8, 74, 14, 334, -1,
+ 74, -1, 74, 14, 334, -1, 257, 258, -1, -1,
+ -1, 274, 259, 278, 154, -1, 279, 154, -1, 261,
+ -1, -1, 275, 309, 216, 72, 260, 152, 248, 153,
+ 273, -1, 106, 262, 263, -1, 322, -1, 262, 8,
+ 322, -1, 154, -1, 155, 264, 156, -1, -1, 265,
+ -1, 266, -1, 265, 266, -1, 267, 154, -1, 271,
+ 154, -1, 270, 107, 268, -1, 322, -1, 268, 8,
+ 322, -1, 72, -1, 270, -1, 322, 146, 72, -1,
+ 269, 91, 272, 72, -1, 269, 91, 277, -1, -1,
+ 277, -1, 154, -1, 155, 176, 156, -1, 276, -1,
+ 115, -1, -1, 276, -1, 277, -1, 276, 277, -1,
+ 109, -1, 110, -1, 111, -1, 114, -1, 113, -1,
+ 112, -1, 278, 8, 74, -1, 278, 8, 74, 14,
+ 334, -1, 74, -1, 74, 14, 334, -1, 279, 8,
+ 72, 14, 334, -1, 100, 72, 14, 334, -1, 280,
+ 8, 341, -1, 341, -1, -1, 282, -1, -1, 282,
+ 8, 283, 341, -1, 341, -1, 284, 350, -1, 350,
+ -1, 285, 62, 365, 158, -1, 62, 365, 158, -1,
+ -1, 285, 287, 284, -1, 285, -1, 284, -1, -1,
+ -1, 289, 286, -1, -1, 64, 323, 291, 331, -1,
+ -1, 127, 152, 293, 371, 153, 14, 341, -1, 346,
+ 14, 341, -1, 346, 14, 32, 346, -1, -1, 346,
+ 14, 32, 64, 323, 294, 331, -1, 63, 341, -1,
+ 346, 25, 341, -1, 346, 24, 341, -1, 346, 23,
+ 341, -1, 346, 22, 341, -1, 346, 21, 341, -1,
+ 346, 20, 341, -1, 346, 19, 341, -1, 346, 18,
+ 341, -1, 346, 17, 341, -1, 346, 16, 341, -1,
+ 346, 15, 341, -1, 345, 61, -1, 61, 345, -1,
+ 345, 60, -1, 60, 345, -1, -1, 341, 28, 295,
+ 341, -1, -1, 341, 29, 296, 341, -1, -1, 341,
+ 9, 297, 341, -1, -1, 341, 11, 298, 341, -1,
+ 341, 10, 341, -1, 341, 30, 341, -1, 341, 32,
+ 341, -1, 341, 31, 341, -1, 341, 45, 341, -1,
+ 341, 43, 341, -1, 341, 44, 341, -1, 341, 46,
+ 341, -1, 341, 47, 341, -1, 341, 48, 341, -1,
+ 341, 42, 341, -1, 341, 41, 341, -1, 43, 341,
+ -1, 44, 341, -1, 49, 341, -1, 51, 341, -1,
+ 341, 34, 341, -1, 341, 33, 341, -1, 341, 36,
+ 341, -1, 341, 35, 341, -1, 341, 37, 341, -1,
+ 341, 40, 341, -1, 341, 38, 341, -1, 341, 39,
+ 341, -1, 341, 50, 323, -1, 342, -1, 290, -1,
+ -1, 152, 290, 153, 299, 288, -1, -1, -1, 341,
+ 26, 300, 341, 27, 301, 341, -1, -1, 341, 26,
+ 27, 302, 341, -1, 380, -1, 59, 341, -1, 58,
+ 341, -1, 57, 341, -1, 56, 341, -1, 55, 341,
+ -1, 54, 341, -1, 53, 341, -1, 65, 329, -1,
+ -1, 52, 303, 341, -1, 337, -1, 307, -1, 308,
+ -1, 159, 330, 159, -1, 12, 341, -1, 13, -1,
+ -1, 309, 216, 304, 152, 248, 153, 310, 155, 176,
+ 156, -1, -1, 114, 309, 216, 305, 152, 248, 153,
+ 310, 155, 176, 156, -1, 13, 292, -1, 13, 346,
+ -1, 13, 341, 126, 292, -1, 13, 341, 126, 346,
+ -1, 308, 62, 365, 158, -1, 307, 62, 365, 158,
+ -1, 80, 62, 365, 158, -1, 128, 152, 374, 153,
+ -1, 62, 374, 158, -1, 99, -1, -1, 106, 152,
+ 311, 153, -1, 311, 8, 74, -1, 311, 8, 32,
+ 74, -1, 74, -1, 32, 74, -1, -1, 165, 313,
+ 252, -1, -1, 147, 150, 165, 314, 252, -1, -1,
+ 150, 165, 315, 252, -1, -1, 321, 146, 369, 316,
+ 252, -1, -1, 321, 146, 356, 317, 252, -1, -1,
+ 358, 146, 369, 318, 252, -1, -1, 358, 146, 356,
+ 319, 252, -1, -1, 356, 320, 252, -1, 114, -1,
+ 165, -1, 147, 150, 165, -1, 150, 165, -1, 165,
+ -1, 147, 150, 165, -1, 150, 165, -1, 321, -1,
+ 324, -1, -1, -1, 362, 125, 325, 366, 326, 327,
+ -1, 362, -1, 327, 328, -1, -1, 125, 366, -1,
+ -1, 152, 153, -1, 342, -1, -1, 79, -1, 376,
+ -1, -1, 252, -1, 70, -1, 71, -1, 80, -1,
+ 134, -1, 135, -1, 149, -1, 131, -1, 132, -1,
+ 133, -1, 148, -1, 142, 79, 143, -1, 142, 143,
+ -1, 321, 146, 72, -1, 335, -1, 128, 152, 338,
+ 153, -1, 62, 338, 158, -1, 332, -1, 385, -1,
+ 165, -1, 147, 150, 165, -1, 150, 165, -1, 333,
+ -1, 130, -1, 336, -1, 335, 43, 335, -1, 335,
+ 44, 335, -1, 335, 46, 335, -1, 335, 47, 335,
+ -1, 335, 48, 335, -1, 49, 335, -1, 51, 335,
+ -1, 335, 30, 335, -1, 335, 32, 335, -1, 335,
+ 31, 335, -1, 335, 42, 335, -1, 335, 41, 335,
+ -1, 335, 45, 335, -1, 335, 10, 335, -1, 335,
+ 11, 335, -1, 335, 9, 335, -1, 335, 29, 335,
+ -1, 335, 28, 335, -1, 335, 34, 335, -1, 335,
+ 33, 335, -1, 335, 36, 335, -1, 335, 35, 335,
+ -1, 335, 37, 335, -1, 335, 38, 335, -1, 335,
+ 40, 335, -1, 335, 39, 335, -1, 335, 26, 27,
+ 335, -1, 335, 26, 335, 27, 335, -1, 43, 335,
+ -1, 44, 335, -1, 152, 335, 153, -1, 73, -1,
+ 386, -1, 384, -1, 165, -1, 147, 150, 165, -1,
+ 150, 165, -1, 332, -1, 160, 376, 160, -1, 142,
+ 376, 143, -1, 130, -1, -1, 340, 339, -1, -1,
+ 8, -1, 340, 8, 334, 126, 334, -1, 340, 8,
+ 334, -1, 334, 126, 334, -1, 334, -1, 343, -1,
+ 292, -1, 152, 341, 153, -1, 152, 306, 153, -1,
+ 346, -1, 346, -1, 346, -1, -1, -1, 361, 125,
+ 347, 366, 348, 355, 349, -1, 361, -1, 349, 350,
+ -1, -1, -1, 125, 366, 351, 355, -1, 352, 62,
+ 365, 158, -1, 353, 62, 365, 158, -1, -1, 354,
+ 252, -1, 353, -1, 352, -1, -1, 363, -1, 370,
+ 363, -1, 321, 146, 356, -1, 358, 146, 356, -1,
+ 363, -1, 359, 62, 365, 158, -1, -1, 312, 360,
+ 62, 365, 158, -1, 362, -1, 359, -1, 312, -1,
+ 363, -1, 370, 363, -1, 357, -1, 363, 62, 365,
+ 158, -1, 363, 155, 341, 156, -1, 364, -1, 74,
+ -1, 157, 155, 341, 156, -1, -1, 341, -1, 368,
+ -1, -1, 356, 367, -1, 368, 62, 365, 158, -1,
+ 368, 155, 341, 156, -1, 369, -1, 72, -1, 155,
+ 341, 156, -1, 157, -1, 370, 157, -1, 371, 8,
+ 372, -1, 372, -1, 346, -1, -1, 127, 152, 373,
+ 371, 153, -1, -1, -1, 375, 339, -1, 375, 8,
+ 341, 126, 341, -1, 375, 8, 341, -1, 341, 126,
+ 341, -1, 341, -1, 375, 8, 341, 126, 32, 344,
+ -1, 375, 8, 32, 344, -1, 341, 126, 32, 344,
+ -1, 32, 344, -1, 376, 377, -1, 376, 79, -1,
+ 377, -1, 79, 377, -1, 74, -1, -1, 74, 62,
+ 378, 379, 158, -1, 74, 125, 72, -1, 144, 341,
+ 156, -1, 144, 73, 62, 341, 158, 156, -1, 145,
+ 346, 156, -1, 72, -1, 75, -1, 74, -1, 117,
+ 152, 381, 153, -1, 118, 152, 346, 153, -1, 118,
+ 152, 292, 153, -1, 7, 341, -1, 6, 341, -1,
+ 5, 152, 341, 153, -1, 4, 341, -1, 3, 341,
+ -1, 383, -1, -1, 381, 8, 382, 383, -1, 346,
+ -1, 292, -1, 321, 146, 72, -1, 358, 146, 72,
+ -1, 321, 146, 120, -1, 321, 146, 120, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 219, 219, 223, 223, 224, 228, 229, 233, 234,
- 235, 236, 237, 238, 238, 240, 240, 242, 243, 247,
- 248, 252, 253, 254, 255, 259, 260, 264, 264, 265,
- 270, 271, 272, 273, 278, 279, 283, 284, 284, 284,
- 285, 285, 285, 286, 286, 286, 287, 287, 287, 291,
- 293, 295, 288, 297, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 313,
- 314, 312, 317, 318, 316, 320, 320, 321, 322, 323,
- 322, 325, 326, 330, 331, 332, 333, 334, 331, 338,
- 339, 339, 343, 344, 348, 349, 353, 353, 353, 357,
- 358, 362, 366, 370, 374, 375, 380, 380, 387, 386,
- 393, 392, 402, 403, 404, 405, 409, 410, 414, 417,
- 419, 422, 424, 428, 429, 433, 434, 438, 439, 440,
- 440, 444, 445, 450, 451, 456, 457, 462, 463, 468,
- 469, 470, 471, 476, 477, 477, 478, 478, 483, 484,
- 489, 490, 495, 497, 497, 501, 503, 503, 507, 509,
- 513, 515, 520, 521, 526, 527, 528, 529, 530, 531,
- 532, 533, 538, 539, 540, 541, 546, 547, 548, 553,
- 554, 555, 556, 557, 558, 562, 563, 568, 569, 570,
- 575, 576, 577, 578, 584, 585, 590, 590, 591, 592,
- 593, 593, 599, 603, 604, 608, 609, 612, 614, 618,
- 619, 623, 624, 628, 632, 633, 637, 638, 642, 646,
- 647, 651, 652, 656, 657, 661, 662, 666, 667, 671,
- 672, 676, 677, 678, 679, 680, 681, 685, 686, 687,
- 688, 692, 693, 697, 698, 703, 704, 708, 708, 709,
- 713, 714, 718, 719, 723, 723, 724, 725, 729, 730,
- 730, 735, 735, 739, 739, 740, 741, 742, 742, 743,
- 744, 745, 746, 747, 748, 749, 750, 751, 752, 753,
- 754, 755, 756, 757, 758, 759, 759, 760, 760, 761,
- 761, 762, 762, 763, 764, 765, 766, 767, 768, 769,
- 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
- 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
- 790, 790, 791, 792, 791, 794, 794, 796, 797, 798,
- 799, 800, 801, 802, 803, 804, 805, 805, 806, 807,
- 808, 809, 810, 811, 812, 812, 815, 815, 821, 822,
- 823, 824, 828, 829, 830, 833, 834, 837, 840, 842,
- 846, 847, 848, 849, 853, 853, 855, 855, 857, 857,
- 859, 859, 861, 861, 863, 863, 865, 865, 867, 867,
- 872, 873, 874, 875, 879, 880, 881, 887, 888, 893,
- 894, 893, 896, 901, 902, 907, 911, 912, 913, 917,
- 918, 919, 924, 925, 930, 931, 932, 933, 934, 935,
- 936, 937, 938, 939, 940, 941, 946, 947, 948, 949,
- 950, 951, 952, 953, 954, 955, 956, 960, 964, 965,
- 966, 967, 968, 969, 970, 971, 972, 973, 978, 979,
- 982, 984, 988, 989, 990, 991, 995, 996, 1000, 1001,
- 1006, 1011, 1016, 1021, 1022, 1021, 1024, 1028, 1029, 1034,
- 1034, 1038, 1039, 1043, 1043, 1048, 1049, 1050, 1054, 1055,
- 1059, 1060, 1065, 1069, 1070, 1070, 1075, 1076, 1077, 1082,
- 1083, 1084, 1088, 1089, 1090, 1095, 1096, 1100, 1101, 1106,
- 1107, 1107, 1111, 1112, 1113, 1117, 1118, 1122, 1123, 1127,
- 1128, 1133, 1134, 1134, 1135, 1140, 1141, 1145, 1146, 1147,
- 1148, 1149, 1150, 1151, 1152, 1156, 1157, 1158, 1159, 1165,
- 1166, 1166, 1167, 1168, 1169, 1170, 1175, 1176, 1177, 1182,
- 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1193, 1194, 1194,
- 1198, 1199, 1203, 1204, 1208, 1212
+ 0, 220, 220, 224, 224, 225, 229, 230, 234, 235,
+ 236, 237, 238, 239, 239, 241, 241, 243, 244, 245,
+ 246, 250, 251, 255, 256, 257, 258, 262, 263, 267,
+ 268, 269, 270, 274, 275, 279, 280, 281, 282, 286,
+ 287, 291, 291, 292, 297, 298, 299, 300, 305, 306,
+ 310, 311, 311, 311, 312, 312, 312, 313, 313, 313,
+ 314, 314, 314, 318, 320, 322, 315, 324, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
+ 336, 337, 338, 340, 341, 339, 344, 345, 343, 347,
+ 347, 348, 349, 350, 349, 352, 353, 357, 358, 359,
+ 360, 361, 358, 365, 366, 366, 370, 371, 375, 376,
+ 380, 380, 380, 384, 385, 389, 393, 397, 401, 402,
+ 406, 407, 411, 411, 418, 417, 424, 423, 433, 434,
+ 435, 436, 440, 441, 445, 448, 450, 453, 455, 459,
+ 460, 464, 465, 469, 470, 471, 471, 475, 476, 481,
+ 482, 487, 488, 493, 494, 499, 500, 501, 502, 507,
+ 508, 508, 509, 509, 514, 515, 520, 521, 526, 528,
+ 528, 532, 534, 534, 538, 540, 544, 546, 551, 552,
+ 557, 558, 562, 564, 570, 571, 572, 573, 578, 579,
+ 580, 585, 586, 587, 588, 589, 590, 591, 592, 596,
+ 597, 602, 603, 604, 609, 610, 611, 612, 618, 619,
+ 624, 624, 625, 626, 627, 627, 633, 637, 638, 642,
+ 643, 646, 648, 652, 653, 657, 658, 662, 666, 667,
+ 671, 672, 676, 680, 681, 685, 686, 690, 691, 695,
+ 696, 700, 701, 705, 706, 710, 711, 712, 713, 714,
+ 715, 719, 720, 721, 722, 726, 727, 731, 732, 737,
+ 738, 742, 742, 743, 747, 748, 752, 753, 757, 757,
+ 758, 759, 763, 764, 764, 769, 769, 773, 773, 774,
+ 775, 776, 776, 777, 778, 779, 780, 781, 782, 783,
+ 784, 785, 786, 787, 788, 789, 790, 791, 792, 793,
+ 793, 794, 794, 795, 795, 796, 796, 797, 798, 799,
+ 800, 801, 802, 803, 804, 805, 806, 807, 808, 809,
+ 810, 811, 812, 813, 814, 815, 816, 817, 818, 819,
+ 820, 821, 822, 823, 824, 824, 825, 826, 825, 828,
+ 828, 830, 831, 832, 833, 834, 835, 836, 837, 838,
+ 839, 839, 840, 841, 842, 843, 844, 845, 846, 846,
+ 849, 849, 855, 856, 857, 858, 862, 863, 864, 867,
+ 868, 871, 874, 876, 880, 881, 882, 883, 887, 887,
+ 889, 889, 891, 891, 893, 893, 895, 895, 897, 897,
+ 899, 899, 901, 901, 906, 907, 908, 909, 913, 914,
+ 915, 921, 922, 927, 928, 927, 930, 935, 936, 941,
+ 945, 946, 947, 951, 952, 953, 958, 959, 964, 965,
+ 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
+ 979, 983, 984, 985, 989, 990, 991, 992, 993, 994,
+ 995, 996, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
+ 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
+ 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
+ 1028, 1029, 1030, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 1049, 1050, 1053, 1055, 1059, 1060, 1061,
+ 1062, 1066, 1067, 1071, 1072, 1077, 1082, 1087, 1092, 1093,
+ 1092, 1095, 1099, 1100, 1105, 1105, 1109, 1110, 1114, 1114,
+ 1119, 1120, 1121, 1125, 1126, 1130, 1131, 1136, 1140, 1141,
+ 1141, 1146, 1147, 1148, 1153, 1154, 1155, 1159, 1160, 1161,
+ 1166, 1167, 1171, 1172, 1177, 1178, 1178, 1182, 1183, 1184,
+ 1188, 1189, 1193, 1194, 1198, 1199, 1204, 1205, 1205, 1206,
+ 1211, 1212, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
+ 1227, 1228, 1229, 1230, 1236, 1237, 1237, 1238, 1239, 1240,
+ 1241, 1246, 1247, 1248, 1253, 1254, 1255, 1256, 1257, 1258,
+ 1259, 1260, 1264, 1265, 1265, 1269, 1270, 1274, 1275, 1279,
+ 1283
};
#endif
@@ -1079,19 +1106,22 @@ static const char *const yytname[] =
"\"${ (T_DOLLAR_OPEN_CURLY_BRACES)\"", "\"{$ (T_CURLY_OPEN)\"",
"\":: (T_PAAMAYIM_NEKUDOTAYIM)\"", "\"namespace (T_NAMESPACE)\"",
"\"__NAMESPACE__ (T_NS_C)\"", "\"__DIR__ (T_DIR)\"",
- "\"\\\\ (T_NS_SEPARATOR)\"", "'('", "')'", "';'", "'{'", "'}'", "'$'",
- "']'", "'`'", "'\"'", "$accept", "start", "top_statement_list", "$@1",
- "namespace_name", "top_statement", "$@2", "$@3", "use_declarations",
- "use_declaration", "constant_declaration", "inner_statement_list", "$@4",
- "inner_statement", "statement", "unticked_statement", "$@5", "$@6",
- "$@7", "$@8", "$@9", "@10", "$@11", "$@12", "$@13", "$@14", "$@15",
- "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23",
- "catch_statement", "$@24", "$@25", "$@26", "$@27", "finally_statement",
- "$@28", "additional_catches", "non_empty_additional_catches",
- "additional_catch", "@29", "$@30", "unset_variables", "unset_variable",
+ "\"\\\\ (T_NS_SEPARATOR)\"", "\"... (T_ELLIPSIS)\"", "'('", "')'", "';'",
+ "'{'", "'}'", "'$'", "']'", "'`'", "'\"'", "$accept", "start",
+ "top_statement_list", "$@1", "namespace_name", "top_statement", "$@2",
+ "$@3", "use_declarations", "use_declaration",
+ "use_function_declarations", "use_function_declaration",
+ "use_const_declarations", "use_const_declaration",
+ "constant_declaration", "inner_statement_list", "$@4", "inner_statement",
+ "statement", "unticked_statement", "$@5", "$@6", "$@7", "$@8", "$@9",
+ "@10", "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "$@17", "$@18",
+ "$@19", "$@20", "$@21", "$@22", "$@23", "catch_statement", "$@24",
+ "$@25", "$@26", "$@27", "finally_statement", "$@28",
+ "additional_catches", "non_empty_additional_catches", "additional_catch",
+ "@29", "$@30", "unset_variables", "unset_variable",
"function_declaration_statement", "class_declaration_statement",
- "is_reference", "unticked_function_declaration_statement", "$@31",
- "unticked_class_declaration_statement", "$@32", "$@33",
+ "is_reference", "is_variadic", "unticked_function_declaration_statement",
+ "$@31", "unticked_class_declaration_statement", "$@32", "$@33",
"class_entry_type", "extends_from", "interface_entry",
"interface_extends_list", "implements_list", "interface_list",
"foreach_optional_arg", "foreach_variable", "$@34", "for_statement",
@@ -1099,7 +1129,7 @@ static const char *const yytname[] =
"switch_case_list", "case_list", "$@35", "$@36", "case_separator",
"while_statement", "elseif_list", "$@37", "new_elseif_list", "$@38",
"else_single", "new_else_single", "parameter_list",
- "non_empty_parameter_list", "optional_class_type",
+ "non_empty_parameter_list", "parameter", "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", "$@39", "$@40",
@@ -1122,12 +1152,13 @@ static const char *const yytname[] =
"dynamic_class_name_reference", "$@66", "$@67",
"dynamic_class_name_variable_properties",
"dynamic_class_name_variable_property", "exit_expr", "backticks_expr",
- "ctor_arguments", "common_scalar", "static_scalar",
- "static_class_constant", "scalar", "static_array_pair_list",
- "possible_comma", "non_empty_static_array_pair_list", "expr",
- "parenthesis_expr", "r_variable", "w_variable", "rw_variable",
- "variable", "$@68", "$@69", "variable_properties", "variable_property",
- "$@70", "array_method_dereference", "method", "@71", "method_or_not",
+ "ctor_arguments", "common_scalar", "static_class_constant",
+ "static_scalar", "static_scalar_value", "static_operation", "scalar",
+ "static_array_pair_list", "possible_comma",
+ "non_empty_static_array_pair_list", "expr", "parenthesis_expr",
+ "r_variable", "w_variable", "rw_variable", "variable", "$@68", "$@69",
+ "variable_properties", "variable_property", "$@70",
+ "array_method_dereference", "method", "@71", "method_or_not",
"variable_without_objects", "static_member", "variable_class_name",
"array_function_dereference", "$@72",
"base_variable_with_function_calls", "base_variable",
@@ -1162,128 +1193,139 @@ static const yytype_uint16 yytoknum[] =
356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
- 386, 40, 41, 59, 123, 125, 36, 93, 96, 34
+ 386, 387, 40, 41, 59, 123, 125, 36, 93, 96,
+ 34
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 160, 161, 163, 162, 162, 164, 164, 165, 165,
- 165, 165, 165, 166, 165, 167, 165, 165, 165, 168,
- 168, 169, 169, 169, 169, 170, 170, 172, 171, 171,
- 173, 173, 173, 173, 174, 174, 175, 176, 177, 175,
- 178, 179, 175, 180, 181, 175, 182, 183, 175, 184,
- 185, 186, 175, 187, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 188,
- 189, 175, 190, 191, 175, 192, 175, 175, 193, 194,
- 175, 175, 175, 195, 196, 197, 198, 199, 195, 200,
- 201, 200, 202, 202, 203, 203, 205, 206, 204, 207,
- 207, 208, 209, 210, 211, 211, 213, 212, 215, 214,
- 216, 214, 217, 217, 217, 217, 218, 218, 219, 220,
- 220, 221, 221, 222, 222, 223, 223, 224, 224, 225,
- 224, 226, 226, 227, 227, 228, 228, 229, 229, 230,
- 230, 230, 230, 231, 232, 231, 233, 231, 234, 234,
- 235, 235, 236, 237, 236, 238, 239, 238, 240, 240,
- 241, 241, 242, 242, 243, 243, 243, 243, 243, 243,
- 243, 243, 244, 244, 244, 244, 245, 245, 245, 246,
- 246, 246, 246, 246, 246, 247, 247, 248, 248, 248,
- 249, 249, 249, 249, 250, 250, 252, 251, 251, 251,
- 253, 251, 254, 255, 255, 256, 256, 257, 257, 258,
- 258, 259, 259, 260, 261, 261, 262, 262, 263, 264,
- 264, 265, 265, 266, 266, 267, 267, 268, 268, 269,
- 269, 270, 270, 270, 270, 270, 270, 271, 271, 271,
- 271, 272, 272, 273, 273, 274, 274, 276, 275, 275,
- 277, 277, 278, 278, 280, 279, 279, 279, 281, 282,
- 281, 284, 283, 286, 285, 285, 285, 287, 285, 285,
- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 288, 285, 289, 285, 290,
- 285, 291, 285, 285, 285, 285, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
- 292, 285, 293, 294, 285, 295, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 285, 296, 285, 285, 285,
- 285, 285, 285, 285, 297, 285, 298, 285, 299, 299,
- 299, 299, 300, 300, 300, 301, 301, 302, 303, 303,
- 304, 304, 304, 304, 306, 305, 307, 305, 308, 305,
- 309, 305, 310, 305, 311, 305, 312, 305, 313, 305,
- 314, 314, 314, 314, 315, 315, 315, 316, 316, 318,
- 319, 317, 317, 320, 320, 321, 322, 322, 322, 323,
- 323, 323, 324, 324, 325, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 325, 325, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 327, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 329, 329,
- 330, 330, 331, 331, 331, 331, 332, 332, 333, 333,
- 334, 335, 336, 338, 339, 337, 337, 340, 340, 342,
- 341, 343, 343, 345, 344, 346, 346, 346, 347, 347,
- 348, 348, 349, 350, 351, 350, 352, 352, 352, 353,
- 353, 353, 354, 354, 354, 355, 355, 356, 356, 357,
- 358, 357, 359, 359, 359, 360, 360, 361, 361, 362,
- 362, 363, 364, 363, 363, 365, 365, 366, 366, 366,
- 366, 366, 366, 366, 366, 367, 367, 367, 367, 368,
- 369, 368, 368, 368, 368, 368, 370, 370, 370, 371,
- 371, 371, 371, 371, 371, 371, 371, 372, 373, 372,
- 374, 374, 375, 375, 376, 377
+ 0, 161, 162, 164, 163, 163, 165, 165, 166, 166,
+ 166, 166, 166, 167, 166, 168, 166, 166, 166, 166,
+ 166, 169, 169, 170, 170, 170, 170, 171, 171, 172,
+ 172, 172, 172, 173, 173, 174, 174, 174, 174, 175,
+ 175, 177, 176, 176, 178, 178, 178, 178, 179, 179,
+ 180, 181, 182, 180, 183, 184, 180, 185, 186, 180,
+ 187, 188, 180, 189, 190, 191, 180, 192, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 193, 194, 180, 195, 196, 180, 197,
+ 180, 180, 198, 199, 180, 180, 180, 200, 201, 202,
+ 203, 204, 200, 205, 206, 205, 207, 207, 208, 208,
+ 210, 211, 209, 212, 212, 213, 214, 215, 216, 216,
+ 217, 217, 219, 218, 221, 220, 222, 220, 223, 223,
+ 223, 223, 224, 224, 225, 226, 226, 227, 227, 228,
+ 228, 229, 229, 230, 230, 231, 230, 232, 232, 233,
+ 233, 234, 234, 235, 235, 236, 236, 236, 236, 237,
+ 238, 237, 239, 237, 240, 240, 241, 241, 242, 243,
+ 242, 244, 245, 244, 246, 246, 247, 247, 248, 248,
+ 249, 249, 250, 250, 251, 251, 251, 251, 252, 252,
+ 252, 253, 253, 253, 253, 253, 253, 253, 253, 254,
+ 254, 255, 255, 255, 256, 256, 256, 256, 257, 257,
+ 259, 258, 258, 258, 260, 258, 261, 262, 262, 263,
+ 263, 264, 264, 265, 265, 266, 266, 267, 268, 268,
+ 269, 269, 270, 271, 271, 272, 272, 273, 273, 274,
+ 274, 275, 275, 276, 276, 277, 277, 277, 277, 277,
+ 277, 278, 278, 278, 278, 279, 279, 280, 280, 281,
+ 281, 283, 282, 282, 284, 284, 285, 285, 287, 286,
+ 286, 286, 288, 289, 288, 291, 290, 293, 292, 292,
+ 292, 294, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 295,
+ 292, 296, 292, 297, 292, 298, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 292, 299, 292, 300, 301, 292, 302,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 303, 292, 292, 292, 292, 292, 292, 292, 304, 292,
+ 305, 292, 306, 306, 306, 306, 307, 307, 307, 308,
+ 308, 309, 310, 310, 311, 311, 311, 311, 313, 312,
+ 314, 312, 315, 312, 316, 312, 317, 312, 318, 312,
+ 319, 312, 320, 312, 321, 321, 321, 321, 322, 322,
+ 322, 323, 323, 325, 326, 324, 324, 327, 327, 328,
+ 329, 329, 329, 330, 330, 330, 331, 331, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 333, 334, 334, 334, 335, 335, 335, 335, 335, 335,
+ 335, 335, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 338, 338, 339, 339, 340, 340, 340,
+ 340, 341, 341, 342, 342, 343, 344, 345, 347, 348,
+ 346, 346, 349, 349, 351, 350, 352, 352, 354, 353,
+ 355, 355, 355, 356, 356, 357, 357, 358, 359, 360,
+ 359, 361, 361, 361, 362, 362, 362, 363, 363, 363,
+ 364, 364, 365, 365, 366, 367, 366, 368, 368, 368,
+ 369, 369, 370, 370, 371, 371, 372, 373, 372, 372,
+ 374, 374, 375, 375, 375, 375, 375, 375, 375, 375,
+ 376, 376, 376, 376, 377, 378, 377, 377, 377, 377,
+ 377, 379, 379, 379, 380, 380, 380, 380, 380, 380,
+ 380, 380, 381, 382, 381, 383, 383, 384, 384, 385,
+ 386
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 0, 3, 0, 1, 3, 1, 1,
- 1, 4, 3, 0, 6, 0, 5, 3, 2, 3,
- 1, 1, 3, 2, 4, 5, 4, 0, 3, 0,
- 1, 1, 1, 4, 1, 2, 3, 0, 0, 7,
- 0, 0, 10, 0, 0, 5, 0, 0, 7, 0,
- 0, 0, 12, 0, 4, 2, 3, 2, 3, 2,
- 3, 3, 2, 3, 3, 3, 1, 2, 5, 0,
- 0, 10, 0, 0, 10, 0, 6, 1, 0, 0,
- 8, 3, 3, 0, 0, 0, 0, 0, 13, 0,
- 0, 5, 1, 0, 1, 2, 0, 0, 10, 1,
- 3, 1, 1, 1, 0, 1, 0, 10, 0, 8,
- 0, 7, 1, 2, 1, 2, 0, 2, 1, 0,
- 2, 0, 2, 1, 3, 0, 2, 1, 2, 0,
- 5, 1, 4, 1, 4, 1, 4, 3, 5, 3,
- 4, 4, 5, 0, 0, 6, 0, 5, 1, 1,
- 1, 4, 0, 0, 5, 0, 0, 6, 0, 2,
- 0, 3, 1, 0, 2, 3, 5, 4, 4, 5,
- 7, 6, 0, 1, 1, 1, 2, 3, 3, 1,
- 1, 2, 3, 3, 4, 3, 1, 1, 2, 4,
- 3, 5, 1, 3, 2, 0, 0, 4, 2, 1,
- 0, 9, 3, 1, 3, 1, 3, 0, 1, 1,
- 2, 2, 2, 3, 1, 3, 1, 1, 3, 4,
- 3, 0, 1, 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,
- 2, 1, 4, 3, 0, 3, 1, 1, 0, 0,
- 2, 0, 4, 0, 7, 3, 4, 0, 7, 2,
+ 1, 4, 3, 0, 6, 0, 5, 3, 4, 4,
+ 2, 3, 1, 1, 3, 2, 4, 3, 1, 1,
+ 3, 2, 4, 3, 1, 1, 3, 2, 4, 5,
+ 4, 0, 3, 0, 1, 1, 1, 4, 1, 2,
+ 3, 0, 0, 7, 0, 0, 10, 0, 0, 5,
+ 0, 0, 7, 0, 0, 0, 12, 0, 4, 2,
+ 3, 2, 3, 2, 3, 3, 2, 3, 3, 3,
+ 1, 2, 5, 0, 0, 10, 0, 0, 10, 0,
+ 6, 1, 0, 0, 8, 3, 3, 0, 0, 0,
+ 0, 0, 13, 0, 0, 5, 1, 0, 1, 2,
+ 0, 0, 10, 1, 3, 1, 1, 1, 0, 1,
+ 0, 1, 0, 10, 0, 8, 0, 7, 1, 2,
+ 1, 2, 0, 2, 1, 0, 2, 0, 2, 1,
+ 3, 0, 2, 1, 2, 0, 5, 1, 4, 1,
+ 4, 1, 4, 3, 5, 3, 4, 4, 5, 0,
+ 0, 6, 0, 5, 1, 1, 1, 4, 0, 0,
+ 5, 0, 0, 6, 0, 2, 0, 3, 1, 0,
+ 1, 3, 4, 6, 0, 1, 1, 1, 2, 3,
+ 3, 1, 1, 2, 2, 3, 3, 4, 4, 3,
+ 1, 1, 2, 4, 3, 5, 1, 3, 2, 0,
+ 0, 4, 2, 1, 0, 9, 3, 1, 3, 1,
+ 3, 0, 1, 1, 2, 2, 2, 3, 1, 3,
+ 1, 1, 3, 4, 3, 0, 1, 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, 2, 1, 4, 3, 0, 3,
+ 1, 1, 0, 0, 2, 0, 4, 0, 7, 3,
+ 4, 0, 7, 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, 1, 1, 0, 5, 0, 0, 7, 0,
+ 5, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 0, 3, 1, 1, 1, 3, 2, 1, 0, 10,
+ 0, 11, 2, 2, 4, 4, 4, 4, 4, 4,
+ 3, 1, 0, 4, 3, 4, 1, 2, 0, 3,
+ 0, 5, 0, 4, 0, 5, 0, 5, 0, 5,
+ 0, 5, 0, 3, 1, 1, 3, 2, 1, 3,
+ 2, 1, 1, 0, 0, 6, 1, 2, 0, 2,
+ 0, 2, 1, 0, 1, 1, 0, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
+ 3, 1, 4, 3, 1, 1, 1, 3, 2, 1,
+ 1, 1, 3, 3, 3, 3, 3, 2, 2, 3,
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, 1, 1,
- 0, 5, 0, 0, 7, 0, 5, 1, 2, 2,
- 2, 2, 2, 2, 2, 2, 0, 3, 1, 1,
- 1, 3, 2, 1, 0, 10, 0, 11, 2, 2,
- 4, 4, 4, 4, 4, 4, 3, 1, 0, 4,
- 3, 4, 1, 2, 0, 3, 0, 5, 0, 4,
- 0, 5, 0, 5, 0, 5, 0, 5, 0, 3,
- 1, 1, 3, 2, 1, 3, 2, 1, 1, 0,
- 0, 6, 1, 2, 0, 2, 0, 2, 1, 0,
- 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 2, 1, 1, 1, 3,
- 2, 2, 2, 4, 3, 1, 1, 3, 1, 1,
- 1, 1, 3, 2, 1, 3, 3, 1, 0, 2,
- 0, 1, 5, 3, 3, 1, 1, 1, 3, 3,
- 1, 1, 1, 0, 0, 7, 1, 2, 0, 0,
- 4, 4, 4, 0, 2, 1, 1, 0, 1, 2,
- 3, 3, 1, 4, 0, 5, 1, 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, 1, 2, 1,
- 0, 5, 3, 3, 6, 3, 1, 1, 1, 4,
- 4, 4, 2, 2, 4, 2, 2, 1, 0, 4,
- 1, 1, 3, 3, 3, 3
+ 3, 3, 3, 3, 3, 3, 3, 3, 4, 5,
+ 2, 2, 3, 1, 1, 1, 1, 3, 2, 1,
+ 3, 3, 1, 0, 2, 0, 1, 5, 3, 3,
+ 1, 1, 1, 3, 3, 1, 1, 1, 0, 0,
+ 7, 1, 2, 0, 0, 4, 4, 4, 0, 2,
+ 1, 1, 0, 1, 2, 3, 3, 1, 4, 0,
+ 5, 1, 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, 1, 2, 1, 0, 5, 3, 3, 6,
+ 3, 1, 1, 1, 4, 4, 4, 2, 2, 4,
+ 2, 2, 1, 0, 4, 1, 1, 3, 3, 3,
+ 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1292,468 +1334,475 @@ static const yytype_uint8 yyr2[] =
static const yytype_uint16 yydefact[] =
{
5, 0, 3, 1, 0, 0, 0, 0, 0, 0,
- 0, 343, 0, 0, 0, 0, 336, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 505, 0, 0, 396,
- 0, 404, 405, 6, 428, 485, 66, 406, 0, 46,
- 43, 0, 0, 75, 0, 0, 0, 0, 357, 0,
- 0, 78, 0, 0, 0, 0, 0, 380, 0, 0,
- 0, 0, 112, 114, 118, 0, 0, 437, 410, 411,
- 412, 407, 408, 0, 0, 413, 409, 0, 0, 77,
- 29, 497, 399, 0, 431, 4, 0, 8, 34, 9,
- 10, 102, 103, 0, 0, 319, 447, 0, 339, 340,
- 104, 478, 0, 434, 338, 0, 318, 446, 0, 450,
- 378, 481, 0, 477, 456, 476, 479, 484, 0, 327,
- 430, 429, 343, 6, 380, 0, 104, 536, 535, 0,
- 533, 532, 342, 447, 0, 450, 305, 306, 307, 308,
- 0, 334, 333, 332, 331, 330, 329, 328, 380, 0,
- 0, 364, 0, 284, 452, 0, 282, 0, 510, 0,
- 440, 269, 0, 0, 381, 387, 261, 388, 0, 392,
- 479, 0, 0, 335, 398, 0, 37, 35, 487, 0,
- 244, 0, 0, 245, 0, 0, 53, 55, 0, 57,
- 0, 0, 0, 59, 447, 0, 450, 0, 0, 0,
- 21, 0, 20, 187, 0, 0, 186, 115, 113, 192,
- 0, 104, 0, 0, 0, 0, 263, 505, 519, 0,
- 415, 0, 0, 0, 517, 0, 15, 0, 433, 319,
- 0, 0, 27, 0, 400, 0, 401, 0, 0, 0,
- 0, 0, 18, 116, 110, 62, 487, 487, 105, 344,
- 0, 0, 289, 0, 291, 322, 285, 287, 0, 0,
+ 0, 357, 0, 0, 0, 0, 350, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 550, 0, 0, 410,
+ 0, 418, 419, 6, 473, 530, 80, 420, 0, 60,
+ 57, 0, 0, 89, 0, 0, 0, 0, 371, 0,
+ 0, 92, 0, 0, 0, 0, 0, 394, 0, 0,
+ 0, 0, 128, 130, 134, 0, 0, 482, 424, 425,
+ 426, 421, 422, 0, 0, 427, 423, 0, 0, 91,
+ 43, 542, 413, 0, 476, 4, 0, 8, 48, 9,
+ 10, 116, 117, 0, 0, 333, 492, 0, 353, 354,
+ 118, 523, 0, 479, 352, 0, 332, 491, 0, 495,
+ 392, 526, 0, 522, 501, 521, 524, 529, 0, 341,
+ 475, 474, 357, 6, 394, 0, 118, 581, 580, 0,
+ 578, 577, 356, 492, 0, 495, 319, 320, 321, 322,
+ 0, 348, 347, 346, 345, 344, 343, 342, 394, 0,
+ 0, 378, 0, 298, 497, 0, 296, 0, 555, 0,
+ 485, 283, 0, 0, 395, 401, 275, 402, 0, 406,
+ 524, 0, 0, 349, 412, 0, 51, 49, 532, 0,
+ 258, 0, 0, 259, 0, 0, 67, 69, 0, 71,
+ 0, 0, 0, 73, 492, 0, 495, 0, 0, 0,
+ 0, 0, 23, 0, 22, 201, 0, 0, 200, 131,
+ 129, 206, 0, 118, 0, 0, 0, 0, 277, 550,
+ 564, 0, 429, 0, 0, 0, 562, 0, 15, 0,
+ 478, 333, 0, 0, 41, 0, 414, 0, 415, 0,
+ 0, 0, 0, 0, 20, 132, 126, 76, 532, 532,
+ 119, 358, 0, 0, 303, 0, 305, 336, 299, 301,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 81, 297, 295, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 532, 498, 532,
+ 0, 543, 525, 358, 0, 0, 351, 0, 382, 0,
+ 0, 559, 496, 0, 370, 486, 551, 0, 397, 0,
+ 416, 0, 403, 525, 411, 54, 0, 533, 0, 0,
+ 79, 0, 58, 0, 260, 263, 492, 495, 0, 0,
+ 70, 72, 96, 0, 74, 75, 43, 95, 0, 29,
+ 0, 28, 0, 35, 0, 34, 25, 0, 0, 17,
+ 0, 202, 495, 0, 77, 0, 0, 78, 360, 0,
+ 113, 115, 492, 495, 0, 582, 492, 495, 0, 549,
+ 0, 565, 0, 428, 563, 473, 0, 0, 561, 481,
+ 560, 477, 5, 12, 13, 0, 334, 494, 493, 50,
+ 0, 0, 355, 480, 7, 0, 379, 0, 0, 124,
+ 135, 0, 0, 122, 0, 532, 587, 590, 0, 515,
+ 513, 384, 0, 0, 307, 0, 339, 0, 0, 0,
+ 308, 310, 309, 324, 323, 326, 325, 327, 329, 330,
+ 328, 318, 317, 312, 313, 311, 314, 315, 316, 331,
+ 0, 279, 294, 293, 292, 291, 290, 289, 288, 287,
+ 286, 285, 284, 393, 588, 516, 388, 0, 0, 0,
+ 0, 579, 492, 495, 380, 540, 0, 554, 0, 553,
+ 396, 515, 417, 276, 516, 0, 43, 52, 368, 257,
+ 61, 0, 63, 261, 86, 83, 0, 0, 159, 159,
+ 68, 0, 0, 0, 0, 483, 420, 0, 440, 0,
+ 0, 0, 0, 436, 0, 434, 439, 40, 431, 441,
+ 435, 41, 31, 0, 0, 18, 37, 0, 0, 19,
+ 0, 24, 21, 0, 199, 207, 204, 0, 0, 0,
+ 583, 574, 576, 575, 11, 0, 546, 0, 545, 369,
+ 0, 567, 0, 568, 570, 0, 3, 5, 383, 272,
+ 0, 42, 44, 45, 46, 531, 0, 0, 188, 0,
+ 492, 0, 495, 0, 0, 0, 398, 133, 137, 0,
+ 0, 367, 366, 0, 184, 0, 0, 0, 0, 514,
+ 304, 306, 0, 0, 300, 302, 0, 280, 0, 0,
+ 518, 535, 499, 534, 539, 527, 528, 558, 557, 0,
+ 404, 41, 168, 0, 43, 166, 59, 259, 0, 0,
+ 0, 0, 0, 0, 159, 0, 159, 0, 470, 471,
+ 447, 448, 490, 0, 485, 483, 0, 0, 438, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 283,
- 281, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 487, 453, 487, 0, 498,
- 480, 344, 0, 0, 337, 0, 368, 0, 0, 514,
- 451, 0, 356, 441, 506, 0, 383, 0, 402, 0,
- 389, 480, 397, 40, 0, 488, 0, 0, 65, 0,
- 44, 0, 246, 249, 447, 450, 0, 0, 56, 58,
- 82, 0, 60, 61, 29, 81, 23, 0, 0, 17,
- 0, 188, 450, 0, 63, 0, 0, 64, 346, 0,
- 99, 101, 447, 450, 0, 537, 447, 450, 0, 504,
- 0, 520, 0, 414, 518, 428, 0, 0, 516, 436,
- 515, 432, 5, 12, 13, 0, 320, 449, 448, 36,
- 0, 0, 341, 435, 7, 0, 365, 0, 0, 108,
- 119, 0, 0, 106, 0, 487, 542, 545, 0, 470,
- 468, 370, 0, 0, 293, 0, 325, 0, 0, 0,
- 294, 296, 295, 310, 309, 312, 311, 313, 315, 316,
- 314, 304, 303, 298, 299, 297, 300, 301, 302, 317,
- 0, 265, 280, 279, 278, 277, 276, 275, 274, 273,
- 272, 271, 270, 379, 543, 471, 374, 0, 0, 0,
- 0, 534, 447, 450, 366, 495, 0, 509, 0, 508,
- 382, 470, 403, 262, 471, 0, 29, 38, 354, 243,
- 47, 0, 49, 247, 72, 69, 0, 0, 143, 143,
- 54, 0, 0, 438, 406, 0, 426, 0, 0, 0,
- 418, 0, 416, 26, 425, 417, 27, 0, 22, 19,
- 0, 185, 193, 190, 0, 0, 0, 538, 529, 531,
- 530, 11, 0, 501, 0, 500, 355, 0, 522, 0,
- 523, 525, 0, 3, 5, 369, 258, 0, 28, 30,
- 31, 32, 486, 0, 176, 0, 447, 0, 450, 0,
- 0, 0, 384, 117, 121, 0, 0, 353, 352, 0,
- 172, 0, 0, 0, 0, 469, 290, 292, 0, 0,
- 286, 288, 0, 266, 0, 0, 473, 490, 454, 489,
- 494, 482, 483, 513, 512, 0, 390, 27, 152, 0,
- 29, 150, 45, 245, 0, 0, 0, 0, 0, 0,
- 143, 0, 143, 0, 421, 422, 445, 0, 440, 438,
- 0, 0, 420, 0, 83, 24, 189, 0, 172, 100,
- 68, 0, 502, 504, 0, 526, 528, 527, 0, 0,
- 367, 16, 3, 321, 0, 0, 181, 0, 177, 178,
- 25, 0, 386, 0, 0, 120, 123, 195, 172, 173,
- 174, 0, 162, 0, 175, 475, 496, 373, 371, 326,
- 323, 267, 377, 375, 491, 467, 487, 0, 0, 507,
- 394, 155, 158, 0, 27, 0, 248, 0, 0, 125,
- 127, 125, 137, 0, 29, 135, 76, 0, 0, 0,
- 0, 0, 139, 0, 424, 441, 439, 0, 419, 427,
- 544, 0, 79, 191, 0, 539, 504, 499, 0, 521,
- 0, 14, 487, 0, 257, 256, 260, 251, 0, 0,
- 447, 450, 385, 122, 195, 0, 227, 0, 358, 172,
- 0, 164, 0, 402, 466, 465, 0, 458, 0, 0,
- 511, 391, 160, 0, 0, 39, 48, 0, 50, 128,
- 129, 0, 0, 0, 0, 27, 0, 141, 0, 148,
- 149, 146, 140, 444, 443, 423, 84, 89, 358, 0,
- 264, 524, 0, 459, 250, 487, 0, 33, 184, 227,
- 124, 0, 0, 231, 232, 233, 236, 235, 234, 226,
- 111, 194, 199, 196, 0, 225, 229, 0, 0, 0,
- 0, 0, 165, 0, 324, 268, 487, 487, 464, 455,
- 492, 493, 0, 393, 0, 0, 0, 153, 159, 151,
- 245, 504, 126, 73, 70, 138, 0, 142, 144, 29,
- 0, 0, 90, 80, 0, 503, 253, 467, 0, 255,
- 109, 0, 0, 203, 0, 104, 230, 0, 198, 29,
- 0, 29, 0, 168, 0, 167, 0, 0, 457, 395,
- 0, 29, 0, 0, 0, 0, 0, 0, 136, 29,
- 27, 442, 85, 0, 29, 460, 252, 0, 0, 205,
- 207, 202, 239, 0, 0, 0, 27, 0, 362, 0,
- 27, 169, 0, 166, 461, 462, 156, 27, 42, 154,
- 51, 130, 29, 133, 74, 71, 27, 0, 29, 27,
- 242, 204, 6, 0, 208, 209, 0, 0, 217, 0,
- 0, 0, 0, 197, 200, 0, 107, 363, 0, 359,
- 345, 0, 171, 29, 0, 27, 0, 27, 347, 206,
- 210, 211, 221, 0, 212, 0, 240, 237, 0, 241,
- 0, 360, 170, 27, 29, 131, 52, 0, 86, 91,
- 0, 220, 213, 214, 218, 0, 172, 361, 27, 134,
- 0, 219, 0, 238, 0, 0, 29, 215, 0, 132,
- 27, 223, 29, 201, 87, 27, 93, 224, 0, 88,
- 92, 94, 0, 95, 96, 0, 0, 97, 0, 29,
- 27, 98
+ 0, 0, 0, 0, 0, 0, 97, 0, 30, 27,
+ 0, 36, 33, 26, 203, 0, 184, 114, 82, 0,
+ 547, 549, 0, 571, 573, 572, 0, 0, 381, 16,
+ 3, 335, 0, 0, 193, 194, 0, 189, 190, 39,
+ 0, 400, 0, 0, 136, 139, 209, 184, 185, 186,
+ 0, 178, 180, 118, 187, 520, 541, 387, 385, 340,
+ 337, 281, 391, 389, 536, 512, 532, 0, 0, 552,
+ 408, 171, 174, 0, 41, 0, 262, 0, 0, 141,
+ 143, 141, 153, 0, 43, 151, 90, 0, 0, 0,
+ 0, 0, 155, 0, 433, 486, 484, 0, 437, 472,
+ 430, 589, 457, 455, 456, 0, 0, 459, 458, 449,
+ 451, 450, 461, 460, 463, 462, 464, 465, 467, 466,
+ 453, 452, 442, 443, 454, 444, 445, 446, 0, 93,
+ 32, 38, 205, 0, 584, 549, 544, 0, 566, 0,
+ 14, 532, 0, 271, 270, 274, 265, 0, 0, 0,
+ 492, 495, 399, 138, 209, 0, 241, 0, 372, 184,
+ 120, 0, 416, 511, 510, 0, 503, 0, 0, 556,
+ 405, 176, 0, 0, 53, 62, 0, 64, 144, 145,
+ 0, 0, 0, 0, 41, 0, 157, 0, 164, 165,
+ 162, 156, 489, 488, 432, 468, 0, 98, 103, 372,
+ 0, 278, 569, 0, 504, 264, 532, 0, 47, 197,
+ 198, 241, 140, 0, 0, 245, 246, 247, 250, 249,
+ 248, 240, 127, 208, 213, 210, 0, 239, 243, 0,
+ 0, 0, 0, 181, 121, 0, 338, 282, 532, 532,
+ 509, 500, 537, 538, 0, 407, 0, 0, 0, 169,
+ 175, 167, 259, 549, 142, 87, 84, 154, 0, 158,
+ 160, 43, 0, 469, 0, 104, 94, 0, 548, 267,
+ 512, 0, 269, 125, 0, 0, 217, 0, 118, 244,
+ 0, 212, 43, 0, 43, 182, 0, 0, 502, 409,
+ 0, 43, 0, 0, 0, 0, 0, 0, 152, 43,
+ 41, 487, 99, 0, 43, 505, 266, 0, 0, 219,
+ 221, 216, 253, 0, 0, 0, 41, 0, 376, 0,
+ 41, 0, 506, 507, 172, 41, 56, 170, 65, 146,
+ 43, 149, 88, 85, 41, 0, 43, 41, 256, 218,
+ 6, 0, 222, 223, 0, 0, 231, 0, 0, 0,
+ 0, 211, 214, 0, 123, 377, 0, 373, 359, 183,
+ 43, 0, 41, 0, 41, 361, 220, 224, 225, 235,
+ 0, 226, 0, 254, 251, 0, 255, 0, 374, 41,
+ 43, 147, 66, 0, 100, 105, 0, 234, 227, 228,
+ 232, 0, 184, 375, 41, 150, 0, 233, 0, 252,
+ 0, 0, 43, 229, 0, 148, 41, 237, 43, 215,
+ 101, 41, 107, 238, 0, 102, 106, 108, 0, 109,
+ 110, 0, 0, 111, 0, 43, 41, 112
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 2, 4, 84, 85, 534, 382, 201, 202,
- 86, 232, 390, 538, 903, 88, 324, 588, 476, 671,
- 182, 481, 181, 589, 593, 820, 934, 337, 596, 867,
- 595, 866, 185, 197, 767, 702, 831, 907, 970, 986,
- 833, 873, 989, 990, 991, 995, 998, 359, 360, 89,
- 90, 249, 91, 559, 92, 554, 400, 93, 399, 94,
- 556, 644, 645, 752, 679, 821, 956, 904, 686, 487,
- 490, 601, 869, 829, 761, 592, 672, 863, 742, 933,
- 745, 816, 651, 652, 653, 472, 545, 205, 206, 210,
- 726, 791, 844, 948, 792, 842, 881, 913, 914, 915,
- 916, 962, 917, 918, 919, 960, 983, 793, 794, 795,
- 796, 883, 797, 179, 331, 332, 594, 714, 715, 716,
- 776, 633, 634, 95, 318, 96, 369, 733, 418, 419,
- 413, 415, 536, 417, 732, 568, 140, 404, 514, 97,
- 98, 99, 126, 800, 889, 101, 240, 532, 385, 564,
- 563, 575, 574, 293, 102, 654, 166, 167, 475, 670,
- 741, 813, 173, 235, 473, 103, 606, 504, 104, 607,
- 314, 608, 105, 106, 107, 309, 108, 109, 458, 665,
- 809, 717, 837, 734, 735, 736, 737, 110, 111, 112,
- 113, 250, 114, 115, 116, 117, 326, 578, 664, 579,
- 580, 118, 524, 525, 706, 159, 160, 223, 224, 527,
- 628, 119, 364, 621, 365, 120, 505, 121
+ -1, 1, 2, 4, 84, 85, 557, 392, 203, 204,
+ 350, 351, 354, 355, 86, 234, 400, 561, 991, 88,
+ 326, 612, 486, 731, 182, 491, 181, 613, 617, 912,
+ 1021, 339, 620, 957, 619, 956, 185, 197, 858, 789,
+ 924, 995, 1056, 1072, 926, 963, 1075, 1076, 1077, 1081,
+ 1084, 369, 370, 89, 90, 251, 895, 91, 583, 92,
+ 578, 410, 93, 409, 94, 580, 703, 704, 841, 739,
+ 913, 1042, 992, 746, 497, 500, 625, 959, 921, 850,
+ 616, 732, 953, 831, 1020, 834, 908, 710, 711, 712,
+ 713, 482, 569, 207, 208, 212, 816, 883, 937, 1035,
+ 884, 935, 971, 1001, 1002, 1003, 1004, 1048, 1005, 1006,
+ 1007, 1046, 1069, 885, 886, 887, 888, 973, 889, 179,
+ 333, 334, 618, 803, 804, 805, 867, 691, 692, 95,
+ 320, 96, 379, 822, 428, 429, 423, 425, 559, 427,
+ 821, 592, 140, 414, 537, 97, 98, 99, 126, 892,
+ 979, 101, 242, 555, 395, 588, 587, 599, 598, 295,
+ 102, 714, 166, 167, 485, 730, 830, 905, 173, 237,
+ 483, 103, 516, 632, 518, 519, 104, 633, 316, 634,
+ 105, 106, 107, 311, 108, 109, 468, 725, 901, 806,
+ 930, 823, 824, 825, 826, 110, 111, 112, 113, 252,
+ 114, 115, 116, 117, 328, 602, 724, 603, 604, 118,
+ 547, 548, 795, 159, 160, 225, 226, 550, 686, 119,
+ 374, 679, 375, 120, 520, 121
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -770
+#define YYPACT_NINF -833
static const yytype_int16 yypact[] =
{
- -770, 72, 80, -770, 1334, 3870, 3870, -49, 3870, 3870,
- 3870, 3870, 3870, 3870, 3870, 3870, -770, 3870, 3870, 3870,
- 3870, 3870, 3870, 3870, -40, -40, 2540, 3870, 146, -17,
- 87, -770, -770, 84, -770, -770, -770, 184, 3870, -770,
- -770, 110, 112, -770, 87, 2673, 2806, 193, -770, 196,
- 2939, -770, 3870, -15, 39, 152, 155, 4, 126, 136,
- 148, 182, -770, -770, -770, 220, 227, -770, -770, -770,
- -770, -770, -770, 210, 157, -770, -770, 223, 4003, -770,
- -770, 154, 218, 273, -69, -770, 29, -770, -770, -770,
- -770, -770, -770, 288, 313, -770, -770, 230, 325, 328,
- 363, 335, 257, -770, -770, 1325, -770, -770, 67, 1759,
- -770, -770, 261, 347, 287, -770, 128, -770, 96, -770,
- -770, -770, -770, -770, 321, 279, 363, 4931, 4931, 3870,
- 4931, 4931, 1481, -35, 4694, 1010, -770, -770, 373, -770,
- 3870, -770, -770, -770, -770, -770, -770, -770, -770, 291,
- 223, -67, 297, -770, -770, 300, -770, -40, 4737, 268,
- 440, -770, 326, 223, 333, 304, -770, -770, 324, 362,
- 68, 96, 3072, -770, -770, 4003, 466, -770, 3870, 30,
- 4931, 2274, 87, 3870, 3870, 344, -770, -770, 4482, -770,
- 4526, 351, 486, -770, 352, 4931, 1523, 383, 4568, 223,
- -31, 33, -770, -770, 272, 38, -770, -770, -770, 504,
- 43, 363, -40, 3870, 3870, 381, -770, 2540, 169, -46,
- -770, 4136, -40, 320, -770, 223, -770, 303, -42, 395,
- 400, 4610, 384, 3870, -8, 397, 358, -8, 161, 498,
- 428, 511, -770, 461, -770, -770, 3870, 3870, -770, 516,
- 527, 165, -770, 3870, -770, 564, -770, -770, 3870, 3870,
- 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870,
- 3870, 3870, 3870, 3870, 3870, 3870, 3870, 146, -770, -770,
- -770, 3205, 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870,
- 3870, 3870, 3870, 428, 156, 3870, -770, 3870, 3870, 154,
- -22, -770, 4652, 3870, -770, 223, -54, 176, 176, -770,
- -770, 3338, -770, 3471, -770, 223, 333, 162, 428, 162,
- -770, -13, -770, -770, 2274, 4931, 435, 3870, -770, 514,
- -770, 447, 593, 4931, 512, 2688, 533, 62, -770, -770,
- -770, 4804, -770, -770, -770, -770, 130, 535, -15, -770,
- 3870, -770, -770, 39, -770, 4804, 534, -770, -770, 14,
- -770, -770, 19, 804, 40, -770, 458, 1572, 459, 284,
- 462, -770, 539, -770, -770, 551, 1256, 465, -770, -770,
- -770, 229, -770, -770, -770, 428, -770, -770, -770, -770,
- 1609, 4270, -770, -770, -770, 2407, -770, 607, 117, -770,
- 499, 474, 476, -770, 472, 3870, 488, -770, 3870, 489,
- -13, -770, 96, 3870, 5010, 3870, -770, 3870, 3870, 3870,
- 2457, 2590, 2721, 2854, 2854, 2854, 2854, 1213, 1213, 1213,
- 1213, 582, 582, 519, 519, 519, 373, 373, 373, -770,
- 277, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481,
- 1481, 1481, 1481, -770, 488, 491, -770, 490, 176, 493,
- 4312, -770, 102, 1096, -45, -770, -40, 4931, -40, 4796,
- 333, -770, -770, -770, -770, 176, -770, -770, -770, 4931,
- -770, 1742, -770, -770, -770, -770, 631, 48, 495, 501,
- -770, 4804, 4804, 4804, -770, 500, -770, -12, 496, 223,
- -67, 506, -770, -770, -770, -770, 505, 583, -770, -770,
- 4354, -770, -770, 642, 508, -40, 517, -770, -770, -770,
- -770, -770, 521, -770, 50, -770, -770, 364, -770, 3870,
- -770, -770, 428, 518, -770, -770, 189, 524, -770, -770,
- -770, -770, -770, -40, -770, 53, 55, 525, 994, 4804,
- 528, 223, 333, -770, 555, 117, 526, -770, -770, 530,
- 330, 529, 4398, 428, 428, -13, 4972, 1481, 3870, 4859,
- 5055, 5076, 146, -770, 428, 428, -770, -770, -770, 9,
- -770, -770, -770, -770, -770, 3604, -770, 442, -770, 87,
- -770, -770, -770, 3870, 3870, 254, 254, 4804, 611, 1875,
- -770, 422, -770, 275, -770, -770, 558, 537, 677, 4804,
- 547, 223, -54, 1, 589, -770, -770, 4804, 330, -770,
- -770, 3870, -770, 284, 682, -770, -770, -770, 541, 114,
- -770, -770, 544, -770, 204, 550, -770, 3737, -770, -770,
- -770, 223, 333, 117, 549, 698, -770, -770, 330, -770,
- -770, 556, 699, 195, -770, -770, -770, -770, -770, 5033,
- -770, -770, -770, -770, -770, 559, 3870, 3870, -40, 4931,
- -770, -770, 394, 567, 628, 568, 4931, -40, 573, 599,
- -770, 599, -770, 719, -770, -770, -770, 449, 584, 3870,
- 12, 311, -770, 4804, -770, 4804, -770, 586, -45, -770,
- -770, 594, -770, -770, 588, -770, 284, -770, 3870, -770,
- 591, -770, 3870, 176, 619, 239, -770, -770, 595, -40,
- 56, 1083, 333, 698, -770, 117, 736, 597, 644, 379,
- 678, 737, 3870, 428, 691, 692, 428, -770, 598, 4440,
- -770, 632, 411, 87, 2274, -770, -770, 603, -770, -770,
- -770, 254, 608, 610, 4804, 669, 612, -770, 1525, -770,
- -770, -770, -770, -770, 637, -770, -770, 662, 644, 57,
- 1481, -770, 616, -770, -770, 3870, 619, -770, -770, 867,
- -770, 695, 117, -770, -770, -770, -770, -770, -770, -770,
- -770, -770, -770, -770, 321, 605, -770, 44, 614, 618,
- 620, 209, 761, 4804, 5033, -770, 3870, 3870, -770, 619,
- -770, -770, 176, -770, 87, 749, 708, -770, -770, -770,
- 3870, 284, -770, -770, -770, -770, 627, -770, -770, -770,
- 4804, 117, -770, -770, 629, -770, -770, 559, 624, 619,
- -770, 768, 25, -770, 712, 363, -770, 715, -770, -770,
- 224, -770, 714, 775, 4804, -770, 633, 634, -770, -770,
- 766, -770, 641, 2274, 646, 60, 2008, 2008, -770, -770,
- 419, -770, -770, 645, -770, -770, -770, 4804, 117, -770,
- 190, -770, 782, 46, 729, 789, 649, 731, -770, 61,
- 654, 796, 4804, -770, -770, -770, -770, 744, -770, -770,
- -770, -770, -770, -770, -770, -770, 427, 740, -770, 660,
- -770, -770, 741, 676, 190, -770, 680, 743, 733, 690,
- 706, 4804, 781, -770, -770, 4804, -770, -770, 293, -770,
- -770, 4804, -770, -770, 2141, 769, 707, 705, -770, -770,
- -770, -770, 554, 117, -770, 790, -770, 849, 716, -770,
- 795, -770, -770, 482, -770, -770, -770, 717, -770, -770,
- 799, 800, 866, -770, -770, 4804, 330, -770, 797, -770,
- 721, -770, 117, -770, 724, 728, -770, -770, 336, -770,
- 727, -770, -770, -770, -770, 730, 783, -770, 738, -770,
- 783, -770, 117, -770, -770, 810, 742, -770, 734, -770,
- 745, -770
+ -833, 75, 82, -833, 1632, 3993, 3993, -58, 3993, 3993,
+ 3993, 3993, 3993, 3993, 3993, 3993, -833, 3993, 3993, 3993,
+ 3993, 3993, 3993, 3993, 119, 119, 2796, 3993, 158, -53,
+ -47, -833, -833, 211, -833, -833, -833, 123, 3993, -833,
+ -833, 91, 93, -833, -47, 2929, 3062, 181, -833, 203,
+ 3195, -833, 3993, 157, -7, 162, 168, 5, 138, 151,
+ 159, 170, -833, -833, -833, 192, 200, -833, -833, -833,
+ -833, -833, -833, 279, 86, -833, -833, 248, 4126, -833,
+ -833, 206, 326, 394, -60, -833, 12, -833, -833, -833,
+ -833, -833, -833, 349, 355, -833, -833, 244, 370, 373,
+ 431, 391, 377, -833, -833, 4740, -833, -833, 198, 1001,
+ -833, -833, 380, 466, 420, -833, 70, -833, 10, -833,
+ -833, -833, -833, -833, 465, 407, 431, 5388, 5388, 3993,
+ 5388, 5388, 5651, 185, 5083, 1193, -833, -833, 524, -833,
+ 3993, -833, -833, -833, -833, -833, -833, -833, -833, 434,
+ 248, -74, 442, -833, -833, 446, -833, 119, 5145, 448,
+ 586, -833, 450, 248, 454, 461, -833, -833, 463, 487,
+ -28, 10, 3328, -833, -833, 4126, 583, -833, 3993, 15,
+ 5388, 2530, -47, 3993, 3993, 492, -833, -833, 4783, -833,
+ 4825, 491, 632, -833, 493, 5388, 1419, 498, 4867, 89,
+ 146, 248, -13, 18, -833, -833, 147, 24, -833, -833,
+ -833, 641, 25, 431, 119, 3993, 3993, 505, -833, 2796,
+ -27, 458, -833, 4259, 119, 422, -833, 248, -833, 421,
+ -59, 506, 512, 4910, 510, 3993, 79, 508, 424, 79,
+ 67, 596, 519, 602, -833, 554, -833, -833, 3993, 3993,
+ -833, 608, 619, 178, -833, 3993, -833, 658, -833, -833,
+ 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993,
+ 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 158,
+ -833, -833, -833, 3461, 3993, 3993, 3993, 3993, 3993, 3993,
+ 3993, 3993, 3993, 3993, 3993, 519, 190, 3993, -833, 3993,
+ 3993, 206, -17, -833, 4952, 3993, -833, 248, -50, 199,
+ 199, -833, -833, 3594, -833, 3727, -833, 248, 454, 11,
+ 519, 11, -833, -4, -833, -833, 2530, 5388, 528, 3993,
+ -833, 599, -833, 536, 683, 5388, 604, 1390, 621, 0,
+ -833, -833, -833, 5195, -833, -833, -833, -833, 248, -8,
+ 29, -833, 248, 149, 30, -833, 163, 634, 156, -833,
+ 3993, -833, -833, -7, -833, 5195, 633, -833, -833, 17,
+ -833, -833, 35, 425, 36, -833, 555, 1640, 558, 342,
+ 556, -833, 645, -833, -833, 654, 4436, 565, -833, -833,
+ -833, 356, -833, -833, -833, 519, -833, -833, -833, -833,
+ 1765, 4478, -833, -833, -833, 1471, -833, 711, -44, -833,
+ 603, 570, 572, -833, 580, 3993, 587, -833, 3993, 588,
+ -4, -833, 10, 3993, 5549, 3993, -833, 3993, 3993, 3993,
+ 1521, 2713, 2977, 3110, 3110, 3110, 3110, 1086, 1086, 1086,
+ 1086, 730, 730, 699, 699, 699, 524, 524, 524, -833,
+ 134, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651,
+ 5651, 5651, 5651, -833, 587, 590, -833, 585, 199, 593,
+ 4525, -833, 257, 1241, 288, -833, 119, 5388, 119, 5187,
+ 454, -833, -833, -833, -833, 199, -833, -833, -833, 5388,
+ -833, 1923, -833, -833, -833, -833, 746, 41, 607, 610,
+ -833, 5219, 5219, 5219, 5219, 5195, -833, 613, -833, 1,
+ 612, 248, 5219, -74, 620, -833, -833, -833, 5511, -833,
+ -833, 611, 176, 697, 89, -833, 177, 698, 146, -833,
+ 700, -833, -833, 4567, -833, -833, 768, 631, 119, 635,
+ -833, -833, -833, -833, -833, 636, -833, 43, -833, -833,
+ 507, -833, 3993, -833, -833, 519, 629, -833, -833, -23,
+ 640, -833, -833, -833, -833, -833, 119, 3993, -833, 46,
+ 49, 646, 910, 5195, 637, 248, 454, -833, 662, -44,
+ 639, -833, -833, 650, 365, 647, 4609, 519, 519, -4,
+ 5429, 5651, 3993, 5346, 5717, 5759, 158, -833, 519, 519,
+ -833, -833, -833, 4, -833, -833, -833, -833, -833, 3860,
+ -833, 263, -833, -47, -833, -833, -833, 3993, 3993, 423,
+ 423, 5195, 731, 2081, -833, 389, -833, 184, 488, 488,
+ -833, -833, 678, 648, 800, 5195, 666, 248, -50, 4994,
+ 16, 5219, 5219, 5219, 5018, 5219, 5219, 5219, 5219, 5219,
+ 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219,
+ 5219, 5219, 5219, 5219, 5219, 5219, 709, 745, -833, -833,
+ 748, -833, -833, -833, -833, 5195, 365, -833, -833, 3993,
+ -833, 342, 804, -833, -833, -833, 672, 4394, -833, -833,
+ 675, -833, 164, 682, -833, 5388, 2663, -833, -833, -833,
+ 248, 454, -44, 681, 829, -833, -833, 365, -833, -833,
+ 685, 832, -833, 431, -833, -833, -833, -833, -833, 5674,
+ -833, -833, -833, -833, -833, 689, 3993, 3993, 119, 5388,
+ -833, -833, 351, 688, 760, 691, 5388, 119, 694, 721,
+ -833, 721, -833, 835, -833, -833, -833, 521, 701, 3993,
+ 3, 363, -833, 5195, -833, 5195, -833, 703, 288, -833,
+ -833, -833, 5590, 5628, 5697, 5219, 5471, 5781, 5800, 2846,
+ 3244, 3376, 3509, 3509, 3509, 3509, 1423, 1423, 1423, 1423,
+ 655, 655, 488, 488, 488, -833, -833, -833, 702, -833,
+ -833, -833, -833, 704, -833, 342, -833, 3993, -833, 696,
+ -833, 3993, 199, 733, 189, -833, -833, 705, 119, 3993,
+ 51, 1135, 454, 829, -833, -44, 644, 708, 757, 393,
+ 714, 3993, 519, 802, 805, 519, -833, 710, 4654, -833,
+ 741, 399, -47, 2530, -833, -833, 715, -833, -833, -833,
+ 423, 718, 719, 5195, 783, 720, -833, 4698, -833, -833,
+ -833, -833, -833, 749, -833, 5740, 5219, -833, 772, 757,
+ 52, 5651, -833, 725, -833, -833, 3993, 733, -833, -833,
+ 5388, 849, -833, 810, -44, -833, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -833, 465, 624, -833, 32,
+ 722, 735, 736, -833, -833, 811, 5674, -833, 3993, 3993,
+ -833, 733, -833, -833, 199, -833, -47, 863, 824, -833,
+ -833, -833, 3993, 342, -833, -833, -833, -833, 740, -833,
+ -833, -833, 5195, 5740, -44, -833, -833, 742, -833, -833,
+ 689, 738, 733, -833, 887, 9, -833, 828, 431, -833,
+ 833, -833, -833, 160, -833, 890, 750, 751, -833, -833,
+ 879, -833, 753, 2530, 762, 56, 2239, 2239, -833, -833,
+ -25, -833, -833, 755, -833, -833, -833, 5195, -44, -833,
+ 145, -833, 899, 33, 844, 903, 763, 847, -833, 57,
+ 780, 5195, -833, -833, -833, 873, -833, -833, -833, -833,
+ -833, -833, -833, -833, 335, 871, -833, 791, -833, -833,
+ 860, 796, 145, -833, 799, 865, 858, 812, 808, 5195,
+ 893, -833, -833, 5195, -833, -833, 175, -833, -833, -833,
+ -833, 2397, 884, 822, 820, -833, -833, -833, -833, 713,
+ -44, -833, 905, -833, 967, 830, -833, 909, -833, 314,
+ -833, -833, -833, 834, -833, -833, 912, 914, 979, -833,
+ -833, 5195, 365, -833, 904, -833, 836, -833, -44, -833,
+ 839, 840, -833, -833, 320, -833, 837, -833, -833, -833,
+ -833, 841, 892, -833, 846, -833, 892, -833, -44, -833,
+ -833, 922, 854, -833, 855, -833, 843, -833
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -770, -770, -362, -770, -24, -770, -770, -770, -770, 545,
- -770, -138, -770, -770, 3, -770, -770, -770, -770, -770,
- -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
- -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
- -770, -770, -770, -770, -98, -770, -770, -770, 380, 509,
- 513, -123, -770, -770, -770, -770, -770, -770, -770, -770,
- -770, -770, 253, 228, -575, -770, -770, 37, -770, -770,
- -770, -383, -770, -770, 147, -770, -770, -770, -770, -770,
- -770, -770, -605, -770, 179, -198, -770, -770, 557, -770,
- 187, -770, -770, -770, -770, -770, -770, -770, -770, -1,
- -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
- -769, -770, -770, -770, -576, -770, -770, 138, -770, -770,
- -770, -770, -770, 837, -770, -3, -770, -770, -770, -770,
- -770, -770, -770, -770, -770, -770, -770, -770, -770, -60,
- -770, -770, -2, 160, -770, -770, -770, -770, -770, -770,
- -770, -770, -770, -770, -19, -386, -263, -770, -770, -770,
- -770, -770, -770, -770, 183, 387, 144, -770, -770, 331,
- 337, -770, 912, -14, 739, -443, 473, 20, -770, -770,
- -770, -594, -770, -770, -770, -770, 107, -232, -770, 66,
- -770, -770, -770, -18, -4, -770, -211, -464, -770, -770,
- 106, 65, -647, 329, -770, 732, -770, 479, 322, -770,
- -770, -770, -770, -770, 332, -770, -770, -770
+ -833, -833, -376, -833, -24, -833, -833, -833, -833, 653,
+ -833, 489, -833, 484, -833, -272, -833, -833, 20, -833,
+ -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -833, -833, -833, -45, -833,
+ -833, -833, 495, 638, 642, -124, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -833, -833, 333, 295, -605,
+ -833, -833, 80, -833, -833, -833, -481, -833, -833, 193,
+ -833, -833, -833, -833, -833, -833, -833, -655, -833, 225,
+ -833, -239, -833, -833, 684, -833, 231, -833, -833, -833,
+ -833, -833, -833, -833, -833, 44, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -833, -832, -833, -833, -833,
+ -603, -833, -833, 182, -833, -833, -833, -833, -833, 970,
+ -833, 31, -833, -833, -833, -833, -833, -833, -833, -833,
+ -833, -833, -833, -833, -833, -1, -833, -833, 6, 191,
+ -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+ 436, 105, -267, -833, -833, -833, -833, -833, -833, -833,
+ 229, 665, -833, -170, 724, -833, -833, 417, 419, -833,
+ 102, -22, 852, -465, 485, 664, -833, -833, -833, -767,
+ -833, -833, -833, -833, 129, -248, -833, 384, -833, -833,
+ -833, -19, -9, -833, -202, -479, -833, -833, 352, 237,
+ -764, 379, -833, 845, -833, 470, 323, -833, -833, -833,
+ -833, -833, 387, -833, -833, -833
};
/* 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 -542
+#define YYTABLE_NINF -587
static const yytype_int16 yytable[] =
{
- 151, 151, 100, 301, 164, 152, 152, 87, 133, 165,
- 169, 586, 553, 704, 439, 174, 176, 675, 230, 409,
- 533, 681, 515, 583, 170, 584, 846, -541, 218, 200,
- 186, 135, 123, 878, 35, 401, 402, 241, 327, 759,
- 297, 348, 396, 727, 154, 154, 353, 194, 517, 297,
- 227, 356, 847, 228, 922, 211, 598, 123, 623, 769,
- 347, 637, 455, -179, -182, 623, 218, 610, 623, 928,
- 196, 666, 3, 699, 148, 409, 455, -381, 209, -381,
- -2, 239, -364, 239, 457, 471, 459, 474, 358, 488,
- 155, 155, -383, 171, 168, 453, 239, 373, 221, 222,
- 636, -382, 129, 48, -383, 239, 603, 149, 239, -368,
- 150, 177, 230, 203, 300, 230, 81, -348, -348, 239,
- 774, 700, 211, 252, 253, 254, 306, 279, 280, -469,
- 297, 220, 298, 151, 172, 199, 221, 222, 152, 316,
- 255, 298, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 667, 277, 760, 516, 321, 330, 646,
- 35, -541, 632, 961, 865, 346, 822, 310, 879, 880,
- 151, 334, 242, 328, 329, 152, 349, 535, 151, 123,
- 297, 354, 518, 152, 561, 204, 357, 848, 151, 923,
- 599, 381, 624, 152, 335, 638, 506, -179, -182, 835,
- 362, 366, 901, 929, -472, 858, 489, 687, 123, 691,
- 35, 507, 298, 155, 352, 740, 577, 730, 454, 123,
- 35, 371, 361, 363, 367, 218, 35, 406, 175, 35,
- 378, 852, 377, 577, 864, 774, 178, 410, 465, 773,
- 35, -259, 299, 164, -350, -350, 887, 646, 165, 169,
- 148, 183, 912, 184, 550, 191, 712, 551, 192, 731,
- 155, 710, 207, 170, -472, 208, 778, 212, 155, -468,
- 239, 464, 298, 853, 218, 407, 677, 213, 155, 219,
- 410, 470, 218, 162, 372, 123, 163, 234, 888, 214,
- 462, 775, 81, 410, 410, 221, 222, 225, 233, 661,
- 408, 226, 81, 410, -259, 410, 412, 500, 81, 408,
- 393, 81, 501, 463, 200, 950, 123, 477, 35, 713,
- 408, 500, 81, 215, 630, 547, 501, 550, 587, 780,
- 551, 572, 171, 168, 123, 151, 35, 218, 859, 123,
- 152, 35, 237, 220, 221, 222, 123, 411, 35, 412,
- 243, 974, 221, 222, -254, 657, 658, 951, 148, 689,
- 690, 216, 412, 412, 552, -382, 662, 663, 217, 239,
- -366, 678, 412, 245, 412, 244, 148, 246, 100, 523,
- 247, 148, 546, 539, 218, 248, 843, -474, 148, 378,
- 456, 149, 123, 251, 150, 689, 690, 294, 565, 295,
- 81, 522, 296, 411, 456, 548, 151, 221, 222, 149,
- 48, 152, 150, 277, 149, 312, 350, 150, 81, 225,
- 692, 149, 218, 81, 150, 155, 625, 378, 626, 627,
- 81, 305, 151, 307, 151, 872, 308, 152, 313, 152,
- 317, 123, 674, 239, 410, 738, 383, 384, 649, 650,
- 573, 743, 744, 379, 221, 222, 762, 500, 500, 500,
- 319, 410, 501, 501, 501, 612, 315, 550, 814, 815,
- 551, 577, -163, 239, 591, 503, 310, 320, 310, 981,
- 982, 151, 911, 323, 920, 336, 152, 153, 156, 512,
- 341, 772, 221, 222, 340, 342, 155, 649, 650, -41,
- -41, -41, -147, -147, -147, 688, 689, 690, 355, 151,
- -145, -145, -145, 412, 152, 500, 550, 642, 920, 551,
- 501, 552, 155, 368, 155, 361, 552, 344, 808, 389,
- 412, 374, 756, 689, 690, 380, 755, 386, 164, -157,
- -157, -157, 387, 165, 169, 392, 374, 963, 380, 374,
- 380, 236, 238, 310, 838, 274, 275, 276, 170, 277,
- 394, 151, 151, 500, -147, 673, 152, 152, 501, 395,
- 577, 155, -145, 397, 398, 500, 977, 698, 403, 405,
- 501, 416, 478, 500, 552, 856, 857, 480, 501, 151,
- 482, 483, 685, 484, 152, 486, 994, 508, 513, 155,
- 519, 528, 521, 529, 526, 680, 680, 722, 362, 552,
- 531, 549, 555, 560, 552, 271, 272, 273, 274, 275,
- 276, 557, 277, 558, 720, 604, 605, 171, 168, -495,
- -372, 363, -376, 523, 151, 597, 611, 576, 600, 152,
- 581, 609, 613, 151, 602, 615, 617, 721, 152, 618,
- 614, 155, 155, 783, 784, 785, 786, 787, 788, 500,
- 620, 500, 622, 631, 501, 635, 501, 639, 641, 643,
- 647, 648, 151, 683, 693, 695, 655, 152, 310, 155,
- 373, 870, 701, 640, 694, 151, 708, 749, 709, 711,
- 152, 552, 718, 724, -228, 552, 725, 729, 728, 410,
- -463, 886, 747, 890, 783, 784, 785, 786, 787, 788,
- 746, 748, 884, 897, 750, 751, 523, 151, 502, 817,
- 500, 906, 152, 754, 155, 501, 909, 757, 765, 310,
- 768, 682, 502, 155, 713, 766, 771, 818, 777, 798,
- 799, 803, 802, 806, 807, 810, 819, 812, 552, 826,
- 823, 703, 824, 830, 935, 827, 832, 841, 849, 850,
- 937, 680, 155, 836, 851, 854, 861, 862, 412, 500,
- 868, 876, 877, 874, 501, 155, 882, 885, 891, 892,
- 894, 895, 845, 896, 898, 953, 921, 151, 900, 908,
- 860, 924, 152, 925, 926, 927, 500, 552, 410, 930,
- 931, 501, -540, -161, 936, 938, 968, 155, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 500, 939, -216, 941, 942, 501, 781, 763, 980, 764,
- 943, 523, 782, 944, 985, 783, 784, 785, 786, 787,
- 788, 789, 945, 500, 552, 947, 552, 957, 501, 958,
- 959, 1000, 964, 965, -452, -452, 899, 966, 500, 967,
- 969, 971, -222, 501, 972, 976, 978, 412, 502, 502,
- 502, 979, 984, 975, 996, 987, 988, 155, 999, 992,
- 552, 790, 993, 509, 997, 619, 723, 500, 825, 540,
- 1001, 500, 501, 541, 905, 828, 501, 500, 801, 753,
- 511, 779, 501, 940, 839, 229, 805, 127, 128, 552,
- 130, 131, 132, 134, 136, 137, 138, 139, 834, 141,
- 142, 143, 144, 145, 146, 147, 502, 955, 158, 161,
- 697, 500, 552, 351, 875, 696, 501, 855, 552, 370,
- 180, 0, 707, 705, 0, 0, -540, 188, 190, 0,
- 0, 0, 195, 0, 198, 0, 0, 781, 552, 0,
- 0, 0, 0, 782, 871, 0, 783, 784, 785, 786,
- 787, 788, 789, 0, 502, 0, 0, 0, 0, 0,
- 231, 0, 0, 0, 0, 0, 502, 0, 893, 0,
- 0, 0, -180, 0, 502, 0, 0, 0, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 0, 910, 840, 0, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 932, 0, 0, 0,
- 0, 302, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 304, 0, -452, -452, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 946, 0, 0, 0, 949,
- -452, -452, 0, 0, 0, 952, 0, 0, 0, 0,
- 502, 0, 502, 0, 231, 0, 0, 231, 0, 0,
- 325, -183, 0, 0, 0, 333, 195, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 973,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 0, 0, 0, 195, 195, 0, 0, 158,
- 0, 0, 0, 376, 0, 0, 0, 0, 0, 0,
- 0, 502, 0, -452, -452, 391, -180, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -452, -452, 325, 325,
- 0, 0, -349, -349, 0, 414, 0, 0, 0, 0,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
- 430, 431, 432, 433, 434, 435, 436, 437, 438, 0,
- 502, 0, 0, 441, 442, 443, 444, 445, 446, 447,
- 448, 449, 450, 451, 452, 0, 0, 325, 0, 325,
- 460, 0, 0, 0, 0, 195, 0, 502, 0, 0,
- 0, 0, 0, 467, 0, 469, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -183, 0, 0, 0, 479,
- 0, 502, 0, 0, 0, 0, 0, 0, -351, -351,
- -542, -542, -542, -542, 269, 270, 271, 272, 273, 274,
- 275, 276, 510, 277, 502, 252, 253, 254, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 502,
- 0, 0, 255, 0, 256, 257, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 0, 277, 195, 502, 0,
- 0, 0, 502, 0, 0, 0, 0, 325, 502, 0,
- 562, 0, 0, 0, 0, 566, 0, 567, 0, 569,
- 570, 571, 0, 0, 252, 253, 254, 5, 6, 7,
- 8, 9, 0, 0, 0, 0, 10, 11, 0, 0,
- 0, 255, 502, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 0, 277, 0, 12, 13, 0,
- 0, 0, 0, 14, 0, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 0, 0, 0, 31, 32, 33, 34, 35, 0,
- 36, 530, 0, 0, 37, 38, 39, 40, 0, 41,
- 0, 42, 0, 43, 0, 0, 44, 0, 0, 0,
- 45, 46, 47, 48, 49, 50, 51, 0, 0, 52,
- 53, 629, 54, 0, 0, 0, 55, 56, 57, 0,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
- 0, 65, 66, 0, 67, 68, 69, 70, 71, 72,
- 0, 0, 0, 0, 0, 0, 73, 0, 278, 0,
- 659, 74, 75, 76, 77, 78, 0, 79, 80, 0,
- 81, 0, 82, 83, 0, 0, 0, 669, 0, 0,
- 0, 0, 0, 0, 0, 333, 676, 255, 0, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 0, 277, 0, 195, 252, 253, 254, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 195,
- 0, 255, 759, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 0, 277, 0, 0, 325, 739,
- 0, 0, 0, -452, -452, 0, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 0, 0,
- 0, 758, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 7, 8, 9, 0, 0, 0,
- 770, 10, 11, 0, 325, 0, 0, 0, 0, 0,
- 0, 0, -452, -452, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 804, 0, 0, 0, 0, 0,
- 0, 0, 12, 13, 0, 0, 0, 0, 14, 0,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 343, 0, 760, 31,
- 32, 33, 34, 35, 0, 36, 0, 325, 0, 37,
- 38, 39, 40, 0, 41, 0, 42, 0, 43, 0,
- 0, 44, 0, 0, 0, 45, 46, 47, 48, 0,
- 50, 51, 0, 0, 52, 0, 0, 54, 325, 325,
- 0, 55, 56, 57, 520, 58, 59, 60, 537, 62,
- 63, 64, 333, 0, 0, 0, 65, 66, 0, 67,
- 68, 69, 70, 71, 72, 5, 6, 7, 8, 9,
- 0, 73, 0, 0, 10, 11, 125, 75, 76, 77,
- 78, 0, 79, 80, 0, 81, 0, 82, 83, 590,
- 0, 0, 0, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 12, 13, 0, 0, 0,
+ 151, 151, 303, 406, 164, 419, 610, 174, 176, 169,
+ 100, 607, 449, 608, 735, 741, 556, 968, 627, 170,
+ 243, 793, 186, 329, 87, 538, 358, 498, 123, 202,
+ 848, 860, 363, 366, 299, 381, 865, 524, 528, -273,
+ 940, 1010, 133, -586, 540, 299, 411, 412, 465, 622,
+ 229, 681, 817, 230, 696, 939, 463, -191, 299, -195,
+ 681, 419, 465, 213, 681, 1016, 726, 205, -163, -163,
+ -163, 481, -395, 484, 521, 3, 241, 232, 357, 211,
+ 636, 194, -2, 523, 35, 35, -395, -397, 760, 368,
+ 241, 241, -378, -382, 129, 467, -397, 469, 382, 172,
+ 241, 694, -273, 574, 48, 175, 575, 127, 128, 302,
+ 130, 131, 132, 134, 136, 137, 138, 139, -517, 141,
+ 142, 143, 144, 145, 146, 147, 308, 300, 158, 161,
+ 213, -163, 299, 151, 948, -514, 761, 241, 300, 318,
+ 180, 220, 241, 747, 222, 751, 388, 188, 190, 955,
+ 206, 300, 195, 220, 198, 499, 558, 849, 123, 727,
+ 332, 123, 323, 969, 970, 865, 244, 301, 81, 330,
+ 539, 232, 359, 517, 232, 349, 353, 356, 364, 367,
+ 233, 690, 151, 525, 529, 178, 941, 1011, -586, 541,
+ 151, 123, 977, 35, 623, 535, 682, 1047, 596, 697,
+ 151, 331, -191, 391, -195, 928, 123, 1037, 35, 989,
+ 1017, 223, 224, 585, 611, 336, -517, 1000, 123, 123,
+ 601, 35, -513, 223, 224, 300, 801, 403, 123, 123,
+ 123, 304, 35, 148, 978, 914, 227, 601, 177, 348,
+ 527, 228, 306, 183, 420, 184, 372, 376, 148, 1038,
+ 416, 866, 35, 191, 530, 164, 199, 200, 281, 282,
+ 169, 148, 464, 829, 35, 171, 149, 667, 670, 150,
+ 170, 475, 148, 35, 233, 192, 81, 233, 749, 750,
+ 327, 149, 209, 474, 150, 335, 195, 420, 210, 802,
+ 214, 81, 574, 480, 149, 575, 352, 150, 417, 241,
+ 420, 420, 360, 215, 81, 162, 201, 201, 163, 954,
+ 420, 216, 420, 241, -268, 81, 688, 195, 195, 513,
+ 123, 158, 217, 864, 522, 386, 241, 241, 526, 721,
+ -55, -55, -55, 418, 202, 81, 472, 401, -362, -362,
+ 752, 513, 734, 869, 218, 418, 487, 81, 717, 718,
+ 327, 327, 219, 220, 418, 151, 81, 424, 221, 722,
+ 723, 235, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
+ 448, -173, -173, -173, 576, 451, 452, 453, 454, 455,
+ 456, 457, 458, 459, 460, 461, 462, 1060, 247, 327,
+ 220, 327, 470, 699, 571, 236, 100, 195, 155, 155,
+ -364, -364, 168, 589, 123, 477, 35, 479, 832, 833,
+ 562, 245, 222, 223, 224, 949, 151, 246, -161, -161,
+ -161, 489, 248, -585, -396, 249, 570, 123, 241, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 742, 151, -519, 151, 737, 148, 749, 750, 420,
+ 152, 152, 533, 250, 165, 123, 906, 907, 220, 545,
+ 223, 224, 844, 239, 1067, 1068, 420, 513, 513, 513,
+ 513, 513, 748, 749, 750, -497, -497, 638, 513, 149,
+ 422, -161, 150, 708, 709, 123, 220, 35, 220, 81,
+ 349, 388, -396, 388, 353, 792, 241, 195, -380, 153,
+ 156, 615, 574, 577, 151, 575, 171, 327, -179, 851,
+ 586, 708, 709, 253, 827, 590, 296, 591, 297, 593,
+ 594, 595, 220, 422, 663, 664, 665, 148, 223, 224,
+ 574, 155, 151, 575, 384, 298, 422, 422, 390, 513,
+ 738, 701, 238, 240, 601, 576, 422, 227, 422, 384,
+ 576, 390, 384, 390, 48, 389, 223, 224, 223, 224,
+ 149, 241, 164, 150, 279, 393, 394, 169, -585, 683,
+ 81, 684, 685, 852, 307, 853, 900, 170, 309, 820,
+ 155, 733, 310, 152, 315, 151, 151, 513, 155, 863,
+ 317, 383, 223, 224, 241, 421, 314, 319, 155, 321,
+ 325, 513, 322, 758, 845, 749, 750, 513, 513, 513,
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
+ 513, 513, 152, 745, 338, 342, 343, 344, 466, 960,
+ 152, 513, 576, 346, 687, 365, 601, 151, 378, 396,
+ 152, 421, 466, 168, 931, 397, 399, 402, 404, 695,
+ 976, 405, 980, 917, 407, 135, 812, 408, 576, 985,
+ 413, 415, 490, 576, 705, 426, 488, 994, 154, 154,
+ 492, 493, 997, 496, 719, 494, 946, 947, 660, 661,
+ 662, 663, 664, 665, 151, 422, 531, 536, 542, 549,
+ 372, 729, 544, 151, 196, 165, 552, 551, 1022, 335,
+ 736, 554, 422, -242, 1024, 573, 579, 810, 581, 513,
+ 582, 513, 584, 875, 876, 877, 878, 879, 880, -540,
+ -386, 513, -390, 600, 873, 276, 277, 278, 1039, 279,
+ 874, 605, 961, 875, 876, 877, 878, 879, 880, 881,
+ 621, 624, 637, 155, 626, 635, 640, 666, 1054, 668,
+ 671, 151, 673, 273, 274, 275, 276, 277, 278, 514,
+ 279, 195, 675, 676, 151, 689, 702, 700, 680, 678,
+ 1066, 576, 693, 420, 706, 576, 1071, 998, 195, 698,
+ 882, 514, 707, 743, 753, 715, 754, 705, 755, 383,
+ 909, 1019, 788, 1086, 974, 152, 151, 790, 797, 513,
+ 791, 312, 875, 876, 877, 878, 879, 880, 327, 828,
+ 798, 800, 513, 171, 155, 807, 814, 815, 818, 1033,
+ 819, -508, 835, 1036, 836, 837, 839, 840, 337, 843,
+ 576, 847, 862, 910, 857, 846, 854, 859, 802, 868,
+ 155, 890, 155, 891, 898, 894, 904, 899, 902, 911,
+ 362, 915, 916, 918, 919, 922, 925, 942, 371, 373,
+ 377, 1059, 934, 929, 950, 945, 152, 943, 387, 151,
+ 951, 944, 938, 952, 958, 420, 966, 964, 513, 861,
+ 576, 967, 972, 327, 981, 975, 984, 986, 982, 983,
+ 996, 870, 152, 1009, 152, 988, 1012, 1013, -192, 1014,
+ 872, 1015, 155, 896, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 1018, 514, 514, 514,
+ 514, 514, -177, 513, 576, 1023, 576, 1025, 514, 873,
+ 155, -230, 1026, 1028, 1032, 874, 1029, 513, 875, 876,
+ 877, 878, 879, 880, 881, 1030, 1031, 1034, 327, 473,
+ -497, -497, 1043, 987, 152, 1044, 1045, 1050, 576, 936,
+ 168, 1051, 1052, 1053, 1057, 513, -236, 1058, 1055, 513,
+ 1061, 1062, 1064, 1070, 1065, 1074, 1082, 1073, 1078, 1087,
+ 327, 327, 152, 155, 155, 933, 576, 1083, 515, 514,
+ 1085, 532, 672, 669, 335, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 513, 576, 962,
+ 515, 1079, 165, 677, 576, 813, 842, 993, 563, 422,
+ 920, 1041, 564, 546, 893, 871, 1027, 534, 231, 932,
+ 927, 897, 757, 756, 576, 152, 152, 514, 361, 965,
+ 796, -497, -497, -192, 380, 155, 794, 0, 0, 572,
+ 0, 514, 0, 999, 0, 1008, 0, 514, 514, 514,
+ 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
+ 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
+ 514, 514, 0, 0, 0, 0, 0, 1008, 0, 0,
+ 0, 514, 155, 0, 597, 0, 0, 152, 0, 0,
+ 0, 155, 0, -587, -587, -587, -587, 271, 272, 273,
+ 274, 275, 276, 277, 278, 1049, 279, 0, 0, 0,
+ 312, 422, 312, -196, 0, 0, 0, 0, 0, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 0, 0, 1063, 152, 0, 515, 515, 515, 515,
+ 515, 0, 0, 152, 0, 0, 0, 515, 0, 155,
+ 0, 0, 0, 1080, 0, 0, 0, 0, 0, 514,
+ 0, 514, 155, 0, 0, -497, -497, 0, 0, 0,
+ 0, 514, 371, 0, 0, 0, 0, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 292, 293, 294, 0,
+ 0, 0, 0, 0, 155, 628, 629, 630, 631, 0,
+ 312, 152, 0, 0, 0, 0, 639, 0, 515, 0,
+ 0, 0, 0, 0, 152, 0, 0, 0, 0, 0,
+ 0, 0, 0, -497, -497, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 152, 0, 0, 514,
+ 0, 0, 0, 740, 740, 0, 515, 0, -196, 0,
+ 0, 0, 514, 0, 0, 0, 0, 155, 0, 0,
+ 515, -497, -497, 0, 0, 0, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
+ 515, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 515, 0, 0, 373, 0, 546, -363, -363, 0, 152,
+ 0, 0, 0, 0, 0, 0, 0, 0, 514, 0,
+ 811, 0, 0, 0, 0, 762, 763, 764, 766, 767,
+ 768, 769, 770, 771, 772, 773, 774, 775, 776, 777,
+ 778, 779, 780, 781, 782, 783, 784, 785, 786, 787,
+ 0, 0, 312, 0, -365, -365, 0, 0, 0, 0,
+ 0, 838, 0, 514, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 0, 514, 515, 0,
+ 515, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 515, 0, 0, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 514, 0, 0, 0, 514,
+ -497, -497, 0, 0, 0, 0, 0, 0, 0, 546,
+ -587, -587, -587, -587, 658, 659, 660, 661, 662, 663,
+ 664, 665, 312, 0, 5, 6, 7, 8, 9, -497,
+ -497, 495, 0, 10, 11, 0, 0, 514, 0, 855,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 566, 740, 0, 0, 0, 515, 0,
+ 0, 0, 0, 0, 12, 13, 0, 0, 0, 0,
+ 14, 515, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
+ 0, 31, 32, 123, 34, 35, 0, 0, 0, 0,
+ 0, 37, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
+ 48, 279, 0, 345, 0, 0, 0, 546, 0, 0,
+ 923, 0, 0, 0, 0, 124, 0, 515, 59, 60,
+ 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
+ 0, 67, 68, 69, 70, 71, 72, 0, 0, 0,
+ 0, 0, 0, 73, 0, 0, 0, 0, 125, 75,
+ 76, 77, 567, 78, 568, 0, 0, 0, 81, 0,
+ 82, 83, 515, 0, 0, 5, 6, 7, 8, 9,
+ 0, 0, 0, 0, 10, 11, 515, 0, 0, 0,
+ 0, 0, 0, 0, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 0, 0, 0, 0,
+ 0, 0, 0, 0, 515, 12, 13, 0, 515, 0,
0, 14, 0, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 0,
- 0, 0, 31, 32, 33, 34, 35, 0, 36, -452,
- -452, 0, 37, 38, 39, 40, 0, 41, 0, 42,
+ -497, -497, 31, 32, 33, 34, 35, 0, 36, 0,
+ 0, 0, 37, 38, 39, 40, 515, 41, 0, 42,
0, 43, 0, 0, 44, 0, 0, 0, 45, 46,
- 47, 48, 0, 50, 51, 0, 0, 52, 0, 0,
- 54, 0, 0, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 0, 0, 0, 0, 0, 0, 0, 65,
+ 47, 48, 49, 50, 51, 0, 0, 52, 53, 0,
+ 54, 0, 0, 0, 55, 56, 57, 0, 58, 59,
+ 60, 61, 62, 63, 64, 0, 0, 0, 0, 65,
66, 0, 67, 68, 69, 70, 71, 72, 5, 6,
- 7, 8, 9, 0, 73, 0, 0, 10, 11, 125,
- 75, 76, 77, 78, 0, 79, 80, 0, 81, 0,
- 82, 83, 684, 0, 0, 0, 0, 0, 0, 0,
+ 7, 8, 9, 0, 73, 0, 0, 10, 11, 74,
+ 75, 76, 77, 0, 78, 0, 79, 80, 0, 81,
+ 0, 82, 83, 543, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
0, 0, 0, 0, 14, 0, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
@@ -1761,25 +1810,30 @@ static const yytype_int16 yytable[] =
0, 36, 0, 0, 0, 37, 38, 39, 40, 0,
41, 0, 42, 0, 43, 0, 0, 44, 0, 0,
0, 45, 46, 47, 48, 0, 50, 51, 0, 0,
- 52, 0, 0, 54, 0, 0, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 0, 0, 0, 0, 0,
+ 52, 0, 0, 54, 0, 0, 0, 55, 56, 57,
+ 0, 58, 59, 60, 560, 62, 63, 64, 0, 0,
0, 0, 65, 66, 0, 67, 68, 69, 70, 71,
- 72, 5, 6, 7, 8, 9, 0, 73, 0, 0,
- 10, 11, 125, 75, 76, 77, 78, 0, 79, 80,
- 0, 81, 0, 82, 83, 902, 0, 0, 0, 0,
+ 72, 0, 0, 0, 0, 0, 0, 73, 0, 0,
+ 0, 0, 125, 75, 76, 77, 0, 78, 0, 79,
+ 80, 0, 81, 0, 82, 83, 5, 6, 7, 8,
+ 9, 0, 0, 0, 0, 10, 11, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 13, 0, 0, 0, 0, 14, 0, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 0, 0, 0, 31, 32,
- 33, 34, 35, 0, 36, 0, 0, 0, 37, 38,
- 39, 40, 0, 41, 0, 42, 0, 43, 0, 0,
- 44, 0, 0, 0, 45, 46, 47, 48, 0, 50,
- 51, 0, 0, 52, 0, 0, 54, 0, 0, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 66, 0, 67, 68,
- 69, 70, 71, 72, 5, 6, 7, 8, 9, 0,
- 73, 0, 0, 10, 11, 125, 75, 76, 77, 78,
- 0, 79, 80, 0, 81, 0, 82, 83, 954, 0,
+ 614, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12, 13, 0, 0,
+ 0, 0, 14, 0, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 0, 0, 0, 31, 32, 33, 34, 35, 0, 36,
+ 0, 0, 0, 37, 38, 39, 40, 0, 41, 0,
+ 42, 0, 43, 0, 0, 44, 0, 0, 0, 45,
+ 46, 47, 48, 0, 50, 51, 0, 0, 52, 0,
+ 0, 54, 0, 0, 0, 0, 0, 57, 0, 58,
+ 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
+ 65, 66, 0, 67, 68, 69, 70, 71, 72, 0,
+ 0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
+ 125, 75, 76, 77, 0, 78, 0, 79, 80, 0,
+ 81, 0, 82, 83, 5, 6, 7, 8, 9, 0,
+ 0, 0, 0, 10, 11, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 744, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 0, 0, 0, 0,
14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -1790,143 +1844,148 @@ static const yytype_int16 yytable[] =
48, 0, 50, 51, 0, 0, 52, 0, 0, 54,
0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
- 0, 67, 68, 69, 70, 71, 72, 5, 6, 7,
- 8, 9, 0, 73, 0, 0, 10, 11, 125, 75,
- 76, 77, 78, 0, 79, 80, 0, 81, 0, 82,
- 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 12, 13, 0,
- 0, 0, 0, 14, 0, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 0, 0, 0, 31, 32, 33, 34, 35, 0,
- 36, 0, 0, 0, 37, 38, 39, 40, 0, 41,
- 0, 42, 0, 43, 0, 0, 44, 0, 0, 0,
- 45, 46, 47, 48, 0, 50, 51, 0, 0, 52,
- 0, 0, 54, 0, 0, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
- 0, 65, 66, 0, 67, 68, 69, 70, 71, 72,
- 5, 6, 7, 8, 9, 0, 73, 0, 0, 10,
- 11, 125, 75, 76, 77, 78, 0, 79, 80, 0,
- 81, 0, 82, 83, 0, 0, 0, 0, 0, 543,
+ 0, 67, 68, 69, 70, 71, 72, 0, 0, 0,
+ 0, 0, 0, 73, 0, 0, 0, 0, 125, 75,
+ 76, 77, 0, 78, 0, 79, 80, 0, 81, 0,
+ 82, 83, 5, 6, 7, 8, 9, 0, 0, 0,
+ 0, 10, 11, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 990, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 12, 13, 0, 0, 0, 0, 14, 0,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 0, 0, 0, 31,
+ 32, 33, 34, 35, 0, 36, 0, 0, 0, 37,
+ 38, 39, 40, 0, 41, 0, 42, 0, 43, 0,
+ 0, 44, 0, 0, 0, 45, 46, 47, 48, 0,
+ 50, 51, 0, 0, 52, 0, 0, 54, 0, 0,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 0,
+ 0, 0, 0, 0, 0, 0, 65, 66, 0, 67,
+ 68, 69, 70, 71, 72, 0, 0, 0, 0, 0,
+ 0, 73, 0, 0, 0, 0, 125, 75, 76, 77,
+ 0, 78, 0, 79, 80, 0, 81, 0, 82, 83,
+ 5, 6, 7, 8, 9, 0, 0, 0, 0, 10,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1040, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12, 13, 0, 0, 0, 0, 14, 0, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 0, 0, 0, 0, 31, 32, 123,
- 34, 35, 0, 0, 0, 0, 0, 37, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 48, 277, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 124, 0, 0, 59, 60, 0, 0, 0, 0,
+ 27, 28, 29, 30, 0, 0, 0, 31, 32, 33,
+ 34, 35, 0, 36, 0, 0, 0, 37, 38, 39,
+ 40, 0, 41, 0, 42, 0, 43, 0, 0, 44,
+ 0, 0, 0, 45, 46, 47, 48, 0, 50, 51,
+ 0, 0, 52, 0, 0, 54, 0, 0, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 0, 0, 0,
0, 0, 0, 0, 65, 66, 0, 67, 68, 69,
70, 71, 72, 5, 6, 7, 8, 9, 0, 73,
- 0, 0, 10, 122, 125, 75, 76, 77, 78, 544,
- 0, 0, 0, 81, 0, 82, 83, 0, 0, 0,
- 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 10, 11, 125, 75, 76, 77, 0, 78,
+ 0, 79, 80, 0, 81, 0, 82, 83, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 12, 13, 0, 0, 0, 0, 14,
0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
- 31, 32, 123, 34, 35, 0, 0, 0, 0, 0,
- 37, 0, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 48,
- 277, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 124, 0, 0, 59, 60, 0,
+ 24, 25, 26, 27, 28, 29, 30, 0, 0, 0,
+ 31, 32, 33, 34, 35, 0, 36, 0, 0, 0,
+ 37, 38, 39, 40, 0, 41, 0, 42, 0, 43,
+ 0, 0, 44, 0, 0, 0, 45, 46, 47, 48,
+ 0, 50, 51, 0, 0, 52, 0, 0, 54, 0,
+ 0, 0, 0, 0, 57, 0, 58, 59, 60, 0,
0, 0, 0, 0, 0, 0, 0, 65, 66, 0,
67, 68, 69, 70, 71, 72, 5, 6, 7, 8,
9, 0, 73, 0, 0, 10, 122, 125, 75, 76,
- 77, 78, 0, 0, 0, 0, 81, 0, 82, 83,
- 0, 0, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 0, 0, 12, 13, 0, 0,
+ 77, 0, 78, 0, 79, 80, 0, 81, 0, 82,
+ 83, 0, 0, 0, 0, 808, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12, 13, 0, 0,
0, 0, 14, 0, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
- 0, 0, 0, 31, 32, 123, 34, 35, -452, -452,
- 0, 0, 0, 37, 261, 262, 263, 264, 265, 266,
+ 0, 0, 0, 31, 32, 123, 34, 35, 0, 0,
+ 0, 0, 0, 37, 0, 262, 263, 264, 265, 266,
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 0, 277, 48, 0, 0, 0, 0, 0, 0, 485,
+ 277, 278, 48, 279, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 124, 0, 0,
59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
65, 66, 0, 67, 68, 69, 70, 71, 72, 5,
6, 7, 8, 9, 0, 73, 0, 0, 10, 122,
- 125, 75, 76, 77, 78, 0, 187, 0, 0, 81,
- 0, 82, 83, 0, 0, 0, 0, 0, 0, 0,
+ 125, 75, 76, 77, 809, 78, 0, 0, 0, 0,
+ 81, 0, 82, 83, 0, 0, 0, 0, 157, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
13, 0, 0, 0, 0, 14, 0, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 0, 0, 0, 0, 31, 32, 123, 34,
- 35, 0, 0, 0, 0, 0, 37, -542, -542, -542,
- -542, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 0, 277, 48, 0, 0, 0, 0,
+ 35, 0, 0, 0, 0, 0, 37, 648, 649, 650,
+ 651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
+ 661, 662, 663, 664, 665, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124, 0, 0, 59, 60, 0, 0, 0, 0, 0,
0, 0, 0, 65, 66, 0, 67, 68, 69, 70,
71, 72, 5, 6, 7, 8, 9, 0, 73, 0,
- 0, 10, 122, 125, 75, 76, 77, 78, 0, 189,
- 0, 0, 81, 0, 82, 83, 0, 0, 0, 0,
+ 0, 10, 122, 125, 75, 76, 77, 0, 78, 0,
+ 0, 0, 0, 81, 0, 82, 83, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 12, 13, 0, 0, 0, 0, 14, 0,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 0, 0, 0, 0, 31,
32, 123, 34, 35, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 0, 279, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 124, 0, 0, 59, 60, 0, 0,
0, 0, 0, 0, 0, 0, 65, 66, 0, 67,
68, 69, 70, 71, 72, 5, 6, 7, 8, 9,
- 0, 73, 0, 0, 10, 11, 125, 75, 76, 77,
- 78, 0, 193, 0, 0, 81, 0, 82, 83, 0,
+ 0, 73, 0, 0, 10, 122, 125, 75, 76, 77,
+ 0, 78, 0, 187, 0, 0, 81, 0, 82, 83,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 12, 13, 0, 0, 0,
0, 14, 0, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
0, 0, 31, 32, 123, 34, 35, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 37, -587, -587, -587, -587, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 0,
+ 279, 48, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 124, 0, 0, 59,
60, 0, 0, 0, 0, 0, 0, 0, 0, 65,
66, 0, 67, 68, 69, 70, 71, 72, 5, 6,
7, 8, 9, 0, 73, 0, 0, 10, 122, 125,
- 75, 76, 77, 78, 322, 0, 0, 0, 81, 0,
- 82, 83, 0, 0, 0, 0, 0, 440, 0, 0,
+ 75, 76, 77, 0, 78, 0, 189, 0, 0, 81,
+ 0, 82, 83, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
0, 0, 0, 0, 14, 0, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 0, 0, 0, 0, 31, 32, 123, 34, 35,
- 0, 0, 0, 0, 0, 37, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 37, 649, 650, 651, 652,
+ 653, 654, 655, 656, 657, 658, 659, 660, 661, 662,
+ 663, 664, 665, 0, 48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 124,
0, 0, 59, 60, 0, 0, 0, 0, 0, 0,
0, 0, 65, 66, 0, 67, 68, 69, 70, 71,
72, 5, 6, 7, 8, 9, 0, 73, 0, 0,
- 10, 122, 125, 75, 76, 77, 78, 0, 0, 0,
- 0, 81, 0, 82, 83, 0, 0, 0, 0, 0,
- 466, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 11, 125, 75, 76, 77, 0, 78, 0, 193,
+ 0, 0, 81, 0, 82, 83, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 12, 13, 0, 0, 0, 0, 14, 0, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 0, 0, 0, 0, 31, 32,
- 123, 34, 35, 0, 0, 0, 0, 0, 37, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
+ 123, 34, 35, 0, 0, 0, 0, 0, 37, 650,
+ 651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
+ 661, 662, 663, 664, 665, 0, 0, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 124, 0, 0, 59, 60, 0, 0, 0,
0, 0, 0, 0, 0, 65, 66, 0, 67, 68,
69, 70, 71, 72, 5, 6, 7, 8, 9, 0,
- 73, 0, 0, 10, 122, 125, 75, 76, 77, 78,
- 0, 0, 0, 0, 81, 0, 82, 83, 0, 0,
- 0, 0, 0, 468, 0, 0, 0, 0, 0, 0,
+ 73, 0, 0, 10, 122, 125, 75, 76, 77, 0,
+ 78, 324, 0, 0, 0, 81, 0, 82, 83, 0,
+ 0, 0, 0, 450, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 0, 0, 0, 0,
14, 0, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
0, 31, 32, 123, 34, 35, 0, 0, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 37, -587, -587, -587, -587, 654, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 124, 0, 0, 59, 60,
0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
0, 67, 68, 69, 70, 71, 72, 5, 6, 7,
8, 9, 0, 73, 0, 0, 10, 122, 125, 75,
- 76, 77, 78, 0, 0, 0, 0, 81, 0, 82,
- 83, 0, 0, 0, 0, 0, 668, 0, 0, 0,
+ 76, 77, 0, 78, 0, 0, 0, 0, 81, 0,
+ 82, 83, 0, 0, 0, 0, 476, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 12, 13, 0,
0, 0, 0, 14, 0, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
@@ -1938,8 +1997,8 @@ static const yytype_int16 yytable[] =
0, 59, 60, 0, 0, 0, 0, 0, 0, 0,
0, 65, 66, 0, 67, 68, 69, 70, 71, 72,
5, 6, 7, 8, 9, 0, 73, 0, 0, 10,
- 122, 125, 75, 76, 77, 78, 0, 0, 0, 0,
- 81, 0, 82, 83, 0, 0, 0, 0, 0, 719,
+ 122, 125, 75, 76, 77, 0, 78, 0, 0, 0,
+ 0, 81, 0, 82, 83, 0, 0, 0, 0, 478,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12, 13, 0, 0, 0, 0, 14, 0, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
@@ -1951,9 +2010,9 @@ static const yytype_int16 yytable[] =
0, 124, 0, 0, 59, 60, 0, 0, 0, 0,
0, 0, 0, 0, 65, 66, 0, 67, 68, 69,
70, 71, 72, 5, 6, 7, 8, 9, 0, 73,
- 0, 0, 10, 122, 125, 75, 76, 77, 78, 0,
- 0, 0, 0, 81, 0, 82, 83, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 10, 122, 125, 75, 76, 77, 0, 78,
+ 0, 0, 0, 0, 81, 0, 82, 83, 0, 0,
+ 0, 0, 728, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 12, 13, 0, 0, 0, 0, 14,
0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
@@ -1964,9 +2023,9 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 124, 0, 0, 59, 60, 0,
0, 0, 0, 0, 0, 0, 0, 65, 66, 0,
67, 68, 69, 70, 71, 72, 5, 6, 7, 8,
- 9, 0, 73, 0, 0, 10, 11, 125, 75, 76,
- 77, 78, 0, 0, 0, 0, 81, 0, 82, 83,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 73, 0, 0, 10, 122, 125, 75, 76,
+ 77, 0, 78, 0, 0, 0, 0, 81, 0, 82,
+ 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 12, 13, 0, 0,
0, 0, 14, 0, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
@@ -1977,300 +2036,362 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 124, 0, 0,
59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
65, 66, 0, 67, 68, 69, 70, 71, 72, 5,
- 6, 7, 8, 9, 0, 73, 0, 0, 10, 122,
- 125, 75, 76, 77, 78, 0, 0, 0, 0, 81,
- 0, 82, 83, 0, 0, 0, 0, 0, 0, 0,
+ 6, 7, 8, 9, 0, 73, 0, 0, 10, 11,
+ 125, 75, 76, 77, 0, 78, 0, 0, 0, 0,
+ 81, 0, 82, 83, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
13, 0, 0, 0, 0, 14, 0, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 0, 0, 0, 0, 31, 32, 123, 375,
+ 28, 29, 0, 0, 0, 0, 31, 32, 123, 34,
35, 0, 0, 0, 0, 0, 37, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124, 0, 0, 59, 60, 0, 0, 0, 0, 0,
0, 0, 0, 65, 66, 0, 67, 68, 69, 70,
- 71, 72, 0, 0, 0, 0, 0, 0, 73, 252,
- 253, 254, 0, 125, 75, 76, 77, 78, 0, 0,
- 0, 0, 81, 0, 82, 83, 255, 0, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 0,
- 277, 252, 253, 254, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 71, 72, 5, 6, 7, 8, 9, 0, 73, 0,
+ 0, 10, 122, 125, 75, 76, 77, 0, 78, 0,
+ 0, 0, 0, 81, 0, 82, 83, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 12, 13, 0, 0, 0, 0, 14, 0,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 31,
+ 32, 123, 385, 35, 0, 0, 0, 0, 0, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 124, 0, 0, 59, 60, 0, 0,
+ 0, 0, 0, 0, 0, 0, 65, 66, 0, 67,
+ 68, 69, 70, 71, 72, 0, 0, 0, 0, 0,
+ 0, 73, 0, 254, 255, 256, 125, 75, 76, 77,
+ 0, 78, 0, 0, 0, 0, 81, 0, 82, 83,
+ 257, 0, 258, 259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 0, 277, 252, 253, 254, 0, 0, 0, 0,
+ 276, 277, 278, 0, 279, 254, 255, 256, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 255, 0, 256, 257, 258, 259, 260, 261, 262, 263,
+ 0, 0, 257, 0, 258, 259, 260, 261, 262, 263,
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 0, 277, 0, 0, 252, 253, 254,
+ 274, 275, 276, 277, 278, 0, 279, 254, 255, 256,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 255, 542, 256, 257, 258, 259,
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, 273, 274, 275, 276, 0, 277, 252,
- 253, 254, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 255, 582, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 0,
- 277, 252, 253, 254, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 616,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 0, 0, 0, 0, 257, 0, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 0, 279, 0,
+ 0, 0, 0, 0, 254, 255, 256, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 257, 799, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 0, 279, 254, 255, 256, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 553, 257, 0, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 0, 279, 254, 255,
+ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 565, 257, 0, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 276, 277, 278, 0, 279,
+ 0, 0, 0, 254, 255, 256, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 257, 606, 258, 259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 0, 277, 0, 0, 252, 253, 254, 0, 0,
+ 276, 277, 278, 0, 279, 0, 0, 254, 255, 256,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 255, 656, 256, 257, 258, 259, 260, 261,
+ 0, 0, 0, 674, 257, 848, 258, 259, 260, 261,
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 0, 277, 252, 253, 254,
+ 272, 273, 274, 275, 276, 277, 278, 0, 279, 254,
+ 255, 256, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 716, 257, 0, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 0,
+ 279, 0, 254, 255, 256, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 257,
+ 903, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 0, 279, 254, 255, 256, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 255, 811, 256, 257, 258, 259,
+ 0, 257, 849, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 0, 279, 254, 255, 256, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 257, 280, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 0, 279, 0, 254,
+ 255, 256, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 257, 340, 258, 259,
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, 273, 274, 275, 276, 0, 277, 252,
- 253, 254, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 338, 255, 0, 256, 257,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 0,
+ 279, 254, 255, 256, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 257, 341,
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 0,
- 277, 252, 253, 254, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 339,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 0, 277, 252, 253, 254, 0, 0, 0, 0,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 0, 279, 641, 642, 643, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 255, 345, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 0, 277, 0, 252, 253, 254, 0,
+ 644, 347, 645, 646, 647, 648, 649, 650, 651, 652,
+ 653, 654, 655, 656, 657, 658, 659, 660, 661, 662,
+ 663, 664, 665, 0, 0, 765, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 388, 255, 0, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 0, 277, 0, 0,
+ 0, 501, 502, 398, 0, 0, 0, 503, 0, 504,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 461, 252, 253, 254, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
+ 123, 0, 254, 255, 256, 0, 0, 0, 506, 0,
+ 0, 0, 0, 0, 0, 471, 0, 0, 0, 257,
+ 0, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 148, 279, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 759, 508, 68,
+ 69, 70, 71, 72, 254, 255, 256, 0, 0, 0,
+ 509, 0, 0, 0, 0, 510, 75, 76, 511, 0,
+ 512, 257, 0, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 0, 279, 254, 255, 256, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 305,
+ 0, 0, 0, 257, 0, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 0, 279, 501, 502,
+ 0, 0, 0, 0, 503, 0, 504, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 505, 0, 0,
+ 0, 0, 501, 502, 0, 31, 32, 123, 503, 0,
+ 504, 313, 0, 0, 0, 506, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 123, 0, 0, 0, 0, 0, 0, 0, 506,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
+ 0, 0, 0, 609, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 507, 0, 508, 68, 69, 70, 71,
+ 72, 0, 0, 148, 0, 0, 0, 509, 0, 0,
+ 0, 0, 510, 75, 76, 511, 0, 512, 0, 508,
+ 68, 69, 70, 71, 72, 254, 255, 256, 0, 0,
+ 0, 509, 0, 0, 0, 0, 510, 75, 76, 511,
+ 0, 512, 257, 720, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 0, 279, 254, 255, 256,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 303, 0, 255, 0, 256, 257, 258, 259, 260, 261,
+ 0, 0, 0, 0, 257, 0, 258, 259, 260, 261,
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 0, 277, 491, 492, 0,
+ 272, 273, 274, 275, 276, 277, 278, 0, 279, 255,
+ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 257, 0, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 276, 277, 278, 0, 279,
+ 641, 642, 643, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 644, 856, 645,
+ 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 641, 642, 643, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 644, 0, 645,
+ 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 257, 0, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 276, 277, 278, 0, 279,
+ 642, 643, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 644, 0, 645, 646,
+ 647, 648, 649, 650, 651, 652, 653, 654, 655, 656,
+ 657, 658, 659, 660, 661, 662, 663, 664, 665, 643,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 311, 0, 0, 493, 0, 252, 253,
- 254, 0, 0, 0, 31, 32, 123, 0, 0, 0,
- 0, 0, 0, 0, 494, 255, 660, 256, 257, 258,
+ 0, 0, 0, 0, 644, 0, 645, 646, 647, 648,
+ 649, 650, 651, 652, 653, 654, 655, 656, 657, 658,
+ 659, 660, 661, 662, 663, 664, 665, 257, 0, 258,
259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 0, 277,
- 0, 0, 0, 0, 0, 0, 0, 0, 148, 0,
- 0, 0, 585, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 495, 0, 496, 68, 69, 70, 71, 72,
- 252, 253, 254, 0, 0, 0, 497, 0, 0, 0,
- 0, 498, 75, 76, 499, 0, 0, 255, 0, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 0, 277, 253, 254, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
+ 0, 279, 258, 259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 254, 277, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 255, 0, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 0,
- 277, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 0, 277, 257, 258, 259, 260, 261, 262,
+ 276, 277, 278, 644, 279, 645, 646, 647, 648, 649,
+ 650, 651, 652, 653, 654, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 259, 260, 261, 262,
263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 0, 277, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 0, 277
+ 273, 274, 275, 276, 277, 278, 0, 279, 645, 646,
+ 647, 648, 649, 650, 651, 652, 653, 654, 655, 656,
+ 657, 658, 659, 660, 661, 662, 663, 664, 665, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 276, 277, 278, 0, 279,
+ 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 647, 648, 649, 650, 651, 652, 653, 654, 655, 656,
+ 657, 658, 659, 660, 661, 662, 663, 664, 665
};
static const yytype_int16 yycheck[] =
{
- 24, 25, 4, 126, 28, 24, 25, 4, 11, 28,
- 28, 475, 398, 618, 277, 29, 30, 593, 78, 251,
- 382, 596, 8, 466, 28, 468, 795, 8, 74, 53,
- 44, 11, 72, 8, 74, 246, 247, 8, 8, 27,
- 62, 8, 240, 648, 24, 25, 8, 50, 8, 62,
- 74, 8, 8, 77, 8, 57, 8, 72, 8, 706,
- 91, 8, 294, 8, 8, 8, 74, 79, 8, 8,
- 50, 62, 0, 72, 114, 307, 308, 146, 74, 146,
- 0, 150, 151, 150, 295, 317, 297, 319, 211, 27,
- 24, 25, 146, 28, 28, 293, 150, 143, 144, 145,
- 543, 146, 151, 99, 146, 150, 489, 147, 150, 151,
- 150, 27, 172, 74, 118, 175, 156, 152, 153, 150,
- 714, 120, 124, 9, 10, 11, 150, 60, 61, 151,
- 62, 143, 154, 157, 151, 150, 144, 145, 157, 163,
- 26, 154, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 154, 50, 153, 152, 171, 182, 555,
- 74, 152, 534, 942, 821, 199, 751, 157, 153, 154,
- 204, 184, 153, 153, 181, 204, 153, 385, 212, 72,
- 62, 153, 152, 212, 405, 156, 153, 153, 222, 153,
- 152, 225, 152, 222, 184, 152, 344, 152, 152, 152,
- 213, 214, 152, 152, 146, 809, 154, 600, 72, 602,
- 74, 91, 154, 157, 204, 668, 458, 32, 72, 72,
- 74, 62, 212, 213, 214, 74, 74, 72, 151, 74,
- 79, 32, 222, 475, 820, 839, 62, 251, 72, 713,
- 74, 62, 156, 277, 152, 153, 32, 643, 277, 277,
- 114, 151, 72, 151, 147, 72, 62, 150, 72, 74,
- 204, 157, 120, 277, 146, 120, 719, 151, 212, 151,
- 150, 305, 154, 74, 74, 120, 32, 151, 222, 79,
- 294, 315, 74, 147, 125, 72, 150, 79, 74, 151,
- 303, 62, 156, 307, 308, 144, 145, 150, 154, 572,
- 154, 154, 156, 317, 125, 319, 251, 341, 156, 154,
- 159, 156, 341, 303, 348, 32, 72, 324, 74, 125,
- 154, 355, 156, 151, 532, 395, 355, 147, 476, 725,
- 150, 64, 277, 277, 72, 369, 74, 74, 812, 72,
- 369, 74, 79, 143, 144, 145, 72, 251, 74, 294,
- 72, 966, 144, 145, 125, 563, 564, 74, 114, 94,
- 95, 151, 307, 308, 398, 146, 574, 575, 151, 150,
- 151, 127, 317, 153, 319, 72, 114, 62, 390, 369,
- 62, 114, 395, 390, 74, 32, 782, 62, 114, 79,
- 294, 147, 72, 146, 150, 94, 95, 146, 412, 62,
- 156, 127, 125, 307, 308, 395, 440, 144, 145, 147,
- 99, 440, 150, 50, 147, 157, 154, 150, 156, 150,
- 155, 147, 74, 156, 150, 369, 72, 79, 74, 75,
- 156, 150, 466, 146, 468, 831, 146, 466, 8, 468,
- 146, 72, 590, 150, 458, 666, 153, 154, 128, 129,
- 440, 67, 68, 143, 144, 145, 155, 491, 492, 493,
- 146, 475, 491, 492, 493, 499, 150, 147, 67, 68,
- 150, 713, 152, 150, 481, 341, 466, 125, 468, 153,
- 154, 515, 878, 27, 880, 151, 515, 24, 25, 355,
- 14, 712, 144, 145, 153, 153, 440, 128, 129, 67,
- 68, 69, 93, 94, 95, 93, 94, 95, 14, 543,
- 93, 94, 95, 458, 543, 549, 147, 551, 914, 150,
- 549, 555, 466, 152, 468, 515, 560, 154, 736, 155,
- 475, 219, 93, 94, 95, 223, 684, 152, 572, 67,
- 68, 69, 152, 572, 572, 158, 234, 943, 236, 237,
- 238, 82, 83, 543, 775, 46, 47, 48, 572, 50,
- 72, 595, 596, 597, 155, 589, 595, 596, 597, 151,
- 812, 515, 155, 72, 123, 609, 972, 611, 72, 62,
- 609, 27, 157, 617, 618, 806, 807, 83, 617, 623,
- 153, 8, 599, 91, 623, 72, 992, 72, 74, 543,
- 152, 72, 153, 62, 152, 595, 596, 641, 621, 643,
- 155, 14, 123, 151, 648, 43, 44, 45, 46, 47,
- 48, 157, 50, 157, 637, 491, 492, 572, 572, 151,
- 151, 621, 151, 623, 668, 14, 150, 157, 153, 668,
- 157, 151, 146, 677, 153, 72, 14, 637, 677, 151,
- 155, 595, 596, 109, 110, 111, 112, 113, 114, 693,
- 153, 695, 151, 155, 693, 151, 695, 152, 150, 124,
- 154, 151, 706, 72, 126, 8, 157, 706, 668, 623,
- 143, 829, 103, 549, 157, 719, 14, 677, 157, 155,
- 719, 725, 152, 154, 99, 729, 8, 8, 152, 713,
- 151, 849, 84, 851, 109, 110, 111, 112, 113, 114,
- 153, 153, 845, 861, 151, 126, 706, 751, 341, 743,
- 754, 869, 751, 14, 668, 754, 874, 153, 152, 719,
- 152, 597, 355, 677, 125, 151, 155, 744, 153, 152,
- 106, 14, 74, 62, 62, 157, 153, 125, 782, 90,
- 152, 617, 152, 126, 902, 153, 104, 72, 154, 151,
- 908, 751, 706, 157, 154, 14, 27, 69, 713, 803,
- 153, 157, 14, 154, 803, 719, 74, 72, 74, 14,
- 157, 157, 794, 27, 153, 933, 14, 821, 152, 154,
- 814, 72, 821, 14, 155, 74, 830, 831, 812, 155,
- 14, 830, 8, 69, 74, 155, 954, 751, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 854, 155, 91, 153, 91, 854, 100, 693, 976, 695,
- 107, 821, 106, 153, 982, 109, 110, 111, 112, 113,
- 114, 115, 146, 877, 878, 74, 880, 88, 877, 152,
- 155, 999, 72, 14, 60, 61, 863, 151, 892, 74,
- 153, 72, 72, 892, 8, 154, 152, 812, 491, 492,
- 493, 153, 155, 86, 74, 155, 103, 821, 154, 151,
- 914, 155, 990, 348, 152, 515, 643, 921, 754, 390,
- 155, 925, 921, 390, 867, 758, 925, 931, 729, 681,
- 353, 724, 931, 914, 776, 78, 733, 5, 6, 943,
- 8, 9, 10, 11, 12, 13, 14, 15, 768, 17,
- 18, 19, 20, 21, 22, 23, 549, 934, 26, 27,
- 609, 965, 966, 204, 837, 608, 965, 803, 972, 217,
- 38, -1, 623, 621, -1, -1, 152, 45, 46, -1,
- -1, -1, 50, -1, 52, -1, -1, 100, 992, -1,
- -1, -1, -1, 106, 830, -1, 109, 110, 111, 112,
- 113, 114, 115, -1, 597, -1, -1, -1, -1, -1,
- 78, -1, -1, -1, -1, -1, 609, -1, 854, -1,
- -1, -1, 8, -1, 617, -1, -1, -1, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- -1, 877, 155, -1, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 892, -1, -1, -1,
- -1, 129, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 140, -1, 60, 61, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 921, -1, -1, -1, 925,
- 60, 61, -1, -1, -1, 931, -1, -1, -1, -1,
- 693, -1, 695, -1, 172, -1, -1, 175, -1, -1,
- 178, 8, -1, -1, -1, 183, 184, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 965,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, -1, -1, -1, 213, 214, -1, -1, 217,
- -1, -1, -1, 221, -1, -1, -1, -1, -1, -1,
- -1, 754, -1, 60, 61, 233, 152, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 60, 61, 246, 247,
- -1, -1, 152, 153, -1, 253, -1, -1, -1, -1,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, -1,
- 803, -1, -1, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, -1, -1, 295, -1, 297,
- 298, -1, -1, -1, -1, 303, -1, 830, -1, -1,
- -1, -1, -1, 311, -1, 313, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 152, -1, -1, -1, 327,
- -1, 854, -1, -1, -1, -1, -1, -1, 152, 153,
+ 24, 25, 126, 242, 28, 253, 485, 29, 30, 28,
+ 4, 476, 279, 478, 617, 620, 392, 8, 499, 28,
+ 8, 676, 44, 8, 4, 8, 8, 27, 72, 53,
+ 27, 795, 8, 8, 62, 62, 803, 8, 8, 62,
+ 8, 8, 11, 8, 8, 62, 248, 249, 296, 8,
+ 74, 8, 707, 77, 8, 887, 295, 8, 62, 8,
+ 8, 309, 310, 57, 8, 8, 62, 74, 93, 94,
+ 95, 319, 146, 321, 346, 0, 150, 78, 91, 74,
+ 79, 50, 0, 91, 74, 74, 146, 146, 72, 213,
+ 150, 150, 152, 152, 152, 297, 146, 299, 125, 152,
+ 150, 566, 125, 147, 99, 152, 150, 5, 6, 118,
+ 8, 9, 10, 11, 12, 13, 14, 15, 146, 17,
+ 18, 19, 20, 21, 22, 23, 150, 155, 26, 27,
+ 124, 156, 62, 157, 901, 152, 120, 150, 155, 163,
+ 38, 74, 150, 624, 143, 626, 79, 45, 46, 913,
+ 157, 155, 50, 74, 52, 155, 395, 154, 72, 155,
+ 182, 72, 171, 154, 155, 932, 154, 157, 157, 154,
+ 153, 172, 154, 343, 175, 199, 200, 201, 154, 154,
+ 78, 557, 206, 154, 154, 62, 154, 154, 153, 153,
+ 214, 72, 32, 74, 153, 365, 153, 1029, 64, 153,
+ 224, 181, 153, 227, 153, 153, 72, 32, 74, 153,
+ 153, 144, 145, 415, 486, 184, 146, 72, 72, 72,
+ 468, 74, 152, 144, 145, 155, 62, 160, 72, 72,
+ 72, 129, 74, 114, 74, 840, 150, 485, 27, 150,
+ 91, 155, 140, 152, 253, 152, 215, 216, 114, 74,
+ 72, 62, 74, 72, 91, 279, 99, 100, 60, 61,
+ 279, 114, 72, 728, 74, 28, 147, 91, 91, 150,
+ 279, 72, 114, 74, 172, 72, 157, 175, 94, 95,
+ 178, 147, 120, 307, 150, 183, 184, 296, 120, 125,
+ 152, 157, 147, 317, 147, 150, 150, 150, 120, 150,
+ 309, 310, 155, 152, 157, 147, 150, 150, 150, 912,
+ 319, 152, 321, 150, 125, 157, 555, 215, 216, 343,
+ 72, 219, 152, 802, 348, 223, 150, 150, 352, 596,
+ 67, 68, 69, 155, 358, 157, 305, 235, 153, 154,
+ 156, 365, 614, 808, 152, 155, 326, 157, 587, 588,
+ 248, 249, 152, 74, 155, 379, 157, 255, 79, 598,
+ 599, 155, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 67, 68, 69, 408, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 1052, 154, 297,
+ 74, 299, 300, 573, 405, 79, 400, 305, 24, 25,
+ 153, 154, 28, 422, 72, 313, 74, 315, 67, 68,
+ 400, 72, 143, 144, 145, 904, 450, 72, 93, 94,
+ 95, 329, 62, 8, 146, 62, 405, 72, 150, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 621, 476, 62, 478, 32, 114, 94, 95, 468,
+ 24, 25, 360, 32, 28, 72, 67, 68, 74, 127,
+ 144, 145, 744, 79, 154, 155, 485, 501, 502, 503,
+ 504, 505, 93, 94, 95, 60, 61, 511, 512, 147,
+ 253, 156, 150, 128, 129, 72, 74, 74, 74, 157,
+ 524, 79, 146, 79, 528, 675, 150, 405, 152, 24,
+ 25, 491, 147, 408, 538, 150, 279, 415, 153, 156,
+ 418, 128, 129, 146, 726, 423, 146, 425, 62, 427,
+ 428, 429, 74, 296, 46, 47, 48, 114, 144, 145,
+ 147, 157, 566, 150, 221, 125, 309, 310, 225, 573,
+ 127, 575, 82, 83, 802, 579, 319, 150, 321, 236,
+ 584, 238, 239, 240, 99, 143, 144, 145, 144, 145,
+ 147, 150, 596, 150, 50, 154, 155, 596, 153, 72,
+ 157, 74, 75, 753, 150, 755, 825, 596, 146, 713,
+ 206, 613, 146, 157, 8, 619, 620, 621, 214, 801,
+ 150, 143, 144, 145, 150, 253, 158, 146, 224, 146,
+ 27, 635, 125, 637, 93, 94, 95, 641, 642, 643,
+ 644, 645, 646, 647, 648, 649, 650, 651, 652, 653,
+ 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 206, 623, 152, 154, 14, 154, 296, 921,
+ 214, 675, 676, 155, 552, 14, 904, 681, 153, 153,
+ 224, 309, 310, 279, 866, 153, 156, 159, 72, 567,
+ 942, 152, 944, 843, 72, 11, 700, 123, 702, 951,
+ 72, 62, 83, 707, 579, 27, 158, 959, 24, 25,
+ 154, 8, 964, 72, 592, 91, 898, 899, 43, 44,
+ 45, 46, 47, 48, 728, 468, 72, 74, 153, 153,
+ 679, 609, 154, 737, 50, 279, 62, 72, 990, 617,
+ 618, 156, 485, 99, 996, 14, 123, 696, 158, 753,
+ 158, 755, 152, 109, 110, 111, 112, 113, 114, 152,
+ 152, 765, 152, 158, 100, 46, 47, 48, 1020, 50,
+ 106, 158, 922, 109, 110, 111, 112, 113, 114, 115,
+ 14, 154, 150, 379, 154, 152, 146, 156, 1040, 72,
+ 72, 795, 72, 43, 44, 45, 46, 47, 48, 343,
+ 50, 679, 14, 152, 808, 156, 124, 150, 152, 154,
+ 1062, 815, 152, 802, 155, 819, 1068, 967, 696, 153,
+ 156, 365, 152, 72, 126, 158, 158, 702, 8, 143,
+ 832, 981, 103, 1085, 938, 379, 840, 72, 14, 843,
+ 72, 157, 109, 110, 111, 112, 113, 114, 726, 727,
+ 158, 156, 856, 596, 450, 153, 155, 8, 153, 1009,
+ 8, 152, 154, 1013, 84, 154, 152, 126, 184, 14,
+ 874, 749, 156, 833, 152, 154, 153, 153, 125, 154,
+ 476, 153, 478, 106, 62, 151, 125, 62, 158, 154,
+ 206, 153, 153, 90, 154, 126, 104, 155, 214, 215,
+ 216, 1051, 72, 158, 906, 74, 450, 152, 224, 913,
+ 27, 155, 886, 69, 154, 904, 158, 155, 922, 797,
+ 924, 14, 74, 801, 14, 72, 27, 154, 158, 158,
+ 155, 809, 476, 14, 478, 153, 72, 14, 8, 156,
+ 815, 74, 538, 821, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 156, 501, 502, 503,
+ 504, 505, 69, 967, 968, 74, 970, 156, 512, 100,
+ 566, 91, 156, 154, 146, 106, 91, 981, 109, 110,
+ 111, 112, 113, 114, 115, 107, 154, 74, 866, 305,
+ 60, 61, 88, 953, 538, 153, 156, 72, 1002, 874,
+ 596, 14, 152, 74, 72, 1009, 72, 8, 154, 1013,
+ 86, 155, 153, 156, 154, 103, 74, 156, 152, 156,
+ 898, 899, 566, 619, 620, 156, 1030, 153, 343, 573,
+ 155, 358, 528, 524, 912, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 1051, 1052, 924,
+ 365, 1076, 596, 538, 1058, 702, 741, 957, 400, 802,
+ 847, 1021, 400, 379, 819, 814, 1002, 363, 78, 867,
+ 859, 822, 635, 634, 1078, 619, 620, 621, 206, 930,
+ 681, 60, 61, 153, 219, 681, 679, -1, -1, 405,
+ -1, 635, -1, 968, -1, 970, -1, 641, 642, 643,
+ 644, 645, 646, 647, 648, 649, 650, 651, 652, 653,
+ 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, -1, -1, -1, -1, -1, 1002, -1, -1,
+ -1, 675, 728, -1, 450, -1, -1, 681, -1, -1,
+ -1, 737, -1, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 1030, 50, -1, -1, -1,
+ 476, 904, 478, 8, -1, -1, -1, -1, -1, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, -1, -1, 1058, 728, -1, 501, 502, 503, 504,
+ 505, -1, -1, 737, -1, -1, -1, 512, -1, 795,
+ -1, -1, -1, 1078, -1, -1, -1, -1, -1, 753,
+ -1, 755, 808, -1, -1, 60, 61, -1, -1, -1,
+ -1, 765, 538, -1, -1, -1, -1, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
+ -1, -1, -1, -1, 840, 501, 502, 503, 504, -1,
+ 566, 795, -1, -1, -1, -1, 512, -1, 573, -1,
+ -1, -1, -1, -1, 808, -1, -1, -1, -1, -1,
+ -1, -1, -1, 60, 61, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 840, -1, -1, 843,
+ -1, -1, -1, 619, 620, -1, 621, -1, 153, -1,
+ -1, -1, 856, -1, -1, -1, -1, 913, -1, -1,
+ 635, 60, 61, -1, -1, -1, 641, 642, 643, 644,
+ 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
+ 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
+ 665, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 675, -1, -1, 679, -1, 681, 153, 154, -1, 913,
+ -1, -1, -1, -1, -1, -1, -1, -1, 922, -1,
+ 696, -1, -1, -1, -1, 641, 642, 643, 644, 645,
+ 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ -1, -1, 728, -1, 153, 154, -1, -1, -1, -1,
+ -1, 737, -1, 967, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, 981, 753, -1,
+ 755, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 765, -1, -1, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 1009, -1, -1, -1, 1013,
+ 60, 61, -1, -1, -1, -1, -1, -1, -1, 795,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 350, 50, 877, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 892,
- -1, -1, 26, -1, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, -1, 50, 395, 921, -1,
- -1, -1, 925, -1, -1, -1, -1, 405, 931, -1,
- 408, -1, -1, -1, -1, 413, -1, 415, -1, 417,
- 418, 419, -1, -1, 9, 10, 11, 3, 4, 5,
- 6, 7, -1, -1, -1, -1, 12, 13, -1, -1,
- -1, 26, 965, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, -1, 50, -1, 43, 44, -1,
- -1, -1, -1, 49, -1, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, -1, -1, -1, 70, 71, 72, 73, 74, -1,
- 76, 155, -1, -1, 80, 81, 82, 83, -1, 85,
- -1, 87, -1, 89, -1, -1, 92, -1, -1, -1,
- 96, 97, 98, 99, 100, 101, 102, -1, -1, 105,
- 106, 529, 108, -1, -1, -1, 112, 113, 114, -1,
- 116, 117, 118, 119, 120, 121, 122, -1, -1, -1,
- -1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
- -1, -1, -1, -1, -1, -1, 142, -1, 153, -1,
- 568, 147, 148, 149, 150, 151, -1, 153, 154, -1,
- 156, -1, 158, 159, -1, -1, -1, 585, -1, -1,
- -1, -1, -1, -1, -1, 593, 594, 26, -1, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 47, 48, 808, -1, 3, 4, 5, 6, 7, 60,
+ 61, 91, -1, 12, 13, -1, -1, 1051, -1, 765,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 32, 840, -1, -1, -1, 843, -1,
+ -1, -1, -1, -1, 43, 44, -1, -1, -1, -1,
+ 49, 856, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
+ -1, 70, 71, 72, 73, 74, -1, -1, -1, -1,
+ -1, 80, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- -1, 50, -1, 621, 9, 10, 11, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 637,
- -1, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, -1, 50, -1, -1, 666, 667,
- -1, -1, -1, 60, 61, -1, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
- -1, 689, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
- 708, 12, 13, -1, 712, -1, -1, -1, -1, -1,
- -1, -1, 60, 61, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 732, -1, -1, -1, -1, -1,
- -1, -1, 43, 44, -1, -1, -1, -1, 49, -1,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 153, -1, 153, 70,
- 71, 72, 73, 74, -1, 76, -1, 775, -1, 80,
- 81, 82, 83, -1, 85, -1, 87, -1, 89, -1,
- -1, 92, -1, -1, -1, 96, 97, 98, 99, -1,
- 101, 102, -1, -1, 105, -1, -1, 108, 806, 807,
- -1, 112, 113, 114, 152, 116, 117, 118, 119, 120,
- 121, 122, 820, -1, -1, -1, 127, 128, -1, 130,
- 131, 132, 133, 134, 135, 3, 4, 5, 6, 7,
- -1, 142, -1, -1, 12, 13, 147, 148, 149, 150,
- 151, -1, 153, 154, -1, 156, -1, 158, 159, 27,
- -1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 43, 44, -1, -1, -1,
+ 99, 50, -1, 154, -1, -1, -1, 913, -1, -1,
+ 856, -1, -1, -1, -1, 114, -1, 922, 117, 118,
+ -1, -1, -1, -1, -1, -1, -1, -1, 127, 128,
+ -1, 130, 131, 132, 133, 134, 135, -1, -1, -1,
+ -1, -1, -1, 142, -1, -1, -1, -1, 147, 148,
+ 149, 150, 151, 152, 153, -1, -1, -1, 157, -1,
+ 159, 160, 967, -1, -1, 3, 4, 5, 6, 7,
+ -1, -1, -1, -1, 12, 13, 981, -1, -1, -1,
+ -1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1009, 43, 44, -1, 1013, -1,
-1, 49, -1, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, -1,
- -1, -1, 70, 71, 72, 73, 74, -1, 76, 60,
- 61, -1, 80, 81, 82, 83, -1, 85, -1, 87,
+ 60, 61, 70, 71, 72, 73, 74, -1, 76, -1,
+ -1, -1, 80, 81, 82, 83, 1051, 85, -1, 87,
-1, 89, -1, -1, 92, -1, -1, -1, 96, 97,
- 98, 99, -1, 101, 102, -1, -1, 105, -1, -1,
- 108, -1, -1, -1, -1, -1, 114, -1, 116, 117,
- 118, -1, -1, -1, -1, -1, -1, -1, -1, 127,
+ 98, 99, 100, 101, 102, -1, -1, 105, 106, -1,
+ 108, -1, -1, -1, 112, 113, 114, -1, 116, 117,
+ 118, 119, 120, 121, 122, -1, -1, -1, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 3, 4,
5, 6, 7, -1, 142, -1, -1, 12, 13, 147,
- 148, 149, 150, 151, -1, 153, 154, -1, 156, -1,
- 158, 159, 27, -1, -1, -1, -1, -1, -1, -1,
+ 148, 149, 150, -1, 152, -1, 154, 155, -1, 157,
+ -1, 159, 160, 153, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
-1, -1, -1, -1, 49, -1, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
@@ -2278,25 +2399,30 @@ static const yytype_int16 yycheck[] =
-1, 76, -1, -1, -1, 80, 81, 82, 83, -1,
85, -1, 87, -1, 89, -1, -1, 92, -1, -1,
-1, 96, 97, 98, 99, -1, 101, 102, -1, -1,
- 105, -1, -1, 108, -1, -1, -1, -1, -1, 114,
- -1, 116, 117, 118, -1, -1, -1, -1, -1, -1,
+ 105, -1, -1, 108, -1, -1, -1, 112, 113, 114,
+ -1, 116, 117, 118, 119, 120, 121, 122, -1, -1,
-1, -1, 127, 128, -1, 130, 131, 132, 133, 134,
- 135, 3, 4, 5, 6, 7, -1, 142, -1, -1,
- 12, 13, 147, 148, 149, 150, 151, -1, 153, 154,
- -1, 156, -1, 158, 159, 27, -1, -1, -1, -1,
+ 135, -1, -1, -1, -1, -1, -1, 142, -1, -1,
+ -1, -1, 147, 148, 149, 150, -1, 152, -1, 154,
+ 155, -1, 157, -1, 159, 160, 3, 4, 5, 6,
+ 7, -1, -1, -1, -1, 12, 13, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 43, 44, -1, -1, -1, -1, 49, -1, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, -1, -1, -1, 70, 71,
- 72, 73, 74, -1, 76, -1, -1, -1, 80, 81,
- 82, 83, -1, 85, -1, 87, -1, 89, -1, -1,
- 92, -1, -1, -1, 96, 97, 98, 99, -1, 101,
- 102, -1, -1, 105, -1, -1, 108, -1, -1, -1,
- -1, -1, 114, -1, 116, 117, 118, -1, -1, -1,
- -1, -1, -1, -1, -1, 127, 128, -1, 130, 131,
- 132, 133, 134, 135, 3, 4, 5, 6, 7, -1,
- 142, -1, -1, 12, 13, 147, 148, 149, 150, 151,
- -1, 153, 154, -1, 156, -1, 158, 159, 27, -1,
+ 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 43, 44, -1, -1,
+ -1, -1, 49, -1, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ -1, -1, -1, 70, 71, 72, 73, 74, -1, 76,
+ -1, -1, -1, 80, 81, 82, 83, -1, 85, -1,
+ 87, -1, 89, -1, -1, 92, -1, -1, -1, 96,
+ 97, 98, 99, -1, 101, 102, -1, -1, 105, -1,
+ -1, 108, -1, -1, -1, -1, -1, 114, -1, 116,
+ 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
+ 127, 128, -1, 130, 131, 132, 133, 134, 135, -1,
+ -1, -1, -1, -1, -1, 142, -1, -1, -1, -1,
+ 147, 148, 149, 150, -1, 152, -1, 154, 155, -1,
+ 157, -1, 159, 160, 3, 4, 5, 6, 7, -1,
+ -1, -1, -1, 12, 13, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 27, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 43, 44, -1, -1, -1, -1,
49, -1, 51, 52, 53, 54, 55, 56, 57, 58,
@@ -2307,143 +2433,148 @@ static const yytype_int16 yycheck[] =
99, -1, 101, 102, -1, -1, 105, -1, -1, 108,
-1, -1, -1, -1, -1, 114, -1, 116, 117, 118,
-1, -1, -1, -1, -1, -1, -1, -1, 127, 128,
- -1, 130, 131, 132, 133, 134, 135, 3, 4, 5,
- 6, 7, -1, 142, -1, -1, 12, 13, 147, 148,
- 149, 150, 151, -1, 153, 154, -1, 156, -1, 158,
- 159, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
- -1, -1, -1, 49, -1, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, -1, -1, -1, 70, 71, 72, 73, 74, -1,
- 76, -1, -1, -1, 80, 81, 82, 83, -1, 85,
- -1, 87, -1, 89, -1, -1, 92, -1, -1, -1,
- 96, 97, 98, 99, -1, 101, 102, -1, -1, 105,
- -1, -1, 108, -1, -1, -1, -1, -1, 114, -1,
- 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
- -1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
- 3, 4, 5, 6, 7, -1, 142, -1, -1, 12,
- 13, 147, 148, 149, 150, 151, -1, 153, 154, -1,
- 156, -1, 158, 159, -1, -1, -1, -1, -1, 32,
+ -1, 130, 131, 132, 133, 134, 135, -1, -1, -1,
+ -1, -1, -1, 142, -1, -1, -1, -1, 147, 148,
+ 149, 150, -1, 152, -1, 154, 155, -1, 157, -1,
+ 159, 160, 3, 4, 5, 6, 7, -1, -1, -1,
+ -1, 12, 13, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 43, 44, -1, -1, -1, -1, 49, -1,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, -1, -1, -1, 70,
+ 71, 72, 73, 74, -1, 76, -1, -1, -1, 80,
+ 81, 82, 83, -1, 85, -1, 87, -1, 89, -1,
+ -1, 92, -1, -1, -1, 96, 97, 98, 99, -1,
+ 101, 102, -1, -1, 105, -1, -1, 108, -1, -1,
+ -1, -1, -1, 114, -1, 116, 117, 118, -1, -1,
+ -1, -1, -1, -1, -1, -1, 127, 128, -1, 130,
+ 131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
+ -1, 142, -1, -1, -1, -1, 147, 148, 149, 150,
+ -1, 152, -1, 154, 155, -1, 157, -1, 159, 160,
+ 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
+ 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 27, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
43, 44, -1, -1, -1, -1, 49, -1, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, -1, -1, -1, -1, -1, 80, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 99, 50, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 114, -1, -1, 117, 118, -1, -1, -1, -1,
+ 63, 64, 65, 66, -1, -1, -1, 70, 71, 72,
+ 73, 74, -1, 76, -1, -1, -1, 80, 81, 82,
+ 83, -1, 85, -1, 87, -1, 89, -1, -1, 92,
+ -1, -1, -1, 96, 97, 98, 99, -1, 101, 102,
+ -1, -1, 105, -1, -1, 108, -1, -1, -1, -1,
+ -1, 114, -1, 116, 117, 118, -1, -1, -1, -1,
-1, -1, -1, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 3, 4, 5, 6, 7, -1, 142,
- -1, -1, 12, 13, 147, 148, 149, 150, 151, 152,
- -1, -1, -1, 156, -1, 158, 159, -1, -1, -1,
- -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, 13, 147, 148, 149, 150, -1, 152,
+ -1, 154, 155, -1, 157, -1, 159, 160, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 43, 44, -1, -1, -1, -1, 49,
-1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
- 70, 71, 72, 73, 74, -1, -1, -1, -1, -1,
- 80, -1, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 99,
- 50, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 114, -1, -1, 117, 118, -1,
+ 60, 61, 62, 63, 64, 65, 66, -1, -1, -1,
+ 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
+ 80, 81, 82, 83, -1, 85, -1, 87, -1, 89,
+ -1, -1, 92, -1, -1, -1, 96, 97, 98, 99,
+ -1, 101, 102, -1, -1, 105, -1, -1, 108, -1,
+ -1, -1, -1, -1, 114, -1, 116, 117, 118, -1,
-1, -1, -1, -1, -1, -1, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 3, 4, 5, 6,
7, -1, 142, -1, -1, 12, 13, 147, 148, 149,
- 150, 151, -1, -1, -1, -1, 156, -1, 158, 159,
- -1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, -1, -1, 43, 44, -1, -1,
+ 150, -1, 152, -1, 154, 155, -1, 157, -1, 159,
+ 160, -1, -1, -1, -1, 32, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 43, 44, -1, -1,
-1, -1, 49, -1, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 60, 61,
- -1, -1, -1, 80, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- -1, 50, 99, -1, -1, -1, -1, -1, -1, 91,
+ -1, -1, -1, 70, 71, 72, 73, 74, -1, -1,
+ -1, -1, -1, 80, -1, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 99, 50, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 114, -1, -1,
117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 3,
4, 5, 6, 7, -1, 142, -1, -1, 12, 13,
- 147, 148, 149, 150, 151, -1, 153, -1, -1, 156,
- -1, 158, 159, -1, -1, -1, -1, -1, -1, -1,
+ 147, 148, 149, 150, 151, 152, -1, -1, -1, -1,
+ 157, -1, 159, 160, -1, -1, -1, -1, 32, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
44, -1, -1, -1, -1, 49, -1, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, -1, -1, -1, -1, 70, 71, 72, 73,
- 74, -1, -1, -1, -1, -1, 80, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, -1, 50, 99, -1, -1, -1, -1,
+ 74, -1, -1, -1, -1, -1, 80, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 99, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
114, -1, -1, 117, 118, -1, -1, -1, -1, -1,
-1, -1, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 3, 4, 5, 6, 7, -1, 142, -1,
- -1, 12, 13, 147, 148, 149, 150, 151, -1, 153,
- -1, -1, 156, -1, 158, 159, -1, -1, -1, -1,
+ -1, 12, 13, 147, 148, 149, 150, -1, 152, -1,
+ -1, -1, -1, 157, -1, 159, 160, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 43, 44, -1, -1, -1, -1, 49, -1,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, -1, -1, -1, -1, 70,
71, 72, 73, 74, -1, -1, -1, -1, -1, 80,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 99, -1,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, -1, 50, 99, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 114, -1, -1, 117, 118, -1, -1,
-1, -1, -1, -1, -1, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 3, 4, 5, 6, 7,
-1, 142, -1, -1, 12, 13, 147, 148, 149, 150,
- 151, -1, 153, -1, -1, 156, -1, 158, 159, -1,
+ -1, 152, -1, 154, -1, -1, 157, -1, 159, 160,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 43, 44, -1, -1, -1,
-1, 49, -1, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
-1, -1, 70, 71, 72, 73, 74, -1, -1, -1,
- -1, -1, 80, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 80, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
+ 50, 99, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 114, -1, -1, 117,
118, -1, -1, -1, -1, -1, -1, -1, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 3, 4,
5, 6, 7, -1, 142, -1, -1, 12, 13, 147,
- 148, 149, 150, 151, 152, -1, -1, -1, 156, -1,
- 158, 159, -1, -1, -1, -1, -1, 32, -1, -1,
+ 148, 149, 150, -1, 152, -1, 154, -1, -1, 157,
+ -1, 159, 160, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
-1, -1, -1, -1, 49, -1, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, -1, -1, -1, -1, 70, 71, 72, 73, 74,
- -1, -1, -1, -1, -1, 80, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 99, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 80, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, -1, 99, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 114,
-1, -1, 117, 118, -1, -1, -1, -1, -1, -1,
-1, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 3, 4, 5, 6, 7, -1, 142, -1, -1,
- 12, 13, 147, 148, 149, 150, 151, -1, -1, -1,
- -1, 156, -1, 158, 159, -1, -1, -1, -1, -1,
- 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 12, 13, 147, 148, 149, 150, -1, 152, -1, 154,
+ -1, -1, 157, -1, 159, 160, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 43, 44, -1, -1, -1, -1, 49, -1, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, -1, -1, -1, -1, -1, 80, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 99, -1, -1,
+ 72, 73, 74, -1, -1, -1, -1, -1, 80, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, -1, -1, 99, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 114, -1, -1, 117, 118, -1, -1, -1,
-1, -1, -1, -1, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 3, 4, 5, 6, 7, -1,
- 142, -1, -1, 12, 13, 147, 148, 149, 150, 151,
- -1, -1, -1, -1, 156, -1, 158, 159, -1, -1,
+ 142, -1, -1, 12, 13, 147, 148, 149, 150, -1,
+ 152, 153, -1, -1, -1, 157, -1, 159, 160, -1,
-1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 43, 44, -1, -1, -1, -1,
49, -1, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
-1, 70, 71, 72, 73, 74, -1, -1, -1, -1,
- -1, 80, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 80, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, -1, -1,
99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 114, -1, -1, 117, 118,
-1, -1, -1, -1, -1, -1, -1, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 3, 4, 5,
6, 7, -1, 142, -1, -1, 12, 13, 147, 148,
- 149, 150, 151, -1, -1, -1, -1, 156, -1, 158,
- 159, -1, -1, -1, -1, -1, 32, -1, -1, -1,
+ 149, 150, -1, 152, -1, -1, -1, -1, 157, -1,
+ 159, 160, -1, -1, -1, -1, 32, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
-1, -1, -1, 49, -1, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
@@ -2455,8 +2586,8 @@ static const yytype_int16 yycheck[] =
-1, 117, 118, -1, -1, -1, -1, -1, -1, -1,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
3, 4, 5, 6, 7, -1, 142, -1, -1, 12,
- 13, 147, 148, 149, 150, 151, -1, -1, -1, -1,
- 156, -1, 158, 159, -1, -1, -1, -1, -1, 32,
+ 13, 147, 148, 149, 150, -1, 152, -1, -1, -1,
+ -1, 157, -1, 159, 160, -1, -1, -1, -1, 32,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
43, 44, -1, -1, -1, -1, 49, -1, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
@@ -2468,9 +2599,9 @@ static const yytype_int16 yycheck[] =
-1, 114, -1, -1, 117, 118, -1, -1, -1, -1,
-1, -1, -1, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 3, 4, 5, 6, 7, -1, 142,
- -1, -1, 12, 13, 147, 148, 149, 150, 151, -1,
- -1, -1, -1, 156, -1, 158, 159, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, 13, 147, 148, 149, 150, -1, 152,
+ -1, -1, -1, -1, 157, -1, 159, 160, -1, -1,
+ -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 43, 44, -1, -1, -1, -1, 49,
-1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
@@ -2482,8 +2613,8 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 3, 4, 5, 6,
7, -1, 142, -1, -1, 12, 13, 147, 148, 149,
- 150, 151, -1, -1, -1, -1, 156, -1, 158, 159,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 150, -1, 152, -1, -1, -1, -1, 157, -1, 159,
+ 160, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 43, 44, -1, -1,
-1, -1, 49, -1, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
@@ -2495,8 +2626,8 @@ static const yytype_int16 yycheck[] =
117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 3,
4, 5, 6, 7, -1, 142, -1, -1, 12, 13,
- 147, 148, 149, 150, 151, -1, -1, -1, -1, 156,
- -1, 158, 159, -1, -1, -1, -1, -1, -1, -1,
+ 147, 148, 149, 150, -1, 152, -1, -1, -1, -1,
+ 157, -1, 159, 160, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
44, -1, -1, -1, -1, 49, -1, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
@@ -2507,199 +2638,280 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
114, -1, -1, 117, 118, -1, -1, -1, -1, -1,
-1, -1, -1, 127, 128, -1, 130, 131, 132, 133,
- 134, 135, -1, -1, -1, -1, -1, -1, 142, 9,
- 10, 11, -1, 147, 148, 149, 150, 151, -1, -1,
- -1, -1, 156, -1, 158, 159, 26, -1, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
- 50, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, -1,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, -1, 50, 9, 10, 11, -1, -1, -1, -1,
+ 134, 135, 3, 4, 5, 6, 7, -1, 142, -1,
+ -1, 12, 13, 147, 148, 149, 150, -1, 152, -1,
+ -1, -1, -1, 157, -1, 159, 160, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 43, 44, -1, -1, -1, -1, 49, -1,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, -1, -1, -1, -1, 70,
+ 71, 72, 73, 74, -1, -1, -1, -1, -1, 80,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 99, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 114, -1, -1, 117, 118, -1, -1,
+ -1, -1, -1, -1, -1, -1, 127, 128, -1, 130,
+ 131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
+ -1, 142, -1, 9, 10, 11, 147, 148, 149, 150,
+ -1, 152, -1, -1, -1, -1, 157, -1, 159, 160,
26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, -1, 50, 9, 10, 11, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 26, -1, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, -1, 50, 9, 10, 11,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 26, -1, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, -1, 50, -1,
+ -1, -1, -1, -1, 9, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 26, 158, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, -1, 50, 9, 10, 11, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 156, 26, -1, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, -1, 50, 9, 10,
+ 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 156, 26, -1, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, -1, 50,
+ -1, -1, -1, 9, 10, 11, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 26, 156, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, -1, 50, -1, -1, 9, 10, 11,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 26, 155, 28, 29, 30, 31,
+ -1, -1, -1, 156, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, -1, 50, 9,
10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 26, 155, 28, 29,
+ -1, -1, -1, -1, -1, 156, 26, -1, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
- 50, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, 155,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, -1, 50, -1, -1, 9, 10, 11, -1, -1,
+ 50, -1, 9, 10, 11, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
+ 156, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, -1, 50, 9, 10, 11, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 26, 155, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, -1, 50, 9, 10, 11,
+ -1, 26, 154, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, -1, 50, 9, 10, 11, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 26, 155, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, -1, 50, 9,
+ -1, -1, -1, 26, 154, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, -1, 50, -1, 9,
10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 153, 26, -1, 28, 29,
+ -1, -1, -1, -1, -1, -1, 26, 154, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
50, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, 153,
+ -1, -1, -1, -1, -1, -1, -1, -1, 26, 154,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, -1, 50, 9, 10, 11, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 26, 153, 28, 29, 30, 31, 32, 33, 34, 35,
+ 26, 154, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, -1, 50, -1, 9, 10, 11, -1,
+ 46, 47, 48, -1, -1, 27, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 152, 26, -1, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, -1, 50, -1, -1,
+ -1, 43, 44, 153, -1, -1, -1, 49, -1, 51,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 152, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 126, -1, 26, -1, 28, 29, 30, 31, 32, 33,
+ -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
+ 72, -1, 9, 10, 11, -1, -1, -1, 80, -1,
+ -1, -1, -1, -1, -1, 153, -1, -1, -1, 26,
+ -1, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 114, 50, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 153, 130, 131,
+ 132, 133, 134, 135, 9, 10, 11, -1, -1, -1,
+ 142, -1, -1, -1, -1, 147, 148, 149, 150, -1,
+ 152, 26, -1, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, -1, 50, 9, 10, 11, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
+ -1, -1, -1, 26, -1, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, -1, 50, 43, 44,
+ -1, -1, -1, -1, 49, -1, 51, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 62, -1, -1,
+ -1, -1, 43, 44, -1, 70, 71, 72, 49, -1,
+ 51, 126, -1, -1, -1, 80, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
+ 71, 72, -1, -1, -1, -1, -1, -1, -1, 80,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 114,
+ -1, -1, -1, 126, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 128, -1, 130, 131, 132, 133, 134,
+ 135, -1, -1, 114, -1, -1, -1, 142, -1, -1,
+ -1, -1, 147, 148, 149, 150, -1, 152, -1, 130,
+ 131, 132, 133, 134, 135, 9, 10, 11, -1, -1,
+ -1, 142, -1, -1, -1, -1, 147, 148, 149, 150,
+ -1, 152, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, -1, 50, 43, 44, -1,
+ 44, 45, 46, 47, 48, -1, 50, 9, 10, 11,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 126, -1, -1, 62, -1, 9, 10,
- 11, -1, -1, -1, 70, 71, 72, -1, -1, -1,
- -1, -1, -1, -1, 80, 26, 27, 28, 29, 30,
+ -1, -1, -1, -1, 26, -1, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, -1, 50, 10,
+ 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, -1, 50,
- -1, -1, -1, -1, -1, -1, -1, -1, 114, -1,
- -1, -1, 126, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 128, -1, 130, 131, 132, 133, 134, 135,
- 9, 10, 11, -1, -1, -1, 142, -1, -1, -1,
- -1, 147, 148, 149, 150, -1, -1, 26, -1, 28,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- -1, 50, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, -1,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 11, 50, -1, -1, -1, -1, -1, -1, -1,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, -1, 50,
+ 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 26, -1, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
- 50, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, -1, 50, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, -1, 50, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, -1, 50
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 11,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 26, -1, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 26, -1, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ -1, 50, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 26, 50, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, -1, 50, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, -1, 50,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 161, 162, 0, 163, 3, 4, 5, 6, 7,
+ 0, 162, 163, 0, 164, 3, 4, 5, 6, 7,
12, 13, 43, 44, 49, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 70, 71, 72, 73, 74, 76, 80, 81, 82,
83, 85, 87, 89, 92, 96, 97, 98, 99, 100,
101, 102, 105, 106, 108, 112, 113, 114, 116, 117,
118, 119, 120, 121, 122, 127, 128, 130, 131, 132,
- 133, 134, 135, 142, 147, 148, 149, 150, 151, 153,
- 154, 156, 158, 159, 164, 165, 170, 174, 175, 209,
- 210, 212, 214, 217, 219, 283, 285, 299, 300, 301,
- 302, 305, 314, 325, 328, 332, 333, 334, 336, 337,
- 347, 348, 349, 350, 352, 353, 354, 355, 361, 371,
- 375, 377, 13, 72, 114, 147, 302, 332, 332, 151,
- 332, 332, 332, 285, 332, 337, 332, 332, 332, 332,
- 296, 332, 332, 332, 332, 332, 332, 332, 114, 147,
- 150, 164, 314, 336, 337, 349, 336, 32, 332, 365,
- 366, 332, 147, 150, 164, 314, 316, 317, 349, 353,
- 354, 361, 151, 322, 333, 151, 333, 27, 62, 273,
- 332, 182, 180, 151, 151, 192, 333, 153, 332, 153,
- 332, 72, 72, 153, 285, 332, 337, 193, 332, 150,
- 164, 168, 169, 74, 156, 247, 248, 120, 120, 74,
- 249, 302, 151, 151, 151, 151, 151, 151, 74, 79,
- 143, 144, 145, 367, 368, 150, 154, 164, 164, 283,
- 299, 332, 171, 154, 79, 323, 367, 79, 367, 150,
- 306, 8, 153, 72, 72, 153, 62, 62, 32, 211,
- 351, 146, 9, 10, 11, 26, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 50, 153, 60,
- 61, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 313, 146, 62, 125, 62, 154, 156,
- 354, 211, 332, 126, 332, 150, 164, 146, 146, 335,
- 337, 126, 157, 8, 330, 150, 164, 146, 284, 146,
- 125, 354, 152, 27, 176, 332, 356, 8, 153, 174,
- 333, 274, 275, 332, 285, 337, 151, 187, 153, 153,
- 153, 14, 153, 153, 154, 153, 164, 91, 8, 153,
- 154, 334, 337, 8, 153, 14, 8, 153, 211, 207,
- 208, 337, 285, 337, 372, 374, 285, 337, 152, 286,
- 365, 62, 125, 143, 368, 73, 332, 337, 79, 143,
- 368, 164, 167, 153, 154, 308, 152, 152, 152, 155,
- 172, 332, 158, 159, 72, 151, 245, 72, 123, 218,
- 216, 356, 356, 72, 297, 62, 72, 120, 154, 347,
- 354, 360, 361, 290, 332, 291, 27, 293, 288, 289,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 316,
- 32, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 245, 72, 347, 360, 356, 338, 356,
- 332, 152, 285, 337, 164, 72, 32, 332, 32, 332,
- 164, 347, 245, 324, 347, 318, 178, 174, 157, 332,
- 83, 181, 153, 8, 91, 91, 72, 229, 27, 154,
- 230, 43, 44, 62, 80, 128, 130, 142, 147, 150,
- 164, 314, 325, 326, 327, 376, 171, 91, 72, 169,
- 332, 248, 326, 74, 298, 8, 152, 8, 152, 152,
- 152, 153, 127, 337, 362, 363, 152, 369, 72, 62,
- 155, 155, 307, 162, 166, 245, 292, 119, 173, 174,
- 209, 210, 155, 32, 152, 246, 285, 299, 337, 14,
- 147, 150, 164, 315, 215, 123, 220, 157, 157, 213,
- 151, 356, 332, 310, 309, 354, 332, 332, 295, 332,
- 332, 332, 64, 337, 312, 311, 157, 347, 357, 359,
- 360, 157, 155, 335, 335, 126, 357, 171, 177, 183,
- 27, 174, 235, 184, 276, 190, 188, 14, 8, 152,
- 153, 231, 153, 231, 326, 326, 326, 329, 331, 151,
- 79, 150, 164, 146, 155, 72, 155, 14, 151, 208,
- 153, 373, 151, 8, 152, 72, 74, 75, 370, 332,
- 245, 155, 162, 281, 282, 151, 335, 8, 152, 152,
- 326, 150, 164, 124, 221, 222, 315, 154, 151, 128,
- 129, 242, 243, 244, 315, 157, 155, 245, 245, 332,
- 27, 316, 245, 245, 358, 339, 62, 154, 32, 332,
- 319, 179, 236, 333, 171, 274, 332, 32, 127, 224,
- 337, 224, 326, 72, 27, 174, 228, 231, 93, 94,
- 95, 231, 155, 126, 157, 8, 330, 329, 164, 72,
- 120, 103, 195, 326, 242, 374, 364, 363, 14, 157,
- 157, 155, 62, 125, 277, 278, 279, 341, 152, 32,
- 285, 337, 164, 222, 154, 8, 250, 242, 152, 8,
- 32, 74, 294, 287, 343, 344, 345, 346, 356, 332,
- 335, 320, 238, 67, 68, 240, 153, 84, 153, 337,
- 151, 126, 223, 223, 14, 171, 93, 153, 332, 27,
- 153, 234, 155, 326, 326, 152, 151, 194, 152, 362,
- 332, 155, 356, 357, 341, 62, 280, 153, 335, 250,
- 315, 100, 106, 109, 110, 111, 112, 113, 114, 115,
- 155, 251, 254, 267, 268, 269, 270, 272, 152, 106,
- 303, 244, 74, 14, 332, 324, 62, 62, 245, 340,
- 157, 155, 125, 321, 67, 68, 241, 333, 174, 153,
- 185, 225, 224, 152, 152, 326, 90, 153, 234, 233,
- 126, 196, 104, 200, 303, 152, 157, 342, 356, 277,
- 155, 72, 255, 315, 252, 302, 270, 8, 153, 154,
- 151, 154, 32, 74, 14, 326, 356, 356, 341, 357,
- 333, 27, 69, 237, 274, 362, 191, 189, 153, 232,
- 171, 326, 315, 201, 154, 346, 157, 14, 8, 153,
- 154, 256, 74, 271, 211, 72, 171, 32, 74, 304,
- 171, 74, 14, 326, 157, 157, 27, 171, 153, 174,
- 152, 152, 27, 174, 227, 227, 171, 197, 154, 171,
- 326, 315, 72, 257, 258, 259, 260, 262, 263, 264,
- 315, 14, 8, 153, 72, 14, 155, 74, 8, 152,
- 155, 14, 326, 239, 186, 171, 74, 171, 155, 155,
- 259, 153, 91, 107, 153, 146, 326, 74, 253, 326,
- 32, 74, 326, 171, 27, 174, 226, 88, 152, 155,
- 265, 270, 261, 315, 72, 14, 151, 74, 171, 153,
- 198, 72, 8, 326, 242, 86, 154, 315, 152, 153,
- 171, 153, 154, 266, 155, 171, 199, 155, 103, 202,
- 203, 204, 151, 204, 315, 205, 74, 152, 206, 154,
- 171, 155
+ 133, 134, 135, 142, 147, 148, 149, 150, 152, 154,
+ 155, 157, 159, 160, 165, 166, 175, 179, 180, 214,
+ 215, 218, 220, 223, 225, 290, 292, 306, 307, 308,
+ 309, 312, 321, 332, 337, 341, 342, 343, 345, 346,
+ 356, 357, 358, 359, 361, 362, 363, 364, 370, 380,
+ 384, 386, 13, 72, 114, 147, 309, 341, 341, 152,
+ 341, 341, 341, 292, 341, 346, 341, 341, 341, 341,
+ 303, 341, 341, 341, 341, 341, 341, 341, 114, 147,
+ 150, 165, 321, 345, 346, 358, 345, 32, 341, 374,
+ 375, 341, 147, 150, 165, 321, 323, 324, 358, 362,
+ 363, 370, 152, 329, 342, 152, 342, 27, 62, 280,
+ 341, 187, 185, 152, 152, 197, 342, 154, 341, 154,
+ 341, 72, 72, 154, 292, 341, 346, 198, 341, 99,
+ 100, 150, 165, 169, 170, 74, 157, 254, 255, 120,
+ 120, 74, 256, 309, 152, 152, 152, 152, 152, 152,
+ 74, 79, 143, 144, 145, 376, 377, 150, 155, 165,
+ 165, 290, 306, 341, 176, 155, 79, 330, 376, 79,
+ 376, 150, 313, 8, 154, 72, 72, 154, 62, 62,
+ 32, 216, 360, 146, 9, 10, 11, 26, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 50,
+ 154, 60, 61, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 320, 146, 62, 125, 62,
+ 155, 157, 363, 216, 341, 126, 341, 150, 165, 146,
+ 146, 344, 346, 126, 158, 8, 339, 150, 165, 146,
+ 291, 146, 125, 363, 153, 27, 181, 341, 365, 8,
+ 154, 179, 342, 281, 282, 341, 292, 346, 152, 192,
+ 154, 154, 154, 14, 154, 154, 155, 154, 150, 165,
+ 171, 172, 150, 165, 173, 174, 165, 91, 8, 154,
+ 155, 343, 346, 8, 154, 14, 8, 154, 216, 212,
+ 213, 346, 292, 346, 381, 383, 292, 346, 153, 293,
+ 374, 62, 125, 143, 377, 73, 341, 346, 79, 143,
+ 377, 165, 168, 154, 155, 315, 153, 153, 153, 156,
+ 177, 341, 159, 160, 72, 152, 252, 72, 123, 224,
+ 222, 365, 365, 72, 304, 62, 72, 120, 155, 356,
+ 363, 369, 370, 297, 341, 298, 27, 300, 295, 296,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 323,
+ 32, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 252, 72, 356, 369, 365, 347, 365,
+ 341, 153, 292, 346, 165, 72, 32, 341, 32, 341,
+ 165, 356, 252, 331, 356, 325, 183, 179, 158, 341,
+ 83, 186, 154, 8, 91, 91, 72, 235, 27, 155,
+ 236, 43, 44, 49, 51, 62, 80, 128, 130, 142,
+ 147, 150, 152, 165, 321, 332, 333, 334, 335, 336,
+ 385, 176, 165, 91, 8, 154, 165, 91, 8, 154,
+ 91, 72, 170, 341, 255, 334, 74, 305, 8, 153,
+ 8, 153, 153, 153, 154, 127, 346, 371, 372, 153,
+ 378, 72, 62, 156, 156, 314, 163, 167, 252, 299,
+ 119, 178, 179, 214, 215, 156, 32, 151, 153, 253,
+ 292, 306, 346, 14, 147, 150, 165, 322, 221, 123,
+ 226, 158, 158, 219, 152, 365, 341, 317, 316, 363,
+ 341, 341, 302, 341, 341, 341, 64, 346, 319, 318,
+ 158, 356, 366, 368, 369, 158, 156, 344, 344, 126,
+ 366, 176, 182, 188, 27, 179, 241, 189, 283, 195,
+ 193, 14, 8, 153, 154, 237, 154, 237, 335, 335,
+ 335, 335, 334, 338, 340, 152, 79, 150, 165, 335,
+ 146, 9, 10, 11, 26, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 156, 91, 72, 172,
+ 91, 72, 174, 72, 156, 14, 152, 213, 154, 382,
+ 152, 8, 153, 72, 74, 75, 379, 341, 252, 156,
+ 163, 288, 289, 152, 344, 341, 8, 153, 153, 334,
+ 150, 165, 124, 227, 228, 322, 155, 152, 128, 129,
+ 248, 249, 250, 251, 322, 158, 156, 252, 252, 341,
+ 27, 323, 252, 252, 367, 348, 62, 155, 32, 341,
+ 326, 184, 242, 342, 176, 281, 341, 32, 127, 230,
+ 346, 230, 334, 72, 27, 179, 234, 237, 93, 94,
+ 95, 237, 156, 126, 158, 8, 339, 338, 165, 153,
+ 72, 120, 335, 335, 335, 27, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 103, 200,
+ 72, 72, 334, 248, 383, 373, 372, 14, 158, 158,
+ 156, 62, 125, 284, 285, 286, 350, 153, 32, 151,
+ 292, 346, 165, 228, 155, 8, 257, 248, 153, 8,
+ 216, 301, 294, 352, 353, 354, 355, 365, 341, 344,
+ 327, 244, 67, 68, 246, 154, 84, 154, 346, 152,
+ 126, 229, 229, 14, 176, 93, 154, 341, 27, 154,
+ 240, 156, 334, 334, 153, 335, 27, 152, 199, 153,
+ 371, 341, 156, 365, 366, 350, 62, 287, 154, 344,
+ 341, 257, 322, 100, 106, 109, 110, 111, 112, 113,
+ 114, 115, 156, 258, 261, 274, 275, 276, 277, 279,
+ 153, 106, 310, 250, 151, 217, 341, 331, 62, 62,
+ 252, 349, 158, 156, 125, 328, 67, 68, 247, 342,
+ 179, 154, 190, 231, 230, 153, 153, 334, 90, 154,
+ 240, 239, 126, 335, 201, 104, 205, 310, 153, 158,
+ 351, 365, 284, 156, 72, 262, 322, 259, 309, 277,
+ 8, 154, 155, 152, 155, 74, 365, 365, 350, 366,
+ 342, 27, 69, 243, 281, 371, 196, 194, 154, 238,
+ 176, 334, 322, 206, 155, 355, 158, 14, 8, 154,
+ 155, 263, 74, 278, 216, 72, 176, 32, 74, 311,
+ 176, 14, 158, 158, 27, 176, 154, 179, 153, 153,
+ 27, 179, 233, 233, 176, 202, 155, 176, 334, 322,
+ 72, 264, 265, 266, 267, 269, 270, 271, 322, 14,
+ 8, 154, 72, 14, 156, 74, 8, 153, 156, 334,
+ 245, 191, 176, 74, 176, 156, 156, 266, 154, 91,
+ 107, 154, 146, 334, 74, 260, 334, 32, 74, 176,
+ 27, 179, 232, 88, 153, 156, 272, 277, 268, 322,
+ 72, 14, 152, 74, 176, 154, 203, 72, 8, 334,
+ 248, 86, 155, 322, 153, 154, 176, 154, 155, 273,
+ 156, 176, 204, 156, 103, 207, 208, 209, 152, 209,
+ 322, 210, 74, 153, 211, 155, 176, 156
};
#define yyerrok (yyerrstatus = 0)
@@ -3589,2349 +3801,2544 @@ yyreduce:
{ zend_verify_namespace(TSRMLS_C); }
break;
- case 21:
+ case 19:
+
+ { zend_verify_namespace(TSRMLS_C); }
+ break;
+
+ case 20:
+
+ { zend_verify_namespace(TSRMLS_C); }
+ break;
+
+ case 23:
{ zend_do_use(&(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
break;
- case 22:
+ case 24:
{ zend_do_use(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 23:
+ case 25:
{ zend_do_use(&(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
- case 24:
+ case 26:
{ zend_do_use(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
- case 25:
+ case 29:
+
+ { zend_do_use_function(&(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
+ break;
+
+ case 30:
+
+ { zend_do_use_function(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
+ break;
+
+ case 31:
+
+ { zend_do_use_function(&(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
+ break;
+
+ case 32:
+
+ { zend_do_use_function(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
+ break;
+
+ case 35:
+
+ { zend_do_use_const(&(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
+ break;
+
+ case 36:
+
+ { zend_do_use_const(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
+ break;
+
+ case 37:
+
+ { zend_do_use_const(&(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
+ break;
+
+ case 38:
+
+ { zend_do_use_const(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
+ break;
+
+ case 39:
{ zend_do_declare_constant(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 26:
+ case 40:
{ zend_do_declare_constant(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 27:
+ case 41:
{ zend_do_extended_info(TSRMLS_C); }
break;
- case 28:
+ case 42:
{ HANDLE_INTERACTIVE(); }
break;
- case 33:
+ case 47:
- { zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); }
+ { zend_error_noreturn(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); }
break;
- case 34:
+ case 48:
{ DO_TICKS(); }
break;
- case 35:
+ case 49:
{ zend_do_label(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 37:
+ case 51:
{ zend_do_if_cond(&(yyvsp[(2) - (2)]), &(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 38:
+ case 52:
{ zend_do_if_after_statement(&(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
- case 39:
+ case 53:
{ zend_do_if_end(TSRMLS_C); }
break;
- case 40:
+ case 54:
{ zend_do_if_cond(&(yyvsp[(2) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 41:
+ case 55:
{ zend_do_if_after_statement(&(yyvsp[(1) - (5)]), 1 TSRMLS_CC); }
break;
- case 42:
+ case 56:
{ zend_do_if_end(TSRMLS_C); }
break;
- case 43:
+ case 57:
{ (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
- case 44:
+ case 58:
{ zend_do_while_cond(&(yyvsp[(3) - (3)]), &(yyval) TSRMLS_CC); }
break;
- case 45:
+ case 59:
{ zend_do_while_end(&(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 46:
+ case 60:
{ (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); }
break;
- case 47:
+ case 61:
{ (yyvsp[(4) - (4)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
- case 48:
+ case 62:
{ zend_do_do_while_end(&(yyvsp[(1) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(6) - (7)]) TSRMLS_CC); }
break;
- case 49:
+ case 63:
{ zend_do_free(&(yyvsp[(3) - (4)]) TSRMLS_CC); (yyvsp[(4) - (4)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
- case 50:
+ case 64:
{ zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&(yyvsp[(6) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
- case 51:
+ case 65:
{ zend_do_free(&(yyvsp[(9) - (10)]) TSRMLS_CC); zend_do_for_before_statement(&(yyvsp[(4) - (10)]), &(yyvsp[(7) - (10)]) TSRMLS_CC); }
break;
- case 52:
+ case 66:
{ zend_do_for_end(&(yyvsp[(7) - (12)]) TSRMLS_CC); }
break;
- case 53:
+ case 67:
{ zend_do_switch_cond(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 54:
+ case 68:
{ zend_do_switch_end(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 55:
+ case 69:
{ zend_do_brk_cont(ZEND_BRK, NULL TSRMLS_CC); }
break;
- case 56:
+ case 70:
{ zend_do_brk_cont(ZEND_BRK, &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 57:
+ case 71:
{ zend_do_brk_cont(ZEND_CONT, NULL TSRMLS_CC); }
break;
- case 58:
+ case 72:
{ zend_do_brk_cont(ZEND_CONT, &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 59:
+ case 73:
{ zend_do_return(NULL, 0 TSRMLS_CC); }
break;
- case 60:
+ case 74:
{ zend_do_return(&(yyvsp[(2) - (3)]), 0 TSRMLS_CC); }
break;
- case 61:
+ case 75:
{ zend_do_return(&(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
- case 62:
+ case 76:
{ zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 66:
+ case 80:
{ zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 67:
+ case 81:
{ zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 69:
+ case 83:
{ zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
- case 70:
+ case 84:
{ zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
- case 71:
+ case 85:
{ zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
- case 72:
+ case 86:
{ zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
break;
- case 73:
+ case 87:
{ zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
- case 74:
+ case 88:
{ zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
- case 75:
+ case 89:
{ (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
break;
- case 76:
+ case 90:
{ zend_do_declare_end(&(yyvsp[(1) - (6)]) TSRMLS_CC); }
break;
- case 78:
+ case 92:
{ zend_do_try(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 79:
+ case 93:
{ zend_do_bind_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(6) - (6)]) TSRMLS_CC); }
break;
- case 80:
+ case 94:
{ zend_do_end_finally(&(yyvsp[(1) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(8) - (8)]) TSRMLS_CC); }
break;
- case 81:
+ case 95:
{ zend_do_throw(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 82:
+ case 96:
{ zend_do_goto(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 83:
+ case 97:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 84:
+ case 98:
{ zend_initialize_try_catch_element(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 85:
+ case 99:
{ zend_do_first_catch(&(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 86:
+ case 100:
{ zend_do_begin_catch(&(yyvsp[(1) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(6) - (7)]), &(yyvsp[(2) - (7)]) TSRMLS_CC); }
break;
- case 87:
+ case 101:
{ zend_do_end_catch(&(yyvsp[(1) - (11)]) TSRMLS_CC); }
break;
- case 88:
+ case 102:
{ zend_do_mark_last_catch(&(yyvsp[(2) - (13)]), &(yyvsp[(13) - (13)]) TSRMLS_CC); (yyval) = (yyvsp[(1) - (13)]);}
break;
- case 89:
+ case 103:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 90:
+ case 104:
{ zend_do_finally(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 91:
+ case 105:
{ (yyval) = (yyvsp[(1) - (5)]); }
break;
- case 92:
+ case 106:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 93:
+ case 107:
{ (yyval).u.op.opline_num = -1; }
break;
- case 94:
+ case 108:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 95:
+ case 109:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 96:
+ case 110:
{ (yyval).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
- case 97:
+ case 111:
{ zend_do_begin_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(5) - (6)]), NULL TSRMLS_CC); }
break;
- case 98:
+ case 112:
{ zend_do_end_catch(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
break;
- case 101:
+ case 115:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 102:
+ case 116:
{ DO_TICKS(); }
break;
- case 103:
+ case 117:
{ DO_TICKS(); }
break;
- case 104:
+ case 118:
- { (yyval).op_type = ZEND_RETURN_VAL; }
+ { (yyval).op_type = 0; }
break;
- case 105:
+ case 119:
- { (yyval).op_type = ZEND_RETURN_REF; }
+ { (yyval).op_type = 1; }
break;
- case 106:
+ case 120:
+
+ { (yyval).op_type = 0; }
+ break;
+
+ case 121:
+
+ { (yyval).op_type = 1; }
+ break;
+
+ case 122:
{ zend_do_begin_function_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0, (yyvsp[(2) - (3)]).op_type, NULL TSRMLS_CC); }
break;
- case 107:
+ case 123:
{ zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
break;
- case 108:
+ case 124:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 109:
+ case 125:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (8)]), &(yyvsp[(3) - (8)]) TSRMLS_CC); }
break;
- case 110:
+ case 126:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), NULL TSRMLS_CC); }
break;
- case 111:
+ case 127:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (7)]), NULL TSRMLS_CC); }
break;
- case 112:
+ case 128:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = 0; }
break;
- case 113:
+ case 129:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
break;
- case 114:
+ case 130:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_TRAIT; }
break;
- case 115:
+ case 131:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_FINAL_CLASS; }
break;
- case 116:
+ case 132:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 117:
+ case 133:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 118:
+ case 134:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_INTERFACE; }
break;
- case 123:
+ case 139:
{ zend_do_implements_interface(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 124:
+ case 140:
{ zend_do_implements_interface(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 125:
+ case 141:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 126:
+ case 142:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 127:
+ case 143:
{ zend_check_writable_variable(&(yyvsp[(1) - (1)])); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 128:
+ case 144:
{ zend_check_writable_variable(&(yyvsp[(2) - (2)])); (yyval) = (yyvsp[(2) - (2)]); (yyval).EA |= ZEND_PARSED_REFERENCE_VARIABLE; }
break;
- case 129:
+ case 145:
{ zend_do_list_init(TSRMLS_C); }
break;
- case 130:
+ case 146:
{ (yyval) = (yyvsp[(1) - (5)]); (yyval).EA = ZEND_PARSED_LIST_EXPR; }
break;
- case 137:
+ case 153:
{ zend_do_declare_stmt(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 138:
+ case 154:
{ zend_do_declare_stmt(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 139:
+ case 155:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 140:
+ case 156:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 141:
+ case 157:
{ (yyval) = (yyvsp[(2) - (4)]); }
break;
- case 142:
+ case 158:
{ (yyval) = (yyvsp[(3) - (5)]); }
break;
- case 143:
+ case 159:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 144:
+ case 160:
{ zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 145:
+ case 161:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (6)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 146:
+ case 162:
{ zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 147:
+ case 163:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (5)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 153:
+ case 169:
{ zend_do_if_cond(&(yyvsp[(3) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 154:
+ case 170:
{ zend_do_if_after_statement(&(yyvsp[(2) - (5)]), 0 TSRMLS_CC); }
break;
- case 156:
+ case 172:
{ zend_do_if_cond(&(yyvsp[(3) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 157:
+ case 173:
{ zend_do_if_after_statement(&(yyvsp[(2) - (6)]), 0 TSRMLS_CC); }
break;
- case 164:
-
- { (yyval).op_type = IS_UNUSED; (yyval).u.op.num=1; zend_do_receive_arg(ZEND_RECV, &(yyvsp[(2) - (2)]), &(yyval), NULL, &(yyvsp[(1) - (2)]), 0 TSRMLS_CC); }
- break;
-
- case 165:
-
- { (yyval).op_type = IS_UNUSED; (yyval).u.op.num=1; zend_do_receive_arg(ZEND_RECV, &(yyvsp[(3) - (3)]), &(yyval), NULL, &(yyvsp[(1) - (3)]), 1 TSRMLS_CC); }
- break;
-
- case 166:
-
- { (yyval).op_type = IS_UNUSED; (yyval).u.op.num=1; zend_do_receive_arg(ZEND_RECV_INIT, &(yyvsp[(3) - (5)]), &(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(1) - (5)]), 1 TSRMLS_CC); }
- break;
-
- case 167:
-
- { (yyval).op_type = IS_UNUSED; (yyval).u.op.num=1; zend_do_receive_arg(ZEND_RECV_INIT, &(yyvsp[(2) - (4)]), &(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 0 TSRMLS_CC); }
- break;
-
- case 168:
-
- { (yyval)=(yyvsp[(1) - (4)]); (yyval).u.op.num++; zend_do_receive_arg(ZEND_RECV, &(yyvsp[(4) - (4)]), &(yyval), NULL, &(yyvsp[(3) - (4)]), 0 TSRMLS_CC); }
- break;
-
- case 169:
-
- { (yyval)=(yyvsp[(1) - (5)]); (yyval).u.op.num++; zend_do_receive_arg(ZEND_RECV, &(yyvsp[(5) - (5)]), &(yyval), NULL, &(yyvsp[(3) - (5)]), 1 TSRMLS_CC); }
- break;
-
- case 170:
+ case 182:
- { (yyval)=(yyvsp[(1) - (7)]); (yyval).u.op.num++; zend_do_receive_arg(ZEND_RECV_INIT, &(yyvsp[(5) - (7)]), &(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(3) - (7)]), 1 TSRMLS_CC); }
+ { zend_do_receive_param(ZEND_RECV, &(yyvsp[(4) - (4)]), NULL, &(yyvsp[(1) - (4)]), (yyvsp[(2) - (4)]).op_type, (yyvsp[(3) - (4)]).op_type TSRMLS_CC); }
break;
- case 171:
+ case 183:
- { (yyval)=(yyvsp[(1) - (6)]); (yyval).u.op.num++; zend_do_receive_arg(ZEND_RECV_INIT, &(yyvsp[(4) - (6)]), &(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 0 TSRMLS_CC); }
+ { zend_do_receive_param(ZEND_RECV_INIT, &(yyvsp[(4) - (6)]), &(yyvsp[(6) - (6)]), &(yyvsp[(1) - (6)]), (yyvsp[(2) - (6)]).op_type, (yyvsp[(3) - (6)]).op_type TSRMLS_CC); }
break;
- case 172:
+ case 184:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 173:
+ case 185:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant)=IS_ARRAY; }
break;
- case 174:
+ case 186:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant)=IS_CALLABLE; }
break;
- case 175:
+ case 187:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 176:
+ case 188:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 177:
+ case 189:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 178:
+ case 190:
{ Z_LVAL((yyval).u.constant) = 1; zend_do_pass_param(&(yyvsp[(2) - (3)]), ZEND_SEND_VAL, Z_LVAL((yyval).u.constant) TSRMLS_CC); }
break;
- case 179:
+ case 191:
{ 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 180:
+ case 192:
{ 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 181:
+ case 193:
{ 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 182:
+ case 194:
+
+ { Z_LVAL((yyval).u.constant) = 0; zend_do_unpack_params(&(yyvsp[(2) - (2)]), Z_LVAL((yyval).u.constant) TSRMLS_CC); }
+ break;
+
+ case 195:
{ 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 183:
+ case 196:
{ 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 184:
+ case 197:
{ 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 185:
+ case 198:
+
+ { Z_LVAL((yyval).u.constant)=Z_LVAL((yyvsp[(1) - (4)]).u.constant); zend_do_unpack_params(&(yyvsp[(4) - (4)]), Z_LVAL((yyval).u.constant) TSRMLS_CC); }
+ break;
+
+ case 199:
{ zend_do_fetch_global_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 186:
+ case 200:
{ zend_do_fetch_global_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 187:
+ case 201:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 188:
+ case 202:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 189:
+ case 203:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 190:
+ case 204:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 191:
+ case 205:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 192:
+ case 206:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 193:
+ case 207:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 196:
+ case 210:
{ CG(access_type) = Z_LVAL((yyvsp[(1) - (1)]).u.constant); }
break;
- case 200:
+ case 214:
{ zend_do_begin_function_declaration(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]), 1, (yyvsp[(3) - (4)]).op_type, &(yyvsp[(1) - (4)]) TSRMLS_CC); }
break;
- case 201:
+ case 215:
{ zend_do_abstract_method(&(yyvsp[(4) - (9)]), &(yyvsp[(1) - (9)]), &(yyvsp[(9) - (9)]) TSRMLS_CC); zend_do_end_function_declaration(&(yyvsp[(2) - (9)]) TSRMLS_CC); }
break;
- case 203:
+ case 217:
{ zend_do_use_trait(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 204:
+ case 218:
{ zend_do_use_trait(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 213:
+ case 227:
{ zend_add_trait_precedence(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 214:
+ case 228:
- { zend_resolve_class_name(&(yyvsp[(1) - (1)]), ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC); zend_init_list(&(yyval).u.op.ptr, Z_STRVAL((yyvsp[(1) - (1)]).u.constant) TSRMLS_CC); }
+ { zend_resolve_class_name(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_init_list(&(yyval).u.op.ptr, Z_STRVAL((yyvsp[(1) - (1)]).u.constant) TSRMLS_CC); }
break;
- case 215:
+ case 229:
- { zend_resolve_class_name(&(yyvsp[(3) - (3)]), ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC); zend_add_to_list(&(yyvsp[(1) - (3)]).u.op.ptr, Z_STRVAL((yyvsp[(3) - (3)]).u.constant) TSRMLS_CC); (yyval) = (yyvsp[(1) - (3)]); }
+ { zend_resolve_class_name(&(yyvsp[(3) - (3)]) TSRMLS_CC); zend_add_to_list(&(yyvsp[(1) - (3)]).u.op.ptr, Z_STRVAL((yyvsp[(3) - (3)]).u.constant) TSRMLS_CC); (yyval) = (yyvsp[(1) - (3)]); }
break;
- case 216:
+ case 230:
{ zend_prepare_reference(&(yyval), NULL, &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 217:
+ case 231:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 218:
+ case 232:
{ zend_prepare_reference(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 219:
+ case 233:
{ zend_add_trait_alias(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 220:
+ case 234:
{ zend_add_trait_alias(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), NULL TSRMLS_CC); }
break;
- case 221:
+ case 235:
{ Z_LVAL((yyval).u.constant) = 0x0; }
break;
- case 222:
+ case 236:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 223:
+ case 237:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 224:
+ case 238:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 225:
+ case 239:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 226:
+ case 240:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 227:
+ case 241:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 228:
+ case 242:
{ (yyval) = (yyvsp[(1) - (1)]); if (!(Z_LVAL((yyval).u.constant) & ZEND_ACC_PPP_MASK)) { Z_LVAL((yyval).u.constant) |= ZEND_ACC_PUBLIC; } }
break;
- case 229:
+ case 243:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 230:
+ case 244:
{ Z_LVAL((yyval).u.constant) = zend_do_verify_access_types(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); }
break;
- case 231:
+ case 245:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 232:
+ case 246:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PROTECTED; }
break;
- case 233:
+ case 247:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PRIVATE; }
break;
- case 234:
+ case 248:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_STATIC; }
break;
- case 235:
+ case 249:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 236:
+ case 250:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_FINAL; }
break;
- case 237:
+ case 251:
{ zend_do_declare_property(&(yyvsp[(3) - (3)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 238:
+ case 252:
{ zend_do_declare_property(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), CG(access_type) TSRMLS_CC); }
break;
- case 239:
+ case 253:
{ zend_do_declare_property(&(yyvsp[(1) - (1)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 240:
+ case 254:
{ zend_do_declare_property(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), CG(access_type) TSRMLS_CC); }
break;
- case 241:
+ case 255:
{ zend_do_declare_class_constant(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 242:
+ case 256:
{ zend_do_declare_class_constant(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 243:
+ case 257:
{ zend_do_echo(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 244:
+ case 258:
{ zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 245:
+ case 259:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant) = IS_BOOL; Z_LVAL((yyval).u.constant) = 1; }
break;
- case 246:
+ case 260:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 247:
+ case 261:
{ zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 248:
+ case 262:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 249:
+ case 263:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 250:
+ case 264:
{ (yyval).EA = (yyvsp[(2) - (2)]).EA; }
break;
- case 251:
+ case 265:
{ (yyval).EA = (yyvsp[(1) - (1)]).EA; }
break;
- case 252:
+ case 266:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 253:
+ case 267:
{ zend_do_pop_object(&(yyvsp[(1) - (3)]) TSRMLS_CC); fetch_array_dim(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 254:
+ case 268:
{ zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 255:
+ case 269:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 256:
+ case 270:
{ zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 257:
+ case 271:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 258:
+ case 272:
{ (yyval) = (yyvsp[(0) - (0)]); }
break;
- case 259:
+ case 273:
{ zend_do_push_object(&(yyvsp[(0) - (0)]) TSRMLS_CC); zend_do_begin_variable_parse(TSRMLS_C); }
break;
- case 260:
+ case 274:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 261:
+ case 275:
{ zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 262:
+ case 276:
{ zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 263:
+ case 277:
{ zend_do_list_init(TSRMLS_C); }
break;
- case 264:
+ case 278:
{ zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
- case 265:
+ case 279:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 266:
+ case 280:
{ zend_check_writable_variable(&(yyvsp[(1) - (4)])); zend_do_end_variable_parse(&(yyvsp[(4) - (4)]), BP_VAR_W, 1 TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(1) - (4)]), BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 267:
+ case 281:
{ zend_error(E_DEPRECATED, "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 268:
+ case 282:
{ 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(&(yyvsp[(1) - (7)]), BP_VAR_W, 0 TSRMLS_CC); (yyvsp[(3) - (7)]).EA = ZEND_PARSED_NEW; zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (7)]), &(yyvsp[(3) - (7)]) TSRMLS_CC); }
break;
- case 269:
+ case 283:
{ zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 270:
+ case 284:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 271:
+ case 285:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 272:
+ case 286:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 273:
+ case 287:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 274:
+ case 288:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 275:
+ case 289:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 276:
+ case 290:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 277:
+ case 291:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 278:
+ case 292:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 279:
+ case 293:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 280:
+ case 294:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), 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 281:
+ case 295:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); }
break;
- case 282:
+ case 296:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); }
break;
- case 283:
+ case 297:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); }
break;
- case 284:
+ case 298:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); }
break;
- case 285:
+ case 299:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 286:
+ case 300:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 287:
+ case 301:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 288:
+ case 302:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 289:
+ case 303:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 290:
+ case 304:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 291:
+ case 305:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 292:
+ case 306:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 293:
+ case 307:
{ zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 294:
+ case 308:
{ zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 295:
+ case 309:
{ zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 296:
+ case 310:
{ zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 297:
+ case 311:
{ zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 298:
+ case 312:
{ zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 299:
+ case 313:
{ zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 300:
+ case 314:
{ zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 301:
+ case 315:
{ zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 302:
+ case 316:
{ zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 303:
+ case 317:
{ zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 304:
+ case 318:
{ zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 305:
+ case 319:
{ ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { add_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (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 306:
+ case 320:
{ ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { sub_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (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 307:
+ case 321:
{ zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 308:
+ case 322:
{ zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 309:
+ case 323:
{ zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 310:
+ case 324:
{ zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 311:
+ case 325:
{ zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 312:
+ case 326:
{ zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 313:
+ case 327:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 314:
+ case 328:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 315:
+ case 329:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 316:
+ case 330:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 317:
+ case 331:
{ zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 318:
+ case 332:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 319:
+ case 333:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 320:
+ case 334:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 321:
+ case 335:
{ (yyval) = (yyvsp[(5) - (5)]); }
break;
- case 322:
+ case 336:
{ zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 323:
+ case 337:
{ zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 324:
+ case 338:
{ zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
break;
- case 325:
+ case 339:
{ zend_do_jmp_set(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 326:
+ case 340:
{ zend_do_jmp_set_else(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(3) - (5)]) TSRMLS_CC); }
break;
- case 327:
+ case 341:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 328:
+ case 342:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); }
break;
- case 329:
+ case 343:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); }
break;
- case 330:
+ case 344:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); }
break;
- case 331:
+ case 345:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); }
break;
- case 332:
+ case 346:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); }
break;
- case 333:
+ case 347:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); }
break;
- case 334:
+ case 348:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); }
break;
- case 335:
+ case 349:
{ zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 336:
+ case 350:
{ zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 337:
+ case 351:
{ zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 338:
+ case 352:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 339:
+ case 353:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 340:
+ case 354:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 341:
+ case 355:
{ zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 342:
+ case 356:
{ zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 343:
+ case 357:
{ zend_do_yield(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
- case 344:
+ case 358:
{ zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]).op_type, 0 TSRMLS_CC); }
break;
- case 345:
+ case 359:
{ zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (10)]); }
break;
- case 346:
+ case 360:
{ zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]).op_type, 1 TSRMLS_CC); }
break;
- case 347:
+ case 361:
{ zend_do_end_function_declaration(&(yyvsp[(2) - (11)]) TSRMLS_CC); (yyval) = (yyvsp[(4) - (11)]); }
break;
- case 348:
+ case 362:
{ zend_do_yield(&(yyval), &(yyvsp[(2) - (2)]), NULL, 0 TSRMLS_CC); }
break;
- case 349:
+ case 363:
{ zend_do_yield(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
- case 350:
+ case 364:
{ zend_do_yield(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); }
break;
- case 351:
+ case 365:
{ zend_do_yield(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]), 1 TSRMLS_CC); }
break;
- case 352:
+ case 366:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 353:
+ case 367:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 354:
+ case 368:
{ (yyvsp[(1) - (4)]).EA = 0; zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 355:
+ case 369:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 356:
+ case 370:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 357:
+ case 371:
{ (yyval).u.op.opline_num = CG(zend_lineno); }
break;
- case 360:
+ case 374:
{ zend_do_fetch_lexical_variable(&(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 361:
+ case 375:
{ zend_do_fetch_lexical_variable(&(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
- case 362:
+ case 376:
{ zend_do_fetch_lexical_variable(&(yyvsp[(1) - (1)]), 0 TSRMLS_CC); }
break;
- case 363:
+ case 377:
{ zend_do_fetch_lexical_variable(&(yyvsp[(2) - (2)]), 1 TSRMLS_CC); }
break;
- case 364:
+ case 378:
{ (yyval).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 365:
+ case 379:
{ zend_do_end_function_call(&(yyvsp[(1) - (3)]), &(yyval), &(yyvsp[(3) - (3)]), 0, (yyvsp[(2) - (3)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 366:
+ case 380:
{ (yyvsp[(1) - (3)]).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyvsp[(1) - (3)]).u.constant); zend_do_build_namespace_name(&(yyvsp[(1) - (3)]), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyval).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
- case 367:
+ case 381:
{ zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(5) - (5)]), 0, (yyvsp[(4) - (5)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 368:
+ case 382:
{ (yyval).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(2) - (2)]), 0 TSRMLS_CC); }
break;
- case 369:
+ case 383:
{ zend_do_end_function_call(&(yyvsp[(2) - (4)]), &(yyval), &(yyvsp[(4) - (4)]), 0, (yyvsp[(3) - (4)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 370:
+ case 384:
{ (yyval).u.op.opline_num = zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 371:
+ case 385:
{ zend_do_end_function_call((yyvsp[(4) - (5)]).u.op.opline_num?NULL:&(yyvsp[(3) - (5)]), &(yyval), &(yyvsp[(5) - (5)]), (yyvsp[(4) - (5)]).u.op.opline_num, (yyvsp[(4) - (5)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 372:
+ case 386:
{ zend_do_end_variable_parse(&(yyvsp[(3) - (3)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 373:
+ case 387:
{ zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 374:
+ case 388:
{ zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 375:
+ case 389:
{ zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 376:
+ case 390:
{ zend_do_end_variable_parse(&(yyvsp[(3) - (3)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 377:
+ case 391:
{ zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 378:
+ case 392:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[(1) - (1)]), 0 TSRMLS_CC); }
break;
- case 379:
+ case 393:
{ zend_do_end_function_call(&(yyvsp[(1) - (3)]), &(yyval), &(yyvsp[(3) - (3)]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 380:
+ case 394:
{ (yyval).op_type = IS_CONST; ZVAL_STRINGL(&(yyval).u.constant, "static", sizeof("static")-1, 1);}
break;
- case 381:
+ case 395:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 382:
+ case 396:
{ (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 383:
+ case 397:
{ char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 384:
+ case 398:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 385:
+ case 399:
{ (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 386:
+ case 400:
{ char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 387:
+ case 401:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 388:
+ case 402:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 389:
+ case 403:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 390:
+ case 404:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 391:
+ case 405:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).EA = ZEND_PARSED_MEMBER; }
break;
- case 392:
+ case 406:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 395:
+ case 409:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 396:
+ case 410:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
- case 397:
+ case 411:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
- case 398:
+ case 412:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 399:
+ case 413:
{ ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; }
break;
- case 400:
+ case 414:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 401:
+ case 415:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 402:
+ case 416:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 403:
+ case 417:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 404:
+ case 418:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 405:
+ case 419:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 406:
+ case 420:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 407:
+ case 421:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 408:
+ case 422:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 409:
+ case 423:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 410:
+ case 424:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 411:
+ case 425:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 412:
+ case 426:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 413:
+ case 427:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 414:
+ case 428:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 415:
+ case 429:
{ ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; }
break;
- case 416:
+ case 430:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); }
break;
- case 417:
+ case 431:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_constant_expression(&(yyval), (yyvsp[(1) - (1)]).u.ast TSRMLS_CC); }
break;
- case 418:
+ case 432:
- { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT, 1 TSRMLS_CC); }
+ { (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
break;
- case 419:
+ case 433:
- { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyvsp[(3) - (3)]) = (yyval); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); }
+ { (yyval) = (yyvsp[(2) - (3)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
break;
- case 420:
+ case 434:
- { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(2) - (2)]), ZEND_CT, 0 TSRMLS_CC); }
+ { (yyval).u.ast = zend_ast_create_constant(&(yyvsp[(1) - (1)]).u.constant); }
break;
- case 421:
+ case 435:
- { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); add_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); }
+ { (yyval).u.ast = zend_ast_create_constant(&(yyvsp[(1) - (1)]).u.constant); }
break;
- case 422:
+ case 436:
- { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); sub_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); }
+ { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT, 1 TSRMLS_CC); (yyval).u.ast = zend_ast_create_constant(&(yyval).u.constant); }
break;
- case 423:
+ case 437:
- { (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
+ { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyvsp[(3) - (3)]) = (yyval); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); (yyval).u.ast = zend_ast_create_constant(&(yyval).u.constant); }
break;
- case 424:
+ case 438:
- { (yyval) = (yyvsp[(2) - (3)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
+ { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(2) - (2)]), ZEND_CT, 0 TSRMLS_CC); (yyval).u.ast = zend_ast_create_constant(&(yyval).u.constant); }
break;
- case 425:
+ case 439:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { (yyval).u.ast = zend_ast_create_constant(&(yyvsp[(1) - (1)]).u.constant); }
break;
- case 426:
+ case 440:
+
+ { (yyval).u.ast = zend_ast_create_constant(&(yyvsp[(1) - (1)]).u.constant); }
+ break;
+
+ case 441:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 427:
+ case 442:
- { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); }
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_ADD, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
break;
- case 428:
+ case 443:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_SUB, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 444:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_MUL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 445:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_DIV, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 446:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_MOD, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 447:
+
+ { (yyval).u.ast = zend_ast_create_unary(ZEND_BOOL_NOT, (yyvsp[(2) - (2)]).u.ast); }
+ break;
+
+ case 448:
+
+ { (yyval).u.ast = zend_ast_create_unary(ZEND_BW_NOT, (yyvsp[(2) - (2)]).u.ast); }
+ break;
+
+ case 449:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BW_OR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 450:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BW_AND, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 451:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BW_XOR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 452:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_SL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 453:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_SR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 454:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_CONCAT, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 455:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BOOL_XOR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 456:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BOOL_AND, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 457:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BOOL_OR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 458:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BOOL_AND, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 459:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_BOOL_OR, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 460:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_IDENTICAL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 461:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_NOT_IDENTICAL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 462:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_EQUAL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 463:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_NOT_EQUAL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 464:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 465:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, (yyvsp[(3) - (3)]).u.ast, (yyvsp[(1) - (3)]).u.ast); }
+ break;
+
+ case 466:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, (yyvsp[(1) - (3)]).u.ast, (yyvsp[(3) - (3)]).u.ast); }
+ break;
+
+ case 467:
+
+ { (yyval).u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, (yyvsp[(3) - (3)]).u.ast, (yyvsp[(1) - (3)]).u.ast); }
+ break;
+
+ case 468:
+
+ { (yyval).u.ast = zend_ast_create_ternary(ZEND_SELECT, (yyvsp[(1) - (4)]).u.ast, NULL, (yyvsp[(4) - (4)]).u.ast); }
+ break;
+
+ case 469:
+
+ { (yyval).u.ast = zend_ast_create_ternary(ZEND_SELECT, (yyvsp[(1) - (5)]).u.ast, (yyvsp[(3) - (5)]).u.ast, (yyvsp[(5) - (5)]).u.ast); }
+ break;
+
+ case 470:
+
+ { (yyval).u.ast = zend_ast_create_unary(ZEND_UNARY_PLUS, (yyvsp[(2) - (2)]).u.ast); }
+ break;
+
+ case 471:
+
+ { (yyval).u.ast = zend_ast_create_unary(ZEND_UNARY_MINUS, (yyvsp[(2) - (2)]).u.ast); }
+ break;
+
+ case 472:
+
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+ case 473:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 429:
+ case 474:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 430:
+ case 475:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 431:
+ case 476:
{ zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT, 1 TSRMLS_CC); }
break;
- case 432:
+ case 477:
{ (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyvsp[(3) - (3)]) = (yyval); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); }
break;
- case 433:
+ case 478:
{ char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(2) - (2)]), ZEND_RT, 0 TSRMLS_CC); }
break;
- case 434:
+ case 479:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 435:
+ case 480:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 436:
+ case 481:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 437:
+ case 482:
{ if (Z_TYPE((yyvsp[(1) - (1)]).u.constant) == IS_CONSTANT) {zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT, 1 TSRMLS_CC);} else {(yyval) = (yyvsp[(1) - (1)]);} }
break;
- case 438:
+ case 483:
{ (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); }
break;
- case 439:
+ case 484:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 442:
+ case 487:
{ zend_do_add_static_array_element(&(yyval), &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)])); }
break;
- case 443:
+ case 488:
{ zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(3) - (3)])); }
break;
- case 444:
+ case 489:
{ (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 445:
+ case 490:
{ (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 446:
+ case 491:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 447:
+ case 492:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 448:
+ case 493:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 449:
+ case 494:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 450:
+ case 495:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 451:
+ case 496:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]);
zend_check_writable_variable(&(yyvsp[(1) - (1)])); }
break;
- case 452:
+ case 497:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]);
zend_check_writable_variable(&(yyvsp[(1) - (1)])); }
break;
- case 453:
+ case 498:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 454:
+ case 499:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 455:
+ case 500:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).EA = (yyvsp[(1) - (7)]).EA | ((yyvsp[(7) - (7)]).EA ? (yyvsp[(7) - (7)]).EA : (yyvsp[(6) - (7)]).EA); }
break;
- case 456:
+ case 501:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 457:
+ case 502:
{ (yyval).EA = (yyvsp[(2) - (2)]).EA; }
break;
- case 458:
+ case 503:
{ (yyval).EA = 0; }
break;
- case 459:
+ case 504:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 460:
+ case 505:
{ (yyval).EA = (yyvsp[(4) - (4)]).EA; }
break;
- case 461:
+ case 506:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 462:
+ case 507:
{ (yyvsp[(1) - (4)]).EA = ZEND_PARSED_METHOD_CALL; fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 463:
+ case 508:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); zend_do_begin_method_call(&(yyval) TSRMLS_CC); }
break;
- case 464:
+ case 509:
{ zend_do_end_function_call(&(yyvsp[(1) - (2)]), &(yyval), &(yyvsp[(2) - (2)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 465:
+ case 510:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_METHOD_CALL; zend_do_push_object(&(yyval) TSRMLS_CC); }
break;
- case 466:
+ case 511:
{ (yyval) = (yyvsp[(1) - (1)]); zend_do_push_object(&(yyval) TSRMLS_CC); }
break;
- case 467:
+ case 512:
{ (yyval).EA = ZEND_PARSED_MEMBER; }
break;
- case 468:
+ case 513:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 469:
+ case 514:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 470:
+ case 515:
{ (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 471:
+ case 516:
{ (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 472:
+ case 517:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (1)]);; }
break;
- case 473:
+ case 518:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 474:
+ case 519:
{ zend_do_begin_variable_parse(TSRMLS_C); (yyvsp[(1) - (1)]).EA = ZEND_PARSED_FUNCTION_CALL; }
break;
- case 475:
+ case 520:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 476:
+ case 521:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 477:
+ case 522:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 478:
+ case 523:
{ zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_FUNCTION_CALL; }
break;
- case 479:
+ case 524:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_VARIABLE; }
break;
- case 480:
+ case 525:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).EA = ZEND_PARSED_VARIABLE; }
break;
- case 481:
+ case 526:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_STATIC_MEMBER; }
break;
- case 482:
+ case 527:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 483:
+ case 528:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 484:
+ case 529:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 485:
+ case 530:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 486:
+ case 531:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 487:
+ case 532:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 488:
+ case 533:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 489:
+ case 534:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 490:
+ case 535:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 491:
+ case 536:
{ 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 492:
+ case 537:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 493:
+ case 538:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 494:
+ case 539:
{ 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 495:
+ case 540:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 496:
+ case 541:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 497:
+ case 542:
{ Z_LVAL((yyval).u.constant) = 1; }
break;
- case 498:
+ case 543:
{ Z_LVAL((yyval).u.constant)++; }
break;
- case 501:
+ case 546:
{ zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 502:
+ case 547:
{ zend_do_new_list_begin(TSRMLS_C); }
break;
- case 503:
+ case 548:
{ zend_do_new_list_end(TSRMLS_C); }
break;
- case 504:
+ case 549:
{ zend_do_add_list_element(NULL TSRMLS_CC); }
break;
- case 505:
+ case 550:
{ zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
- case 506:
+ case 551:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 507:
+ case 552:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); }
break;
- case 508:
+ case 553:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); }
break;
- case 509:
+ case 554:
{ zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
- case 510:
+ case 555:
{ zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
break;
- case 511:
+ case 556:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); }
break;
- case 512:
+ case 557:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); }
break;
- case 513:
+ case 558:
{ zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
- case 514:
+ case 559:
{ zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
- case 515:
+ case 560:
{ zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 516:
+ case 561:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 517:
+ case 562:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), NULL, &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 518:
+ case 563:
{ zend_do_add_string(&(yyval), NULL, &(yyvsp[(1) - (2)]) TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 519:
+ case 564:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 520:
+ case 565:
{ zend_do_begin_variable_parse(TSRMLS_C); }
break;
- case 521:
+ case 566:
{ fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 522:
+ case 567:
{ 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 523:
+ case 568:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
- case 524:
+ case 569:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); }
break;
- case 525:
+ case 570:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 526:
+ case 571:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 527:
+ case 572:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 528:
+ case 573:
{ fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 529:
+ case 574:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 530:
+ case 575:
{ zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 531:
+ case 576:
{ zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 532:
+ case 577:
{ zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 533:
+ case 578:
{ zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 534:
+ case 579:
{ zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 535:
+ case 580:
{ zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 536:
+ case 581:
{ zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 537:
+ case 582:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 538:
+ case 583:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 539:
+ case 584:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 540:
+ case 585:
{ zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 541:
+ case 586:
- { zend_error(E_COMPILE_ERROR, "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"); }
+ { zend_error_noreturn(E_COMPILE_ERROR, "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"); }
break;
- case 542:
+ case 587:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); }
break;
- case 543:
+ case 588:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); }
break;
- case 544:
+ case 589:
{ zend_do_resolve_class_name(&(yyval), &(yyvsp[(1) - (3)]), 1 TSRMLS_CC); }
break;
- case 545:
+ case 590:
{ zend_do_resolve_class_name(&(yyval), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
diff --git a/Zend/zend_language_parser.h b/Zend/zend_language_parser.h
index a64121e5c..253be7779 100644
--- a/Zend/zend_language_parser.h
+++ b/Zend/zend_language_parser.h
@@ -178,7 +178,8 @@
T_NAMESPACE = 383,
T_NS_C = 384,
T_DIR = 385,
- T_NS_SEPARATOR = 386
+ T_NS_SEPARATOR = 386,
+ T_ELLIPSIS = 387
};
#endif
/* Tokens. */
@@ -312,6 +313,7 @@
#define T_NS_C 384
#define T_DIR 385
#define T_NS_SEPARATOR 386
+#define T_ELLIPSIS 387
diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output
index 934421bbf..af10f97ef 100644
--- a/Zend/zend_language_parser.output
+++ b/Zend/zend_language_parser.output
@@ -10,20 +10,20 @@ Terminals unused in grammar
"whitespace (T_WHITESPACE)"
-État 229conflits: 1 décalage/réduction
-État 672conflits: 2 décalage/réduction
+State 231 conflicts: 1 shift/reduce
+State 732 conflicts: 2 shift/reduce
-Grammaire
+Grammar
0 $accept: start "end of file"
1 start: top_statement_list
- 2 $@1: /* vide */
+ 2 $@1: /* empty */
3 top_statement_list: top_statement_list $@1 top_statement
- 4 | /* vide */
+ 4 | /* empty */
5 namespace_name: "identifier (T_STRING)"
6 | namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
@@ -34,24410 +34,27548 @@ Grammaire
10 | "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';'
11 | "namespace (T_NAMESPACE)" namespace_name ';'
- 12 $@2: /* vide */
+ 12 $@2: /* empty */
13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}'
- 14 $@3: /* vide */
+ 14 $@3: /* empty */
15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}'
16 | "use (T_USE)" use_declarations ';'
- 17 | constant_declaration ';'
+ 17 | "use (T_USE)" "function (T_FUNCTION)" use_function_declarations ';'
+ 18 | "use (T_USE)" "const (T_CONST)" use_const_declarations ';'
+ 19 | constant_declaration ';'
- 18 use_declarations: use_declarations ',' use_declaration
- 19 | use_declaration
+ 20 use_declarations: use_declarations ',' use_declaration
+ 21 | use_declaration
- 20 use_declaration: namespace_name
- 21 | namespace_name "as (T_AS)" "identifier (T_STRING)"
- 22 | "\\ (T_NS_SEPARATOR)" namespace_name
- 23 | "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)"
+ 22 use_declaration: namespace_name
+ 23 | namespace_name "as (T_AS)" "identifier (T_STRING)"
+ 24 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 25 | "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)"
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
- 25 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
+ 26 use_function_declarations: use_function_declarations ',' use_function_declaration
+ 27 | use_function_declaration
- 26 $@4: /* vide */
+ 28 use_function_declaration: namespace_name
+ 29 | namespace_name "as (T_AS)" "identifier (T_STRING)"
+ 30 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 31 | "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)"
- 27 inner_statement_list: inner_statement_list $@4 inner_statement
- 28 | /* vide */
+ 32 use_const_declarations: use_const_declarations ',' use_const_declaration
+ 33 | use_const_declaration
- 29 inner_statement: statement
- 30 | function_declaration_statement
- 31 | class_declaration_statement
- 32 | "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';'
+ 34 use_const_declaration: namespace_name
+ 35 | namespace_name "as (T_AS)" "identifier (T_STRING)"
+ 36 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 37 | "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)"
- 33 statement: unticked_statement
- 34 | "identifier (T_STRING)" ':'
+ 38 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
+ 39 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
- 35 unticked_statement: '{' inner_statement_list '}'
+ 40 $@4: /* empty */
- 36 $@5: /* vide */
+ 41 inner_statement_list: inner_statement_list $@4 inner_statement
+ 42 | /* empty */
- 37 $@6: /* vide */
+ 43 inner_statement: statement
+ 44 | function_declaration_statement
+ 45 | class_declaration_statement
+ 46 | "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';'
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single
+ 47 statement: unticked_statement
+ 48 | "identifier (T_STRING)" ':'
- 39 $@7: /* vide */
+ 49 unticked_statement: '{' inner_statement_list '}'
- 40 $@8: /* vide */
+ 50 $@5: /* empty */
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 51 $@6: /* empty */
- 42 $@9: /* vide */
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single
- 43 @10: /* vide */
+ 53 $@7: /* empty */
- 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement
+ 54 $@8: /* empty */
- 45 $@11: /* vide */
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- 46 $@12: /* vide */
+ 56 $@9: /* empty */
- 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
+ 57 @10: /* empty */
- 48 $@13: /* vide */
+ 58 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement
- 49 $@14: /* vide */
+ 59 $@11: /* empty */
- 50 $@15: /* vide */
+ 60 $@12: /* empty */
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
+ 61 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
- 52 $@16: /* vide */
+ 62 $@13: /* empty */
- 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 switch_case_list
- 54 | "break (T_BREAK)" ';'
- 55 | "break (T_BREAK)" expr ';'
- 56 | "continue (T_CONTINUE)" ';'
- 57 | "continue (T_CONTINUE)" expr ';'
- 58 | "return (T_RETURN)" ';'
- 59 | "return (T_RETURN)" expr_without_variable ';'
- 60 | "return (T_RETURN)" variable ';'
- 61 | yield_expr ';'
- 62 | "global (T_GLOBAL)" global_var_list ';'
- 63 | "static (T_STATIC)" static_var_list ';'
- 64 | "echo (T_ECHO)" echo_expr_list ';'
- 65 | T_INLINE_HTML
- 66 | expr ';'
- 67 | "unset (T_UNSET)" '(' unset_variables ')' ';'
+ 63 $@14: /* empty */
- 68 $@17: /* vide */
+ 64 $@15: /* empty */
- 69 $@18: /* vide */
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 66 $@16: /* empty */
- 71 $@19: /* vide */
+ 67 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 switch_case_list
+ 68 | "break (T_BREAK)" ';'
+ 69 | "break (T_BREAK)" expr ';'
+ 70 | "continue (T_CONTINUE)" ';'
+ 71 | "continue (T_CONTINUE)" expr ';'
+ 72 | "return (T_RETURN)" ';'
+ 73 | "return (T_RETURN)" expr_without_variable ';'
+ 74 | "return (T_RETURN)" variable ';'
+ 75 | yield_expr ';'
+ 76 | "global (T_GLOBAL)" global_var_list ';'
+ 77 | "static (T_STATIC)" static_var_list ';'
+ 78 | "echo (T_ECHO)" echo_expr_list ';'
+ 79 | T_INLINE_HTML
+ 80 | expr ';'
+ 81 | "unset (T_UNSET)" '(' unset_variables ')' ';'
- 72 $@20: /* vide */
+ 82 $@17: /* empty */
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+ 83 $@18: /* empty */
- 74 $@21: /* vide */
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement
- 76 | ';'
+ 85 $@19: /* empty */
- 77 $@22: /* vide */
+ 86 $@20: /* empty */
- 78 $@23: /* vide */
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement
- 80 | "throw (T_THROW)" expr ';'
- 81 | "goto (T_GOTO)" "identifier (T_STRING)" ';'
+ 88 $@21: /* empty */
- 82 catch_statement: /* vide */
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement
+ 90 | ';'
- 83 $@24: /* vide */
+ 91 $@22: /* empty */
- 84 $@25: /* vide */
+ 92 $@23: /* empty */
- 85 $@26: /* vide */
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement
+ 94 | "throw (T_THROW)" expr ';'
+ 95 | "goto (T_GOTO)" "identifier (T_STRING)" ';'
- 86 $@27: /* vide */
+ 96 catch_statement: /* empty */
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ 97 $@24: /* empty */
- 88 finally_statement: /* vide */
+ 98 $@25: /* empty */
- 89 $@28: /* vide */
+ 99 $@26: /* empty */
- 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}'
+ 100 $@27: /* empty */
- 91 additional_catches: non_empty_additional_catches
- 92 | /* vide */
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- 93 non_empty_additional_catches: additional_catch
- 94 | non_empty_additional_catches additional_catch
+ 102 finally_statement: /* empty */
- 95 @29: /* vide */
+ 103 $@28: /* empty */
- 96 $@30: /* vide */
+ 104 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}'
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+ 105 additional_catches: non_empty_additional_catches
+ 106 | /* empty */
- 98 unset_variables: unset_variable
- 99 | unset_variables ',' unset_variable
+ 107 non_empty_additional_catches: additional_catch
+ 108 | non_empty_additional_catches additional_catch
- 100 unset_variable: variable
+ 109 @29: /* empty */
- 101 function_declaration_statement: unticked_function_declaration_statement
+ 110 $@30: /* empty */
- 102 class_declaration_statement: unticked_class_declaration_statement
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- 103 is_reference: /* vide */
- 104 | '&'
+ 112 unset_variables: unset_variable
+ 113 | unset_variables ',' unset_variable
- 105 $@31: /* vide */
+ 114 unset_variable: variable
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
+ 115 function_declaration_statement: unticked_function_declaration_statement
- 107 $@32: /* vide */
+ 116 class_declaration_statement: unticked_class_declaration_statement
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
+ 117 is_reference: /* empty */
+ 118 | '&'
- 109 $@33: /* vide */
+ 119 is_variadic: /* empty */
+ 120 | "... (T_ELLIPSIS)"
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
+ 121 $@31: /* empty */
- 111 class_entry_type: "class (T_CLASS)"
- 112 | "abstract (T_ABSTRACT)" "class (T_CLASS)"
- 113 | "trait (T_TRAIT)"
- 114 | "final (T_FINAL)" "class (T_CLASS)"
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
- 115 extends_from: /* vide */
- 116 | "extends (T_EXTENDS)" fully_qualified_class_name
+ 123 $@32: /* empty */
- 117 interface_entry: "interface (T_INTERFACE)"
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
- 118 interface_extends_list: /* vide */
- 119 | "extends (T_EXTENDS)" interface_list
+ 125 $@33: /* empty */
- 120 implements_list: /* vide */
- 121 | "implements (T_IMPLEMENTS)" interface_list
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
- 122 interface_list: fully_qualified_class_name
- 123 | interface_list ',' fully_qualified_class_name
+ 127 class_entry_type: "class (T_CLASS)"
+ 128 | "abstract (T_ABSTRACT)" "class (T_CLASS)"
+ 129 | "trait (T_TRAIT)"
+ 130 | "final (T_FINAL)" "class (T_CLASS)"
- 124 foreach_optional_arg: /* vide */
- 125 | "=> (T_DOUBLE_ARROW)" foreach_variable
+ 131 extends_from: /* empty */
+ 132 | "extends (T_EXTENDS)" fully_qualified_class_name
- 126 foreach_variable: variable
- 127 | '&' variable
+ 133 interface_entry: "interface (T_INTERFACE)"
- 128 $@34: /* vide */
+ 134 interface_extends_list: /* empty */
+ 135 | "extends (T_EXTENDS)" interface_list
- 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')'
+ 136 implements_list: /* empty */
+ 137 | "implements (T_IMPLEMENTS)" interface_list
- 130 for_statement: statement
- 131 | ':' inner_statement_list "endfor (T_ENDFOR)" ';'
+ 138 interface_list: fully_qualified_class_name
+ 139 | interface_list ',' fully_qualified_class_name
- 132 foreach_statement: statement
- 133 | ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';'
+ 140 foreach_optional_arg: /* empty */
+ 141 | "=> (T_DOUBLE_ARROW)" foreach_variable
- 134 declare_statement: statement
- 135 | ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
+ 142 foreach_variable: variable
+ 143 | '&' variable
- 136 declare_list: "identifier (T_STRING)" '=' static_scalar
- 137 | declare_list ',' "identifier (T_STRING)" '=' static_scalar
+ 144 $@34: /* empty */
- 138 switch_case_list: '{' case_list '}'
- 139 | '{' ';' case_list '}'
- 140 | ':' case_list "endswitch (T_ENDSWITCH)" ';'
- 141 | ':' ';' case_list "endswitch (T_ENDSWITCH)" ';'
+ 145 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')'
- 142 case_list: /* vide */
+ 146 for_statement: statement
+ 147 | ':' inner_statement_list "endfor (T_ENDFOR)" ';'
- 143 $@35: /* vide */
+ 148 foreach_statement: statement
+ 149 | ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';'
- 144 case_list: case_list "case (T_CASE)" expr case_separator $@35 inner_statement_list
+ 150 declare_statement: statement
+ 151 | ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
- 145 $@36: /* vide */
+ 152 declare_list: "identifier (T_STRING)" '=' static_scalar
+ 153 | declare_list ',' "identifier (T_STRING)" '=' static_scalar
- 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+ 154 switch_case_list: '{' case_list '}'
+ 155 | '{' ';' case_list '}'
+ 156 | ':' case_list "endswitch (T_ENDSWITCH)" ';'
+ 157 | ':' ';' case_list "endswitch (T_ENDSWITCH)" ';'
- 147 case_separator: ':'
- 148 | ';'
+ 158 case_list: /* empty */
- 149 while_statement: statement
- 150 | ':' inner_statement_list "endwhile (T_ENDWHILE)" ';'
+ 159 $@35: /* empty */
- 151 elseif_list: /* vide */
+ 160 case_list: case_list "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 152 $@37: /* vide */
+ 161 $@36: /* empty */
- 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement
+ 162 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list
- 154 new_elseif_list: /* vide */
+ 163 case_separator: ':'
+ 164 | ';'
- 155 $@38: /* vide */
+ 165 while_statement: statement
+ 166 | ':' inner_statement_list "endwhile (T_ENDWHILE)" ';'
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list
+ 167 elseif_list: /* empty */
- 157 else_single: /* vide */
- 158 | "else (T_ELSE)" statement
+ 168 $@37: /* empty */
- 159 new_else_single: /* vide */
- 160 | "else (T_ELSE)" ':' inner_statement_list
+ 169 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement
- 161 parameter_list: non_empty_parameter_list
- 162 | /* vide */
+ 170 new_elseif_list: /* empty */
- 163 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)"
- 164 | optional_class_type '&' "variable (T_VARIABLE)"
- 165 | optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 166 | optional_class_type "variable (T_VARIABLE)" '=' static_scalar
- 167 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)"
- 168 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)"
- 169 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 170 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar
+ 171 $@38: /* empty */
- 171 optional_class_type: /* vide */
- 172 | "array (T_ARRAY)"
- 173 | "callable (T_CALLABLE)"
- 174 | fully_qualified_class_name
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list
- 175 function_call_parameter_list: '(' ')'
- 176 | '(' non_empty_function_call_parameter_list ')'
- 177 | '(' yield_expr ')'
+ 173 else_single: /* empty */
+ 174 | "else (T_ELSE)" statement
- 178 non_empty_function_call_parameter_list: expr_without_variable
- 179 | variable
- 180 | '&' w_variable
- 181 | non_empty_function_call_parameter_list ',' expr_without_variable
- 182 | non_empty_function_call_parameter_list ',' variable
- 183 | non_empty_function_call_parameter_list ',' '&' w_variable
+ 175 new_else_single: /* empty */
+ 176 | "else (T_ELSE)" ':' inner_statement_list
- 184 global_var_list: global_var_list ',' global_var
- 185 | global_var
+ 177 parameter_list: non_empty_parameter_list
+ 178 | /* empty */
- 186 global_var: "variable (T_VARIABLE)"
- 187 | '$' r_variable
- 188 | '$' '{' expr '}'
+ 179 non_empty_parameter_list: parameter
+ 180 | non_empty_parameter_list ',' parameter
- 189 static_var_list: static_var_list ',' "variable (T_VARIABLE)"
- 190 | static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar
- 191 | "variable (T_VARIABLE)"
- 192 | "variable (T_VARIABLE)" '=' static_scalar
+ 181 parameter: optional_class_type is_reference is_variadic "variable (T_VARIABLE)"
+ 182 | optional_class_type is_reference is_variadic "variable (T_VARIABLE)" '=' static_scalar
- 193 class_statement_list: class_statement_list class_statement
- 194 | /* vide */
+ 183 optional_class_type: /* empty */
+ 184 | "array (T_ARRAY)"
+ 185 | "callable (T_CALLABLE)"
+ 186 | fully_qualified_class_name
- 195 $@39: /* vide */
+ 187 function_call_parameter_list: '(' ')'
+ 188 | '(' non_empty_function_call_parameter_list ')'
+ 189 | '(' yield_expr ')'
- 196 class_statement: variable_modifiers $@39 class_variable_declaration ';'
- 197 | class_constant_declaration ';'
- 198 | trait_use_statement
+ 190 non_empty_function_call_parameter_list: expr_without_variable
+ 191 | variable
+ 192 | '&' w_variable
+ 193 | "... (T_ELLIPSIS)" expr
+ 194 | non_empty_function_call_parameter_list ',' expr_without_variable
+ 195 | non_empty_function_call_parameter_list ',' variable
+ 196 | non_empty_function_call_parameter_list ',' '&' w_variable
+ 197 | non_empty_function_call_parameter_list ',' "... (T_ELLIPSIS)" expr
- 199 $@40: /* vide */
+ 198 global_var_list: global_var_list ',' global_var
+ 199 | global_var
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
+ 200 global_var: "variable (T_VARIABLE)"
+ 201 | '$' r_variable
+ 202 | '$' '{' expr '}'
- 201 trait_use_statement: "use (T_USE)" trait_list trait_adaptations
+ 203 static_var_list: static_var_list ',' "variable (T_VARIABLE)"
+ 204 | static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar
+ 205 | "variable (T_VARIABLE)"
+ 206 | "variable (T_VARIABLE)" '=' static_scalar
- 202 trait_list: fully_qualified_class_name
- 203 | trait_list ',' fully_qualified_class_name
+ 207 class_statement_list: class_statement_list class_statement
+ 208 | /* empty */
- 204 trait_adaptations: ';'
- 205 | '{' trait_adaptation_list '}'
+ 209 $@39: /* empty */
- 206 trait_adaptation_list: /* vide */
- 207 | non_empty_trait_adaptation_list
+ 210 class_statement: variable_modifiers $@39 class_variable_declaration ';'
+ 211 | class_constant_declaration ';'
+ 212 | trait_use_statement
- 208 non_empty_trait_adaptation_list: trait_adaptation_statement
- 209 | non_empty_trait_adaptation_list trait_adaptation_statement
+ 213 $@40: /* empty */
- 210 trait_adaptation_statement: trait_precedence ';'
- 211 | trait_alias ';'
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- 212 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list
+ 215 trait_use_statement: "use (T_USE)" trait_list trait_adaptations
- 213 trait_reference_list: fully_qualified_class_name
- 214 | trait_reference_list ',' fully_qualified_class_name
+ 216 trait_list: fully_qualified_class_name
+ 217 | trait_list ',' fully_qualified_class_name
- 215 trait_method_reference: "identifier (T_STRING)"
- 216 | trait_method_reference_fully_qualified
+ 218 trait_adaptations: ';'
+ 219 | '{' trait_adaptation_list '}'
- 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 220 trait_adaptation_list: /* empty */
+ 221 | non_empty_trait_adaptation_list
- 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)"
- 219 | trait_method_reference "as (T_AS)" member_modifier
+ 222 non_empty_trait_adaptation_list: trait_adaptation_statement
+ 223 | non_empty_trait_adaptation_list trait_adaptation_statement
- 220 trait_modifiers: /* vide */
- 221 | member_modifier
+ 224 trait_adaptation_statement: trait_precedence ';'
+ 225 | trait_alias ';'
- 222 method_body: ';'
- 223 | '{' inner_statement_list '}'
+ 226 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list
- 224 variable_modifiers: non_empty_member_modifiers
- 225 | "var (T_VAR)"
+ 227 trait_reference_list: fully_qualified_class_name
+ 228 | trait_reference_list ',' fully_qualified_class_name
- 226 method_modifiers: /* vide */
- 227 | non_empty_member_modifiers
+ 229 trait_method_reference: "identifier (T_STRING)"
+ 230 | trait_method_reference_fully_qualified
- 228 non_empty_member_modifiers: member_modifier
- 229 | non_empty_member_modifiers member_modifier
+ 231 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 230 member_modifier: "public (T_PUBLIC)"
- 231 | "protected (T_PROTECTED)"
- 232 | "private (T_PRIVATE)"
- 233 | "static (T_STATIC)"
- 234 | "abstract (T_ABSTRACT)"
- 235 | "final (T_FINAL)"
+ 232 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)"
+ 233 | trait_method_reference "as (T_AS)" member_modifier
- 236 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)"
- 237 | class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar
- 238 | "variable (T_VARIABLE)"
- 239 | "variable (T_VARIABLE)" '=' static_scalar
+ 234 trait_modifiers: /* empty */
+ 235 | member_modifier
- 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
- 241 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
+ 236 method_body: ';'
+ 237 | '{' inner_statement_list '}'
- 242 echo_expr_list: echo_expr_list ',' expr
- 243 | expr
+ 238 variable_modifiers: non_empty_member_modifiers
+ 239 | "var (T_VAR)"
- 244 for_expr: /* vide */
- 245 | non_empty_for_expr
+ 240 method_modifiers: /* empty */
+ 241 | non_empty_member_modifiers
- 246 $@41: /* vide */
+ 242 non_empty_member_modifiers: member_modifier
+ 243 | non_empty_member_modifiers member_modifier
- 247 non_empty_for_expr: non_empty_for_expr ',' $@41 expr
- 248 | expr
+ 244 member_modifier: "public (T_PUBLIC)"
+ 245 | "protected (T_PROTECTED)"
+ 246 | "private (T_PRIVATE)"
+ 247 | "static (T_STATIC)"
+ 248 | "abstract (T_ABSTRACT)"
+ 249 | "final (T_FINAL)"
- 249 chaining_method_or_property: chaining_method_or_property variable_property
- 250 | variable_property
+ 250 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)"
+ 251 | class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar
+ 252 | "variable (T_VARIABLE)"
+ 253 | "variable (T_VARIABLE)" '=' static_scalar
- 251 chaining_dereference: chaining_dereference '[' dim_offset ']'
- 252 | '[' dim_offset ']'
+ 254 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
+ 255 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
- 253 $@42: /* vide */
+ 256 echo_expr_list: echo_expr_list ',' expr
+ 257 | expr
- 254 chaining_instance_call: chaining_dereference $@42 chaining_method_or_property
- 255 | chaining_dereference
- 256 | chaining_method_or_property
+ 258 for_expr: /* empty */
+ 259 | non_empty_for_expr
- 257 instance_call: /* vide */
+ 260 $@41: /* empty */
- 258 $@43: /* vide */
+ 261 non_empty_for_expr: non_empty_for_expr ',' $@41 expr
+ 262 | expr
- 259 instance_call: $@43 chaining_instance_call
+ 263 chaining_method_or_property: chaining_method_or_property variable_property
+ 264 | variable_property
- 260 $@44: /* vide */
+ 265 chaining_dereference: chaining_dereference '[' dim_offset ']'
+ 266 | '[' dim_offset ']'
- 261 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments
+ 267 $@42: /* empty */
- 262 $@45: /* vide */
+ 268 chaining_instance_call: chaining_dereference $@42 chaining_method_or_property
+ 269 | chaining_dereference
+ 270 | chaining_method_or_property
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' expr
- 264 | variable '=' expr
- 265 | variable '=' '&' variable
+ 271 instance_call: /* empty */
- 266 $@46: /* vide */
+ 272 $@43: /* empty */
- 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 268 | "clone (T_CLONE)" expr
- 269 | variable "+= (T_PLUS_EQUAL)" expr
- 270 | variable "-= (T_MINUS_EQUAL)" expr
- 271 | variable "*= (T_MUL_EQUAL)" expr
- 272 | variable "/= (T_DIV_EQUAL)" expr
- 273 | variable ".= (T_CONCAT_EQUAL)" expr
- 274 | variable "%= (T_MOD_EQUAL)" expr
- 275 | variable "&= (T_AND_EQUAL)" expr
- 276 | variable "|= (T_OR_EQUAL)" expr
- 277 | variable "^= (T_XOR_EQUAL)" expr
- 278 | variable "<<= (T_SL_EQUAL)" expr
- 279 | variable ">>= (T_SR_EQUAL)" expr
- 280 | rw_variable "++ (T_INC)"
- 281 | "++ (T_INC)" rw_variable
- 282 | rw_variable "-- (T_DEC)"
- 283 | "-- (T_DEC)" rw_variable
+ 273 instance_call: $@43 chaining_instance_call
- 284 $@47: /* vide */
+ 274 $@44: /* empty */
- 285 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@47 expr
+ 275 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments
- 286 $@48: /* vide */
+ 276 $@45: /* empty */
- 287 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@48 expr
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' expr
+ 278 | variable '=' expr
+ 279 | variable '=' '&' variable
- 288 $@49: /* vide */
+ 280 $@46: /* empty */
- 289 expr_without_variable: expr "or (T_LOGICAL_OR)" $@49 expr
+ 281 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 282 | "clone (T_CLONE)" expr
+ 283 | variable "+= (T_PLUS_EQUAL)" expr
+ 284 | variable "-= (T_MINUS_EQUAL)" expr
+ 285 | variable "*= (T_MUL_EQUAL)" expr
+ 286 | variable "/= (T_DIV_EQUAL)" expr
+ 287 | variable ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable "%= (T_MOD_EQUAL)" expr
+ 289 | variable "&= (T_AND_EQUAL)" expr
+ 290 | variable "|= (T_OR_EQUAL)" expr
+ 291 | variable "^= (T_XOR_EQUAL)" expr
+ 292 | variable "<<= (T_SL_EQUAL)" expr
+ 293 | variable ">>= (T_SR_EQUAL)" expr
+ 294 | rw_variable "++ (T_INC)"
+ 295 | "++ (T_INC)" rw_variable
+ 296 | rw_variable "-- (T_DEC)"
+ 297 | "-- (T_DEC)" rw_variable
- 290 $@50: /* vide */
+ 298 $@47: /* empty */
- 291 expr_without_variable: expr "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr "xor (T_LOGICAL_XOR)" expr
- 293 | expr '|' expr
- 294 | expr '&' expr
- 295 | expr '^' expr
- 296 | expr '.' expr
- 297 | expr '+' expr
- 298 | expr '-' expr
- 299 | expr '*' expr
- 300 | expr '/' expr
- 301 | expr '%' expr
- 302 | expr "<< (T_SL)" expr
- 303 | expr ">> (T_SR)" expr
- 304 | '+' expr
- 305 | '-' expr
- 306 | '!' expr
- 307 | '~' expr
- 308 | expr "=== (T_IS_IDENTICAL)" expr
- 309 | expr "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr "== (T_IS_EQUAL)" expr
- 311 | expr "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr '<' expr
- 313 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr '>' expr
- 315 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr "instanceof (T_INSTANCEOF)" class_name_reference
- 317 | parenthesis_expr
- 318 | new_expr
+ 299 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@47 expr
- 319 @51: /* vide */
+ 300 $@48: /* empty */
- 320 expr_without_variable: '(' new_expr ')' @51 instance_call
+ 301 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@48 expr
- 321 $@52: /* vide */
+ 302 $@49: /* empty */
- 322 $@53: /* vide */
+ 303 expr_without_variable: expr "or (T_LOGICAL_OR)" $@49 expr
- 323 expr_without_variable: expr '?' $@52 expr ':' $@53 expr
+ 304 $@50: /* empty */
- 324 $@54: /* vide */
+ 305 expr_without_variable: expr "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr "xor (T_LOGICAL_XOR)" expr
+ 307 | expr '|' expr
+ 308 | expr '&' expr
+ 309 | expr '^' expr
+ 310 | expr '.' expr
+ 311 | expr '+' expr
+ 312 | expr '-' expr
+ 313 | expr '*' expr
+ 314 | expr '/' expr
+ 315 | expr '%' expr
+ 316 | expr "<< (T_SL)" expr
+ 317 | expr ">> (T_SR)" expr
+ 318 | '+' expr
+ 319 | '-' expr
+ 320 | '!' expr
+ 321 | '~' expr
+ 322 | expr "=== (T_IS_IDENTICAL)" expr
+ 323 | expr "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr "== (T_IS_EQUAL)" expr
+ 325 | expr "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr '<' expr
+ 327 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr '>' expr
+ 329 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr "instanceof (T_INSTANCEOF)" class_name_reference
+ 331 | parenthesis_expr
+ 332 | new_expr
- 325 expr_without_variable: expr '?' ':' $@54 expr
- 326 | internal_functions_in_yacc
- 327 | "(int) (T_INT_CAST)" expr
- 328 | "(double) (T_DOUBLE_CAST)" expr
- 329 | "(string) (T_STRING_CAST)" expr
- 330 | "(array) (T_ARRAY_CAST)" expr
- 331 | "(object) (T_OBJECT_CAST)" expr
- 332 | "(bool) (T_BOOL_CAST)" expr
- 333 | "(unset) (T_UNSET_CAST)" expr
- 334 | "exit (T_EXIT)" exit_expr
+ 333 @51: /* empty */
- 335 $@55: /* vide */
+ 334 expr_without_variable: '(' new_expr ')' @51 instance_call
- 336 expr_without_variable: '@' $@55 expr
- 337 | scalar
- 338 | combined_scalar_offset
- 339 | combined_scalar
- 340 | '`' backticks_expr '`'
- 341 | "print (T_PRINT)" expr
- 342 | "yield (T_YIELD)"
+ 335 $@52: /* empty */
- 343 @56: /* vide */
+ 336 $@53: /* empty */
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 337 expr_without_variable: expr '?' $@52 expr ':' $@53 expr
- 345 @57: /* vide */
+ 338 $@54: /* empty */
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 339 expr_without_variable: expr '?' ':' $@54 expr
+ 340 | internal_functions_in_yacc
+ 341 | "(int) (T_INT_CAST)" expr
+ 342 | "(double) (T_DOUBLE_CAST)" expr
+ 343 | "(string) (T_STRING_CAST)" expr
+ 344 | "(array) (T_ARRAY_CAST)" expr
+ 345 | "(object) (T_OBJECT_CAST)" expr
+ 346 | "(bool) (T_BOOL_CAST)" expr
+ 347 | "(unset) (T_UNSET_CAST)" expr
+ 348 | "exit (T_EXIT)" exit_expr
- 347 yield_expr: "yield (T_YIELD)" expr_without_variable
- 348 | "yield (T_YIELD)" variable
- 349 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" expr_without_variable
- 350 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" variable
+ 349 $@55: /* empty */
- 351 combined_scalar_offset: combined_scalar '[' dim_offset ']'
- 352 | combined_scalar_offset '[' dim_offset ']'
- 353 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset ']'
+ 350 expr_without_variable: '@' $@55 expr
+ 351 | scalar
+ 352 | combined_scalar_offset
+ 353 | combined_scalar
+ 354 | '`' backticks_expr '`'
+ 355 | "print (T_PRINT)" expr
+ 356 | "yield (T_YIELD)"
- 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')'
- 355 | '[' array_pair_list ']'
+ 357 @56: /* empty */
- 356 function: "function (T_FUNCTION)"
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 357 lexical_vars: /* vide */
- 358 | "use (T_USE)" '(' lexical_var_list ')'
+ 359 @57: /* empty */
- 359 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)"
- 360 | lexical_var_list ',' '&' "variable (T_VARIABLE)"
- 361 | "variable (T_VARIABLE)"
- 362 | '&' "variable (T_VARIABLE)"
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 363 @58: /* vide */
+ 361 yield_expr: "yield (T_YIELD)" expr_without_variable
+ 362 | "yield (T_YIELD)" variable
+ 363 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" expr_without_variable
+ 364 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" variable
- 364 function_call: namespace_name @58 function_call_parameter_list
+ 365 combined_scalar_offset: combined_scalar '[' dim_offset ']'
+ 366 | combined_scalar_offset '[' dim_offset ']'
+ 367 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset ']'
- 365 @59: /* vide */
+ 368 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')'
+ 369 | '[' array_pair_list ']'
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
+ 370 function: "function (T_FUNCTION)"
- 367 @60: /* vide */
+ 371 lexical_vars: /* empty */
+ 372 | "use (T_USE)" '(' lexical_var_list ')'
- 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list
+ 373 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)"
+ 374 | lexical_var_list ',' '&' "variable (T_VARIABLE)"
+ 375 | "variable (T_VARIABLE)"
+ 376 | '&' "variable (T_VARIABLE)"
- 369 @61: /* vide */
+ 377 @58: /* empty */
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
+ 378 function_call: namespace_name @58 function_call_parameter_list
- 371 $@62: /* vide */
+ 379 @59: /* empty */
- 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
- 373 $@63: /* vide */
+ 381 @60: /* empty */
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
+ 382 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list
- 375 $@64: /* vide */
+ 383 @61: /* empty */
- 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
- 377 $@65: /* vide */
+ 385 $@62: /* empty */
- 378 function_call: variable_without_objects $@65 function_call_parameter_list
+ 386 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
- 379 class_name: "static (T_STATIC)"
- 380 | namespace_name
- 381 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 382 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 387 $@63: /* empty */
- 383 fully_qualified_class_name: namespace_name
- 384 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 385 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
- 386 class_name_reference: class_name
- 387 | dynamic_class_name_reference
+ 389 $@64: /* empty */
- 388 $@66: /* vide */
+ 390 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
- 389 $@67: /* vide */
+ 391 $@65: /* empty */
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties
- 391 | base_variable
+ 392 function_call: variable_without_objects $@65 function_call_parameter_list
- 392 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
- 393 | /* vide */
+ 393 class_name: "static (T_STATIC)"
+ 394 | namespace_name
+ 395 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 396 | "\\ (T_NS_SEPARATOR)" namespace_name
- 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property
+ 397 fully_qualified_class_name: namespace_name
+ 398 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 399 | "\\ (T_NS_SEPARATOR)" namespace_name
- 395 exit_expr: /* vide */
- 396 | '(' ')'
- 397 | parenthesis_expr
+ 400 class_name_reference: class_name
+ 401 | dynamic_class_name_reference
- 398 backticks_expr: /* vide */
- 399 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- 400 | encaps_list
+ 402 $@66: /* empty */
- 401 ctor_arguments: /* vide */
- 402 | function_call_parameter_list
+ 403 $@67: /* empty */
+
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties
+ 405 | base_variable
+
+ 406 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
+ 407 | /* empty */
- 403 common_scalar: "integer number (T_LNUMBER)"
- 404 | "floating-point number (T_DNUMBER)"
- 405 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)"
- 406 | "__LINE__ (T_LINE)"
- 407 | "__FILE__ (T_FILE)"
- 408 | "__DIR__ (T_DIR)"
- 409 | "__TRAIT__ (T_TRAIT_C)"
- 410 | "__METHOD__ (T_METHOD_C)"
- 411 | "__FUNCTION__ (T_FUNC_C)"
- 412 | "__NAMESPACE__ (T_NS_C)"
- 413 | "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 414 | "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)"
+ 408 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property
- 415 static_scalar: common_scalar
- 416 | static_class_name_scalar
- 417 | namespace_name
- 418 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 419 | "\\ (T_NS_SEPARATOR)" namespace_name
- 420 | '+' static_scalar
- 421 | '-' static_scalar
- 422 | "array (T_ARRAY)" '(' static_array_pair_list ')'
- 423 | '[' static_array_pair_list ']'
- 424 | static_class_constant
- 425 | "__CLASS__ (T_CLASS_C)"
+ 409 exit_expr: /* empty */
+ 410 | '(' ')'
+ 411 | parenthesis_expr
- 426 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 412 backticks_expr: /* empty */
+ 413 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 414 | encaps_list
- 427 scalar: "variable name (T_STRING_VARNAME)"
- 428 | class_name_scalar
- 429 | class_constant
- 430 | namespace_name
- 431 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 432 | "\\ (T_NS_SEPARATOR)" namespace_name
- 433 | common_scalar
- 434 | '"' encaps_list '"'
- 435 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)"
- 436 | "__CLASS__ (T_CLASS_C)"
+ 415 ctor_arguments: /* empty */
+ 416 | function_call_parameter_list
- 437 static_array_pair_list: /* vide */
- 438 | non_empty_static_array_pair_list possible_comma
+ 417 common_scalar: "integer number (T_LNUMBER)"
+ 418 | "floating-point number (T_DNUMBER)"
+ 419 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)"
+ 420 | "__LINE__ (T_LINE)"
+ 421 | "__FILE__ (T_FILE)"
+ 422 | "__DIR__ (T_DIR)"
+ 423 | "__TRAIT__ (T_TRAIT_C)"
+ 424 | "__METHOD__ (T_METHOD_C)"
+ 425 | "__FUNCTION__ (T_FUNC_C)"
+ 426 | "__NAMESPACE__ (T_NS_C)"
+ 427 | "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
+ 428 | "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)"
- 439 possible_comma: /* vide */
- 440 | ','
+ 429 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 442 | non_empty_static_array_pair_list ',' static_scalar
- 443 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 444 | static_scalar
+ 430 static_scalar: static_scalar_value
+ 431 | "array (T_ARRAY)" '(' static_array_pair_list ')'
+ 432 | '[' static_array_pair_list ']'
- 445 expr: r_variable
- 446 | expr_without_variable
+ 433 static_scalar_value: common_scalar
+ 434 | static_class_name_scalar
+ 435 | namespace_name
+ 436 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 437 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 438 | static_class_constant
+ 439 | "__CLASS__ (T_CLASS_C)"
+ 440 | static_operation
- 447 parenthesis_expr: '(' expr ')'
- 448 | '(' yield_expr ')'
+ 441 static_operation: static_scalar_value '+' static_scalar_value
+ 442 | static_scalar_value '-' static_scalar_value
+ 443 | static_scalar_value '*' static_scalar_value
+ 444 | static_scalar_value '/' static_scalar_value
+ 445 | static_scalar_value '%' static_scalar_value
+ 446 | '!' static_scalar_value
+ 447 | '~' static_scalar_value
+ 448 | static_scalar_value '|' static_scalar_value
+ 449 | static_scalar_value '&' static_scalar_value
+ 450 | static_scalar_value '^' static_scalar_value
+ 451 | static_scalar_value "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value '.' static_scalar_value
+ 454 | static_scalar_value "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value '<' static_scalar_value
+ 464 | static_scalar_value '>' static_scalar_value
+ 465 | static_scalar_value "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value '?' ':' static_scalar_value
+ 468 | static_scalar_value '?' static_scalar_value ':' static_scalar_value
+ 469 | '+' static_scalar_value
+ 470 | '-' static_scalar_value
+ 471 | '(' static_scalar_value ')'
- 449 r_variable: variable
+ 472 scalar: "variable name (T_STRING_VARNAME)"
+ 473 | class_name_scalar
+ 474 | class_constant
+ 475 | namespace_name
+ 476 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 477 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 478 | common_scalar
+ 479 | '"' encaps_list '"'
+ 480 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)"
+ 481 | "__CLASS__ (T_CLASS_C)"
- 450 w_variable: variable
+ 482 static_array_pair_list: /* empty */
+ 483 | non_empty_static_array_pair_list possible_comma
- 451 rw_variable: variable
+ 484 possible_comma: /* empty */
+ 485 | ','
- 452 $@68: /* vide */
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 487 | non_empty_static_array_pair_list ',' static_scalar
+ 488 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 489 | static_scalar
- 453 $@69: /* vide */
+ 490 expr: r_variable
+ 491 | expr_without_variable
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
- 455 | base_variable_with_function_calls
+ 492 parenthesis_expr: '(' expr ')'
+ 493 | '(' yield_expr ')'
- 456 variable_properties: variable_properties variable_property
- 457 | /* vide */
+ 494 r_variable: variable
- 458 $@70: /* vide */
+ 495 w_variable: variable
- 459 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not
+ 496 rw_variable: variable
- 460 array_method_dereference: array_method_dereference '[' dim_offset ']'
- 461 | method '[' dim_offset ']'
+ 497 $@68: /* empty */
- 462 @71: /* vide */
+ 498 $@69: /* empty */
- 463 method: @71 function_call_parameter_list
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
+ 500 | base_variable_with_function_calls
- 464 method_or_not: method
- 465 | array_method_dereference
- 466 | /* vide */
+ 501 variable_properties: variable_properties variable_property
+ 502 | /* empty */
- 467 variable_without_objects: reference_variable
- 468 | simple_indirect_reference reference_variable
+ 503 $@70: /* empty */
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 470 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 504 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not
- 471 variable_class_name: reference_variable
+ 505 array_method_dereference: array_method_dereference '[' dim_offset ']'
+ 506 | method '[' dim_offset ']'
- 472 array_function_dereference: array_function_dereference '[' dim_offset ']'
+ 507 @71: /* empty */
- 473 $@72: /* vide */
+ 508 method: @71 function_call_parameter_list
- 474 array_function_dereference: function_call $@72 '[' dim_offset ']'
+ 509 method_or_not: method
+ 510 | array_method_dereference
+ 511 | /* empty */
- 475 base_variable_with_function_calls: base_variable
- 476 | array_function_dereference
- 477 | function_call
+ 512 variable_without_objects: reference_variable
+ 513 | simple_indirect_reference reference_variable
- 478 base_variable: reference_variable
- 479 | simple_indirect_reference reference_variable
- 480 | static_member
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 515 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 481 reference_variable: reference_variable '[' dim_offset ']'
- 482 | reference_variable '{' expr '}'
- 483 | compound_variable
+ 516 variable_class_name: reference_variable
- 484 compound_variable: "variable (T_VARIABLE)"
- 485 | '$' '{' expr '}'
+ 517 array_function_dereference: array_function_dereference '[' dim_offset ']'
- 486 dim_offset: /* vide */
- 487 | expr
+ 518 $@72: /* empty */
- 488 object_property: object_dim_list
+ 519 array_function_dereference: function_call $@72 '[' dim_offset ']'
- 489 $@73: /* vide */
+ 520 base_variable_with_function_calls: base_variable
+ 521 | array_function_dereference
+ 522 | function_call
- 490 object_property: variable_without_objects $@73
+ 523 base_variable: reference_variable
+ 524 | simple_indirect_reference reference_variable
+ 525 | static_member
- 491 object_dim_list: object_dim_list '[' dim_offset ']'
- 492 | object_dim_list '{' expr '}'
- 493 | variable_name
+ 526 reference_variable: reference_variable '[' dim_offset ']'
+ 527 | reference_variable '{' expr '}'
+ 528 | compound_variable
- 494 variable_name: "identifier (T_STRING)"
- 495 | '{' expr '}'
+ 529 compound_variable: "variable (T_VARIABLE)"
+ 530 | '$' '{' expr '}'
- 496 simple_indirect_reference: '$'
- 497 | simple_indirect_reference '$'
+ 531 dim_offset: /* empty */
+ 532 | expr
- 498 assignment_list: assignment_list ',' assignment_list_element
- 499 | assignment_list_element
+ 533 object_property: object_dim_list
- 500 assignment_list_element: variable
+ 534 $@73: /* empty */
- 501 $@74: /* vide */
+ 535 object_property: variable_without_objects $@73
- 502 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')'
- 503 | /* vide */
+ 536 object_dim_list: object_dim_list '[' dim_offset ']'
+ 537 | object_dim_list '{' expr '}'
+ 538 | variable_name
- 504 array_pair_list: /* vide */
- 505 | non_empty_array_pair_list possible_comma
+ 539 variable_name: "identifier (T_STRING)"
+ 540 | '{' expr '}'
- 506 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr
- 507 | non_empty_array_pair_list ',' expr
- 508 | expr "=> (T_DOUBLE_ARROW)" expr
- 509 | expr
- 510 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 511 | non_empty_array_pair_list ',' '&' w_variable
- 512 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 513 | '&' w_variable
+ 541 simple_indirect_reference: '$'
+ 542 | simple_indirect_reference '$'
- 514 encaps_list: encaps_list encaps_var
- 515 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- 516 | encaps_var
- 517 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var
+ 543 assignment_list: assignment_list ',' assignment_list_element
+ 544 | assignment_list_element
- 518 encaps_var: "variable (T_VARIABLE)"
+ 545 assignment_list_element: variable
- 519 $@75: /* vide */
+ 546 $@74: /* empty */
- 520 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']'
- 521 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
- 522 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}'
- 523 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
- 524 | "{$ (T_CURLY_OPEN)" variable '}'
+ 547 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')'
+ 548 | /* empty */
- 525 encaps_var_offset: "identifier (T_STRING)"
- 526 | "number (T_NUM_STRING)"
- 527 | "variable (T_VARIABLE)"
+ 549 array_pair_list: /* empty */
+ 550 | non_empty_array_pair_list possible_comma
- 528 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')'
- 529 | "empty (T_EMPTY)" '(' variable ')'
- 530 | "empty (T_EMPTY)" '(' expr_without_variable ')'
- 531 | "include (T_INCLUDE)" expr
- 532 | "include_once (T_INCLUDE_ONCE)" expr
- 533 | "eval (T_EVAL)" '(' expr ')'
- 534 | "require (T_REQUIRE)" expr
- 535 | "require_once (T_REQUIRE_ONCE)" expr
+ 551 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr
+ 552 | non_empty_array_pair_list ',' expr
+ 553 | expr "=> (T_DOUBLE_ARROW)" expr
+ 554 | expr
+ 555 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 556 | non_empty_array_pair_list ',' '&' w_variable
+ 557 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 558 | '&' w_variable
- 536 isset_variables: isset_variable
+ 559 encaps_list: encaps_list encaps_var
+ 560 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 561 | encaps_var
+ 562 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var
- 537 $@76: /* vide */
+ 563 encaps_var: "variable (T_VARIABLE)"
- 538 isset_variables: isset_variables ',' $@76 isset_variable
+ 564 $@75: /* empty */
- 539 isset_variable: variable
- 540 | expr_without_variable
+ 565 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']'
+ 566 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
+ 567 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}'
+ 568 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
+ 569 | "{$ (T_CURLY_OPEN)" variable '}'
- 541 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 542 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 570 encaps_var_offset: "identifier (T_STRING)"
+ 571 | "number (T_NUM_STRING)"
+ 572 | "variable (T_VARIABLE)"
- 543 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+ 573 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')'
+ 574 | "empty (T_EMPTY)" '(' variable ')'
+ 575 | "empty (T_EMPTY)" '(' expr_without_variable ')'
+ 576 | "include (T_INCLUDE)" expr
+ 577 | "include_once (T_INCLUDE_ONCE)" expr
+ 578 | "eval (T_EVAL)" '(' expr ')'
+ 579 | "require (T_REQUIRE)" expr
+ 580 | "require_once (T_REQUIRE_ONCE)" expr
- 544 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+ 581 isset_variables: isset_variable
+ 582 $@76: /* empty */
-Terminaux, suivis des règles où ils apparaissent
+ 583 isset_variables: isset_variables ',' $@76 isset_variable
+
+ 584 isset_variable: variable
+ 585 | expr_without_variable
+
+ 586 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 587 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+
+ 588 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+
+ 589 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+
+
+Terminals, with rules where they appear
"end of file" (0) 0
-'!' (33) 306
-'"' (34) 434
-'$' (36) 187 188 485 496 497
-'%' (37) 301
-'&' (38) 104 127 164 165 168 169 180 183 265 267 294 360 362 510 511
- 512 513
-'(' (40) 10 32 51 67 70 73 75 87 97 106 129 175 176 177 200 263 320
- 344 346 354 358 396 422 447 448 502 528 529 530 533
-')' (41) 10 32 51 67 70 73 75 87 97 106 129 175 176 177 200 263 320
- 344 346 354 358 396 422 447 448 502 528 529 530 533
-'*' (42) 299
-'+' (43) 297 304 420
-',' (44) 18 24 99 123 137 167 168 169 170 181 182 183 184 189 190 203
- 214 236 237 240 242 247 359 360 440 441 442 498 506 507 510 511
- 538
-'-' (45) 298 305 421
-'.' (46) 296
-'/' (47) 300
-':' (58) 34 41 131 133 135 140 141 147 150 156 160 323 325
-';' (59) 10 11 16 17 32 41 47 51 54 55 56 57 58 59 60 61 62 63 64 66
- 67 76 80 81 131 133 135 139 140 141 148 150 196 197 204 210 211
- 222
-'<' (60) 312
-'=' (61) 24 25 136 137 165 166 169 170 190 192 237 239 240 241 263
- 264 265 267
-'>' (62) 314
-'?' (63) 323 325
-'@' (64) 336
-'[' (91) 251 252 351 352 353 355 423 460 461 472 474 481 491 520 523
-']' (93) 251 252 351 352 353 355 423 460 461 472 474 481 491 520 523
-'^' (94) 295
-'`' (96) 340
-'{' (123) 13 15 35 79 87 90 97 106 108 110 138 139 188 205 223 344
- 346 482 485 492 495
-'|' (124) 293
-'}' (125) 13 15 35 79 87 90 97 106 108 110 138 139 188 205 223 344
- 346 482 485 492 495 522 523 524
-'~' (126) 307
+'!' (33) 320 446
+'"' (34) 479
+'$' (36) 201 202 530 541 542
+'%' (37) 315 445
+'&' (38) 118 143 192 196 279 281 308 374 376 449 555 556 557 558
+'(' (40) 10 46 65 81 84 87 89 101 111 122 145 187 188 189 214 277 334
+ 358 360 368 372 410 431 471 492 493 547 573 574 575 578
+')' (41) 10 46 65 81 84 87 89 101 111 122 145 187 188 189 214 277 334
+ 358 360 368 372 410 431 471 492 493 547 573 574 575 578
+'*' (42) 313 443
+'+' (43) 311 318 441 469
+',' (44) 20 26 32 38 113 139 153 180 194 195 196 197 198 203 204 217
+ 228 250 251 254 256 261 373 374 485 486 487 543 551 552 555 556
+ 583
+'-' (45) 312 319 442 470
+'.' (46) 310 453
+'/' (47) 314 444
+':' (58) 48 55 147 149 151 156 157 163 166 172 176 337 339 467 468
+';' (59) 10 11 16 17 18 19 46 55 61 65 68 69 70 71 72 73 74 75 76 77
+ 78 80 81 90 94 95 147 149 151 155 156 157 164 166 210 211 218 224
+ 225 236
+'<' (60) 326 463
+'=' (61) 38 39 152 153 182 204 206 251 253 254 255 277 278 279 281
+'>' (62) 328 464
+'?' (63) 337 339 467 468
+'@' (64) 350
+'[' (91) 265 266 365 366 367 369 432 505 506 517 519 526 536 565 568
+']' (93) 265 266 365 366 367 369 432 505 506 517 519 526 536 565 568
+'^' (94) 309 450
+'`' (96) 354
+'{' (123) 13 15 49 93 101 104 111 122 124 126 154 155 202 219 237 358
+ 360 527 530 537 540
+'|' (124) 307 448
+'}' (125) 13 15 49 93 101 104 111 122 124 126 154 155 202 219 237 358
+ 360 527 530 537 540 567 568 569
+'~' (126) 321 447
error (256)
-"require_once (T_REQUIRE_ONCE)" (258) 535
-"require (T_REQUIRE)" (259) 534
-"eval (T_EVAL)" (260) 533
-"include_once (T_INCLUDE_ONCE)" (261) 532
-"include (T_INCLUDE)" (262) 531
-"or (T_LOGICAL_OR)" (263) 289
-"xor (T_LOGICAL_XOR)" (264) 292
-"and (T_LOGICAL_AND)" (265) 291
-"print (T_PRINT)" (266) 341
-"yield (T_YIELD)" (267) 342 347 348 349 350
-">>= (T_SR_EQUAL)" (268) 279
-"<<= (T_SL_EQUAL)" (269) 278
-"^= (T_XOR_EQUAL)" (270) 277
-"|= (T_OR_EQUAL)" (271) 276
-"&= (T_AND_EQUAL)" (272) 275
-"%= (T_MOD_EQUAL)" (273) 274
-".= (T_CONCAT_EQUAL)" (274) 273
-"/= (T_DIV_EQUAL)" (275) 272
-"*= (T_MUL_EQUAL)" (276) 271
-"-= (T_MINUS_EQUAL)" (277) 270
-"+= (T_PLUS_EQUAL)" (278) 269
-"|| (T_BOOLEAN_OR)" (279) 285
-"&& (T_BOOLEAN_AND)" (280) 287
-"!== (T_IS_NOT_IDENTICAL)" (281) 309
-"=== (T_IS_IDENTICAL)" (282) 308
-"!= (T_IS_NOT_EQUAL)" (283) 311
-"== (T_IS_EQUAL)" (284) 310
-">= (T_IS_GREATER_OR_EQUAL)" (285) 315
-"<= (T_IS_SMALLER_OR_EQUAL)" (286) 313
-">> (T_SR)" (287) 303
-"<< (T_SL)" (288) 302
-"instanceof (T_INSTANCEOF)" (289) 316
-"(unset) (T_UNSET_CAST)" (290) 333
-"(bool) (T_BOOL_CAST)" (291) 332
-"(object) (T_OBJECT_CAST)" (292) 331
-"(array) (T_ARRAY_CAST)" (293) 330
-"(string) (T_STRING_CAST)" (294) 329
-"(double) (T_DOUBLE_CAST)" (295) 328
-"(int) (T_INT_CAST)" (296) 327
-"-- (T_DEC)" (297) 282 283
-"++ (T_INC)" (298) 280 281
-"clone (T_CLONE)" (299) 268
-"new (T_NEW)" (300) 261 267
-"exit (T_EXIT)" (301) 334
-"if (T_IF)" (302) 38 41
-"elseif (T_ELSEIF)" (303) 153 156
-"else (T_ELSE)" (304) 158 160
-"endif (T_ENDIF)" (305) 41
-"integer number (T_LNUMBER)" (306) 403
-"floating-point number (T_DNUMBER)" (307) 404
-"identifier (T_STRING)" (308) 5 6 21 23 24 25 34 81 106 108 110 136
- 137 200 215 217 218 240 241 426 494 521 525 541 542
-"variable name (T_STRING_VARNAME)" (309) 427 523
-"variable (T_VARIABLE)" (310) 87 97 163 164 165 166 167 168 169 170
- 186 189 190 191 192 236 237 238 239 359 360 361 362 484 518 520
- 521 527
-"number (T_NUM_STRING)" (311) 526
-T_INLINE_HTML (312) 65
+"require_once (T_REQUIRE_ONCE)" (258) 580
+"require (T_REQUIRE)" (259) 579
+"eval (T_EVAL)" (260) 578
+"include_once (T_INCLUDE_ONCE)" (261) 577
+"include (T_INCLUDE)" (262) 576
+"or (T_LOGICAL_OR)" (263) 303 456
+"xor (T_LOGICAL_XOR)" (264) 306 454
+"and (T_LOGICAL_AND)" (265) 305 455
+"print (T_PRINT)" (266) 355
+"yield (T_YIELD)" (267) 356 361 362 363 364
+">>= (T_SR_EQUAL)" (268) 293
+"<<= (T_SL_EQUAL)" (269) 292
+"^= (T_XOR_EQUAL)" (270) 291
+"|= (T_OR_EQUAL)" (271) 290
+"&= (T_AND_EQUAL)" (272) 289
+"%= (T_MOD_EQUAL)" (273) 288
+".= (T_CONCAT_EQUAL)" (274) 287
+"/= (T_DIV_EQUAL)" (275) 286
+"*= (T_MUL_EQUAL)" (276) 285
+"-= (T_MINUS_EQUAL)" (277) 284
+"+= (T_PLUS_EQUAL)" (278) 283
+"|| (T_BOOLEAN_OR)" (279) 299 458
+"&& (T_BOOLEAN_AND)" (280) 301 457
+"!== (T_IS_NOT_IDENTICAL)" (281) 323 460
+"=== (T_IS_IDENTICAL)" (282) 322 459
+"!= (T_IS_NOT_EQUAL)" (283) 325 462
+"== (T_IS_EQUAL)" (284) 324 461
+">= (T_IS_GREATER_OR_EQUAL)" (285) 329 466
+"<= (T_IS_SMALLER_OR_EQUAL)" (286) 327 465
+">> (T_SR)" (287) 317 452
+"<< (T_SL)" (288) 316 451
+"instanceof (T_INSTANCEOF)" (289) 330
+"(unset) (T_UNSET_CAST)" (290) 347
+"(bool) (T_BOOL_CAST)" (291) 346
+"(object) (T_OBJECT_CAST)" (292) 345
+"(array) (T_ARRAY_CAST)" (293) 344
+"(string) (T_STRING_CAST)" (294) 343
+"(double) (T_DOUBLE_CAST)" (295) 342
+"(int) (T_INT_CAST)" (296) 341
+"-- (T_DEC)" (297) 296 297
+"++ (T_INC)" (298) 294 295
+"clone (T_CLONE)" (299) 282
+"new (T_NEW)" (300) 275 281
+"exit (T_EXIT)" (301) 348
+"if (T_IF)" (302) 52 55
+"elseif (T_ELSEIF)" (303) 169 172
+"else (T_ELSE)" (304) 174 176
+"endif (T_ENDIF)" (305) 55
+"integer number (T_LNUMBER)" (306) 417
+"floating-point number (T_DNUMBER)" (307) 418
+"identifier (T_STRING)" (308) 5 6 23 25 29 31 35 37 38 39 48 95 122
+ 124 126 152 153 214 229 231 232 254 255 429 539 566 570 586 587
+"variable name (T_STRING_VARNAME)" (309) 472 568
+"variable (T_VARIABLE)" (310) 101 111 181 182 200 203 204 205 206 250
+ 251 252 253 373 374 375 376 529 563 565 566 572
+"number (T_NUM_STRING)" (311) 571
+T_INLINE_HTML (312) 79
T_CHARACTER (313)
T_BAD_CHARACTER (314)
-"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" (315) 399
- 413 515 517
-"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (316) 353 405
-"echo (T_ECHO)" (317) 64
-"do (T_DO)" (318) 47
-"while (T_WHILE)" (319) 44 47
-"endwhile (T_ENDWHILE)" (320) 150
-"for (T_FOR)" (321) 51
-"endfor (T_ENDFOR)" (322) 131
-"foreach (T_FOREACH)" (323) 70 73
-"endforeach (T_ENDFOREACH)" (324) 133
-"declare (T_DECLARE)" (325) 75
-"enddeclare (T_ENDDECLARE)" (326) 135
-"as (T_AS)" (327) 21 23 70 73 218 219
-"switch (T_SWITCH)" (328) 53
-"endswitch (T_ENDSWITCH)" (329) 140 141
-"case (T_CASE)" (330) 144
-"default (T_DEFAULT)" (331) 146
-"break (T_BREAK)" (332) 54 55
-"continue (T_CONTINUE)" (333) 56 57
-"goto (T_GOTO)" (334) 81
-"function (T_FUNCTION)" (335) 356
-"const (T_CONST)" (336) 25 241
-"return (T_RETURN)" (337) 58 59 60
-"try (T_TRY)" (338) 79
-"catch (T_CATCH)" (339) 87 97
-"finally (T_FINALLY)" (340) 90
-"throw (T_THROW)" (341) 80
-"use (T_USE)" (342) 16 201 358
-"insteadof (T_INSTEADOF)" (343) 212
-"global (T_GLOBAL)" (344) 62
-"public (T_PUBLIC)" (345) 230
-"protected (T_PROTECTED)" (346) 231
-"private (T_PRIVATE)" (347) 232
-"final (T_FINAL)" (348) 114 235
-"abstract (T_ABSTRACT)" (349) 112 234
-"static (T_STATIC)" (350) 63 233 346 379
-"var (T_VAR)" (351) 225
-"unset (T_UNSET)" (352) 67
-"isset (T_ISSET)" (353) 528
-"empty (T_EMPTY)" (354) 529 530
-"__halt_compiler (T_HALT_COMPILER)" (355) 10 32
-"class (T_CLASS)" (356) 111 112 114 543 544
-"trait (T_TRAIT)" (357) 113
-"interface (T_INTERFACE)" (358) 117
-"extends (T_EXTENDS)" (359) 116 119
-"implements (T_IMPLEMENTS)" (360) 121
-"-> (T_OBJECT_OPERATOR)" (361) 390 394 454 459 521
-"=> (T_DOUBLE_ARROW)" (362) 125 349 350 441 443 506 508 510 512
-"list (T_LIST)" (363) 129 263 502
-"array (T_ARRAY)" (364) 172 354 422
-"callable (T_CALLABLE)" (365) 173
-"__CLASS__ (T_CLASS_C)" (366) 425 436
-"__TRAIT__ (T_TRAIT_C)" (367) 409
-"__METHOD__ (T_METHOD_C)" (368) 410
-"__FUNCTION__ (T_FUNC_C)" (369) 411
-"__LINE__ (T_LINE)" (370) 406
-"__FILE__ (T_FILE)" (371) 407
+"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" (315) 413
+ 427 560 562
+"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (316) 367 419
+"echo (T_ECHO)" (317) 78
+"do (T_DO)" (318) 61
+"while (T_WHILE)" (319) 58 61
+"endwhile (T_ENDWHILE)" (320) 166
+"for (T_FOR)" (321) 65
+"endfor (T_ENDFOR)" (322) 147
+"foreach (T_FOREACH)" (323) 84 87
+"endforeach (T_ENDFOREACH)" (324) 149
+"declare (T_DECLARE)" (325) 89
+"enddeclare (T_ENDDECLARE)" (326) 151
+"as (T_AS)" (327) 23 25 29 31 35 37 84 87 232 233
+"switch (T_SWITCH)" (328) 67
+"endswitch (T_ENDSWITCH)" (329) 156 157
+"case (T_CASE)" (330) 160
+"default (T_DEFAULT)" (331) 162
+"break (T_BREAK)" (332) 68 69
+"continue (T_CONTINUE)" (333) 70 71
+"goto (T_GOTO)" (334) 95
+"function (T_FUNCTION)" (335) 17 370
+"const (T_CONST)" (336) 18 39 255
+"return (T_RETURN)" (337) 72 73 74
+"try (T_TRY)" (338) 93
+"catch (T_CATCH)" (339) 101 111
+"finally (T_FINALLY)" (340) 104
+"throw (T_THROW)" (341) 94
+"use (T_USE)" (342) 16 17 18 215 372
+"insteadof (T_INSTEADOF)" (343) 226
+"global (T_GLOBAL)" (344) 76
+"public (T_PUBLIC)" (345) 244
+"protected (T_PROTECTED)" (346) 245
+"private (T_PRIVATE)" (347) 246
+"final (T_FINAL)" (348) 130 249
+"abstract (T_ABSTRACT)" (349) 128 248
+"static (T_STATIC)" (350) 77 247 360 393
+"var (T_VAR)" (351) 239
+"unset (T_UNSET)" (352) 81
+"isset (T_ISSET)" (353) 573
+"empty (T_EMPTY)" (354) 574 575
+"__halt_compiler (T_HALT_COMPILER)" (355) 10 46
+"class (T_CLASS)" (356) 127 128 130 588 589
+"trait (T_TRAIT)" (357) 129
+"interface (T_INTERFACE)" (358) 133
+"extends (T_EXTENDS)" (359) 132 135
+"implements (T_IMPLEMENTS)" (360) 137
+"-> (T_OBJECT_OPERATOR)" (361) 404 408 499 504 566
+"=> (T_DOUBLE_ARROW)" (362) 141 363 364 486 488 551 553 555 557
+"list (T_LIST)" (363) 145 277 547
+"array (T_ARRAY)" (364) 184 368 431
+"callable (T_CALLABLE)" (365) 185
+"__CLASS__ (T_CLASS_C)" (366) 439 481
+"__TRAIT__ (T_TRAIT_C)" (367) 423
+"__METHOD__ (T_METHOD_C)" (368) 424
+"__FUNCTION__ (T_FUNC_C)" (369) 425
+"__LINE__ (T_LINE)" (370) 420
+"__FILE__ (T_FILE)" (371) 421
"comment (T_COMMENT)" (372)
"doc comment (T_DOC_COMMENT)" (373)
"open tag (T_OPEN_TAG)" (374)
"open tag with echo (T_OPEN_TAG_WITH_ECHO)" (375)
"close tag (T_CLOSE_TAG)" (376)
"whitespace (T_WHITESPACE)" (377)
-"heredoc start (T_START_HEREDOC)" (378) 413 414 435
-"heredoc end (T_END_HEREDOC)" (379) 413 414 435
-"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (380) 522 523
-"{$ (T_CURLY_OPEN)" (381) 524
-":: (T_PAAMAYIM_NEKUDOTAYIM)" (382) 217 370 372 374 376 426 469 470
- 541 542 543 544
-"namespace (T_NAMESPACE)" (383) 11 13 15 366 381 384 418 431
-"__NAMESPACE__ (T_NS_C)" (384) 412
-"__DIR__ (T_DIR)" (385) 408
-"\\ (T_NS_SEPARATOR)" (386) 6 22 23 366 368 381 382 384 385 418 419
- 431 432
-
-
-Non-terminaux, suivis des règles où ils apparaissent
-
-$accept (160)
- à gauche: 0
-start (161)
- à gauche: 1, à droite: 0
-top_statement_list (162)
- à gauche: 3 4, à droite: 1 3 13 15
-$@1 (163)
- à gauche: 2, à droite: 3
-namespace_name (164)
- à gauche: 5 6, à droite: 6 11 13 20 21 22 23 364 366 368 380
- 381 382 383 384 385 417 418 419 430 431 432
-top_statement (165)
- à gauche: 7 8 9 10 11 13 15 16 17, à droite: 3
-$@2 (166)
- à gauche: 12, à droite: 13
-$@3 (167)
- à gauche: 14, à droite: 15
-use_declarations (168)
- à gauche: 18 19, à droite: 16 18
-use_declaration (169)
- à gauche: 20 21 22 23, à droite: 18 19
-constant_declaration (170)
- à gauche: 24 25, à droite: 17 24
-inner_statement_list (171)
- à gauche: 27 28, à droite: 27 35 41 79 87 90 97 106 131 133 135
- 144 146 150 156 160 223 344 346
-$@4 (172)
- à gauche: 26, à droite: 27
-inner_statement (173)
- à gauche: 29 30 31 32, à droite: 27
-statement (174)
- à gauche: 33 34, à droite: 7 29 38 47 130 132 134 149 153 158
-unticked_statement (175)
- à gauche: 35 38 41 44 47 51 53 54 55 56 57 58 59 60 61 62 63 64
- 65 66 67 70 73 75 76 79 80 81, à droite: 33
-$@5 (176)
- à gauche: 36, à droite: 38
-$@6 (177)
- à gauche: 37, à droite: 38
-$@7 (178)
- à gauche: 39, à droite: 41
-$@8 (179)
- à gauche: 40, à droite: 41
-$@9 (180)
- à gauche: 42, à droite: 44
-@10 (181)
- à gauche: 43, à droite: 44
-$@11 (182)
- à gauche: 45, à droite: 47
-$@12 (183)
- à gauche: 46, à droite: 47
-$@13 (184)
- à gauche: 48, à droite: 51
-$@14 (185)
- à gauche: 49, à droite: 51
-$@15 (186)
- à gauche: 50, à droite: 51
-$@16 (187)
- à gauche: 52, à droite: 53
-$@17 (188)
- à gauche: 68, à droite: 70
-$@18 (189)
- à gauche: 69, à droite: 70
-$@19 (190)
- à gauche: 71, à droite: 73
-$@20 (191)
- à gauche: 72, à droite: 73
-$@21 (192)
- à gauche: 74, à droite: 75
-$@22 (193)
- à gauche: 77, à droite: 79
-$@23 (194)
- à gauche: 78, à droite: 79
-catch_statement (195)
- à gauche: 82 87, à droite: 79
-$@24 (196)
- à gauche: 83, à droite: 87
-$@25 (197)
- à gauche: 84, à droite: 87
-$@26 (198)
- à gauche: 85, à droite: 87
-$@27 (199)
- à gauche: 86, à droite: 87
-finally_statement (200)
- à gauche: 88 90, à droite: 79
-$@28 (201)
- à gauche: 89, à droite: 90
-additional_catches (202)
- à gauche: 91 92, à droite: 87
-non_empty_additional_catches (203)
- à gauche: 93 94, à droite: 91 94
-additional_catch (204)
- à gauche: 97, à droite: 93 94
-@29 (205)
- à gauche: 95, à droite: 97
-$@30 (206)
- à gauche: 96, à droite: 97
-unset_variables (207)
- à gauche: 98 99, à droite: 67 99
-unset_variable (208)
- à gauche: 100, à droite: 98 99
-function_declaration_statement (209)
- à gauche: 101, à droite: 8 30
-class_declaration_statement (210)
- à gauche: 102, à droite: 9 31
-is_reference (211)
- à gauche: 103 104, à droite: 106 200 344 346
-unticked_function_declaration_statement (212)
- à gauche: 106, à droite: 101
-$@31 (213)
- à gauche: 105, à droite: 106
-unticked_class_declaration_statement (214)
- à gauche: 108 110, à droite: 102
-$@32 (215)
- à gauche: 107, à droite: 108
-$@33 (216)
- à gauche: 109, à droite: 110
-class_entry_type (217)
- à gauche: 111 112 113 114, à droite: 108
-extends_from (218)
- à gauche: 115 116, à droite: 108
-interface_entry (219)
- à gauche: 117, à droite: 110
-interface_extends_list (220)
- à gauche: 118 119, à droite: 110
-implements_list (221)
- à gauche: 120 121, à droite: 108
-interface_list (222)
- à gauche: 122 123, à droite: 119 121 123
-foreach_optional_arg (223)
- à gauche: 124 125, à droite: 70 73
-foreach_variable (224)
- à gauche: 126 127 129, à droite: 70 73 125
-$@34 (225)
- à gauche: 128, à droite: 129
-for_statement (226)
- à gauche: 130 131, à droite: 51
-foreach_statement (227)
- à gauche: 132 133, à droite: 70 73
-declare_statement (228)
- à gauche: 134 135, à droite: 75
-declare_list (229)
- à gauche: 136 137, à droite: 75 137
-switch_case_list (230)
- à gauche: 138 139 140 141, à droite: 53
-case_list (231)
- à gauche: 142 144 146, à droite: 138 139 140 141 144 146
-$@35 (232)
- à gauche: 143, à droite: 144
-$@36 (233)
- à gauche: 145, à droite: 146
-case_separator (234)
- à gauche: 147 148, à droite: 144 146
-while_statement (235)
- à gauche: 149 150, à droite: 44
-elseif_list (236)
- à gauche: 151 153, à droite: 38 153
-$@37 (237)
- à gauche: 152, à droite: 153
-new_elseif_list (238)
- à gauche: 154 156, à droite: 41 156
-$@38 (239)
- à gauche: 155, à droite: 156
-else_single (240)
- à gauche: 157 158, à droite: 38
-new_else_single (241)
- à gauche: 159 160, à droite: 41
-parameter_list (242)
- à gauche: 161 162, à droite: 106 200 344 346
-non_empty_parameter_list (243)
- à gauche: 163 164 165 166 167 168 169 170, à droite: 161 167
- 168 169 170
-optional_class_type (244)
- à gauche: 171 172 173 174, à droite: 163 164 165 166 167 168
- 169 170
-function_call_parameter_list (245)
- à gauche: 175 176 177, à droite: 364 366 368 370 372 374 376
- 378 402 463
-non_empty_function_call_parameter_list (246)
- à gauche: 178 179 180 181 182 183, à droite: 176 181 182 183
-global_var_list (247)
- à gauche: 184 185, à droite: 62 184
-global_var (248)
- à gauche: 186 187 188, à droite: 184 185
-static_var_list (249)
- à gauche: 189 190 191 192, à droite: 63 189 190
-class_statement_list (250)
- à gauche: 193 194, à droite: 108 110 193
-class_statement (251)
- à gauche: 196 197 198 200, à droite: 193
-$@39 (252)
- à gauche: 195, à droite: 196
-$@40 (253)
- à gauche: 199, à droite: 200
-trait_use_statement (254)
- à gauche: 201, à droite: 198
-trait_list (255)
- à gauche: 202 203, à droite: 201 203
-trait_adaptations (256)
- à gauche: 204 205, à droite: 201
-trait_adaptation_list (257)
- à gauche: 206 207, à droite: 205
-non_empty_trait_adaptation_list (258)
- à gauche: 208 209, à droite: 207 209
-trait_adaptation_statement (259)
- à gauche: 210 211, à droite: 208 209
-trait_precedence (260)
- à gauche: 212, à droite: 210
-trait_reference_list (261)
- à gauche: 213 214, à droite: 212 214
-trait_method_reference (262)
- à gauche: 215 216, à droite: 218 219
-trait_method_reference_fully_qualified (263)
- à gauche: 217, à droite: 212 216
-trait_alias (264)
- à gauche: 218 219, à droite: 211
-trait_modifiers (265)
- à gauche: 220 221, à droite: 218
-method_body (266)
- à gauche: 222 223, à droite: 200
-variable_modifiers (267)
- à gauche: 224 225, à droite: 196
-method_modifiers (268)
- à gauche: 226 227, à droite: 200
-non_empty_member_modifiers (269)
- à gauche: 228 229, à droite: 224 227 229
-member_modifier (270)
- à gauche: 230 231 232 233 234 235, à droite: 219 221 228 229
-class_variable_declaration (271)
- à gauche: 236 237 238 239, à droite: 196 236 237
-class_constant_declaration (272)
- à gauche: 240 241, à droite: 197 240
-echo_expr_list (273)
- à gauche: 242 243, à droite: 64 242
-for_expr (274)
- à gauche: 244 245, à droite: 51
-non_empty_for_expr (275)
- à gauche: 247 248, à droite: 245 247
-$@41 (276)
- à gauche: 246, à droite: 247
-chaining_method_or_property (277)
- à gauche: 249 250, à droite: 249 254 256
-chaining_dereference (278)
- à gauche: 251 252, à droite: 251 254 255
-chaining_instance_call (279)
- à gauche: 254 255 256, à droite: 259
-$@42 (280)
- à gauche: 253, à droite: 254
-instance_call (281)
- à gauche: 257 259, à droite: 320
-$@43 (282)
- à gauche: 258, à droite: 259
-new_expr (283)
- à gauche: 261, à droite: 318 320
-$@44 (284)
- à gauche: 260, à droite: 261
-expr_without_variable (285)
- à gauche: 263 264 265 267 268 269 270 271 272 273 274 275 276
- 277 278 279 280 281 282 283 285 287 289 291 292 293 294 295 296
- 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
- 313 314 315 316 317 318 320 323 325 326 327 328 329 330 331 332
- 333 334 336 337 338 339 340 341 342 344 346, à droite: 59 73 178
- 181 347 349 446 530 540
-$@45 (286)
- à gauche: 262, à droite: 263
-$@46 (287)
- à gauche: 266, à droite: 267
-$@47 (288)
- à gauche: 284, à droite: 285
-$@48 (289)
- à gauche: 286, à droite: 287
-$@49 (290)
- à gauche: 288, à droite: 289
-$@50 (291)
- à gauche: 290, à droite: 291
-@51 (292)
- à gauche: 319, à droite: 320
-$@52 (293)
- à gauche: 321, à droite: 323
-$@53 (294)
- à gauche: 322, à droite: 323
-$@54 (295)
- à gauche: 324, à droite: 325
-$@55 (296)
- à gauche: 335, à droite: 336
-@56 (297)
- à gauche: 343, à droite: 344
-@57 (298)
- à gauche: 345, à droite: 346
-yield_expr (299)
- à gauche: 347 348 349 350, à droite: 61 177 448
-combined_scalar_offset (300)
- à gauche: 351 352 353, à droite: 338 352
-combined_scalar (301)
- à gauche: 354 355, à droite: 339 351
-function (302)
- à gauche: 356, à droite: 106 200 344 346
-lexical_vars (303)
- à gauche: 357 358, à droite: 344 346
-lexical_var_list (304)
- à gauche: 359 360 361 362, à droite: 358 359 360
-function_call (305)
- à gauche: 364 366 368 370 372 374 376 378, à droite: 474 477
-@58 (306)
- à gauche: 363, à droite: 364
-@59 (307)
- à gauche: 365, à droite: 366
-@60 (308)
- à gauche: 367, à droite: 368
-@61 (309)
- à gauche: 369, à droite: 370
-$@62 (310)
- à gauche: 371, à droite: 372
-$@63 (311)
- à gauche: 373, à droite: 374
-$@64 (312)
- à gauche: 375, à droite: 376
-$@65 (313)
- à gauche: 377, à droite: 378
-class_name (314)
- à gauche: 379 380 381 382, à droite: 370 372 386 426 469 541
- 543 544
-fully_qualified_class_name (315)
- à gauche: 383 384 385, à droite: 87 97 116 122 123 174 202 203
- 213 214 217
-class_name_reference (316)
- à gauche: 386 387, à droite: 261 267 316
-dynamic_class_name_reference (317)
- à gauche: 390 391, à droite: 387
-$@66 (318)
- à gauche: 388, à droite: 390
-$@67 (319)
- à gauche: 389, à droite: 390
-dynamic_class_name_variable_properties (320)
- à gauche: 392 393, à droite: 390 392
-dynamic_class_name_variable_property (321)
- à gauche: 394, à droite: 392
-exit_expr (322)
- à gauche: 395 396 397, à droite: 334
-backticks_expr (323)
- à gauche: 398 399 400, à droite: 340
-ctor_arguments (324)
- à gauche: 401 402, à droite: 261 267
-common_scalar (325)
- à gauche: 403 404 405 406 407 408 409 410 411 412 413 414, à droite:
- 415 433
-static_scalar (326)
- à gauche: 415 416 417 418 419 420 421 422 423 424 425, à droite:
- 24 25 136 137 165 166 169 170 190 192 237 239 240 241 420 421 441
- 442 443 444
-static_class_constant (327)
- à gauche: 426, à droite: 424
-scalar (328)
- à gauche: 427 428 429 430 431 432 433 434 435 436, à droite:
- 337
-static_array_pair_list (329)
- à gauche: 437 438, à droite: 422 423
-possible_comma (330)
- à gauche: 439 440, à droite: 438 505
-non_empty_static_array_pair_list (331)
- à gauche: 441 442 443 444, à droite: 438 441 442
-expr (332)
- à gauche: 445 446, à droite: 55 57 66 80 144 188 242 243 247
- 248 263 264 268 269 270 271 272 273 274 275 276 277 278 279 285
- 287 289 291 292 293 294 295 296 297 298 299 300 301 302 303 304
- 305 306 307 308 309 310 311 312 313 314 315 316 323 325 327 328
- 329 330 331 332 333 336 341 349 350 447 482 485 487 492 495 506
- 507 508 509 510 512 522 523 531 532 533 534 535
-parenthesis_expr (333)
- à gauche: 447 448, à droite: 38 41 44 47 53 153 156 317 397
-r_variable (334)
- à gauche: 449, à droite: 187 445
-w_variable (335)
- à gauche: 450, à droite: 180 183 510 511 512 513
-rw_variable (336)
- à gauche: 451, à droite: 280 281 282 283
-variable (337)
- à gauche: 454 455, à droite: 60 70 100 126 127 179 182 264 265
- 267 269 270 271 272 273 274 275 276 277 278 279 348 350 449 450
- 451 500 524 529 539
-$@68 (338)
- à gauche: 452, à droite: 454
-$@69 (339)
- à gauche: 453, à droite: 454
-variable_properties (340)
- à gauche: 456 457, à droite: 454 456
-variable_property (341)
- à gauche: 459, à droite: 249 250 456
-$@70 (342)
- à gauche: 458, à droite: 459
-array_method_dereference (343)
- à gauche: 460 461, à droite: 460 465
-method (344)
- à gauche: 463, à droite: 461 464
-@71 (345)
- à gauche: 462, à droite: 463
-method_or_not (346)
- à gauche: 464 465 466, à droite: 454 459
-variable_without_objects (347)
- à gauche: 467 468, à droite: 372 376 378 469 470 490
-static_member (348)
- à gauche: 469 470, à droite: 480
-variable_class_name (349)
- à gauche: 471, à droite: 374 376 470 542
-array_function_dereference (350)
- à gauche: 472 474, à droite: 472 476
-$@72 (351)
- à gauche: 473, à droite: 474
-base_variable_with_function_calls (352)
- à gauche: 475 476 477, à droite: 454 455
-base_variable (353)
- à gauche: 478 479 480, à droite: 390 391 475
-reference_variable (354)
- à gauche: 481 482 483, à droite: 467 468 471 478 479 481 482
-compound_variable (355)
- à gauche: 484 485, à droite: 483
-dim_offset (356)
- à gauche: 486 487, à droite: 251 252 351 352 353 460 461 472
- 474 481 491
-object_property (357)
- à gauche: 488 490, à droite: 390 394 454 459
-$@73 (358)
- à gauche: 489, à droite: 490
-object_dim_list (359)
- à gauche: 491 492 493, à droite: 488 491 492
-variable_name (360)
- à gauche: 494 495, à droite: 370 374 493
-simple_indirect_reference (361)
- à gauche: 496 497, à droite: 468 479 497
-assignment_list (362)
- à gauche: 498 499, à droite: 129 263 498 502
-assignment_list_element (363)
- à gauche: 500 502 503, à droite: 498 499
-$@74 (364)
- à gauche: 501, à droite: 502
-array_pair_list (365)
- à gauche: 504 505, à droite: 354 355
-non_empty_array_pair_list (366)
- à gauche: 506 507 508 509 510 511 512 513, à droite: 505 506
- 507 510 511
-encaps_list (367)
- à gauche: 514 515 516 517, à droite: 400 434 435 514 515
-encaps_var (368)
- à gauche: 518 520 521 522 523 524, à droite: 514 516 517
-$@75 (369)
- à gauche: 519, à droite: 520
-encaps_var_offset (370)
- à gauche: 525 526 527, à droite: 520
-internal_functions_in_yacc (371)
- à gauche: 528 529 530 531 532 533 534 535, à droite: 326
-isset_variables (372)
- à gauche: 536 538, à droite: 528 538
-$@76 (373)
- à gauche: 537, à droite: 538
-isset_variable (374)
- à gauche: 539 540, à droite: 536 538
-class_constant (375)
- à gauche: 541 542, à droite: 429
-static_class_name_scalar (376)
- à gauche: 543, à droite: 416
-class_name_scalar (377)
- à gauche: 544, à droite: 428
-
-
-état 0
+"heredoc start (T_START_HEREDOC)" (378) 427 428 480
+"heredoc end (T_END_HEREDOC)" (379) 427 428 480
+"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (380) 567 568
+"{$ (T_CURLY_OPEN)" (381) 569
+":: (T_PAAMAYIM_NEKUDOTAYIM)" (382) 231 384 386 388 390 429 514 515
+ 586 587 588 589
+"namespace (T_NAMESPACE)" (383) 11 13 15 380 395 398 436 476
+"__NAMESPACE__ (T_NS_C)" (384) 426
+"__DIR__ (T_DIR)" (385) 422
+"\\ (T_NS_SEPARATOR)" (386) 6 24 25 30 31 36 37 380 382 395 396 398
+ 399 436 437 476 477
+"... (T_ELLIPSIS)" (387) 120 193 197
+
+
+Nonterminals, with rules where they appear
+
+$accept (161)
+ on left: 0
+start (162)
+ on left: 1, on right: 0
+top_statement_list (163)
+ on left: 3 4, on right: 1 3 13 15
+$@1 (164)
+ on left: 2, on right: 3
+namespace_name (165)
+ on left: 5 6, on right: 6 11 13 22 23 24 25 28 29 30 31 34 35 36
+ 37 378 380 382 394 395 396 397 398 399 435 436 437 475 476 477
+top_statement (166)
+ on left: 7 8 9 10 11 13 15 16 17 18 19, on right: 3
+$@2 (167)
+ on left: 12, on right: 13
+$@3 (168)
+ on left: 14, on right: 15
+use_declarations (169)
+ on left: 20 21, on right: 16 20
+use_declaration (170)
+ on left: 22 23 24 25, on right: 20 21
+use_function_declarations (171)
+ on left: 26 27, on right: 17 26
+use_function_declaration (172)
+ on left: 28 29 30 31, on right: 26 27
+use_const_declarations (173)
+ on left: 32 33, on right: 18 32
+use_const_declaration (174)
+ on left: 34 35 36 37, on right: 32 33
+constant_declaration (175)
+ on left: 38 39, on right: 19 38
+inner_statement_list (176)
+ on left: 41 42, on right: 41 49 55 93 101 104 111 122 147 149 151
+ 160 162 166 172 176 237 358 360
+$@4 (177)
+ on left: 40, on right: 41
+inner_statement (178)
+ on left: 43 44 45 46, on right: 41
+statement (179)
+ on left: 47 48, on right: 7 43 52 61 146 148 150 165 169 174
+unticked_statement (180)
+ on left: 49 52 55 58 61 65 67 68 69 70 71 72 73 74 75 76 77 78
+ 79 80 81 84 87 89 90 93 94 95, on right: 47
+$@5 (181)
+ on left: 50, on right: 52
+$@6 (182)
+ on left: 51, on right: 52
+$@7 (183)
+ on left: 53, on right: 55
+$@8 (184)
+ on left: 54, on right: 55
+$@9 (185)
+ on left: 56, on right: 58
+@10 (186)
+ on left: 57, on right: 58
+$@11 (187)
+ on left: 59, on right: 61
+$@12 (188)
+ on left: 60, on right: 61
+$@13 (189)
+ on left: 62, on right: 65
+$@14 (190)
+ on left: 63, on right: 65
+$@15 (191)
+ on left: 64, on right: 65
+$@16 (192)
+ on left: 66, on right: 67
+$@17 (193)
+ on left: 82, on right: 84
+$@18 (194)
+ on left: 83, on right: 84
+$@19 (195)
+ on left: 85, on right: 87
+$@20 (196)
+ on left: 86, on right: 87
+$@21 (197)
+ on left: 88, on right: 89
+$@22 (198)
+ on left: 91, on right: 93
+$@23 (199)
+ on left: 92, on right: 93
+catch_statement (200)
+ on left: 96 101, on right: 93
+$@24 (201)
+ on left: 97, on right: 101
+$@25 (202)
+ on left: 98, on right: 101
+$@26 (203)
+ on left: 99, on right: 101
+$@27 (204)
+ on left: 100, on right: 101
+finally_statement (205)
+ on left: 102 104, on right: 93
+$@28 (206)
+ on left: 103, on right: 104
+additional_catches (207)
+ on left: 105 106, on right: 101
+non_empty_additional_catches (208)
+ on left: 107 108, on right: 105 108
+additional_catch (209)
+ on left: 111, on right: 107 108
+@29 (210)
+ on left: 109, on right: 111
+$@30 (211)
+ on left: 110, on right: 111
+unset_variables (212)
+ on left: 112 113, on right: 81 113
+unset_variable (213)
+ on left: 114, on right: 112 113
+function_declaration_statement (214)
+ on left: 115, on right: 8 44
+class_declaration_statement (215)
+ on left: 116, on right: 9 45
+is_reference (216)
+ on left: 117 118, on right: 122 181 182 214 358 360
+is_variadic (217)
+ on left: 119 120, on right: 181 182
+unticked_function_declaration_statement (218)
+ on left: 122, on right: 115
+$@31 (219)
+ on left: 121, on right: 122
+unticked_class_declaration_statement (220)
+ on left: 124 126, on right: 116
+$@32 (221)
+ on left: 123, on right: 124
+$@33 (222)
+ on left: 125, on right: 126
+class_entry_type (223)
+ on left: 127 128 129 130, on right: 124
+extends_from (224)
+ on left: 131 132, on right: 124
+interface_entry (225)
+ on left: 133, on right: 126
+interface_extends_list (226)
+ on left: 134 135, on right: 126
+implements_list (227)
+ on left: 136 137, on right: 124
+interface_list (228)
+ on left: 138 139, on right: 135 137 139
+foreach_optional_arg (229)
+ on left: 140 141, on right: 84 87
+foreach_variable (230)
+ on left: 142 143 145, on right: 84 87 141
+$@34 (231)
+ on left: 144, on right: 145
+for_statement (232)
+ on left: 146 147, on right: 65
+foreach_statement (233)
+ on left: 148 149, on right: 84 87
+declare_statement (234)
+ on left: 150 151, on right: 89
+declare_list (235)
+ on left: 152 153, on right: 89 153
+switch_case_list (236)
+ on left: 154 155 156 157, on right: 67
+case_list (237)
+ on left: 158 160 162, on right: 154 155 156 157 160 162
+$@35 (238)
+ on left: 159, on right: 160
+$@36 (239)
+ on left: 161, on right: 162
+case_separator (240)
+ on left: 163 164, on right: 160 162
+while_statement (241)
+ on left: 165 166, on right: 58
+elseif_list (242)
+ on left: 167 169, on right: 52 169
+$@37 (243)
+ on left: 168, on right: 169
+new_elseif_list (244)
+ on left: 170 172, on right: 55 172
+$@38 (245)
+ on left: 171, on right: 172
+else_single (246)
+ on left: 173 174, on right: 52
+new_else_single (247)
+ on left: 175 176, on right: 55
+parameter_list (248)
+ on left: 177 178, on right: 122 214 358 360
+non_empty_parameter_list (249)
+ on left: 179 180, on right: 177 180
+parameter (250)
+ on left: 181 182, on right: 179 180
+optional_class_type (251)
+ on left: 183 184 185 186, on right: 181 182
+function_call_parameter_list (252)
+ on left: 187 188 189, on right: 378 380 382 384 386 388 390 392
+ 416 508
+non_empty_function_call_parameter_list (253)
+ on left: 190 191 192 193 194 195 196 197, on right: 188 194 195
+ 196 197
+global_var_list (254)
+ on left: 198 199, on right: 76 198
+global_var (255)
+ on left: 200 201 202, on right: 198 199
+static_var_list (256)
+ on left: 203 204 205 206, on right: 77 203 204
+class_statement_list (257)
+ on left: 207 208, on right: 124 126 207
+class_statement (258)
+ on left: 210 211 212 214, on right: 207
+$@39 (259)
+ on left: 209, on right: 210
+$@40 (260)
+ on left: 213, on right: 214
+trait_use_statement (261)
+ on left: 215, on right: 212
+trait_list (262)
+ on left: 216 217, on right: 215 217
+trait_adaptations (263)
+ on left: 218 219, on right: 215
+trait_adaptation_list (264)
+ on left: 220 221, on right: 219
+non_empty_trait_adaptation_list (265)
+ on left: 222 223, on right: 221 223
+trait_adaptation_statement (266)
+ on left: 224 225, on right: 222 223
+trait_precedence (267)
+ on left: 226, on right: 224
+trait_reference_list (268)
+ on left: 227 228, on right: 226 228
+trait_method_reference (269)
+ on left: 229 230, on right: 232 233
+trait_method_reference_fully_qualified (270)
+ on left: 231, on right: 226 230
+trait_alias (271)
+ on left: 232 233, on right: 225
+trait_modifiers (272)
+ on left: 234 235, on right: 232
+method_body (273)
+ on left: 236 237, on right: 214
+variable_modifiers (274)
+ on left: 238 239, on right: 210
+method_modifiers (275)
+ on left: 240 241, on right: 214
+non_empty_member_modifiers (276)
+ on left: 242 243, on right: 238 241 243
+member_modifier (277)
+ on left: 244 245 246 247 248 249, on right: 233 235 242 243
+class_variable_declaration (278)
+ on left: 250 251 252 253, on right: 210 250 251
+class_constant_declaration (279)
+ on left: 254 255, on right: 211 254
+echo_expr_list (280)
+ on left: 256 257, on right: 78 256
+for_expr (281)
+ on left: 258 259, on right: 65
+non_empty_for_expr (282)
+ on left: 261 262, on right: 259 261
+$@41 (283)
+ on left: 260, on right: 261
+chaining_method_or_property (284)
+ on left: 263 264, on right: 263 268 270
+chaining_dereference (285)
+ on left: 265 266, on right: 265 268 269
+chaining_instance_call (286)
+ on left: 268 269 270, on right: 273
+$@42 (287)
+ on left: 267, on right: 268
+instance_call (288)
+ on left: 271 273, on right: 334
+$@43 (289)
+ on left: 272, on right: 273
+new_expr (290)
+ on left: 275, on right: 332 334
+$@44 (291)
+ on left: 274, on right: 275
+expr_without_variable (292)
+ on left: 277 278 279 281 282 283 284 285 286 287 288 289 290 291
+ 292 293 294 295 296 297 299 301 303 305 306 307 308 309 310 311
+ 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
+ 328 329 330 331 332 334 337 339 340 341 342 343 344 345 346 347
+ 348 350 351 352 353 354 355 356 358 360, on right: 73 87 190 194
+ 361 363 491 575 585
+$@45 (293)
+ on left: 276, on right: 277
+$@46 (294)
+ on left: 280, on right: 281
+$@47 (295)
+ on left: 298, on right: 299
+$@48 (296)
+ on left: 300, on right: 301
+$@49 (297)
+ on left: 302, on right: 303
+$@50 (298)
+ on left: 304, on right: 305
+@51 (299)
+ on left: 333, on right: 334
+$@52 (300)
+ on left: 335, on right: 337
+$@53 (301)
+ on left: 336, on right: 337
+$@54 (302)
+ on left: 338, on right: 339
+$@55 (303)
+ on left: 349, on right: 350
+@56 (304)
+ on left: 357, on right: 358
+@57 (305)
+ on left: 359, on right: 360
+yield_expr (306)
+ on left: 361 362 363 364, on right: 75 189 493
+combined_scalar_offset (307)
+ on left: 365 366 367, on right: 352 366
+combined_scalar (308)
+ on left: 368 369, on right: 353 365
+function (309)
+ on left: 370, on right: 122 214 358 360
+lexical_vars (310)
+ on left: 371 372, on right: 358 360
+lexical_var_list (311)
+ on left: 373 374 375 376, on right: 372 373 374
+function_call (312)
+ on left: 378 380 382 384 386 388 390 392, on right: 519 522
+@58 (313)
+ on left: 377, on right: 378
+@59 (314)
+ on left: 379, on right: 380
+@60 (315)
+ on left: 381, on right: 382
+@61 (316)
+ on left: 383, on right: 384
+$@62 (317)
+ on left: 385, on right: 386
+$@63 (318)
+ on left: 387, on right: 388
+$@64 (319)
+ on left: 389, on right: 390
+$@65 (320)
+ on left: 391, on right: 392
+class_name (321)
+ on left: 393 394 395 396, on right: 384 386 400 429 514 586 588
+ 589
+fully_qualified_class_name (322)
+ on left: 397 398 399, on right: 101 111 132 138 139 186 216 217
+ 227 228 231
+class_name_reference (323)
+ on left: 400 401, on right: 275 281 330
+dynamic_class_name_reference (324)
+ on left: 404 405, on right: 401
+$@66 (325)
+ on left: 402, on right: 404
+$@67 (326)
+ on left: 403, on right: 404
+dynamic_class_name_variable_properties (327)
+ on left: 406 407, on right: 404 406
+dynamic_class_name_variable_property (328)
+ on left: 408, on right: 406
+exit_expr (329)
+ on left: 409 410 411, on right: 348
+backticks_expr (330)
+ on left: 412 413 414, on right: 354
+ctor_arguments (331)
+ on left: 415 416, on right: 275 281
+common_scalar (332)
+ on left: 417 418 419 420 421 422 423 424 425 426 427 428, on right:
+ 433 478
+static_class_constant (333)
+ on left: 429, on right: 438
+static_scalar (334)
+ on left: 430 431 432, on right: 38 39 152 153 182 204 206 251 253
+ 254 255 486 487 488 489
+static_scalar_value (335)
+ on left: 433 434 435 436 437 438 439 440, on right: 430 441 442
+ 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458
+ 459 460 461 462 463 464 465 466 467 468 469 470 471
+static_operation (336)
+ on left: 441 442 443 444 445 446 447 448 449 450 451 452 453 454
+ 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
+ 471, on right: 440
+scalar (337)
+ on left: 472 473 474 475 476 477 478 479 480 481, on right: 351
+static_array_pair_list (338)
+ on left: 482 483, on right: 431 432
+possible_comma (339)
+ on left: 484 485, on right: 483 550
+non_empty_static_array_pair_list (340)
+ on left: 486 487 488 489, on right: 483 486 487
+expr (341)
+ on left: 490 491, on right: 69 71 80 94 160 193 197 202 256 257
+ 261 262 277 278 282 283 284 285 286 287 288 289 290 291 292 293
+ 299 301 303 305 306 307 308 309 310 311 312 313 314 315 316 317
+ 318 319 320 321 322 323 324 325 326 327 328 329 330 337 339 341
+ 342 343 344 345 346 347 350 355 363 364 492 527 530 532 537 540
+ 551 552 553 554 555 557 567 568 576 577 578 579 580
+parenthesis_expr (342)
+ on left: 492 493, on right: 52 55 58 61 67 169 172 331 411
+r_variable (343)
+ on left: 494, on right: 201 490
+w_variable (344)
+ on left: 495, on right: 192 196 555 556 557 558
+rw_variable (345)
+ on left: 496, on right: 294 295 296 297
+variable (346)
+ on left: 499 500, on right: 74 84 114 142 143 191 195 278 279 281
+ 283 284 285 286 287 288 289 290 291 292 293 362 364 494 495 496
+ 545 569 574 584
+$@68 (347)
+ on left: 497, on right: 499
+$@69 (348)
+ on left: 498, on right: 499
+variable_properties (349)
+ on left: 501 502, on right: 499 501
+variable_property (350)
+ on left: 504, on right: 263 264 501
+$@70 (351)
+ on left: 503, on right: 504
+array_method_dereference (352)
+ on left: 505 506, on right: 505 510
+method (353)
+ on left: 508, on right: 506 509
+@71 (354)
+ on left: 507, on right: 508
+method_or_not (355)
+ on left: 509 510 511, on right: 499 504
+variable_without_objects (356)
+ on left: 512 513, on right: 386 390 392 514 515 535
+static_member (357)
+ on left: 514 515, on right: 525
+variable_class_name (358)
+ on left: 516, on right: 388 390 515 587
+array_function_dereference (359)
+ on left: 517 519, on right: 517 521
+$@72 (360)
+ on left: 518, on right: 519
+base_variable_with_function_calls (361)
+ on left: 520 521 522, on right: 499 500
+base_variable (362)
+ on left: 523 524 525, on right: 404 405 520
+reference_variable (363)
+ on left: 526 527 528, on right: 512 513 516 523 524 526 527
+compound_variable (364)
+ on left: 529 530, on right: 528
+dim_offset (365)
+ on left: 531 532, on right: 265 266 365 366 367 505 506 517 519
+ 526 536
+object_property (366)
+ on left: 533 535, on right: 404 408 499 504
+$@73 (367)
+ on left: 534, on right: 535
+object_dim_list (368)
+ on left: 536 537 538, on right: 533 536 537
+variable_name (369)
+ on left: 539 540, on right: 384 388 538
+simple_indirect_reference (370)
+ on left: 541 542, on right: 513 524 542
+assignment_list (371)
+ on left: 543 544, on right: 145 277 543 547
+assignment_list_element (372)
+ on left: 545 547 548, on right: 543 544
+$@74 (373)
+ on left: 546, on right: 547
+array_pair_list (374)
+ on left: 549 550, on right: 368 369
+non_empty_array_pair_list (375)
+ on left: 551 552 553 554 555 556 557 558, on right: 550 551 552
+ 555 556
+encaps_list (376)
+ on left: 559 560 561 562, on right: 414 479 480 559 560
+encaps_var (377)
+ on left: 563 565 566 567 568 569, on right: 559 561 562
+$@75 (378)
+ on left: 564, on right: 565
+encaps_var_offset (379)
+ on left: 570 571 572, on right: 565
+internal_functions_in_yacc (380)
+ on left: 573 574 575 576 577 578 579 580, on right: 340
+isset_variables (381)
+ on left: 581 583, on right: 573 583
+$@76 (382)
+ on left: 582, on right: 583
+isset_variable (383)
+ on left: 584 585, on right: 581 583
+class_constant (384)
+ on left: 586 587, on right: 474
+static_class_name_scalar (385)
+ on left: 588, on right: 434
+class_name_scalar (386)
+ on left: 589, on right: 473
+
+
+state 0
0 $accept: . start "end of file"
- $défaut réduction par utilisation de la règle 4 (top_statement_list)
+ $default reduce using rule 4 (top_statement_list)
- start aller à l'état 1
- top_statement_list aller à l'état 2
+ start go to state 1
+ top_statement_list go to state 2
-état 1
+state 1
0 $accept: start . "end of file"
- "end of file" décalage et aller à l'état 3
+ "end of file" shift, and go to state 3
-état 2
+state 2
1 start: top_statement_list .
3 top_statement_list: top_statement_list . $@1 top_statement
- "end of file" réduction par utilisation de la règle 1 (start)
- $défaut réduction par utilisation de la règle 2 ($@1)
+ "end of file" reduce using rule 1 (start)
+ $default reduce using rule 2 ($@1)
- $@1 aller à l'état 4
+ $@1 go to state 4
-état 3
+state 3
0 $accept: start "end of file" .
- $défaut accepter
+ $default accept
-état 4
+state 4
3 top_statement_list: top_statement_list $@1 . top_statement
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "const (T_CONST)" décalage et aller à l'état 49
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "use (T_USE)" décalage et aller à l'état 53
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "final (T_FINAL)" décalage et aller à l'état 55
- "abstract (T_ABSTRACT)" décalage et aller à l'état 56
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "__halt_compiler (T_HALT_COMPILER)" décalage et aller à l'état 61
- "class (T_CLASS)" décalage et aller à l'état 62
- "trait (T_TRAIT)" décalage et aller à l'état 63
- "interface (T_INTERFACE)" décalage et aller à l'état 64
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 74
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- top_statement aller à l'état 85
- constant_declaration aller à l'état 86
- statement aller à l'état 87
- unticked_statement aller à l'état 88
- function_declaration_statement aller à l'état 89
- class_declaration_statement aller à l'état 90
- unticked_function_declaration_statement aller à l'état 91
- unticked_class_declaration_statement aller à l'état 92
- class_entry_type aller à l'état 93
- interface_entry aller à l'état 94
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 100
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 5
-
- 535 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 127
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 6
-
- 534 internal_functions_in_yacc: "require (T_REQUIRE)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 128
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 7
-
- 533 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')'
-
- '(' décalage et aller à l'état 129
-
-
-état 8
-
- 532 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 130
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 9
-
- 531 internal_functions_in_yacc: "include (T_INCLUDE)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 131
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 10
-
- 341 expr_without_variable: "print (T_PRINT)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 132
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 11
-
- 342 expr_without_variable: "yield (T_YIELD)" .
- 347 yield_expr: "yield (T_YIELD)" . expr_without_variable
- 348 | "yield (T_YIELD)" . variable
- 349 | "yield (T_YIELD)" . expr "=> (T_DOUBLE_ARROW)" expr_without_variable
- 350 | "yield (T_YIELD)" . expr "=> (T_DOUBLE_ARROW)" variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 342 (expr_without_variable)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 133
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 134
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 135
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 12
-
- 304 expr_without_variable: '+' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 136
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 13
-
- 305 expr_without_variable: '-' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 137
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 14
-
- 306 expr_without_variable: '!' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 138
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 15
-
- 307 expr_without_variable: '~' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 139
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 16
-
- 336 expr_without_variable: '@' . $@55 expr
-
- $défaut réduction par utilisation de la règle 335 ($@55)
-
- $@55 aller à l'état 140
-
-
-état 17
-
- 333 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 141
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 18
-
- 332 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 142
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 19
-
- 331 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 143
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 20
-
- 330 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 144
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 21
-
- 329 expr_without_variable: "(string) (T_STRING_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 145
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 22
-
- 328 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 146
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 23
-
- 327 expr_without_variable: "(int) (T_INT_CAST)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 147
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 24
-
- 283 expr_without_variable: "-- (T_DEC)" . rw_variable
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- rw_variable aller à l'état 153
- variable aller à l'état 154
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 25
-
- 281 expr_without_variable: "++ (T_INC)" . rw_variable
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- rw_variable aller à l'état 156
- variable aller à l'état 154
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 26
-
- 355 combined_scalar: '[' . array_pair_list ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 157
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 504 (array_pair_list)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 158
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- array_pair_list aller à l'état 159
- non_empty_array_pair_list aller à l'état 160
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 27
-
- 268 expr_without_variable: "clone (T_CLONE)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 161
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 28
-
- 261 new_expr: "new (T_NEW)" . class_name_reference $@44 ctor_arguments
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 162
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 163
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 164
- class_name aller à l'état 165
- class_name_reference aller à l'état 166
- dynamic_class_name_reference aller à l'état 167
- static_member aller à l'état 111
- variable_class_name aller à l'état 168
- base_variable aller à l'état 169
- reference_variable aller à l'état 170
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 171
-
-
-état 29
-
- 334 expr_without_variable: "exit (T_EXIT)" . exit_expr
-
- '(' décalage et aller à l'état 172
-
- $défaut réduction par utilisation de la règle 395 (exit_expr)
-
- exit_expr aller à l'état 173
- parenthesis_expr aller à l'état 174
-
-
-état 30
-
- 38 unticked_statement: "if (T_IF)" . parenthesis_expr $@5 statement $@6 elseif_list else_single
- 41 | "if (T_IF)" . parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- '(' décalage et aller à l'état 175
-
- parenthesis_expr aller à l'état 176
-
-
-état 31
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "const (T_CONST)" shift, and go to state 49
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "use (T_USE)" shift, and go to state 53
+ "global (T_GLOBAL)" shift, and go to state 54
+ "final (T_FINAL)" shift, and go to state 55
+ "abstract (T_ABSTRACT)" shift, and go to state 56
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 61
+ "class (T_CLASS)" shift, and go to state 62
+ "trait (T_TRAIT)" shift, and go to state 63
+ "interface (T_INTERFACE)" shift, and go to state 64
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 74
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ top_statement go to state 85
+ constant_declaration go to state 86
+ statement go to state 87
+ unticked_statement go to state 88
+ function_declaration_statement go to state 89
+ class_declaration_statement go to state 90
+ unticked_function_declaration_statement go to state 91
+ unticked_class_declaration_statement go to state 92
+ class_entry_type go to state 93
+ interface_entry go to state 94
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 100
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 5
+
+ 580 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 127
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 6
+
+ 579 internal_functions_in_yacc: "require (T_REQUIRE)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 128
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 7
+
+ 578 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')'
+
+ '(' shift, and go to state 129
+
+
+state 8
+
+ 577 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 130
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 9
+
+ 576 internal_functions_in_yacc: "include (T_INCLUDE)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 131
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 10
+
+ 355 expr_without_variable: "print (T_PRINT)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 132
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 11
+
+ 356 expr_without_variable: "yield (T_YIELD)" .
+ 361 yield_expr: "yield (T_YIELD)" . expr_without_variable
+ 362 | "yield (T_YIELD)" . variable
+ 363 | "yield (T_YIELD)" . expr "=> (T_DOUBLE_ARROW)" expr_without_variable
+ 364 | "yield (T_YIELD)" . expr "=> (T_DOUBLE_ARROW)" variable
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 356 (expr_without_variable)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 133
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 134
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 135
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 12
+
+ 318 expr_without_variable: '+' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 136
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 13
+
+ 319 expr_without_variable: '-' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 137
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 14
+
+ 320 expr_without_variable: '!' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 138
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 15
+
+ 321 expr_without_variable: '~' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 139
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 16
+
+ 350 expr_without_variable: '@' . $@55 expr
+
+ $default reduce using rule 349 ($@55)
+
+ $@55 go to state 140
+
+
+state 17
+
+ 347 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 141
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 18
+
+ 346 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 142
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 19
+
+ 345 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 143
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 20
+
+ 344 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 144
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 21
+
+ 343 expr_without_variable: "(string) (T_STRING_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 145
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 22
+
+ 342 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 146
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 23
+
+ 341 expr_without_variable: "(int) (T_INT_CAST)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 147
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 24
+
+ 297 expr_without_variable: "-- (T_DEC)" . rw_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ rw_variable go to state 153
+ variable go to state 154
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 25
+
+ 295 expr_without_variable: "++ (T_INC)" . rw_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ rw_variable go to state 156
+ variable go to state 154
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 26
+
+ 369 combined_scalar: '[' . array_pair_list ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 157
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 549 (array_pair_list)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 158
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ array_pair_list go to state 159
+ non_empty_array_pair_list go to state 160
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 27
+
+ 282 expr_without_variable: "clone (T_CLONE)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 161
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 28
+
+ 275 new_expr: "new (T_NEW)" . class_name_reference $@44 ctor_arguments
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 162
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 163
+ '$' shift, and go to state 81
+
+ namespace_name go to state 164
+ class_name go to state 165
+ class_name_reference go to state 166
+ dynamic_class_name_reference go to state 167
+ static_member go to state 111
+ variable_class_name go to state 168
+ base_variable go to state 169
+ reference_variable go to state 170
+ compound_variable go to state 117
+ simple_indirect_reference go to state 171
+
+
+state 29
+
+ 348 expr_without_variable: "exit (T_EXIT)" . exit_expr
+
+ '(' shift, and go to state 172
+
+ $default reduce using rule 409 (exit_expr)
+
+ exit_expr go to state 173
+ parenthesis_expr go to state 174
+
+
+state 30
+
+ 52 unticked_statement: "if (T_IF)" . parenthesis_expr $@5 statement $@6 elseif_list else_single
+ 55 | "if (T_IF)" . parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+ '(' shift, and go to state 175
+
+ parenthesis_expr go to state 176
+
+
+state 31
- 403 common_scalar: "integer number (T_LNUMBER)" .
+ 417 common_scalar: "integer number (T_LNUMBER)" .
- $défaut réduction par utilisation de la règle 403 (common_scalar)
+ $default reduce using rule 417 (common_scalar)
-état 32
+state 32
- 404 common_scalar: "floating-point number (T_DNUMBER)" .
+ 418 common_scalar: "floating-point number (T_DNUMBER)" .
- $défaut réduction par utilisation de la règle 404 (common_scalar)
+ $default reduce using rule 418 (common_scalar)
-état 33
+state 33
5 namespace_name: "identifier (T_STRING)" .
- 34 statement: "identifier (T_STRING)" . ':'
-
- ':' décalage et aller à l'état 177
-
- $défaut réduction par utilisation de la règle 5 (namespace_name)
-
-
-état 34
-
- 427 scalar: "variable name (T_STRING_VARNAME)" .
-
- $défaut réduction par utilisation de la règle 427 (scalar)
-
-
-état 35
-
- 484 compound_variable: "variable (T_VARIABLE)" .
-
- $défaut réduction par utilisation de la règle 484 (compound_variable)
-
-
-état 36
-
- 65 unticked_statement: T_INLINE_HTML .
-
- $défaut réduction par utilisation de la règle 65 (unticked_statement)
-
-
-état 37
-
- 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" . '[' dim_offset ']'
- 405 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
-
- '[' décalage et aller à l'état 178
-
- $défaut réduction par utilisation de la règle 405 (common_scalar)
-
-
-état 38
-
- 64 unticked_statement: "echo (T_ECHO)" . echo_expr_list ';'
+ 48 statement: "identifier (T_STRING)" . ':'
+
+ ':' shift, and go to state 177
+
+ $default reduce using rule 5 (namespace_name)
+
+
+state 34
+
+ 472 scalar: "variable name (T_STRING_VARNAME)" .
+
+ $default reduce using rule 472 (scalar)
+
+
+state 35
+
+ 529 compound_variable: "variable (T_VARIABLE)" .
+
+ $default reduce using rule 529 (compound_variable)
+
+
+state 36
+
+ 79 unticked_statement: T_INLINE_HTML .
+
+ $default reduce using rule 79 (unticked_statement)
+
+
+state 37
+
+ 367 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" . '[' dim_offset ']'
+ 419 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
+
+ '[' shift, and go to state 178
+
+ $default reduce using rule 419 (common_scalar)
+
+
+state 38
+
+ 78 unticked_statement: "echo (T_ECHO)" . echo_expr_list ';'
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- namespace_name aller à l'état 84
- echo_expr_list aller à l'état 179
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 180
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 39
-
- 47 unticked_statement: "do (T_DO)" . $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
-
- $défaut réduction par utilisation de la règle 45 ($@11)
-
- $@11 aller à l'état 181
-
-
-état 40
-
- 44 unticked_statement: "while (T_WHILE)" . $@9 parenthesis_expr @10 while_statement
-
- $défaut réduction par utilisation de la règle 42 ($@9)
-
- $@9 aller à l'état 182
-
-
-état 41
-
- 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
-
- '(' décalage et aller à l'état 183
-
-
-état 42
-
- 70 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 73 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
-
- '(' décalage et aller à l'état 184
-
-
-état 43
-
- 75 unticked_statement: "declare (T_DECLARE)" . $@21 '(' declare_list ')' declare_statement
-
- $défaut réduction par utilisation de la règle 74 ($@21)
-
- $@21 aller à l'état 185
-
-
-état 44
-
- 53 unticked_statement: "switch (T_SWITCH)" . parenthesis_expr $@16 switch_case_list
-
- '(' décalage et aller à l'état 175
-
- parenthesis_expr aller à l'état 186
-
-
-état 45
-
- 54 unticked_statement: "break (T_BREAK)" . ';'
- 55 | "break (T_BREAK)" . expr ';'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 187
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 188
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 46
-
- 56 unticked_statement: "continue (T_CONTINUE)" . ';'
- 57 | "continue (T_CONTINUE)" . expr ';'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 189
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 190
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 47
-
- 81 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';'
-
- "identifier (T_STRING)" décalage et aller à l'état 191
-
-
-état 48
-
- 356 function: "function (T_FUNCTION)" .
-
- $défaut réduction par utilisation de la règle 356 (function)
-
-
-état 49
-
- 25 constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
-
- "identifier (T_STRING)" décalage et aller à l'état 192
-
-
-état 50
-
- 58 unticked_statement: "return (T_RETURN)" . ';'
- 59 | "return (T_RETURN)" . expr_without_variable ';'
- 60 | "return (T_RETURN)" . variable ';'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 193
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 194
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 196
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 51
-
- 79 unticked_statement: "try (T_TRY)" . $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement
-
- $défaut réduction par utilisation de la règle 77 ($@22)
-
- $@22 aller à l'état 197
-
-
-état 52
-
- 80 unticked_statement: "throw (T_THROW)" . expr ';'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 198
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 53
+ namespace_name go to state 84
+ echo_expr_list go to state 179
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 180
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 39
+
+ 61 unticked_statement: "do (T_DO)" . $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
+
+ $default reduce using rule 59 ($@11)
+
+ $@11 go to state 181
+
+
+state 40
+
+ 58 unticked_statement: "while (T_WHILE)" . $@9 parenthesis_expr @10 while_statement
+
+ $default reduce using rule 56 ($@9)
+
+ $@9 go to state 182
+
+
+state 41
+
+ 65 unticked_statement: "for (T_FOR)" . '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
+
+ '(' shift, and go to state 183
+
+
+state 42
+
+ 84 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 87 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+
+ '(' shift, and go to state 184
+
+
+state 43
+
+ 89 unticked_statement: "declare (T_DECLARE)" . $@21 '(' declare_list ')' declare_statement
+
+ $default reduce using rule 88 ($@21)
+
+ $@21 go to state 185
+
+
+state 44
+
+ 67 unticked_statement: "switch (T_SWITCH)" . parenthesis_expr $@16 switch_case_list
+
+ '(' shift, and go to state 175
+
+ parenthesis_expr go to state 186
+
+
+state 45
+
+ 68 unticked_statement: "break (T_BREAK)" . ';'
+ 69 | "break (T_BREAK)" . expr ';'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 187
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 188
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 46
+
+ 70 unticked_statement: "continue (T_CONTINUE)" . ';'
+ 71 | "continue (T_CONTINUE)" . expr ';'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 189
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 190
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 47
+
+ 95 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';'
+
+ "identifier (T_STRING)" shift, and go to state 191
+
+
+state 48
+
+ 370 function: "function (T_FUNCTION)" .
+
+ $default reduce using rule 370 (function)
+
+
+state 49
+
+ 39 constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
+
+ "identifier (T_STRING)" shift, and go to state 192
+
+
+state 50
+
+ 72 unticked_statement: "return (T_RETURN)" . ';'
+ 73 | "return (T_RETURN)" . expr_without_variable ';'
+ 74 | "return (T_RETURN)" . variable ';'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 193
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 194
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 196
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 51
+
+ 93 unticked_statement: "try (T_TRY)" . $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement
+
+ $default reduce using rule 91 ($@22)
+
+ $@22 go to state 197
+
+
+state 52
+
+ 94 unticked_statement: "throw (T_THROW)" . expr ';'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 198
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 53
16 top_statement: "use (T_USE)" . use_declarations ';'
+ 17 | "use (T_USE)" . "function (T_FUNCTION)" use_function_declarations ';'
+ 18 | "use (T_USE)" . "const (T_CONST)" use_const_declarations ';'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 199
+ "identifier (T_STRING)" shift, and go to state 123
+ "function (T_FUNCTION)" shift, and go to state 199
+ "const (T_CONST)" shift, and go to state 200
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 201
- namespace_name aller à l'état 200
- use_declarations aller à l'état 201
- use_declaration aller à l'état 202
+ namespace_name go to state 202
+ use_declarations go to state 203
+ use_declaration go to state 204
-état 54
+state 54
- 62 unticked_statement: "global (T_GLOBAL)" . global_var_list ';'
+ 76 unticked_statement: "global (T_GLOBAL)" . global_var_list ';'
- "variable (T_VARIABLE)" décalage et aller à l'état 203
- '$' décalage et aller à l'état 204
+ "variable (T_VARIABLE)" shift, and go to state 205
+ '$' shift, and go to state 206
- global_var_list aller à l'état 205
- global_var aller à l'état 206
+ global_var_list go to state 207
+ global_var go to state 208
-état 55
+state 55
- 114 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)"
+ 130 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)"
- "class (T_CLASS)" décalage et aller à l'état 207
+ "class (T_CLASS)" shift, and go to state 209
-état 56
+state 56
- 112 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)"
+ 128 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)"
- "class (T_CLASS)" décalage et aller à l'état 208
+ "class (T_CLASS)" shift, and go to state 210
-état 57
+state 57
- 63 unticked_statement: "static (T_STATIC)" . static_var_list ';'
- 346 expr_without_variable: "static (T_STATIC)" . function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 379 class_name: "static (T_STATIC)" .
+ 77 unticked_statement: "static (T_STATIC)" . static_var_list ';'
+ 360 expr_without_variable: "static (T_STATIC)" . function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 393 class_name: "static (T_STATIC)" .
- "variable (T_VARIABLE)" décalage et aller à l'état 209
- "function (T_FUNCTION)" décalage et aller à l'état 48
+ "variable (T_VARIABLE)" shift, and go to state 211
+ "function (T_FUNCTION)" shift, and go to state 48
- $défaut réduction par utilisation de la règle 379 (class_name)
+ $default reduce using rule 393 (class_name)
- static_var_list aller à l'état 210
- function aller à l'état 211
+ static_var_list go to state 212
+ function go to state 213
-état 58
+state 58
- 67 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';'
+ 81 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';'
- '(' décalage et aller à l'état 212
+ '(' shift, and go to state 214
-état 59
+state 59
- 528 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')'
+ 573 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')'
- '(' décalage et aller à l'état 213
+ '(' shift, and go to state 215
-état 60
+state 60
- 529 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')'
- 530 | "empty (T_EMPTY)" . '(' expr_without_variable ')'
+ 574 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')'
+ 575 | "empty (T_EMPTY)" . '(' expr_without_variable ')'
- '(' décalage et aller à l'état 214
+ '(' shift, and go to state 216
-état 61
+state 61
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
- '(' décalage et aller à l'état 215
+ '(' shift, and go to state 217
-état 62
+state 62
- 111 class_entry_type: "class (T_CLASS)" .
+ 127 class_entry_type: "class (T_CLASS)" .
- $défaut réduction par utilisation de la règle 111 (class_entry_type)
+ $default reduce using rule 127 (class_entry_type)
-état 63
+state 63
- 113 class_entry_type: "trait (T_TRAIT)" .
+ 129 class_entry_type: "trait (T_TRAIT)" .
- $défaut réduction par utilisation de la règle 113 (class_entry_type)
+ $default reduce using rule 129 (class_entry_type)
-état 64
+state 64
- 117 interface_entry: "interface (T_INTERFACE)" .
+ 133 interface_entry: "interface (T_INTERFACE)" .
- $défaut réduction par utilisation de la règle 117 (interface_entry)
+ $default reduce using rule 133 (interface_entry)
-état 65
+state 65
- 263 expr_without_variable: "list (T_LIST)" . '(' $@45 assignment_list ')' '=' expr
+ 277 expr_without_variable: "list (T_LIST)" . '(' $@45 assignment_list ')' '=' expr
- '(' décalage et aller à l'état 216
+ '(' shift, and go to state 218
-état 66
+state 66
- 354 combined_scalar: "array (T_ARRAY)" . '(' array_pair_list ')'
+ 368 combined_scalar: "array (T_ARRAY)" . '(' array_pair_list ')'
- '(' décalage et aller à l'état 217
+ '(' shift, and go to state 219
-état 67
+state 67
- 436 scalar: "__CLASS__ (T_CLASS_C)" .
+ 481 scalar: "__CLASS__ (T_CLASS_C)" .
- $défaut réduction par utilisation de la règle 436 (scalar)
+ $default reduce using rule 481 (scalar)
-état 68
+state 68
- 409 common_scalar: "__TRAIT__ (T_TRAIT_C)" .
+ 423 common_scalar: "__TRAIT__ (T_TRAIT_C)" .
- $défaut réduction par utilisation de la règle 409 (common_scalar)
+ $default reduce using rule 423 (common_scalar)
-état 69
+state 69
- 410 common_scalar: "__METHOD__ (T_METHOD_C)" .
+ 424 common_scalar: "__METHOD__ (T_METHOD_C)" .
- $défaut réduction par utilisation de la règle 410 (common_scalar)
+ $default reduce using rule 424 (common_scalar)
-état 70
+state 70
- 411 common_scalar: "__FUNCTION__ (T_FUNC_C)" .
+ 425 common_scalar: "__FUNCTION__ (T_FUNC_C)" .
- $défaut réduction par utilisation de la règle 411 (common_scalar)
+ $default reduce using rule 425 (common_scalar)
-état 71
+state 71
- 406 common_scalar: "__LINE__ (T_LINE)" .
+ 420 common_scalar: "__LINE__ (T_LINE)" .
- $défaut réduction par utilisation de la règle 406 (common_scalar)
+ $default reduce using rule 420 (common_scalar)
-état 72
+state 72
- 407 common_scalar: "__FILE__ (T_FILE)" .
+ 421 common_scalar: "__FILE__ (T_FILE)" .
- $défaut réduction par utilisation de la règle 407 (common_scalar)
+ $default reduce using rule 421 (common_scalar)
-état 73
+state 73
- 413 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 414 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
- 435 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)"
+ 427 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
+ 428 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
+ 480 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)"
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 219
- "heredoc end (T_END_HEREDOC)" décalage et aller à l'état 220
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 221
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 222
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
- encaps_list aller à l'état 223
- encaps_var aller à l'état 224
+ encaps_list go to state 225
+ encaps_var go to state 226
-état 74
+state 74
11 top_statement: "namespace (T_NAMESPACE)" . namespace_name ';'
13 | "namespace (T_NAMESPACE)" . namespace_name '{' $@2 top_statement_list '}'
15 | "namespace (T_NAMESPACE)" . '{' $@3 top_statement_list '}'
- 366 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 431 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 225
- '{' décalage et aller à l'état 226
-
- namespace_name aller à l'état 227
-
-
-état 75
-
- 412 common_scalar: "__NAMESPACE__ (T_NS_C)" .
-
- $défaut réduction par utilisation de la règle 412 (common_scalar)
-
-
-état 76
-
- 408 common_scalar: "__DIR__ (T_DIR)" .
-
- $défaut réduction par utilisation de la règle 408 (common_scalar)
-
-
-état 77
-
- 368 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
- 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- 432 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 228
-
-
-état 78
-
- 320 expr_without_variable: '(' . new_expr ')' @51 instance_call
- 447 parenthesis_expr: '(' . expr ')'
- 448 | '(' . yield_expr ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ 380 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 476 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 227
+ '{' shift, and go to state 228
+
+ namespace_name go to state 229
+
+
+state 75
+
+ 426 common_scalar: "__NAMESPACE__ (T_NS_C)" .
+
+ $default reduce using rule 426 (common_scalar)
+
+
+state 76
+
+ 422 common_scalar: "__DIR__ (T_DIR)" .
+
+ $default reduce using rule 422 (common_scalar)
+
+
+state 77
+
+ 382 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
+ 396 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 477 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 230
+
+
+state 78
+
+ 334 expr_without_variable: '(' . new_expr ')' @51 instance_call
+ 492 parenthesis_expr: '(' . expr ')'
+ 493 | '(' . yield_expr ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- namespace_name aller à l'état 84
- new_expr aller à l'état 229
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 230
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 231
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 79
-
- 76 unticked_statement: ';' .
-
- $défaut réduction par utilisation de la règle 76 (unticked_statement)
-
-
-état 80
-
- 35 unticked_statement: '{' . inner_statement_list '}'
-
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
-
- inner_statement_list aller à l'état 232
-
-
-état 81
-
- 485 compound_variable: '$' . '{' expr '}'
- 496 simple_indirect_reference: '$' .
-
- '{' décalage et aller à l'état 233
-
- $défaut réduction par utilisation de la règle 496 (simple_indirect_reference)
-
-
-état 82
-
- 340 expr_without_variable: '`' . backticks_expr '`'
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 234
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
-
- $défaut réduction par utilisation de la règle 398 (backticks_expr)
-
- backticks_expr aller à l'état 235
- encaps_list aller à l'état 236
- encaps_var aller à l'état 224
+ namespace_name go to state 84
+ new_expr go to state 231
+ expr_without_variable go to state 96
+ yield_expr go to state 232
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 233
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 79
+
+ 90 unticked_statement: ';' .
+
+ $default reduce using rule 90 (unticked_statement)
+
+
+state 80
+
+ 49 unticked_statement: '{' . inner_statement_list '}'
+
+ $default reduce using rule 42 (inner_statement_list)
+
+ inner_statement_list go to state 234
+
+
+state 81
+
+ 530 compound_variable: '$' . '{' expr '}'
+ 541 simple_indirect_reference: '$' .
+
+ '{' shift, and go to state 235
+
+ $default reduce using rule 541 (simple_indirect_reference)
+
+
+state 82
+
+ 354 expr_without_variable: '`' . backticks_expr '`'
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 236
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+
+ $default reduce using rule 412 (backticks_expr)
+
+ backticks_expr go to state 237
+ encaps_list go to state 238
+ encaps_var go to state 226
-état 83
+state 83
- 434 scalar: '"' . encaps_list '"'
+ 479 scalar: '"' . encaps_list '"'
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 237
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 239
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
- encaps_list aller à l'état 238
- encaps_var aller à l'état 224
+ encaps_list go to state 240
+ encaps_var go to state 226
-état 84
+state 84
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 364 function_call: namespace_name . @58 function_call_parameter_list
- 380 class_name: namespace_name .
- 430 scalar: namespace_name .
+ 378 function_call: namespace_name . @58 function_call_parameter_list
+ 394 class_name: namespace_name .
+ 475 scalar: namespace_name .
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 380 (class_name)
- '(' réduction par utilisation de la règle 363 (@58)
- $défaut réduction par utilisation de la règle 430 (scalar)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 394 (class_name)
+ '(' reduce using rule 377 (@58)
+ $default reduce using rule 475 (scalar)
- @58 aller à l'état 240
+ @58 go to state 242
-état 85
+state 85
3 top_statement_list: top_statement_list $@1 top_statement .
- $défaut réduction par utilisation de la règle 3 (top_statement_list)
+ $default reduce using rule 3 (top_statement_list)
-état 86
+state 86
- 17 top_statement: constant_declaration . ';'
- 24 constant_declaration: constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
+ 19 top_statement: constant_declaration . ';'
+ 38 constant_declaration: constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
- ',' décalage et aller à l'état 241
- ';' décalage et aller à l'état 242
+ ',' shift, and go to state 243
+ ';' shift, and go to state 244
-état 87
+state 87
7 top_statement: statement .
- $défaut réduction par utilisation de la règle 7 (top_statement)
+ $default reduce using rule 7 (top_statement)
-état 88
+state 88
- 33 statement: unticked_statement .
+ 47 statement: unticked_statement .
- $défaut réduction par utilisation de la règle 33 (statement)
+ $default reduce using rule 47 (statement)
-état 89
+state 89
8 top_statement: function_declaration_statement .
- $défaut réduction par utilisation de la règle 8 (top_statement)
+ $default reduce using rule 8 (top_statement)
-état 90
+state 90
9 top_statement: class_declaration_statement .
- $défaut réduction par utilisation de la règle 9 (top_statement)
+ $default reduce using rule 9 (top_statement)
-état 91
+state 91
- 101 function_declaration_statement: unticked_function_declaration_statement .
+ 115 function_declaration_statement: unticked_function_declaration_statement .
- $défaut réduction par utilisation de la règle 101 (function_declaration_statement)
+ $default reduce using rule 115 (function_declaration_statement)
-état 92
+state 92
- 102 class_declaration_statement: unticked_class_declaration_statement .
+ 116 class_declaration_statement: unticked_class_declaration_statement .
- $défaut réduction par utilisation de la règle 102 (class_declaration_statement)
+ $default reduce using rule 116 (class_declaration_statement)
-état 93
+state 93
- 108 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
+ 124 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
- "identifier (T_STRING)" décalage et aller à l'état 243
+ "identifier (T_STRING)" shift, and go to state 245
-état 94
+state 94
- 110 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
+ 126 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
- "identifier (T_STRING)" décalage et aller à l'état 244
+ "identifier (T_STRING)" shift, and go to state 246
-état 95
+state 95
- 318 expr_without_variable: new_expr .
+ 332 expr_without_variable: new_expr .
- $défaut réduction par utilisation de la règle 318 (expr_without_variable)
+ $default reduce using rule 332 (expr_without_variable)
-état 96
+state 96
- 446 expr: expr_without_variable .
+ 491 expr: expr_without_variable .
- $défaut réduction par utilisation de la règle 446 (expr)
+ $default reduce using rule 491 (expr)
-état 97
+state 97
- 61 unticked_statement: yield_expr . ';'
+ 75 unticked_statement: yield_expr . ';'
- ';' décalage et aller à l'état 245
+ ';' shift, and go to state 247
-état 98
+state 98
- 338 expr_without_variable: combined_scalar_offset .
- 352 combined_scalar_offset: combined_scalar_offset . '[' dim_offset ']'
+ 352 expr_without_variable: combined_scalar_offset .
+ 366 combined_scalar_offset: combined_scalar_offset . '[' dim_offset ']'
- '[' décalage et aller à l'état 246
+ '[' shift, and go to state 248
- $défaut réduction par utilisation de la règle 338 (expr_without_variable)
+ $default reduce using rule 352 (expr_without_variable)
-état 99
+state 99
- 339 expr_without_variable: combined_scalar .
- 351 combined_scalar_offset: combined_scalar . '[' dim_offset ']'
+ 353 expr_without_variable: combined_scalar .
+ 365 combined_scalar_offset: combined_scalar . '[' dim_offset ']'
- '[' décalage et aller à l'état 247
+ '[' shift, and go to state 249
- $défaut réduction par utilisation de la règle 339 (expr_without_variable)
+ $default reduce using rule 353 (expr_without_variable)
-état 100
+state 100
- 106 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
- 344 expr_without_variable: function . is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 122 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
+ 358 expr_without_variable: function . is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '&' décalage et aller à l'état 248
+ '&' shift, and go to state 250
- $défaut réduction par utilisation de la règle 103 (is_reference)
+ $default reduce using rule 117 (is_reference)
- is_reference aller à l'état 249
+ is_reference go to state 251
-état 101
+state 101
- 474 array_function_dereference: function_call . $@72 '[' dim_offset ']'
- 477 base_variable_with_function_calls: function_call .
+ 519 array_function_dereference: function_call . $@72 '[' dim_offset ']'
+ 522 base_variable_with_function_calls: function_call .
- '[' réduction par utilisation de la règle 473 ($@72)
- $défaut réduction par utilisation de la règle 477 (base_variable_with_function_calls)
+ '[' reduce using rule 518 ($@72)
+ $default reduce using rule 522 (base_variable_with_function_calls)
- $@72 aller à l'état 250
+ $@72 go to state 252
-état 102
+state 102
- 370 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
- 372 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
- 469 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 541 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 544 class_name_scalar: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+ 384 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
+ 386 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
+ 514 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 586 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 589 class_name_scalar: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 251
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 253
-état 103
+state 103
- 433 scalar: common_scalar .
+ 478 scalar: common_scalar .
- $défaut réduction par utilisation de la règle 433 (scalar)
+ $default reduce using rule 478 (scalar)
-état 104
+state 104
- 337 expr_without_variable: scalar .
+ 351 expr_without_variable: scalar .
- $défaut réduction par utilisation de la règle 337 (expr_without_variable)
+ $default reduce using rule 351 (expr_without_variable)
-état 105
+state 105
- 66 unticked_statement: expr . ';'
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
+ 80 unticked_statement: expr . ';'
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ';' décalage et aller à l'état 278
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ';' shift, and go to state 280
-état 106
+state 106
- 317 expr_without_variable: parenthesis_expr .
+ 331 expr_without_variable: parenthesis_expr .
- $défaut réduction par utilisation de la règle 317 (expr_without_variable)
+ $default reduce using rule 331 (expr_without_variable)
-état 107
+state 107
- 445 expr: r_variable .
+ 490 expr: r_variable .
- $défaut réduction par utilisation de la règle 445 (expr)
+ $default reduce using rule 490 (expr)
-état 108
+state 108
- 280 expr_without_variable: rw_variable . "++ (T_INC)"
- 282 | rw_variable . "-- (T_DEC)"
+ 294 expr_without_variable: rw_variable . "++ (T_INC)"
+ 296 | rw_variable . "-- (T_DEC)"
- "-- (T_DEC)" décalage et aller à l'état 279
- "++ (T_INC)" décalage et aller à l'état 280
+ "-- (T_DEC)" shift, and go to state 281
+ "++ (T_INC)" shift, and go to state 282
-état 109
+state 109
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- $défaut réduction par utilisation de la règle 449 (r_variable)
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ $default reduce using rule 494 (r_variable)
-état 110
+state 110
- 378 function_call: variable_without_objects . $@65 function_call_parameter_list
+ 392 function_call: variable_without_objects . $@65 function_call_parameter_list
- $défaut réduction par utilisation de la règle 377 ($@65)
+ $default reduce using rule 391 ($@65)
- $@65 aller à l'état 293
+ $@65 go to state 295
-état 111
+state 111
- 480 base_variable: static_member .
+ 525 base_variable: static_member .
- $défaut réduction par utilisation de la règle 480 (base_variable)
+ $default reduce using rule 525 (base_variable)
-état 112
+state 112
- 374 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
- 376 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
- 470 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 542 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 388 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
+ 390 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
+ 515 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 587 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 294
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 296
-état 113
+state 113
- 472 array_function_dereference: array_function_dereference . '[' dim_offset ']'
- 476 base_variable_with_function_calls: array_function_dereference .
+ 517 array_function_dereference: array_function_dereference . '[' dim_offset ']'
+ 521 base_variable_with_function_calls: array_function_dereference .
- '[' décalage et aller à l'état 295
+ '[' shift, and go to state 297
- $défaut réduction par utilisation de la règle 476 (base_variable_with_function_calls)
+ $default reduce using rule 521 (base_variable_with_function_calls)
-état 114
+state 114
- 454 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
- 455 | base_variable_with_function_calls .
+ 499 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
+ 500 | base_variable_with_function_calls .
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 296
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 298
- $défaut réduction par utilisation de la règle 455 (variable)
+ $default reduce using rule 500 (variable)
-état 115
+state 115
- 475 base_variable_with_function_calls: base_variable .
+ 520 base_variable_with_function_calls: base_variable .
- $défaut réduction par utilisation de la règle 475 (base_variable_with_function_calls)
+ $default reduce using rule 520 (base_variable_with_function_calls)
-état 116
+state 116
- 467 variable_without_objects: reference_variable .
- 471 variable_class_name: reference_variable .
- 478 base_variable: reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
+ 512 variable_without_objects: reference_variable .
+ 516 variable_class_name: reference_variable .
+ 523 base_variable: reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 471 (variable_class_name)
- '(' réduction par utilisation de la règle 467 (variable_without_objects)
- $défaut réduction par utilisation de la règle 478 (base_variable)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 516 (variable_class_name)
+ '(' reduce using rule 512 (variable_without_objects)
+ $default reduce using rule 523 (base_variable)
-état 117
+state 117
- 483 reference_variable: compound_variable .
+ 528 reference_variable: compound_variable .
- $défaut réduction par utilisation de la règle 483 (reference_variable)
+ $default reduce using rule 528 (reference_variable)
-état 118
+state 118
- 468 variable_without_objects: simple_indirect_reference . reference_variable
- 479 base_variable: simple_indirect_reference . reference_variable
- 497 simple_indirect_reference: simple_indirect_reference . '$'
+ 513 variable_without_objects: simple_indirect_reference . reference_variable
+ 524 base_variable: simple_indirect_reference . reference_variable
+ 542 simple_indirect_reference: simple_indirect_reference . '$'
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '$' décalage et aller à l'état 299
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 301
- reference_variable aller à l'état 300
- compound_variable aller à l'état 117
+ reference_variable go to state 302
+ compound_variable go to state 117
-état 119
+state 119
- 326 expr_without_variable: internal_functions_in_yacc .
+ 340 expr_without_variable: internal_functions_in_yacc .
- $défaut réduction par utilisation de la règle 326 (expr_without_variable)
+ $default reduce using rule 340 (expr_without_variable)
-état 120
+state 120
- 429 scalar: class_constant .
+ 474 scalar: class_constant .
- $défaut réduction par utilisation de la règle 429 (scalar)
+ $default reduce using rule 474 (scalar)
-état 121
+state 121
- 428 scalar: class_name_scalar .
+ 473 scalar: class_name_scalar .
- $défaut réduction par utilisation de la règle 428 (scalar)
+ $default reduce using rule 473 (scalar)
-état 122
+state 122
- 342 expr_without_variable: "yield (T_YIELD)" .
+ 356 expr_without_variable: "yield (T_YIELD)" .
- $défaut réduction par utilisation de la règle 342 (expr_without_variable)
+ $default reduce using rule 356 (expr_without_variable)
-état 123
+state 123
5 namespace_name: "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 5 (namespace_name)
-
-
-état 124
-
- 346 expr_without_variable: "static (T_STATIC)" . function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 379 class_name: "static (T_STATIC)" .
-
- "function (T_FUNCTION)" décalage et aller à l'état 48
-
- $défaut réduction par utilisation de la règle 379 (class_name)
-
- function aller à l'état 211
-
-
-état 125
-
- 366 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 431 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 225
-
-
-état 126
-
- 344 expr_without_variable: function . is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
-
- '&' décalage et aller à l'état 248
-
- $défaut réduction par utilisation de la règle 103 (is_reference)
-
- is_reference aller à l'état 301
-
-
-état 127
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 535 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 535 (internal_functions_in_yacc)
-
-
-état 128
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 534 internal_functions_in_yacc: "require (T_REQUIRE)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 534 (internal_functions_in_yacc)
-
-
-état 129
-
- 533 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 302
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 130
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 532 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 532 (internal_functions_in_yacc)
-
-
-état 131
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 531 internal_functions_in_yacc: "include (T_INCLUDE)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 531 (internal_functions_in_yacc)
-
-
-état 132
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 341 | "print (T_PRINT)" expr .
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 341 (expr_without_variable)
-
-
-état 133
-
- 347 yield_expr: "yield (T_YIELD)" expr_without_variable .
- 446 expr: expr_without_variable .
-
- ')' réduction par utilisation de la règle 347 (yield_expr)
- ';' réduction par utilisation de la règle 347 (yield_expr)
- $défaut réduction par utilisation de la règle 446 (expr)
-
-
-état 134
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 349 yield_expr: "yield (T_YIELD)" expr . "=> (T_DOUBLE_ARROW)" expr_without_variable
- 350 | "yield (T_YIELD)" expr . "=> (T_DOUBLE_ARROW)" variable
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 303
-
-
-état 135
-
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 348 yield_expr: "yield (T_YIELD)" variable .
- 449 r_variable: variable .
- 451 rw_variable: variable .
-
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
-
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- ')' réduction par utilisation de la règle 348 (yield_expr)
- ';' réduction par utilisation de la règle 348 (yield_expr)
- $défaut réduction par utilisation de la règle 449 (r_variable)
-
-
-état 136
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 304 | '+' expr .
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- $défaut réduction par utilisation de la règle 304 (expr_without_variable)
-
-
-état 137
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 305 | '-' expr .
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- $défaut réduction par utilisation de la règle 305 (expr_without_variable)
-
-
-état 138
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 306 | '!' expr .
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 306 (expr_without_variable)
-
-
-état 139
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 307 | '~' expr .
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- $défaut réduction par utilisation de la règle 307 (expr_without_variable)
-
-
-état 140
-
- 336 expr_without_variable: '@' $@55 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 304
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 141
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 333 | "(unset) (T_UNSET_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 333 (expr_without_variable)
-
-
-état 142
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 332 | "(bool) (T_BOOL_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 332 (expr_without_variable)
-
-
-état 143
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 331 | "(object) (T_OBJECT_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 331 (expr_without_variable)
-
-
-état 144
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 330 | "(array) (T_ARRAY_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 330 (expr_without_variable)
-
-
-état 145
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 329 | "(string) (T_STRING_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 329 (expr_without_variable)
-
-
-état 146
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 328 | "(double) (T_DOUBLE_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 328 (expr_without_variable)
-
-
-état 147
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 327 | "(int) (T_INT_CAST)" expr .
-
- $défaut réduction par utilisation de la règle 327 (expr_without_variable)
-
-
-état 148
-
- 379 class_name: "static (T_STATIC)" .
-
- $défaut réduction par utilisation de la règle 379 (class_name)
-
-
-état 149
-
- 366 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 305
-
-
-état 150
-
- 368 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
- 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 306
+ $default reduce using rule 5 (namespace_name)
+
+
+state 124
+
+ 360 expr_without_variable: "static (T_STATIC)" . function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 393 class_name: "static (T_STATIC)" .
+
+ "function (T_FUNCTION)" shift, and go to state 48
+
+ $default reduce using rule 393 (class_name)
+
+ function go to state 213
+
+
+state 125
+
+ 380 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 476 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 227
+
+
+state 126
+
+ 358 expr_without_variable: function . is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+
+ '&' shift, and go to state 250
+
+ $default reduce using rule 117 (is_reference)
+
+ is_reference go to state 303
+
+
+state 127
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 580 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 580 (internal_functions_in_yacc)
+
+
+state 128
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 579 internal_functions_in_yacc: "require (T_REQUIRE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 579 (internal_functions_in_yacc)
+
+
+state 129
+
+ 578 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 304
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 130
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 577 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 577 (internal_functions_in_yacc)
+
+
+state 131
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 576 internal_functions_in_yacc: "include (T_INCLUDE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 576 (internal_functions_in_yacc)
+
+
+state 132
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 355 | "print (T_PRINT)" expr .
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 355 (expr_without_variable)
+
+
+state 133
+
+ 361 yield_expr: "yield (T_YIELD)" expr_without_variable .
+ 491 expr: expr_without_variable .
+
+ ')' reduce using rule 361 (yield_expr)
+ ';' reduce using rule 361 (yield_expr)
+ $default reduce using rule 491 (expr)
+
+
+state 134
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 363 yield_expr: "yield (T_YIELD)" expr . "=> (T_DOUBLE_ARROW)" expr_without_variable
+ 364 | "yield (T_YIELD)" expr . "=> (T_DOUBLE_ARROW)" variable
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 305
+
+
+state 135
+
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 362 yield_expr: "yield (T_YIELD)" variable .
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ ')' reduce using rule 362 (yield_expr)
+ ';' reduce using rule 362 (yield_expr)
+ $default reduce using rule 494 (r_variable)
+
+
+state 136
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 318 | '+' expr .
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ $default reduce using rule 318 (expr_without_variable)
+
+
+state 137
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 319 | '-' expr .
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ $default reduce using rule 319 (expr_without_variable)
+
+
+state 138
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 320 | '!' expr .
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 320 (expr_without_variable)
+
+
+state 139
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 321 | '~' expr .
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ $default reduce using rule 321 (expr_without_variable)
+
+
+state 140
+
+ 350 expr_without_variable: '@' $@55 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 306
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 141
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 347 | "(unset) (T_UNSET_CAST)" expr .
+
+ $default reduce using rule 347 (expr_without_variable)
+
+
+state 142
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 346 | "(bool) (T_BOOL_CAST)" expr .
+
+ $default reduce using rule 346 (expr_without_variable)
+
+
+state 143
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 345 | "(object) (T_OBJECT_CAST)" expr .
+
+ $default reduce using rule 345 (expr_without_variable)
+
+
+state 144
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 344 | "(array) (T_ARRAY_CAST)" expr .
+
+ $default reduce using rule 344 (expr_without_variable)
+
+
+state 145
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 343 | "(string) (T_STRING_CAST)" expr .
+
+ $default reduce using rule 343 (expr_without_variable)
+
+
+state 146
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 342 | "(double) (T_DOUBLE_CAST)" expr .
+
+ $default reduce using rule 342 (expr_without_variable)
+
+
+state 147
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 341 | "(int) (T_INT_CAST)" expr .
+
+ $default reduce using rule 341 (expr_without_variable)
+
+
+state 148
+
+ 393 class_name: "static (T_STATIC)" .
+
+ $default reduce using rule 393 (class_name)
+
+
+state 149
+
+ 380 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 307
+
+
+state 150
+
+ 382 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
+ 396 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 308
-état 151
+state 151
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 364 function_call: namespace_name . @58 function_call_parameter_list
- 380 class_name: namespace_name .
+ 378 function_call: namespace_name . @58 function_call_parameter_list
+ 394 class_name: namespace_name .
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 380 (class_name)
- $défaut réduction par utilisation de la règle 363 (@58)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 394 (class_name)
+ $default reduce using rule 377 (@58)
- @58 aller à l'état 240
+ @58 go to state 242
-état 152
+state 152
- 370 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
- 372 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
- 469 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 384 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
+ 386 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
+ 514 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 307
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 309
-état 153
+state 153
- 283 expr_without_variable: "-- (T_DEC)" rw_variable .
+ 297 expr_without_variable: "-- (T_DEC)" rw_variable .
- $défaut réduction par utilisation de la règle 283 (expr_without_variable)
+ $default reduce using rule 297 (expr_without_variable)
-état 154
+state 154
- 451 rw_variable: variable .
+ 496 rw_variable: variable .
- $défaut réduction par utilisation de la règle 451 (rw_variable)
-
-
-état 155
-
- 374 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
- 376 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
- 470 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
-
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 308
+ $default reduce using rule 496 (rw_variable)
+
+
+state 155
+
+ 388 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
+ 390 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
+ 515 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 310
-état 156
+state 156
- 281 expr_without_variable: "++ (T_INC)" rw_variable .
+ 295 expr_without_variable: "++ (T_INC)" rw_variable .
- $défaut réduction par utilisation de la règle 281 (expr_without_variable)
+ $default reduce using rule 295 (expr_without_variable)
-état 157
+state 157
- 513 non_empty_array_pair_list: '&' . w_variable
+ 558 non_empty_array_pair_list: '&' . w_variable
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 309
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 311
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
-état 158
+state 158
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 508 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr
- 509 | expr .
- 512 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 553 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr
+ 554 | expr .
+ 557 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 311
-
- $défaut réduction par utilisation de la règle 509 (non_empty_array_pair_list)
-
-
-état 159
-
- 355 combined_scalar: '[' array_pair_list . ']'
-
- ']' décalage et aller à l'état 312
-
-
-état 160
-
- 505 array_pair_list: non_empty_array_pair_list . possible_comma
- 506 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr
- 507 | non_empty_array_pair_list . ',' expr
- 510 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 511 | non_empty_array_pair_list . ',' '&' w_variable
-
- ',' décalage et aller à l'état 313
-
- $défaut réduction par utilisation de la règle 439 (possible_comma)
-
- possible_comma aller à l'état 314
-
-
-état 161
-
- 268 expr_without_variable: "clone (T_CLONE)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- $défaut réduction par utilisation de la règle 268 (expr_without_variable)
-
-
-état 162
-
- 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 313
+
+ $default reduce using rule 554 (non_empty_array_pair_list)
+
+
+state 159
+
+ 369 combined_scalar: '[' array_pair_list . ']'
+
+ ']' shift, and go to state 314
+
+
+state 160
+
+ 550 array_pair_list: non_empty_array_pair_list . possible_comma
+ 551 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr
+ 552 | non_empty_array_pair_list . ',' expr
+ 555 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 556 | non_empty_array_pair_list . ',' '&' w_variable
+
+ ',' shift, and go to state 315
+
+ $default reduce using rule 484 (possible_comma)
+
+ possible_comma go to state 316
+
+
+state 161
+
+ 282 expr_without_variable: "clone (T_CLONE)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ $default reduce using rule 282 (expr_without_variable)
+
+
+state 162
+
+ 395 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 315
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 317
-état 163
+state 163
- 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 396 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- "identifier (T_STRING)" décalage et aller à l'état 123
+ "identifier (T_STRING)" shift, and go to state 123
- namespace_name aller à l'état 316
+ namespace_name go to state 318
-état 164
+state 164
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 380 class_name: namespace_name .
+ 394 class_name: namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ $default reduce using rule 394 (class_name)
- $défaut réduction par utilisation de la règle 380 (class_name)
+state 165
-état 165
+ 400 class_name_reference: class_name .
+ 514 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 386 class_name_reference: class_name .
- 469 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 319
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 317
+ $default reduce using rule 400 (class_name_reference)
- $défaut réduction par utilisation de la règle 386 (class_name_reference)
+state 166
-état 166
+ 275 new_expr: "new (T_NEW)" class_name_reference . $@44 ctor_arguments
- 261 new_expr: "new (T_NEW)" class_name_reference . $@44 ctor_arguments
+ $default reduce using rule 274 ($@44)
- $défaut réduction par utilisation de la règle 260 ($@44)
+ $@44 go to state 320
- $@44 aller à l'état 318
+state 167
-état 167
+ 401 class_name_reference: dynamic_class_name_reference .
- 387 class_name_reference: dynamic_class_name_reference .
+ $default reduce using rule 401 (class_name_reference)
- $défaut réduction par utilisation de la règle 387 (class_name_reference)
+state 168
-état 168
+ 515 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 470 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 321
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 319
+state 169
-état 169
+ 404 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties
+ 405 | base_variable .
- 390 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties
- 391 | base_variable .
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 322
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 320
+ $default reduce using rule 405 (dynamic_class_name_reference)
- $défaut réduction par utilisation de la règle 391 (dynamic_class_name_reference)
+state 170
-état 170
+ 516 variable_class_name: reference_variable .
+ 523 base_variable: reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
- 471 variable_class_name: reference_variable .
- 478 base_variable: reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 516 (variable_class_name)
+ $default reduce using rule 523 (base_variable)
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 471 (variable_class_name)
- $défaut réduction par utilisation de la règle 478 (base_variable)
+state 171
+
+ 524 base_variable: simple_indirect_reference . reference_variable
+ 542 simple_indirect_reference: simple_indirect_reference . '$'
-état 171
-
- 479 base_variable: simple_indirect_reference . reference_variable
- 497 simple_indirect_reference: simple_indirect_reference . '$'
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 301
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '$' décalage et aller à l'état 299
+ reference_variable go to state 323
+ compound_variable go to state 117
- reference_variable aller à l'état 321
- compound_variable aller à l'état 117
+state 172
-état 172
+ 410 exit_expr: '(' . ')'
+ 492 parenthesis_expr: '(' . expr ')'
+ 493 | '(' . yield_expr ')'
- 396 exit_expr: '(' . ')'
- 447 parenthesis_expr: '(' . expr ')'
- 448 | '(' . yield_expr ')'
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ')' shift, and go to state 324
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 232
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 233
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 173
+
+ 348 expr_without_variable: "exit (T_EXIT)" exit_expr .
+
+ $default reduce using rule 348 (expr_without_variable)
+
+
+state 174
+
+ 411 exit_expr: parenthesis_expr .
+
+ $default reduce using rule 411 (exit_expr)
+
+
+state 175
+
+ 492 parenthesis_expr: '(' . expr ')'
+ 493 | '(' . yield_expr ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 232
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 233
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 176
+
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr . $@5 statement $@6 elseif_list else_single
+ 55 | "if (T_IF)" parenthesis_expr . ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+ ':' shift, and go to state 325
+
+ $default reduce using rule 50 ($@5)
+
+ $@5 go to state 326
+
+
+state 177
+
+ 48 statement: "identifier (T_STRING)" ':' .
+
+ $default reduce using rule 48 (statement)
+
+
+state 178
+
+ 367 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 328
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 179
+
+ 78 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';'
+ 256 echo_expr_list: echo_expr_list . ',' expr
+
+ ',' shift, and go to state 329
+ ';' shift, and go to state 330
+
+
+state 180
+
+ 257 echo_expr_list: expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 257 (echo_expr_list)
+
+
+state 181
+
+ 61 unticked_statement: "do (T_DO)" $@11 . statement "while (T_WHILE)" $@12 parenthesis_expr ';'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 331
+ unticked_statement go to state 88
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 182
+
+ 58 unticked_statement: "while (T_WHILE)" $@9 . parenthesis_expr @10 while_statement
+
+ '(' shift, and go to state 175
+
+ parenthesis_expr go to state 332
+
+
+state 183
+
+ 65 unticked_statement: "for (T_FOR)" '(' . for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 258 (for_expr)
+
+ namespace_name go to state 84
+ for_expr go to state 333
+ non_empty_for_expr go to state 334
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 335
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 184
+
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 87 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 336
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 337
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 185
+
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 . '(' declare_list ')' declare_statement
+
+ '(' shift, and go to state 338
+
+
+state 186
+
+ 67 unticked_statement: "switch (T_SWITCH)" parenthesis_expr . $@16 switch_case_list
+
+ $default reduce using rule 66 ($@16)
+
+ $@16 go to state 339
+
+
+state 187
+
+ 68 unticked_statement: "break (T_BREAK)" ';' .
+
+ $default reduce using rule 68 (unticked_statement)
+
+
+state 188
+
+ 69 unticked_statement: "break (T_BREAK)" expr . ';'
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ';' shift, and go to state 340
+
+
+state 189
+
+ 70 unticked_statement: "continue (T_CONTINUE)" ';' .
+
+ $default reduce using rule 70 (unticked_statement)
+
+
+state 190
+
+ 71 unticked_statement: "continue (T_CONTINUE)" expr . ';'
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ';' shift, and go to state 341
+
+
+state 191
+
+ 95 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';'
+
+ ';' shift, and go to state 342
+
+
+state 192
+
+ 39 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
+
+ '=' shift, and go to state 343
+
+
+state 193
+
+ 72 unticked_statement: "return (T_RETURN)" ';' .
+
+ $default reduce using rule 72 (unticked_statement)
+
+
+state 194
+
+ 73 unticked_statement: "return (T_RETURN)" expr_without_variable . ';'
+ 491 expr: expr_without_variable .
+
+ ';' shift, and go to state 344
+
+ $default reduce using rule 491 (expr)
+
+
+state 195
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+
+state 196
+
+ 74 unticked_statement: "return (T_RETURN)" variable . ';'
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+ ';' shift, and go to state 345
+
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ $default reduce using rule 494 (r_variable)
+
+
+state 197
+
+ 93 unticked_statement: "try (T_TRY)" $@22 . '{' inner_statement_list '}' catch_statement $@23 finally_statement
+
+ '{' shift, and go to state 346
+
+
+state 198
+
+ 94 unticked_statement: "throw (T_THROW)" expr . ';'
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ';' shift, and go to state 347
+
+
+state 199
+
+ 17 top_statement: "use (T_USE)" "function (T_FUNCTION)" . use_function_declarations ';'
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 348
+
+ namespace_name go to state 349
+ use_function_declarations go to state 350
+ use_function_declaration go to state 351
+
+
+state 200
+
+ 18 top_statement: "use (T_USE)" "const (T_CONST)" . use_const_declarations ';'
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 352
+
+ namespace_name go to state 353
+ use_const_declarations go to state 354
+ use_const_declaration go to state 355
+
+
+state 201
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ')' décalage et aller à l'état 322
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 230
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 231
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 173
-
- 334 expr_without_variable: "exit (T_EXIT)" exit_expr .
-
- $défaut réduction par utilisation de la règle 334 (expr_without_variable)
-
-
-état 174
-
- 397 exit_expr: parenthesis_expr .
-
- $défaut réduction par utilisation de la règle 397 (exit_expr)
-
-
-état 175
-
- 447 parenthesis_expr: '(' . expr ')'
- 448 | '(' . yield_expr ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 230
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 231
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 176
-
- 38 unticked_statement: "if (T_IF)" parenthesis_expr . $@5 statement $@6 elseif_list else_single
- 41 | "if (T_IF)" parenthesis_expr . ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- ':' décalage et aller à l'état 323
-
- $défaut réduction par utilisation de la règle 36 ($@5)
-
- $@5 aller à l'état 324
-
-
-état 177
-
- 34 statement: "identifier (T_STRING)" ':' .
-
- $défaut réduction par utilisation de la règle 34 (statement)
-
-
-état 178
-
- 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 326
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 179
-
- 64 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';'
- 242 echo_expr_list: echo_expr_list . ',' expr
-
- ',' décalage et aller à l'état 327
- ';' décalage et aller à l'état 328
-
-
-état 180
-
- 243 echo_expr_list: expr .
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 243 (echo_expr_list)
-
-
-état 181
-
- 47 unticked_statement: "do (T_DO)" $@11 . statement "while (T_WHILE)" $@12 parenthesis_expr ';'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 329
- unticked_statement aller à l'état 88
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 182
-
- 44 unticked_statement: "while (T_WHILE)" $@9 . parenthesis_expr @10 while_statement
-
- '(' décalage et aller à l'état 175
-
- parenthesis_expr aller à l'état 330
-
-
-état 183
-
- 51 unticked_statement: "for (T_FOR)" '(' . for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 244 (for_expr)
-
- namespace_name aller à l'état 84
- for_expr aller à l'état 331
- non_empty_for_expr aller à l'état 332
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 333
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 184
-
- 70 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 73 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 334
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 335
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 185
-
- 75 unticked_statement: "declare (T_DECLARE)" $@21 . '(' declare_list ')' declare_statement
-
- '(' décalage et aller à l'état 336
-
-
-état 186
-
- 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr . $@16 switch_case_list
-
- $défaut réduction par utilisation de la règle 52 ($@16)
-
- $@16 aller à l'état 337
-
-
-état 187
-
- 54 unticked_statement: "break (T_BREAK)" ';' .
-
- $défaut réduction par utilisation de la règle 54 (unticked_statement)
-
-
-état 188
-
- 55 unticked_statement: "break (T_BREAK)" expr . ';'
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ';' décalage et aller à l'état 338
-
-
-état 189
-
- 56 unticked_statement: "continue (T_CONTINUE)" ';' .
-
- $défaut réduction par utilisation de la règle 56 (unticked_statement)
-
-
-état 190
-
- 57 unticked_statement: "continue (T_CONTINUE)" expr . ';'
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ';' décalage et aller à l'état 339
-
-
-état 191
-
- 81 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';'
-
- ';' décalage et aller à l'état 340
-
-
-état 192
-
- 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
-
- '=' décalage et aller à l'état 341
-
-
-état 193
-
- 58 unticked_statement: "return (T_RETURN)" ';' .
-
- $défaut réduction par utilisation de la règle 58 (unticked_statement)
-
-
-état 194
-
- 59 unticked_statement: "return (T_RETURN)" expr_without_variable . ';'
- 446 expr: expr_without_variable .
-
- ';' décalage et aller à l'état 342
-
- $défaut réduction par utilisation de la règle 446 (expr)
-
-
-état 195
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
-
-état 196
-
- 60 unticked_statement: "return (T_RETURN)" variable . ';'
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
-
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
- ';' décalage et aller à l'état 343
-
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- $défaut réduction par utilisation de la règle 449 (r_variable)
-
-
-état 197
-
- 79 unticked_statement: "try (T_TRY)" $@22 . '{' inner_statement_list '}' catch_statement $@23 finally_statement
-
- '{' décalage et aller à l'état 344
-
-
-état 198
-
- 80 unticked_statement: "throw (T_THROW)" expr . ';'
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ';' décalage et aller à l'état 345
-
-
-état 199
-
- 22 use_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
- 23 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 346
-
-
-état 200
+ 24 use_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 25 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 356
+
+
+state 202
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 20 use_declaration: namespace_name .
- 21 | namespace_name . "as (T_AS)" "identifier (T_STRING)"
+ 22 use_declaration: namespace_name .
+ 23 | namespace_name . "as (T_AS)" "identifier (T_STRING)"
- "as (T_AS)" décalage et aller à l'état 347
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ "as (T_AS)" shift, and go to state 357
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- $défaut réduction par utilisation de la règle 20 (use_declaration)
+ $default reduce using rule 22 (use_declaration)
-état 201
+state 203
16 top_statement: "use (T_USE)" use_declarations . ';'
- 18 use_declarations: use_declarations . ',' use_declaration
+ 20 use_declarations: use_declarations . ',' use_declaration
- ',' décalage et aller à l'état 348
- ';' décalage et aller à l'état 349
+ ',' shift, and go to state 358
+ ';' shift, and go to state 359
-état 202
+state 204
- 19 use_declarations: use_declaration .
+ 21 use_declarations: use_declaration .
- $défaut réduction par utilisation de la règle 19 (use_declarations)
+ $default reduce using rule 21 (use_declarations)
-état 203
+state 205
- 186 global_var: "variable (T_VARIABLE)" .
+ 200 global_var: "variable (T_VARIABLE)" .
- $défaut réduction par utilisation de la règle 186 (global_var)
+ $default reduce using rule 200 (global_var)
-état 204
+state 206
- 187 global_var: '$' . r_variable
- 188 | '$' . '{' expr '}'
+ 201 global_var: '$' . r_variable
+ 202 | '$' . '{' expr '}'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '{' décalage et aller à l'état 350
- '$' décalage et aller à l'état 81
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '{' shift, and go to state 360
+ '$' shift, and go to state 81
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- r_variable aller à l'état 351
- variable aller à l'état 352
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ r_variable go to state 361
+ variable go to state 362
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
-état 205
+state 207
- 62 unticked_statement: "global (T_GLOBAL)" global_var_list . ';'
- 184 global_var_list: global_var_list . ',' global_var
+ 76 unticked_statement: "global (T_GLOBAL)" global_var_list . ';'
+ 198 global_var_list: global_var_list . ',' global_var
- ',' décalage et aller à l'état 353
- ';' décalage et aller à l'état 354
+ ',' shift, and go to state 363
+ ';' shift, and go to state 364
-état 206
+state 208
- 185 global_var_list: global_var .
+ 199 global_var_list: global_var .
- $défaut réduction par utilisation de la règle 185 (global_var_list)
+ $default reduce using rule 199 (global_var_list)
-état 207
+state 209
- 114 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" .
+ 130 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" .
- $défaut réduction par utilisation de la règle 114 (class_entry_type)
+ $default reduce using rule 130 (class_entry_type)
-état 208
+state 210
- 112 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" .
+ 128 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" .
- $défaut réduction par utilisation de la règle 112 (class_entry_type)
+ $default reduce using rule 128 (class_entry_type)
-état 209
+state 211
- 191 static_var_list: "variable (T_VARIABLE)" .
- 192 | "variable (T_VARIABLE)" . '=' static_scalar
+ 205 static_var_list: "variable (T_VARIABLE)" .
+ 206 | "variable (T_VARIABLE)" . '=' static_scalar
- '=' décalage et aller à l'état 355
+ '=' shift, and go to state 365
- $défaut réduction par utilisation de la règle 191 (static_var_list)
+ $default reduce using rule 205 (static_var_list)
-état 210
+state 212
- 63 unticked_statement: "static (T_STATIC)" static_var_list . ';'
- 189 static_var_list: static_var_list . ',' "variable (T_VARIABLE)"
- 190 | static_var_list . ',' "variable (T_VARIABLE)" '=' static_scalar
+ 77 unticked_statement: "static (T_STATIC)" static_var_list . ';'
+ 203 static_var_list: static_var_list . ',' "variable (T_VARIABLE)"
+ 204 | static_var_list . ',' "variable (T_VARIABLE)" '=' static_scalar
- ',' décalage et aller à l'état 356
- ';' décalage et aller à l'état 357
+ ',' shift, and go to state 366
+ ';' shift, and go to state 367
-état 211
+state 213
- 346 expr_without_variable: "static (T_STATIC)" function . is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 360 expr_without_variable: "static (T_STATIC)" function . is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '&' décalage et aller à l'état 248
+ '&' shift, and go to state 250
- $défaut réduction par utilisation de la règle 103 (is_reference)
+ $default reduce using rule 117 (is_reference)
- is_reference aller à l'état 358
+ is_reference go to state 368
-état 212
+state 214
- 67 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';'
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- unset_variables aller à l'état 359
- unset_variable aller à l'état 360
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 361
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 213
-
- 528 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 362
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 363
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- isset_variables aller à l'état 364
- isset_variable aller à l'état 365
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 214
-
- 529 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')'
- 530 | "empty (T_EMPTY)" '(' . expr_without_variable ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 366
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 367
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 215
+ 81 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';'
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ unset_variables go to state 369
+ unset_variable go to state 370
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 371
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 215
+
+ 573 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 372
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 373
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ isset_variables go to state 374
+ isset_variable go to state 375
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 216
+
+ 574 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')'
+ 575 | "empty (T_EMPTY)" '(' . expr_without_variable ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 376
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 377
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 217
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
- ')' décalage et aller à l'état 368
-
-
-état 216
-
- 263 expr_without_variable: "list (T_LIST)" '(' . $@45 assignment_list ')' '=' expr
-
- $défaut réduction par utilisation de la règle 262 ($@45)
-
- $@45 aller à l'état 369
-
-
-état 217
-
- 354 combined_scalar: "array (T_ARRAY)" '(' . array_pair_list ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 157
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 504 (array_pair_list)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 158
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- array_pair_list aller à l'état 370
- non_empty_array_pair_list aller à l'état 160
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 218
-
- 518 encaps_var: "variable (T_VARIABLE)" .
- 520 | "variable (T_VARIABLE)" . '[' $@75 encaps_var_offset ']'
- 521 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
-
- '[' décalage et aller à l'état 371
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 372
-
- $défaut réduction par utilisation de la règle 518 (encaps_var)
-
-
-état 219
-
- 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
- 517 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "heredoc end (T_END_HEREDOC)" décalage et aller à l'état 373
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
-
- encaps_var aller à l'état 374
-
-
-état 220
-
- 414 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" .
-
- $défaut réduction par utilisation de la règle 414 (common_scalar)
-
-
-état 221
-
- 522 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}'
- 523 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 375
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 376
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 222
-
- 524 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}'
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 377
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 223
-
- 435 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)"
- 514 encaps_list: encaps_list . encaps_var
- 515 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 378
- "heredoc end (T_END_HEREDOC)" décalage et aller à l'état 379
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
-
- encaps_var aller à l'état 380
-
-
-état 224
-
- 516 encaps_list: encaps_var .
-
- $défaut réduction par utilisation de la règle 516 (encaps_list)
-
-
-état 225
-
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- 431 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 381
-
-
-état 226
+ ')' shift, and go to state 378
+
+
+state 218
+
+ 277 expr_without_variable: "list (T_LIST)" '(' . $@45 assignment_list ')' '=' expr
+
+ $default reduce using rule 276 ($@45)
+
+ $@45 go to state 379
+
+
+state 219
+
+ 368 combined_scalar: "array (T_ARRAY)" '(' . array_pair_list ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 157
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 549 (array_pair_list)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 158
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ array_pair_list go to state 380
+ non_empty_array_pair_list go to state 160
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 220
+
+ 563 encaps_var: "variable (T_VARIABLE)" .
+ 565 | "variable (T_VARIABLE)" . '[' $@75 encaps_var_offset ']'
+ 566 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
+
+ '[' shift, and go to state 381
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 382
+
+ $default reduce using rule 563 (encaps_var)
+
+
+state 221
+
+ 427 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
+ 562 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 383
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+
+ encaps_var go to state 384
+
+
+state 222
+
+ 428 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" .
+
+ $default reduce using rule 428 (common_scalar)
+
+
+state 223
+
+ 567 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}'
+ 568 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 385
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 386
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 224
+
+ 569 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}'
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 387
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 225
+
+ 480 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)"
+ 559 encaps_list: encaps_list . encaps_var
+ 560 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 388
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 389
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+
+ encaps_var go to state 390
+
+
+state 226
+
+ 561 encaps_list: encaps_var .
+
+ $default reduce using rule 561 (encaps_list)
+
+
+state 227
+
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ 476 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 391
+
+
+state 228
15 top_statement: "namespace (T_NAMESPACE)" '{' . $@3 top_statement_list '}'
- $défaut réduction par utilisation de la règle 14 ($@3)
+ $default reduce using rule 14 ($@3)
- $@3 aller à l'état 382
+ $@3 go to state 392
-état 227
+state 229
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
11 top_statement: "namespace (T_NAMESPACE)" namespace_name . ';'
13 | "namespace (T_NAMESPACE)" namespace_name . '{' $@2 top_statement_list '}'
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
- ';' décalage et aller à l'état 383
- '{' décalage et aller à l'état 384
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+ ';' shift, and go to state 393
+ '{' shift, and go to state 394
-état 228
+state 230
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
- 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- 432 scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 382 (class_name)
- '(' réduction par utilisation de la règle 367 (@60)
- $défaut réduction par utilisation de la règle 432 (scalar)
-
- @60 aller à l'état 385
-
-
-état 229
-
- 318 expr_without_variable: new_expr .
- 320 | '(' new_expr . ')' @51 instance_call
-
- ')' décalage et aller à l'état 386
-
- ')' [réduction par utilisation de la règle 318 (expr_without_variable)]
- $défaut réduction par utilisation de la règle 318 (expr_without_variable)
-
-
-état 230
-
- 448 parenthesis_expr: '(' yield_expr . ')'
-
- ')' décalage et aller à l'état 387
-
-
-état 231
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 447 parenthesis_expr: '(' expr . ')'
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ')' décalage et aller à l'état 388
-
-
-état 232
-
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 35 unticked_statement: '{' inner_statement_list . '}'
-
- '}' décalage et aller à l'état 389
-
- $défaut réduction par utilisation de la règle 26 ($@4)
-
- $@4 aller à l'état 390
-
-
-état 233
-
- 485 compound_variable: '$' '{' . expr '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 391
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 234
-
- 399 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
- 517 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
-
- $défaut réduction par utilisation de la règle 399 (backticks_expr)
-
- encaps_var aller à l'état 374
-
-
-état 235
-
- 340 expr_without_variable: '`' backticks_expr . '`'
-
- '`' décalage et aller à l'état 392
-
-
-état 236
-
- 400 backticks_expr: encaps_list .
- 514 encaps_list: encaps_list . encaps_var
- 515 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 378
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
-
- $défaut réduction par utilisation de la règle 400 (backticks_expr)
-
- encaps_var aller à l'état 380
-
-
-état 237
-
- 517 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
-
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
+ 382 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
+ 396 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 477 scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 396 (class_name)
+ '(' reduce using rule 381 (@60)
+ $default reduce using rule 477 (scalar)
+
+ @60 go to state 395
+
+
+state 231
+
+ 332 expr_without_variable: new_expr .
+ 334 | '(' new_expr . ')' @51 instance_call
+
+ ')' shift, and go to state 396
+
+ ')' [reduce using rule 332 (expr_without_variable)]
+ $default reduce using rule 332 (expr_without_variable)
+
+
+state 232
+
+ 493 parenthesis_expr: '(' yield_expr . ')'
+
+ ')' shift, and go to state 397
+
+
+state 233
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 492 parenthesis_expr: '(' expr . ')'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ')' shift, and go to state 398
+
+
+state 234
+
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 49 unticked_statement: '{' inner_statement_list . '}'
+
+ '}' shift, and go to state 399
+
+ $default reduce using rule 40 ($@4)
+
+ $@4 go to state 400
+
+
+state 235
+
+ 530 compound_variable: '$' '{' . expr '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 401
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 236
+
+ 413 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
+ 562 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+
+ $default reduce using rule 413 (backticks_expr)
+
+ encaps_var go to state 384
+
+
+state 237
+
+ 354 expr_without_variable: '`' backticks_expr . '`'
+
+ '`' shift, and go to state 402
+
+
+state 238
+
+ 414 backticks_expr: encaps_list .
+ 559 encaps_list: encaps_list . encaps_var
+ 560 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 388
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+
+ $default reduce using rule 414 (backticks_expr)
+
+ encaps_var go to state 390
+
+
+state 239
+
+ 562 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
- encaps_var aller à l'état 374
+ encaps_var go to state 384
-état 238
+state 240
- 434 scalar: '"' encaps_list . '"'
- 514 encaps_list: encaps_list . encaps_var
- 515 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 479 scalar: '"' encaps_list . '"'
+ 559 encaps_list: encaps_list . encaps_var
+ 560 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- "variable (T_VARIABLE)" décalage et aller à l'état 218
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 378
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" décalage et aller à l'état 221
- "{$ (T_CURLY_OPEN)" décalage et aller à l'état 222
- '"' décalage et aller à l'état 393
+ "variable (T_VARIABLE)" shift, and go to state 220
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 388
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 223
+ "{$ (T_CURLY_OPEN)" shift, and go to state 224
+ '"' shift, and go to state 403
- encaps_var aller à l'état 380
+ encaps_var go to state 390
-état 239
+state 241
6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 394
+ "identifier (T_STRING)" shift, and go to state 404
-état 240
+state 242
- 364 function_call: namespace_name @58 . function_call_parameter_list
+ 378 function_call: namespace_name @58 . function_call_parameter_list
- '(' décalage et aller à l'état 395
+ '(' shift, and go to state 405
- function_call_parameter_list aller à l'état 396
+ function_call_parameter_list go to state 406
-état 241
+state 243
- 24 constant_declaration: constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
+ 38 constant_declaration: constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
- "identifier (T_STRING)" décalage et aller à l'état 397
+ "identifier (T_STRING)" shift, and go to state 407
-état 242
+state 244
- 17 top_statement: constant_declaration ';' .
+ 19 top_statement: constant_declaration ';' .
- $défaut réduction par utilisation de la règle 17 (top_statement)
+ $default reduce using rule 19 (top_statement)
-état 243
+state 245
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from $@32 implements_list '{' class_statement_list '}'
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from $@32 implements_list '{' class_statement_list '}'
- "extends (T_EXTENDS)" décalage et aller à l'état 398
+ "extends (T_EXTENDS)" shift, and go to state 408
- $défaut réduction par utilisation de la règle 115 (extends_from)
+ $default reduce using rule 131 (extends_from)
- extends_from aller à l'état 399
+ extends_from go to state 409
-état 244
+state 246
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . $@33 interface_extends_list '{' class_statement_list '}'
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . $@33 interface_extends_list '{' class_statement_list '}'
- $défaut réduction par utilisation de la règle 109 ($@33)
+ $default reduce using rule 125 ($@33)
- $@33 aller à l'état 400
+ $@33 go to state 410
-état 245
+state 247
- 61 unticked_statement: yield_expr ';' .
+ 75 unticked_statement: yield_expr ';' .
- $défaut réduction par utilisation de la règle 61 (unticked_statement)
+ $default reduce using rule 75 (unticked_statement)
-état 246
+state 248
- 352 combined_scalar_offset: combined_scalar_offset '[' . dim_offset ']'
+ 366 combined_scalar_offset: combined_scalar_offset '[' . dim_offset ']'
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 401
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 247
-
- 351 combined_scalar_offset: combined_scalar '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 402
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 248
-
- 104 is_reference: '&' .
-
- $défaut réduction par utilisation de la règle 104 (is_reference)
-
-
-état 249
-
- 106 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
- 344 expr_without_variable: function is_reference . @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
-
- "identifier (T_STRING)" décalage et aller à l'état 403
-
- $défaut réduction par utilisation de la règle 343 (@56)
-
- @56 aller à l'état 404
-
-
-état 250
-
- 474 array_function_dereference: function_call $@72 . '[' dim_offset ']'
-
- '[' décalage et aller à l'état 405
-
-
-état 251
-
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name @61 function_call_parameter_list
- 372 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@62 function_call_parameter_list
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- 541 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- 544 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "class (T_CLASS)"
-
- "identifier (T_STRING)" décalage et aller à l'état 406
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "class (T_CLASS)" décalage et aller à l'état 407
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 409
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- variable_name aller à l'état 411
- simple_indirect_reference aller à l'état 412
-
-
-état 252
-
- 289 expr_without_variable: expr "or (T_LOGICAL_OR)" . $@49 expr
-
- $défaut réduction par utilisation de la règle 288 ($@49)
-
- $@49 aller à l'état 413
-
-
-état 253
-
- 292 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 414
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 254
-
- 291 expr_without_variable: expr "and (T_LOGICAL_AND)" . $@50 expr
-
- $défaut réduction par utilisation de la règle 290 ($@50)
-
- $@50 aller à l'état 415
-
-
-état 255
-
- 323 expr_without_variable: expr '?' . $@52 expr ':' $@53 expr
- 325 | expr '?' . ':' $@54 expr
-
- ':' décalage et aller à l'état 416
-
- $défaut réduction par utilisation de la règle 321 ($@52)
-
- $@52 aller à l'état 417
-
-
-état 256
-
- 285 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . $@47 expr
-
- $défaut réduction par utilisation de la règle 284 ($@47)
-
- $@47 aller à l'état 418
-
-
-état 257
-
- 287 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . $@48 expr
-
- $défaut réduction par utilisation de la règle 286 ($@48)
-
- $@48 aller à l'état 419
-
-
-état 258
-
- 293 expr_without_variable: expr '|' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 420
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 259
-
- 295 expr_without_variable: expr '^' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 421
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 260
-
- 294 expr_without_variable: expr '&' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 422
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 261
-
- 309 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 423
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 262
-
- 308 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 424
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 263
-
- 311 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 425
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 264
-
- 310 expr_without_variable: expr "== (T_IS_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 426
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 265
-
- 312 expr_without_variable: expr '<' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 427
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 266
-
- 314 expr_without_variable: expr '>' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 428
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 267
-
- 315 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 429
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 268
-
- 313 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 430
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 269
-
- 303 expr_without_variable: expr ">> (T_SR)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 431
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 270
-
- 302 expr_without_variable: expr "<< (T_SL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 432
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 271
-
- 297 expr_without_variable: expr '+' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 433
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 272
-
- 298 expr_without_variable: expr '-' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 434
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 273
-
- 296 expr_without_variable: expr '.' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 435
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 274
-
- 299 expr_without_variable: expr '*' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 436
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 275
-
- 300 expr_without_variable: expr '/' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 437
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 276
-
- 301 expr_without_variable: expr '%' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 438
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 277
-
- 316 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 162
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 163
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 164
- class_name aller à l'état 165
- class_name_reference aller à l'état 439
- dynamic_class_name_reference aller à l'état 167
- static_member aller à l'état 111
- variable_class_name aller à l'état 168
- base_variable aller à l'état 169
- reference_variable aller à l'état 170
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 171
-
-
-état 278
-
- 66 unticked_statement: expr ';' .
-
- $défaut réduction par utilisation de la règle 66 (unticked_statement)
-
-
-état 279
-
- 282 expr_without_variable: rw_variable "-- (T_DEC)" .
-
- $défaut réduction par utilisation de la règle 282 (expr_without_variable)
-
-
-état 280
-
- 280 expr_without_variable: rw_variable "++ (T_INC)" .
-
- $défaut réduction par utilisation de la règle 280 (expr_without_variable)
-
-
-état 281
-
- 264 expr_without_variable: variable '=' . expr
- 265 | variable '=' . '&' variable
- 267 | variable '=' . '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 440
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 441
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 282
-
- 279 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 442
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 283
-
- 278 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 443
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 284
-
- 277 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 444
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 285
-
- 276 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 445
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 286
-
- 275 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 446
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 287
-
- 274 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 447
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 288
-
- 273 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 448
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 289
-
- 272 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 449
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 290
-
- 271 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 450
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 291
-
- 270 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 451
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 292
-
- 269 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 452
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 293
-
- 378 function_call: variable_without_objects $@65 . function_call_parameter_list
-
- '(' décalage et aller à l'état 395
-
- function_call_parameter_list aller à l'état 453
-
-
-état 294
-
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name $@63 function_call_parameter_list
- 376 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@64 function_call_parameter_list
- 470 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- 542 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
-
- "identifier (T_STRING)" décalage et aller à l'état 454
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 455
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- variable_name aller à l'état 456
- simple_indirect_reference aller à l'état 412
-
-
-état 295
-
- 472 array_function_dereference: array_function_dereference '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 457
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 296
-
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . $@68 object_property $@69 method_or_not variable_properties
-
- $défaut réduction par utilisation de la règle 452 ($@68)
-
- $@68 aller à l'état 458
-
-
-état 297
-
- 481 reference_variable: reference_variable '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 459
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 298
-
- 482 reference_variable: reference_variable '{' . expr '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 460
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 299
-
- 485 compound_variable: '$' . '{' expr '}'
- 497 simple_indirect_reference: simple_indirect_reference '$' .
-
- '{' décalage et aller à l'état 233
-
- $défaut réduction par utilisation de la règle 497 (simple_indirect_reference)
-
-
-état 300
-
- 468 variable_without_objects: simple_indirect_reference reference_variable .
- 479 base_variable: simple_indirect_reference reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
-
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
-
- '(' réduction par utilisation de la règle 468 (variable_without_objects)
- $défaut réduction par utilisation de la règle 479 (base_variable)
-
-
-état 301
-
- 344 expr_without_variable: function is_reference . @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
-
- $défaut réduction par utilisation de la règle 343 (@56)
-
- @56 aller à l'état 404
-
-
-état 302
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 533 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')'
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ')' décalage et aller à l'état 461
-
-
-état 303
-
- 349 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" . expr_without_variable
- 350 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" . variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 462
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 463
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 304
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 336 | '@' $@55 expr .
-
- $défaut réduction par utilisation de la règle 336 (expr_without_variable)
-
-
-état 305
-
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 464
-
-
-état 306
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 411
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 249
+
+ 365 combined_scalar_offset: combined_scalar '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 412
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 250
+
+ 118 is_reference: '&' .
+
+ $default reduce using rule 118 (is_reference)
+
+
+state 251
+
+ 122 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
+ 358 expr_without_variable: function is_reference . @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+
+ "identifier (T_STRING)" shift, and go to state 413
+
+ $default reduce using rule 357 (@56)
+
+ @56 go to state 414
+
+
+state 252
+
+ 519 array_function_dereference: function_call $@72 . '[' dim_offset ']'
+
+ '[' shift, and go to state 415
+
+
+state 253
+
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name @61 function_call_parameter_list
+ 386 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@62 function_call_parameter_list
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ 586 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+ 589 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "class (T_CLASS)"
+
+ "identifier (T_STRING)" shift, and go to state 416
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "class (T_CLASS)" shift, and go to state 417
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 419
+ reference_variable go to state 420
+ compound_variable go to state 117
+ variable_name go to state 421
+ simple_indirect_reference go to state 422
+
+
+state 254
+
+ 303 expr_without_variable: expr "or (T_LOGICAL_OR)" . $@49 expr
+
+ $default reduce using rule 302 ($@49)
+
+ $@49 go to state 423
+
+
+state 255
+
+ 306 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 424
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 256
+
+ 305 expr_without_variable: expr "and (T_LOGICAL_AND)" . $@50 expr
+
+ $default reduce using rule 304 ($@50)
+
+ $@50 go to state 425
+
+
+state 257
+
+ 337 expr_without_variable: expr '?' . $@52 expr ':' $@53 expr
+ 339 | expr '?' . ':' $@54 expr
+
+ ':' shift, and go to state 426
+
+ $default reduce using rule 335 ($@52)
+
+ $@52 go to state 427
+
+
+state 258
+
+ 299 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . $@47 expr
+
+ $default reduce using rule 298 ($@47)
+
+ $@47 go to state 428
+
+
+state 259
+
+ 301 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . $@48 expr
+
+ $default reduce using rule 300 ($@48)
+
+ $@48 go to state 429
+
+
+state 260
+
+ 307 expr_without_variable: expr '|' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 430
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 261
+
+ 309 expr_without_variable: expr '^' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 431
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 262
+
+ 308 expr_without_variable: expr '&' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 432
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 263
+
+ 323 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 433
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 264
+
+ 322 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 434
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 265
+
+ 325 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 435
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 266
+
+ 324 expr_without_variable: expr "== (T_IS_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 436
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 267
+
+ 326 expr_without_variable: expr '<' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 437
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 268
+
+ 328 expr_without_variable: expr '>' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 438
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 269
+
+ 329 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 439
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 270
+
+ 327 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 440
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 271
+
+ 317 expr_without_variable: expr ">> (T_SR)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 441
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 272
+
+ 316 expr_without_variable: expr "<< (T_SL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 442
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 273
+
+ 311 expr_without_variable: expr '+' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 443
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 274
+
+ 312 expr_without_variable: expr '-' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 444
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 275
+
+ 310 expr_without_variable: expr '.' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 445
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 276
+
+ 313 expr_without_variable: expr '*' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 446
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 277
+
+ 314 expr_without_variable: expr '/' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 447
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 278
+
+ 315 expr_without_variable: expr '%' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 448
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 279
+
+ 330 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 162
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 163
+ '$' shift, and go to state 81
+
+ namespace_name go to state 164
+ class_name go to state 165
+ class_name_reference go to state 449
+ dynamic_class_name_reference go to state 167
+ static_member go to state 111
+ variable_class_name go to state 168
+ base_variable go to state 169
+ reference_variable go to state 170
+ compound_variable go to state 117
+ simple_indirect_reference go to state 171
+
+
+state 280
+
+ 80 unticked_statement: expr ';' .
+
+ $default reduce using rule 80 (unticked_statement)
+
+
+state 281
+
+ 296 expr_without_variable: rw_variable "-- (T_DEC)" .
+
+ $default reduce using rule 296 (expr_without_variable)
+
+
+state 282
+
+ 294 expr_without_variable: rw_variable "++ (T_INC)" .
+
+ $default reduce using rule 294 (expr_without_variable)
+
+
+state 283
+
+ 278 expr_without_variable: variable '=' . expr
+ 279 | variable '=' . '&' variable
+ 281 | variable '=' . '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 450
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 451
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 284
+
+ 293 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 452
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 285
+
+ 292 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 453
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 286
+
+ 291 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 454
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 287
+
+ 290 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 455
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 288
+
+ 289 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 456
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 289
+
+ 288 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 457
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 290
+
+ 287 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 458
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 291
+
+ 286 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 459
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 292
+
+ 285 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 460
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 293
+
+ 284 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 461
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 294
+
+ 283 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 462
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 295
+
+ 392 function_call: variable_without_objects $@65 . function_call_parameter_list
+
+ '(' shift, and go to state 405
+
+ function_call_parameter_list go to state 463
+
+
+state 296
+
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name $@63 function_call_parameter_list
+ 390 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@64 function_call_parameter_list
+ 515 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ 587 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+
+ "identifier (T_STRING)" shift, and go to state 464
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 465
+ reference_variable go to state 420
+ compound_variable go to state 117
+ variable_name go to state 466
+ simple_indirect_reference go to state 422
+
+
+state 297
+
+ 517 array_function_dereference: array_function_dereference '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 467
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 298
+
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . $@68 object_property $@69 method_or_not variable_properties
+
+ $default reduce using rule 497 ($@68)
+
+ $@68 go to state 468
+
+
+state 299
+
+ 526 reference_variable: reference_variable '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 469
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 300
+
+ 527 reference_variable: reference_variable '{' . expr '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 470
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 301
+
+ 530 compound_variable: '$' . '{' expr '}'
+ 542 simple_indirect_reference: simple_indirect_reference '$' .
+
+ '{' shift, and go to state 235
+
+ $default reduce using rule 542 (simple_indirect_reference)
+
+
+state 302
+
+ 513 variable_without_objects: simple_indirect_reference reference_variable .
+ 524 base_variable: simple_indirect_reference reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
+
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
+
+ '(' reduce using rule 513 (variable_without_objects)
+ $default reduce using rule 524 (base_variable)
+
+
+state 303
+
+ 358 expr_without_variable: function is_reference . @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+
+ $default reduce using rule 357 (@56)
+
+ @56 go to state 414
+
+
+state 304
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 578 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ')' shift, and go to state 471
+
+
+state 305
+
+ 363 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" . expr_without_variable
+ 364 | "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" . variable
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 472
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 473
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 306
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 350 | '@' $@55 expr .
+
+ $default reduce using rule 350 (expr_without_variable)
+
+
+state 307
+
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 474
+
+
+state 308
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
- 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 382 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
+ 396 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 382 (class_name)
- $défaut réduction par utilisation de la règle 367 (@60)
-
- @60 aller à l'état 385
-
-
-état 307
-
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name @61 function_call_parameter_list
- 372 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@62 function_call_parameter_list
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
-
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 409
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- variable_name aller à l'état 411
- simple_indirect_reference aller à l'état 412
-
-
-état 308
-
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name $@63 function_call_parameter_list
- 376 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@64 function_call_parameter_list
- 470 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
-
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 455
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- variable_name aller à l'état 456
- simple_indirect_reference aller à l'état 412
-
-
-état 309
-
- 513 non_empty_array_pair_list: '&' w_variable .
-
- $défaut réduction par utilisation de la règle 513 (non_empty_array_pair_list)
-
-
-état 310
-
- 450 w_variable: variable .
-
- $défaut réduction par utilisation de la règle 450 (w_variable)
-
-
-état 311
-
- 508 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr
- 512 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 466
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 467
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 312
-
- 355 combined_scalar: '[' array_pair_list ']' .
-
- $défaut réduction par utilisation de la règle 355 (combined_scalar)
-
-
-état 313
-
- 440 possible_comma: ',' .
- 506 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr
- 507 | non_empty_array_pair_list ',' . expr
- 510 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 511 | non_empty_array_pair_list ',' . '&' w_variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 468
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 440 (possible_comma)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 469
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 314
-
- 505 array_pair_list: non_empty_array_pair_list possible_comma .
-
- $défaut réduction par utilisation de la règle 505 (array_pair_list)
-
-
-état 315
-
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 470
-
-
-état 316
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 396 (class_name)
+ $default reduce using rule 381 (@60)
+
+ @60 go to state 395
+
+
+state 309
+
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name @61 function_call_parameter_list
+ 386 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@62 function_call_parameter_list
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 419
+ reference_variable go to state 420
+ compound_variable go to state 117
+ variable_name go to state 421
+ simple_indirect_reference go to state 422
+
+
+state 310
+
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name $@63 function_call_parameter_list
+ 390 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects $@64 function_call_parameter_list
+ 515 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 465
+ reference_variable go to state 420
+ compound_variable go to state 117
+ variable_name go to state 466
+ simple_indirect_reference go to state 422
+
+
+state 311
+
+ 558 non_empty_array_pair_list: '&' w_variable .
+
+ $default reduce using rule 558 (non_empty_array_pair_list)
+
+
+state 312
+
+ 495 w_variable: variable .
+
+ $default reduce using rule 495 (w_variable)
+
+
+state 313
+
+ 553 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr
+ 557 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 476
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 477
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 314
+
+ 369 combined_scalar: '[' array_pair_list ']' .
+
+ $default reduce using rule 369 (combined_scalar)
+
+
+state 315
+
+ 485 possible_comma: ',' .
+ 551 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr
+ 552 | non_empty_array_pair_list ',' . expr
+ 555 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 556 | non_empty_array_pair_list ',' . '&' w_variable
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 478
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 485 (possible_comma)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 479
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 316
+
+ 550 array_pair_list: non_empty_array_pair_list possible_comma .
+
+ $default reduce using rule 550 (array_pair_list)
+
+
+state 317
+
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 480
+
+
+state 318
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- $défaut réduction par utilisation de la règle 382 (class_name)
-
-
-état 317
-
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ 396 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '$' décalage et aller à l'état 81
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- variable_without_objects aller à l'état 471
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 412
+ $default reduce using rule 396 (class_name)
-état 318
+state 319
- 261 new_expr: "new (T_NEW)" class_name_reference $@44 . ctor_arguments
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- '(' décalage et aller à l'état 395
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 81
- $défaut réduction par utilisation de la règle 401 (ctor_arguments)
+ variable_without_objects go to state 481
+ reference_variable go to state 420
+ compound_variable go to state 117
+ simple_indirect_reference go to state 422
- function_call_parameter_list aller à l'état 472
- ctor_arguments aller à l'état 473
+state 320
-état 319
+ 275 new_expr: "new (T_NEW)" class_name_reference $@44 . ctor_arguments
- 470 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ '(' shift, and go to state 405
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '$' décalage et aller à l'état 81
+ $default reduce using rule 415 (ctor_arguments)
- variable_without_objects aller à l'état 474
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 412
+ function_call_parameter_list go to state 482
+ ctor_arguments go to state 483
-état 320
+state 321
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . $@66 object_property $@67 dynamic_class_name_variable_properties
+ 515 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- $défaut réduction par utilisation de la règle 388 ($@66)
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 81
- $@66 aller à l'état 475
+ variable_without_objects go to state 484
+ reference_variable go to state 420
+ compound_variable go to state 117
+ simple_indirect_reference go to state 422
-état 321
+state 322
- 479 base_variable: simple_indirect_reference reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . $@66 object_property $@67 dynamic_class_name_variable_properties
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
+ $default reduce using rule 402 ($@66)
- $défaut réduction par utilisation de la règle 479 (base_variable)
+ $@66 go to state 485
-état 322
+state 323
- 396 exit_expr: '(' ')' .
+ 524 base_variable: simple_indirect_reference reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
- $défaut réduction par utilisation de la règle 396 (exit_expr)
-
-
-état 323
-
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' . $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- $défaut réduction par utilisation de la règle 39 ($@7)
-
- $@7 aller à l'état 476
-
-
-état 324
-
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 . statement $@6 elseif_list else_single
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 477
- unticked_statement aller à l'état 88
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 325
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 487 dim_offset: expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 487 (dim_offset)
-
-
-état 326
-
- 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 478
-
-
-état 327
-
- 242 echo_expr_list: echo_expr_list ',' . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 479
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 328
-
- 64 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' .
-
- $défaut réduction par utilisation de la règle 64 (unticked_statement)
-
-
-état 329
-
- 47 unticked_statement: "do (T_DO)" $@11 statement . "while (T_WHILE)" $@12 parenthesis_expr ';'
-
- "while (T_WHILE)" décalage et aller à l'état 480
-
-
-état 330
-
- 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr . @10 while_statement
-
- $défaut réduction par utilisation de la règle 43 (@10)
-
- @10 aller à l'état 481
-
-
-état 331
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
-
- ';' décalage et aller à l'état 482
-
-
-état 332
-
- 245 for_expr: non_empty_for_expr .
- 247 non_empty_for_expr: non_empty_for_expr . ',' $@41 expr
-
- ',' décalage et aller à l'état 483
-
- $défaut réduction par utilisation de la règle 245 (for_expr)
-
-
-état 333
-
- 248 non_empty_for_expr: expr .
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
+ $default reduce using rule 524 (base_variable)
- $défaut réduction par utilisation de la règle 248 (non_empty_for_expr)
+state 324
-état 334
+ 410 exit_expr: '(' ')' .
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
- 446 expr: expr_without_variable .
+ $default reduce using rule 410 (exit_expr)
+
+
+state 325
+
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' . $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+ $default reduce using rule 53 ($@7)
+
+ $@7 go to state 486
+
+
+state 326
+
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 . statement $@6 elseif_list else_single
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 487
+ unticked_statement go to state 88
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 327
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 532 dim_offset: expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 532 (dim_offset)
+
+
+state 328
+
+ 367 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset . ']'
+
+ ']' shift, and go to state 488
+
+
+state 329
+
+ 256 echo_expr_list: echo_expr_list ',' . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 489
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 330
+
+ 78 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' .
+
+ $default reduce using rule 78 (unticked_statement)
+
+
+state 331
+
+ 61 unticked_statement: "do (T_DO)" $@11 statement . "while (T_WHILE)" $@12 parenthesis_expr ';'
+
+ "while (T_WHILE)" shift, and go to state 490
+
+
+state 332
+
+ 58 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr . @10 while_statement
+
+ $default reduce using rule 57 (@10)
+
+ @10 go to state 491
+
+
+state 333
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr . ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
+
+ ';' shift, and go to state 492
+
+
+state 334
+
+ 259 for_expr: non_empty_for_expr .
+ 261 non_empty_for_expr: non_empty_for_expr . ',' $@41 expr
+
+ ',' shift, and go to state 493
+
+ $default reduce using rule 259 (for_expr)
+
+
+state 335
+
+ 262 non_empty_for_expr: expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
- "as (T_AS)" décalage et aller à l'état 484
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
- $défaut réduction par utilisation de la règle 446 (expr)
+ $default reduce using rule 262 (non_empty_for_expr)
-état 335
+state 336
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+ 491 expr: expr_without_variable .
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
- "as (T_AS)" décalage et aller à l'état 485
+ "as (T_AS)" shift, and go to state 494
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- $défaut réduction par utilisation de la règle 449 (r_variable)
+ $default reduce using rule 491 (expr)
-état 336
+state 337
- 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' . declare_list ')' declare_statement
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+ "as (T_AS)" shift, and go to state 495
- "identifier (T_STRING)" décalage et aller à l'état 486
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ $default reduce using rule 494 (r_variable)
- declare_list aller à l'état 487
+state 338
-état 337
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 '(' . declare_list ')' declare_statement
- 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 . switch_case_list
+ "identifier (T_STRING)" shift, and go to state 496
- ':' décalage et aller à l'état 488
- '{' décalage et aller à l'état 489
+ declare_list go to state 497
- switch_case_list aller à l'état 490
+state 339
-état 338
+ 67 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 . switch_case_list
- 55 unticked_statement: "break (T_BREAK)" expr ';' .
+ ':' shift, and go to state 498
+ '{' shift, and go to state 499
- $défaut réduction par utilisation de la règle 55 (unticked_statement)
+ switch_case_list go to state 500
-état 339
+state 340
- 57 unticked_statement: "continue (T_CONTINUE)" expr ';' .
+ 69 unticked_statement: "break (T_BREAK)" expr ';' .
- $défaut réduction par utilisation de la règle 57 (unticked_statement)
+ $default reduce using rule 69 (unticked_statement)
-état 340
+state 341
- 81 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' .
+ 71 unticked_statement: "continue (T_CONTINUE)" expr ';' .
- $défaut réduction par utilisation de la règle 81 (unticked_statement)
+ $default reduce using rule 71 (unticked_statement)
-état 341
+state 342
- 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
+ 95 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' .
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $default reduce using rule 95 (unticked_statement)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 503
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+state 343
-état 342
+ 39 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
- 59 unticked_statement: "return (T_RETURN)" expr_without_variable ';' .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 59 (unticked_statement)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 517
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 343
+state 344
- 60 unticked_statement: "return (T_RETURN)" variable ';' .
+ 73 unticked_statement: "return (T_RETURN)" expr_without_variable ';' .
- $défaut réduction par utilisation de la règle 60 (unticked_statement)
+ $default reduce using rule 73 (unticked_statement)
-état 344
+state 345
- 79 unticked_statement: "try (T_TRY)" $@22 '{' . inner_statement_list '}' catch_statement $@23 finally_statement
+ 74 unticked_statement: "return (T_RETURN)" variable ';' .
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 74 (unticked_statement)
- inner_statement_list aller à l'état 506
+state 346
-état 345
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' . inner_statement_list '}' catch_statement $@23 finally_statement
- 80 unticked_statement: "throw (T_THROW)" expr ';' .
+ $default reduce using rule 42 (inner_statement_list)
- $défaut réduction par utilisation de la règle 80 (unticked_statement)
+ inner_statement_list go to state 521
-état 346
-
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 22 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name .
- 23 | "\\ (T_NS_SEPARATOR)" namespace_name . "as (T_AS)" "identifier (T_STRING)"
-
- "as (T_AS)" décalage et aller à l'état 507
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- $défaut réduction par utilisation de la règle 22 (use_declaration)
+state 347
+ 94 unticked_statement: "throw (T_THROW)" expr ';' .
-état 347
+ $default reduce using rule 94 (unticked_statement)
- 21 use_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 508
+state 348
+ 30 use_function_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 31 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
-état 348
+ "identifier (T_STRING)" shift, and go to state 123
- 18 use_declarations: use_declarations ',' . use_declaration
+ namespace_name go to state 522
- "identifier (T_STRING)" décalage et aller à l'état 123
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 199
- namespace_name aller à l'état 200
- use_declaration aller à l'état 509
+state 349
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 28 use_function_declaration: namespace_name .
+ 29 | namespace_name . "as (T_AS)" "identifier (T_STRING)"
-état 349
-
- 16 top_statement: "use (T_USE)" use_declarations ';' .
-
- $défaut réduction par utilisation de la règle 16 (top_statement)
-
-
-état 350
-
- 188 global_var: '$' '{' . expr '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 510
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 351
-
- 187 global_var: '$' r_variable .
+ "as (T_AS)" shift, and go to state 523
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- $défaut réduction par utilisation de la règle 187 (global_var)
+ $default reduce using rule 28 (use_function_declaration)
-état 352
+state 350
- 449 r_variable: variable .
+ 17 top_statement: "use (T_USE)" "function (T_FUNCTION)" use_function_declarations . ';'
+ 26 use_function_declarations: use_function_declarations . ',' use_function_declaration
- $défaut réduction par utilisation de la règle 449 (r_variable)
+ ',' shift, and go to state 524
+ ';' shift, and go to state 525
-état 353
+state 351
- 184 global_var_list: global_var_list ',' . global_var
+ 27 use_function_declarations: use_function_declaration .
- "variable (T_VARIABLE)" décalage et aller à l'état 203
- '$' décalage et aller à l'état 204
+ $default reduce using rule 27 (use_function_declarations)
- global_var aller à l'état 511
+state 352
-état 354
+ 36 use_const_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 37 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
- 62 unticked_statement: "global (T_GLOBAL)" global_var_list ';' .
+ "identifier (T_STRING)" shift, and go to state 123
- $défaut réduction par utilisation de la règle 62 (unticked_statement)
+ namespace_name go to state 526
-état 355
+state 353
- 192 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 34 use_const_declaration: namespace_name .
+ 35 | namespace_name . "as (T_AS)" "identifier (T_STRING)"
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ "as (T_AS)" shift, and go to state 527
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 512
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $default reduce using rule 34 (use_const_declaration)
-état 356
+state 354
- 189 static_var_list: static_var_list ',' . "variable (T_VARIABLE)"
- 190 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar
+ 18 top_statement: "use (T_USE)" "const (T_CONST)" use_const_declarations . ';'
+ 32 use_const_declarations: use_const_declarations . ',' use_const_declaration
- "variable (T_VARIABLE)" décalage et aller à l'état 513
+ ',' shift, and go to state 528
+ ';' shift, and go to state 529
-état 357
+state 355
- 63 unticked_statement: "static (T_STATIC)" static_var_list ';' .
+ 33 use_const_declarations: use_const_declaration .
- $défaut réduction par utilisation de la règle 63 (unticked_statement)
+ $default reduce using rule 33 (use_const_declarations)
-état 358
+state 356
- 346 expr_without_variable: "static (T_STATIC)" function is_reference . @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 24 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 25 | "\\ (T_NS_SEPARATOR)" namespace_name . "as (T_AS)" "identifier (T_STRING)"
- $défaut réduction par utilisation de la règle 345 (@57)
+ "as (T_AS)" shift, and go to state 530
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- @57 aller à l'état 514
+ $default reduce using rule 24 (use_declaration)
-état 359
+state 357
- 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';'
- 99 unset_variables: unset_variables . ',' unset_variable
+ 23 use_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
- ',' décalage et aller à l'état 515
- ')' décalage et aller à l'état 516
+ "identifier (T_STRING)" shift, and go to state 531
-état 360
+state 358
- 98 unset_variables: unset_variable .
+ 20 use_declarations: use_declarations ',' . use_declaration
- $défaut réduction par utilisation de la règle 98 (unset_variables)
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 201
+ namespace_name go to state 202
+ use_declaration go to state 532
-état 361
- 100 unset_variable: variable .
+state 359
- $défaut réduction par utilisation de la règle 100 (unset_variable)
+ 16 top_statement: "use (T_USE)" use_declarations ';' .
+ $default reduce using rule 16 (top_statement)
+
+
+state 360
+
+ 202 global_var: '$' '{' . expr '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 533
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 361
+
+ 201 global_var: '$' r_variable .
-état 362
+ $default reduce using rule 201 (global_var)
- 446 expr: expr_without_variable .
- 540 isset_variable: expr_without_variable .
- ',' réduction par utilisation de la règle 540 (isset_variable)
- ')' réduction par utilisation de la règle 540 (isset_variable)
- $défaut réduction par utilisation de la règle 446 (expr)
+state 362
+ 494 r_variable: variable .
-état 363
+ $default reduce using rule 494 (r_variable)
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
- 539 isset_variable: variable .
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
+state 363
- ',' réduction par utilisation de la règle 539 (isset_variable)
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- ')' réduction par utilisation de la règle 539 (isset_variable)
- $défaut réduction par utilisation de la règle 449 (r_variable)
+ 198 global_var_list: global_var_list ',' . global_var
+ "variable (T_VARIABLE)" shift, and go to state 205
+ '$' shift, and go to state 206
-état 364
+ global_var go to state 534
- 528 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')'
- 538 isset_variables: isset_variables . ',' $@76 isset_variable
- ',' décalage et aller à l'état 517
- ')' décalage et aller à l'état 518
+state 364
+ 76 unticked_statement: "global (T_GLOBAL)" global_var_list ';' .
-état 365
+ $default reduce using rule 76 (unticked_statement)
- 536 isset_variables: isset_variable .
- $défaut réduction par utilisation de la règle 536 (isset_variables)
+state 365
+ 206 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar
-état 366
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- 446 expr: expr_without_variable .
- 530 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable . ')'
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 535
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- ')' décalage et aller à l'état 519
- $défaut réduction par utilisation de la règle 446 (expr)
+state 366
+ 203 static_var_list: static_var_list ',' . "variable (T_VARIABLE)"
+ 204 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar
-état 367
+ "variable (T_VARIABLE)" shift, and go to state 536
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
- 529 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')'
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
- ')' décalage et aller à l'état 520
-
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- $défaut réduction par utilisation de la règle 449 (r_variable)
-
-
-état 368
+state 367
- 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
+ 77 unticked_statement: "static (T_STATIC)" static_var_list ';' .
- ';' décalage et aller à l'état 521
+ $default reduce using rule 77 (unticked_statement)
-état 369
+state 368
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 . assignment_list ')' '=' expr
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference . @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 522
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ $default reduce using rule 359 (@57)
- $défaut réduction par utilisation de la règle 503 (assignment_list_element)
+ @57 go to state 537
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 523
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- assignment_list aller à l'état 524
- assignment_list_element aller à l'état 525
+state 369
-état 370
+ 81 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';'
+ 113 unset_variables: unset_variables . ',' unset_variable
- 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list . ')'
+ ',' shift, and go to state 538
+ ')' shift, and go to state 539
- ')' décalage et aller à l'état 526
+state 370
-état 371
+ 112 unset_variables: unset_variable .
- 520 encaps_var: "variable (T_VARIABLE)" '[' . $@75 encaps_var_offset ']'
+ $default reduce using rule 112 (unset_variables)
- $défaut réduction par utilisation de la règle 519 ($@75)
- $@75 aller à l'état 527
+state 371
+ 114 unset_variable: variable .
-état 372
+ $default reduce using rule 114 (unset_variable)
- 521 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 528
+state 372
+ 491 expr: expr_without_variable .
+ 585 isset_variable: expr_without_variable .
-état 373
+ ',' reduce using rule 585 (isset_variable)
+ ')' reduce using rule 585 (isset_variable)
+ $default reduce using rule 491 (expr)
- 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" .
- $défaut réduction par utilisation de la règle 413 (common_scalar)
+state 373
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+ 584 isset_variable: variable .
-état 374
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
- 517 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var .
+ ',' reduce using rule 584 (isset_variable)
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ ')' reduce using rule 584 (isset_variable)
+ $default reduce using rule 494 (r_variable)
- $défaut réduction par utilisation de la règle 517 (encaps_list)
+state 374
-état 375
+ 573 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')'
+ 583 isset_variables: isset_variables . ',' $@76 isset_variable
- 427 scalar: "variable name (T_STRING_VARNAME)" .
- 523 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}'
+ ',' shift, and go to state 540
+ ')' shift, and go to state 541
- '[' décalage et aller à l'état 529
- $défaut réduction par utilisation de la règle 427 (scalar)
+state 375
+ 581 isset_variables: isset_variable .
-état 376
+ $default reduce using rule 581 (isset_variables)
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 522 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}'
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 530
+state 376
+ 491 expr: expr_without_variable .
+ 575 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable . ')'
-état 377
+ ')' shift, and go to state 542
- 524 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}'
+ $default reduce using rule 491 (expr)
- '}' décalage et aller à l'état 531
+state 377
-état 378
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+ 574 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')'
- 515 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+ ')' shift, and go to state 543
+
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ $default reduce using rule 494 (r_variable)
+
+
+state 378
- $défaut réduction par utilisation de la règle 515 (encaps_list)
+ 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
+ ';' shift, and go to state 544
-état 379
- 435 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" .
+state 379
- $défaut réduction par utilisation de la règle 435 (scalar)
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 . assignment_list ')' '=' expr
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 545
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
-état 380
+ $default reduce using rule 548 (assignment_list_element)
- 514 encaps_list: encaps_list encaps_var .
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 546
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ assignment_list go to state 547
+ assignment_list_element go to state 548
- $défaut réduction par utilisation de la règle 514 (encaps_list)
+state 380
-état 381
+ 368 combined_scalar: "array (T_ARRAY)" '(' array_pair_list . ')'
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 431 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ ')' shift, and go to state 549
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 381 (class_name)
- '(' réduction par utilisation de la règle 365 (@59)
- $défaut réduction par utilisation de la règle 431 (scalar)
+state 381
- @59 aller à l'état 532
+ 565 encaps_var: "variable (T_VARIABLE)" '[' . $@75 encaps_var_offset ']'
+ $default reduce using rule 564 ($@75)
-état 382
+ $@75 go to state 550
- 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 . top_statement_list '}'
- $défaut réduction par utilisation de la règle 4 (top_statement_list)
+state 382
- top_statement_list aller à l'état 533
+ 566 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)"
+ "identifier (T_STRING)" shift, and go to state 551
-état 383
- 11 top_statement: "namespace (T_NAMESPACE)" namespace_name ';' .
+state 383
- $défaut réduction par utilisation de la règle 11 (top_statement)
+ 427 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" .
+ $default reduce using rule 427 (common_scalar)
-état 384
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . $@2 top_statement_list '}'
+state 384
- $défaut réduction par utilisation de la règle 12 ($@2)
+ 562 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var .
- $@2 aller à l'état 534
+ $default reduce using rule 562 (encaps_list)
-état 385
+state 385
- 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 . function_call_parameter_list
+ 472 scalar: "variable name (T_STRING_VARNAME)" .
+ 568 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}'
- '(' décalage et aller à l'état 395
+ '[' shift, and go to state 552
- function_call_parameter_list aller à l'état 535
+ $default reduce using rule 472 (scalar)
-état 386
-
- 320 expr_without_variable: '(' new_expr ')' . @51 instance_call
-
- $défaut réduction par utilisation de la règle 319 (@51)
-
- @51 aller à l'état 536
-
-
-état 387
-
- 448 parenthesis_expr: '(' yield_expr ')' .
-
- $défaut réduction par utilisation de la règle 448 (parenthesis_expr)
-
-
-état 388
-
- 447 parenthesis_expr: '(' expr ')' .
-
- $défaut réduction par utilisation de la règle 447 (parenthesis_expr)
-
-
-état 389
-
- 35 unticked_statement: '{' inner_statement_list '}' .
-
- $défaut réduction par utilisation de la règle 35 (unticked_statement)
-
-
-état 390
-
- 27 inner_statement_list: inner_statement_list $@4 . inner_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "final (T_FINAL)" décalage et aller à l'état 55
- "abstract (T_ABSTRACT)" décalage et aller à l'état 56
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "__halt_compiler (T_HALT_COMPILER)" décalage et aller à l'état 537
- "class (T_CLASS)" décalage et aller à l'état 62
- "trait (T_TRAIT)" décalage et aller à l'état 63
- "interface (T_INTERFACE)" décalage et aller à l'état 64
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- inner_statement aller à l'état 538
- statement aller à l'état 539
- unticked_statement aller à l'état 88
- function_declaration_statement aller à l'état 540
- class_declaration_statement aller à l'état 541
- unticked_function_declaration_statement aller à l'état 91
- unticked_class_declaration_statement aller à l'état 92
- class_entry_type aller à l'état 93
- interface_entry aller à l'état 94
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 100
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 391
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 485 compound_variable: '$' '{' expr . '}'
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 542
-
-
-état 392
-
- 340 expr_without_variable: '`' backticks_expr '`' .
-
- $défaut réduction par utilisation de la règle 340 (expr_without_variable)
-
-
-état 393
-
- 434 scalar: '"' encaps_list '"' .
-
- $défaut réduction par utilisation de la règle 434 (scalar)
-
-
-état 394
+state 386
- 6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 567 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}'
- $défaut réduction par utilisation de la règle 6 (namespace_name)
-
-
-état 395
-
- 175 function_call_parameter_list: '(' . ')'
- 176 | '(' . non_empty_function_call_parameter_list ')'
- 177 | '(' . yield_expr ')'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '&' décalage et aller à l'état 543
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ')' décalage et aller à l'état 544
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 553
- namespace_name aller à l'état 84
- non_empty_function_call_parameter_list aller à l'état 545
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 546
- yield_expr aller à l'état 547
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 548
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
+state 387
-état 396
+ 569 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}'
- 364 function_call: namespace_name @58 function_call_parameter_list .
+ '}' shift, and go to state 554
- $défaut réduction par utilisation de la règle 364 (function_call)
+state 388
-état 397
-
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
-
- '=' décalage et aller à l'état 549
-
-
-état 398
-
- 116 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
-
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 553
-
-
-état 399
-
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . $@32 implements_list '{' class_statement_list '}'
-
- $défaut réduction par utilisation de la règle 107 ($@32)
-
- $@32 aller à l'état 554
-
-
-état 400
-
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 . interface_extends_list '{' class_statement_list '}'
-
- "extends (T_EXTENDS)" décalage et aller à l'état 555
-
- $défaut réduction par utilisation de la règle 118 (interface_extends_list)
-
- interface_extends_list aller à l'état 556
-
-
-état 401
-
- 352 combined_scalar_offset: combined_scalar_offset '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 557
-
-
-état 402
-
- 351 combined_scalar_offset: combined_scalar '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 558
-
-
-état 403
-
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . $@31 '(' parameter_list ')' '{' inner_statement_list '}'
-
- $défaut réduction par utilisation de la règle 105 ($@31)
+ 560 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
- $@31 aller à l'état 559
+ $default reduce using rule 560 (encaps_list)
-état 404
+state 389
- 344 expr_without_variable: function is_reference @56 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 480 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" .
- '(' décalage et aller à l'état 560
+ $default reduce using rule 480 (scalar)
-état 405
+state 390
- 474 array_function_dereference: function_call $@72 '[' . dim_offset ']'
+ 559 encaps_list: encaps_list encaps_var .
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 561
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 406
-
- 494 variable_name: "identifier (T_STRING)" .
- 541 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
-
- '(' réduction par utilisation de la règle 494 (variable_name)
- $défaut réduction par utilisation de la règle 541 (class_constant)
-
-
-état 407
-
- 544 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)" .
-
- $défaut réduction par utilisation de la règle 544 (class_name_scalar)
-
-
-état 408
-
- 495 variable_name: '{' . expr '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 562
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 409
-
- 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@62 function_call_parameter_list
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
-
- '(' réduction par utilisation de la règle 371 ($@62)
- $défaut réduction par utilisation de la règle 469 (static_member)
-
- $@62 aller à l'état 563
-
-
-état 410
-
- 467 variable_without_objects: reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
-
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
-
- $défaut réduction par utilisation de la règle 467 (variable_without_objects)
-
-
-état 411
-
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . @61 function_call_parameter_list
-
- $défaut réduction par utilisation de la règle 369 (@61)
-
- @61 aller à l'état 564
-
-
-état 412
-
- 468 variable_without_objects: simple_indirect_reference . reference_variable
- 497 simple_indirect_reference: simple_indirect_reference . '$'
-
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '$' décalage et aller à l'état 299
-
- reference_variable aller à l'état 565
- compound_variable aller à l'état 117
-
-
-état 413
-
- 289 expr_without_variable: expr "or (T_LOGICAL_OR)" $@49 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 566
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 414
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 292 | expr "xor (T_LOGICAL_XOR)" expr .
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 292 (expr_without_variable)
-
-
-état 415
-
- 291 expr_without_variable: expr "and (T_LOGICAL_AND)" $@50 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 567
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 416
-
- 325 expr_without_variable: expr '?' ':' . $@54 expr
-
- $défaut réduction par utilisation de la règle 324 ($@54)
-
- $@54 aller à l'état 568
-
-
-état 417
-
- 323 expr_without_variable: expr '?' $@52 . expr ':' $@53 expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 569
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 418
-
- 285 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@47 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 570
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 419
-
- 287 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@48 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 571
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 420
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 293 | expr '|' expr .
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 293 (expr_without_variable)
-
-
-état 421
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 295 | expr '^' expr .
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 295 (expr_without_variable)
-
-
-état 422
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 294 | expr '&' expr .
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 294 (expr_without_variable)
-
-
-état 423
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 309 | expr "!== (T_IS_NOT_IDENTICAL)" expr .
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- "!== (T_IS_NOT_IDENTICAL)" erreur (non-associative)
- "=== (T_IS_IDENTICAL)" erreur (non-associative)
- "!= (T_IS_NOT_EQUAL)" erreur (non-associative)
- "== (T_IS_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 309 (expr_without_variable)
-
-
-état 424
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 308 | expr "=== (T_IS_IDENTICAL)" expr .
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- "!== (T_IS_NOT_IDENTICAL)" erreur (non-associative)
- "=== (T_IS_IDENTICAL)" erreur (non-associative)
- "!= (T_IS_NOT_EQUAL)" erreur (non-associative)
- "== (T_IS_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 308 (expr_without_variable)
-
-
-état 425
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 311 | expr "!= (T_IS_NOT_EQUAL)" expr .
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- "!== (T_IS_NOT_IDENTICAL)" erreur (non-associative)
- "=== (T_IS_IDENTICAL)" erreur (non-associative)
- "!= (T_IS_NOT_EQUAL)" erreur (non-associative)
- "== (T_IS_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 311 (expr_without_variable)
-
-
-état 426
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 310 | expr "== (T_IS_EQUAL)" expr .
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- "!== (T_IS_NOT_IDENTICAL)" erreur (non-associative)
- "=== (T_IS_IDENTICAL)" erreur (non-associative)
- "!= (T_IS_NOT_EQUAL)" erreur (non-associative)
- "== (T_IS_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 310 (expr_without_variable)
-
-
-état 427
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 312 | expr '<' expr .
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- '<' erreur (non-associative)
- '>' erreur (non-associative)
- ">= (T_IS_GREATER_OR_EQUAL)" erreur (non-associative)
- "<= (T_IS_SMALLER_OR_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 312 (expr_without_variable)
-
-
-état 428
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 314 | expr '>' expr .
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- '<' erreur (non-associative)
- '>' erreur (non-associative)
- ">= (T_IS_GREATER_OR_EQUAL)" erreur (non-associative)
- "<= (T_IS_SMALLER_OR_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 314 (expr_without_variable)
-
-
-état 429
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 315 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr .
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- '<' erreur (non-associative)
- '>' erreur (non-associative)
- ">= (T_IS_GREATER_OR_EQUAL)" erreur (non-associative)
- "<= (T_IS_SMALLER_OR_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 315 (expr_without_variable)
-
-
-état 430
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 313 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr .
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- '<' erreur (non-associative)
- '>' erreur (non-associative)
- ">= (T_IS_GREATER_OR_EQUAL)" erreur (non-associative)
- "<= (T_IS_SMALLER_OR_EQUAL)" erreur (non-associative)
-
- $défaut réduction par utilisation de la règle 313 (expr_without_variable)
-
-
-état 431
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 303 | expr ">> (T_SR)" expr .
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 303 (expr_without_variable)
-
-
-état 432
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 302 | expr "<< (T_SL)" expr .
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 302 (expr_without_variable)
-
-
-état 433
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 297 | expr '+' expr .
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 297 (expr_without_variable)
-
-
-état 434
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 298 | expr '-' expr .
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 298 (expr_without_variable)
-
-
-état 435
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 296 | expr '.' expr .
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 296 (expr_without_variable)
-
-
-état 436
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 299 | expr '*' expr .
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 299 (expr_without_variable)
-
-
-état 437
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 300 | expr '/' expr .
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 300 (expr_without_variable)
-
-
-état 438
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 301 | expr '%' expr .
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 301 (expr_without_variable)
-
-
-état 439
-
- 316 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference .
-
- $défaut réduction par utilisation de la règle 316 (expr_without_variable)
-
-
-état 440
-
- 265 expr_without_variable: variable '=' '&' . variable
- 267 | variable '=' '&' . "new (T_NEW)" class_name_reference $@46 ctor_arguments
-
- "new (T_NEW)" décalage et aller à l'état 572
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 573
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 441
-
- 264 expr_without_variable: variable '=' expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 264 (expr_without_variable)
-
-
-état 442
-
- 279 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 279 (expr_without_variable)
-
-
-état 443
-
- 278 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 278 (expr_without_variable)
-
-
-état 444
-
- 277 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 277 (expr_without_variable)
-
-
-état 445
-
- 276 expr_without_variable: variable "|= (T_OR_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 276 (expr_without_variable)
-
-
-état 446
-
- 275 expr_without_variable: variable "&= (T_AND_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 275 (expr_without_variable)
-
-
-état 447
-
- 274 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 274 (expr_without_variable)
-
-
-état 448
-
- 273 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 273 (expr_without_variable)
-
-
-état 449
-
- 272 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 272 (expr_without_variable)
-
-
-état 450
-
- 271 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 271 (expr_without_variable)
-
-
-état 451
-
- 270 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 270 (expr_without_variable)
-
-
-état 452
-
- 269 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 269 (expr_without_variable)
-
-
-état 453
-
- 378 function_call: variable_without_objects $@65 function_call_parameter_list .
-
- $défaut réduction par utilisation de la règle 378 (function_call)
-
-
-état 454
-
- 494 variable_name: "identifier (T_STRING)" .
- 542 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
-
- '(' réduction par utilisation de la règle 494 (variable_name)
- $défaut réduction par utilisation de la règle 542 (class_constant)
-
-
-état 455
-
- 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@64 function_call_parameter_list
- 470 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
-
- '(' réduction par utilisation de la règle 375 ($@64)
- $défaut réduction par utilisation de la règle 470 (static_member)
-
- $@64 aller à l'état 574
-
-
-état 456
-
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . $@63 function_call_parameter_list
-
- $défaut réduction par utilisation de la règle 373 ($@63)
-
- $@63 aller à l'état 575
-
-
-état 457
-
- 472 array_function_dereference: array_function_dereference '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 576
-
-
-état 458
-
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 . object_property $@69 method_or_not variable_properties
-
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 577
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- object_property aller à l'état 578
- object_dim_list aller à l'état 579
- variable_name aller à l'état 580
- simple_indirect_reference aller à l'état 412
-
-
-état 459
-
- 481 reference_variable: reference_variable '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 581
-
-
-état 460
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 482 reference_variable: reference_variable '{' expr . '}'
+ $default reduce using rule 559 (encaps_list)
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 582
-
-
-état 461
-
- 533 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' .
-
- $défaut réduction par utilisation de la règle 533 (internal_functions_in_yacc)
-
-
-état 462
-
- 349 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" expr_without_variable .
- 446 expr: expr_without_variable .
-
- ')' réduction par utilisation de la règle 349 (yield_expr)
- ';' réduction par utilisation de la règle 349 (yield_expr)
- $défaut réduction par utilisation de la règle 446 (expr)
-
-
-état 463
-
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 350 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" variable .
- 449 r_variable: variable .
- 451 rw_variable: variable .
-
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
-
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- ')' réduction par utilisation de la règle 350 (yield_expr)
- ';' réduction par utilisation de la règle 350 (yield_expr)
- $défaut réduction par utilisation de la règle 449 (r_variable)
-
-
-état 464
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . @59 function_call_parameter_list
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 381 (class_name)
- $défaut réduction par utilisation de la règle 365 (@59)
-
- @59 aller à l'état 532
-
-
-état 465
-
- 494 variable_name: "identifier (T_STRING)" .
-
- $défaut réduction par utilisation de la règle 494 (variable_name)
-
-
-état 466
-
- 512 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 583
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 467
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 508 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 508 (non_empty_array_pair_list)
-
-
-état 468
-
- 511 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 584
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 469
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 506 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr
- 507 | non_empty_array_pair_list ',' expr .
- 510 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 585
-
- $défaut réduction par utilisation de la règle 507 (non_empty_array_pair_list)
-
-
-état 470
+state 391
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- $défaut réduction par utilisation de la règle 381 (class_name)
-
-
-état 471
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ 476 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 469 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- $défaut réduction par utilisation de la règle 469 (static_member)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 395 (class_name)
+ '(' reduce using rule 379 (@59)
+ $default reduce using rule 476 (scalar)
+ @59 go to state 555
-état 472
- 402 ctor_arguments: function_call_parameter_list .
-
- $défaut réduction par utilisation de la règle 402 (ctor_arguments)
-
-
-état 473
-
- 261 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments .
-
- $défaut réduction par utilisation de la règle 261 (new_expr)
-
-
-état 474
-
- 470 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
-
- $défaut réduction par utilisation de la règle 470 (static_member)
+state 392
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 . top_statement_list '}'
-état 475
+ $default reduce using rule 4 (top_statement_list)
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 . object_property $@67 dynamic_class_name_variable_properties
+ top_statement_list go to state 556
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
- variable_without_objects aller à l'état 577
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- object_property aller à l'état 586
- object_dim_list aller à l'état 579
- variable_name aller à l'état 580
- simple_indirect_reference aller à l'état 412
+state 393
+ 11 top_statement: "namespace (T_NAMESPACE)" namespace_name ';' .
-état 476
+ $default reduce using rule 11 (top_statement)
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 . inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+state 394
- inner_statement_list aller à l'état 587
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . $@2 top_statement_list '}'
+ $default reduce using rule 12 ($@2)
-état 477
+ $@2 go to state 557
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement . $@6 elseif_list else_single
- $défaut réduction par utilisation de la règle 37 ($@6)
+state 395
- $@6 aller à l'état 588
+ 382 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 . function_call_parameter_list
+ '(' shift, and go to state 405
-état 478
+ function_call_parameter_list go to state 558
- 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 353 (combined_scalar_offset)
+state 396
+
+ 334 expr_without_variable: '(' new_expr ')' . @51 instance_call
+
+ $default reduce using rule 333 (@51)
+
+ @51 go to state 559
+
+
+state 397
+
+ 493 parenthesis_expr: '(' yield_expr ')' .
+
+ $default reduce using rule 493 (parenthesis_expr)
+
+
+state 398
+
+ 492 parenthesis_expr: '(' expr ')' .
+
+ $default reduce using rule 492 (parenthesis_expr)
+
+
+state 399
+
+ 49 unticked_statement: '{' inner_statement_list '}' .
+
+ $default reduce using rule 49 (unticked_statement)
+
+
+state 400
+
+ 41 inner_statement_list: inner_statement_list $@4 . inner_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "final (T_FINAL)" shift, and go to state 55
+ "abstract (T_ABSTRACT)" shift, and go to state 56
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 560
+ "class (T_CLASS)" shift, and go to state 62
+ "trait (T_TRAIT)" shift, and go to state 63
+ "interface (T_INTERFACE)" shift, and go to state 64
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ inner_statement go to state 561
+ statement go to state 562
+ unticked_statement go to state 88
+ function_declaration_statement go to state 563
+ class_declaration_statement go to state 564
+ unticked_function_declaration_statement go to state 91
+ unticked_class_declaration_statement go to state 92
+ class_entry_type go to state 93
+ interface_entry go to state 94
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 100
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 401
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 530 compound_variable: '$' '{' expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 565
+
+
+state 402
+
+ 354 expr_without_variable: '`' backticks_expr '`' .
+
+ $default reduce using rule 354 (expr_without_variable)
+
+
+state 403
+
+ 479 scalar: '"' encaps_list '"' .
+
+ $default reduce using rule 479 (scalar)
+
+
+state 404
+ 6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" .
-état 479
+ $default reduce using rule 6 (namespace_name)
+
+
+state 405
+
+ 187 function_call_parameter_list: '(' . ')'
+ 188 | '(' . non_empty_function_call_parameter_list ')'
+ 189 | '(' . yield_expr ')'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ '&' shift, and go to state 566
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ "... (T_ELLIPSIS)" shift, and go to state 567
+ '(' shift, and go to state 78
+ ')' shift, and go to state 568
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- 242 echo_expr_list: echo_expr_list ',' expr .
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 242 (echo_expr_list)
-
-
-état 480
-
- 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" . $@12 parenthesis_expr ';'
-
- $défaut réduction par utilisation de la règle 46 ($@12)
-
- $@12 aller à l'état 589
-
-
-état 481
-
- 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 . while_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- ':' décalage et aller à l'état 590
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 591
- unticked_statement aller à l'état 88
- while_statement aller à l'état 592
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 482
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
-
- $défaut réduction par utilisation de la règle 48 ($@13)
-
- $@13 aller à l'état 593
+ namespace_name go to state 84
+ non_empty_function_call_parameter_list go to state 569
+ new_expr go to state 95
+ expr_without_variable go to state 570
+ yield_expr go to state 571
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 572
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
-état 483
+state 406
- 247 non_empty_for_expr: non_empty_for_expr ',' . $@41 expr
+ 378 function_call: namespace_name @58 function_call_parameter_list .
- $défaut réduction par utilisation de la règle 246 ($@41)
+ $default reduce using rule 378 (function_call)
- $@41 aller à l'état 594
+state 407
+
+ 38 constant_declaration: constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
+
+ '=' shift, and go to state 573
+
+
+state 408
+
+ 132 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
+
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 577
+
+
+state 409
+
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . $@32 implements_list '{' class_statement_list '}'
+
+ $default reduce using rule 123 ($@32)
+
+ $@32 go to state 578
+
+
+state 410
+
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 . interface_extends_list '{' class_statement_list '}'
+
+ "extends (T_EXTENDS)" shift, and go to state 579
+
+ $default reduce using rule 134 (interface_extends_list)
+
+ interface_extends_list go to state 580
+
+
+state 411
+
+ 366 combined_scalar_offset: combined_scalar_offset '[' dim_offset . ']'
+
+ ']' shift, and go to state 581
+
+
+state 412
+
+ 365 combined_scalar_offset: combined_scalar '[' dim_offset . ']'
+
+ ']' shift, and go to state 582
+
+
+state 413
+
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . $@31 '(' parameter_list ')' '{' inner_statement_list '}'
+
+ $default reduce using rule 121 ($@31)
+
+ $@31 go to state 583
-état 484
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+state 414
- $défaut réduction par utilisation de la règle 71 ($@19)
+ 358 expr_without_variable: function is_reference @56 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- $@19 aller à l'état 595
+ '(' shift, and go to state 584
-état 485
+state 415
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 519 array_function_dereference: function_call $@72 '[' . dim_offset ']'
- $défaut réduction par utilisation de la règle 68 ($@17)
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 585
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 416
+
+ 539 variable_name: "identifier (T_STRING)" .
+ 586 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+
+ '(' reduce using rule 539 (variable_name)
+ $default reduce using rule 586 (class_constant)
+
+
+state 417
+
+ 589 class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)" .
+
+ $default reduce using rule 589 (class_name_scalar)
+
+
+state 418
+
+ 540 variable_name: '{' . expr '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 586
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 419
+
+ 386 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@62 function_call_parameter_list
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
+
+ '(' reduce using rule 385 ($@62)
+ $default reduce using rule 514 (static_member)
+
+ $@62 go to state 587
+
+
+state 420
+
+ 512 variable_without_objects: reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
+
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
+
+ $default reduce using rule 512 (variable_without_objects)
+
+
+state 421
+
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . @61 function_call_parameter_list
+
+ $default reduce using rule 383 (@61)
+
+ @61 go to state 588
+
+
+state 422
+
+ 513 variable_without_objects: simple_indirect_reference . reference_variable
+ 542 simple_indirect_reference: simple_indirect_reference . '$'
+
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 301
+
+ reference_variable go to state 589
+ compound_variable go to state 117
+
+
+state 423
+
+ 303 expr_without_variable: expr "or (T_LOGICAL_OR)" $@49 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 590
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 424
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 306 | expr "xor (T_LOGICAL_XOR)" expr .
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 306 (expr_without_variable)
+
+
+state 425
+
+ 305 expr_without_variable: expr "and (T_LOGICAL_AND)" $@50 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 591
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 426
+
+ 339 expr_without_variable: expr '?' ':' . $@54 expr
+
+ $default reduce using rule 338 ($@54)
+
+ $@54 go to state 592
+
+
+state 427
+
+ 337 expr_without_variable: expr '?' $@52 . expr ':' $@53 expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 593
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 428
+
+ 299 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@47 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 594
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 429
+
+ 301 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@48 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 595
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 430
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 307 | expr '|' expr .
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 307 (expr_without_variable)
+
+
+state 431
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 309 | expr '^' expr .
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 309 (expr_without_variable)
+
+
+state 432
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 308 | expr '&' expr .
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 308 (expr_without_variable)
+
+
+state 433
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 323 | expr "!== (T_IS_NOT_IDENTICAL)" expr .
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 323 (expr_without_variable)
+
+
+state 434
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 322 | expr "=== (T_IS_IDENTICAL)" expr .
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 322 (expr_without_variable)
+
+
+state 435
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 325 | expr "!= (T_IS_NOT_EQUAL)" expr .
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 325 (expr_without_variable)
+
+
+state 436
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 324 | expr "== (T_IS_EQUAL)" expr .
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 324 (expr_without_variable)
+
+
+state 437
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 326 | expr '<' expr .
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 326 (expr_without_variable)
+
+
+state 438
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 328 | expr '>' expr .
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 328 (expr_without_variable)
+
+
+state 439
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 329 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr .
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 329 (expr_without_variable)
+
+
+state 440
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 327 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr .
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 327 (expr_without_variable)
+
+
+state 441
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 317 | expr ">> (T_SR)" expr .
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 317 (expr_without_variable)
+
+
+state 442
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 316 | expr "<< (T_SL)" expr .
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 316 (expr_without_variable)
+
+
+state 443
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 311 | expr '+' expr .
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 311 (expr_without_variable)
+
+
+state 444
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 312 | expr '-' expr .
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 312 (expr_without_variable)
+
+
+state 445
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 310 | expr '.' expr .
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 310 (expr_without_variable)
+
+
+state 446
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 313 | expr '*' expr .
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 313 (expr_without_variable)
+
+
+state 447
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 314 | expr '/' expr .
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 314 (expr_without_variable)
+
+
+state 448
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 315 | expr '%' expr .
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 315 (expr_without_variable)
+
+
+state 449
+
+ 330 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference .
+
+ $default reduce using rule 330 (expr_without_variable)
+
+
+state 450
+
+ 279 expr_without_variable: variable '=' '&' . variable
+ 281 | variable '=' '&' . "new (T_NEW)" class_name_reference $@46 ctor_arguments
+
+ "new (T_NEW)" shift, and go to state 596
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 597
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 451
+
+ 278 expr_without_variable: variable '=' expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 278 (expr_without_variable)
+
+
+state 452
+
+ 293 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 293 (expr_without_variable)
+
+
+state 453
+
+ 292 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 292 (expr_without_variable)
+
+
+state 454
+
+ 291 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 291 (expr_without_variable)
+
+
+state 455
+
+ 290 expr_without_variable: variable "|= (T_OR_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 290 (expr_without_variable)
+
+
+state 456
+
+ 289 expr_without_variable: variable "&= (T_AND_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 289 (expr_without_variable)
+
+
+state 457
+
+ 288 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 288 (expr_without_variable)
+
+
+state 458
+
+ 287 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 287 (expr_without_variable)
+
+
+state 459
+
+ 286 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 286 (expr_without_variable)
+
+
+state 460
+
+ 285 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 285 (expr_without_variable)
+
+
+state 461
+
+ 284 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 284 (expr_without_variable)
+
+
+state 462
+
+ 283 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 283 (expr_without_variable)
+
+
+state 463
+
+ 392 function_call: variable_without_objects $@65 function_call_parameter_list .
+
+ $default reduce using rule 392 (function_call)
+
+
+state 464
+
+ 539 variable_name: "identifier (T_STRING)" .
+ 587 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+
+ '(' reduce using rule 539 (variable_name)
+ $default reduce using rule 587 (class_constant)
+
+
+state 465
+
+ 390 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@64 function_call_parameter_list
+ 515 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
+
+ '(' reduce using rule 389 ($@64)
+ $default reduce using rule 515 (static_member)
+
+ $@64 go to state 598
+
+
+state 466
+
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . $@63 function_call_parameter_list
+
+ $default reduce using rule 387 ($@63)
+
+ $@63 go to state 599
+
+
+state 467
+
+ 517 array_function_dereference: array_function_dereference '[' dim_offset . ']'
+
+ ']' shift, and go to state 600
+
+
+state 468
+
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 . object_property $@69 method_or_not variable_properties
+
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 601
+ reference_variable go to state 420
+ compound_variable go to state 117
+ object_property go to state 602
+ object_dim_list go to state 603
+ variable_name go to state 604
+ simple_indirect_reference go to state 422
+
+
+state 469
+
+ 526 reference_variable: reference_variable '[' dim_offset . ']'
+
+ ']' shift, and go to state 605
+
+
+state 470
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 527 reference_variable: reference_variable '{' expr . '}'
- $@17 aller à l'état 596
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 606
+
+
+state 471
+
+ 578 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' .
+
+ $default reduce using rule 578 (internal_functions_in_yacc)
+
+
+state 472
+
+ 363 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" expr_without_variable .
+ 491 expr: expr_without_variable .
+
+ ')' reduce using rule 363 (yield_expr)
+ ';' reduce using rule 363 (yield_expr)
+ $default reduce using rule 491 (expr)
+
+
+state 473
+
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 364 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" variable .
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ ')' reduce using rule 364 (yield_expr)
+ ';' reduce using rule 364 (yield_expr)
+ $default reduce using rule 494 (r_variable)
+
+
+state 474
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . @59 function_call_parameter_list
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 395 (class_name)
+ $default reduce using rule 379 (@59)
+
+ @59 go to state 555
+
+
+state 475
+
+ 539 variable_name: "identifier (T_STRING)" .
+
+ $default reduce using rule 539 (variable_name)
+
+
+state 476
+
+ 557 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 607
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 477
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 553 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 553 (non_empty_array_pair_list)
+
+
+state 478
+
+ 556 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 608
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 479
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 551 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr
+ 552 | non_empty_array_pair_list ',' expr .
+ 555 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 609
+
+ $default reduce using rule 552 (non_empty_array_pair_list)
+
+
+state 480
-état 486
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 136 declare_list: "identifier (T_STRING)" . '=' static_scalar
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- '=' décalage et aller à l'état 597
+ $default reduce using rule 395 (class_name)
-état 487
+state 481
- 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list . ')' declare_statement
- 137 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar
+ 514 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- ',' décalage et aller à l'état 598
- ')' décalage et aller à l'état 599
+ $default reduce using rule 514 (static_member)
-état 488
+state 482
- 140 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';'
- 141 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';'
+ 416 ctor_arguments: function_call_parameter_list .
- ';' décalage et aller à l'état 600
+ $default reduce using rule 416 (ctor_arguments)
- $défaut réduction par utilisation de la règle 142 (case_list)
- case_list aller à l'état 601
+state 483
+ 275 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments .
-état 489
+ $default reduce using rule 275 (new_expr)
- 138 switch_case_list: '{' . case_list '}'
- 139 | '{' . ';' case_list '}'
- ';' décalage et aller à l'état 602
+state 484
- $défaut réduction par utilisation de la règle 142 (case_list)
+ 515 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- case_list aller à l'état 603
+ $default reduce using rule 515 (static_member)
-état 490
+state 485
- 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 switch_case_list .
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 . object_property $@67 dynamic_class_name_variable_properties
- $défaut réduction par utilisation de la règle 53 (unticked_statement)
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+ variable_without_objects go to state 601
+ reference_variable go to state 420
+ compound_variable go to state 117
+ object_property go to state 610
+ object_dim_list go to state 603
+ variable_name go to state 604
+ simple_indirect_reference go to state 422
-état 491
- 420 static_scalar: '+' . static_scalar
+state 486
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 . inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 604
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $default reduce using rule 42 (inner_statement_list)
+ inner_statement_list go to state 611
-état 492
- 421 static_scalar: '-' . static_scalar
+state 487
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement . $@6 elseif_list else_single
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 605
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $default reduce using rule 51 ($@6)
+ $@6 go to state 612
-état 493
- 423 static_scalar: '[' . static_array_pair_list ']'
+state 488
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 367 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 437 (static_array_pair_list)
+ $default reduce using rule 367 (combined_scalar_offset)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 606
- static_class_constant aller à l'état 504
- static_array_pair_list aller à l'état 607
- non_empty_static_array_pair_list aller à l'état 608
- static_class_name_scalar aller à l'état 505
+state 489
+
+ 256 echo_expr_list: echo_expr_list ',' expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 256 (echo_expr_list)
+
+
+state 490
+
+ 61 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" . $@12 parenthesis_expr ';'
+
+ $default reduce using rule 60 ($@12)
+
+ $@12 go to state 613
+
+
+state 491
+
+ 58 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 . while_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ ':' shift, and go to state 614
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 615
+ unticked_statement go to state 88
+ while_statement go to state 616
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 492
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' . $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
+
+ $default reduce using rule 62 ($@13)
+
+ $@13 go to state 617
-état 494
- 405 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
+state 493
- $défaut réduction par utilisation de la règle 405 (common_scalar)
+ 261 non_empty_for_expr: non_empty_for_expr ',' . $@41 expr
+ $default reduce using rule 260 ($@41)
-état 495
+ $@41 go to state 618
- 422 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')'
- '(' décalage et aller à l'état 609
+state 494
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
-état 496
+ $default reduce using rule 85 ($@19)
- 425 static_scalar: "__CLASS__ (T_CLASS_C)" .
+ $@19 go to state 619
- $défaut réduction par utilisation de la règle 425 (static_scalar)
+state 495
-état 497
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 413 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 414 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
+ $default reduce using rule 82 ($@17)
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" décalage et aller à l'état 610
- "heredoc end (T_END_HEREDOC)" décalage et aller à l'état 220
+ $@17 go to state 620
-état 498
+state 496
- 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 418 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 152 declare_list: "identifier (T_STRING)" . '=' static_scalar
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 611
+ '=' shift, and go to state 621
-état 499
+state 497
- 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- 419 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list . ')' declare_statement
+ 153 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar
- "identifier (T_STRING)" décalage et aller à l'état 123
+ ',' shift, and go to state 622
+ ')' shift, and go to state 623
- namespace_name aller à l'état 612
+state 498
-état 500
+ 156 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';'
+ 157 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';'
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 380 class_name: namespace_name .
- 417 static_scalar: namespace_name .
+ ';' shift, and go to state 624
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ $default reduce using rule 158 (case_list)
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 380 (class_name)
- $défaut réduction par utilisation de la règle 417 (static_scalar)
+ case_list go to state 625
-état 501
+state 499
- 426 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 543 static_class_name_scalar: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
+ 154 switch_case_list: '{' . case_list '}'
+ 155 | '{' . ';' case_list '}'
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 613
+ ';' shift, and go to state 626
+ $default reduce using rule 158 (case_list)
-état 502
+ case_list go to state 627
- 415 static_scalar: common_scalar .
- $défaut réduction par utilisation de la règle 415 (static_scalar)
+state 500
+ 67 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 switch_case_list .
-état 503
+ $default reduce using rule 67 (unticked_statement)
- 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
- $défaut réduction par utilisation de la règle 25 (constant_declaration)
+state 501
+ 469 static_operation: '+' . static_scalar_value
-état 504
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- 424 static_scalar: static_class_constant .
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 628
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- $défaut réduction par utilisation de la règle 424 (static_scalar)
+state 502
-état 505
+ 470 static_operation: '-' . static_scalar_value
- 416 static_scalar: static_class_name_scalar .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 629
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 503
+
+ 446 static_operation: '!' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 630
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 504
+
+ 447 static_operation: '~' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 631
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 505
+
+ 432 static_scalar: '[' . static_array_pair_list ']'
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ $default reduce using rule 482 (static_array_pair_list)
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 632
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_array_pair_list go to state 633
+ non_empty_static_array_pair_list go to state 634
+ static_class_name_scalar go to state 520
+
+
+state 506
+
+ 419 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
- $défaut réduction par utilisation de la règle 416 (static_scalar)
+ $default reduce using rule 419 (common_scalar)
-état 506
+state 507
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list . '}' catch_statement $@23 finally_statement
+ 431 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')'
- '}' décalage et aller à l'état 614
+ '(' shift, and go to state 635
- $défaut réduction par utilisation de la règle 26 ($@4)
- $@4 aller à l'état 390
+state 508
+ 439 static_scalar_value: "__CLASS__ (T_CLASS_C)" .
-état 507
+ $default reduce using rule 439 (static_scalar_value)
- 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 615
+state 509
+ 427 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
+ 428 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
-état 508
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 636
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 222
- 21 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 21 (use_declaration)
+state 510
+ 395 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 436 static_scalar_value: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-état 509
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 637
- 18 use_declarations: use_declarations ',' use_declaration .
- $défaut réduction par utilisation de la règle 18 (use_declarations)
+state 511
+ 396 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 437 static_scalar_value: "\\ (T_NS_SEPARATOR)" . namespace_name
-état 510
+ "identifier (T_STRING)" shift, and go to state 123
- 188 global_var: '$' '{' expr . '}'
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
+ namespace_name go to state 638
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 616
+state 512
-état 511
+ 471 static_operation: '(' . static_scalar_value ')'
- 184 global_var_list: global_var_list ',' global_var .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 184 (global_var_list)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 639
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 512
+state 513
- 192 static_var_list: "variable (T_VARIABLE)" '=' static_scalar .
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 394 class_name: namespace_name .
+ 435 static_scalar_value: namespace_name .
- $défaut réduction par utilisation de la règle 192 (static_var_list)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 394 (class_name)
+ $default reduce using rule 435 (static_scalar_value)
-état 513
- 189 static_var_list: static_var_list ',' "variable (T_VARIABLE)" .
- 190 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar
+state 514
- '=' décalage et aller à l'état 617
+ 429 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 588 static_class_name_scalar: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)"
- $défaut réduction par utilisation de la règle 189 (static_var_list)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 640
-état 514
+state 515
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 433 static_scalar_value: common_scalar .
- '(' décalage et aller à l'état 618
+ $default reduce using rule 433 (static_scalar_value)
-état 515
+state 516
- 99 unset_variables: unset_variables ',' . unset_variable
+ 438 static_scalar_value: static_class_constant .
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ $default reduce using rule 438 (static_scalar_value)
- namespace_name aller à l'état 151
- unset_variable aller à l'état 619
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 361
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+state 517
-état 516
+ 39 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
- 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';'
+ $default reduce using rule 39 (constant_declaration)
- ';' décalage et aller à l'état 620
+state 518
-état 517
+ 430 static_scalar: static_scalar_value .
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
- 538 isset_variables: isset_variables ',' . $@76 isset_variable
+ "or (T_LOGICAL_OR)" shift, and go to state 641
+ "xor (T_LOGICAL_XOR)" shift, and go to state 642
+ "and (T_LOGICAL_AND)" shift, and go to state 643
+ '?' shift, and go to state 644
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
- $défaut réduction par utilisation de la règle 537 ($@76)
+ $default reduce using rule 430 (static_scalar)
- $@76 aller à l'état 621
+state 519
-état 518
+ 440 static_scalar_value: static_operation .
- 528 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' .
+ $default reduce using rule 440 (static_scalar_value)
- $défaut réduction par utilisation de la règle 528 (internal_functions_in_yacc)
+state 520
-état 519
+ 434 static_scalar_value: static_class_name_scalar .
- 530 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable ')' .
+ $default reduce using rule 434 (static_scalar_value)
- $défaut réduction par utilisation de la règle 530 (internal_functions_in_yacc)
+state 521
-état 520
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list . '}' catch_statement $@23 finally_statement
- 529 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' .
+ '}' shift, and go to state 666
- $défaut réduction par utilisation de la règle 529 (internal_functions_in_yacc)
+ $default reduce using rule 40 ($@4)
+ $@4 go to state 400
-état 521
- 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
+state 522
- $défaut réduction par utilisation de la règle 10 (top_statement)
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 30 use_function_declaration: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 31 | "\\ (T_NS_SEPARATOR)" namespace_name . "as (T_AS)" "identifier (T_STRING)"
+ "as (T_AS)" shift, and go to state 667
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
-état 522
+ $default reduce using rule 30 (use_function_declaration)
- 502 assignment_list_element: "list (T_LIST)" . '(' $@74 assignment_list ')'
- '(' décalage et aller à l'état 622
+state 523
+ 29 use_function_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
-état 523
+ "identifier (T_STRING)" shift, and go to state 668
- 500 assignment_list_element: variable .
- $défaut réduction par utilisation de la règle 500 (assignment_list_element)
+state 524
+ 26 use_function_declarations: use_function_declarations ',' . use_function_declaration
-état 524
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 348
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list . ')' '=' expr
- 498 assignment_list: assignment_list . ',' assignment_list_element
+ namespace_name go to state 349
+ use_function_declaration go to state 669
- ',' décalage et aller à l'état 623
- ')' décalage et aller à l'état 624
+state 525
-état 525
+ 17 top_statement: "use (T_USE)" "function (T_FUNCTION)" use_function_declarations ';' .
- 499 assignment_list: assignment_list_element .
+ $default reduce using rule 17 (top_statement)
- $défaut réduction par utilisation de la règle 499 (assignment_list)
+state 526
-état 526
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 36 use_const_declaration: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 37 | "\\ (T_NS_SEPARATOR)" namespace_name . "as (T_AS)" "identifier (T_STRING)"
- 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')' .
+ "as (T_AS)" shift, and go to state 670
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- $défaut réduction par utilisation de la règle 354 (combined_scalar)
+ $default reduce using rule 36 (use_const_declaration)
-état 527
+state 527
- 520 encaps_var: "variable (T_VARIABLE)" '[' $@75 . encaps_var_offset ']'
+ 35 use_const_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 625
- "variable (T_VARIABLE)" décalage et aller à l'état 626
- "number (T_NUM_STRING)" décalage et aller à l'état 627
+ "identifier (T_STRING)" shift, and go to state 671
- encaps_var_offset aller à l'état 628
+state 528
-état 528
+ 32 use_const_declarations: use_const_declarations ',' . use_const_declaration
- 521 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" .
+ "identifier (T_STRING)" shift, and go to state 123
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 352
- $défaut réduction par utilisation de la règle 521 (encaps_var)
+ namespace_name go to state 353
+ use_const_declaration go to state 672
-état 529
+state 529
- 523 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}'
+ 18 top_statement: "use (T_USE)" "const (T_CONST)" use_const_declarations ';' .
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ $default reduce using rule 18 (top_statement)
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 629
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 530
-
- 522 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' .
-
- $défaut réduction par utilisation de la règle 522 (encaps_var)
-
-
-état 531
-
- 524 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' .
-
- $défaut réduction par utilisation de la règle 524 (encaps_var)
-
-
-état 532
-
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 . function_call_parameter_list
-
- '(' décalage et aller à l'état 395
-
- function_call_parameter_list aller à l'état 630
-
-
-état 533
- 3 top_statement_list: top_statement_list . $@1 top_statement
- 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list . '}'
+state 530
- '}' décalage et aller à l'état 631
+ 25 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
- $défaut réduction par utilisation de la règle 2 ($@1)
+ "identifier (T_STRING)" shift, and go to state 673
- $@1 aller à l'état 4
+state 531
-état 534
+ 23 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 . top_statement_list '}'
+ $default reduce using rule 23 (use_declaration)
- $défaut réduction par utilisation de la règle 4 (top_statement_list)
- top_statement_list aller à l'état 632
+state 532
+ 20 use_declarations: use_declarations ',' use_declaration .
-état 535
+ $default reduce using rule 20 (use_declarations)
- 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list .
- $défaut réduction par utilisation de la règle 368 (function_call)
+state 533
+ 202 global_var: '$' '{' expr . '}'
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
-état 536
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 674
- 320 expr_without_variable: '(' new_expr ')' @51 . instance_call
- '[' réduction par utilisation de la règle 258 ($@43)
- "-> (T_OBJECT_OPERATOR)" réduction par utilisation de la règle 258 ($@43)
- $défaut réduction par utilisation de la règle 257 (instance_call)
+state 534
- instance_call aller à l'état 633
- $@43 aller à l'état 634
+ 198 global_var_list: global_var_list ',' global_var .
+ $default reduce using rule 198 (global_var_list)
-état 537
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
+state 535
- '(' décalage et aller à l'état 635
+ 206 static_var_list: "variable (T_VARIABLE)" '=' static_scalar .
+ $default reduce using rule 206 (static_var_list)
-état 538
- 27 inner_statement_list: inner_statement_list $@4 inner_statement .
+state 536
- $défaut réduction par utilisation de la règle 27 (inner_statement_list)
+ 203 static_var_list: static_var_list ',' "variable (T_VARIABLE)" .
+ 204 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar
+ '=' shift, and go to state 675
-état 539
+ $default reduce using rule 203 (static_var_list)
- 29 inner_statement: statement .
- $défaut réduction par utilisation de la règle 29 (inner_statement)
+state 537
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
-état 540
+ '(' shift, and go to state 676
- 30 inner_statement: function_declaration_statement .
- $défaut réduction par utilisation de la règle 30 (inner_statement)
+state 538
+ 113 unset_variables: unset_variables ',' . unset_variable
-état 541
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
- 31 inner_statement: class_declaration_statement .
+ namespace_name go to state 151
+ unset_variable go to state 677
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 371
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
- $défaut réduction par utilisation de la règle 31 (inner_statement)
+state 539
-état 542
+ 81 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';'
- 485 compound_variable: '$' '{' expr '}' .
+ ';' shift, and go to state 678
- $défaut réduction par utilisation de la règle 485 (compound_variable)
+state 540
-état 543
+ 583 isset_variables: isset_variables ',' . $@76 isset_variable
- 180 non_empty_function_call_parameter_list: '&' . w_variable
+ $default reduce using rule 582 ($@76)
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ $@76 go to state 679
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 636
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+state 541
-état 544
+ 573 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' .
- 175 function_call_parameter_list: '(' ')' .
+ $default reduce using rule 573 (internal_functions_in_yacc)
- $défaut réduction par utilisation de la règle 175 (function_call_parameter_list)
+state 542
-état 545
+ 575 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable ')' .
- 176 function_call_parameter_list: '(' non_empty_function_call_parameter_list . ')'
- 181 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
- 182 | non_empty_function_call_parameter_list . ',' variable
- 183 | non_empty_function_call_parameter_list . ',' '&' w_variable
+ $default reduce using rule 575 (internal_functions_in_yacc)
- ',' décalage et aller à l'état 637
- ')' décalage et aller à l'état 638
+state 543
-état 546
+ 574 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' .
- 178 non_empty_function_call_parameter_list: expr_without_variable .
- 446 expr: expr_without_variable .
+ $default reduce using rule 574 (internal_functions_in_yacc)
- ',' réduction par utilisation de la règle 178 (non_empty_function_call_parameter_list)
- ')' réduction par utilisation de la règle 178 (non_empty_function_call_parameter_list)
- $défaut réduction par utilisation de la règle 446 (expr)
+state 544
-état 547
+ 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
- 177 function_call_parameter_list: '(' yield_expr . ')'
+ $default reduce using rule 10 (top_statement)
- ')' décalage et aller à l'état 639
+state 545
-état 548
+ 547 assignment_list_element: "list (T_LIST)" . '(' $@74 assignment_list ')'
- 179 non_empty_function_call_parameter_list: variable .
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
+ '(' shift, and go to state 680
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
- ',' réduction par utilisation de la règle 179 (non_empty_function_call_parameter_list)
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- ')' réduction par utilisation de la règle 179 (non_empty_function_call_parameter_list)
- $défaut réduction par utilisation de la règle 449 (r_variable)
+state 546
+ 545 assignment_list_element: variable .
-état 549
+ $default reduce using rule 545 (assignment_list_element)
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+state 547
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 640
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list . ')' '=' expr
+ 543 assignment_list: assignment_list . ',' assignment_list_element
+ ',' shift, and go to state 681
+ ')' shift, and go to state 682
-état 550
- 384 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+state 548
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 641
+ 544 assignment_list: assignment_list_element .
+ $default reduce using rule 544 (assignment_list)
-état 551
- 385 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+state 549
- "identifier (T_STRING)" décalage et aller à l'état 123
+ 368 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')' .
- namespace_name aller à l'état 642
+ $default reduce using rule 368 (combined_scalar)
-état 552
+state 550
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 383 fully_qualified_class_name: namespace_name .
+ 565 encaps_var: "variable (T_VARIABLE)" '[' $@75 . encaps_var_offset ']'
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ "identifier (T_STRING)" shift, and go to state 683
+ "variable (T_VARIABLE)" shift, and go to state 684
+ "number (T_NUM_STRING)" shift, and go to state 685
- $défaut réduction par utilisation de la règle 383 (fully_qualified_class_name)
+ encaps_var_offset go to state 686
-état 553
+state 551
- 116 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name .
+ 566 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 116 (extends_from)
+ $default reduce using rule 566 (encaps_var)
-état 554
+state 552
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 . implements_list '{' class_statement_list '}'
+ 568 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}'
- "implements (T_IMPLEMENTS)" décalage et aller à l'état 643
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- $défaut réduction par utilisation de la règle 120 (implements_list)
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 687
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 553
+
+ 567 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' .
+
+ $default reduce using rule 567 (encaps_var)
+
+
+state 554
+
+ 569 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' .
+
+ $default reduce using rule 569 (encaps_var)
+
+
+state 555
+
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 . function_call_parameter_list
+
+ '(' shift, and go to state 405
+
+ function_call_parameter_list go to state 688
+
+
+state 556
- implements_list aller à l'état 644
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list . '}'
+ '}' shift, and go to state 689
-état 555
+ $default reduce using rule 2 ($@1)
- 119 interface_extends_list: "extends (T_EXTENDS)" . interface_list
+ $@1 go to state 4
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
- namespace_name aller à l'état 552
- interface_list aller à l'état 645
- fully_qualified_class_name aller à l'état 646
+state 557
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 . top_statement_list '}'
-état 556
+ $default reduce using rule 4 (top_statement_list)
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list . '{' class_statement_list '}'
+ top_statement_list go to state 690
- '{' décalage et aller à l'état 647
+state 558
-état 557
+ 382 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list .
- 352 combined_scalar_offset: combined_scalar_offset '[' dim_offset ']' .
+ $default reduce using rule 382 (function_call)
- $défaut réduction par utilisation de la règle 352 (combined_scalar_offset)
+state 559
-état 558
+ 334 expr_without_variable: '(' new_expr ')' @51 . instance_call
- 351 combined_scalar_offset: combined_scalar '[' dim_offset ']' .
+ '[' reduce using rule 272 ($@43)
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 272 ($@43)
+ $default reduce using rule 271 (instance_call)
- $défaut réduction par utilisation de la règle 351 (combined_scalar_offset)
+ instance_call go to state 691
+ $@43 go to state 692
-état 559
+state 560
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 . '(' parameter_list ')' '{' inner_statement_list '}'
+ 46 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
- '(' décalage et aller à l'état 648
+ '(' shift, and go to state 693
-état 560
+state 561
- 344 expr_without_variable: function is_reference @56 '(' . parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 41 inner_statement_list: inner_statement_list $@4 inner_statement .
- "identifier (T_STRING)" décalage et aller à l'état 123
- "array (T_ARRAY)" décalage et aller à l'état 649
- "callable (T_CALLABLE)" décalage et aller à l'état 650
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ $default reduce using rule 41 (inner_statement_list)
- ')' réduction par utilisation de la règle 162 (parameter_list)
- $défaut réduction par utilisation de la règle 171 (optional_class_type)
- namespace_name aller à l'état 552
- parameter_list aller à l'état 651
- non_empty_parameter_list aller à l'état 652
- optional_class_type aller à l'état 653
- fully_qualified_class_name aller à l'état 654
+state 562
+ 43 inner_statement: statement .
-état 561
+ $default reduce using rule 43 (inner_statement)
- 474 array_function_dereference: function_call $@72 '[' dim_offset . ']'
- ']' décalage et aller à l'état 655
+state 563
+ 44 inner_statement: function_declaration_statement .
-état 562
+ $default reduce using rule 44 (inner_statement)
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 495 variable_name: '{' expr . '}'
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 656
-
-
-état 563
-
- 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 . function_call_parameter_list
-
- '(' décalage et aller à l'état 395
-
- function_call_parameter_list aller à l'état 657
-
-
-état 564
-
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 . function_call_parameter_list
-
- '(' décalage et aller à l'état 395
-
- function_call_parameter_list aller à l'état 658
-
-
-état 565
-
- 468 variable_without_objects: simple_indirect_reference reference_variable .
- 481 reference_variable: reference_variable . '[' dim_offset ']'
- 482 | reference_variable . '{' expr '}'
-
- '[' décalage et aller à l'état 297
- '{' décalage et aller à l'état 298
-
- $défaut réduction par utilisation de la règle 468 (variable_without_objects)
-
-
-état 566
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 289 | expr "or (T_LOGICAL_OR)" $@49 expr .
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 289 (expr_without_variable)
-
-
-état 567
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 291 | expr "and (T_LOGICAL_AND)" $@50 expr .
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 291 (expr_without_variable)
-
-
-état 568
-
- 325 expr_without_variable: expr '?' ':' $@54 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 659
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 569
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 323 | expr '?' $@52 expr . ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- ':' décalage et aller à l'état 660
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
-
-état 570
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 285 | expr "|| (T_BOOLEAN_OR)" $@47 expr .
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 285 (expr_without_variable)
-
-
-état 571
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 287 | expr "&& (T_BOOLEAN_AND)" $@48 expr .
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
-
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
+state 564
- $défaut réduction par utilisation de la règle 287 (expr_without_variable)
+ 45 inner_statement: class_declaration_statement .
+ $default reduce using rule 45 (inner_statement)
-état 572
- 267 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference $@46 ctor_arguments
+state 565
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 162
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 163
- '$' décalage et aller à l'état 81
+ 530 compound_variable: '$' '{' expr '}' .
- namespace_name aller à l'état 164
- class_name aller à l'état 165
- class_name_reference aller à l'état 661
- dynamic_class_name_reference aller à l'état 167
- static_member aller à l'état 111
- variable_class_name aller à l'état 168
- base_variable aller à l'état 169
- reference_variable aller à l'état 170
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 171
+ $default reduce using rule 530 (compound_variable)
-état 573
+state 566
- 265 expr_without_variable: variable '=' '&' variable .
+ 192 non_empty_function_call_parameter_list: '&' . w_variable
- $défaut réduction par utilisation de la règle 265 (expr_without_variable)
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 694
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
-état 574
- 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 . function_call_parameter_list
+state 567
- '(' décalage et aller à l'état 395
+ 193 non_empty_function_call_parameter_list: "... (T_ELLIPSIS)" . expr
- function_call_parameter_list aller à l'état 662
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 695
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 568
+
+ 187 function_call_parameter_list: '(' ')' .
+
+ $default reduce using rule 187 (function_call_parameter_list)
+
+
+state 569
+
+ 188 function_call_parameter_list: '(' non_empty_function_call_parameter_list . ')'
+ 194 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
+ 195 | non_empty_function_call_parameter_list . ',' variable
+ 196 | non_empty_function_call_parameter_list . ',' '&' w_variable
+ 197 | non_empty_function_call_parameter_list . ',' "... (T_ELLIPSIS)" expr
+
+ ',' shift, and go to state 696
+ ')' shift, and go to state 697
+
+
+state 570
+
+ 190 non_empty_function_call_parameter_list: expr_without_variable .
+ 491 expr: expr_without_variable .
+
+ ',' reduce using rule 190 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 190 (non_empty_function_call_parameter_list)
+ $default reduce using rule 491 (expr)
+
+
+state 571
+
+ 189 function_call_parameter_list: '(' yield_expr . ')'
+
+ ')' shift, and go to state 698
+
+
+state 572
+
+ 191 non_empty_function_call_parameter_list: variable .
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+
+ ',' reduce using rule 191 (non_empty_function_call_parameter_list)
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ ')' reduce using rule 191 (non_empty_function_call_parameter_list)
+ $default reduce using rule 494 (r_variable)
+
+
+state 573
+ 38 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
-état 575
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 . function_call_parameter_list
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 699
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- '(' décalage et aller à l'état 395
- function_call_parameter_list aller à l'état 663
+state 574
+ 398 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-état 576
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 700
- 472 array_function_dereference: array_function_dereference '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 472 (array_function_dereference)
+state 575
+ 399 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
-état 577
+ namespace_name go to state 701
+
+
+state 576
- 490 object_property: variable_without_objects . $@73
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 397 fully_qualified_class_name: namespace_name .
- $défaut réduction par utilisation de la règle 489 ($@73)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- $@73 aller à l'état 664
+ $default reduce using rule 397 (fully_qualified_class_name)
-état 578
+state 577
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property . $@69 method_or_not variable_properties
+ 132 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name .
- $défaut réduction par utilisation de la règle 453 ($@69)
+ $default reduce using rule 132 (extends_from)
- $@69 aller à l'état 665
+state 578
-état 579
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 . implements_list '{' class_statement_list '}'
- 488 object_property: object_dim_list .
- 491 object_dim_list: object_dim_list . '[' dim_offset ']'
- 492 | object_dim_list . '{' expr '}'
+ "implements (T_IMPLEMENTS)" shift, and go to state 702
- '[' décalage et aller à l'état 666
- '{' décalage et aller à l'état 667
+ $default reduce using rule 136 (implements_list)
- $défaut réduction par utilisation de la règle 488 (object_property)
+ implements_list go to state 703
-état 580
+state 579
- 493 object_dim_list: variable_name .
+ 135 interface_extends_list: "extends (T_EXTENDS)" . interface_list
- $défaut réduction par utilisation de la règle 493 (object_dim_list)
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
+ namespace_name go to state 576
+ interface_list go to state 704
+ fully_qualified_class_name go to state 705
-état 581
- 481 reference_variable: reference_variable '[' dim_offset ']' .
+state 580
- $défaut réduction par utilisation de la règle 481 (reference_variable)
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list . '{' class_statement_list '}'
+ '{' shift, and go to state 706
-état 582
- 482 reference_variable: reference_variable '{' expr '}' .
+state 581
- $défaut réduction par utilisation de la règle 482 (reference_variable)
+ 366 combined_scalar_offset: combined_scalar_offset '[' dim_offset ']' .
+ $default reduce using rule 366 (combined_scalar_offset)
-état 583
- 512 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+state 582
- $défaut réduction par utilisation de la règle 512 (non_empty_array_pair_list)
+ 365 combined_scalar_offset: combined_scalar '[' dim_offset ']' .
+ $default reduce using rule 365 (combined_scalar_offset)
-état 584
- 511 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
+state 583
- $défaut réduction par utilisation de la règle 511 (non_empty_array_pair_list)
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 . '(' parameter_list ')' '{' inner_statement_list '}'
+ '(' shift, and go to state 707
-état 585
- 506 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr
- 510 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
+state 584
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 668
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ 358 expr_without_variable: function is_reference @56 '(' . parameter_list ')' lexical_vars '{' inner_statement_list '}'
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 669
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 586
-
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property . $@67 dynamic_class_name_variable_properties
-
- $défaut réduction par utilisation de la règle 389 ($@67)
-
- $@67 aller à l'état 670
-
-
-état 587
-
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list . $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- "elseif (T_ELSEIF)" réduction par utilisation de la règle 40 ($@8)
- "else (T_ELSE)" réduction par utilisation de la règle 40 ($@8)
- "endif (T_ENDIF)" réduction par utilisation de la règle 40 ($@8)
- $défaut réduction par utilisation de la règle 26 ($@4)
-
- $@4 aller à l'état 390
- $@8 aller à l'état 671
-
-
-état 588
-
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 . elseif_list else_single
-
- $défaut réduction par utilisation de la règle 151 (elseif_list)
-
- elseif_list aller à l'état 672
-
-
-état 589
-
- 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 . parenthesis_expr ';'
-
- '(' décalage et aller à l'état 175
-
- parenthesis_expr aller à l'état 673
-
-
-état 590
-
- 150 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';'
-
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
-
- inner_statement_list aller à l'état 674
-
-
-état 591
-
- 149 while_statement: statement .
-
- $défaut réduction par utilisation de la règle 149 (while_statement)
-
-
-état 592
-
- 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement .
-
- $défaut réduction par utilisation de la règle 44 (unticked_statement)
-
-
-état 593
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 . for_expr ';' $@14 for_expr ')' $@15 for_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 244 (for_expr)
-
- namespace_name aller à l'état 84
- for_expr aller à l'état 675
- non_empty_for_expr aller à l'état 332
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 333
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 594
-
- 247 non_empty_for_expr: non_empty_for_expr ',' $@41 . expr
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 676
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 595
-
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 . foreach_variable foreach_optional_arg ')' $@20 foreach_statement
-
- '&' décalage et aller à l'état 677
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 678
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- foreach_variable aller à l'état 679
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 680
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 596
-
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 . foreach_variable foreach_optional_arg ')' $@18 foreach_statement
-
- '&' décalage et aller à l'état 677
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 678
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- foreach_variable aller à l'état 681
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 680
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 597
-
- 136 declare_list: "identifier (T_STRING)" '=' . static_scalar
-
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
-
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 682
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
-
-
-état 598
-
- 137 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar
-
- "identifier (T_STRING)" décalage et aller à l'état 683
-
-
-état 599
-
- 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' . declare_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- ':' décalage et aller à l'état 684
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 685
- unticked_statement aller à l'état 88
- declare_statement aller à l'état 686
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 600
-
- 141 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';'
-
- $défaut réduction par utilisation de la règle 142 (case_list)
-
- case_list aller à l'état 687
-
-
-état 601
-
- 140 switch_case_list: ':' case_list . "endswitch (T_ENDSWITCH)" ';'
- 144 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 146 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
-
- "endswitch (T_ENDSWITCH)" décalage et aller à l'état 688
- "case (T_CASE)" décalage et aller à l'état 689
- "default (T_DEFAULT)" décalage et aller à l'état 690
-
-
-état 602
+ "identifier (T_STRING)" shift, and go to state 123
+ "array (T_ARRAY)" shift, and go to state 708
+ "callable (T_CALLABLE)" shift, and go to state 709
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- 139 switch_case_list: '{' ';' . case_list '}'
+ ')' reduce using rule 178 (parameter_list)
+ $default reduce using rule 183 (optional_class_type)
- $défaut réduction par utilisation de la règle 142 (case_list)
+ namespace_name go to state 576
+ parameter_list go to state 710
+ non_empty_parameter_list go to state 711
+ parameter go to state 712
+ optional_class_type go to state 713
+ fully_qualified_class_name go to state 714
- case_list aller à l'état 691
+state 585
-état 603
+ 519 array_function_dereference: function_call $@72 '[' dim_offset . ']'
- 138 switch_case_list: '{' case_list . '}'
- 144 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 146 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+ ']' shift, and go to state 715
- "case (T_CASE)" décalage et aller à l'état 689
- "default (T_DEFAULT)" décalage et aller à l'état 690
- '}' décalage et aller à l'état 692
+state 586
-état 604
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 540 variable_name: '{' expr . '}'
- 420 static_scalar: '+' static_scalar .
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 716
+
+
+state 587
+
+ 386 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 . function_call_parameter_list
+
+ '(' shift, and go to state 405
+
+ function_call_parameter_list go to state 717
+
+
+state 588
+
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 . function_call_parameter_list
+
+ '(' shift, and go to state 405
+
+ function_call_parameter_list go to state 718
+
+
+state 589
+
+ 513 variable_without_objects: simple_indirect_reference reference_variable .
+ 526 reference_variable: reference_variable . '[' dim_offset ']'
+ 527 | reference_variable . '{' expr '}'
+
+ '[' shift, and go to state 299
+ '{' shift, and go to state 300
+
+ $default reduce using rule 513 (variable_without_objects)
+
+
+state 590
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 303 | expr "or (T_LOGICAL_OR)" $@49 expr .
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 303 (expr_without_variable)
+
+
+state 591
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 305 | expr "and (T_LOGICAL_AND)" $@50 expr .
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 305 (expr_without_variable)
+
+
+state 592
+
+ 339 expr_without_variable: expr '?' ':' $@54 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 719
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 593
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 337 | expr '?' $@52 expr . ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ ':' shift, and go to state 720
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+
+state 594
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 299 | expr "|| (T_BOOLEAN_OR)" $@47 expr .
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 299 (expr_without_variable)
+
+
+state 595
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 301 | expr "&& (T_BOOLEAN_AND)" $@48 expr .
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
- $défaut réduction par utilisation de la règle 420 (static_scalar)
+ $default reduce using rule 301 (expr_without_variable)
-état 605
+state 596
- 421 static_scalar: '-' static_scalar .
+ 281 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference $@46 ctor_arguments
- $défaut réduction par utilisation de la règle 421 (static_scalar)
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 162
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 163
+ '$' shift, and go to state 81
+ namespace_name go to state 164
+ class_name go to state 165
+ class_name_reference go to state 721
+ dynamic_class_name_reference go to state 167
+ static_member go to state 111
+ variable_class_name go to state 168
+ base_variable go to state 169
+ reference_variable go to state 170
+ compound_variable go to state 117
+ simple_indirect_reference go to state 171
-état 606
- 443 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
- 444 | static_scalar .
+state 597
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 693
+ 279 expr_without_variable: variable '=' '&' variable .
- $défaut réduction par utilisation de la règle 444 (non_empty_static_array_pair_list)
+ $default reduce using rule 279 (expr_without_variable)
-état 607
+state 598
- 423 static_scalar: '[' static_array_pair_list . ']'
+ 390 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 . function_call_parameter_list
- ']' décalage et aller à l'état 694
+ '(' shift, and go to state 405
+ function_call_parameter_list go to state 722
-état 608
- 438 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 442 | non_empty_static_array_pair_list . ',' static_scalar
+state 599
- ',' décalage et aller à l'état 695
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 . function_call_parameter_list
- $défaut réduction par utilisation de la règle 439 (possible_comma)
+ '(' shift, and go to state 405
- possible_comma aller à l'état 696
+ function_call_parameter_list go to state 723
-état 609
+state 600
- 422 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')'
+ 517 array_function_dereference: array_function_dereference '[' dim_offset ']' .
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $default reduce using rule 517 (array_function_dereference)
- $défaut réduction par utilisation de la règle 437 (static_array_pair_list)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 606
- static_class_constant aller à l'état 504
- static_array_pair_list aller à l'état 697
- non_empty_static_array_pair_list aller à l'état 608
- static_class_name_scalar aller à l'état 505
+state 601
+ 535 object_property: variable_without_objects . $@73
-état 610
+ $default reduce using rule 534 ($@73)
- 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
+ $@73 go to state 724
- "heredoc end (T_END_HEREDOC)" décalage et aller à l'état 373
+state 602
-état 611
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property . $@69 method_or_not variable_properties
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- 418 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ $default reduce using rule 498 ($@69)
- "identifier (T_STRING)" décalage et aller à l'état 123
+ $@69 go to state 725
- namespace_name aller à l'état 698
+state 603
-état 612
+ 533 object_property: object_dim_list .
+ 536 object_dim_list: object_dim_list . '[' dim_offset ']'
+ 537 | object_dim_list . '{' expr '}'
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- 419 static_scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
+ '[' shift, and go to state 726
+ '{' shift, and go to state 727
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
+ $default reduce using rule 533 (object_property)
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 382 (class_name)
- $défaut réduction par utilisation de la règle 419 (static_scalar)
+state 604
-état 613
+ 538 object_dim_list: variable_name .
- 426 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- 543 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "class (T_CLASS)"
+ $default reduce using rule 538 (object_dim_list)
- "identifier (T_STRING)" décalage et aller à l'état 699
- "class (T_CLASS)" décalage et aller à l'état 700
+state 605
-état 614
+ 526 reference_variable: reference_variable '[' dim_offset ']' .
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' . catch_statement $@23 finally_statement
+ $default reduce using rule 526 (reference_variable)
- "catch (T_CATCH)" décalage et aller à l'état 701
- $défaut réduction par utilisation de la règle 82 (catch_statement)
+state 606
- catch_statement aller à l'état 702
+ 527 reference_variable: reference_variable '{' expr '}' .
+ $default reduce using rule 527 (reference_variable)
-état 615
- 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
+state 607
- $défaut réduction par utilisation de la règle 23 (use_declaration)
+ 557 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+ $default reduce using rule 557 (non_empty_array_pair_list)
-état 616
- 188 global_var: '$' '{' expr '}' .
+state 608
- $défaut réduction par utilisation de la règle 188 (global_var)
+ 556 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
+ $default reduce using rule 556 (non_empty_array_pair_list)
-état 617
- 190 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar
+state 609
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 551 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr
+ 555 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 703
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 728
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 729
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 610
+
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property . $@67 dynamic_class_name_variable_properties
+
+ $default reduce using rule 403 ($@67)
+
+ $@67 go to state 730
+
+
+state 611
+
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list . $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+ "elseif (T_ELSEIF)" reduce using rule 54 ($@8)
+ "else (T_ELSE)" reduce using rule 54 ($@8)
+ "endif (T_ENDIF)" reduce using rule 54 ($@8)
+ $default reduce using rule 40 ($@4)
+
+ $@4 go to state 400
+ $@8 go to state 731
+
+
+state 612
+
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 . elseif_list else_single
+
+ $default reduce using rule 167 (elseif_list)
+
+ elseif_list go to state 732
+
+
+state 613
+
+ 61 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 . parenthesis_expr ';'
+
+ '(' shift, and go to state 175
+
+ parenthesis_expr go to state 733
+
+
+state 614
+
+ 166 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';'
+
+ $default reduce using rule 42 (inner_statement_list)
+
+ inner_statement_list go to state 734
+
+
+state 615
+
+ 165 while_statement: statement .
+
+ $default reduce using rule 165 (while_statement)
+
+
+state 616
+
+ 58 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement .
+
+ $default reduce using rule 58 (unticked_statement)
+
+
+state 617
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 . for_expr ';' $@14 for_expr ')' $@15 for_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 258 (for_expr)
+
+ namespace_name go to state 84
+ for_expr go to state 735
+ non_empty_for_expr go to state 334
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 335
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 618
+
+ 261 non_empty_for_expr: non_empty_for_expr ',' $@41 . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 736
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 619
+
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 . foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+
+ '&' shift, and go to state 737
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 738
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ foreach_variable go to state 739
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 740
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 620
+
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 . foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+
+ '&' shift, and go to state 737
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 738
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ foreach_variable go to state 741
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 740
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 621
+
+ 152 declare_list: "identifier (T_STRING)" '=' . static_scalar
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 742
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 622
+
+ 153 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar
+
+ "identifier (T_STRING)" shift, and go to state 743
+
+
+state 623
+
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' . declare_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ ':' shift, and go to state 744
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 745
+ unticked_statement go to state 88
+ declare_statement go to state 746
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 624
+
+ 157 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';'
+
+ $default reduce using rule 158 (case_list)
+
+ case_list go to state 747
+
+
+state 625
+
+ 156 switch_case_list: ':' case_list . "endswitch (T_ENDSWITCH)" ';'
+ 160 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
+ 162 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+
+ "endswitch (T_ENDSWITCH)" shift, and go to state 748
+ "case (T_CASE)" shift, and go to state 749
+ "default (T_DEFAULT)" shift, and go to state 750
+
+
+state 626
+
+ 155 switch_case_list: '{' ';' . case_list '}'
+
+ $default reduce using rule 158 (case_list)
+
+ case_list go to state 751
+
+
+state 627
+
+ 154 switch_case_list: '{' case_list . '}'
+ 160 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
+ 162 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+
+ "case (T_CASE)" shift, and go to state 749
+ "default (T_DEFAULT)" shift, and go to state 750
+ '}' shift, and go to state 752
+
+
+state 628
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ 469 | '+' static_scalar_value .
+
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 469 (static_operation)
+
+
+state 629
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ 470 | '-' static_scalar_value .
+
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 470 (static_operation)
+
+
+state 630
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 446 | '!' static_scalar_value .
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ $default reduce using rule 446 (static_operation)
+
+
+state 631
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 447 | '~' static_scalar_value .
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ $default reduce using rule 447 (static_operation)
+
+
+state 632
+
+ 488 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
+ 489 | static_scalar .
+
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 753
+
+ $default reduce using rule 489 (non_empty_static_array_pair_list)
+
+
+state 633
+
+ 432 static_scalar: '[' static_array_pair_list . ']'
+
+ ']' shift, and go to state 754
-état 618
+state 634
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' . parameter_list ')' lexical_vars '{' inner_statement_list '}'
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "array (T_ARRAY)" décalage et aller à l'état 649
- "callable (T_CALLABLE)" décalage et aller à l'état 650
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
-
- ')' réduction par utilisation de la règle 162 (parameter_list)
- $défaut réduction par utilisation de la règle 171 (optional_class_type)
-
- namespace_name aller à l'état 552
- parameter_list aller à l'état 704
- non_empty_parameter_list aller à l'état 652
- optional_class_type aller à l'état 653
- fully_qualified_class_name aller à l'état 654
-
-
-état 619
-
- 99 unset_variables: unset_variables ',' unset_variable .
-
- $défaut réduction par utilisation de la règle 99 (unset_variables)
-
-
-état 620
-
- 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' .
-
- $défaut réduction par utilisation de la règle 67 (unticked_statement)
-
-
-état 621
-
- 538 isset_variables: isset_variables ',' $@76 . isset_variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ 483 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 487 | non_empty_static_array_pair_list . ',' static_scalar
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 362
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 363
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- isset_variable aller à l'état 705
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 622
-
- 502 assignment_list_element: "list (T_LIST)" '(' . $@74 assignment_list ')'
-
- $défaut réduction par utilisation de la règle 501 ($@74)
-
- $@74 aller à l'état 706
-
-
-état 623
-
- 498 assignment_list: assignment_list ',' . assignment_list_element
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 522
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- $défaut réduction par utilisation de la règle 503 (assignment_list_element)
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 523
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- assignment_list_element aller à l'état 707
-
-
-état 624
-
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' . '=' expr
-
- '=' décalage et aller à l'état 708
-
-
-état 625
-
- 525 encaps_var_offset: "identifier (T_STRING)" .
-
- $défaut réduction par utilisation de la règle 525 (encaps_var_offset)
-
-
-état 626
-
- 527 encaps_var_offset: "variable (T_VARIABLE)" .
-
- $défaut réduction par utilisation de la règle 527 (encaps_var_offset)
-
-
-état 627
-
- 526 encaps_var_offset: "number (T_NUM_STRING)" .
-
- $défaut réduction par utilisation de la règle 526 (encaps_var_offset)
-
-
-état 628
+ ',' shift, and go to state 755
- 520 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset . ']'
-
- ']' décalage et aller à l'état 709
+ $default reduce using rule 484 (possible_comma)
+ possible_comma go to state 756
-état 629
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 523 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}'
+state 635
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ']' décalage et aller à l'état 710
+ 431 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')'
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
-état 630
+ $default reduce using rule 482 (static_array_pair_list)
- 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list .
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 632
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_array_pair_list go to state 757
+ non_empty_static_array_pair_list go to state 634
+ static_class_name_scalar go to state 520
- $défaut réduction par utilisation de la règle 366 (function_call)
+state 636
-état 631
+ 427 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
- 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}' .
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 383
- $défaut réduction par utilisation de la règle 15 (top_statement)
+state 637
-état 632
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ 436 static_scalar_value: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- 3 top_statement_list: top_statement_list . $@1 top_statement
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list . '}'
+ "identifier (T_STRING)" shift, and go to state 123
- '}' décalage et aller à l'état 711
+ namespace_name go to state 758
- $défaut réduction par utilisation de la règle 2 ($@1)
-
- $@1 aller à l'état 4
-
-
-état 633
-
- 320 expr_without_variable: '(' new_expr ')' @51 instance_call .
-
- $défaut réduction par utilisation de la règle 320 (expr_without_variable)
-
-
-état 634
-
- 259 instance_call: $@43 . chaining_instance_call
-
- '[' décalage et aller à l'état 712
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 713
-
- chaining_method_or_property aller à l'état 714
- chaining_dereference aller à l'état 715
- chaining_instance_call aller à l'état 716
- variable_property aller à l'état 717
-
-
-état 635
-
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
-
- ')' décalage et aller à l'état 718
-
-
-état 636
-
- 180 non_empty_function_call_parameter_list: '&' w_variable .
-
- $défaut réduction par utilisation de la règle 180 (non_empty_function_call_parameter_list)
-
-
-état 637
-
- 181 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
- 182 | non_empty_function_call_parameter_list ',' . variable
- 183 | non_empty_function_call_parameter_list ',' . '&' w_variable
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '&' décalage et aller à l'état 719
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 720
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 195
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 721
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 638
-
- 176 function_call_parameter_list: '(' non_empty_function_call_parameter_list ')' .
-
- $défaut réduction par utilisation de la règle 176 (function_call_parameter_list)
-
-
-état 639
-
- 177 function_call_parameter_list: '(' yield_expr ')' .
-
- $défaut réduction par utilisation de la règle 177 (function_call_parameter_list)
-
-
-état 640
-
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
-
- $défaut réduction par utilisation de la règle 24 (constant_declaration)
-
-
-état 641
-
- 384 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" décalage et aller à l'état 123
-
- namespace_name aller à l'état 722
-
-
-état 642
+state 638
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 385 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
-
- $défaut réduction par utilisation de la règle 385 (fully_qualified_class_name)
-
-
-état 643
+ 396 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 437 static_scalar_value: "\\ (T_NS_SEPARATOR)" namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 396 (class_name)
+ $default reduce using rule 437 (static_scalar_value)
+
+
+state 639
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ 471 | '(' static_scalar_value . ')'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 641
+ "xor (T_LOGICAL_XOR)" shift, and go to state 642
+ "and (T_LOGICAL_AND)" shift, and go to state 643
+ '?' shift, and go to state 644
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+ ')' shift, and go to state 759
+
+
+state 640
+
+ 429 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+ 588 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "class (T_CLASS)"
+
+ "identifier (T_STRING)" shift, and go to state 760
+ "class (T_CLASS)" shift, and go to state 761
+
+
+state 641
+
+ 456 static_operation: static_scalar_value "or (T_LOGICAL_OR)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 762
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 642
+
+ 454 static_operation: static_scalar_value "xor (T_LOGICAL_XOR)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 763
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 643
+
+ 455 static_operation: static_scalar_value "and (T_LOGICAL_AND)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 764
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 644
+
+ 467 static_operation: static_scalar_value '?' . ':' static_scalar_value
+ 468 | static_scalar_value '?' . static_scalar_value ':' static_scalar_value
+
+ ':' shift, and go to state 765
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 766
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 645
+
+ 458 static_operation: static_scalar_value "|| (T_BOOLEAN_OR)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 767
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 646
+
+ 457 static_operation: static_scalar_value "&& (T_BOOLEAN_AND)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 768
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 647
+
+ 448 static_operation: static_scalar_value '|' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 769
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 648
+
+ 450 static_operation: static_scalar_value '^' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 770
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 649
+
+ 449 static_operation: static_scalar_value '&' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 771
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 650
+
+ 460 static_operation: static_scalar_value "!== (T_IS_NOT_IDENTICAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 772
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 651
+
+ 459 static_operation: static_scalar_value "=== (T_IS_IDENTICAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 773
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 652
+
+ 462 static_operation: static_scalar_value "!= (T_IS_NOT_EQUAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 774
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 653
+
+ 461 static_operation: static_scalar_value "== (T_IS_EQUAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 775
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 654
+
+ 463 static_operation: static_scalar_value '<' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 776
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 655
+
+ 464 static_operation: static_scalar_value '>' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 777
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 656
+
+ 466 static_operation: static_scalar_value ">= (T_IS_GREATER_OR_EQUAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 778
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 657
+
+ 465 static_operation: static_scalar_value "<= (T_IS_SMALLER_OR_EQUAL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 779
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 658
+
+ 452 static_operation: static_scalar_value ">> (T_SR)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 780
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 659
+
+ 451 static_operation: static_scalar_value "<< (T_SL)" . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 781
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 660
+
+ 441 static_operation: static_scalar_value '+' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 782
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 661
+
+ 442 static_operation: static_scalar_value '-' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 783
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 662
+
+ 453 static_operation: static_scalar_value '.' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 784
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 663
+
+ 443 static_operation: static_scalar_value '*' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 785
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 664
+
+ 444 static_operation: static_scalar_value '/' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- 121 implements_list: "implements (T_IMPLEMENTS)" . interface_list
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 786
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
- namespace_name aller à l'état 552
- interface_list aller à l'état 723
- fully_qualified_class_name aller à l'état 646
+state 665
+ 445 static_operation: static_scalar_value '%' . static_scalar_value
-état 644
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list . '{' class_statement_list '}'
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 787
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- '{' décalage et aller à l'état 724
+state 666
-état 645
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' . catch_statement $@23 finally_statement
- 119 interface_extends_list: "extends (T_EXTENDS)" interface_list .
- 123 interface_list: interface_list . ',' fully_qualified_class_name
+ "catch (T_CATCH)" shift, and go to state 788
- ',' décalage et aller à l'état 725
+ $default reduce using rule 96 (catch_statement)
- $défaut réduction par utilisation de la règle 119 (interface_extends_list)
+ catch_statement go to state 789
-état 646
+state 667
- 122 interface_list: fully_qualified_class_name .
+ 31 use_function_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
- $défaut réduction par utilisation de la règle 122 (interface_list)
+ "identifier (T_STRING)" shift, and go to state 790
-état 647
+state 668
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' . class_statement_list '}'
+ 29 use_function_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 194 (class_statement_list)
+ $default reduce using rule 29 (use_function_declaration)
- class_statement_list aller à l'état 726
+state 669
-état 648
+ 26 use_function_declarations: use_function_declarations ',' use_function_declaration .
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' . parameter_list ')' '{' inner_statement_list '}'
+ $default reduce using rule 26 (use_function_declarations)
- "identifier (T_STRING)" décalage et aller à l'état 123
- "array (T_ARRAY)" décalage et aller à l'état 649
- "callable (T_CALLABLE)" décalage et aller à l'état 650
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
- ')' réduction par utilisation de la règle 162 (parameter_list)
- $défaut réduction par utilisation de la règle 171 (optional_class_type)
+state 670
- namespace_name aller à l'état 552
- parameter_list aller à l'état 727
- non_empty_parameter_list aller à l'état 652
- optional_class_type aller à l'état 653
- fully_qualified_class_name aller à l'état 654
+ 37 use_const_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
+ "identifier (T_STRING)" shift, and go to state 791
-état 649
- 172 optional_class_type: "array (T_ARRAY)" .
+state 671
- $défaut réduction par utilisation de la règle 172 (optional_class_type)
+ 35 use_const_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
+ $default reduce using rule 35 (use_const_declaration)
-état 650
- 173 optional_class_type: "callable (T_CALLABLE)" .
+state 672
- $défaut réduction par utilisation de la règle 173 (optional_class_type)
+ 32 use_const_declarations: use_const_declarations ',' use_const_declaration .
+ $default reduce using rule 32 (use_const_declarations)
-état 651
- 344 expr_without_variable: function is_reference @56 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+state 673
- ')' décalage et aller à l'état 728
+ 25 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
+ $default reduce using rule 25 (use_declaration)
-état 652
- 161 parameter_list: non_empty_parameter_list .
- 167 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)"
- 168 | non_empty_parameter_list . ',' optional_class_type '&' "variable (T_VARIABLE)"
- 169 | non_empty_parameter_list . ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 170 | non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar
+state 674
- ',' décalage et aller à l'état 729
+ 202 global_var: '$' '{' expr '}' .
- $défaut réduction par utilisation de la règle 161 (parameter_list)
+ $default reduce using rule 202 (global_var)
-état 653
+state 675
- 163 non_empty_parameter_list: optional_class_type . "variable (T_VARIABLE)"
- 164 | optional_class_type . '&' "variable (T_VARIABLE)"
- 165 | optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar
- 166 | optional_class_type . "variable (T_VARIABLE)" '=' static_scalar
+ 204 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar
- '&' décalage et aller à l'état 730
- "variable (T_VARIABLE)" décalage et aller à l'état 731
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 792
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 654
- 174 optional_class_type: fully_qualified_class_name .
+state 676
- $défaut réduction par utilisation de la règle 174 (optional_class_type)
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' . parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ "identifier (T_STRING)" shift, and go to state 123
+ "array (T_ARRAY)" shift, and go to state 708
+ "callable (T_CALLABLE)" shift, and go to state 709
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
-état 655
+ ')' reduce using rule 178 (parameter_list)
+ $default reduce using rule 183 (optional_class_type)
- 474 array_function_dereference: function_call $@72 '[' dim_offset ']' .
+ namespace_name go to state 576
+ parameter_list go to state 793
+ non_empty_parameter_list go to state 711
+ parameter go to state 712
+ optional_class_type go to state 713
+ fully_qualified_class_name go to state 714
+
+
+state 677
+
+ 113 unset_variables: unset_variables ',' unset_variable .
+
+ $default reduce using rule 113 (unset_variables)
+
+
+state 678
+
+ 81 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' .
+
+ $default reduce using rule 81 (unticked_statement)
+
+
+state 679
+
+ 583 isset_variables: isset_variables ',' $@76 . isset_variable
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 372
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 373
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ isset_variable go to state 794
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 680
+
+ 547 assignment_list_element: "list (T_LIST)" '(' . $@74 assignment_list ')'
+
+ $default reduce using rule 546 ($@74)
+
+ $@74 go to state 795
+
+
+state 681
+
+ 543 assignment_list: assignment_list ',' . assignment_list_element
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 545
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ $default reduce using rule 548 (assignment_list_element)
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 546
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ assignment_list_element go to state 796
+
+
+state 682
+
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' . '=' expr
+
+ '=' shift, and go to state 797
+
+
+state 683
+
+ 570 encaps_var_offset: "identifier (T_STRING)" .
+
+ $default reduce using rule 570 (encaps_var_offset)
+
+
+state 684
+
+ 572 encaps_var_offset: "variable (T_VARIABLE)" .
+
+ $default reduce using rule 572 (encaps_var_offset)
+
+
+state 685
+
+ 571 encaps_var_offset: "number (T_NUM_STRING)" .
+
+ $default reduce using rule 571 (encaps_var_offset)
+
+
+state 686
- $défaut réduction par utilisation de la règle 474 (array_function_dereference)
+ 565 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset . ']'
+
+ ']' shift, and go to state 798
-état 656
+state 687
- 495 variable_name: '{' expr '}' .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 568 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}'
- $défaut réduction par utilisation de la règle 495 (variable_name)
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ']' shift, and go to state 799
-état 657
+state 688
- 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list .
+ 380 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list .
- $défaut réduction par utilisation de la règle 372 (function_call)
+ $default reduce using rule 380 (function_call)
-état 658
+state 689
- 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list .
-
- $défaut réduction par utilisation de la règle 370 (function_call)
-
-
-état 659
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 325 | expr '?' ':' $@54 expr .
-
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 325 (expr_without_variable)
-
-
-état 660
-
- 323 expr_without_variable: expr '?' $@52 expr ':' . $@53 expr
-
- $défaut réduction par utilisation de la règle 322 ($@53)
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}' .
- $@53 aller à l'état 732
+ $default reduce using rule 15 (top_statement)
-état 661
+state 690
- 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . $@46 ctor_arguments
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list . '}'
- $défaut réduction par utilisation de la règle 266 ($@46)
+ '}' shift, and go to state 800
- $@46 aller à l'état 733
+ $default reduce using rule 2 ($@1)
+ $@1 go to state 4
-état 662
- 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list .
-
- $défaut réduction par utilisation de la règle 376 (function_call)
-
-
-état 663
-
- 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list .
-
- $défaut réduction par utilisation de la règle 374 (function_call)
-
-
-état 664
-
- 490 object_property: variable_without_objects $@73 .
-
- $défaut réduction par utilisation de la règle 490 (object_property)
-
-
-état 665
-
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 . method_or_not variable_properties
-
- '(' réduction par utilisation de la règle 462 (@71)
- $défaut réduction par utilisation de la règle 466 (method_or_not)
-
- array_method_dereference aller à l'état 734
- method aller à l'état 735
- @71 aller à l'état 736
- method_or_not aller à l'état 737
-
-
-état 666
-
- 491 object_dim_list: object_dim_list '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 738
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 667
-
- 492 object_dim_list: object_dim_list '{' . expr '}'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 739
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 668
-
- 510 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
-
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 740
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
-
-
-état 669
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 506 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr .
-
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 506 (non_empty_array_pair_list)
-
-
-état 670
-
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 . dynamic_class_name_variable_properties
-
- $défaut réduction par utilisation de la règle 393 (dynamic_class_name_variable_properties)
-
- dynamic_class_name_variable_properties aller à l'état 741
-
-
-état 671
-
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- $défaut réduction par utilisation de la règle 154 (new_elseif_list)
-
- new_elseif_list aller à l'état 742
-
-
-état 672
-
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list . else_single
- 153 elseif_list: elseif_list . "elseif (T_ELSEIF)" parenthesis_expr $@37 statement
-
- "elseif (T_ELSEIF)" décalage et aller à l'état 743
- "else (T_ELSE)" décalage et aller à l'état 744
-
- "elseif (T_ELSEIF)" [réduction par utilisation de la règle 157 (else_single)]
- "else (T_ELSE)" [réduction par utilisation de la règle 157 (else_single)]
- $défaut réduction par utilisation de la règle 157 (else_single)
-
- else_single aller à l'état 745
-
-
-état 673
-
- 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr . ';'
-
- ';' décalage et aller à l'état 746
-
-
-état 674
-
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 150 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';'
-
- "endwhile (T_ENDWHILE)" décalage et aller à l'état 747
-
- $défaut réduction par utilisation de la règle 26 ($@4)
-
- $@4 aller à l'état 390
-
-
-état 675
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr . ';' $@14 for_expr ')' $@15 for_statement
-
- ';' décalage et aller à l'état 748
+state 691
+ 334 expr_without_variable: '(' new_expr ')' @51 instance_call .
-état 676
+ $default reduce using rule 334 (expr_without_variable)
- 247 non_empty_for_expr: non_empty_for_expr ',' $@41 expr .
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
+state 692
- $défaut réduction par utilisation de la règle 247 (non_empty_for_expr)
+ 273 instance_call: $@43 . chaining_instance_call
+ '[' shift, and go to state 801
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 802
+
+ chaining_method_or_property go to state 803
+ chaining_dereference go to state 804
+ chaining_instance_call go to state 805
+ variable_property go to state 806
+
+
+state 693
+
+ 46 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
+
+ ')' shift, and go to state 807
+
+
+state 694
+
+ 192 non_empty_function_call_parameter_list: '&' w_variable .
+
+ $default reduce using rule 192 (non_empty_function_call_parameter_list)
+
+
+state 695
+
+ 193 non_empty_function_call_parameter_list: "... (T_ELLIPSIS)" expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 193 (non_empty_function_call_parameter_list)
+
+
+state 696
+
+ 194 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
+ 195 | non_empty_function_call_parameter_list ',' . variable
+ 196 | non_empty_function_call_parameter_list ',' . '&' w_variable
+ 197 | non_empty_function_call_parameter_list ',' . "... (T_ELLIPSIS)" expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '&' shift, and go to state 808
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ "... (T_ELLIPSIS)" shift, and go to state 809
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 810
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 195
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 811
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 697
+
+ 188 function_call_parameter_list: '(' non_empty_function_call_parameter_list ')' .
+
+ $default reduce using rule 188 (function_call_parameter_list)
+
+
+state 698
+
+ 189 function_call_parameter_list: '(' yield_expr ')' .
+
+ $default reduce using rule 189 (function_call_parameter_list)
+
+
+state 699
+
+ 38 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
+
+ $default reduce using rule 38 (constant_declaration)
+
+
+state 700
+
+ 398 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 123
+
+ namespace_name go to state 812
+
+
+state 701
-état 677
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 399 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- 127 foreach_variable: '&' . variable
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ $default reduce using rule 399 (fully_qualified_class_name)
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 749
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+state 702
-état 678
+ 137 implements_list: "implements (T_IMPLEMENTS)" . interface_list
- 129 foreach_variable: "list (T_LIST)" . '(' $@34 assignment_list ')'
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- '(' décalage et aller à l'état 750
+ namespace_name go to state 576
+ interface_list go to state 813
+ fully_qualified_class_name go to state 705
-état 679
+state 703
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable . foreach_optional_arg ')' $@20 foreach_statement
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list . '{' class_statement_list '}'
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 751
+ '{' shift, and go to state 814
- $défaut réduction par utilisation de la règle 124 (foreach_optional_arg)
- foreach_optional_arg aller à l'état 752
+state 704
+ 135 interface_extends_list: "extends (T_EXTENDS)" interface_list .
+ 139 interface_list: interface_list . ',' fully_qualified_class_name
-état 680
+ ',' shift, and go to state 815
- 126 foreach_variable: variable .
+ $default reduce using rule 135 (interface_extends_list)
- $défaut réduction par utilisation de la règle 126 (foreach_variable)
+state 705
-état 681
+ 138 interface_list: fully_qualified_class_name .
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable . foreach_optional_arg ')' $@18 foreach_statement
+ $default reduce using rule 138 (interface_list)
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 751
- $défaut réduction par utilisation de la règle 124 (foreach_optional_arg)
+state 706
- foreach_optional_arg aller à l'état 753
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' . class_statement_list '}'
+ $default reduce using rule 208 (class_statement_list)
-état 682
+ class_statement_list go to state 816
- 136 declare_list: "identifier (T_STRING)" '=' static_scalar .
- $défaut réduction par utilisation de la règle 136 (declare_list)
+state 707
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' . parameter_list ')' '{' inner_statement_list '}'
-état 683
+ "identifier (T_STRING)" shift, and go to state 123
+ "array (T_ARRAY)" shift, and go to state 708
+ "callable (T_CALLABLE)" shift, and go to state 709
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- 137 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar
+ ')' reduce using rule 178 (parameter_list)
+ $default reduce using rule 183 (optional_class_type)
- '=' décalage et aller à l'état 754
+ namespace_name go to state 576
+ parameter_list go to state 817
+ non_empty_parameter_list go to state 711
+ parameter go to state 712
+ optional_class_type go to state 713
+ fully_qualified_class_name go to state 714
-état 684
+state 708
- 135 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
+ 184 optional_class_type: "array (T_ARRAY)" .
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 184 (optional_class_type)
- inner_statement_list aller à l'état 755
+state 709
-état 685
+ 185 optional_class_type: "callable (T_CALLABLE)" .
- 134 declare_statement: statement .
+ $default reduce using rule 185 (optional_class_type)
- $défaut réduction par utilisation de la règle 134 (declare_statement)
+state 710
-état 686
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
- 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement .
+ ')' shift, and go to state 818
- $défaut réduction par utilisation de la règle 75 (unticked_statement)
+state 711
-état 687
+ 177 parameter_list: non_empty_parameter_list .
+ 180 non_empty_parameter_list: non_empty_parameter_list . ',' parameter
- 141 switch_case_list: ':' ';' case_list . "endswitch (T_ENDSWITCH)" ';'
- 144 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 146 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+ ',' shift, and go to state 819
- "endswitch (T_ENDSWITCH)" décalage et aller à l'état 756
- "case (T_CASE)" décalage et aller à l'état 689
- "default (T_DEFAULT)" décalage et aller à l'état 690
+ $default reduce using rule 177 (parameter_list)
-état 688
+state 712
- 140 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';'
+ 179 non_empty_parameter_list: parameter .
- ';' décalage et aller à l'état 757
+ $default reduce using rule 179 (non_empty_parameter_list)
-état 689
+state 713
- 144 case_list: case_list "case (T_CASE)" . expr case_separator $@35 inner_statement_list
+ 181 parameter: optional_class_type . is_reference is_variadic "variable (T_VARIABLE)"
+ 182 | optional_class_type . is_reference is_variadic "variable (T_VARIABLE)" '=' static_scalar
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ '&' shift, and go to state 250
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 758
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 690
-
- 146 case_list: case_list "default (T_DEFAULT)" . case_separator $@36 inner_statement_list
-
- ':' décalage et aller à l'état 759
- ';' décalage et aller à l'état 760
-
- case_separator aller à l'état 761
-
-
-état 691
-
- 139 switch_case_list: '{' ';' case_list . '}'
- 144 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 146 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
-
- "case (T_CASE)" décalage et aller à l'état 689
- "default (T_DEFAULT)" décalage et aller à l'état 690
- '}' décalage et aller à l'état 762
-
-
-état 692
-
- 138 switch_case_list: '{' case_list '}' .
-
- $défaut réduction par utilisation de la règle 138 (switch_case_list)
-
-
-état 693
-
- 443 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
-
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
-
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 763
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $default reduce using rule 117 (is_reference)
+ is_reference go to state 820
-état 694
- 423 static_scalar: '[' static_array_pair_list ']' .
+state 714
- $défaut réduction par utilisation de la règle 423 (static_scalar)
+ 186 optional_class_type: fully_qualified_class_name .
+ $default reduce using rule 186 (optional_class_type)
-état 695
- 440 possible_comma: ',' .
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 442 | non_empty_static_array_pair_list ',' . static_scalar
+state 715
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 519 array_function_dereference: function_call $@72 '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 440 (possible_comma)
+ $default reduce using rule 519 (array_function_dereference)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 764
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+state 716
-état 696
+ 540 variable_name: '{' expr '}' .
- 438 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
+ $default reduce using rule 540 (variable_name)
- $défaut réduction par utilisation de la règle 438 (static_array_pair_list)
+state 717
-état 697
+ 386 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list .
- 422 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')'
+ $default reduce using rule 386 (function_call)
- ')' décalage et aller à l'état 765
+state 718
-état 698
+ 384 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list .
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 418 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ $default reduce using rule 384 (function_call)
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" réduction par utilisation de la règle 381 (class_name)
- $défaut réduction par utilisation de la règle 418 (static_scalar)
+state 719
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 339 | expr '?' ':' $@54 expr .
-état 699
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
- 426 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+ $default reduce using rule 339 (expr_without_variable)
- $défaut réduction par utilisation de la règle 426 (static_class_constant)
+state 720
-état 700
+ 337 expr_without_variable: expr '?' $@52 expr ':' . $@53 expr
- 543 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)" .
+ $default reduce using rule 336 ($@53)
- $défaut réduction par utilisation de la règle 543 (static_class_name_scalar)
+ $@53 go to state 821
-état 701
+state 721
- 87 catch_statement: "catch (T_CATCH)" . '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ 281 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . $@46 ctor_arguments
- '(' décalage et aller à l'état 766
+ $default reduce using rule 280 ($@46)
+ $@46 go to state 822
-état 702
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement . $@23 finally_statement
+state 722
- $défaut réduction par utilisation de la règle 78 ($@23)
+ 390 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list .
+
+ $default reduce using rule 390 (function_call)
+
+
+state 723
+
+ 388 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list .
+
+ $default reduce using rule 388 (function_call)
+
+
+state 724
+
+ 535 object_property: variable_without_objects $@73 .
+
+ $default reduce using rule 535 (object_property)
+
+
+state 725
+
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 . method_or_not variable_properties
+
+ '(' reduce using rule 507 (@71)
+ $default reduce using rule 511 (method_or_not)
+
+ array_method_dereference go to state 823
+ method go to state 824
+ @71 go to state 825
+ method_or_not go to state 826
+
+
+state 726
+
+ 536 object_dim_list: object_dim_list '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 827
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 727
+
+ 537 object_dim_list: object_dim_list '{' . expr '}'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 828
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 728
+
+ 555 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 829
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 729
+
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 551 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 551 (non_empty_array_pair_list)
+
+
+state 730
+
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 . dynamic_class_name_variable_properties
+
+ $default reduce using rule 407 (dynamic_class_name_variable_properties)
+
+ dynamic_class_name_variable_properties go to state 830
+
+
+state 731
+
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+ $default reduce using rule 170 (new_elseif_list)
+
+ new_elseif_list go to state 831
+
+
+state 732
+
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list . else_single
+ 169 elseif_list: elseif_list . "elseif (T_ELSEIF)" parenthesis_expr $@37 statement
+
+ "elseif (T_ELSEIF)" shift, and go to state 832
+ "else (T_ELSE)" shift, and go to state 833
+
+ "elseif (T_ELSEIF)" [reduce using rule 173 (else_single)]
+ "else (T_ELSE)" [reduce using rule 173 (else_single)]
+ $default reduce using rule 173 (else_single)
+
+ else_single go to state 834
+
+
+state 733
+
+ 61 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr . ';'
+
+ ';' shift, and go to state 835
+
+
+state 734
+
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 166 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';'
+
+ "endwhile (T_ENDWHILE)" shift, and go to state 836
+
+ $default reduce using rule 40 ($@4)
+
+ $@4 go to state 400
+
+
+state 735
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr . ';' $@14 for_expr ')' $@15 for_statement
+
+ ';' shift, and go to state 837
- $@23 aller à l'état 767
+state 736
-état 703
+ 261 non_empty_for_expr: non_empty_for_expr ',' $@41 expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
- 190 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar .
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
- $défaut réduction par utilisation de la règle 190 (static_var_list)
+ $default reduce using rule 261 (non_empty_for_expr)
-état 704
+state 737
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+ 143 foreach_variable: '&' . variable
- ')' décalage et aller à l'état 768
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 838
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
-état 705
- 538 isset_variables: isset_variables ',' $@76 isset_variable .
+state 738
- $défaut réduction par utilisation de la règle 538 (isset_variables)
+ 145 foreach_variable: "list (T_LIST)" . '(' $@34 assignment_list ')'
+ '(' shift, and go to state 839
-état 706
- 502 assignment_list_element: "list (T_LIST)" '(' $@74 . assignment_list ')'
+state 739
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 522
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable . foreach_optional_arg ')' $@20 foreach_statement
- $défaut réduction par utilisation de la règle 503 (assignment_list_element)
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 840
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 523
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- assignment_list aller à l'état 769
- assignment_list_element aller à l'état 525
+ $default reduce using rule 140 (foreach_optional_arg)
+ foreach_optional_arg go to state 841
-état 707
- 498 assignment_list: assignment_list ',' assignment_list_element .
+state 740
- $défaut réduction par utilisation de la règle 498 (assignment_list)
+ 142 foreach_variable: variable .
+ $default reduce using rule 142 (foreach_variable)
-état 708
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' . expr
+state 741
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 770
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 709
-
- 520 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']' .
-
- $défaut réduction par utilisation de la règle 520 (encaps_var)
-
-
-état 710
-
- 523 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}'
-
- '}' décalage et aller à l'état 771
-
-
-état 711
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable . foreach_optional_arg ')' $@18 foreach_statement
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}' .
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 840
- $défaut réduction par utilisation de la règle 13 (top_statement)
-
-
-état 712
-
- 252 chaining_dereference: '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
+ $default reduce using rule 140 (foreach_optional_arg)
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 772
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 713
-
- 459 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property $@70 method_or_not
-
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
-
- variable_without_objects aller à l'état 577
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- object_property aller à l'état 773
- object_dim_list aller à l'état 579
- variable_name aller à l'état 580
- simple_indirect_reference aller à l'état 412
-
-
-état 714
-
- 249 chaining_method_or_property: chaining_method_or_property . variable_property
- 256 chaining_instance_call: chaining_method_or_property .
-
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 713
-
- $défaut réduction par utilisation de la règle 256 (chaining_instance_call)
-
- variable_property aller à l'état 774
-
-
-état 715
-
- 251 chaining_dereference: chaining_dereference . '[' dim_offset ']'
- 254 chaining_instance_call: chaining_dereference . $@42 chaining_method_or_property
- 255 | chaining_dereference .
-
- '[' décalage et aller à l'état 775
-
- "-> (T_OBJECT_OPERATOR)" réduction par utilisation de la règle 253 ($@42)
- $défaut réduction par utilisation de la règle 255 (chaining_instance_call)
-
- $@42 aller à l'état 776
-
-
-état 716
-
- 259 instance_call: $@43 chaining_instance_call .
-
- $défaut réduction par utilisation de la règle 259 (instance_call)
+ foreach_optional_arg go to state 842
-état 717
+state 742
- 250 chaining_method_or_property: variable_property .
+ 152 declare_list: "identifier (T_STRING)" '=' static_scalar .
- $défaut réduction par utilisation de la règle 250 (chaining_method_or_property)
+ $default reduce using rule 152 (declare_list)
-état 718
+state 743
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
+ 153 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar
- ';' décalage et aller à l'état 777
+ '=' shift, and go to state 843
-état 719
+state 744
- 183 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
+ 151 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+ $default reduce using rule 42 (inner_statement_list)
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- w_variable aller à l'état 778
- variable aller à l'état 310
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+ inner_statement_list go to state 844
-état 720
+state 745
- 181 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
- 446 expr: expr_without_variable .
+ 150 declare_statement: statement .
- ',' réduction par utilisation de la règle 181 (non_empty_function_call_parameter_list)
- ')' réduction par utilisation de la règle 181 (non_empty_function_call_parameter_list)
- $défaut réduction par utilisation de la règle 446 (expr)
+ $default reduce using rule 150 (declare_statement)
-état 721
+state 746
- 182 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
- 264 expr_without_variable: variable . '=' expr
- 265 | variable . '=' '&' variable
- 267 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
- 269 | variable . "+= (T_PLUS_EQUAL)" expr
- 270 | variable . "-= (T_MINUS_EQUAL)" expr
- 271 | variable . "*= (T_MUL_EQUAL)" expr
- 272 | variable . "/= (T_DIV_EQUAL)" expr
- 273 | variable . ".= (T_CONCAT_EQUAL)" expr
- 274 | variable . "%= (T_MOD_EQUAL)" expr
- 275 | variable . "&= (T_AND_EQUAL)" expr
- 276 | variable . "|= (T_OR_EQUAL)" expr
- 277 | variable . "^= (T_XOR_EQUAL)" expr
- 278 | variable . "<<= (T_SL_EQUAL)" expr
- 279 | variable . ">>= (T_SR_EQUAL)" expr
- 449 r_variable: variable .
- 451 rw_variable: variable .
+ 89 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement .
- '=' décalage et aller à l'état 281
- ">>= (T_SR_EQUAL)" décalage et aller à l'état 282
- "<<= (T_SL_EQUAL)" décalage et aller à l'état 283
- "^= (T_XOR_EQUAL)" décalage et aller à l'état 284
- "|= (T_OR_EQUAL)" décalage et aller à l'état 285
- "&= (T_AND_EQUAL)" décalage et aller à l'état 286
- "%= (T_MOD_EQUAL)" décalage et aller à l'état 287
- ".= (T_CONCAT_EQUAL)" décalage et aller à l'état 288
- "/= (T_DIV_EQUAL)" décalage et aller à l'état 289
- "*= (T_MUL_EQUAL)" décalage et aller à l'état 290
- "-= (T_MINUS_EQUAL)" décalage et aller à l'état 291
- "+= (T_PLUS_EQUAL)" décalage et aller à l'état 292
+ $default reduce using rule 89 (unticked_statement)
- ',' réduction par utilisation de la règle 182 (non_empty_function_call_parameter_list)
- "-- (T_DEC)" réduction par utilisation de la règle 451 (rw_variable)
- "++ (T_INC)" réduction par utilisation de la règle 451 (rw_variable)
- ')' réduction par utilisation de la règle 182 (non_empty_function_call_parameter_list)
- $défaut réduction par utilisation de la règle 449 (r_variable)
+state 747
-état 722
+ 157 switch_case_list: ':' ';' case_list . "endswitch (T_ENDSWITCH)" ';'
+ 160 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
+ 162 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 384 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ "endswitch (T_ENDSWITCH)" shift, and go to state 845
+ "case (T_CASE)" shift, and go to state 749
+ "default (T_DEFAULT)" shift, and go to state 750
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 239
- $défaut réduction par utilisation de la règle 384 (fully_qualified_class_name)
+state 748
+ 156 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';'
-état 723
+ ';' shift, and go to state 846
- 121 implements_list: "implements (T_IMPLEMENTS)" interface_list .
- 123 interface_list: interface_list . ',' fully_qualified_class_name
- ',' décalage et aller à l'état 725
+state 749
- $défaut réduction par utilisation de la règle 121 (implements_list)
+ 160 case_list: case_list "case (T_CASE)" . expr case_separator $@35 inner_statement_list
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 847
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 750
+
+ 162 case_list: case_list "default (T_DEFAULT)" . case_separator $@36 inner_statement_list
+
+ ':' shift, and go to state 848
+ ';' shift, and go to state 849
+
+ case_separator go to state 850
+
+
+state 751
+
+ 155 switch_case_list: '{' ';' case_list . '}'
+ 160 case_list: case_list . "case (T_CASE)" expr case_separator $@35 inner_statement_list
+ 162 | case_list . "default (T_DEFAULT)" case_separator $@36 inner_statement_list
+
+ "case (T_CASE)" shift, and go to state 749
+ "default (T_DEFAULT)" shift, and go to state 750
+ '}' shift, and go to state 851
+
+
+state 752
+
+ 154 switch_case_list: '{' case_list '}' .
+
+ $default reduce using rule 154 (switch_case_list)
+
+
+state 753
+
+ 488 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 852
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 754
+
+ 432 static_scalar: '[' static_array_pair_list ']' .
+
+ $default reduce using rule 432 (static_scalar)
-état 724
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' . class_statement_list '}'
+state 755
- $défaut réduction par utilisation de la règle 194 (class_statement_list)
+ 485 possible_comma: ',' .
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 487 | non_empty_static_array_pair_list ',' . static_scalar
- class_statement_list aller à l'état 779
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+ $default reduce using rule 485 (possible_comma)
-état 725
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 853
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- 123 interface_list: interface_list ',' . fully_qualified_class_name
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+state 756
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 780
+ 483 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
+ $default reduce using rule 483 (static_array_pair_list)
-état 726
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list . '}'
- 193 class_statement_list: class_statement_list . class_statement
+state 757
- "const (T_CONST)" décalage et aller à l'état 781
- "use (T_USE)" décalage et aller à l'état 782
- "public (T_PUBLIC)" décalage et aller à l'état 783
- "protected (T_PROTECTED)" décalage et aller à l'état 784
- "private (T_PRIVATE)" décalage et aller à l'état 785
- "final (T_FINAL)" décalage et aller à l'état 786
- "abstract (T_ABSTRACT)" décalage et aller à l'état 787
- "static (T_STATIC)" décalage et aller à l'état 788
- "var (T_VAR)" décalage et aller à l'état 789
- '}' décalage et aller à l'état 790
+ 431 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')'
- $défaut réduction par utilisation de la règle 226 (method_modifiers)
+ ')' shift, and go to state 854
+
+
+state 758
- class_statement aller à l'état 791
- trait_use_statement aller à l'état 792
- variable_modifiers aller à l'état 793
- method_modifiers aller à l'état 794
- non_empty_member_modifiers aller à l'état 795
- member_modifier aller à l'état 796
- class_constant_declaration aller à l'état 797
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 395 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ 436 static_scalar_value: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 395 (class_name)
+ $default reduce using rule 436 (static_scalar_value)
+
+
+state 759
+
+ 471 static_operation: '(' static_scalar_value ')' .
+
+ $default reduce using rule 471 (static_operation)
+
+
+state 760
+
+ 429 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+
+ $default reduce using rule 429 (static_class_constant)
+
+
+state 761
+
+ 588 static_class_name_scalar: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "class (T_CLASS)" .
+
+ $default reduce using rule 588 (static_class_name_scalar)
+
+
+state 762
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 456 | static_scalar_value "or (T_LOGICAL_OR)" static_scalar_value .
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ "xor (T_LOGICAL_XOR)" shift, and go to state 642
+ "and (T_LOGICAL_AND)" shift, and go to state 643
+ '?' shift, and go to state 644
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 456 (static_operation)
+
+
+state 763
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 454 | static_scalar_value "xor (T_LOGICAL_XOR)" static_scalar_value .
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ "and (T_LOGICAL_AND)" shift, and go to state 643
+ '?' shift, and go to state 644
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 454 (static_operation)
+
+
+state 764
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 455 | static_scalar_value "and (T_LOGICAL_AND)" static_scalar_value .
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '?' shift, and go to state 644
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 455 (static_operation)
+
+
+state 765
+
+ 467 static_operation: static_scalar_value '?' ':' . static_scalar_value
+
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 855
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 766
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ 468 | static_scalar_value '?' static_scalar_value . ':' static_scalar_value
+
+ "or (T_LOGICAL_OR)" shift, and go to state 641
+ "xor (T_LOGICAL_XOR)" shift, and go to state 642
+ "and (T_LOGICAL_AND)" shift, and go to state 643
+ '?' shift, and go to state 644
+ ':' shift, and go to state 856
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+
+state 767
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 458 | static_scalar_value "|| (T_BOOLEAN_OR)" static_scalar_value .
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 458 (static_operation)
+
+
+state 768
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 457 | static_scalar_value "&& (T_BOOLEAN_AND)" static_scalar_value .
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 457 (static_operation)
+
+
+state 769
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 448 | static_scalar_value '|' static_scalar_value .
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 448 (static_operation)
+
+
+state 770
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 450 | static_scalar_value '^' static_scalar_value .
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 450 (static_operation)
+
+
+state 771
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 449 | static_scalar_value '&' static_scalar_value .
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 449 (static_operation)
+
+
+state 772
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value "!== (T_IS_NOT_IDENTICAL)" static_scalar_value .
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 460 (static_operation)
+
+
+state 773
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 459 | static_scalar_value "=== (T_IS_IDENTICAL)" static_scalar_value .
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 459 (static_operation)
+
+
+state 774
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 462 | static_scalar_value "!= (T_IS_NOT_EQUAL)" static_scalar_value .
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 462 (static_operation)
+
+
+state 775
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 461 | static_scalar_value "== (T_IS_EQUAL)" static_scalar_value .
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ "!== (T_IS_NOT_IDENTICAL)" error (nonassociative)
+ "=== (T_IS_IDENTICAL)" error (nonassociative)
+ "!= (T_IS_NOT_EQUAL)" error (nonassociative)
+ "== (T_IS_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 461 (static_operation)
+
+
+state 776
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 463 | static_scalar_value '<' static_scalar_value .
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 463 (static_operation)
+
+
+state 777
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 464 | static_scalar_value '>' static_scalar_value .
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 464 (static_operation)
+
+
+state 778
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value .
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 466 (static_operation)
+
+
+state 779
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 465 | static_scalar_value "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value .
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ '<' error (nonassociative)
+ '>' error (nonassociative)
+ ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
+ "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
+
+ $default reduce using rule 465 (static_operation)
+
+
+state 780
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 452 | static_scalar_value ">> (T_SR)" static_scalar_value .
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 452 (static_operation)
+
+
+state 781
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 451 | static_scalar_value "<< (T_SL)" static_scalar_value .
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 451 (static_operation)
+
+
+state 782
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 441 | static_scalar_value '+' static_scalar_value .
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 441 (static_operation)
+
+
+state 783
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 442 | static_scalar_value '-' static_scalar_value .
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 442 (static_operation)
+
+
+state 784
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 453 | static_scalar_value '.' static_scalar_value .
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+
+ $default reduce using rule 453 (static_operation)
+
+
+state 785
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 443 | static_scalar_value '*' static_scalar_value .
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ $default reduce using rule 443 (static_operation)
+
+
+state 786
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 444 | static_scalar_value '/' static_scalar_value .
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ $default reduce using rule 444 (static_operation)
-état 727
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list . ')' '{' inner_statement_list '}'
+state 787
+
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 445 | static_scalar_value '%' static_scalar_value .
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+
+ $default reduce using rule 445 (static_operation)
- ')' décalage et aller à l'état 798
+state 788
-état 728
+ 101 catch_statement: "catch (T_CATCH)" . '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' . lexical_vars '{' inner_statement_list '}'
+ '(' shift, and go to state 857
- "use (T_USE)" décalage et aller à l'état 799
- $défaut réduction par utilisation de la règle 357 (lexical_vars)
+state 789
- lexical_vars aller à l'état 800
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement . $@23 finally_statement
+ $default reduce using rule 92 ($@23)
-état 729
+ $@23 go to state 858
- 167 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)"
- 168 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)"
- 169 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 170 | non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)" '=' static_scalar
- "identifier (T_STRING)" décalage et aller à l'état 123
- "array (T_ARRAY)" décalage et aller à l'état 649
- "callable (T_CALLABLE)" décalage et aller à l'état 650
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+state 790
- $défaut réduction par utilisation de la règle 171 (optional_class_type)
+ 31 use_function_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
- namespace_name aller à l'état 552
- optional_class_type aller à l'état 801
- fully_qualified_class_name aller à l'état 654
+ $default reduce using rule 31 (use_function_declaration)
-état 730
+state 791
- 164 non_empty_parameter_list: optional_class_type '&' . "variable (T_VARIABLE)"
- 165 | optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
+ 37 use_const_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
- "variable (T_VARIABLE)" décalage et aller à l'état 802
+ $default reduce using rule 37 (use_const_declaration)
-état 731
+state 792
- 163 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" .
- 166 | optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
+ 204 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar .
- '=' décalage et aller à l'état 803
+ $default reduce using rule 204 (static_var_list)
+
+
+state 793
+
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+
+ ')' shift, and go to state 859
+
+
+state 794
+
+ 583 isset_variables: isset_variables ',' $@76 isset_variable .
+
+ $default reduce using rule 583 (isset_variables)
+
+
+state 795
+
+ 547 assignment_list_element: "list (T_LIST)" '(' $@74 . assignment_list ')'
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 545
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ $default reduce using rule 548 (assignment_list_element)
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 546
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ assignment_list go to state 860
+ assignment_list_element go to state 548
- $défaut réduction par utilisation de la règle 163 (non_empty_parameter_list)
+state 796
-état 732
+ 543 assignment_list: assignment_list ',' assignment_list_element .
- 323 expr_without_variable: expr '?' $@52 expr ':' $@53 . expr
+ $default reduce using rule 543 (assignment_list)
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 804
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 733
-
- 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 . ctor_arguments
-
- '(' décalage et aller à l'état 395
-
- $défaut réduction par utilisation de la règle 401 (ctor_arguments)
-
- function_call_parameter_list aller à l'état 472
- ctor_arguments aller à l'état 805
-
-
-état 734
-
- 460 array_method_dereference: array_method_dereference . '[' dim_offset ']'
- 465 method_or_not: array_method_dereference .
-
- '[' décalage et aller à l'état 806
-
- $défaut réduction par utilisation de la règle 465 (method_or_not)
-
-
-état 735
-
- 461 array_method_dereference: method . '[' dim_offset ']'
- 464 method_or_not: method .
-
- '[' décalage et aller à l'état 807
-
- $défaut réduction par utilisation de la règle 464 (method_or_not)
-
-
-état 736
-
- 463 method: @71 . function_call_parameter_list
-
- '(' décalage et aller à l'état 395
-
- function_call_parameter_list aller à l'état 808
-
-
-état 737
-
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not . variable_properties
+state 797
- $défaut réduction par utilisation de la règle 457 (variable_properties)
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' . expr
- variable_properties aller à l'état 809
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 861
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 798
+
+ 565 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']' .
+
+ $default reduce using rule 565 (encaps_var)
+
+
+state 799
+
+ 568 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}'
+
+ '}' shift, and go to state 862
+
+
+state 800
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}' .
-état 738
+ $default reduce using rule 13 (top_statement)
+
+
+state 801
+
+ 266 chaining_dereference: '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
- 491 object_dim_list: object_dim_list '[' dim_offset . ']'
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 863
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 802
+
+ 504 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property $@70 method_or_not
+
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 601
+ reference_variable go to state 420
+ compound_variable go to state 117
+ object_property go to state 864
+ object_dim_list go to state 603
+ variable_name go to state 604
+ simple_indirect_reference go to state 422
+
+
+state 803
+
+ 263 chaining_method_or_property: chaining_method_or_property . variable_property
+ 270 chaining_instance_call: chaining_method_or_property .
+
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 802
+
+ $default reduce using rule 270 (chaining_instance_call)
+
+ variable_property go to state 865
+
+
+state 804
+
+ 265 chaining_dereference: chaining_dereference . '[' dim_offset ']'
+ 268 chaining_instance_call: chaining_dereference . $@42 chaining_method_or_property
+ 269 | chaining_dereference .
+
+ '[' shift, and go to state 866
+
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 267 ($@42)
+ $default reduce using rule 269 (chaining_instance_call)
+
+ $@42 go to state 867
+
+
+state 805
+
+ 273 instance_call: $@43 chaining_instance_call .
+
+ $default reduce using rule 273 (instance_call)
+
+
+state 806
+
+ 264 chaining_method_or_property: variable_property .
+
+ $default reduce using rule 264 (chaining_method_or_property)
+
+
+state 807
+
+ 46 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
+
+ ';' shift, and go to state 868
+
+
+state 808
+
+ 196 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ w_variable go to state 869
+ variable go to state 312
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+
+
+state 809
+
+ 197 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' "... (T_ELLIPSIS)" . expr
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 870
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 810
+
+ 194 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
+ 491 expr: expr_without_variable .
+
+ ',' reduce using rule 194 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 194 (non_empty_function_call_parameter_list)
+ $default reduce using rule 491 (expr)
+
+
+state 811
+
+ 195 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
+ 278 expr_without_variable: variable . '=' expr
+ 279 | variable . '=' '&' variable
+ 281 | variable . '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments
+ 283 | variable . "+= (T_PLUS_EQUAL)" expr
+ 284 | variable . "-= (T_MINUS_EQUAL)" expr
+ 285 | variable . "*= (T_MUL_EQUAL)" expr
+ 286 | variable . "/= (T_DIV_EQUAL)" expr
+ 287 | variable . ".= (T_CONCAT_EQUAL)" expr
+ 288 | variable . "%= (T_MOD_EQUAL)" expr
+ 289 | variable . "&= (T_AND_EQUAL)" expr
+ 290 | variable . "|= (T_OR_EQUAL)" expr
+ 291 | variable . "^= (T_XOR_EQUAL)" expr
+ 292 | variable . "<<= (T_SL_EQUAL)" expr
+ 293 | variable . ">>= (T_SR_EQUAL)" expr
+ 494 r_variable: variable .
+ 496 rw_variable: variable .
+
+ '=' shift, and go to state 283
+ ">>= (T_SR_EQUAL)" shift, and go to state 284
+ "<<= (T_SL_EQUAL)" shift, and go to state 285
+ "^= (T_XOR_EQUAL)" shift, and go to state 286
+ "|= (T_OR_EQUAL)" shift, and go to state 287
+ "&= (T_AND_EQUAL)" shift, and go to state 288
+ "%= (T_MOD_EQUAL)" shift, and go to state 289
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 290
+ "/= (T_DIV_EQUAL)" shift, and go to state 291
+ "*= (T_MUL_EQUAL)" shift, and go to state 292
+ "-= (T_MINUS_EQUAL)" shift, and go to state 293
+ "+= (T_PLUS_EQUAL)" shift, and go to state 294
+
+ ',' reduce using rule 195 (non_empty_function_call_parameter_list)
+ "-- (T_DEC)" reduce using rule 496 (rw_variable)
+ "++ (T_INC)" reduce using rule 496 (rw_variable)
+ ')' reduce using rule 195 (non_empty_function_call_parameter_list)
+ $default reduce using rule 494 (r_variable)
+
+
+state 812
- ']' décalage et aller à l'état 810
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 398 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 241
-état 739
+ $default reduce using rule 398 (fully_qualified_class_name)
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- 492 object_dim_list: object_dim_list '{' expr . '}'
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- '}' décalage et aller à l'état 811
+state 813
+ 137 implements_list: "implements (T_IMPLEMENTS)" interface_list .
+ 139 interface_list: interface_list . ',' fully_qualified_class_name
-état 740
-
- 510 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
-
- $défaut réduction par utilisation de la règle 510 (non_empty_array_pair_list)
-
-
-état 741
-
- 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties .
- 392 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
-
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 812
-
- $défaut réduction par utilisation de la règle 390 (dynamic_class_name_reference)
-
- dynamic_class_name_variable_property aller à l'état 813
-
-
-état 742
-
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';'
- 156 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list
-
- "elseif (T_ELSEIF)" décalage et aller à l'état 814
- "else (T_ELSE)" décalage et aller à l'état 815
-
- $défaut réduction par utilisation de la règle 159 (new_else_single)
-
- new_else_single aller à l'état 816
-
-
-état 743
-
- 153 elseif_list: elseif_list "elseif (T_ELSEIF)" . parenthesis_expr $@37 statement
-
- '(' décalage et aller à l'état 175
-
- parenthesis_expr aller à l'état 817
-
-
-état 744
-
- 158 else_single: "else (T_ELSE)" . statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 818
- unticked_statement aller à l'état 88
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 745
-
- 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single .
-
- $défaut réduction par utilisation de la règle 38 (unticked_statement)
-
-
-état 746
-
- 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';' .
-
- $défaut réduction par utilisation de la règle 47 (unticked_statement)
-
-
-état 747
-
- 150 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';'
-
- ';' décalage et aller à l'état 819
-
-
-état 748
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' . $@14 for_expr ')' $@15 for_statement
-
- $défaut réduction par utilisation de la règle 49 ($@14)
-
- $@14 aller à l'état 820
+ ',' shift, and go to state 815
+ $default reduce using rule 137 (implements_list)
-état 749
- 127 foreach_variable: '&' variable .
+state 814
- $défaut réduction par utilisation de la règle 127 (foreach_variable)
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' . class_statement_list '}'
+ $default reduce using rule 208 (class_statement_list)
-état 750
+ class_statement_list go to state 871
- 129 foreach_variable: "list (T_LIST)" '(' . $@34 assignment_list ')'
- $défaut réduction par utilisation de la règle 128 ($@34)
+state 815
- $@34 aller à l'état 821
+ 139 interface_list: interface_list ',' . fully_qualified_class_name
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
-état 751
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 872
- 125 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable
- '&' décalage et aller à l'état 677
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 678
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+state 816
- namespace_name aller à l'état 151
- foreach_variable aller à l'état 822
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 680
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list . '}'
+ 207 class_statement_list: class_statement_list . class_statement
+ "const (T_CONST)" shift, and go to state 873
+ "use (T_USE)" shift, and go to state 874
+ "public (T_PUBLIC)" shift, and go to state 875
+ "protected (T_PROTECTED)" shift, and go to state 876
+ "private (T_PRIVATE)" shift, and go to state 877
+ "final (T_FINAL)" shift, and go to state 878
+ "abstract (T_ABSTRACT)" shift, and go to state 879
+ "static (T_STATIC)" shift, and go to state 880
+ "var (T_VAR)" shift, and go to state 881
+ '}' shift, and go to state 882
-état 752
+ $default reduce using rule 240 (method_modifiers)
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg . ')' $@20 foreach_statement
+ class_statement go to state 883
+ trait_use_statement go to state 884
+ variable_modifiers go to state 885
+ method_modifiers go to state 886
+ non_empty_member_modifiers go to state 887
+ member_modifier go to state 888
+ class_constant_declaration go to state 889
- ')' décalage et aller à l'état 823
+state 817
-état 753
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list . ')' '{' inner_statement_list '}'
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg . ')' $@18 foreach_statement
+ ')' shift, and go to state 890
- ')' décalage et aller à l'état 824
+state 818
-état 754
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' . lexical_vars '{' inner_statement_list '}'
- 137 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar
+ "use (T_USE)" shift, and go to state 891
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $default reduce using rule 371 (lexical_vars)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 825
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ lexical_vars go to state 892
-état 755
+state 819
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 135 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';'
+ 180 non_empty_parameter_list: non_empty_parameter_list ',' . parameter
- "enddeclare (T_ENDDECLARE)" décalage et aller à l'état 826
+ "identifier (T_STRING)" shift, and go to state 123
+ "array (T_ARRAY)" shift, and go to state 708
+ "callable (T_CALLABLE)" shift, and go to state 709
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 183 (optional_class_type)
- $@4 aller à l'état 390
+ namespace_name go to state 576
+ parameter go to state 893
+ optional_class_type go to state 713
+ fully_qualified_class_name go to state 714
-état 756
+state 820
- 141 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" . ';'
+ 181 parameter: optional_class_type is_reference . is_variadic "variable (T_VARIABLE)"
+ 182 | optional_class_type is_reference . is_variadic "variable (T_VARIABLE)" '=' static_scalar
- ';' décalage et aller à l'état 827
+ "... (T_ELLIPSIS)" shift, and go to state 894
+ $default reduce using rule 119 (is_variadic)
-état 757
+ is_variadic go to state 895
- 140 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' .
- $défaut réduction par utilisation de la règle 140 (switch_case_list)
+state 821
+ 337 expr_without_variable: expr '?' $@52 expr ':' $@53 . expr
-état 758
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- 144 case_list: case_list "case (T_CASE)" expr . case_separator $@35 inner_statement_list
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 896
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 822
+
+ 281 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 . ctor_arguments
+
+ '(' shift, and go to state 405
+
+ $default reduce using rule 415 (ctor_arguments)
+
+ function_call_parameter_list go to state 482
+ ctor_arguments go to state 897
+
+
+state 823
+
+ 505 array_method_dereference: array_method_dereference . '[' dim_offset ']'
+ 510 method_or_not: array_method_dereference .
+
+ '[' shift, and go to state 898
+
+ $default reduce using rule 510 (method_or_not)
+
+
+state 824
+
+ 506 array_method_dereference: method . '[' dim_offset ']'
+ 509 method_or_not: method .
+
+ '[' shift, and go to state 899
+
+ $default reduce using rule 509 (method_or_not)
+
+
+state 825
+
+ 508 method: @71 . function_call_parameter_list
+
+ '(' shift, and go to state 405
+
+ function_call_parameter_list go to state 900
+
+
+state 826
+
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not . variable_properties
- "or (T_LOGICAL_OR)" décalage et aller à l'état 252
- "xor (T_LOGICAL_XOR)" décalage et aller à l'état 253
- "and (T_LOGICAL_AND)" décalage et aller à l'état 254
- '?' décalage et aller à l'état 255
- ':' décalage et aller à l'état 759
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
- ';' décalage et aller à l'état 760
+ $default reduce using rule 502 (variable_properties)
- case_separator aller à l'état 828
+ variable_properties go to state 901
-état 759
+state 827
- 147 case_separator: ':' .
+ 536 object_dim_list: object_dim_list '[' dim_offset . ']'
- $défaut réduction par utilisation de la règle 147 (case_separator)
+ ']' shift, and go to state 902
-état 760
+state 828
- 148 case_separator: ';' .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ 537 object_dim_list: object_dim_list '{' expr . '}'
- $défaut réduction par utilisation de la règle 148 (case_separator)
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ '}' shift, and go to state 903
-état 761
+state 829
+
+ 555 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+
+ $default reduce using rule 555 (non_empty_array_pair_list)
+
+
+state 830
+
+ 404 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties .
+ 406 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
+
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 904
+
+ $default reduce using rule 404 (dynamic_class_name_reference)
+
+ dynamic_class_name_variable_property go to state 905
+
+
+state 831
+
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';'
+ 172 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list
+
+ "elseif (T_ELSEIF)" shift, and go to state 906
+ "else (T_ELSE)" shift, and go to state 907
+
+ $default reduce using rule 175 (new_else_single)
+
+ new_else_single go to state 908
+
+
+state 832
+
+ 169 elseif_list: elseif_list "elseif (T_ELSEIF)" . parenthesis_expr $@37 statement
+
+ '(' shift, and go to state 175
+
+ parenthesis_expr go to state 909
+
+
+state 833
+
+ 174 else_single: "else (T_ELSE)" . statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 910
+ unticked_statement go to state 88
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 834
+
+ 52 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single .
+
+ $default reduce using rule 52 (unticked_statement)
+
+
+state 835
+
+ 61 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';' .
+
+ $default reduce using rule 61 (unticked_statement)
+
+
+state 836
+
+ 166 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';'
+
+ ';' shift, and go to state 911
+
+
+state 837
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' . $@14 for_expr ')' $@15 for_statement
+
+ $default reduce using rule 63 ($@14)
+
+ $@14 go to state 912
+
+
+state 838
+
+ 143 foreach_variable: '&' variable .
- 146 case_list: case_list "default (T_DEFAULT)" case_separator . $@36 inner_statement_list
+ $default reduce using rule 143 (foreach_variable)
- $défaut réduction par utilisation de la règle 145 ($@36)
- $@36 aller à l'état 829
+state 839
+ 145 foreach_variable: "list (T_LIST)" '(' . $@34 assignment_list ')'
-état 762
+ $default reduce using rule 144 ($@34)
- 139 switch_case_list: '{' ';' case_list '}' .
+ $@34 go to state 913
- $défaut réduction par utilisation de la règle 139 (switch_case_list)
+state 840
-état 763
+ 141 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable
- 443 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
+ '&' shift, and go to state 737
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 738
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
- $défaut réduction par utilisation de la règle 443 (non_empty_static_array_pair_list)
+ namespace_name go to state 151
+ foreach_variable go to state 914
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 740
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
-état 764
+state 841
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
- 442 | non_empty_static_array_pair_list ',' static_scalar .
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg . ')' $@20 foreach_statement
- "=> (T_DOUBLE_ARROW)" décalage et aller à l'état 830
+ ')' shift, and go to state 915
- $défaut réduction par utilisation de la règle 442 (non_empty_static_array_pair_list)
+state 842
-état 765
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg . ')' $@18 foreach_statement
- 422 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' .
+ ')' shift, and go to state 916
- $défaut réduction par utilisation de la règle 422 (static_scalar)
+state 843
-état 766
+ 153 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar
- 87 catch_statement: "catch (T_CATCH)" '(' . $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 83 ($@24)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 917
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
- $@24 aller à l'état 831
+state 844
-état 767
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 151 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';'
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 . finally_statement
+ "enddeclare (T_ENDDECLARE)" shift, and go to state 918
- "finally (T_FINALLY)" décalage et aller à l'état 832
+ $default reduce using rule 40 ($@4)
- $défaut réduction par utilisation de la règle 88 (finally_statement)
+ $@4 go to state 400
- finally_statement aller à l'état 833
+state 845
-état 768
+ 157 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" . ';'
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' . lexical_vars '{' inner_statement_list '}'
+ ';' shift, and go to state 919
- "use (T_USE)" décalage et aller à l'état 799
- $défaut réduction par utilisation de la règle 357 (lexical_vars)
+state 846
- lexical_vars aller à l'état 834
+ 156 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' .
+ $default reduce using rule 156 (switch_case_list)
-état 769
- 498 assignment_list: assignment_list . ',' assignment_list_element
- 502 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list . ')'
+state 847
- ',' décalage et aller à l'état 623
- ')' décalage et aller à l'état 835
+ 160 case_list: case_list "case (T_CASE)" expr . case_separator $@35 inner_statement_list
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ ':' shift, and go to state 848
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ ';' shift, and go to state 849
-état 770
+ case_separator go to state 920
- 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' expr .
- 285 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 325 | expr . '?' ':' $@54 expr
- '?' décalage et aller à l'état 255
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
+state 848
- $défaut réduction par utilisation de la règle 263 (expr_without_variable)
+ 163 case_separator: ':' .
+ $default reduce using rule 163 (case_separator)
-état 771
-
- 523 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' .
-
- $défaut réduction par utilisation de la règle 523 (encaps_var)
-
-
-état 772
-
- 252 chaining_dereference: '[' dim_offset . ']'
-
- ']' décalage et aller à l'état 836
-
-
-état 773
-
- 459 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . $@70 method_or_not
-
- $défaut réduction par utilisation de la règle 458 ($@70)
-
- $@70 aller à l'état 837
-
-
-état 774
-
- 249 chaining_method_or_property: chaining_method_or_property variable_property .
-
- $défaut réduction par utilisation de la règle 249 (chaining_method_or_property)
-
-
-état 775
-
- 251 chaining_dereference: chaining_dereference '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 838
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
+state 849
+ 164 case_separator: ';' .
-état 776
+ $default reduce using rule 164 (case_separator)
- 254 chaining_instance_call: chaining_dereference $@42 . chaining_method_or_property
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 713
+state 850
- chaining_method_or_property aller à l'état 839
- variable_property aller à l'état 717
+ 162 case_list: case_list "default (T_DEFAULT)" case_separator . $@36 inner_statement_list
+ $default reduce using rule 161 ($@36)
-état 777
+ $@36 go to state 921
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
- $défaut réduction par utilisation de la règle 32 (inner_statement)
+state 851
+ 155 switch_case_list: '{' ';' case_list '}' .
+
+ $default reduce using rule 155 (switch_case_list)
+
+
+state 852
+
+ 488 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
+
+ $default reduce using rule 488 (non_empty_static_array_pair_list)
+
+
+state 853
+
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
+ 487 | non_empty_static_array_pair_list ',' static_scalar .
+
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 922
+
+ $default reduce using rule 487 (non_empty_static_array_pair_list)
+
+
+state 854
+
+ 431 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' .
+
+ $default reduce using rule 431 (static_scalar)
+
+
+state 855
-état 778
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 467 | static_scalar_value '?' ':' static_scalar_value .
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
- 183 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
- $défaut réduction par utilisation de la règle 183 (non_empty_function_call_parameter_list)
+ $default reduce using rule 467 (static_operation)
-état 779
+state 856
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list . '}'
- 193 class_statement_list: class_statement_list . class_statement
+ 468 static_operation: static_scalar_value '?' static_scalar_value ':' . static_scalar_value
- "const (T_CONST)" décalage et aller à l'état 781
- "use (T_USE)" décalage et aller à l'état 782
- "public (T_PUBLIC)" décalage et aller à l'état 783
- "protected (T_PROTECTED)" décalage et aller à l'état 784
- "private (T_PRIVATE)" décalage et aller à l'état 785
- "final (T_FINAL)" décalage et aller à l'état 786
- "abstract (T_ABSTRACT)" décalage et aller à l'état 787
- "static (T_STATIC)" décalage et aller à l'état 788
- "var (T_VAR)" décalage et aller à l'état 789
- '}' décalage et aller à l'état 840
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar_value go to state 923
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
+
+
+state 857
+
+ 101 catch_statement: "catch (T_CATCH)" '(' . $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+
+ $default reduce using rule 97 ($@24)
+
+ $@24 go to state 924
+
+
+state 858
+
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 . finally_statement
+
+ "finally (T_FINALLY)" shift, and go to state 925
+
+ $default reduce using rule 102 (finally_statement)
+
+ finally_statement go to state 926
+
+
+state 859
+
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' . lexical_vars '{' inner_statement_list '}'
+
+ "use (T_USE)" shift, and go to state 891
- $défaut réduction par utilisation de la règle 226 (method_modifiers)
+ $default reduce using rule 371 (lexical_vars)
- class_statement aller à l'état 791
- trait_use_statement aller à l'état 792
- variable_modifiers aller à l'état 793
- method_modifiers aller à l'état 794
- non_empty_member_modifiers aller à l'état 795
- member_modifier aller à l'état 796
- class_constant_declaration aller à l'état 797
+ lexical_vars go to state 927
-état 780
+state 860
- 123 interface_list: interface_list ',' fully_qualified_class_name .
+ 543 assignment_list: assignment_list . ',' assignment_list_element
+ 547 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list . ')'
- $défaut réduction par utilisation de la règle 123 (interface_list)
+ ',' shift, and go to state 681
+ ')' shift, and go to state 928
-état 781
+state 861
- 241 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
+ 277 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' expr .
+ 299 | expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
+
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 277 (expr_without_variable)
+
+
+state 862
+
+ 568 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' .
+
+ $default reduce using rule 568 (encaps_var)
+
+
+state 863
+
+ 266 chaining_dereference: '[' dim_offset . ']'
+
+ ']' shift, and go to state 929
+
+
+state 864
+
+ 504 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . $@70 method_or_not
+
+ $default reduce using rule 503 ($@70)
+
+ $@70 go to state 930
+
+
+state 865
+
+ 263 chaining_method_or_property: chaining_method_or_property variable_property .
+
+ $default reduce using rule 263 (chaining_method_or_property)
+
+
+state 866
+
+ 265 chaining_dereference: chaining_dereference '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 931
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 867
+
+ 268 chaining_instance_call: chaining_dereference $@42 . chaining_method_or_property
+
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 802
+
+ chaining_method_or_property go to state 932
+ variable_property go to state 806
+
+
+state 868
+
+ 46 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
+
+ $default reduce using rule 46 (inner_statement)
+
+
+state 869
+
+ 196 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
+
+ $default reduce using rule 196 (non_empty_function_call_parameter_list)
+
+
+state 870
+
+ 197 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' "... (T_ELLIPSIS)" expr .
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 339 | expr . '?' ':' $@54 expr
- "identifier (T_STRING)" décalage et aller à l'état 841
+ "or (T_LOGICAL_OR)" shift, and go to state 254
+ "xor (T_LOGICAL_XOR)" shift, and go to state 255
+ "and (T_LOGICAL_AND)" shift, and go to state 256
+ '?' shift, and go to state 257
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+ $default reduce using rule 197 (non_empty_function_call_parameter_list)
-état 782
- 201 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations
+state 871
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list . '}'
+ 207 class_statement_list: class_statement_list . class_statement
- namespace_name aller à l'état 552
- trait_list aller à l'état 842
- fully_qualified_class_name aller à l'état 843
+ "const (T_CONST)" shift, and go to state 873
+ "use (T_USE)" shift, and go to state 874
+ "public (T_PUBLIC)" shift, and go to state 875
+ "protected (T_PROTECTED)" shift, and go to state 876
+ "private (T_PRIVATE)" shift, and go to state 877
+ "final (T_FINAL)" shift, and go to state 878
+ "abstract (T_ABSTRACT)" shift, and go to state 879
+ "static (T_STATIC)" shift, and go to state 880
+ "var (T_VAR)" shift, and go to state 881
+ '}' shift, and go to state 933
+ $default reduce using rule 240 (method_modifiers)
-état 783
+ class_statement go to state 883
+ trait_use_statement go to state 884
+ variable_modifiers go to state 885
+ method_modifiers go to state 886
+ non_empty_member_modifiers go to state 887
+ member_modifier go to state 888
+ class_constant_declaration go to state 889
- 230 member_modifier: "public (T_PUBLIC)" .
- $défaut réduction par utilisation de la règle 230 (member_modifier)
+state 872
+ 139 interface_list: interface_list ',' fully_qualified_class_name .
-état 784
+ $default reduce using rule 139 (interface_list)
- 231 member_modifier: "protected (T_PROTECTED)" .
- $défaut réduction par utilisation de la règle 231 (member_modifier)
+state 873
+ 255 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
-état 785
+ "identifier (T_STRING)" shift, and go to state 934
- 232 member_modifier: "private (T_PRIVATE)" .
- $défaut réduction par utilisation de la règle 232 (member_modifier)
+state 874
+ 215 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations
-état 786
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- 235 member_modifier: "final (T_FINAL)" .
+ namespace_name go to state 576
+ trait_list go to state 935
+ fully_qualified_class_name go to state 936
- $défaut réduction par utilisation de la règle 235 (member_modifier)
+state 875
-état 787
+ 244 member_modifier: "public (T_PUBLIC)" .
- 234 member_modifier: "abstract (T_ABSTRACT)" .
+ $default reduce using rule 244 (member_modifier)
- $défaut réduction par utilisation de la règle 234 (member_modifier)
+state 876
-état 788
+ 245 member_modifier: "protected (T_PROTECTED)" .
- 233 member_modifier: "static (T_STATIC)" .
+ $default reduce using rule 245 (member_modifier)
- $défaut réduction par utilisation de la règle 233 (member_modifier)
+state 877
-état 789
+ 246 member_modifier: "private (T_PRIVATE)" .
- 225 variable_modifiers: "var (T_VAR)" .
+ $default reduce using rule 246 (member_modifier)
- $défaut réduction par utilisation de la règle 225 (variable_modifiers)
+state 878
-état 790
+ 249 member_modifier: "final (T_FINAL)" .
- 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}' .
+ $default reduce using rule 249 (member_modifier)
- $défaut réduction par utilisation de la règle 110 (unticked_class_declaration_statement)
+state 879
-état 791
+ 248 member_modifier: "abstract (T_ABSTRACT)" .
- 193 class_statement_list: class_statement_list class_statement .
+ $default reduce using rule 248 (member_modifier)
- $défaut réduction par utilisation de la règle 193 (class_statement_list)
+state 880
-état 792
+ 247 member_modifier: "static (T_STATIC)" .
- 198 class_statement: trait_use_statement .
+ $default reduce using rule 247 (member_modifier)
- $défaut réduction par utilisation de la règle 198 (class_statement)
+state 881
-état 793
+ 239 variable_modifiers: "var (T_VAR)" .
- 196 class_statement: variable_modifiers . $@39 class_variable_declaration ';'
+ $default reduce using rule 239 (variable_modifiers)
- $défaut réduction par utilisation de la règle 195 ($@39)
- $@39 aller à l'état 844
+state 882
+ 126 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}' .
-état 794
+ $default reduce using rule 126 (unticked_class_declaration_statement)
- 200 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- "function (T_FUNCTION)" décalage et aller à l'état 48
+state 883
- function aller à l'état 845
+ 207 class_statement_list: class_statement_list class_statement .
+ $default reduce using rule 207 (class_statement_list)
-état 795
- 224 variable_modifiers: non_empty_member_modifiers .
- 227 method_modifiers: non_empty_member_modifiers .
- 229 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier
+state 884
- "public (T_PUBLIC)" décalage et aller à l'état 783
- "protected (T_PROTECTED)" décalage et aller à l'état 784
- "private (T_PRIVATE)" décalage et aller à l'état 785
- "final (T_FINAL)" décalage et aller à l'état 786
- "abstract (T_ABSTRACT)" décalage et aller à l'état 787
- "static (T_STATIC)" décalage et aller à l'état 788
+ 212 class_statement: trait_use_statement .
- "function (T_FUNCTION)" réduction par utilisation de la règle 227 (method_modifiers)
- $défaut réduction par utilisation de la règle 224 (variable_modifiers)
+ $default reduce using rule 212 (class_statement)
- member_modifier aller à l'état 846
+state 885
-état 796
+ 210 class_statement: variable_modifiers . $@39 class_variable_declaration ';'
- 228 non_empty_member_modifiers: member_modifier .
+ $default reduce using rule 209 ($@39)
- $défaut réduction par utilisation de la règle 228 (non_empty_member_modifiers)
+ $@39 go to state 937
-état 797
+state 886
- 197 class_statement: class_constant_declaration . ';'
- 240 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
+ 214 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- ',' décalage et aller à l'état 847
- ';' décalage et aller à l'état 848
+ "function (T_FUNCTION)" shift, and go to state 48
+ function go to state 938
-état 798
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' . '{' inner_statement_list '}'
+state 887
- '{' décalage et aller à l'état 849
+ 238 variable_modifiers: non_empty_member_modifiers .
+ 241 method_modifiers: non_empty_member_modifiers .
+ 243 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier
+ "public (T_PUBLIC)" shift, and go to state 875
+ "protected (T_PROTECTED)" shift, and go to state 876
+ "private (T_PRIVATE)" shift, and go to state 877
+ "final (T_FINAL)" shift, and go to state 878
+ "abstract (T_ABSTRACT)" shift, and go to state 879
+ "static (T_STATIC)" shift, and go to state 880
-état 799
+ "function (T_FUNCTION)" reduce using rule 241 (method_modifiers)
+ $default reduce using rule 238 (variable_modifiers)
- 358 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')'
+ member_modifier go to state 939
- '(' décalage et aller à l'état 850
+state 888
-état 800
+ 242 non_empty_member_modifiers: member_modifier .
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars . '{' inner_statement_list '}'
+ $default reduce using rule 242 (non_empty_member_modifiers)
- '{' décalage et aller à l'état 851
+state 889
-état 801
+ 211 class_statement: class_constant_declaration . ';'
+ 254 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
- 167 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)"
- 168 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)"
- 169 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar
- 170 | non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)" '=' static_scalar
+ ',' shift, and go to state 940
+ ';' shift, and go to state 941
- '&' décalage et aller à l'état 852
- "variable (T_VARIABLE)" décalage et aller à l'état 853
+state 890
-état 802
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' . '{' inner_statement_list '}'
- 164 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" .
- 165 | optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
+ '{' shift, and go to state 942
- '=' décalage et aller à l'état 854
- $défaut réduction par utilisation de la règle 164 (non_empty_parameter_list)
+state 891
+ 372 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')'
-état 803
+ '(' shift, and go to state 943
- 166 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+state 892
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 855
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
-
-
-état 804
-
- 285 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
- 287 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
- 289 | expr . "or (T_LOGICAL_OR)" $@49 expr
- 291 | expr . "and (T_LOGICAL_AND)" $@50 expr
- 292 | expr . "xor (T_LOGICAL_XOR)" expr
- 293 | expr . '|' expr
- 294 | expr . '&' expr
- 295 | expr . '^' expr
- 296 | expr . '.' expr
- 297 | expr . '+' expr
- 298 | expr . '-' expr
- 299 | expr . '*' expr
- 300 | expr . '/' expr
- 301 | expr . '%' expr
- 302 | expr . "<< (T_SL)" expr
- 303 | expr . ">> (T_SR)" expr
- 308 | expr . "=== (T_IS_IDENTICAL)" expr
- 309 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 310 | expr . "== (T_IS_EQUAL)" expr
- 311 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 312 | expr . '<' expr
- 313 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 314 | expr . '>' expr
- 315 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 316 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 323 | expr . '?' $@52 expr ':' $@53 expr
- 323 | expr '?' $@52 expr ':' $@53 expr .
- 325 | expr . '?' ':' $@54 expr
-
- "|| (T_BOOLEAN_OR)" décalage et aller à l'état 256
- "&& (T_BOOLEAN_AND)" décalage et aller à l'état 257
- '|' décalage et aller à l'état 258
- '^' décalage et aller à l'état 259
- '&' décalage et aller à l'état 260
- "!== (T_IS_NOT_IDENTICAL)" décalage et aller à l'état 261
- "=== (T_IS_IDENTICAL)" décalage et aller à l'état 262
- "!= (T_IS_NOT_EQUAL)" décalage et aller à l'état 263
- "== (T_IS_EQUAL)" décalage et aller à l'état 264
- '<' décalage et aller à l'état 265
- '>' décalage et aller à l'état 266
- ">= (T_IS_GREATER_OR_EQUAL)" décalage et aller à l'état 267
- "<= (T_IS_SMALLER_OR_EQUAL)" décalage et aller à l'état 268
- ">> (T_SR)" décalage et aller à l'état 269
- "<< (T_SL)" décalage et aller à l'état 270
- '+' décalage et aller à l'état 271
- '-' décalage et aller à l'état 272
- '.' décalage et aller à l'état 273
- '*' décalage et aller à l'état 274
- '/' décalage et aller à l'état 275
- '%' décalage et aller à l'état 276
- "instanceof (T_INSTANCEOF)" décalage et aller à l'état 277
-
- $défaut réduction par utilisation de la règle 323 (expr_without_variable)
-
-
-état 805
-
- 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments .
-
- $défaut réduction par utilisation de la règle 267 (expr_without_variable)
-
-
-état 806
-
- 460 array_method_dereference: array_method_dereference '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 856
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 807
-
- 461 array_method_dereference: method '[' . dim_offset ']'
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- $défaut réduction par utilisation de la règle 486 (dim_offset)
-
- namespace_name aller à l'état 84
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 325
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- dim_offset aller à l'état 857
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars . '{' inner_statement_list '}'
+ '{' shift, and go to state 944
-état 808
- 463 method: @71 function_call_parameter_list .
+state 893
- $défaut réduction par utilisation de la règle 463 (method)
+ 180 non_empty_parameter_list: non_empty_parameter_list ',' parameter .
+ $default reduce using rule 180 (non_empty_parameter_list)
-état 809
- 454 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties .
- 456 variable_properties: variable_properties . variable_property
+state 894
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 713
+ 120 is_variadic: "... (T_ELLIPSIS)" .
- $défaut réduction par utilisation de la règle 454 (variable)
+ $default reduce using rule 120 (is_variadic)
- variable_property aller à l'état 858
+state 895
-état 810
+ 181 parameter: optional_class_type is_reference is_variadic . "variable (T_VARIABLE)"
+ 182 | optional_class_type is_reference is_variadic . "variable (T_VARIABLE)" '=' static_scalar
- 491 object_dim_list: object_dim_list '[' dim_offset ']' .
+ "variable (T_VARIABLE)" shift, and go to state 945
- $défaut réduction par utilisation de la règle 491 (object_dim_list)
+state 896
-état 811
+ 299 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@47 expr
+ 301 | expr . "&& (T_BOOLEAN_AND)" $@48 expr
+ 303 | expr . "or (T_LOGICAL_OR)" $@49 expr
+ 305 | expr . "and (T_LOGICAL_AND)" $@50 expr
+ 306 | expr . "xor (T_LOGICAL_XOR)" expr
+ 307 | expr . '|' expr
+ 308 | expr . '&' expr
+ 309 | expr . '^' expr
+ 310 | expr . '.' expr
+ 311 | expr . '+' expr
+ 312 | expr . '-' expr
+ 313 | expr . '*' expr
+ 314 | expr . '/' expr
+ 315 | expr . '%' expr
+ 316 | expr . "<< (T_SL)" expr
+ 317 | expr . ">> (T_SR)" expr
+ 322 | expr . "=== (T_IS_IDENTICAL)" expr
+ 323 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
+ 324 | expr . "== (T_IS_EQUAL)" expr
+ 325 | expr . "!= (T_IS_NOT_EQUAL)" expr
+ 326 | expr . '<' expr
+ 327 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
+ 328 | expr . '>' expr
+ 329 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
+ 330 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
+ 337 | expr . '?' $@52 expr ':' $@53 expr
+ 337 | expr '?' $@52 expr ':' $@53 expr .
+ 339 | expr . '?' ':' $@54 expr
+
+ "|| (T_BOOLEAN_OR)" shift, and go to state 258
+ "&& (T_BOOLEAN_AND)" shift, and go to state 259
+ '|' shift, and go to state 260
+ '^' shift, and go to state 261
+ '&' shift, and go to state 262
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 263
+ "=== (T_IS_IDENTICAL)" shift, and go to state 264
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 265
+ "== (T_IS_EQUAL)" shift, and go to state 266
+ '<' shift, and go to state 267
+ '>' shift, and go to state 268
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 269
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 270
+ ">> (T_SR)" shift, and go to state 271
+ "<< (T_SL)" shift, and go to state 272
+ '+' shift, and go to state 273
+ '-' shift, and go to state 274
+ '.' shift, and go to state 275
+ '*' shift, and go to state 276
+ '/' shift, and go to state 277
+ '%' shift, and go to state 278
+ "instanceof (T_INSTANCEOF)" shift, and go to state 279
+
+ $default reduce using rule 337 (expr_without_variable)
+
+
+state 897
+
+ 281 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments .
+
+ $default reduce using rule 281 (expr_without_variable)
+
+
+state 898
+
+ 505 array_method_dereference: array_method_dereference '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 946
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 899
+
+ 506 array_method_dereference: method '[' . dim_offset ']'
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ $default reduce using rule 531 (dim_offset)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 327
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ dim_offset go to state 947
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
- 492 object_dim_list: object_dim_list '{' expr '}' .
- $défaut réduction par utilisation de la règle 492 (object_dim_list)
+state 900
+ 508 method: @71 function_call_parameter_list .
-état 812
+ $default reduce using rule 508 (method)
- 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property
- "identifier (T_STRING)" décalage et aller à l'état 465
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- '{' décalage et aller à l'état 408
- '$' décalage et aller à l'état 81
+state 901
- variable_without_objects aller à l'état 577
- reference_variable aller à l'état 410
- compound_variable aller à l'état 117
- object_property aller à l'état 859
- object_dim_list aller à l'état 579
- variable_name aller à l'état 580
- simple_indirect_reference aller à l'état 412
+ 499 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties .
+ 501 variable_properties: variable_properties . variable_property
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 802
-état 813
+ $default reduce using rule 499 (variable)
- 392 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
+ variable_property go to state 948
- $défaut réduction par utilisation de la règle 392 (dynamic_class_name_variable_properties)
+state 902
-état 814
+ 536 object_dim_list: object_dim_list '[' dim_offset ']' .
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . parenthesis_expr ':' $@38 inner_statement_list
+ $default reduce using rule 536 (object_dim_list)
- '(' décalage et aller à l'état 175
- parenthesis_expr aller à l'état 860
+state 903
+ 537 object_dim_list: object_dim_list '{' expr '}' .
-état 815
+ $default reduce using rule 537 (object_dim_list)
- 160 new_else_single: "else (T_ELSE)" . ':' inner_statement_list
- ':' décalage et aller à l'état 861
+state 904
+ 408 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property
-état 816
+ "identifier (T_STRING)" shift, and go to state 475
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 418
+ '$' shift, and go to state 81
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
+ variable_without_objects go to state 601
+ reference_variable go to state 420
+ compound_variable go to state 117
+ object_property go to state 949
+ object_dim_list go to state 603
+ variable_name go to state 604
+ simple_indirect_reference go to state 422
- "endif (T_ENDIF)" décalage et aller à l'état 862
+state 905
-état 817
+ 406 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
- 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr . $@37 statement
+ $default reduce using rule 406 (dynamic_class_name_variable_properties)
- $défaut réduction par utilisation de la règle 152 ($@37)
- $@37 aller à l'état 863
+state 906
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . parenthesis_expr ':' $@38 inner_statement_list
-état 818
+ '(' shift, and go to state 175
- 158 else_single: "else (T_ELSE)" statement .
+ parenthesis_expr go to state 950
- $défaut réduction par utilisation de la règle 158 (else_single)
+state 907
-état 819
+ 176 new_else_single: "else (T_ELSE)" . ':' inner_statement_list
- 150 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' .
+ ':' shift, and go to state 951
- $défaut réduction par utilisation de la règle 150 (while_statement)
+state 908
-état 820
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 . for_expr ')' $@15 for_statement
+ "endif (T_ENDIF)" shift, and go to state 952
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 122
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "static (T_STATIC)" décalage et aller à l'état 124
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
- $défaut réduction par utilisation de la règle 244 (for_expr)
+state 909
- namespace_name aller à l'état 84
- for_expr aller à l'état 864
- non_empty_for_expr aller à l'état 332
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 333
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
+ 169 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr . $@37 statement
+ $default reduce using rule 168 ($@37)
-état 821
+ $@37 go to state 953
- 129 foreach_variable: "list (T_LIST)" '(' $@34 . assignment_list ')'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- "static (T_STATIC)" décalage et aller à l'état 148
- "list (T_LIST)" décalage et aller à l'état 522
- "namespace (T_NAMESPACE)" décalage et aller à l'état 149
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 150
- '$' décalage et aller à l'état 81
+state 910
- $défaut réduction par utilisation de la règle 503 (assignment_list_element)
-
- namespace_name aller à l'état 151
- function_call aller à l'état 101
- class_name aller à l'état 152
- variable aller à l'état 523
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 155
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- assignment_list aller à l'état 865
- assignment_list_element aller à l'état 525
+ 174 else_single: "else (T_ELSE)" statement .
+ $default reduce using rule 174 (else_single)
-état 822
- 125 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable .
+state 911
- $défaut réduction par utilisation de la règle 125 (foreach_optional_arg)
+ 166 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' .
+ $default reduce using rule 166 (while_statement)
-état 823
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' . $@20 foreach_statement
+state 912
- $défaut réduction par utilisation de la règle 72 ($@20)
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 . for_expr ')' $@15 for_statement
- $@20 aller à l'état 866
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 122
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "function (T_FUNCTION)" shift, and go to state 48
+ "static (T_STATIC)" shift, and go to state 124
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+ $default reduce using rule 258 (for_expr)
-état 824
+ namespace_name go to state 84
+ for_expr go to state 954
+ non_empty_for_expr go to state 334
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 335
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' . $@18 foreach_statement
- $défaut réduction par utilisation de la règle 69 ($@18)
+state 913
- $@18 aller à l'état 867
+ 145 foreach_variable: "list (T_LIST)" '(' $@34 . assignment_list ')'
+ "identifier (T_STRING)" shift, and go to state 123
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 148
+ "list (T_LIST)" shift, and go to state 545
+ "namespace (T_NAMESPACE)" shift, and go to state 149
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 150
+ '$' shift, and go to state 81
-état 825
+ $default reduce using rule 548 (assignment_list_element)
+
+ namespace_name go to state 151
+ function_call go to state 101
+ class_name go to state 152
+ variable go to state 546
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 155
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ assignment_list go to state 955
+ assignment_list_element go to state 548
+
+
+state 914
- 137 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar .
+ 141 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable .
- $défaut réduction par utilisation de la règle 137 (declare_list)
+ $default reduce using rule 141 (foreach_optional_arg)
-état 826
+state 915
- 135 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';'
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' . $@20 foreach_statement
- ';' décalage et aller à l'état 868
+ $default reduce using rule 86 ($@20)
+ $@20 go to state 956
-état 827
- 141 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' .
+state 916
- $défaut réduction par utilisation de la règle 141 (switch_case_list)
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' . $@18 foreach_statement
+ $default reduce using rule 83 ($@18)
-état 828
+ $@18 go to state 957
- 144 case_list: case_list "case (T_CASE)" expr case_separator . $@35 inner_statement_list
- $défaut réduction par utilisation de la règle 143 ($@35)
+state 917
- $@35 aller à l'état 869
+ 153 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar .
+ $default reduce using rule 153 (declare_list)
-état 829
- 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 . inner_statement_list
+state 918
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ 151 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';'
- inner_statement_list aller à l'état 870
+ ';' shift, and go to state 958
-état 830
+state 919
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
+ 157 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' .
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $default reduce using rule 157 (switch_case_list)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 871
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+state 920
-état 831
+ 160 case_list: case_list "case (T_CASE)" expr case_separator . $@35 inner_statement_list
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 . fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ $default reduce using rule 159 ($@35)
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ $@35 go to state 959
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 872
+state 921
-état 832
+ 162 case_list: case_list "default (T_DEFAULT)" case_separator $@36 . inner_statement_list
- 90 finally_statement: "finally (T_FINALLY)" . $@28 '{' inner_statement_list '}'
+ $default reduce using rule 42 (inner_statement_list)
- $défaut réduction par utilisation de la règle 89 ($@28)
+ inner_statement_list go to state 960
- $@28 aller à l'état 873
+state 922
-état 833
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
- 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 79 (unticked_statement)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 961
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 834
+state 923
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars . '{' inner_statement_list '}'
+ 441 static_operation: static_scalar_value . '+' static_scalar_value
+ 442 | static_scalar_value . '-' static_scalar_value
+ 443 | static_scalar_value . '*' static_scalar_value
+ 444 | static_scalar_value . '/' static_scalar_value
+ 445 | static_scalar_value . '%' static_scalar_value
+ 448 | static_scalar_value . '|' static_scalar_value
+ 449 | static_scalar_value . '&' static_scalar_value
+ 450 | static_scalar_value . '^' static_scalar_value
+ 451 | static_scalar_value . "<< (T_SL)" static_scalar_value
+ 452 | static_scalar_value . ">> (T_SR)" static_scalar_value
+ 453 | static_scalar_value . '.' static_scalar_value
+ 454 | static_scalar_value . "xor (T_LOGICAL_XOR)" static_scalar_value
+ 455 | static_scalar_value . "and (T_LOGICAL_AND)" static_scalar_value
+ 456 | static_scalar_value . "or (T_LOGICAL_OR)" static_scalar_value
+ 457 | static_scalar_value . "&& (T_BOOLEAN_AND)" static_scalar_value
+ 458 | static_scalar_value . "|| (T_BOOLEAN_OR)" static_scalar_value
+ 459 | static_scalar_value . "=== (T_IS_IDENTICAL)" static_scalar_value
+ 460 | static_scalar_value . "!== (T_IS_NOT_IDENTICAL)" static_scalar_value
+ 461 | static_scalar_value . "== (T_IS_EQUAL)" static_scalar_value
+ 462 | static_scalar_value . "!= (T_IS_NOT_EQUAL)" static_scalar_value
+ 463 | static_scalar_value . '<' static_scalar_value
+ 464 | static_scalar_value . '>' static_scalar_value
+ 465 | static_scalar_value . "<= (T_IS_SMALLER_OR_EQUAL)" static_scalar_value
+ 466 | static_scalar_value . ">= (T_IS_GREATER_OR_EQUAL)" static_scalar_value
+ 467 | static_scalar_value . '?' ':' static_scalar_value
+ 468 | static_scalar_value . '?' static_scalar_value ':' static_scalar_value
+ 468 | static_scalar_value '?' static_scalar_value ':' static_scalar_value .
- '{' décalage et aller à l'état 874
+ "|| (T_BOOLEAN_OR)" shift, and go to state 645
+ "&& (T_BOOLEAN_AND)" shift, and go to state 646
+ '|' shift, and go to state 647
+ '^' shift, and go to state 648
+ '&' shift, and go to state 649
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 650
+ "=== (T_IS_IDENTICAL)" shift, and go to state 651
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 652
+ "== (T_IS_EQUAL)" shift, and go to state 653
+ '<' shift, and go to state 654
+ '>' shift, and go to state 655
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 656
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 657
+ ">> (T_SR)" shift, and go to state 658
+ "<< (T_SL)" shift, and go to state 659
+ '+' shift, and go to state 660
+ '-' shift, and go to state 661
+ '.' shift, and go to state 662
+ '*' shift, and go to state 663
+ '/' shift, and go to state 664
+ '%' shift, and go to state 665
+ $default reduce using rule 468 (static_operation)
-état 835
- 502 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')' .
+state 924
- $défaut réduction par utilisation de la règle 502 (assignment_list_element)
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 . fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
-état 836
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 962
- 252 chaining_dereference: '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 252 (chaining_dereference)
+state 925
+ 104 finally_statement: "finally (T_FINALLY)" . $@28 '{' inner_statement_list '}'
-état 837
+ $default reduce using rule 103 ($@28)
- 459 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 . method_or_not
+ $@28 go to state 963
- '(' réduction par utilisation de la règle 462 (@71)
- $défaut réduction par utilisation de la règle 466 (method_or_not)
- array_method_dereference aller à l'état 734
- method aller à l'état 735
- @71 aller à l'état 736
- method_or_not aller à l'état 875
+state 926
+ 93 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement .
-état 838
+ $default reduce using rule 93 (unticked_statement)
- 251 chaining_dereference: chaining_dereference '[' dim_offset . ']'
- ']' décalage et aller à l'état 876
+state 927
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars . '{' inner_statement_list '}'
-état 839
+ '{' shift, and go to state 964
- 249 chaining_method_or_property: chaining_method_or_property . variable_property
- 254 chaining_instance_call: chaining_dereference $@42 chaining_method_or_property .
- "-> (T_OBJECT_OPERATOR)" décalage et aller à l'état 713
+state 928
- $défaut réduction par utilisation de la règle 254 (chaining_instance_call)
+ 547 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')' .
- variable_property aller à l'état 774
+ $default reduce using rule 547 (assignment_list_element)
-état 840
+state 929
- 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}' .
+ 266 chaining_dereference: '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 108 (unticked_class_declaration_statement)
+ $default reduce using rule 266 (chaining_dereference)
-état 841
+state 930
- 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
+ 504 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 . method_or_not
- '=' décalage et aller à l'état 877
+ '(' reduce using rule 507 (@71)
+ $default reduce using rule 511 (method_or_not)
+ array_method_dereference go to state 823
+ method go to state 824
+ @71 go to state 825
+ method_or_not go to state 965
-état 842
- 201 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations
- 203 trait_list: trait_list . ',' fully_qualified_class_name
+state 931
- ',' décalage et aller à l'état 878
- ';' décalage et aller à l'état 879
- '{' décalage et aller à l'état 880
+ 265 chaining_dereference: chaining_dereference '[' dim_offset . ']'
- trait_adaptations aller à l'état 881
+ ']' shift, and go to state 966
-état 843
+state 932
- 202 trait_list: fully_qualified_class_name .
+ 263 chaining_method_or_property: chaining_method_or_property . variable_property
+ 268 chaining_instance_call: chaining_dereference $@42 chaining_method_or_property .
- $défaut réduction par utilisation de la règle 202 (trait_list)
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 802
+ $default reduce using rule 268 (chaining_instance_call)
-état 844
+ variable_property go to state 865
- 196 class_statement: variable_modifiers $@39 . class_variable_declaration ';'
- "variable (T_VARIABLE)" décalage et aller à l'état 882
+state 933
- class_variable_declaration aller à l'état 883
+ 124 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}' .
+ $default reduce using rule 124 (unticked_class_declaration_statement)
-état 845
- 200 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
+state 934
- '&' décalage et aller à l'état 248
+ 255 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
- $défaut réduction par utilisation de la règle 103 (is_reference)
+ '=' shift, and go to state 967
- is_reference aller à l'état 884
+state 935
-état 846
+ 215 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations
+ 217 trait_list: trait_list . ',' fully_qualified_class_name
- 229 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
+ ',' shift, and go to state 968
+ ';' shift, and go to state 969
+ '{' shift, and go to state 970
- $défaut réduction par utilisation de la règle 229 (non_empty_member_modifiers)
+ trait_adaptations go to state 971
-état 847
+state 936
- 240 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
+ 216 trait_list: fully_qualified_class_name .
- "identifier (T_STRING)" décalage et aller à l'état 885
+ $default reduce using rule 216 (trait_list)
-état 848
+state 937
- 197 class_statement: class_constant_declaration ';' .
+ 210 class_statement: variable_modifiers $@39 . class_variable_declaration ';'
- $défaut réduction par utilisation de la règle 197 (class_statement)
+ "variable (T_VARIABLE)" shift, and go to state 972
+ class_variable_declaration go to state 973
-état 849
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' . inner_statement_list '}'
+state 938
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ 214 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- inner_statement_list aller à l'état 886
+ '&' shift, and go to state 250
+ $default reduce using rule 117 (is_reference)
-état 850
+ is_reference go to state 974
- 358 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')'
- '&' décalage et aller à l'état 887
- "variable (T_VARIABLE)" décalage et aller à l'état 888
+state 939
- lexical_var_list aller à l'état 889
+ 243 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
+ $default reduce using rule 243 (non_empty_member_modifiers)
-état 851
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
+state 940
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ 254 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
- inner_statement_list aller à l'état 890
+ "identifier (T_STRING)" shift, and go to state 975
-état 852
+state 941
- 168 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)"
- 169 | non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
+ 211 class_statement: class_constant_declaration ';' .
- "variable (T_VARIABLE)" décalage et aller à l'état 891
+ $default reduce using rule 211 (class_statement)
-état 853
+state 942
- 167 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" .
- 170 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' . inner_statement_list '}'
- '=' décalage et aller à l'état 892
+ $default reduce using rule 42 (inner_statement_list)
- $défaut réduction par utilisation de la règle 167 (non_empty_parameter_list)
+ inner_statement_list go to state 976
-état 854
+state 943
- 165 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
+ 372 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')'
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ '&' shift, and go to state 977
+ "variable (T_VARIABLE)" shift, and go to state 978
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 893
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ lexical_var_list go to state 979
-état 855
+state 944
- 166 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
- $défaut réduction par utilisation de la règle 166 (non_empty_parameter_list)
+ $default reduce using rule 42 (inner_statement_list)
+ inner_statement_list go to state 980
-état 856
- 460 array_method_dereference: array_method_dereference '[' dim_offset . ']'
+state 945
- ']' décalage et aller à l'état 894
+ 181 parameter: optional_class_type is_reference is_variadic "variable (T_VARIABLE)" .
+ 182 | optional_class_type is_reference is_variadic "variable (T_VARIABLE)" . '=' static_scalar
+ '=' shift, and go to state 981
-état 857
+ $default reduce using rule 181 (parameter)
- 461 array_method_dereference: method '[' dim_offset . ']'
- ']' décalage et aller à l'état 895
+state 946
+ 505 array_method_dereference: array_method_dereference '[' dim_offset . ']'
-état 858
+ ']' shift, and go to state 982
- 456 variable_properties: variable_properties variable_property .
- $défaut réduction par utilisation de la règle 456 (variable_properties)
+state 947
+ 506 array_method_dereference: method '[' dim_offset . ']'
-état 859
+ ']' shift, and go to state 983
- 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property .
- $défaut réduction par utilisation de la règle 394 (dynamic_class_name_variable_property)
+state 948
+ 501 variable_properties: variable_properties variable_property .
-état 860
+ $default reduce using rule 501 (variable_properties)
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr . ':' $@38 inner_statement_list
- ':' décalage et aller à l'état 896
+state 949
+ 408 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property .
-état 861
+ $default reduce using rule 408 (dynamic_class_name_variable_property)
- 160 new_else_single: "else (T_ELSE)" ':' . inner_statement_list
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+state 950
- inner_statement_list aller à l'état 897
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr . ':' $@38 inner_statement_list
+ ':' shift, and go to state 984
-état 862
-
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';'
-
- ';' décalage et aller à l'état 898
-
-
-état 863
-
- 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 . statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 899
- unticked_statement aller à l'état 88
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 864
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr . ')' $@15 for_statement
-
- ')' décalage et aller à l'état 900
-
-
-état 865
-
- 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list . ')'
- 498 assignment_list: assignment_list . ',' assignment_list_element
-
- ',' décalage et aller à l'état 623
- ')' décalage et aller à l'état 901
-
-
-état 866
-
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 . foreach_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- ':' décalage et aller à l'état 902
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 903
- unticked_statement aller à l'état 88
- foreach_statement aller à l'état 904
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 867
-
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 . foreach_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- ':' décalage et aller à l'état 902
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
-
- namespace_name aller à l'état 84
- statement aller à l'état 903
- unticked_statement aller à l'état 88
- foreach_statement aller à l'état 905
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
-
-
-état 868
-
- 135 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' .
-
- $défaut réduction par utilisation de la règle 135 (declare_statement)
-
-
-état 869
-
- 144 case_list: case_list "case (T_CASE)" expr case_separator $@35 . inner_statement_list
-
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
- inner_statement_list aller à l'état 906
+state 951
+ 176 new_else_single: "else (T_ELSE)" ':' . inner_statement_list
-état 870
+ $default reduce using rule 42 (inner_statement_list)
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list .
+ inner_statement_list go to state 985
- "endswitch (T_ENDSWITCH)" réduction par utilisation de la règle 146 (case_list)
- "case (T_CASE)" réduction par utilisation de la règle 146 (case_list)
- "default (T_DEFAULT)" réduction par utilisation de la règle 146 (case_list)
- '}' réduction par utilisation de la règle 146 (case_list)
- $défaut réduction par utilisation de la règle 26 ($@4)
- $@4 aller à l'état 390
+state 952
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';'
-état 871
+ ';' shift, and go to state 986
- 441 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
- $défaut réduction par utilisation de la règle 441 (non_empty_static_array_pair_list)
+state 953
+ 169 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 . statement
-état 872
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" 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
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 987
+ unticked_statement go to state 88
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 954
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr . ')' $@15 for_statement
+
+ ')' shift, and go to state 988
+
+
+state 955
+
+ 145 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list . ')'
+ 543 assignment_list: assignment_list . ',' assignment_list_element
+
+ ',' shift, and go to state 681
+ ')' shift, and go to state 989
+
+
+state 956
+
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 . foreach_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ ':' shift, and go to state 990
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 991
+ unticked_statement go to state 88
+ foreach_statement go to state 992
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 957
+
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 . foreach_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ ':' shift, and go to state 990
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ statement go to state 991
+ unticked_statement go to state 88
+ foreach_statement go to state 993
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
+
+
+state 958
+
+ 151 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' .
+
+ $default reduce using rule 151 (declare_statement)
+
+
+state 959
+
+ 160 case_list: case_list "case (T_CASE)" expr case_separator $@35 . inner_statement_list
+
+ $default reduce using rule 42 (inner_statement_list)
+
+ inner_statement_list go to state 994
+
+
+state 960
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name . $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 162 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list .
- $défaut réduction par utilisation de la règle 84 ($@25)
+ "endswitch (T_ENDSWITCH)" reduce using rule 162 (case_list)
+ "case (T_CASE)" reduce using rule 162 (case_list)
+ "default (T_DEFAULT)" reduce using rule 162 (case_list)
+ '}' reduce using rule 162 (case_list)
+ $default reduce using rule 40 ($@4)
- $@25 aller à l'état 907
+ $@4 go to state 400
-état 873
+state 961
- 90 finally_statement: "finally (T_FINALLY)" $@28 . '{' inner_statement_list '}'
+ 486 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
- '{' décalage et aller à l'état 908
+ $default reduce using rule 486 (non_empty_static_array_pair_list)
-état 874
+state 962
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name . $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 98 ($@25)
- inner_statement_list aller à l'état 909
+ $@25 go to state 995
-état 875
+state 963
- 459 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not .
+ 104 finally_statement: "finally (T_FINALLY)" $@28 . '{' inner_statement_list '}'
- $défaut réduction par utilisation de la règle 459 (variable_property)
+ '{' shift, and go to state 996
-état 876
+state 964
- 251 chaining_dereference: chaining_dereference '[' dim_offset ']' .
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
- $défaut réduction par utilisation de la règle 251 (chaining_dereference)
+ $default reduce using rule 42 (inner_statement_list)
+ inner_statement_list go to state 997
-état 877
- 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
+state 965
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 504 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not .
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 910
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $default reduce using rule 504 (variable_property)
-état 878
+state 966
- 203 trait_list: trait_list ',' . fully_qualified_class_name
+ 265 chaining_dereference: chaining_dereference '[' dim_offset ']' .
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ $default reduce using rule 265 (chaining_dereference)
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 911
+state 967
-état 879
+ 255 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
- 204 trait_adaptations: ';' .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 204 (trait_adaptations)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 998
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 880
+state 968
- 205 trait_adaptations: '{' . trait_adaptation_list '}'
+ 217 trait_list: trait_list ',' . fully_qualified_class_name
- "identifier (T_STRING)" décalage et aller à l'état 912
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- $défaut réduction par utilisation de la règle 206 (trait_adaptation_list)
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 999
- namespace_name aller à l'état 552
- trait_adaptation_list aller à l'état 913
- non_empty_trait_adaptation_list aller à l'état 914
- trait_adaptation_statement aller à l'état 915
- trait_precedence aller à l'état 916
- trait_method_reference aller à l'état 917
- trait_method_reference_fully_qualified aller à l'état 918
- trait_alias aller à l'état 919
- fully_qualified_class_name aller à l'état 920
+state 969
-état 881
+ 218 trait_adaptations: ';' .
- 201 trait_use_statement: "use (T_USE)" trait_list trait_adaptations .
+ $default reduce using rule 218 (trait_adaptations)
- $défaut réduction par utilisation de la règle 201 (trait_use_statement)
+state 970
-état 882
+ 219 trait_adaptations: '{' . trait_adaptation_list '}'
- 238 class_variable_declaration: "variable (T_VARIABLE)" .
- 239 | "variable (T_VARIABLE)" . '=' static_scalar
+ "identifier (T_STRING)" shift, and go to state 1000
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- '=' décalage et aller à l'état 921
+ $default reduce using rule 220 (trait_adaptation_list)
- $défaut réduction par utilisation de la règle 238 (class_variable_declaration)
+ namespace_name go to state 576
+ trait_adaptation_list go to state 1001
+ non_empty_trait_adaptation_list go to state 1002
+ trait_adaptation_statement go to state 1003
+ trait_precedence go to state 1004
+ trait_method_reference go to state 1005
+ trait_method_reference_fully_qualified go to state 1006
+ trait_alias go to state 1007
+ fully_qualified_class_name go to state 1008
-état 883
+state 971
- 196 class_statement: variable_modifiers $@39 class_variable_declaration . ';'
- 236 class_variable_declaration: class_variable_declaration . ',' "variable (T_VARIABLE)"
- 237 | class_variable_declaration . ',' "variable (T_VARIABLE)" '=' static_scalar
+ 215 trait_use_statement: "use (T_USE)" trait_list trait_adaptations .
- ',' décalage et aller à l'état 922
- ';' décalage et aller à l'état 923
+ $default reduce using rule 215 (trait_use_statement)
-état 884
+state 972
- 200 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
+ 252 class_variable_declaration: "variable (T_VARIABLE)" .
+ 253 | "variable (T_VARIABLE)" . '=' static_scalar
- "identifier (T_STRING)" décalage et aller à l'état 924
+ '=' shift, and go to state 1009
+ $default reduce using rule 252 (class_variable_declaration)
-état 885
- 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
+state 973
- '=' décalage et aller à l'état 925
+ 210 class_statement: variable_modifiers $@39 class_variable_declaration . ';'
+ 250 class_variable_declaration: class_variable_declaration . ',' "variable (T_VARIABLE)"
+ 251 | class_variable_declaration . ',' "variable (T_VARIABLE)" '=' static_scalar
+ ',' shift, and go to state 1010
+ ';' shift, and go to state 1011
-état 886
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list . '}'
+state 974
- '}' décalage et aller à l'état 926
+ 214 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- $défaut réduction par utilisation de la règle 26 ($@4)
+ "identifier (T_STRING)" shift, and go to state 1012
- $@4 aller à l'état 390
+state 975
-état 887
+ 254 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
- 362 lexical_var_list: '&' . "variable (T_VARIABLE)"
+ '=' shift, and go to state 1013
- "variable (T_VARIABLE)" décalage et aller à l'état 927
+state 976
-état 888
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list . '}'
- 361 lexical_var_list: "variable (T_VARIABLE)" .
+ '}' shift, and go to state 1014
- $défaut réduction par utilisation de la règle 361 (lexical_var_list)
+ $default reduce using rule 40 ($@4)
+ $@4 go to state 400
-état 889
- 358 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')'
- 359 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)"
- 360 | lexical_var_list . ',' '&' "variable (T_VARIABLE)"
+state 977
- ',' décalage et aller à l'état 928
- ')' décalage et aller à l'état 929
+ 376 lexical_var_list: '&' . "variable (T_VARIABLE)"
+ "variable (T_VARIABLE)" shift, and go to state 1015
-état 890
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list . '}'
+state 978
- '}' décalage et aller à l'état 930
+ 375 lexical_var_list: "variable (T_VARIABLE)" .
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 375 (lexical_var_list)
- $@4 aller à l'état 390
+state 979
-état 891
+ 372 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')'
+ 373 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)"
+ 374 | lexical_var_list . ',' '&' "variable (T_VARIABLE)"
- 168 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" .
- 169 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
+ ',' shift, and go to state 1016
+ ')' shift, and go to state 1017
- '=' décalage et aller à l'état 931
- $défaut réduction par utilisation de la règle 168 (non_empty_parameter_list)
+state 980
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list . '}'
-état 892
+ '}' shift, and go to state 1018
- 170 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
+ $default reduce using rule 40 ($@4)
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $@4 go to state 400
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 932
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+state 981
-état 893
+ 182 parameter: optional_class_type is_reference is_variadic "variable (T_VARIABLE)" '=' . static_scalar
- 165 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- $défaut réduction par utilisation de la règle 165 (non_empty_parameter_list)
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 1019
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 894
+state 982
- 460 array_method_dereference: array_method_dereference '[' dim_offset ']' .
+ 505 array_method_dereference: array_method_dereference '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 460 (array_method_dereference)
+ $default reduce using rule 505 (array_method_dereference)
-état 895
+state 983
- 461 array_method_dereference: method '[' dim_offset ']' .
+ 506 array_method_dereference: method '[' dim_offset ']' .
- $défaut réduction par utilisation de la règle 461 (array_method_dereference)
+ $default reduce using rule 506 (array_method_dereference)
-état 896
+state 984
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' . $@38 inner_statement_list
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' . $@38 inner_statement_list
- $défaut réduction par utilisation de la règle 155 ($@38)
+ $default reduce using rule 171 ($@38)
- $@38 aller à l'état 933
+ $@38 go to state 1020
-état 897
+state 985
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 160 new_else_single: "else (T_ELSE)" ':' inner_statement_list .
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 176 new_else_single: "else (T_ELSE)" ':' inner_statement_list .
- "endif (T_ENDIF)" réduction par utilisation de la règle 160 (new_else_single)
- $défaut réduction par utilisation de la règle 26 ($@4)
+ "endif (T_ENDIF)" reduce using rule 176 (new_else_single)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 898
+state 986
- 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' .
+ 55 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' .
- $défaut réduction par utilisation de la règle 41 (unticked_statement)
+ $default reduce using rule 55 (unticked_statement)
-état 899
+state 987
- 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement .
+ 169 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement .
- $défaut réduction par utilisation de la règle 153 (elseif_list)
+ $default reduce using rule 169 (elseif_list)
-état 900
+state 988
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' . $@15 for_statement
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' . $@15 for_statement
- $défaut réduction par utilisation de la règle 50 ($@15)
+ $default reduce using rule 64 ($@15)
- $@15 aller à l'état 934
+ $@15 go to state 1021
-état 901
+state 989
- 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')' .
+ 145 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')' .
- $défaut réduction par utilisation de la règle 129 (foreach_variable)
+ $default reduce using rule 145 (foreach_variable)
-état 902
+state 990
- 133 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';'
+ 149 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 935
+ inner_statement_list go to state 1022
-état 903
+state 991
- 132 foreach_statement: statement .
+ 148 foreach_statement: statement .
- $défaut réduction par utilisation de la règle 132 (foreach_statement)
+ $default reduce using rule 148 (foreach_statement)
-état 904
+state 992
- 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement .
+ 87 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement .
- $défaut réduction par utilisation de la règle 73 (unticked_statement)
+ $default reduce using rule 87 (unticked_statement)
-état 905
+state 993
- 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement .
+ 84 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement .
- $défaut réduction par utilisation de la règle 70 (unticked_statement)
+ $default reduce using rule 84 (unticked_statement)
-état 906
+state 994
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 144 case_list: case_list "case (T_CASE)" expr case_separator $@35 inner_statement_list .
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 160 case_list: case_list "case (T_CASE)" expr case_separator $@35 inner_statement_list .
- "endswitch (T_ENDSWITCH)" réduction par utilisation de la règle 144 (case_list)
- "case (T_CASE)" réduction par utilisation de la règle 144 (case_list)
- "default (T_DEFAULT)" réduction par utilisation de la règle 144 (case_list)
- '}' réduction par utilisation de la règle 144 (case_list)
- $défaut réduction par utilisation de la règle 26 ($@4)
+ "endswitch (T_ENDSWITCH)" reduce using rule 160 (case_list)
+ "case (T_CASE)" reduce using rule 160 (case_list)
+ "default (T_DEFAULT)" reduce using rule 160 (case_list)
+ '}' reduce using rule 160 (case_list)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 907
+state 995
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 . "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 . "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- "variable (T_VARIABLE)" décalage et aller à l'état 936
+ "variable (T_VARIABLE)" shift, and go to state 1023
-état 908
+state 996
- 90 finally_statement: "finally (T_FINALLY)" $@28 '{' . inner_statement_list '}'
+ 104 finally_statement: "finally (T_FINALLY)" $@28 '{' . inner_statement_list '}'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 937
+ inner_statement_list go to state 1024
-état 909
+state 997
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list . '}'
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list . '}'
- '}' décalage et aller à l'état 938
+ '}' shift, and go to state 1025
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 910
+state 998
- 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
+ 255 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
- $défaut réduction par utilisation de la règle 241 (class_constant_declaration)
+ $default reduce using rule 255 (class_constant_declaration)
-état 911
+state 999
- 203 trait_list: trait_list ',' fully_qualified_class_name .
+ 217 trait_list: trait_list ',' fully_qualified_class_name .
- $défaut réduction par utilisation de la règle 203 (trait_list)
+ $default reduce using rule 217 (trait_list)
-état 912
+state 1000
5 namespace_name: "identifier (T_STRING)" .
- 215 trait_method_reference: "identifier (T_STRING)" .
-
- "as (T_AS)" réduction par utilisation de la règle 215 (trait_method_reference)
- $défaut réduction par utilisation de la règle 5 (namespace_name)
-
-
-état 913
-
- 205 trait_adaptations: '{' trait_adaptation_list . '}'
-
- '}' décalage et aller à l'état 939
+ 229 trait_method_reference: "identifier (T_STRING)" .
+ "as (T_AS)" reduce using rule 229 (trait_method_reference)
+ $default reduce using rule 5 (namespace_name)
-état 914
- 207 trait_adaptation_list: non_empty_trait_adaptation_list .
- 209 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement
+state 1001
- "identifier (T_STRING)" décalage et aller à l'état 912
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ 219 trait_adaptations: '{' trait_adaptation_list . '}'
- $défaut réduction par utilisation de la règle 207 (trait_adaptation_list)
+ '}' shift, and go to state 1026
- namespace_name aller à l'état 552
- trait_adaptation_statement aller à l'état 940
- trait_precedence aller à l'état 916
- trait_method_reference aller à l'état 917
- trait_method_reference_fully_qualified aller à l'état 918
- trait_alias aller à l'état 919
- fully_qualified_class_name aller à l'état 920
+state 1002
-état 915
+ 221 trait_adaptation_list: non_empty_trait_adaptation_list .
+ 223 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement
- 208 non_empty_trait_adaptation_list: trait_adaptation_statement .
+ "identifier (T_STRING)" shift, and go to state 1000
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- $défaut réduction par utilisation de la règle 208 (non_empty_trait_adaptation_list)
+ $default reduce using rule 221 (trait_adaptation_list)
+ namespace_name go to state 576
+ trait_adaptation_statement go to state 1027
+ trait_precedence go to state 1004
+ trait_method_reference go to state 1005
+ trait_method_reference_fully_qualified go to state 1006
+ trait_alias go to state 1007
+ fully_qualified_class_name go to state 1008
-état 916
- 210 trait_adaptation_statement: trait_precedence . ';'
+state 1003
- ';' décalage et aller à l'état 941
+ 222 non_empty_trait_adaptation_list: trait_adaptation_statement .
+ $default reduce using rule 222 (non_empty_trait_adaptation_list)
-état 917
- 218 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)"
- 219 | trait_method_reference . "as (T_AS)" member_modifier
+state 1004
- "as (T_AS)" décalage et aller à l'état 942
+ 224 trait_adaptation_statement: trait_precedence . ';'
+ ';' shift, and go to state 1028
-état 918
- 212 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list
- 216 trait_method_reference: trait_method_reference_fully_qualified .
+state 1005
- "insteadof (T_INSTEADOF)" décalage et aller à l'état 943
+ 232 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)"
+ 233 | trait_method_reference . "as (T_AS)" member_modifier
- $défaut réduction par utilisation de la règle 216 (trait_method_reference)
+ "as (T_AS)" shift, and go to state 1029
-état 919
+state 1006
- 211 trait_adaptation_statement: trait_alias . ';'
+ 226 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list
+ 230 trait_method_reference: trait_method_reference_fully_qualified .
- ';' décalage et aller à l'état 944
+ "insteadof (T_INSTEADOF)" shift, and go to state 1030
+ $default reduce using rule 230 (trait_method_reference)
-état 920
- 217 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+state 1007
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" décalage et aller à l'état 945
+ 225 trait_adaptation_statement: trait_alias . ';'
+ ';' shift, and go to state 1031
-état 921
- 239 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar
+state 1008
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ 231 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 946
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 1032
-état 922
+state 1009
- 236 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)"
- 237 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar
+ 253 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar
- "variable (T_VARIABLE)" décalage et aller à l'état 947
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 1033
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 923
- 196 class_statement: variable_modifiers $@39 class_variable_declaration ';' .
+state 1010
- $défaut réduction par utilisation de la règle 196 (class_statement)
+ 250 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)"
+ 251 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar
+ "variable (T_VARIABLE)" shift, and go to state 1034
-état 924
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . $@40 '(' parameter_list ')' method_body
+state 1011
- $défaut réduction par utilisation de la règle 199 ($@40)
+ 210 class_statement: variable_modifiers $@39 class_variable_declaration ';' .
- $@40 aller à l'état 948
+ $default reduce using rule 210 (class_statement)
-état 925
+state 1012
- 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . $@40 '(' parameter_list ')' method_body
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ $default reduce using rule 213 ($@40)
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 949
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ $@40 go to state 1035
-état 926
+state 1013
- 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}' .
+ 254 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
- $défaut réduction par utilisation de la règle 106 (unticked_function_declaration_statement)
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 1036
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 927
- 362 lexical_var_list: '&' "variable (T_VARIABLE)" .
+state 1014
- $défaut réduction par utilisation de la règle 362 (lexical_var_list)
+ 122 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}' .
+ $default reduce using rule 122 (unticked_function_declaration_statement)
-état 928
- 359 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)"
- 360 | lexical_var_list ',' . '&' "variable (T_VARIABLE)"
+state 1015
- '&' décalage et aller à l'état 950
- "variable (T_VARIABLE)" décalage et aller à l'état 951
+ 376 lexical_var_list: '&' "variable (T_VARIABLE)" .
+ $default reduce using rule 376 (lexical_var_list)
-état 929
- 358 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' .
+state 1016
- $défaut réduction par utilisation de la règle 358 (lexical_vars)
+ 373 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)"
+ 374 | lexical_var_list ',' . '&' "variable (T_VARIABLE)"
+ '&' shift, and go to state 1037
+ "variable (T_VARIABLE)" shift, and go to state 1038
-état 930
- 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
+state 1017
- $défaut réduction par utilisation de la règle 344 (expr_without_variable)
+ 372 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' .
+ $default reduce using rule 372 (lexical_vars)
-état 931
- 169 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
+state 1018
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
-
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 952
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
-
-
-état 932
-
- 170 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
-
- $défaut réduction par utilisation de la règle 170 (non_empty_parameter_list)
-
-
-état 933
-
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 . inner_statement_list
-
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
-
- inner_statement_list aller à l'état 953
-
-
-état 934
-
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 . for_statement
-
- "require_once (T_REQUIRE_ONCE)" décalage et aller à l'état 5
- "require (T_REQUIRE)" décalage et aller à l'état 6
- "eval (T_EVAL)" décalage et aller à l'état 7
- "include_once (T_INCLUDE_ONCE)" décalage et aller à l'état 8
- "include (T_INCLUDE)" décalage et aller à l'état 9
- "print (T_PRINT)" décalage et aller à l'état 10
- "yield (T_YIELD)" décalage et aller à l'état 11
- ':' décalage et aller à l'état 954
- '+' décalage et aller à l'état 12
- '-' décalage et aller à l'état 13
- '!' décalage et aller à l'état 14
- '~' décalage et aller à l'état 15
- '@' décalage et aller à l'état 16
- "(unset) (T_UNSET_CAST)" décalage et aller à l'état 17
- "(bool) (T_BOOL_CAST)" décalage et aller à l'état 18
- "(object) (T_OBJECT_CAST)" décalage et aller à l'état 19
- "(array) (T_ARRAY_CAST)" décalage et aller à l'état 20
- "(string) (T_STRING_CAST)" décalage et aller à l'état 21
- "(double) (T_DOUBLE_CAST)" décalage et aller à l'état 22
- "(int) (T_INT_CAST)" décalage et aller à l'état 23
- "-- (T_DEC)" décalage et aller à l'état 24
- "++ (T_INC)" décalage et aller à l'état 25
- '[' décalage et aller à l'état 26
- "clone (T_CLONE)" décalage et aller à l'état 27
- "new (T_NEW)" décalage et aller à l'état 28
- "exit (T_EXIT)" décalage et aller à l'état 29
- "if (T_IF)" décalage et aller à l'état 30
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 33
- "variable name (T_STRING_VARNAME)" décalage et aller à l'état 34
- "variable (T_VARIABLE)" décalage et aller à l'état 35
- T_INLINE_HTML décalage et aller à l'état 36
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 37
- "echo (T_ECHO)" décalage et aller à l'état 38
- "do (T_DO)" décalage et aller à l'état 39
- "while (T_WHILE)" décalage et aller à l'état 40
- "for (T_FOR)" décalage et aller à l'état 41
- "foreach (T_FOREACH)" décalage et aller à l'état 42
- "declare (T_DECLARE)" décalage et aller à l'état 43
- "switch (T_SWITCH)" décalage et aller à l'état 44
- "break (T_BREAK)" décalage et aller à l'état 45
- "continue (T_CONTINUE)" décalage et aller à l'état 46
- "goto (T_GOTO)" décalage et aller à l'état 47
- "function (T_FUNCTION)" décalage et aller à l'état 48
- "return (T_RETURN)" décalage et aller à l'état 50
- "try (T_TRY)" décalage et aller à l'état 51
- "throw (T_THROW)" décalage et aller à l'état 52
- "global (T_GLOBAL)" décalage et aller à l'état 54
- "static (T_STATIC)" décalage et aller à l'état 57
- "unset (T_UNSET)" décalage et aller à l'état 58
- "isset (T_ISSET)" décalage et aller à l'état 59
- "empty (T_EMPTY)" décalage et aller à l'état 60
- "list (T_LIST)" décalage et aller à l'état 65
- "array (T_ARRAY)" décalage et aller à l'état 66
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 67
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 73
- "namespace (T_NAMESPACE)" décalage et aller à l'état 125
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 77
- '(' décalage et aller à l'état 78
- ';' décalage et aller à l'état 79
- '{' décalage et aller à l'état 80
- '$' décalage et aller à l'état 81
- '`' décalage et aller à l'état 82
- '"' décalage et aller à l'état 83
+ 358 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
- namespace_name aller à l'état 84
- statement aller à l'état 955
- unticked_statement aller à l'état 88
- for_statement aller à l'état 956
- new_expr aller à l'état 95
- expr_without_variable aller à l'état 96
- yield_expr aller à l'état 97
- combined_scalar_offset aller à l'état 98
- combined_scalar aller à l'état 99
- function aller à l'état 126
- function_call aller à l'état 101
- class_name aller à l'état 102
- common_scalar aller à l'état 103
- scalar aller à l'état 104
- expr aller à l'état 105
- parenthesis_expr aller à l'état 106
- r_variable aller à l'état 107
- rw_variable aller à l'état 108
- variable aller à l'état 109
- variable_without_objects aller à l'état 110
- static_member aller à l'état 111
- variable_class_name aller à l'état 112
- array_function_dereference aller à l'état 113
- base_variable_with_function_calls aller à l'état 114
- base_variable aller à l'état 115
- reference_variable aller à l'état 116
- compound_variable aller à l'état 117
- simple_indirect_reference aller à l'état 118
- internal_functions_in_yacc aller à l'état 119
- class_constant aller à l'état 120
- class_name_scalar aller à l'état 121
+ $default reduce using rule 358 (expr_without_variable)
-état 935
+state 1019
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 133 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';'
+ 182 parameter: optional_class_type is_reference is_variadic "variable (T_VARIABLE)" '=' static_scalar .
+
+ $default reduce using rule 182 (parameter)
+
+
+state 1020
+
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 . inner_statement_list
+
+ $default reduce using rule 42 (inner_statement_list)
+
+ inner_statement_list go to state 1039
+
+
+state 1021
+
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 . for_statement
+
+ "require_once (T_REQUIRE_ONCE)" shift, and go to state 5
+ "require (T_REQUIRE)" shift, and go to state 6
+ "eval (T_EVAL)" shift, and go to state 7
+ "include_once (T_INCLUDE_ONCE)" shift, and go to state 8
+ "include (T_INCLUDE)" shift, and go to state 9
+ "print (T_PRINT)" shift, and go to state 10
+ "yield (T_YIELD)" shift, and go to state 11
+ ':' shift, and go to state 1040
+ '+' shift, and go to state 12
+ '-' shift, and go to state 13
+ '!' shift, and go to state 14
+ '~' shift, and go to state 15
+ '@' shift, and go to state 16
+ "(unset) (T_UNSET_CAST)" shift, and go to state 17
+ "(bool) (T_BOOL_CAST)" shift, and go to state 18
+ "(object) (T_OBJECT_CAST)" shift, and go to state 19
+ "(array) (T_ARRAY_CAST)" shift, and go to state 20
+ "(string) (T_STRING_CAST)" shift, and go to state 21
+ "(double) (T_DOUBLE_CAST)" shift, and go to state 22
+ "(int) (T_INT_CAST)" shift, and go to state 23
+ "-- (T_DEC)" shift, and go to state 24
+ "++ (T_INC)" shift, and go to state 25
+ '[' shift, and go to state 26
+ "clone (T_CLONE)" shift, and go to state 27
+ "new (T_NEW)" shift, and go to state 28
+ "exit (T_EXIT)" shift, and go to state 29
+ "if (T_IF)" shift, and go to state 30
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 33
+ "variable name (T_STRING_VARNAME)" shift, and go to state 34
+ "variable (T_VARIABLE)" shift, and go to state 35
+ T_INLINE_HTML shift, and go to state 36
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 37
+ "echo (T_ECHO)" shift, and go to state 38
+ "do (T_DO)" shift, and go to state 39
+ "while (T_WHILE)" shift, and go to state 40
+ "for (T_FOR)" shift, and go to state 41
+ "foreach (T_FOREACH)" shift, and go to state 42
+ "declare (T_DECLARE)" shift, and go to state 43
+ "switch (T_SWITCH)" shift, and go to state 44
+ "break (T_BREAK)" shift, and go to state 45
+ "continue (T_CONTINUE)" shift, and go to state 46
+ "goto (T_GOTO)" shift, and go to state 47
+ "function (T_FUNCTION)" shift, and go to state 48
+ "return (T_RETURN)" shift, and go to state 50
+ "try (T_TRY)" shift, and go to state 51
+ "throw (T_THROW)" shift, and go to state 52
+ "global (T_GLOBAL)" shift, and go to state 54
+ "static (T_STATIC)" shift, and go to state 57
+ "unset (T_UNSET)" shift, and go to state 58
+ "isset (T_ISSET)" shift, and go to state 59
+ "empty (T_EMPTY)" shift, and go to state 60
+ "list (T_LIST)" shift, and go to state 65
+ "array (T_ARRAY)" shift, and go to state 66
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 67
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 73
+ "namespace (T_NAMESPACE)" shift, and go to state 125
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 77
+ '(' shift, and go to state 78
+ ';' shift, and go to state 79
+ '{' shift, and go to state 80
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
- "endforeach (T_ENDFOREACH)" décalage et aller à l'état 957
+ namespace_name go to state 84
+ statement go to state 1041
+ unticked_statement go to state 88
+ for_statement go to state 1042
+ new_expr go to state 95
+ expr_without_variable go to state 96
+ yield_expr go to state 97
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 126
+ function_call go to state 101
+ class_name go to state 102
+ common_scalar go to state 103
+ scalar go to state 104
+ expr go to state 105
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 109
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 112
+ array_function_dereference go to state 113
+ base_variable_with_function_calls go to state 114
+ base_variable go to state 115
+ reference_variable go to state 116
+ compound_variable go to state 117
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
+ class_name_scalar go to state 121
- $défaut réduction par utilisation de la règle 26 ($@4)
- $@4 aller à l'état 390
+state 1022
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 149 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';'
-état 936
+ "endforeach (T_ENDFOREACH)" shift, and go to state 1043
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" . ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
+ $default reduce using rule 40 ($@4)
- ')' décalage et aller à l'état 958
+ $@4 go to state 400
-état 937
+state 1023
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list . '}'
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" . ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- '}' décalage et aller à l'état 959
+ ')' shift, and go to state 1044
- $défaut réduction par utilisation de la règle 26 ($@4)
- $@4 aller à l'état 390
+state 1024
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 104 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list . '}'
-état 938
+ '}' shift, and go to state 1045
- 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
+ $default reduce using rule 40 ($@4)
- $défaut réduction par utilisation de la règle 346 (expr_without_variable)
+ $@4 go to state 400
-état 939
+state 1025
- 205 trait_adaptations: '{' trait_adaptation_list '}' .
+ 360 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
- $défaut réduction par utilisation de la règle 205 (trait_adaptations)
+ $default reduce using rule 360 (expr_without_variable)
-état 940
+state 1026
- 209 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement .
+ 219 trait_adaptations: '{' trait_adaptation_list '}' .
- $défaut réduction par utilisation de la règle 209 (non_empty_trait_adaptation_list)
+ $default reduce using rule 219 (trait_adaptations)
-état 941
+state 1027
- 210 trait_adaptation_statement: trait_precedence ';' .
+ 223 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement .
- $défaut réduction par utilisation de la règle 210 (trait_adaptation_statement)
+ $default reduce using rule 223 (non_empty_trait_adaptation_list)
-état 942
+state 1028
- 218 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)"
- 219 | trait_method_reference "as (T_AS)" . member_modifier
+ 224 trait_adaptation_statement: trait_precedence ';' .
- "public (T_PUBLIC)" décalage et aller à l'état 783
- "protected (T_PROTECTED)" décalage et aller à l'état 784
- "private (T_PRIVATE)" décalage et aller à l'état 785
- "final (T_FINAL)" décalage et aller à l'état 786
- "abstract (T_ABSTRACT)" décalage et aller à l'état 787
- "static (T_STATIC)" décalage et aller à l'état 788
+ $default reduce using rule 224 (trait_adaptation_statement)
- $défaut réduction par utilisation de la règle 220 (trait_modifiers)
- trait_modifiers aller à l'état 960
- member_modifier aller à l'état 961
+state 1029
+ 232 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)"
+ 233 | trait_method_reference "as (T_AS)" . member_modifier
-état 943
+ "public (T_PUBLIC)" shift, and go to state 875
+ "protected (T_PROTECTED)" shift, and go to state 876
+ "private (T_PRIVATE)" shift, and go to state 877
+ "final (T_FINAL)" shift, and go to state 878
+ "abstract (T_ABSTRACT)" shift, and go to state 879
+ "static (T_STATIC)" shift, and go to state 880
- 212 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list
+ $default reduce using rule 234 (trait_modifiers)
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ trait_modifiers go to state 1046
+ member_modifier go to state 1047
- namespace_name aller à l'état 552
- trait_reference_list aller à l'état 962
- fully_qualified_class_name aller à l'état 963
+state 1030
-état 944
+ 226 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list
- 211 trait_adaptation_statement: trait_alias ';' .
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- $défaut réduction par utilisation de la règle 211 (trait_adaptation_statement)
+ namespace_name go to state 576
+ trait_reference_list go to state 1048
+ fully_qualified_class_name go to state 1049
-état 945
+state 1031
- 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+ 225 trait_adaptation_statement: trait_alias ';' .
- "identifier (T_STRING)" décalage et aller à l'état 964
+ $default reduce using rule 225 (trait_adaptation_statement)
-état 946
+state 1032
- 239 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar .
+ 231 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- $défaut réduction par utilisation de la règle 239 (class_variable_declaration)
+ "identifier (T_STRING)" shift, and go to state 1050
-état 947
+state 1033
- 236 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" .
- 237 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar
+ 253 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar .
- '=' décalage et aller à l'état 965
+ $default reduce using rule 253 (class_variable_declaration)
- $défaut réduction par utilisation de la règle 236 (class_variable_declaration)
+state 1034
-état 948
+ 250 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" .
+ 251 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 . '(' parameter_list ')' method_body
+ '=' shift, and go to state 1051
- '(' décalage et aller à l'état 966
+ $default reduce using rule 250 (class_variable_declaration)
-état 949
+state 1035
- 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 . '(' parameter_list ')' method_body
- $défaut réduction par utilisation de la règle 240 (class_constant_declaration)
+ '(' shift, and go to state 1052
-état 950
+state 1036
- 360 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)"
+ 254 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
- "variable (T_VARIABLE)" décalage et aller à l'état 967
+ $default reduce using rule 254 (class_constant_declaration)
-état 951
+state 1037
- 359 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" .
+ 374 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)"
- $défaut réduction par utilisation de la règle 359 (lexical_var_list)
+ "variable (T_VARIABLE)" shift, and go to state 1053
-état 952
+state 1038
- 169 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
+ 373 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" .
- $défaut réduction par utilisation de la règle 169 (non_empty_parameter_list)
+ $default reduce using rule 373 (lexical_var_list)
-état 953
+state 1039
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list .
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 172 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list .
- "elseif (T_ELSEIF)" réduction par utilisation de la règle 156 (new_elseif_list)
- "else (T_ELSE)" réduction par utilisation de la règle 156 (new_elseif_list)
- "endif (T_ENDIF)" réduction par utilisation de la règle 156 (new_elseif_list)
- $défaut réduction par utilisation de la règle 26 ($@4)
+ "elseif (T_ELSEIF)" reduce using rule 172 (new_elseif_list)
+ "else (T_ELSE)" reduce using rule 172 (new_elseif_list)
+ "endif (T_ENDIF)" reduce using rule 172 (new_elseif_list)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 954
+state 1040
- 131 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';'
+ 147 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 968
+ inner_statement_list go to state 1054
-état 955
+state 1041
- 130 for_statement: statement .
+ 146 for_statement: statement .
- $défaut réduction par utilisation de la règle 130 (for_statement)
+ $default reduce using rule 146 (for_statement)
-état 956
+state 1042
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement .
+ 65 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement .
- $défaut réduction par utilisation de la règle 51 (unticked_statement)
+ $default reduce using rule 65 (unticked_statement)
-état 957
+state 1043
- 133 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';'
+ 149 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';'
- ';' décalage et aller à l'état 969
+ ';' shift, and go to state 1055
-état 958
+state 1044
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' . $@26 '{' inner_statement_list '}' $@27 additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' . $@26 '{' inner_statement_list '}' $@27 additional_catches
- $défaut réduction par utilisation de la règle 85 ($@26)
+ $default reduce using rule 99 ($@26)
- $@26 aller à l'état 970
+ $@26 go to state 1056
-état 959
+state 1045
- 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}' .
+ 104 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}' .
- $défaut réduction par utilisation de la règle 90 (finally_statement)
+ $default reduce using rule 104 (finally_statement)
-état 960
+state 1046
- 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)"
+ 232 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)"
- "identifier (T_STRING)" décalage et aller à l'état 971
+ "identifier (T_STRING)" shift, and go to state 1057
-état 961
+state 1047
- 219 trait_alias: trait_method_reference "as (T_AS)" member_modifier .
- 221 trait_modifiers: member_modifier .
+ 233 trait_alias: trait_method_reference "as (T_AS)" member_modifier .
+ 235 trait_modifiers: member_modifier .
- "identifier (T_STRING)" réduction par utilisation de la règle 221 (trait_modifiers)
- $défaut réduction par utilisation de la règle 219 (trait_alias)
+ "identifier (T_STRING)" reduce using rule 235 (trait_modifiers)
+ $default reduce using rule 233 (trait_alias)
-état 962
+state 1048
- 212 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list .
- 214 trait_reference_list: trait_reference_list . ',' fully_qualified_class_name
+ 226 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list .
+ 228 trait_reference_list: trait_reference_list . ',' fully_qualified_class_name
- ',' décalage et aller à l'état 972
+ ',' shift, and go to state 1058
- $défaut réduction par utilisation de la règle 212 (trait_precedence)
+ $default reduce using rule 226 (trait_precedence)
-état 963
+state 1049
- 213 trait_reference_list: fully_qualified_class_name .
+ 227 trait_reference_list: fully_qualified_class_name .
- $défaut réduction par utilisation de la règle 213 (trait_reference_list)
+ $default reduce using rule 227 (trait_reference_list)
-état 964
+state 1050
- 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+ 231 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 217 (trait_method_reference_fully_qualified)
+ $default reduce using rule 231 (trait_method_reference_fully_qualified)
-état 965
+state 1051
- 237 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar
+ 251 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar
- '+' décalage et aller à l'état 491
- '-' décalage et aller à l'état 492
- '[' décalage et aller à l'état 493
- "integer number (T_LNUMBER)" décalage et aller à l'état 31
- "floating-point number (T_DNUMBER)" décalage et aller à l'état 32
- "identifier (T_STRING)" décalage et aller à l'état 123
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" décalage et aller à l'état 494
- "static (T_STATIC)" décalage et aller à l'état 148
- "array (T_ARRAY)" décalage et aller à l'état 495
- "__CLASS__ (T_CLASS_C)" décalage et aller à l'état 496
- "__TRAIT__ (T_TRAIT_C)" décalage et aller à l'état 68
- "__METHOD__ (T_METHOD_C)" décalage et aller à l'état 69
- "__FUNCTION__ (T_FUNC_C)" décalage et aller à l'état 70
- "__LINE__ (T_LINE)" décalage et aller à l'état 71
- "__FILE__ (T_FILE)" décalage et aller à l'état 72
- "heredoc start (T_START_HEREDOC)" décalage et aller à l'état 497
- "namespace (T_NAMESPACE)" décalage et aller à l'état 498
- "__NAMESPACE__ (T_NS_C)" décalage et aller à l'état 75
- "__DIR__ (T_DIR)" décalage et aller à l'état 76
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 499
+ '+' shift, and go to state 501
+ '-' shift, and go to state 502
+ '!' shift, and go to state 503
+ '~' shift, and go to state 504
+ '[' shift, and go to state 505
+ "integer number (T_LNUMBER)" shift, and go to state 31
+ "floating-point number (T_DNUMBER)" shift, and go to state 32
+ "identifier (T_STRING)" shift, and go to state 123
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 506
+ "static (T_STATIC)" shift, and go to state 148
+ "array (T_ARRAY)" shift, and go to state 507
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 508
+ "__TRAIT__ (T_TRAIT_C)" shift, and go to state 68
+ "__METHOD__ (T_METHOD_C)" shift, and go to state 69
+ "__FUNCTION__ (T_FUNC_C)" shift, and go to state 70
+ "__LINE__ (T_LINE)" shift, and go to state 71
+ "__FILE__ (T_FILE)" shift, and go to state 72
+ "heredoc start (T_START_HEREDOC)" shift, and go to state 509
+ "namespace (T_NAMESPACE)" shift, and go to state 510
+ "__NAMESPACE__ (T_NS_C)" shift, and go to state 75
+ "__DIR__ (T_DIR)" shift, and go to state 76
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 511
+ '(' shift, and go to state 512
- namespace_name aller à l'état 500
- class_name aller à l'état 501
- common_scalar aller à l'état 502
- static_scalar aller à l'état 973
- static_class_constant aller à l'état 504
- static_class_name_scalar aller à l'état 505
+ namespace_name go to state 513
+ class_name go to state 514
+ common_scalar go to state 515
+ static_class_constant go to state 516
+ static_scalar go to state 1059
+ static_scalar_value go to state 518
+ static_operation go to state 519
+ static_class_name_scalar go to state 520
-état 966
+state 1052
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' . parameter_list ')' method_body
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' . parameter_list ')' method_body
- "identifier (T_STRING)" décalage et aller à l'état 123
- "array (T_ARRAY)" décalage et aller à l'état 649
- "callable (T_CALLABLE)" décalage et aller à l'état 650
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ "identifier (T_STRING)" shift, and go to state 123
+ "array (T_ARRAY)" shift, and go to state 708
+ "callable (T_CALLABLE)" shift, and go to state 709
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- ')' réduction par utilisation de la règle 162 (parameter_list)
- $défaut réduction par utilisation de la règle 171 (optional_class_type)
+ ')' reduce using rule 178 (parameter_list)
+ $default reduce using rule 183 (optional_class_type)
- namespace_name aller à l'état 552
- parameter_list aller à l'état 974
- non_empty_parameter_list aller à l'état 652
- optional_class_type aller à l'état 653
- fully_qualified_class_name aller à l'état 654
+ namespace_name go to state 576
+ parameter_list go to state 1060
+ non_empty_parameter_list go to state 711
+ parameter go to state 712
+ optional_class_type go to state 713
+ fully_qualified_class_name go to state 714
-état 967
+state 1053
- 360 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" .
+ 374 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" .
- $défaut réduction par utilisation de la règle 360 (lexical_var_list)
+ $default reduce using rule 374 (lexical_var_list)
-état 968
+state 1054
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 131 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';'
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 147 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';'
- "endfor (T_ENDFOR)" décalage et aller à l'état 975
+ "endfor (T_ENDFOR)" shift, and go to state 1061
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 969
+state 1055
- 133 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' .
+ 149 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' .
- $défaut réduction par utilisation de la règle 133 (foreach_statement)
+ $default reduce using rule 149 (foreach_statement)
-état 970
+state 1056
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 . '{' inner_statement_list '}' $@27 additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 . '{' inner_statement_list '}' $@27 additional_catches
- '{' décalage et aller à l'état 976
+ '{' shift, and go to state 1062
-état 971
+state 1057
- 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" .
+ 232 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" .
- $défaut réduction par utilisation de la règle 218 (trait_alias)
+ $default reduce using rule 232 (trait_alias)
-état 972
+state 1058
- 214 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name
+ 228 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 977
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 1063
-état 973
+state 1059
- 237 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar .
+ 251 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar .
- $défaut réduction par utilisation de la règle 237 (class_variable_declaration)
+ $default reduce using rule 251 (class_variable_declaration)
-état 974
+state 1060
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list . ')' method_body
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list . ')' method_body
- ')' décalage et aller à l'état 978
+ ')' shift, and go to state 1064
-état 975
+state 1061
- 131 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';'
+ 147 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';'
- ';' décalage et aller à l'état 979
+ ';' shift, and go to state 1065
-état 976
+state 1062
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' . inner_statement_list '}' $@27 additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' . inner_statement_list '}' $@27 additional_catches
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 980
+ inner_statement_list go to state 1066
-état 977
+state 1063
- 214 trait_reference_list: trait_reference_list ',' fully_qualified_class_name .
+ 228 trait_reference_list: trait_reference_list ',' fully_qualified_class_name .
- $défaut réduction par utilisation de la règle 214 (trait_reference_list)
+ $default reduce using rule 228 (trait_reference_list)
-état 978
+state 1064
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' . method_body
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' . method_body
- ';' décalage et aller à l'état 981
- '{' décalage et aller à l'état 982
+ ';' shift, and go to state 1067
+ '{' shift, and go to state 1068
- method_body aller à l'état 983
+ method_body go to state 1069
-état 979
+state 1065
- 131 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' .
+ 147 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' .
- $défaut réduction par utilisation de la règle 131 (for_statement)
+ $default reduce using rule 147 (for_statement)
-état 980
+state 1066
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list . '}' $@27 additional_catches
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list . '}' $@27 additional_catches
- '}' décalage et aller à l'état 984
+ '}' shift, and go to state 1070
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 981
+state 1067
- 222 method_body: ';' .
+ 236 method_body: ';' .
- $défaut réduction par utilisation de la règle 222 (method_body)
+ $default reduce using rule 236 (method_body)
-état 982
+state 1068
- 223 method_body: '{' . inner_statement_list '}'
+ 237 method_body: '{' . inner_statement_list '}'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 985
+ inner_statement_list go to state 1071
-état 983
+state 1069
- 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body .
+ 214 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body .
- $défaut réduction par utilisation de la règle 200 (class_statement)
+ $default reduce using rule 214 (class_statement)
-état 984
+state 1070
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' . $@27 additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' . $@27 additional_catches
- $défaut réduction par utilisation de la règle 86 ($@27)
+ $default reduce using rule 100 ($@27)
- $@27 aller à l'état 986
+ $@27 go to state 1072
-état 985
+state 1071
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 223 method_body: '{' inner_statement_list . '}'
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 237 method_body: '{' inner_statement_list . '}'
- '}' décalage et aller à l'état 987
+ '}' shift, and go to state 1073
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 986
+state 1072
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 . additional_catches
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 . additional_catches
- "catch (T_CATCH)" décalage et aller à l'état 988
+ "catch (T_CATCH)" shift, and go to state 1074
- $défaut réduction par utilisation de la règle 92 (additional_catches)
+ $default reduce using rule 106 (additional_catches)
- additional_catches aller à l'état 989
- non_empty_additional_catches aller à l'état 990
- additional_catch aller à l'état 991
+ additional_catches go to state 1075
+ non_empty_additional_catches go to state 1076
+ additional_catch go to state 1077
-état 987
+state 1073
- 223 method_body: '{' inner_statement_list '}' .
+ 237 method_body: '{' inner_statement_list '}' .
- $défaut réduction par utilisation de la règle 223 (method_body)
+ $default reduce using rule 237 (method_body)
-état 988
+state 1074
- 97 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- '(' décalage et aller à l'état 992
+ '(' shift, and go to state 1078
-état 989
+state 1075
- 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches .
+ 101 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches .
- $défaut réduction par utilisation de la règle 87 (catch_statement)
+ $default reduce using rule 101 (catch_statement)
-état 990
+state 1076
- 91 additional_catches: non_empty_additional_catches .
- 94 non_empty_additional_catches: non_empty_additional_catches . additional_catch
+ 105 additional_catches: non_empty_additional_catches .
+ 108 non_empty_additional_catches: non_empty_additional_catches . additional_catch
- "catch (T_CATCH)" décalage et aller à l'état 988
+ "catch (T_CATCH)" shift, and go to state 1074
- $défaut réduction par utilisation de la règle 91 (additional_catches)
+ $default reduce using rule 105 (additional_catches)
- additional_catch aller à l'état 993
+ additional_catch go to state 1079
-état 991
+state 1077
- 93 non_empty_additional_catches: additional_catch .
+ 107 non_empty_additional_catches: additional_catch .
- $défaut réduction par utilisation de la règle 93 (non_empty_additional_catches)
+ $default reduce using rule 107 (non_empty_additional_catches)
-état 992
+state 1078
- 97 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- "identifier (T_STRING)" décalage et aller à l'état 123
- "namespace (T_NAMESPACE)" décalage et aller à l'état 550
- "\\ (T_NS_SEPARATOR)" décalage et aller à l'état 551
+ "identifier (T_STRING)" shift, and go to state 123
+ "namespace (T_NAMESPACE)" shift, and go to state 574
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 575
- namespace_name aller à l'état 552
- fully_qualified_class_name aller à l'état 994
+ namespace_name go to state 576
+ fully_qualified_class_name go to state 1080
-état 993
+state 1079
- 94 non_empty_additional_catches: non_empty_additional_catches additional_catch .
+ 108 non_empty_additional_catches: non_empty_additional_catches additional_catch .
- $défaut réduction par utilisation de la règle 94 (non_empty_additional_catches)
+ $default reduce using rule 108 (non_empty_additional_catches)
-état 994
+state 1080
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- $défaut réduction par utilisation de la règle 95 (@29)
+ $default reduce using rule 109 (@29)
- @29 aller à l'état 995
+ @29 go to state 1081
-état 995
+state 1081
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 . "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 . "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- "variable (T_VARIABLE)" décalage et aller à l'état 996
+ "variable (T_VARIABLE)" shift, and go to state 1082
-état 996
+state 1082
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" . ')' $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" . ')' $@30 '{' inner_statement_list '}'
- ')' décalage et aller à l'état 997
+ ')' shift, and go to state 1083
-état 997
+state 1083
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' . $@30 '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' . $@30 '{' inner_statement_list '}'
- $défaut réduction par utilisation de la règle 96 ($@30)
+ $default reduce using rule 110 ($@30)
- $@30 aller à l'état 998
+ $@30 go to state 1084
-état 998
+state 1084
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 . '{' inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 . '{' inner_statement_list '}'
- '{' décalage et aller à l'état 999
+ '{' shift, and go to state 1085
-état 999
+state 1085
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' . inner_statement_list '}'
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' . inner_statement_list '}'
- $défaut réduction par utilisation de la règle 28 (inner_statement_list)
+ $default reduce using rule 42 (inner_statement_list)
- inner_statement_list aller à l'état 1000
+ inner_statement_list go to state 1086
-état 1000
+state 1086
- 27 inner_statement_list: inner_statement_list . $@4 inner_statement
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list . '}'
+ 41 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list . '}'
- '}' décalage et aller à l'état 1001
+ '}' shift, and go to state 1087
- $défaut réduction par utilisation de la règle 26 ($@4)
+ $default reduce using rule 40 ($@4)
- $@4 aller à l'état 390
+ $@4 go to state 400
-état 1001
+state 1087
- 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}' .
+ 111 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}' .
- $défaut réduction par utilisation de la règle 97 (additional_catch)
+ $default reduce using rule 111 (additional_catch)
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 6a9a24a87..a4bc612bc 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -212,6 +212,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_NS_C "__NAMESPACE__ (T_NS_C)"
%token T_DIR "__DIR__ (T_DIR)"
%token T_NS_SEPARATOR "\\ (T_NS_SEPARATOR)"
+%token T_ELLIPSIS "... (T_ELLIPSIS)"
%% /* Rules */
@@ -240,6 +241,8 @@ top_statement:
| T_NAMESPACE '{' { zend_do_begin_namespace(NULL, 1 TSRMLS_CC); }
top_statement_list '}' { zend_do_end_namespace(TSRMLS_C); }
| T_USE use_declarations ';' { zend_verify_namespace(TSRMLS_C); }
+ | T_USE T_FUNCTION use_function_declarations ';' { zend_verify_namespace(TSRMLS_C); }
+ | T_USE T_CONST use_const_declarations ';' { zend_verify_namespace(TSRMLS_C); }
| constant_declaration ';' { zend_verify_namespace(TSRMLS_C); }
;
@@ -255,6 +258,30 @@ use_declaration:
| T_NS_SEPARATOR namespace_name T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); }
;
+use_function_declarations:
+ use_function_declarations ',' use_function_declaration
+ | use_function_declaration
+;
+
+use_function_declaration:
+ namespace_name { zend_do_use_function(&$1, NULL, 0 TSRMLS_CC); }
+ | namespace_name T_AS T_STRING { zend_do_use_function(&$1, &$3, 0 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { zend_do_use_function(&$2, NULL, 1 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name T_AS T_STRING { zend_do_use_function(&$2, &$4, 1 TSRMLS_CC); }
+;
+
+use_const_declarations:
+ use_const_declarations ',' use_const_declaration
+ | use_const_declaration
+;
+
+use_const_declaration:
+ namespace_name { zend_do_use_const(&$1, NULL, 0 TSRMLS_CC); }
+ | namespace_name T_AS T_STRING { zend_do_use_const(&$1, &$3, 0 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { zend_do_use_const(&$2, NULL, 1 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name T_AS T_STRING { zend_do_use_const(&$2, &$4, 1 TSRMLS_CC); }
+;
+
constant_declaration:
constant_declaration ',' T_STRING '=' static_scalar { zend_do_declare_constant(&$3, &$5 TSRMLS_CC); }
| T_CONST T_STRING '=' static_scalar { zend_do_declare_constant(&$2, &$4 TSRMLS_CC); }
@@ -270,7 +297,7 @@ inner_statement:
statement
| function_declaration_statement
| class_declaration_statement
- | T_HALT_COMPILER '(' ')' ';' { zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); }
+ | T_HALT_COMPILER '(' ')' ';' { zend_error_noreturn(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); }
;
@@ -371,10 +398,14 @@ class_declaration_statement:
;
is_reference:
- /* empty */ { $$.op_type = ZEND_RETURN_VAL; }
- | '&' { $$.op_type = ZEND_RETURN_REF; }
+ /* empty */ { $$.op_type = 0; }
+ | '&' { $$.op_type = 1; }
;
+is_variadic:
+ /* empty */ { $$.op_type = 0; }
+ | T_ELLIPSIS { $$.op_type = 1; }
+;
unticked_function_declaration_statement:
function is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$3, 0, $2.op_type, NULL TSRMLS_CC); }
@@ -523,14 +554,15 @@ parameter_list:
non_empty_parameter_list:
- optional_class_type T_VARIABLE { $$.op_type = IS_UNUSED; $$.u.op.num=1; zend_do_receive_arg(ZEND_RECV, &$2, &$$, NULL, &$1, 0 TSRMLS_CC); }
- | optional_class_type '&' T_VARIABLE { $$.op_type = IS_UNUSED; $$.u.op.num=1; zend_do_receive_arg(ZEND_RECV, &$3, &$$, NULL, &$1, 1 TSRMLS_CC); }
- | optional_class_type '&' T_VARIABLE '=' static_scalar { $$.op_type = IS_UNUSED; $$.u.op.num=1; zend_do_receive_arg(ZEND_RECV_INIT, &$3, &$$, &$5, &$1, 1 TSRMLS_CC); }
- | optional_class_type T_VARIABLE '=' static_scalar { $$.op_type = IS_UNUSED; $$.u.op.num=1; zend_do_receive_arg(ZEND_RECV_INIT, &$2, &$$, &$4, &$1, 0 TSRMLS_CC); }
- | non_empty_parameter_list ',' optional_class_type T_VARIABLE { $$=$1; $$.u.op.num++; zend_do_receive_arg(ZEND_RECV, &$4, &$$, NULL, &$3, 0 TSRMLS_CC); }
- | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE { $$=$1; $$.u.op.num++; zend_do_receive_arg(ZEND_RECV, &$5, &$$, NULL, &$3, 1 TSRMLS_CC); }
- | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar { $$=$1; $$.u.op.num++; zend_do_receive_arg(ZEND_RECV_INIT, &$5, &$$, &$7, &$3, 1 TSRMLS_CC); }
- | non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar { $$=$1; $$.u.op.num++; zend_do_receive_arg(ZEND_RECV_INIT, &$4, &$$, &$6, &$3, 0 TSRMLS_CC); }
+ parameter
+ | non_empty_parameter_list ',' parameter
+;
+
+parameter:
+ optional_class_type is_reference is_variadic T_VARIABLE
+ { zend_do_receive_param(ZEND_RECV, &$4, NULL, &$1, $2.op_type, $3.op_type TSRMLS_CC); }
+ | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar
+ { zend_do_receive_param(ZEND_RECV_INIT, &$4, &$6, &$1, $2.op_type, $3.op_type TSRMLS_CC); }
;
@@ -553,9 +585,11 @@ non_empty_function_call_parameter_list:
expr_without_variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$1, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
| variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$1, ZEND_SEND_VAR, Z_LVAL($$.u.constant) TSRMLS_CC); }
| '&' w_variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$2, ZEND_SEND_REF, Z_LVAL($$.u.constant) TSRMLS_CC); }
+ | T_ELLIPSIS expr { Z_LVAL($$.u.constant) = 0; zend_do_unpack_params(&$2, Z_LVAL($$.u.constant) TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' expr_without_variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$3, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$3, ZEND_SEND_VAR, Z_LVAL($$.u.constant) TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' '&' w_variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$4, ZEND_SEND_REF, Z_LVAL($$.u.constant) TSRMLS_CC); }
+ | non_empty_function_call_parameter_list ',' T_ELLIPSIS expr { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant); zend_do_unpack_params(&$4, Z_LVAL($$.u.constant) TSRMLS_CC); }
;
global_var_list:
@@ -629,8 +663,8 @@ trait_precedence:
;
trait_reference_list:
- fully_qualified_class_name { zend_resolve_class_name(&$1, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC); zend_init_list(&$$.u.op.ptr, Z_STRVAL($1.u.constant) TSRMLS_CC); }
- | trait_reference_list ',' fully_qualified_class_name { zend_resolve_class_name(&$3, ZEND_FETCH_CLASS_GLOBAL, 1 TSRMLS_CC); zend_add_to_list(&$1.u.op.ptr, Z_STRVAL($3.u.constant) TSRMLS_CC); $$ = $1; }
+ fully_qualified_class_name { zend_resolve_class_name(&$1 TSRMLS_CC); zend_init_list(&$$.u.op.ptr, Z_STRVAL($1.u.constant) TSRMLS_CC); }
+ | trait_reference_list ',' fully_qualified_class_name { zend_resolve_class_name(&$3 TSRMLS_CC); zend_add_to_list(&$1.u.op.ptr, Z_STRVAL($3.u.constant) TSRMLS_CC); $$ = $1; }
;
trait_method_reference:
@@ -941,25 +975,62 @@ common_scalar:
| T_START_HEREDOC T_END_HEREDOC { ZVAL_EMPTY_STRING(&$$.u.constant); INIT_PZVAL(&$$.u.constant); $$.op_type = IS_CONST; }
;
+static_class_constant:
+ class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_CT, 0 TSRMLS_CC); }
+;
static_scalar: /* compile-time evaluated scalars */
- common_scalar { $$ = $1; }
- | static_class_name_scalar { $$ = $1; }
- | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); }
- | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 0 TSRMLS_CC); }
- | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); }
- | '+' static_scalar { ZVAL_LONG(&$1.u.constant, 0); add_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
- | '-' static_scalar { ZVAL_LONG(&$1.u.constant, 0); sub_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
+ static_scalar_value { zend_do_constant_expression(&$$, $1.u.ast TSRMLS_CC); }
| T_ARRAY '(' static_array_pair_list ')' { $$ = $3; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
| '[' static_array_pair_list ']' { $$ = $2; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
- | static_class_constant { $$ = $1; }
- | T_CLASS_C { $$ = $1; }
;
-static_class_constant:
- class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_CT, 0 TSRMLS_CC); }
+static_scalar_value:
+ common_scalar { $$.u.ast = zend_ast_create_constant(&$1.u.constant); }
+ | static_class_name_scalar { $$.u.ast = zend_ast_create_constant(&$1.u.constant); }
+ | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); }
+ | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 0 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); }
+ | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); $$.u.ast = zend_ast_create_constant(&$$.u.constant); }
+ | static_class_constant { $$.u.ast = zend_ast_create_constant(&$1.u.constant); }
+ | T_CLASS_C { $$.u.ast = zend_ast_create_constant(&$1.u.constant); }
+ | static_operation { $$ = $1; }
+;
+
+static_operation:
+ static_scalar_value '+' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_ADD, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '-' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SUB, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '*' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MUL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '/' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_DIV, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '%' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MOD, $1.u.ast, $3.u.ast); }
+ | '!' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_BOOL_NOT, $2.u.ast); }
+ | '~' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_BW_NOT, $2.u.ast); }
+ | static_scalar_value '|' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '&' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '^' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BW_XOR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_SL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_SR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '.' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_CONCAT, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_XOR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_AND static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_LOGICAL_OR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_AND, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_BOOL_OR, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_IDENTICAL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_NOT_IDENTICAL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_EQUAL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_NOT_EQUAL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '<' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, $1.u.ast, $3.u.ast); }
+ | static_scalar_value '>' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER, $3.u.ast, $1.u.ast); }
+ | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_IS_SMALLER_OR_EQUAL, $3.u.ast, $1.u.ast); }
+ | static_scalar_value '?' ':' static_scalar_value { $$.u.ast = zend_ast_create_ternary(ZEND_SELECT, $1.u.ast, NULL, $4.u.ast); }
+ | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$.u.ast = zend_ast_create_ternary(ZEND_SELECT, $1.u.ast, $3.u.ast, $5.u.ast); }
+ | '+' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_UNARY_PLUS, $2.u.ast); }
+ | '-' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_UNARY_MINUS, $2.u.ast); }
+ | '(' static_scalar_value ')' { $$ = $2; }
;
+
scalar:
T_STRING_VARNAME { $$ = $1; }
| class_name_scalar { $$ = $1; }
@@ -1196,7 +1267,7 @@ isset_variables:
isset_variable:
variable { zend_do_isset_or_isempty(ZEND_ISSET, &$$, &$1 TSRMLS_CC); }
- | expr_without_variable { zend_error(E_COMPILE_ERROR, "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"); }
+ | expr_without_variable { zend_error_noreturn(E_COMPILE_ERROR, "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"); }
;
class_constant:
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index 62183cdfc..8e958d73d 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -4,7 +4,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -49,7 +49,7 @@
#include "zend_API.h"
#include "zend_strtod.h"
#include "zend_exceptions.h"
-#include "tsrm_virtual_cwd.h"
+#include "zend_virtual_cwd.h"
#include "tsrm_config_common.h"
#define YYCTYPE unsigned char
@@ -564,10 +564,8 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
zend_bool original_in_compilation = CG(in_compilation);
retval_znode.op_type = IS_CONST;
- retval_znode.u.constant.type = IS_LONG;
- retval_znode.u.constant.value.lval = 1;
- Z_UNSET_ISREF(retval_znode.u.constant);
- Z_SET_REFCOUNT(retval_znode.u.constant, 1);
+ INIT_PZVAL(&retval_znode.u.constant);
+ ZVAL_LONG(&retval_znode.u.constant, 1);
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
@@ -624,7 +622,7 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
convert_to_string(&tmp);
filename = &tmp;
}
- file_handle.filename = filename->value.str.val;
+ file_handle.filename = Z_STRVAL_P(filename);
file_handle.free_filename = 0;
file_handle.type = ZEND_HANDLE_FILENAME;
file_handle.opened_path = NULL;
@@ -635,7 +633,7 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
int dummy = 1;
if (!file_handle.opened_path) {
- file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
+ file_handle.opened_path = opened_path = estrndup(Z_STRVAL_P(filename), Z_STRLEN_P(filename));
}
zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
@@ -657,22 +655,15 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
char *buf;
size_t size;
- /* enforce two trailing NULLs for flex... */
- if (IS_INTERNED(str->value.str.val)) {
- char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);
- memcpy(tmp, str->value.str.val, str->value.str.len + ZEND_MMAP_AHEAD);
- str->value.str.val = tmp;
- } else {
- str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
- }
-
- memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
+ /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
+ Z_STRVAL_P(str) = str_erealloc(Z_STRVAL_P(str), Z_STRLEN_P(str) + ZEND_MMAP_AHEAD);
+ memset(Z_STRVAL_P(str) + Z_STRLEN_P(str), 0, ZEND_MMAP_AHEAD);
SCNG(yy_in) = NULL;
SCNG(yy_start) = NULL;
- buf = str->value.str.val;
- size = str->value.str.len;
+ buf = Z_STRVAL_P(str);
+ size = Z_STRLEN_P(str);
if (CG(multibyte)) {
SCNG(script_org) = (unsigned char*)buf;
@@ -733,7 +724,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
int compiler_result;
zend_bool original_in_compilation = CG(in_compilation);
- if (source_string->value.str.len==0) {
+ if (Z_STRLEN_P(source_string)==0) {
efree(op_array);
return NULL;
}
@@ -871,11 +862,11 @@ ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter
# define zend_copy_value(zendlval, yytext, yyleng) \
if (SCNG(output_filter)) { \
size_t sz = 0; \
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
- zendlval->value.str.len = sz; \
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
+ Z_STRLEN_P(zendlval) = sz; \
} else { \
- zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
- zendlval->value.str.len = yyleng; \
+ Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); \
+ Z_STRLEN_P(zendlval) = yyleng; \
}
static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
@@ -886,8 +877,8 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
ZVAL_STRINGL(zendlval, str, len, 1);
/* convert escape sequences */
- s = t = zendlval->value.str.val;
- end = s+zendlval->value.str.len;
+ s = t = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
while (s<end) {
if (*s=='\\') {
s++;
@@ -899,23 +890,23 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
switch(*s) {
case 'n':
*t++ = '\n';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'r':
*t++ = '\r';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 't':
*t++ = '\t';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'f':
*t++ = '\f';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'v':
*t++ = '\v';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'e':
#ifdef PHP_WIN32
@@ -923,7 +914,7 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
#else
*t++ = '\e';
#endif
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case '"':
case '`':
@@ -935,20 +926,20 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
case '\\':
case '$':
*t++ = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'x':
case 'X':
if (ZEND_IS_HEX(*(s+1))) {
char hex_buf[3] = { 0, 0, 0 };
- zendlval->value.str.len--; /* for the 'x' */
+ Z_STRLEN_P(zendlval)--; /* for the 'x' */
hex_buf[0] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_HEX(*(s+1))) {
hex_buf[1] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
}
*t++ = (char) strtol(hex_buf, NULL, 16);
} else {
@@ -962,13 +953,13 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
char octal_buf[4] = { 0, 0, 0, 0 };
octal_buf[0] = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_OCT(*(s+1))) {
octal_buf[1] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_OCT(*(s+1))) {
octal_buf[2] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
}
}
*t++ = (char) strtol(octal_buf, NULL, 8);
@@ -990,9 +981,9 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
*t = 0;
if (SCNG(output_filter)) {
size_t sz = 0;
- s = zendlval->value.str.val;
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
- zendlval->value.str.len = sz;
+ s = Z_STRVAL_P(zendlval);
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval) TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
efree(s);
}
}
@@ -1006,7 +997,7 @@ restart:
yymore_restart:
-#line 1010 "Zend/zend_language_scanner.c"
+#line 1001 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1105,7 +1096,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1807 "Zend/zend_language_scanner.l"
+#line 1741 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1152,20 +1143,20 @@ inline_html:
if (SCNG(output_filter)) {
int readsize;
size_t sz = 0;
- readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
- zendlval->value.str.len = sz;
+ readsize = SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
if (readsize < yyleng) {
yyless(readsize);
}
} else {
- zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
+ Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng);
+ Z_STRLEN_P(zendlval) = yyleng;
}
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
-#line 1169 "Zend/zend_language_scanner.c"
+#line 1160 "Zend/zend_language_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1183,38 +1174,34 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1731 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
goto inline_char_handler;
}
}
-#line 1199 "Zend/zend_language_scanner.c"
+#line 1188 "Zend/zend_language_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1772 "Zend/zend_language_scanner.l"
+#line 1712 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
goto inline_char_handler;
}
}
-#line 1218 "Zend/zend_language_scanner.c"
+#line 1205 "Zend/zend_language_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1400,7 +1387,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1678 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
@@ -1411,13 +1398,11 @@ yy35:
}
HANDLE_NEWLINES(yytext, yyleng);
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1421 "Zend/zend_language_scanner.c"
+#line 1406 "Zend/zend_language_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1444,33 +1429,29 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1750 "Zend/zend_language_scanner.l"
+#line 1694 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
} else {
goto inline_char_handler;
}
}
-#line 1460 "Zend/zend_language_scanner.c"
+#line 1443 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1763 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
{
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
}
-#line 1474 "Zend/zend_language_scanner.c"
+#line 1455 "Zend/zend_language_scanner.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1497,16 +1478,14 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1785 "Zend/zend_language_scanner.l"
+#line 1723 "Zend/zend_language_scanner.l"
{
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
HANDLE_NEWLINE(yytext[yyleng-1]);
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1510 "Zend/zend_language_scanner.c"
+#line 1489 "Zend/zend_language_scanner.c"
yy52:
YYDEBUG(52, *YYCURSOR);
++YYCURSOR;
@@ -1577,7 +1556,7 @@ yyc_ST_BACKQUOTE:
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2258 "Zend/zend_language_scanner.l"
+#line 2186 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1618,7 +1597,7 @@ yy56:
zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1622 "Zend/zend_language_scanner.c"
+#line 1601 "Zend/zend_language_scanner.c"
yy57:
YYDEBUG(57, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1629,12 +1608,12 @@ yy58:
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2130 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
-#line 1638 "Zend/zend_language_scanner.c"
+#line 1617 "Zend/zend_language_scanner.c"
yy60:
YYDEBUG(60, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1644,14 +1623,14 @@ yy61:
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2117 "Zend/zend_language_scanner.l"
{
- zendlval->value.lval = (long) '{';
+ Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1655 "Zend/zend_language_scanner.c"
+#line 1634 "Zend/zend_language_scanner.c"
yy63:
YYDEBUG(63, *YYCURSOR);
yyaccept = 0;
@@ -1667,24 +1646,24 @@ yy63:
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1677 "Zend/zend_language_scanner.c"
+#line 1656 "Zend/zend_language_scanner.c"
yy66:
YYDEBUG(66, *YYCURSOR);
++YYCURSOR;
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1688 "Zend/zend_language_scanner.c"
+#line 1667 "Zend/zend_language_scanner.c"
yy68:
YYDEBUG(68, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1698,7 +1677,7 @@ yy70:
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1881 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1706,7 +1685,7 @@ yy70:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1710 "Zend/zend_language_scanner.c"
+#line 1689 "Zend/zend_language_scanner.c"
yy72:
YYDEBUG(72, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1724,7 +1703,7 @@ yy73:
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1871 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1732,7 +1711,7 @@ yy73:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1736 "Zend/zend_language_scanner.c"
+#line 1715 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -1800,7 +1779,7 @@ yy77:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2208 "Zend/zend_language_scanner.l"
+#line 2136 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1849,7 +1828,7 @@ double_quotes_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1853 "Zend/zend_language_scanner.c"
+#line 1832 "Zend/zend_language_scanner.c"
yy79:
YYDEBUG(79, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1860,12 +1839,12 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2197 "Zend/zend_language_scanner.l"
+#line 2125 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
}
-#line 1869 "Zend/zend_language_scanner.c"
+#line 1848 "Zend/zend_language_scanner.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1875,14 +1854,14 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2117 "Zend/zend_language_scanner.l"
{
- zendlval->value.lval = (long) '{';
+ Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1886 "Zend/zend_language_scanner.c"
+#line 1865 "Zend/zend_language_scanner.c"
yy85:
YYDEBUG(85, *YYCURSOR);
yyaccept = 0;
@@ -1898,24 +1877,24 @@ yy85:
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1908 "Zend/zend_language_scanner.c"
+#line 1887 "Zend/zend_language_scanner.c"
yy88:
YYDEBUG(88, *YYCURSOR);
++YYCURSOR;
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1919 "Zend/zend_language_scanner.c"
+#line 1898 "Zend/zend_language_scanner.c"
yy90:
YYDEBUG(90, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1929,7 +1908,7 @@ yy92:
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1881 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1937,7 +1916,7 @@ yy92:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1941 "Zend/zend_language_scanner.c"
+#line 1920 "Zend/zend_language_scanner.c"
yy94:
YYDEBUG(94, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1955,7 +1934,7 @@ yy95:
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1871 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1963,7 +1942,7 @@ yy95:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1967 "Zend/zend_language_scanner.c"
+#line 1946 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
@@ -1974,7 +1953,7 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2175 "Zend/zend_language_scanner.l"
+#line 2103 "Zend/zend_language_scanner.l"
{
zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
@@ -1987,7 +1966,7 @@ yyc_ST_END_HEREDOC:
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
-#line 1991 "Zend/zend_language_scanner.c"
+#line 1970 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
@@ -2049,7 +2028,7 @@ yy103:
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2300 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -2122,7 +2101,7 @@ heredoc_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 2126 "Zend/zend_language_scanner.c"
+#line 2105 "Zend/zend_language_scanner.c"
yy105:
YYDEBUG(105, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2137,14 +2116,14 @@ yy107:
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2117 "Zend/zend_language_scanner.l"
{
- zendlval->value.lval = (long) '{';
+ Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 2148 "Zend/zend_language_scanner.c"
+#line 2127 "Zend/zend_language_scanner.c"
yy109:
YYDEBUG(109, *YYCURSOR);
yyaccept = 0;
@@ -2160,24 +2139,24 @@ yy109:
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2170 "Zend/zend_language_scanner.c"
+#line 2149 "Zend/zend_language_scanner.c"
yy112:
YYDEBUG(112, *YYCURSOR);
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2181 "Zend/zend_language_scanner.c"
+#line 2160 "Zend/zend_language_scanner.c"
yy114:
YYDEBUG(114, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2191,7 +2170,7 @@ yy116:
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1881 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2199,7 +2178,7 @@ yy116:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2203 "Zend/zend_language_scanner.c"
+#line 2182 "Zend/zend_language_scanner.c"
yy118:
YYDEBUG(118, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2217,7 +2196,7 @@ yy119:
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1871 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2225,7 +2204,7 @@ yy119:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2229 "Zend/zend_language_scanner.c"
+#line 2208 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
@@ -2302,14 +2281,14 @@ yyc_ST_IN_SCRIPTING:
case '\n':
case '\r':
case ' ': goto yy140;
- case '!': goto yy153;
+ case '!': goto yy154;
case '"': goto yy180;
case '#': goto yy176;
case '$': goto yy165;
case '%': goto yy159;
case '&': goto yy160;
case '\'': goto yy178;
- case '(': goto yy147;
+ case '(': goto yy148;
case ')':
case ',':
case ';':
@@ -2317,11 +2296,11 @@ yyc_ST_IN_SCRIPTING:
case '[':
case ']':
case '~': goto yy166;
- case '*': goto yy156;
- case '+': goto yy152;
+ case '*': goto yy157;
+ case '+': goto yy153;
case '-': goto yy138;
- case '.': goto yy158;
- case '/': goto yy157;
+ case '.': goto yy145;
+ case '/': goto yy158;
case '0': goto yy172;
case '1':
case '2':
@@ -2333,9 +2312,9 @@ yyc_ST_IN_SCRIPTING:
case '8':
case '9': goto yy174;
case ':': goto yy142;
- case '<': goto yy154;
- case '=': goto yy150;
- case '>': goto yy155;
+ case '<': goto yy155;
+ case '=': goto yy151;
+ case '>': goto yy156;
case '?': goto yy167;
case 'A':
case 'a': goto yy133;
@@ -2354,9 +2333,9 @@ yyc_ST_IN_SCRIPTING:
case 'I':
case 'i': goto yy131;
case 'L':
- case 'l': goto yy151;
+ case 'l': goto yy152;
case 'N':
- case 'n': goto yy145;
+ case 'n': goto yy146;
case 'O':
case 'o': goto yy163;
case 'P':
@@ -2368,9 +2347,9 @@ yyc_ST_IN_SCRIPTING:
case 'T':
case 't': goto yy130;
case 'U':
- case 'u': goto yy148;
+ case 'u': goto yy149;
case 'V':
- case 'v': goto yy146;
+ case 'v': goto yy147;
case 'W':
case 'w': goto yy132;
case 'X':
@@ -2379,7 +2358,7 @@ yyc_ST_IN_SCRIPTING:
case 'y': goto yy129;
case '\\': goto yy143;
case '^': goto yy162;
- case '_': goto yy149;
+ case '_': goto yy150;
case '`': goto yy182;
case '{': goto yy168;
case '|': goto yy161;
@@ -2392,48 +2371,48 @@ yy123:
YYDEBUG(-1, yych);
switch ((yych = *YYCURSOR)) {
case 'C':
- case 'c': goto yy735;
+ case 'c': goto yy738;
case 'L':
- case 'l': goto yy736;
+ case 'l': goto yy739;
case 'M':
- case 'm': goto yy737;
+ case 'm': goto yy740;
case 'N':
- case 'n': goto yy738;
+ case 'n': goto yy741;
case 'V':
- case 'v': goto yy739;
+ case 'v': goto yy742;
case 'X':
- case 'x': goto yy740;
+ case 'x': goto yy743;
default: goto yy187;
}
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1912 "Zend/zend_language_scanner.l"
+#line 1846 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 2418 "Zend/zend_language_scanner.c"
+#line 2397 "Zend/zend_language_scanner.c"
yy125:
YYDEBUG(125, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'H') {
- if (yych == 'E') goto yy717;
+ if (yych == 'E') goto yy720;
goto yy187;
} else {
- if (yych <= 'I') goto yy718;
+ if (yych <= 'I') goto yy721;
if (yych <= 'N') goto yy187;
- goto yy719;
+ goto yy722;
}
} else {
if (yych <= 'h') {
- if (yych == 'e') goto yy717;
+ if (yych == 'e') goto yy720;
goto yy187;
} else {
- if (yych <= 'i') goto yy718;
- if (yych == 'o') goto yy719;
+ if (yych <= 'i') goto yy721;
+ if (yych == 'o') goto yy722;
goto yy187;
}
}
@@ -2442,20 +2421,20 @@ yy126:
yych = *++YYCURSOR;
if (yych <= 'U') {
if (yych <= 'N') {
- if (yych == 'I') goto yy693;
+ if (yych == 'I') goto yy696;
goto yy187;
} else {
- if (yych <= 'O') goto yy694;
+ if (yych <= 'O') goto yy697;
if (yych <= 'T') goto yy187;
- goto yy695;
+ goto yy698;
}
} else {
if (yych <= 'n') {
- if (yych == 'i') goto yy693;
+ if (yych == 'i') goto yy696;
goto yy187;
} else {
- if (yych <= 'o') goto yy694;
- if (yych == 'u') goto yy695;
+ if (yych <= 'o') goto yy697;
+ if (yych == 'u') goto yy698;
goto yy187;
}
}
@@ -2464,48 +2443,48 @@ yy127:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'K') {
- if (yych == 'A') goto yy658;
+ if (yych == 'A') goto yy661;
goto yy187;
} else {
- if (yych <= 'L') goto yy659;
+ if (yych <= 'L') goto yy662;
if (yych <= 'N') goto yy187;
- goto yy660;
+ goto yy663;
}
} else {
if (yych <= 'k') {
- if (yych == 'a') goto yy658;
+ if (yych == 'a') goto yy661;
goto yy187;
} else {
- if (yych <= 'l') goto yy659;
- if (yych == 'o') goto yy660;
+ if (yych <= 'l') goto yy662;
+ if (yych == 'o') goto yy663;
goto yy187;
}
}
yy128:
YYDEBUG(128, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy640;
- if (yych == 'e') goto yy640;
+ if (yych == 'E') goto yy643;
+ if (yych == 'e') goto yy643;
goto yy187;
yy129:
YYDEBUG(129, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy635;
- if (yych == 'i') goto yy635;
+ if (yych == 'I') goto yy638;
+ if (yych == 'i') goto yy638;
goto yy187;
yy130:
YYDEBUG(130, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'R') {
- if (yych == 'H') goto yy623;
+ if (yych == 'H') goto yy626;
if (yych <= 'Q') goto yy187;
- goto yy624;
+ goto yy627;
} else {
if (yych <= 'h') {
if (yych <= 'g') goto yy187;
- goto yy623;
+ goto yy626;
} else {
- if (yych == 'r') goto yy624;
+ if (yych == 'r') goto yy627;
goto yy187;
}
}
@@ -2514,53 +2493,53 @@ yy131:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'L') {
- if (yych == 'F') goto yy570;
+ if (yych == 'F') goto yy573;
goto yy187;
} else {
- if (yych <= 'M') goto yy572;
- if (yych <= 'N') goto yy573;
+ if (yych <= 'M') goto yy575;
+ if (yych <= 'N') goto yy576;
if (yych <= 'R') goto yy187;
- goto yy574;
+ goto yy577;
}
} else {
if (yych <= 'm') {
- if (yych == 'f') goto yy570;
+ if (yych == 'f') goto yy573;
if (yych <= 'l') goto yy187;
- goto yy572;
+ goto yy575;
} else {
- if (yych <= 'n') goto yy573;
- if (yych == 's') goto yy574;
+ if (yych <= 'n') goto yy576;
+ if (yych == 's') goto yy577;
goto yy187;
}
}
yy132:
YYDEBUG(132, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy565;
- if (yych == 'h') goto yy565;
+ if (yych == 'H') goto yy568;
+ if (yych == 'h') goto yy568;
goto yy187;
yy133:
YYDEBUG(133, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'M') {
- if (yych == 'B') goto yy547;
+ if (yych == 'B') goto yy550;
goto yy187;
} else {
- if (yych <= 'N') goto yy548;
+ if (yych <= 'N') goto yy551;
if (yych <= 'Q') goto yy187;
- if (yych <= 'R') goto yy549;
- goto yy550;
+ if (yych <= 'R') goto yy552;
+ goto yy553;
}
} else {
if (yych <= 'n') {
- if (yych == 'b') goto yy547;
+ if (yych == 'b') goto yy550;
if (yych <= 'm') goto yy187;
- goto yy548;
+ goto yy551;
} else {
if (yych <= 'q') goto yy187;
- if (yych <= 'r') goto yy549;
- if (yych <= 's') goto yy550;
+ if (yych <= 'r') goto yy552;
+ if (yych <= 's') goto yy553;
goto yy187;
}
}
@@ -2568,15 +2547,15 @@ yy134:
YYDEBUG(134, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'W') {
- if (yych == 'T') goto yy535;
+ if (yych == 'T') goto yy538;
if (yych <= 'V') goto yy187;
- goto yy536;
+ goto yy539;
} else {
if (yych <= 't') {
if (yych <= 's') goto yy187;
- goto yy535;
+ goto yy538;
} else {
- if (yych == 'w') goto yy536;
+ if (yych == 'w') goto yy539;
goto yy187;
}
}
@@ -2587,18 +2566,18 @@ yy135:
if (yych <= ';') {
if (yych <= '"') {
if (yych <= '!') goto yy187;
- goto yy527;
+ goto yy530;
} else {
- if (yych == '\'') goto yy528;
+ if (yych == '\'') goto yy531;
goto yy187;
}
} else {
if (yych <= 'R') {
- if (yych <= '<') goto yy526;
+ if (yych <= '<') goto yy529;
if (yych <= 'Q') goto yy187;
- goto yy529;
+ goto yy532;
} else {
- if (yych == 'r') goto yy529;
+ if (yych == 'r') goto yy532;
goto yy187;
}
}
@@ -2606,15 +2585,15 @@ yy136:
YYDEBUG(136, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'L') goto yy516;
+ if (yych == 'L') goto yy519;
if (yych <= 'N') goto yy187;
- goto yy517;
+ goto yy520;
} else {
if (yych <= 'l') {
if (yych <= 'k') goto yy187;
- goto yy516;
+ goto yy519;
} else {
- if (yych == 'o') goto yy517;
+ if (yych == 'o') goto yy520;
goto yy187;
}
}
@@ -2622,15 +2601,15 @@ yy137:
YYDEBUG(137, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'R') goto yy492;
+ if (yych == 'R') goto yy495;
if (yych <= 'T') goto yy187;
- goto yy493;
+ goto yy496;
} else {
if (yych <= 'r') {
if (yych <= 'q') goto yy187;
- goto yy492;
+ goto yy495;
} else {
- if (yych == 'u') goto yy493;
+ if (yych == 'u') goto yy496;
goto yy187;
}
}
@@ -2638,214 +2617,217 @@ yy138:
YYDEBUG(138, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy488;
+ if (yych == '-') goto yy491;
} else {
- if (yych <= '=') goto yy486;
- if (yych <= '>') goto yy490;
+ if (yych <= '=') goto yy489;
+ if (yych <= '>') goto yy493;
}
yy139:
YYDEBUG(139, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
-#line 2654 "Zend/zend_language_scanner.c"
+#line 2633 "Zend/zend_language_scanner.c"
yy140:
YYDEBUG(140, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy485;
+ goto yy488;
yy141:
YYDEBUG(141, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1185 "Zend/zend_language_scanner.l"
+#line 1175 "Zend/zend_language_scanner.l"
{
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 2671 "Zend/zend_language_scanner.c"
+#line 2648 "Zend/zend_language_scanner.c"
yy142:
YYDEBUG(142, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == ':') goto yy482;
+ if (yych == ':') goto yy485;
goto yy139;
yy143:
YYDEBUG(143, *YYCURSOR);
++YYCURSOR;
YYDEBUG(144, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1202 "Zend/zend_language_scanner.l"
{
return T_NS_SEPARATOR;
}
-#line 2686 "Zend/zend_language_scanner.c"
+#line 2663 "Zend/zend_language_scanner.c"
yy145:
YYDEBUG(145, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych == '.') goto yy482;
+ goto yy139;
+ } else {
+ if (yych <= '9') goto yy478;
+ if (yych == '=') goto yy480;
+ goto yy139;
+ }
+yy146:
+ YYDEBUG(146, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy470;
+ if (yych == 'A') goto yy466;
if (yych <= 'D') goto yy187;
- goto yy471;
+ goto yy467;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy470;
+ goto yy466;
} else {
- if (yych == 'e') goto yy471;
+ if (yych == 'e') goto yy467;
goto yy187;
}
}
-yy146:
- YYDEBUG(146, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy467;
- if (yych == 'a') goto yy467;
- goto yy187;
yy147:
YYDEBUG(147, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy463;
+ if (yych == 'a') goto yy463;
+ goto yy187;
+yy148:
+ YYDEBUG(148, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy392;
+ if (yych == '\t') goto yy388;
if (yych <= 0x1F) goto yy139;
- goto yy392;
+ goto yy388;
} else {
if (yych <= '@') goto yy139;
if (yych == 'C') goto yy139;
- goto yy392;
+ goto yy388;
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy392;
+ if (yych == 'F') goto yy388;
if (yych <= 'H') goto yy139;
- goto yy392;
+ goto yy388;
} else {
- if (yych == 'O') goto yy392;
+ if (yych == 'O') goto yy388;
if (yych <= 'Q') goto yy139;
- goto yy392;
+ goto yy388;
}
}
} else {
if (yych <= 'f') {
if (yych <= 'b') {
- if (yych == 'U') goto yy392;
+ if (yych == 'U') goto yy388;
if (yych <= '`') goto yy139;
- goto yy392;
+ goto yy388;
} else {
- if (yych == 'd') goto yy392;
+ if (yych == 'd') goto yy388;
if (yych <= 'e') goto yy139;
- goto yy392;
+ goto yy388;
}
} else {
if (yych <= 'o') {
- if (yych == 'i') goto yy392;
+ if (yych == 'i') goto yy388;
if (yych <= 'n') goto yy139;
- goto yy392;
+ goto yy388;
} else {
if (yych <= 's') {
if (yych <= 'q') goto yy139;
- goto yy392;
+ goto yy388;
} else {
- if (yych == 'u') goto yy392;
+ if (yych == 'u') goto yy388;
goto yy139;
}
}
}
}
-yy148:
- YYDEBUG(148, *YYCURSOR);
+yy149:
+ YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
- if (yych == 'N') goto yy383;
+ if (yych == 'N') goto yy379;
if (yych <= 'R') goto yy187;
- goto yy384;
+ goto yy380;
} else {
if (yych <= 'n') {
if (yych <= 'm') goto yy187;
- goto yy383;
+ goto yy379;
} else {
- if (yych == 's') goto yy384;
+ if (yych == 's') goto yy380;
goto yy187;
}
}
-yy149:
- YYDEBUG(149, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy301;
- goto yy187;
yy150:
YYDEBUG(150, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '<') goto yy139;
- if (yych <= '=') goto yy295;
- if (yych <= '>') goto yy297;
- goto yy139;
+ if (yych == '_') goto yy297;
+ goto yy187;
yy151:
YYDEBUG(151, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy291;
- if (yych == 'i') goto yy291;
- goto yy187;
+ if (yych <= '<') goto yy139;
+ if (yych <= '=') goto yy291;
+ if (yych <= '>') goto yy293;
+ goto yy139;
yy152:
YYDEBUG(152, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '+') goto yy289;
- if (yych == '=') goto yy287;
- goto yy139;
+ if (yych == 'I') goto yy287;
+ if (yych == 'i') goto yy287;
+ goto yy187;
yy153:
YYDEBUG(153, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy284;
+ if (yych == '+') goto yy285;
+ if (yych == '=') goto yy283;
goto yy139;
yy154:
YYDEBUG(154, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy280;
+ goto yy139;
+yy155:
+ YYDEBUG(155, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= ';') {
- if (yych == '/') goto yy256;
+ if (yych == '/') goto yy252;
goto yy139;
} else {
- if (yych <= '<') goto yy254;
- if (yych <= '=') goto yy257;
- if (yych <= '>') goto yy259;
+ if (yych <= '<') goto yy250;
+ if (yych <= '=') goto yy253;
+ if (yych <= '>') goto yy255;
goto yy139;
}
-yy155:
- YYDEBUG(155, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '<') goto yy139;
- if (yych <= '=') goto yy250;
- if (yych <= '>') goto yy248;
- goto yy139;
yy156:
YYDEBUG(156, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy246;
+ if (yych <= '<') goto yy139;
+ if (yych <= '=') goto yy246;
+ if (yych <= '>') goto yy244;
goto yy139;
yy157:
YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == '=') goto yy242;
+ goto yy139;
+yy158:
+ YYDEBUG(158, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= '.') {
- if (yych == '*') goto yy238;
+ if (yych == '*') goto yy234;
goto yy139;
} else {
- if (yych <= '/') goto yy240;
- if (yych == '=') goto yy241;
+ if (yych <= '/') goto yy236;
+ if (yych == '=') goto yy237;
goto yy139;
}
-yy158:
- YYDEBUG(158, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy139;
- if (yych <= '9') goto yy234;
- if (yych == '=') goto yy236;
- goto yy139;
yy159:
YYDEBUG(159, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2910,18 +2892,18 @@ yy168:
++YYCURSOR;
YYDEBUG(169, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1459 "Zend/zend_language_scanner.l"
+#line 1451 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 2919 "Zend/zend_language_scanner.c"
+#line 2901 "Zend/zend_language_scanner.c"
yy170:
YYDEBUG(170, *YYCURSOR);
++YYCURSOR;
YYDEBUG(171, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1471 "Zend/zend_language_scanner.l"
+#line 1463 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2929,7 +2911,7 @@ yy170:
}
return '}';
}
-#line 2933 "Zend/zend_language_scanner.c"
+#line 2915 "Zend/zend_language_scanner.c"
yy172:
YYDEBUG(172, *YYCURSOR);
yyaccept = 2;
@@ -2957,18 +2939,18 @@ yy172:
yy173:
YYDEBUG(173, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1522 "Zend/zend_language_scanner.l"
+#line 1513 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
- zendlval->value.lval = strtol(yytext, NULL, 0);
+ Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
} else {
errno = 0;
- zendlval->value.lval = strtol(yytext, NULL, 0);
+ Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
if (errno == ERANGE) { /* Overflow */
if (yytext[0] == '0') { /* octal overflow */
- zendlval->value.dval = zend_oct_strtod(yytext, NULL);
+ Z_DVAL_P(zendlval) = zend_oct_strtod(yytext, NULL);
} else {
- zendlval->value.dval = zend_strtod(yytext, NULL);
+ Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
}
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
@@ -2978,7 +2960,7 @@ yy173:
zendlval->type = IS_LONG;
return T_LNUMBER;
}
-#line 2982 "Zend/zend_language_scanner.c"
+#line 2964 "Zend/zend_language_scanner.c"
yy174:
YYDEBUG(174, *YYCURSOR);
yyaccept = 2;
@@ -3006,7 +2988,7 @@ yy176:
yy177:
YYDEBUG(177, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1919 "Zend/zend_language_scanner.l"
+#line 1853 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
@@ -3040,14 +3022,14 @@ yy177:
return T_COMMENT;
}
-#line 3044 "Zend/zend_language_scanner.c"
+#line 3026 "Zend/zend_language_scanner.c"
yy178:
YYDEBUG(178, *YYCURSOR);
++YYCURSOR;
yy179:
YYDEBUG(179, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2010 "Zend/zend_language_scanner.l"
+#line 1940 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
@@ -3073,13 +3055,11 @@ yy179:
}
}
- zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
- zendlval->value.str.len = yyleng-bprefix-2;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2, 1);
/* convert escape sequences */
- s = t = zendlval->value.str.val;
- end = s+zendlval->value.str.len;
+ s = t = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
while (s<end) {
if (*s=='\\') {
s++;
@@ -3088,7 +3068,7 @@ yy179:
case '\\':
case '\'':
*t++ = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
default:
*t++ = '\\';
@@ -3108,21 +3088,21 @@ yy179:
if (SCNG(output_filter)) {
size_t sz = 0;
- s = zendlval->value.str.val;
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
- zendlval->value.str.len = sz;
+ s = Z_STRVAL_P(zendlval);
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval) TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
efree(s);
}
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 3119 "Zend/zend_language_scanner.c"
+#line 3099 "Zend/zend_language_scanner.c"
yy180:
YYDEBUG(180, *YYCURSOR);
++YYCURSOR;
yy181:
YYDEBUG(181, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2079 "Zend/zend_language_scanner.l"
+#line 2007 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
@@ -3163,24 +3143,24 @@ yy181:
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3167 "Zend/zend_language_scanner.c"
+#line 3147 "Zend/zend_language_scanner.c"
yy182:
YYDEBUG(182, *YYCURSOR);
++YYCURSOR;
YYDEBUG(183, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2169 "Zend/zend_language_scanner.l"
+#line 2097 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 3178 "Zend/zend_language_scanner.c"
+#line 3158 "Zend/zend_language_scanner.c"
yy184:
YYDEBUG(184, *YYCURSOR);
++YYCURSOR;
YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2432 "Zend/zend_language_scanner.l"
+#line 2360 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -3189,7 +3169,7 @@ yy184:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 3193 "Zend/zend_language_scanner.c"
+#line 3173 "Zend/zend_language_scanner.c"
yy186:
YYDEBUG(186, *YYCURSOR);
++YYCURSOR;
@@ -3216,13 +3196,12 @@ yy188:
yy190:
YYDEBUG(190, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1587 "Zend/zend_language_scanner.l"
+#line 1572 "Zend/zend_language_scanner.l"
{
- zendlval->value.dval = zend_strtod(yytext, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_strtod(yytext, NULL));
return T_DNUMBER;
}
-#line 3226 "Zend/zend_language_scanner.c"
+#line 3205 "Zend/zend_language_scanner.c"
yy191:
YYDEBUG(191, *YYCURSOR);
yyaccept = 2;
@@ -3269,10 +3248,10 @@ yy194:
if (yyaccept <= 3) {
goto yy190;
} else {
- goto yy239;
+ goto yy235;
}
} else {
- goto yy255;
+ goto yy251;
}
}
yy195:
@@ -3314,7 +3293,7 @@ yy200:
}
YYDEBUG(202, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1489 "Zend/zend_language_scanner.l"
{
char *bin = yytext + 2; /* Skip "0b" */
int len = yyleng - 2;
@@ -3327,19 +3306,18 @@ yy200:
if (len < SIZEOF_LONG * 8) {
if (len == 0) {
- zendlval->value.lval = 0;
+ Z_LVAL_P(zendlval) = 0;
} else {
- zendlval->value.lval = strtol(bin, NULL, 2);
+ Z_LVAL_P(zendlval) = strtol(bin, NULL, 2);
}
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
- zendlval->value.dval = zend_bin_strtod(bin, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, NULL));
return T_DNUMBER;
}
}
-#line 3343 "Zend/zend_language_scanner.c"
+#line 3321 "Zend/zend_language_scanner.c"
yy203:
YYDEBUG(203, *YYCURSOR);
++YYCURSOR;
@@ -3351,7 +3329,7 @@ yy203:
}
YYDEBUG(205, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -3364,19 +3342,18 @@ yy203:
if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
if (len == 0) {
- zendlval->value.lval = 0;
+ Z_LVAL_P(zendlval) = 0;
} else {
- zendlval->value.lval = strtol(hex, NULL, 16);
+ Z_LVAL_P(zendlval) = strtol(hex, NULL, 16);
}
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
- zendlval->value.dval = zend_hex_strtod(hex, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, NULL));
return T_DNUMBER;
}
}
-#line 3380 "Zend/zend_language_scanner.c"
+#line 3357 "Zend/zend_language_scanner.c"
yy206:
YYDEBUG(206, *YYCURSOR);
++YYCURSOR;
@@ -3385,15 +3362,13 @@ yy206:
yy207:
YYDEBUG(207, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1987 "Zend/zend_language_scanner.l"
+#line 1921 "Zend/zend_language_scanner.l"
{
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3397 "Zend/zend_language_scanner.c"
+#line 3372 "Zend/zend_language_scanner.c"
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3427,13 +3402,13 @@ yy210:
yy212:
YYDEBUG(212, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 3437 "Zend/zend_language_scanner.c"
+#line 3412 "Zend/zend_language_scanner.c"
yy213:
YYDEBUG(213, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3447,11 +3422,11 @@ yy214:
}
YYDEBUG(215, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
+#line 1434 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_XOR;
}
-#line 3455 "Zend/zend_language_scanner.c"
+#line 3430 "Zend/zend_language_scanner.c"
yy216:
YYDEBUG(216, *YYCURSOR);
++YYCURSOR;
@@ -3460,61 +3435,61 @@ yy216:
}
YYDEBUG(217, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
+#line 1426 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_OR;
}
-#line 3468 "Zend/zend_language_scanner.c"
+#line 3443 "Zend/zend_language_scanner.c"
yy218:
YYDEBUG(218, *YYCURSOR);
++YYCURSOR;
YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
+#line 1414 "Zend/zend_language_scanner.l"
{
return T_XOR_EQUAL;
}
-#line 3478 "Zend/zend_language_scanner.c"
+#line 3453 "Zend/zend_language_scanner.c"
yy220:
YYDEBUG(220, *YYCURSOR);
++YYCURSOR;
YYDEBUG(221, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_OR;
}
-#line 3488 "Zend/zend_language_scanner.c"
+#line 3463 "Zend/zend_language_scanner.c"
yy222:
YYDEBUG(222, *YYCURSOR);
++YYCURSOR;
YYDEBUG(223, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1418 "Zend/zend_language_scanner.l"
+#line 1410 "Zend/zend_language_scanner.l"
{
return T_OR_EQUAL;
}
-#line 3498 "Zend/zend_language_scanner.c"
+#line 3473 "Zend/zend_language_scanner.c"
yy224:
YYDEBUG(224, *YYCURSOR);
++YYCURSOR;
YYDEBUG(225, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1422 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_AND;
}
-#line 3508 "Zend/zend_language_scanner.c"
+#line 3483 "Zend/zend_language_scanner.c"
yy226:
YYDEBUG(226, *YYCURSOR);
++YYCURSOR;
YYDEBUG(227, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1414 "Zend/zend_language_scanner.l"
+#line 1406 "Zend/zend_language_scanner.l"
{
return T_AND_EQUAL;
}
-#line 3518 "Zend/zend_language_scanner.c"
+#line 3493 "Zend/zend_language_scanner.c"
yy228:
YYDEBUG(228, *YYCURSOR);
++YYCURSOR;
@@ -3523,30 +3498,28 @@ yy228:
yy229:
YYDEBUG(229, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1996 "Zend/zend_language_scanner.l"
+#line 1928 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
- zendlval->value.str.val = yytext; /* no copying - intentional */
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
} else {
yyless(1);
return yytext[0];
}
}
-#line 3540 "Zend/zend_language_scanner.c"
+#line 3513 "Zend/zend_language_scanner.c"
yy230:
YYDEBUG(230, *YYCURSOR);
++YYCURSOR;
YYDEBUG(231, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1402 "Zend/zend_language_scanner.l"
+#line 1394 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 3550 "Zend/zend_language_scanner.c"
+#line 3523 "Zend/zend_language_scanner.c"
yy232:
YYDEBUG(232, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3558,39 +3531,13 @@ yy233:
goto yy229;
yy234:
YYDEBUG(234, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
- YYDEBUG(235, *YYCURSOR);
- if (yych <= 'D') {
- if (yych <= '/') goto yy190;
- if (yych <= '9') goto yy234;
- goto yy190;
- } else {
- if (yych <= 'E') goto yy193;
- if (yych == 'e') goto yy193;
- goto yy190;
- }
-yy236:
- YYDEBUG(236, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(237, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1398 "Zend/zend_language_scanner.l"
- {
- return T_CONCAT_EQUAL;
-}
-#line 3585 "Zend/zend_language_scanner.c"
-yy238:
- YYDEBUG(238, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '*') goto yy243;
-yy239:
- YYDEBUG(239, *YYCURSOR);
+ if (yych == '*') goto yy239;
+yy235:
+ YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1953 "Zend/zend_language_scanner.l"
+#line 1887 "Zend/zend_language_scanner.l"
{
int doc_com;
@@ -3624,281 +3571,281 @@ yy239:
return T_COMMENT;
}
-#line 3628 "Zend/zend_language_scanner.c"
-yy240:
- YYDEBUG(240, *YYCURSOR);
+#line 3575 "Zend/zend_language_scanner.c"
+yy236:
+ YYDEBUG(236, *YYCURSOR);
yych = *++YYCURSOR;
goto yy177;
-yy241:
- YYDEBUG(241, *YYCURSOR);
+yy237:
+ YYDEBUG(237, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(242, *YYCURSOR);
+ YYDEBUG(238, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1394 "Zend/zend_language_scanner.l"
+#line 1386 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 3642 "Zend/zend_language_scanner.c"
-yy243:
- YYDEBUG(243, *YYCURSOR);
+#line 3589 "Zend/zend_language_scanner.c"
+yy239:
+ YYDEBUG(239, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy244;
+ goto yy240;
}
goto yy194;
-yy244:
- YYDEBUG(244, *YYCURSOR);
+yy240:
+ YYDEBUG(240, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(245, *YYCURSOR);
+ YYDEBUG(241, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy244;
+ goto yy240;
}
- goto yy239;
-yy246:
- YYDEBUG(246, *YYCURSOR);
+ goto yy235;
+yy242:
+ YYDEBUG(242, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(247, *YYCURSOR);
+ YYDEBUG(243, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1390 "Zend/zend_language_scanner.l"
+#line 1382 "Zend/zend_language_scanner.l"
{
return T_MUL_EQUAL;
}
-#line 3669 "Zend/zend_language_scanner.c"
-yy248:
- YYDEBUG(248, *YYCURSOR);
+#line 3616 "Zend/zend_language_scanner.c"
+yy244:
+ YYDEBUG(244, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy252;
- YYDEBUG(249, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '=') goto yy248;
+ YYDEBUG(245, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1450 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
{
return T_SR;
}
-#line 3680 "Zend/zend_language_scanner.c"
-yy250:
- YYDEBUG(250, *YYCURSOR);
+#line 3627 "Zend/zend_language_scanner.c"
+yy246:
+ YYDEBUG(246, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(251, *YYCURSOR);
+ YYDEBUG(247, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1378 "Zend/zend_language_scanner.l"
+#line 1370 "Zend/zend_language_scanner.l"
{
return T_IS_GREATER_OR_EQUAL;
}
-#line 3690 "Zend/zend_language_scanner.c"
-yy252:
- YYDEBUG(252, *YYCURSOR);
+#line 3637 "Zend/zend_language_scanner.c"
+yy248:
+ YYDEBUG(248, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(253, *YYCURSOR);
+ YYDEBUG(249, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1410 "Zend/zend_language_scanner.l"
+#line 1402 "Zend/zend_language_scanner.l"
{
return T_SR_EQUAL;
}
-#line 3700 "Zend/zend_language_scanner.c"
-yy254:
- YYDEBUG(254, *YYCURSOR);
+#line 3647 "Zend/zend_language_scanner.c"
+yy250:
+ YYDEBUG(250, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ';') goto yy255;
- if (yych <= '<') goto yy270;
- if (yych <= '=') goto yy268;
-yy255:
- YYDEBUG(255, *YYCURSOR);
+ if (yych <= ';') goto yy251;
+ if (yych <= '<') goto yy266;
+ if (yych <= '=') goto yy264;
+yy251:
+ YYDEBUG(251, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1446 "Zend/zend_language_scanner.l"
+#line 1438 "Zend/zend_language_scanner.l"
{
return T_SL;
}
-#line 3715 "Zend/zend_language_scanner.c"
-yy256:
- YYDEBUG(256, *YYCURSOR);
+#line 3662 "Zend/zend_language_scanner.c"
+yy252:
+ YYDEBUG(252, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy261;
- if (yych == 's') goto yy261;
+ if (yych == 'S') goto yy257;
+ if (yych == 's') goto yy257;
goto yy194;
-yy257:
- YYDEBUG(257, *YYCURSOR);
+yy253:
+ YYDEBUG(253, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(258, *YYCURSOR);
+ YYDEBUG(254, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1374 "Zend/zend_language_scanner.l"
+#line 1366 "Zend/zend_language_scanner.l"
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3731 "Zend/zend_language_scanner.c"
-yy259:
- YYDEBUG(259, *YYCURSOR);
+#line 3678 "Zend/zend_language_scanner.c"
+yy255:
+ YYDEBUG(255, *YYCURSOR);
++YYCURSOR;
-yy260:
- YYDEBUG(260, *YYCURSOR);
+yy256:
+ YYDEBUG(256, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1370 "Zend/zend_language_scanner.l"
+#line 1362 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_EQUAL;
}
-#line 3742 "Zend/zend_language_scanner.c"
-yy261:
- YYDEBUG(261, *YYCURSOR);
+#line 3689 "Zend/zend_language_scanner.c"
+yy257:
+ YYDEBUG(257, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy262;
+ if (yych == 'C') goto yy258;
if (yych != 'c') goto yy194;
-yy262:
- YYDEBUG(262, *YYCURSOR);
+yy258:
+ YYDEBUG(258, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy263;
+ if (yych == 'R') goto yy259;
if (yych != 'r') goto yy194;
-yy263:
- YYDEBUG(263, *YYCURSOR);
+yy259:
+ YYDEBUG(259, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy264;
+ if (yych == 'I') goto yy260;
if (yych != 'i') goto yy194;
-yy264:
- YYDEBUG(264, *YYCURSOR);
+yy260:
+ YYDEBUG(260, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy265;
+ if (yych == 'P') goto yy261;
if (yych != 'p') goto yy194;
-yy265:
- YYDEBUG(265, *YYCURSOR);
+yy261:
+ YYDEBUG(261, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy266;
+ if (yych == 'T') goto yy262;
if (yych != 't') goto yy194;
-yy266:
- YYDEBUG(266, *YYCURSOR);
+yy262:
+ YYDEBUG(262, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(267, *YYCURSOR);
+ YYDEBUG(263, *YYCURSOR);
if (yych <= '\r') {
if (yych <= 0x08) goto yy194;
- if (yych <= '\n') goto yy266;
+ if (yych <= '\n') goto yy262;
if (yych <= '\f') goto yy194;
- goto yy266;
+ goto yy262;
} else {
if (yych <= ' ') {
if (yych <= 0x1F) goto yy194;
- goto yy266;
+ goto yy262;
} else {
if (yych == '>') goto yy206;
goto yy194;
}
}
-yy268:
- YYDEBUG(268, *YYCURSOR);
+yy264:
+ YYDEBUG(264, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(269, *YYCURSOR);
+ YYDEBUG(265, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1406 "Zend/zend_language_scanner.l"
+#line 1398 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 3797 "Zend/zend_language_scanner.c"
-yy270:
- YYDEBUG(270, *YYCURSOR);
+#line 3744 "Zend/zend_language_scanner.c"
+yy266:
+ YYDEBUG(266, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(271, *YYCURSOR);
+ YYDEBUG(267, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy270;
+ goto yy266;
}
if (yych <= 'Z') {
if (yych <= '&') {
- if (yych == '"') goto yy275;
+ if (yych == '"') goto yy271;
goto yy194;
} else {
- if (yych <= '\'') goto yy274;
+ if (yych <= '\'') goto yy270;
if (yych <= '@') goto yy194;
}
} else {
if (yych <= '`') {
if (yych != '_') goto yy194;
} else {
- if (yych <= 'z') goto yy272;
+ if (yych <= 'z') goto yy268;
if (yych <= '~') goto yy194;
}
}
-yy272:
- YYDEBUG(272, *YYCURSOR);
+yy268:
+ YYDEBUG(268, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(273, *YYCURSOR);
+ YYDEBUG(269, *YYCURSOR);
if (yych <= '@') {
if (yych <= '\f') {
- if (yych == '\n') goto yy279;
+ if (yych == '\n') goto yy275;
goto yy194;
} else {
- if (yych <= '\r') goto yy281;
+ if (yych <= '\r') goto yy277;
if (yych <= '/') goto yy194;
- if (yych <= '9') goto yy272;
+ if (yych <= '9') goto yy268;
goto yy194;
}
} else {
if (yych <= '_') {
- if (yych <= 'Z') goto yy272;
+ if (yych <= 'Z') goto yy268;
if (yych <= '^') goto yy194;
- goto yy272;
+ goto yy268;
} else {
if (yych <= '`') goto yy194;
- if (yych <= 'z') goto yy272;
+ if (yych <= 'z') goto yy268;
if (yych <= '~') goto yy194;
- goto yy272;
+ goto yy268;
}
}
-yy274:
- YYDEBUG(274, *YYCURSOR);
+yy270:
+ YYDEBUG(270, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == '\'') goto yy194;
- if (yych <= '/') goto yy283;
+ if (yych <= '/') goto yy279;
if (yych <= '9') goto yy194;
- goto yy283;
-yy275:
- YYDEBUG(275, *YYCURSOR);
+ goto yy279;
+yy271:
+ YYDEBUG(271, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == '"') goto yy194;
- if (yych <= '/') goto yy277;
+ if (yych <= '/') goto yy273;
if (yych <= '9') goto yy194;
- goto yy277;
-yy276:
- YYDEBUG(276, *YYCURSOR);
+ goto yy273;
+yy272:
+ YYDEBUG(272, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy277:
- YYDEBUG(277, *YYCURSOR);
+yy273:
+ YYDEBUG(273, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
if (yych != '"') goto yy194;
} else {
- if (yych <= '9') goto yy276;
+ if (yych <= '9') goto yy272;
if (yych <= '@') goto yy194;
- goto yy276;
+ goto yy272;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy276;
+ if (yych == '_') goto yy272;
goto yy194;
} else {
- if (yych <= 'z') goto yy276;
+ if (yych <= 'z') goto yy272;
if (yych <= '~') goto yy194;
- goto yy276;
+ goto yy272;
}
}
-yy278:
- YYDEBUG(278, *YYCURSOR);
+yy274:
+ YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy279;
- if (yych == '\r') goto yy281;
+ if (yych == '\n') goto yy275;
+ if (yych == '\r') goto yy277;
goto yy194;
-yy279:
- YYDEBUG(279, *YYCURSOR);
+yy275:
+ YYDEBUG(275, *YYCURSOR);
++YYCURSOR;
-yy280:
- YYDEBUG(280, *YYCURSOR);
+yy276:
+ YYDEBUG(276, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2121 "Zend/zend_language_scanner.l"
+#line 2049 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3945,255 +3892,255 @@ yy280:
return T_START_HEREDOC;
}
-#line 3949 "Zend/zend_language_scanner.c"
-yy281:
- YYDEBUG(281, *YYCURSOR);
+#line 3896 "Zend/zend_language_scanner.c"
+yy277:
+ YYDEBUG(277, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy279;
- goto yy280;
-yy282:
- YYDEBUG(282, *YYCURSOR);
+ if (yych == '\n') goto yy275;
+ goto yy276;
+yy278:
+ YYDEBUG(278, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy283:
- YYDEBUG(283, *YYCURSOR);
+yy279:
+ YYDEBUG(279, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
- if (yych == '\'') goto yy278;
+ if (yych == '\'') goto yy274;
goto yy194;
} else {
- if (yych <= '9') goto yy282;
+ if (yych <= '9') goto yy278;
if (yych <= '@') goto yy194;
- goto yy282;
+ goto yy278;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy282;
+ if (yych == '_') goto yy278;
goto yy194;
} else {
- if (yych <= 'z') goto yy282;
+ if (yych <= 'z') goto yy278;
if (yych <= '~') goto yy194;
- goto yy282;
+ goto yy278;
}
}
-yy284:
- YYDEBUG(284, *YYCURSOR);
+yy280:
+ YYDEBUG(280, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '=') goto yy260;
- YYDEBUG(285, *YYCURSOR);
+ if (yych != '=') goto yy256;
+ YYDEBUG(281, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(286, *YYCURSOR);
+ YYDEBUG(282, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1362 "Zend/zend_language_scanner.l"
+#line 1354 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_IDENTICAL;
}
-#line 3993 "Zend/zend_language_scanner.c"
-yy287:
- YYDEBUG(287, *YYCURSOR);
+#line 3940 "Zend/zend_language_scanner.c"
+yy283:
+ YYDEBUG(283, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(288, *YYCURSOR);
+ YYDEBUG(284, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1382 "Zend/zend_language_scanner.l"
+#line 1374 "Zend/zend_language_scanner.l"
{
return T_PLUS_EQUAL;
}
-#line 4003 "Zend/zend_language_scanner.c"
-yy289:
- YYDEBUG(289, *YYCURSOR);
+#line 3950 "Zend/zend_language_scanner.c"
+yy285:
+ YYDEBUG(285, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(290, *YYCURSOR);
+ YYDEBUG(286, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1350 "Zend/zend_language_scanner.l"
+#line 1342 "Zend/zend_language_scanner.l"
{
return T_INC;
}
-#line 4013 "Zend/zend_language_scanner.c"
-yy291:
- YYDEBUG(291, *YYCURSOR);
+#line 3960 "Zend/zend_language_scanner.c"
+yy287:
+ YYDEBUG(287, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy292;
+ if (yych == 'S') goto yy288;
if (yych != 's') goto yy187;
-yy292:
- YYDEBUG(292, *YYCURSOR);
+yy288:
+ YYDEBUG(288, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy293;
+ if (yych == 'T') goto yy289;
if (yych != 't') goto yy187;
-yy293:
- YYDEBUG(293, *YYCURSOR);
+yy289:
+ YYDEBUG(289, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(294, *YYCURSOR);
+ YYDEBUG(290, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1338 "Zend/zend_language_scanner.l"
+#line 1330 "Zend/zend_language_scanner.l"
{
return T_LIST;
}
-#line 4036 "Zend/zend_language_scanner.c"
-yy295:
- YYDEBUG(295, *YYCURSOR);
+#line 3983 "Zend/zend_language_scanner.c"
+yy291:
+ YYDEBUG(291, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy299;
- YYDEBUG(296, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '=') goto yy295;
+ YYDEBUG(292, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1366 "Zend/zend_language_scanner.l"
+#line 1358 "Zend/zend_language_scanner.l"
{
return T_IS_EQUAL;
}
-#line 4047 "Zend/zend_language_scanner.c"
-yy297:
- YYDEBUG(297, *YYCURSOR);
+#line 3994 "Zend/zend_language_scanner.c"
+yy293:
+ YYDEBUG(293, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(298, *YYCURSOR);
+ YYDEBUG(294, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1334 "Zend/zend_language_scanner.l"
+#line 1326 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_ARROW;
}
-#line 4057 "Zend/zend_language_scanner.c"
-yy299:
- YYDEBUG(299, *YYCURSOR);
+#line 4004 "Zend/zend_language_scanner.c"
+yy295:
+ YYDEBUG(295, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(300, *YYCURSOR);
+ YYDEBUG(296, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1358 "Zend/zend_language_scanner.l"
+#line 1350 "Zend/zend_language_scanner.l"
{
return T_IS_IDENTICAL;
}
-#line 4067 "Zend/zend_language_scanner.c"
-yy301:
- YYDEBUG(301, *YYCURSOR);
+#line 4014 "Zend/zend_language_scanner.c"
+yy297:
+ YYDEBUG(297, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'C':
- case 'c': goto yy303;
+ case 'c': goto yy299;
case 'D':
- case 'd': goto yy308;
+ case 'd': goto yy304;
case 'F':
- case 'f': goto yy305;
+ case 'f': goto yy301;
case 'H':
- case 'h': goto yy302;
+ case 'h': goto yy298;
case 'L':
- case 'l': goto yy307;
+ case 'l': goto yy303;
case 'M':
- case 'm': goto yy306;
+ case 'm': goto yy302;
case 'N':
- case 'n': goto yy309;
+ case 'n': goto yy305;
case 'T':
- case 't': goto yy304;
+ case 't': goto yy300;
default: goto yy187;
}
-yy302:
- YYDEBUG(302, *YYCURSOR);
+yy298:
+ YYDEBUG(298, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy370;
- if (yych == 'a') goto yy370;
+ if (yych == 'A') goto yy366;
+ if (yych == 'a') goto yy366;
goto yy187;
-yy303:
- YYDEBUG(303, *YYCURSOR);
+yy299:
+ YYDEBUG(299, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy363;
- if (yych == 'l') goto yy363;
+ if (yych == 'L') goto yy359;
+ if (yych == 'l') goto yy359;
goto yy187;
-yy304:
- YYDEBUG(304, *YYCURSOR);
+yy300:
+ YYDEBUG(300, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy356;
- if (yych == 'r') goto yy356;
+ if (yych == 'R') goto yy352;
+ if (yych == 'r') goto yy352;
goto yy187;
-yy305:
- YYDEBUG(305, *YYCURSOR);
+yy301:
+ YYDEBUG(301, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'I') goto yy340;
+ if (yych == 'I') goto yy336;
if (yych <= 'T') goto yy187;
- goto yy341;
+ goto yy337;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
- goto yy340;
+ goto yy336;
} else {
- if (yych == 'u') goto yy341;
+ if (yych == 'u') goto yy337;
goto yy187;
}
}
+yy302:
+ YYDEBUG(302, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy328;
+ if (yych == 'e') goto yy328;
+ goto yy187;
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy322;
+ if (yych == 'i') goto yy322;
+ goto yy187;
+yy304:
+ YYDEBUG(304, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy317;
+ if (yych == 'i') goto yy317;
+ goto yy187;
+yy305:
+ YYDEBUG(305, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy306;
+ if (yych != 'a') goto yy187;
yy306:
YYDEBUG(306, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy332;
- if (yych == 'e') goto yy332;
- goto yy187;
+ if (yych == 'M') goto yy307;
+ if (yych != 'm') goto yy187;
yy307:
YYDEBUG(307, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy326;
- if (yych == 'i') goto yy326;
- goto yy187;
+ if (yych == 'E') goto yy308;
+ if (yych != 'e') goto yy187;
yy308:
YYDEBUG(308, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy321;
- if (yych == 'i') goto yy321;
- goto yy187;
+ if (yych == 'S') goto yy309;
+ if (yych != 's') goto yy187;
yy309:
YYDEBUG(309, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy310;
- if (yych != 'a') goto yy187;
+ if (yych == 'P') goto yy310;
+ if (yych != 'p') goto yy187;
yy310:
YYDEBUG(310, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy311;
- if (yych != 'm') goto yy187;
+ if (yych == 'A') goto yy311;
+ if (yych != 'a') goto yy187;
yy311:
YYDEBUG(311, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy312;
- if (yych != 'e') goto yy187;
+ if (yych == 'C') goto yy312;
+ if (yych != 'c') goto yy187;
yy312:
YYDEBUG(312, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy313;
- if (yych != 's') goto yy187;
+ if (yych == 'E') goto yy313;
+ if (yych != 'e') goto yy187;
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy314;
- if (yych != 'p') goto yy187;
-yy314:
- YYDEBUG(314, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy315;
- if (yych != 'a') goto yy187;
-yy315:
- YYDEBUG(315, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy316;
- if (yych != 'c') goto yy187;
-yy316:
- YYDEBUG(316, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy317;
- if (yych != 'e') goto yy187;
-yy317:
- YYDEBUG(317, *YYCURSOR);
- yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(318, *YYCURSOR);
+ YYDEBUG(314, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(319, *YYCURSOR);
+ YYDEBUG(315, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(320, *YYCURSOR);
+ YYDEBUG(316, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1722 "Zend/zend_language_scanner.l"
+#line 1668 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
@@ -4203,27 +4150,27 @@ yy317:
}
return T_NS_C;
}
-#line 4207 "Zend/zend_language_scanner.c"
-yy321:
- YYDEBUG(321, *YYCURSOR);
+#line 4154 "Zend/zend_language_scanner.c"
+yy317:
+ YYDEBUG(317, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy322;
+ if (yych == 'R') goto yy318;
if (yych != 'r') goto yy187;
-yy322:
- YYDEBUG(322, *YYCURSOR);
+yy318:
+ YYDEBUG(318, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(323, *YYCURSOR);
+ YYDEBUG(319, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(324, *YYCURSOR);
+ YYDEBUG(320, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(325, *YYCURSOR);
+ YYDEBUG(321, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1695 "Zend/zend_language_scanner.l"
+#line 1643 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
@@ -4245,91 +4192,80 @@ yy322:
#endif
}
- zendlval->value.str.len = strlen(dirname);
- zendlval->value.str.val = dirname;
- zendlval->type = IS_STRING;
+ ZVAL_STRING(zendlval, dirname, 0);
return T_DIR;
}
-#line 4254 "Zend/zend_language_scanner.c"
-yy326:
- YYDEBUG(326, *YYCURSOR);
+#line 4199 "Zend/zend_language_scanner.c"
+yy322:
+ YYDEBUG(322, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy327;
+ if (yych == 'N') goto yy323;
if (yych != 'n') goto yy187;
-yy327:
- YYDEBUG(327, *YYCURSOR);
+yy323:
+ YYDEBUG(323, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy328;
+ if (yych == 'E') goto yy324;
if (yych != 'e') goto yy187;
-yy328:
- YYDEBUG(328, *YYCURSOR);
+yy324:
+ YYDEBUG(324, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(329, *YYCURSOR);
+ YYDEBUG(325, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(330, *YYCURSOR);
+ YYDEBUG(326, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(331, *YYCURSOR);
+ YYDEBUG(327, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1677 "Zend/zend_language_scanner.l"
+#line 1628 "Zend/zend_language_scanner.l"
{
- zendlval->value.lval = CG(zend_lineno);
- zendlval->type = IS_LONG;
+ ZVAL_LONG(zendlval, CG(zend_lineno));
return T_LINE;
}
-#line 4285 "Zend/zend_language_scanner.c"
-yy332:
- YYDEBUG(332, *YYCURSOR);
+#line 4229 "Zend/zend_language_scanner.c"
+yy328:
+ YYDEBUG(328, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy333;
+ if (yych == 'T') goto yy329;
if (yych != 't') goto yy187;
-yy333:
- YYDEBUG(333, *YYCURSOR);
+yy329:
+ YYDEBUG(329, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy334;
+ if (yych == 'H') goto yy330;
if (yych != 'h') goto yy187;
-yy334:
- YYDEBUG(334, *YYCURSOR);
+yy330:
+ YYDEBUG(330, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy335;
+ if (yych == 'O') goto yy331;
if (yych != 'o') goto yy187;
-yy335:
- YYDEBUG(335, *YYCURSOR);
+yy331:
+ YYDEBUG(331, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy336;
+ if (yych == 'D') goto yy332;
if (yych != 'd') goto yy187;
-yy336:
- YYDEBUG(336, *YYCURSOR);
+yy332:
+ YYDEBUG(332, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(337, *YYCURSOR);
+ YYDEBUG(333, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(338, *YYCURSOR);
+ YYDEBUG(334, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(339, *YYCURSOR);
+ YYDEBUG(335, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1656 "Zend/zend_language_scanner.l"
+#line 1615 "Zend/zend_language_scanner.l"
{
const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
- size_t len = 0;
-
- if (class_name) {
- len += strlen(class_name) + 2;
- }
- if (func_name) {
- len += strlen(func_name);
- }
- zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
+ Z_STRLEN_P(zendlval) = zend_spprintf(&Z_STRVAL_P(zendlval), 0, "%s%s%s",
class_name ? class_name : "",
class_name && func_name ? "::" : "",
func_name ? func_name : ""
@@ -4337,266 +4273,263 @@ yy336:
zendlval->type = IS_STRING;
return T_METHOD_C;
}
-#line 4341 "Zend/zend_language_scanner.c"
-yy340:
- YYDEBUG(340, *YYCURSOR);
+#line 4277 "Zend/zend_language_scanner.c"
+yy336:
+ YYDEBUG(336, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy351;
- if (yych == 'l') goto yy351;
+ if (yych == 'L') goto yy347;
+ if (yych == 'l') goto yy347;
goto yy187;
-yy341:
- YYDEBUG(341, *YYCURSOR);
+yy337:
+ YYDEBUG(337, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy342;
+ if (yych == 'N') goto yy338;
if (yych != 'n') goto yy187;
-yy342:
- YYDEBUG(342, *YYCURSOR);
+yy338:
+ YYDEBUG(338, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy343;
+ if (yych == 'C') goto yy339;
if (yych != 'c') goto yy187;
-yy343:
- YYDEBUG(343, *YYCURSOR);
+yy339:
+ YYDEBUG(339, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy344;
+ if (yych == 'T') goto yy340;
if (yych != 't') goto yy187;
-yy344:
- YYDEBUG(344, *YYCURSOR);
+yy340:
+ YYDEBUG(340, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy345;
+ if (yych == 'I') goto yy341;
if (yych != 'i') goto yy187;
-yy345:
- YYDEBUG(345, *YYCURSOR);
+yy341:
+ YYDEBUG(341, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy346;
+ if (yych == 'O') goto yy342;
if (yych != 'o') goto yy187;
-yy346:
- YYDEBUG(346, *YYCURSOR);
+yy342:
+ YYDEBUG(342, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy347;
+ if (yych == 'N') goto yy343;
if (yych != 'n') goto yy187;
-yy347:
- YYDEBUG(347, *YYCURSOR);
+yy343:
+ YYDEBUG(343, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(348, *YYCURSOR);
+ YYDEBUG(344, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(349, *YYCURSOR);
+ YYDEBUG(345, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(350, *YYCURSOR);
+ YYDEBUG(346, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1640 "Zend/zend_language_scanner.l"
+#line 1605 "Zend/zend_language_scanner.l"
{
- const char *func_name = NULL;
-
- if (CG(active_op_array)) {
- func_name = CG(active_op_array)->function_name;
- }
-
- if (!func_name) {
- func_name = "";
+ zend_op_array *op_array = CG(active_op_array);
+ if (op_array && op_array->function_name) {
+ ZVAL_STRING(zendlval, op_array->function_name, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
}
- zendlval->value.str.len = strlen(func_name);
- zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
return T_FUNC_C;
}
-#line 4408 "Zend/zend_language_scanner.c"
-yy351:
- YYDEBUG(351, *YYCURSOR);
+#line 4338 "Zend/zend_language_scanner.c"
+yy347:
+ YYDEBUG(347, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy352;
+ if (yych == 'E') goto yy348;
if (yych != 'e') goto yy187;
-yy352:
- YYDEBUG(352, *YYCURSOR);
+yy348:
+ YYDEBUG(348, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(353, *YYCURSOR);
+ YYDEBUG(349, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(354, *YYCURSOR);
+ YYDEBUG(350, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(355, *YYCURSOR);
+ YYDEBUG(351, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1683 "Zend/zend_language_scanner.l"
+#line 1633 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
if (!filename) {
filename = "";
}
- zendlval->value.str.len = strlen(filename);
- zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
- zendlval->type = IS_STRING;
+ ZVAL_STRING(zendlval, filename, 1);
return T_FILE;
}
-#line 4440 "Zend/zend_language_scanner.c"
-yy356:
- YYDEBUG(356, *YYCURSOR);
+#line 4368 "Zend/zend_language_scanner.c"
+yy352:
+ YYDEBUG(352, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy357;
+ if (yych == 'A') goto yy353;
if (yych != 'a') goto yy187;
-yy357:
- YYDEBUG(357, *YYCURSOR);
+yy353:
+ YYDEBUG(353, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy358;
+ if (yych == 'I') goto yy354;
if (yych != 'i') goto yy187;
-yy358:
- YYDEBUG(358, *YYCURSOR);
+yy354:
+ YYDEBUG(354, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy359;
+ if (yych == 'T') goto yy355;
if (yych != 't') goto yy187;
-yy359:
- YYDEBUG(359, *YYCURSOR);
+yy355:
+ YYDEBUG(355, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(360, *YYCURSOR);
+ YYDEBUG(356, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(361, *YYCURSOR);
+ YYDEBUG(357, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(362, *YYCURSOR);
+ YYDEBUG(358, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1620 "Zend/zend_language_scanner.l"
+#line 1595 "Zend/zend_language_scanner.l"
{
- const char *trait_name = NULL;
-
- if (CG(active_class_entry)
- && (ZEND_ACC_TRAIT ==
- (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
- trait_name = CG(active_class_entry)->name;
- }
-
- if (!trait_name) {
- trait_name = "";
+ zend_class_entry *ce = CG(active_class_entry);
+ if (ce && ce->name && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
+ ZVAL_STRINGL(zendlval, ce->name, ce->name_length, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
}
-
- zendlval->value.str.len = strlen(trait_name);
- zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
-
return T_TRAIT_C;
}
-#line 4490 "Zend/zend_language_scanner.c"
-yy363:
- YYDEBUG(363, *YYCURSOR);
+#line 4408 "Zend/zend_language_scanner.c"
+yy359:
+ YYDEBUG(359, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy364;
+ if (yych == 'A') goto yy360;
if (yych != 'a') goto yy187;
-yy364:
- YYDEBUG(364, *YYCURSOR);
+yy360:
+ YYDEBUG(360, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy365;
+ if (yych == 'S') goto yy361;
if (yych != 's') goto yy187;
-yy365:
- YYDEBUG(365, *YYCURSOR);
+yy361:
+ YYDEBUG(361, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy366;
+ if (yych == 'S') goto yy362;
if (yych != 's') goto yy187;
-yy366:
- YYDEBUG(366, *YYCURSOR);
+yy362:
+ YYDEBUG(362, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(367, *YYCURSOR);
+ YYDEBUG(363, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(368, *YYCURSOR);
+ YYDEBUG(364, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(369, *YYCURSOR);
+ YYDEBUG(365, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1593 "Zend/zend_language_scanner.l"
+#line 1577 "Zend/zend_language_scanner.l"
{
- const char *class_name = NULL;
-
- if (CG(active_class_entry)
- && (ZEND_ACC_TRAIT ==
- (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
+ zend_class_entry *ce = CG(active_class_entry);
+ if (ce && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
/* We create a special __CLASS__ constant that is going to be resolved
at run-time */
- zendlval->value.str.len = sizeof("__CLASS__")-1;
- zendlval->value.str.val = estrndup("__CLASS__", zendlval->value.str.len);
+ Z_STRLEN_P(zendlval) = sizeof("__CLASS__")-1;
+ Z_STRVAL_P(zendlval) = estrndup("__CLASS__", Z_STRLEN_P(zendlval));
zendlval->type = IS_CONSTANT;
} else {
- if (CG(active_class_entry)) {
- class_name = CG(active_class_entry)->name;
- }
-
- if (!class_name) {
- class_name = "";
+ if (ce && ce->name) {
+ ZVAL_STRINGL(zendlval, ce->name, ce->name_length, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
}
-
- zendlval->value.str.len = strlen(class_name);
- zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
}
return T_CLASS_C;
}
-#line 4547 "Zend/zend_language_scanner.c"
+#line 4456 "Zend/zend_language_scanner.c"
+yy366:
+ YYDEBUG(366, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy367;
+ if (yych != 'l') goto yy187;
+yy367:
+ YYDEBUG(367, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy368;
+ if (yych != 't') goto yy187;
+yy368:
+ YYDEBUG(368, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(369, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy370;
+ if (yych != 'c') goto yy187;
yy370:
YYDEBUG(370, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy371;
- if (yych != 'l') goto yy187;
+ if (yych == 'O') goto yy371;
+ if (yych != 'o') goto yy187;
yy371:
YYDEBUG(371, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy372;
- if (yych != 't') goto yy187;
+ if (yych == 'M') goto yy372;
+ if (yych != 'm') goto yy187;
yy372:
YYDEBUG(372, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy187;
+ if (yych == 'P') goto yy373;
+ if (yych != 'p') goto yy187;
+yy373:
YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy374;
- if (yych != 'c') goto yy187;
+ if (yych == 'I') goto yy374;
+ if (yych != 'i') goto yy187;
yy374:
YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy375;
- if (yych != 'o') goto yy187;
+ if (yych == 'L') goto yy375;
+ if (yych != 'l') goto yy187;
yy375:
YYDEBUG(375, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy376;
- if (yych != 'm') goto yy187;
+ if (yych == 'E') goto yy376;
+ if (yych != 'e') goto yy187;
yy376:
YYDEBUG(376, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy377;
- if (yych != 'p') goto yy187;
+ if (yych == 'R') goto yy377;
+ if (yych != 'r') goto yy187;
yy377:
YYDEBUG(377, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy378;
- if (yych != 'i') goto yy187;
-yy378:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(378, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy379;
- if (yych != 'l') goto yy187;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1294 "Zend/zend_language_scanner.l"
+ {
+ return T_HALT_COMPILER;
+}
+#line 4522 "Zend/zend_language_scanner.c"
yy379:
YYDEBUG(379, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy380;
- if (yych != 'e') goto yy187;
+ if (yych == 'S') goto yy383;
+ if (yych == 's') goto yy383;
+ goto yy187;
yy380:
YYDEBUG(380, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy381;
- if (yych != 'r') goto yy187;
+ if (yych == 'E') goto yy381;
+ if (yych != 'e') goto yy187;
yy381:
YYDEBUG(381, *YYCURSOR);
++YYCURSOR;
@@ -4605,22 +4538,21 @@ yy381:
}
YYDEBUG(382, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1302 "Zend/zend_language_scanner.l"
+#line 1274 "Zend/zend_language_scanner.l"
{
- return T_HALT_COMPILER;
+ return T_USE;
}
-#line 4613 "Zend/zend_language_scanner.c"
+#line 4546 "Zend/zend_language_scanner.c"
yy383:
YYDEBUG(383, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy387;
- if (yych == 's') goto yy387;
- goto yy187;
+ if (yych == 'E') goto yy384;
+ if (yych != 'e') goto yy187;
yy384:
YYDEBUG(384, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy385;
- if (yych != 'e') goto yy187;
+ if (yych == 'T') goto yy385;
+ if (yych != 't') goto yy187;
yy385:
YYDEBUG(385, *YYCURSOR);
++YYCURSOR;
@@ -4629,742 +4561,743 @@ yy385:
}
YYDEBUG(386, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
+#line 1322 "Zend/zend_language_scanner.l"
{
- return T_USE;
+ return T_UNSET;
}
-#line 4637 "Zend/zend_language_scanner.c"
+#line 4569 "Zend/zend_language_scanner.c"
yy387:
YYDEBUG(387, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy388;
- if (yych != 'e') goto yy187;
-yy388:
- YYDEBUG(388, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy389;
- if (yych != 't') goto yy187;
-yy389:
- YYDEBUG(389, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy186;
- }
- YYDEBUG(390, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1330 "Zend/zend_language_scanner.l"
- {
- return T_UNSET;
-}
-#line 4660 "Zend/zend_language_scanner.c"
-yy391:
- YYDEBUG(391, *YYCURSOR);
++YYCURSOR;
YYFILL(7);
yych = *YYCURSOR;
-yy392:
- YYDEBUG(392, *YYCURSOR);
+yy388:
+ YYDEBUG(388, *YYCURSOR);
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy391;
+ if (yych == '\t') goto yy387;
if (yych <= 0x1F) goto yy194;
- goto yy391;
+ goto yy387;
} else {
if (yych <= 'A') {
if (yych <= '@') goto yy194;
- goto yy396;
+ goto yy392;
} else {
- if (yych <= 'B') goto yy394;
+ if (yych <= 'B') goto yy390;
if (yych <= 'C') goto yy194;
- goto yy399;
+ goto yy395;
}
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy400;
+ if (yych == 'F') goto yy396;
if (yych <= 'H') goto yy194;
- goto yy401;
+ goto yy397;
} else {
if (yych <= 'O') {
if (yych <= 'N') goto yy194;
- goto yy395;
+ goto yy391;
} else {
if (yych <= 'Q') goto yy194;
- if (yych <= 'R') goto yy398;
- goto yy397;
+ if (yych <= 'R') goto yy394;
+ goto yy393;
}
}
}
} else {
if (yych <= 'f') {
if (yych <= 'a') {
- if (yych == 'U') goto yy393;
+ if (yych == 'U') goto yy389;
if (yych <= '`') goto yy194;
- goto yy396;
+ goto yy392;
} else {
if (yych <= 'c') {
- if (yych <= 'b') goto yy394;
+ if (yych <= 'b') goto yy390;
goto yy194;
} else {
- if (yych <= 'd') goto yy399;
+ if (yych <= 'd') goto yy395;
if (yych <= 'e') goto yy194;
- goto yy400;
+ goto yy396;
}
}
} else {
if (yych <= 'q') {
if (yych <= 'i') {
if (yych <= 'h') goto yy194;
- goto yy401;
+ goto yy397;
} else {
- if (yych == 'o') goto yy395;
+ if (yych == 'o') goto yy391;
goto yy194;
}
} else {
if (yych <= 's') {
- if (yych <= 'r') goto yy398;
- goto yy397;
+ if (yych <= 'r') goto yy394;
+ goto yy393;
} else {
if (yych != 'u') goto yy194;
}
}
}
}
-yy393:
- YYDEBUG(393, *YYCURSOR);
+yy389:
+ YYDEBUG(389, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy460;
- if (yych == 'n') goto yy460;
+ if (yych == 'N') goto yy456;
+ if (yych == 'n') goto yy456;
goto yy194;
-yy394:
- YYDEBUG(394, *YYCURSOR);
+yy390:
+ YYDEBUG(390, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy447;
+ if (yych == 'I') goto yy443;
if (yych <= 'N') goto yy194;
- goto yy448;
+ goto yy444;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy194;
- goto yy447;
+ goto yy443;
} else {
- if (yych == 'o') goto yy448;
+ if (yych == 'o') goto yy444;
goto yy194;
}
}
+yy391:
+ YYDEBUG(391, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'B') goto yy435;
+ if (yych == 'b') goto yy435;
+ goto yy194;
+yy392:
+ YYDEBUG(392, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy428;
+ if (yych == 'r') goto yy428;
+ goto yy194;
+yy393:
+ YYDEBUG(393, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy420;
+ if (yych == 't') goto yy420;
+ goto yy194;
+yy394:
+ YYDEBUG(394, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy418;
+ if (yych == 'e') goto yy418;
+ goto yy194;
yy395:
YYDEBUG(395, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy439;
- if (yych == 'b') goto yy439;
+ if (yych == 'O') goto yy414;
+ if (yych == 'o') goto yy414;
goto yy194;
yy396:
YYDEBUG(396, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy432;
- if (yych == 'r') goto yy432;
+ if (yych == 'L') goto yy407;
+ if (yych == 'l') goto yy407;
goto yy194;
yy397:
YYDEBUG(397, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy424;
- if (yych == 't') goto yy424;
- goto yy194;
+ if (yych == 'N') goto yy398;
+ if (yych != 'n') goto yy194;
yy398:
YYDEBUG(398, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy422;
- if (yych == 'e') goto yy422;
- goto yy194;
+ if (yych == 'T') goto yy399;
+ if (yych != 't') goto yy194;
yy399:
YYDEBUG(399, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy418;
- if (yych == 'o') goto yy418;
- goto yy194;
+ if (yych == 'E') goto yy400;
+ if (yych != 'e') goto yy402;
yy400:
YYDEBUG(400, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy411;
- if (yych == 'l') goto yy411;
+ if (yych == 'G') goto yy405;
+ if (yych == 'g') goto yy405;
goto yy194;
yy401:
YYDEBUG(401, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy402;
- if (yych != 'n') goto yy194;
-yy402:
- YYDEBUG(402, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy403;
- if (yych != 't') goto yy194;
-yy403:
- YYDEBUG(403, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy404;
- if (yych != 'e') goto yy406;
-yy404:
- YYDEBUG(404, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'G') goto yy409;
- if (yych == 'g') goto yy409;
- goto yy194;
-yy405:
- YYDEBUG(405, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy406:
- YYDEBUG(406, *YYCURSOR);
+yy402:
+ YYDEBUG(402, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy405;
+ if (yych == '\t') goto yy401;
goto yy194;
} else {
- if (yych <= ' ') goto yy405;
+ if (yych <= ' ') goto yy401;
if (yych != ')') goto yy194;
}
- YYDEBUG(407, *YYCURSOR);
+ YYDEBUG(403, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(408, *YYCURSOR);
+ YYDEBUG(404, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1222 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 4836 "Zend/zend_language_scanner.c"
-yy409:
- YYDEBUG(409, *YYCURSOR);
+#line 4745 "Zend/zend_language_scanner.c"
+yy405:
+ YYDEBUG(405, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy410;
+ if (yych == 'E') goto yy406;
if (yych != 'e') goto yy194;
-yy410:
- YYDEBUG(410, *YYCURSOR);
+yy406:
+ YYDEBUG(406, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy405;
- if (yych == 'r') goto yy405;
+ if (yych == 'R') goto yy401;
+ if (yych == 'r') goto yy401;
goto yy194;
-yy411:
- YYDEBUG(411, *YYCURSOR);
+yy407:
+ YYDEBUG(407, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy412;
+ if (yych == 'O') goto yy408;
if (yych != 'o') goto yy194;
-yy412:
- YYDEBUG(412, *YYCURSOR);
+yy408:
+ YYDEBUG(408, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy413;
+ if (yych == 'A') goto yy409;
if (yych != 'a') goto yy194;
-yy413:
- YYDEBUG(413, *YYCURSOR);
+yy409:
+ YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy414;
+ if (yych == 'T') goto yy410;
if (yych != 't') goto yy194;
-yy414:
- YYDEBUG(414, *YYCURSOR);
+yy410:
+ YYDEBUG(410, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(415, *YYCURSOR);
+ YYDEBUG(411, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy414;
+ if (yych == '\t') goto yy410;
goto yy194;
} else {
- if (yych <= ' ') goto yy414;
+ if (yych <= ' ') goto yy410;
if (yych != ')') goto yy194;
}
- YYDEBUG(416, *YYCURSOR);
+ YYDEBUG(412, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(417, *YYCURSOR);
+ YYDEBUG(413, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1226 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 4884 "Zend/zend_language_scanner.c"
-yy418:
- YYDEBUG(418, *YYCURSOR);
+#line 4793 "Zend/zend_language_scanner.c"
+yy414:
+ YYDEBUG(414, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy419;
+ if (yych == 'U') goto yy415;
if (yych != 'u') goto yy194;
-yy419:
- YYDEBUG(419, *YYCURSOR);
+yy415:
+ YYDEBUG(415, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy420;
+ if (yych == 'B') goto yy416;
if (yych != 'b') goto yy194;
-yy420:
- YYDEBUG(420, *YYCURSOR);
+yy416:
+ YYDEBUG(416, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy421;
+ if (yych == 'L') goto yy417;
if (yych != 'l') goto yy194;
-yy421:
- YYDEBUG(421, *YYCURSOR);
+yy417:
+ YYDEBUG(417, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy414;
- if (yych == 'e') goto yy414;
+ if (yych == 'E') goto yy410;
+ if (yych == 'e') goto yy410;
goto yy194;
-yy422:
- YYDEBUG(422, *YYCURSOR);
+yy418:
+ YYDEBUG(418, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy423;
+ if (yych == 'A') goto yy419;
if (yych != 'a') goto yy194;
-yy423:
- YYDEBUG(423, *YYCURSOR);
+yy419:
+ YYDEBUG(419, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy414;
- if (yych == 'l') goto yy414;
+ if (yych == 'L') goto yy410;
+ if (yych == 'l') goto yy410;
goto yy194;
-yy424:
- YYDEBUG(424, *YYCURSOR);
+yy420:
+ YYDEBUG(420, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy425;
+ if (yych == 'R') goto yy421;
if (yych != 'r') goto yy194;
-yy425:
- YYDEBUG(425, *YYCURSOR);
+yy421:
+ YYDEBUG(421, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy426;
+ if (yych == 'I') goto yy422;
if (yych != 'i') goto yy194;
-yy426:
- YYDEBUG(426, *YYCURSOR);
+yy422:
+ YYDEBUG(422, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy427;
+ if (yych == 'N') goto yy423;
if (yych != 'n') goto yy194;
-yy427:
- YYDEBUG(427, *YYCURSOR);
+yy423:
+ YYDEBUG(423, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy428;
+ if (yych == 'G') goto yy424;
if (yych != 'g') goto yy194;
-yy428:
- YYDEBUG(428, *YYCURSOR);
+yy424:
+ YYDEBUG(424, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(429, *YYCURSOR);
+ YYDEBUG(425, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy428;
+ if (yych == '\t') goto yy424;
goto yy194;
} else {
- if (yych <= ' ') goto yy428;
+ if (yych <= ' ') goto yy424;
if (yych != ')') goto yy194;
}
- YYDEBUG(430, *YYCURSOR);
+ YYDEBUG(426, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(431, *YYCURSOR);
+ YYDEBUG(427, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1230 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 4958 "Zend/zend_language_scanner.c"
-yy432:
- YYDEBUG(432, *YYCURSOR);
+#line 4867 "Zend/zend_language_scanner.c"
+yy428:
+ YYDEBUG(428, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy433;
+ if (yych == 'R') goto yy429;
if (yych != 'r') goto yy194;
-yy433:
- YYDEBUG(433, *YYCURSOR);
+yy429:
+ YYDEBUG(429, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy434;
+ if (yych == 'A') goto yy430;
if (yych != 'a') goto yy194;
-yy434:
- YYDEBUG(434, *YYCURSOR);
+yy430:
+ YYDEBUG(430, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy435;
+ if (yych == 'Y') goto yy431;
if (yych != 'y') goto yy194;
-yy435:
- YYDEBUG(435, *YYCURSOR);
+yy431:
+ YYDEBUG(431, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(436, *YYCURSOR);
+ YYDEBUG(432, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy435;
+ if (yych == '\t') goto yy431;
goto yy194;
} else {
- if (yych <= ' ') goto yy435;
+ if (yych <= ' ') goto yy431;
if (yych != ')') goto yy194;
}
- YYDEBUG(437, *YYCURSOR);
+ YYDEBUG(433, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(438, *YYCURSOR);
+ YYDEBUG(434, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1234 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 4995 "Zend/zend_language_scanner.c"
-yy439:
- YYDEBUG(439, *YYCURSOR);
+#line 4904 "Zend/zend_language_scanner.c"
+yy435:
+ YYDEBUG(435, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'J') goto yy440;
+ if (yych == 'J') goto yy436;
if (yych != 'j') goto yy194;
-yy440:
- YYDEBUG(440, *YYCURSOR);
+yy436:
+ YYDEBUG(436, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy441;
+ if (yych == 'E') goto yy437;
if (yych != 'e') goto yy194;
-yy441:
- YYDEBUG(441, *YYCURSOR);
+yy437:
+ YYDEBUG(437, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy442;
+ if (yych == 'C') goto yy438;
if (yych != 'c') goto yy194;
-yy442:
- YYDEBUG(442, *YYCURSOR);
+yy438:
+ YYDEBUG(438, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy443;
+ if (yych == 'T') goto yy439;
if (yych != 't') goto yy194;
-yy443:
- YYDEBUG(443, *YYCURSOR);
+yy439:
+ YYDEBUG(439, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(444, *YYCURSOR);
+ YYDEBUG(440, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy443;
+ if (yych == '\t') goto yy439;
goto yy194;
} else {
- if (yych <= ' ') goto yy443;
+ if (yych <= ' ') goto yy439;
if (yych != ')') goto yy194;
}
- YYDEBUG(445, *YYCURSOR);
+ YYDEBUG(441, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(446, *YYCURSOR);
+ YYDEBUG(442, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1238 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 5037 "Zend/zend_language_scanner.c"
-yy447:
- YYDEBUG(447, *YYCURSOR);
+#line 4946 "Zend/zend_language_scanner.c"
+yy443:
+ YYDEBUG(443, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy457;
- if (yych == 'n') goto yy457;
+ if (yych == 'N') goto yy453;
+ if (yych == 'n') goto yy453;
goto yy194;
-yy448:
- YYDEBUG(448, *YYCURSOR);
+yy444:
+ YYDEBUG(444, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy449;
+ if (yych == 'O') goto yy445;
if (yych != 'o') goto yy194;
-yy449:
- YYDEBUG(449, *YYCURSOR);
+yy445:
+ YYDEBUG(445, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy450;
+ if (yych == 'L') goto yy446;
if (yych != 'l') goto yy194;
-yy450:
- YYDEBUG(450, *YYCURSOR);
+yy446:
+ YYDEBUG(446, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy455;
- if (yych == 'e') goto yy455;
- goto yy452;
-yy451:
- YYDEBUG(451, *YYCURSOR);
+ if (yych == 'E') goto yy451;
+ if (yych == 'e') goto yy451;
+ goto yy448;
+yy447:
+ YYDEBUG(447, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy452:
- YYDEBUG(452, *YYCURSOR);
+yy448:
+ YYDEBUG(448, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy451;
+ if (yych == '\t') goto yy447;
goto yy194;
} else {
- if (yych <= ' ') goto yy451;
+ if (yych <= ' ') goto yy447;
if (yych != ')') goto yy194;
}
- YYDEBUG(453, *YYCURSOR);
+ YYDEBUG(449, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(454, *YYCURSOR);
+ YYDEBUG(450, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
+#line 1242 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 5082 "Zend/zend_language_scanner.c"
-yy455:
- YYDEBUG(455, *YYCURSOR);
+#line 4991 "Zend/zend_language_scanner.c"
+yy451:
+ YYDEBUG(451, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy456;
+ if (yych == 'A') goto yy452;
if (yych != 'a') goto yy194;
-yy456:
- YYDEBUG(456, *YYCURSOR);
+yy452:
+ YYDEBUG(452, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy451;
- if (yych == 'n') goto yy451;
+ if (yych == 'N') goto yy447;
+ if (yych == 'n') goto yy447;
goto yy194;
-yy457:
- YYDEBUG(457, *YYCURSOR);
+yy453:
+ YYDEBUG(453, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy458;
+ if (yych == 'A') goto yy454;
if (yych != 'a') goto yy194;
-yy458:
- YYDEBUG(458, *YYCURSOR);
+yy454:
+ YYDEBUG(454, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy459;
+ if (yych == 'R') goto yy455;
if (yych != 'r') goto yy194;
-yy459:
- YYDEBUG(459, *YYCURSOR);
+yy455:
+ YYDEBUG(455, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy428;
- if (yych == 'y') goto yy428;
+ if (yych == 'Y') goto yy424;
+ if (yych == 'y') goto yy424;
goto yy194;
-yy460:
- YYDEBUG(460, *YYCURSOR);
+yy456:
+ YYDEBUG(456, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy461;
+ if (yych == 'S') goto yy457;
if (yych != 's') goto yy194;
-yy461:
- YYDEBUG(461, *YYCURSOR);
+yy457:
+ YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy462;
+ if (yych == 'E') goto yy458;
if (yych != 'e') goto yy194;
-yy462:
- YYDEBUG(462, *YYCURSOR);
+yy458:
+ YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy463;
+ if (yych == 'T') goto yy459;
if (yych != 't') goto yy194;
-yy463:
- YYDEBUG(463, *YYCURSOR);
+yy459:
+ YYDEBUG(459, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(464, *YYCURSOR);
+ YYDEBUG(460, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy463;
+ if (yych == '\t') goto yy459;
goto yy194;
} else {
- if (yych <= ' ') goto yy463;
+ if (yych <= ' ') goto yy459;
if (yych != ')') goto yy194;
}
- YYDEBUG(465, *YYCURSOR);
+ YYDEBUG(461, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(466, *YYCURSOR);
+ YYDEBUG(462, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
+#line 1246 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 5146 "Zend/zend_language_scanner.c"
-yy467:
- YYDEBUG(467, *YYCURSOR);
+#line 5055 "Zend/zend_language_scanner.c"
+yy463:
+ YYDEBUG(463, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy468;
+ if (yych == 'R') goto yy464;
if (yych != 'r') goto yy187;
-yy468:
- YYDEBUG(468, *YYCURSOR);
+yy464:
+ YYDEBUG(464, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(469, *YYCURSOR);
+ YYDEBUG(465, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1218 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 5164 "Zend/zend_language_scanner.c"
-yy470:
- YYDEBUG(470, *YYCURSOR);
+#line 5073 "Zend/zend_language_scanner.c"
+yy466:
+ YYDEBUG(466, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy474;
- if (yych == 'm') goto yy474;
+ if (yych == 'M') goto yy470;
+ if (yych == 'm') goto yy470;
goto yy187;
-yy471:
- YYDEBUG(471, *YYCURSOR);
+yy467:
+ YYDEBUG(467, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy472;
+ if (yych == 'W') goto yy468;
if (yych != 'w') goto yy187;
-yy472:
- YYDEBUG(472, *YYCURSOR);
+yy468:
+ YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(473, *YYCURSOR);
+ YYDEBUG(469, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1210 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 5188 "Zend/zend_language_scanner.c"
-yy474:
- YYDEBUG(474, *YYCURSOR);
+#line 5097 "Zend/zend_language_scanner.c"
+yy470:
+ YYDEBUG(470, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy475;
+ if (yych == 'E') goto yy471;
if (yych != 'e') goto yy187;
-yy475:
- YYDEBUG(475, *YYCURSOR);
+yy471:
+ YYDEBUG(471, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy476;
+ if (yych == 'S') goto yy472;
if (yych != 's') goto yy187;
-yy476:
- YYDEBUG(476, *YYCURSOR);
+yy472:
+ YYDEBUG(472, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy477;
+ if (yych == 'P') goto yy473;
if (yych != 'p') goto yy187;
-yy477:
- YYDEBUG(477, *YYCURSOR);
+yy473:
+ YYDEBUG(473, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy478;
+ if (yych == 'A') goto yy474;
if (yych != 'a') goto yy187;
-yy478:
- YYDEBUG(478, *YYCURSOR);
+yy474:
+ YYDEBUG(474, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy479;
+ if (yych == 'C') goto yy475;
if (yych != 'c') goto yy187;
-yy479:
- YYDEBUG(479, *YYCURSOR);
+yy475:
+ YYDEBUG(475, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy480;
+ if (yych == 'E') goto yy476;
if (yych != 'e') goto yy187;
-yy480:
- YYDEBUG(480, *YYCURSOR);
+yy476:
+ YYDEBUG(476, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(481, *YYCURSOR);
+ YYDEBUG(477, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
+#line 1270 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 5231 "Zend/zend_language_scanner.c"
+#line 5140 "Zend/zend_language_scanner.c"
+yy478:
+ YYDEBUG(478, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
+ YYDEBUG(479, *YYCURSOR);
+ if (yych <= 'D') {
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy478;
+ goto yy190;
+ } else {
+ if (yych <= 'E') goto yy193;
+ if (yych == 'e') goto yy193;
+ goto yy190;
+ }
+yy480:
+ YYDEBUG(480, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(481, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1390 "Zend/zend_language_scanner.l"
+ {
+ return T_CONCAT_EQUAL;
+}
+#line 5166 "Zend/zend_language_scanner.c"
yy482:
YYDEBUG(482, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych != '.') goto yy194;
YYDEBUG(483, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(484, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1206 "Zend/zend_language_scanner.l"
+ {
+ return T_ELLIPSIS;
+}
+#line 5179 "Zend/zend_language_scanner.c"
+yy485:
+ YYDEBUG(485, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(486, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1198 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5241 "Zend/zend_language_scanner.c"
-yy484:
- YYDEBUG(484, *YYCURSOR);
+#line 5189 "Zend/zend_language_scanner.c"
+yy487:
+ YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy485:
- YYDEBUG(485, *YYCURSOR);
+yy488:
+ YYDEBUG(488, *YYCURSOR);
if (yych <= '\f') {
if (yych <= 0x08) goto yy141;
- if (yych <= '\n') goto yy484;
+ if (yych <= '\n') goto yy487;
goto yy141;
} else {
- if (yych <= '\r') goto yy484;
- if (yych == ' ') goto yy484;
+ if (yych <= '\r') goto yy487;
+ if (yych == ' ') goto yy487;
goto yy141;
}
-yy486:
- YYDEBUG(486, *YYCURSOR);
+yy489:
+ YYDEBUG(489, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(487, *YYCURSOR);
+ YYDEBUG(490, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1386 "Zend/zend_language_scanner.l"
+#line 1378 "Zend/zend_language_scanner.l"
{
return T_MINUS_EQUAL;
}
-#line 5267 "Zend/zend_language_scanner.c"
-yy488:
- YYDEBUG(488, *YYCURSOR);
+#line 5215 "Zend/zend_language_scanner.c"
+yy491:
+ YYDEBUG(491, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(489, *YYCURSOR);
+ YYDEBUG(492, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1354 "Zend/zend_language_scanner.l"
+#line 1346 "Zend/zend_language_scanner.l"
{
return T_DEC;
}
-#line 5277 "Zend/zend_language_scanner.c"
-yy490:
- YYDEBUG(490, *YYCURSOR);
+#line 5225 "Zend/zend_language_scanner.c"
+yy493:
+ YYDEBUG(493, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(491, *YYCURSOR);
+ YYDEBUG(494, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1180 "Zend/zend_language_scanner.l"
+#line 1170 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5288 "Zend/zend_language_scanner.c"
-yy492:
- YYDEBUG(492, *YYCURSOR);
+#line 5236 "Zend/zend_language_scanner.c"
+yy495:
+ YYDEBUG(495, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy499;
+ if (yych == 'I') goto yy502;
if (yych <= 'N') goto yy187;
- goto yy500;
+ goto yy503;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
- goto yy499;
+ goto yy502;
} else {
- if (yych == 'o') goto yy500;
+ if (yych == 'o') goto yy503;
goto yy187;
}
}
-yy493:
- YYDEBUG(493, *YYCURSOR);
+yy496:
+ YYDEBUG(496, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy494;
+ if (yych == 'B') goto yy497;
if (yych != 'b') goto yy187;
-yy494:
- YYDEBUG(494, *YYCURSOR);
+yy497:
+ YYDEBUG(497, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy495;
+ if (yych == 'L') goto yy498;
if (yych != 'l') goto yy187;
-yy495:
- YYDEBUG(495, *YYCURSOR);
+yy498:
+ YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy496;
+ if (yych == 'I') goto yy499;
if (yych != 'i') goto yy187;
-yy496:
- YYDEBUG(496, *YYCURSOR);
+yy499:
+ YYDEBUG(499, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy497;
+ if (yych == 'C') goto yy500;
if (yych != 'c') goto yy187;
-yy497:
- YYDEBUG(497, *YYCURSOR);
+yy500:
+ YYDEBUG(500, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(498, *YYCURSOR);
+ YYDEBUG(501, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1326 "Zend/zend_language_scanner.l"
+#line 1318 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 5337 "Zend/zend_language_scanner.c"
-yy499:
- YYDEBUG(499, *YYCURSOR);
+#line 5285 "Zend/zend_language_scanner.c"
+yy502:
+ YYDEBUG(502, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'V') {
- if (yych == 'N') goto yy508;
+ if (yych == 'N') goto yy511;
if (yych <= 'U') goto yy187;
- goto yy509;
+ goto yy512;
} else {
if (yych <= 'n') {
if (yych <= 'm') goto yy187;
- goto yy508;
+ goto yy511;
} else {
- if (yych == 'v') goto yy509;
+ if (yych == 'v') goto yy512;
goto yy187;
}
}
-yy500:
- YYDEBUG(500, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy501;
- if (yych != 't') goto yy187;
-yy501:
- YYDEBUG(501, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy502;
- if (yych != 'e') goto yy187;
-yy502:
- YYDEBUG(502, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy503;
- if (yych != 'c') goto yy187;
yy503:
YYDEBUG(503, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5378,1112 +5311,1112 @@ yy504:
yy505:
YYDEBUG(505, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy506;
- if (yych != 'd') goto yy187;
+ if (yych == 'C') goto yy506;
+ if (yych != 'c') goto yy187;
yy506:
YYDEBUG(506, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy507;
+ if (yych != 't') goto yy187;
+yy507:
+ YYDEBUG(507, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy508;
+ if (yych != 'e') goto yy187;
+yy508:
+ YYDEBUG(508, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy509;
+ if (yych != 'd') goto yy187;
+yy509:
+ YYDEBUG(509, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(507, *YYCURSOR);
+ YYDEBUG(510, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1322 "Zend/zend_language_scanner.l"
+#line 1314 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 5396 "Zend/zend_language_scanner.c"
-yy508:
- YYDEBUG(508, *YYCURSOR);
+#line 5344 "Zend/zend_language_scanner.c"
+yy511:
+ YYDEBUG(511, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy514;
- if (yych == 't') goto yy514;
+ if (yych == 'T') goto yy517;
+ if (yych == 't') goto yy517;
goto yy187;
-yy509:
- YYDEBUG(509, *YYCURSOR);
+yy512:
+ YYDEBUG(512, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy510;
+ if (yych == 'A') goto yy513;
if (yych != 'a') goto yy187;
-yy510:
- YYDEBUG(510, *YYCURSOR);
+yy513:
+ YYDEBUG(513, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy511;
+ if (yych == 'T') goto yy514;
if (yych != 't') goto yy187;
-yy511:
- YYDEBUG(511, *YYCURSOR);
+yy514:
+ YYDEBUG(514, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy512;
+ if (yych == 'E') goto yy515;
if (yych != 'e') goto yy187;
-yy512:
- YYDEBUG(512, *YYCURSOR);
+yy515:
+ YYDEBUG(515, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(513, *YYCURSOR);
+ YYDEBUG(516, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1318 "Zend/zend_language_scanner.l"
+#line 1310 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 5430 "Zend/zend_language_scanner.c"
-yy514:
- YYDEBUG(514, *YYCURSOR);
+#line 5378 "Zend/zend_language_scanner.c"
+yy517:
+ YYDEBUG(517, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(515, *YYCURSOR);
+ YYDEBUG(518, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1156 "Zend/zend_language_scanner.l"
+#line 1146 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 5443 "Zend/zend_language_scanner.c"
-yy516:
- YYDEBUG(516, *YYCURSOR);
+#line 5391 "Zend/zend_language_scanner.c"
+yy519:
+ YYDEBUG(519, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy521;
- if (yych == 'o') goto yy521;
+ if (yych == 'O') goto yy524;
+ if (yych == 'o') goto yy524;
goto yy187;
-yy517:
- YYDEBUG(517, *YYCURSOR);
+yy520:
+ YYDEBUG(520, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy518;
+ if (yych == 'T') goto yy521;
if (yych != 't') goto yy187;
-yy518:
- YYDEBUG(518, *YYCURSOR);
+yy521:
+ YYDEBUG(521, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy519;
+ if (yych == 'O') goto yy522;
if (yych != 'o') goto yy187;
-yy519:
- YYDEBUG(519, *YYCURSOR);
+yy522:
+ YYDEBUG(522, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(520, *YYCURSOR);
+ YYDEBUG(523, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1148 "Zend/zend_language_scanner.l"
+#line 1138 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 5472 "Zend/zend_language_scanner.c"
-yy521:
- YYDEBUG(521, *YYCURSOR);
+#line 5420 "Zend/zend_language_scanner.c"
+yy524:
+ YYDEBUG(524, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy522;
+ if (yych == 'B') goto yy525;
if (yych != 'b') goto yy187;
-yy522:
- YYDEBUG(522, *YYCURSOR);
+yy525:
+ YYDEBUG(525, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy523;
+ if (yych == 'A') goto yy526;
if (yych != 'a') goto yy187;
-yy523:
- YYDEBUG(523, *YYCURSOR);
+yy526:
+ YYDEBUG(526, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy524;
+ if (yych == 'L') goto yy527;
if (yych != 'l') goto yy187;
-yy524:
- YYDEBUG(524, *YYCURSOR);
+yy527:
+ YYDEBUG(527, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(525, *YYCURSOR);
+ YYDEBUG(528, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1282 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 5500 "Zend/zend_language_scanner.c"
-yy526:
- YYDEBUG(526, *YYCURSOR);
+#line 5448 "Zend/zend_language_scanner.c"
+yy529:
+ YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy534;
+ if (yych == '<') goto yy537;
goto yy194;
-yy527:
- YYDEBUG(527, *YYCURSOR);
+yy530:
+ YYDEBUG(530, *YYCURSOR);
yych = *++YYCURSOR;
goto yy181;
-yy528:
- YYDEBUG(528, *YYCURSOR);
+yy531:
+ YYDEBUG(531, *YYCURSOR);
yych = *++YYCURSOR;
goto yy179;
-yy529:
- YYDEBUG(529, *YYCURSOR);
+yy532:
+ YYDEBUG(532, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy530;
+ if (yych == 'E') goto yy533;
if (yych != 'e') goto yy187;
-yy530:
- YYDEBUG(530, *YYCURSOR);
+yy533:
+ YYDEBUG(533, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy531;
+ if (yych == 'A') goto yy534;
if (yych != 'a') goto yy187;
-yy531:
- YYDEBUG(531, *YYCURSOR);
+yy534:
+ YYDEBUG(534, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'K') goto yy532;
+ if (yych == 'K') goto yy535;
if (yych != 'k') goto yy187;
-yy532:
- YYDEBUG(532, *YYCURSOR);
+yy535:
+ YYDEBUG(535, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(533, *YYCURSOR);
+ YYDEBUG(536, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1140 "Zend/zend_language_scanner.l"
+#line 1130 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 5541 "Zend/zend_language_scanner.c"
-yy534:
- YYDEBUG(534, *YYCURSOR);
+#line 5489 "Zend/zend_language_scanner.c"
+yy537:
+ YYDEBUG(537, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy270;
+ if (yych == '<') goto yy266;
goto yy194;
-yy535:
- YYDEBUG(535, *YYCURSOR);
+yy538:
+ YYDEBUG(538, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy542;
- if (yych == 'a') goto yy542;
+ if (yych == 'A') goto yy545;
+ if (yych == 'a') goto yy545;
goto yy187;
-yy536:
- YYDEBUG(536, *YYCURSOR);
+yy539:
+ YYDEBUG(539, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy537;
+ if (yych == 'I') goto yy540;
if (yych != 'i') goto yy187;
-yy537:
- YYDEBUG(537, *YYCURSOR);
+yy540:
+ YYDEBUG(540, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy538;
+ if (yych == 'T') goto yy541;
if (yych != 't') goto yy187;
-yy538:
- YYDEBUG(538, *YYCURSOR);
+yy541:
+ YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy539;
+ if (yych == 'C') goto yy542;
if (yych != 'c') goto yy187;
-yy539:
- YYDEBUG(539, *YYCURSOR);
+yy542:
+ YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy540;
+ if (yych == 'H') goto yy543;
if (yych != 'h') goto yy187;
-yy540:
- YYDEBUG(540, *YYCURSOR);
+yy543:
+ YYDEBUG(543, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(541, *YYCURSOR);
+ YYDEBUG(544, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1124 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 5585 "Zend/zend_language_scanner.c"
-yy542:
- YYDEBUG(542, *YYCURSOR);
+#line 5533 "Zend/zend_language_scanner.c"
+yy545:
+ YYDEBUG(545, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy543;
+ if (yych == 'T') goto yy546;
if (yych != 't') goto yy187;
-yy543:
- YYDEBUG(543, *YYCURSOR);
+yy546:
+ YYDEBUG(546, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy544;
+ if (yych == 'I') goto yy547;
if (yych != 'i') goto yy187;
-yy544:
- YYDEBUG(544, *YYCURSOR);
+yy547:
+ YYDEBUG(547, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy545;
+ if (yych == 'C') goto yy548;
if (yych != 'c') goto yy187;
-yy545:
- YYDEBUG(545, *YYCURSOR);
+yy548:
+ YYDEBUG(548, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(546, *YYCURSOR);
+ YYDEBUG(549, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1306 "Zend/zend_language_scanner.l"
+#line 1298 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 5613 "Zend/zend_language_scanner.c"
-yy547:
- YYDEBUG(547, *YYCURSOR);
+#line 5561 "Zend/zend_language_scanner.c"
+yy550:
+ YYDEBUG(550, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy558;
- if (yych == 's') goto yy558;
+ if (yych == 'S') goto yy561;
+ if (yych == 's') goto yy561;
goto yy187;
-yy548:
- YYDEBUG(548, *YYCURSOR);
+yy551:
+ YYDEBUG(551, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy556;
- if (yych == 'd') goto yy556;
+ if (yych == 'D') goto yy559;
+ if (yych == 'd') goto yy559;
goto yy187;
-yy549:
- YYDEBUG(549, *YYCURSOR);
+yy552:
+ YYDEBUG(552, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy552;
- if (yych == 'r') goto yy552;
+ if (yych == 'R') goto yy555;
+ if (yych == 'r') goto yy555;
goto yy187;
-yy550:
- YYDEBUG(550, *YYCURSOR);
+yy553:
+ YYDEBUG(553, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(551, *YYCURSOR);
+ YYDEBUG(554, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1120 "Zend/zend_language_scanner.l"
+#line 1110 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 5644 "Zend/zend_language_scanner.c"
-yy552:
- YYDEBUG(552, *YYCURSOR);
+#line 5592 "Zend/zend_language_scanner.c"
+yy555:
+ YYDEBUG(555, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy553;
+ if (yych == 'A') goto yy556;
if (yych != 'a') goto yy187;
-yy553:
- YYDEBUG(553, *YYCURSOR);
+yy556:
+ YYDEBUG(556, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy554;
+ if (yych == 'Y') goto yy557;
if (yych != 'y') goto yy187;
-yy554:
- YYDEBUG(554, *YYCURSOR);
+yy557:
+ YYDEBUG(557, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(555, *YYCURSOR);
+ YYDEBUG(558, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1342 "Zend/zend_language_scanner.l"
+#line 1334 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 5667 "Zend/zend_language_scanner.c"
-yy556:
- YYDEBUG(556, *YYCURSOR);
+#line 5615 "Zend/zend_language_scanner.c"
+yy559:
+ YYDEBUG(559, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(557, *YYCURSOR);
+ YYDEBUG(560, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1438 "Zend/zend_language_scanner.l"
+#line 1430 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 5680 "Zend/zend_language_scanner.c"
-yy558:
- YYDEBUG(558, *YYCURSOR);
+#line 5628 "Zend/zend_language_scanner.c"
+yy561:
+ YYDEBUG(561, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy559;
+ if (yych == 'T') goto yy562;
if (yych != 't') goto yy187;
-yy559:
- YYDEBUG(559, *YYCURSOR);
+yy562:
+ YYDEBUG(562, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy560;
+ if (yych == 'R') goto yy563;
if (yych != 'r') goto yy187;
-yy560:
- YYDEBUG(560, *YYCURSOR);
+yy563:
+ YYDEBUG(563, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy561;
+ if (yych == 'A') goto yy564;
if (yych != 'a') goto yy187;
-yy561:
- YYDEBUG(561, *YYCURSOR);
+yy564:
+ YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy562;
+ if (yych == 'C') goto yy565;
if (yych != 'c') goto yy187;
-yy562:
- YYDEBUG(562, *YYCURSOR);
+yy565:
+ YYDEBUG(565, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy563;
+ if (yych == 'T') goto yy566;
if (yych != 't') goto yy187;
-yy563:
- YYDEBUG(563, *YYCURSOR);
+yy566:
+ YYDEBUG(566, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(564, *YYCURSOR);
+ YYDEBUG(567, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1310 "Zend/zend_language_scanner.l"
+#line 1302 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 5718 "Zend/zend_language_scanner.c"
-yy565:
- YYDEBUG(565, *YYCURSOR);
+#line 5666 "Zend/zend_language_scanner.c"
+yy568:
+ YYDEBUG(568, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy566;
+ if (yych == 'I') goto yy569;
if (yych != 'i') goto yy187;
-yy566:
- YYDEBUG(566, *YYCURSOR);
+yy569:
+ YYDEBUG(569, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy567;
+ if (yych == 'L') goto yy570;
if (yych != 'l') goto yy187;
-yy567:
- YYDEBUG(567, *YYCURSOR);
+yy570:
+ YYDEBUG(570, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy568;
+ if (yych == 'E') goto yy571;
if (yych != 'e') goto yy187;
-yy568:
- YYDEBUG(568, *YYCURSOR);
+yy571:
+ YYDEBUG(571, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(569, *YYCURSOR);
+ YYDEBUG(572, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1080 "Zend/zend_language_scanner.l"
+#line 1070 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 5746 "Zend/zend_language_scanner.c"
-yy570:
- YYDEBUG(570, *YYCURSOR);
+#line 5694 "Zend/zend_language_scanner.c"
+yy573:
+ YYDEBUG(573, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(571, *YYCURSOR);
+ YYDEBUG(574, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1064 "Zend/zend_language_scanner.l"
+#line 1054 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 5759 "Zend/zend_language_scanner.c"
-yy572:
- YYDEBUG(572, *YYCURSOR);
+#line 5707 "Zend/zend_language_scanner.c"
+yy575:
+ YYDEBUG(575, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy614;
- if (yych == 'p') goto yy614;
+ if (yych == 'P') goto yy617;
+ if (yych == 'p') goto yy617;
goto yy187;
-yy573:
- YYDEBUG(573, *YYCURSOR);
+yy576:
+ YYDEBUG(576, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'C') {
if (yych <= 'B') goto yy187;
- goto yy581;
+ goto yy584;
} else {
if (yych <= 'R') goto yy187;
- if (yych <= 'S') goto yy579;
- goto yy580;
+ if (yych <= 'S') goto yy582;
+ goto yy583;
}
} else {
if (yych <= 'r') {
- if (yych == 'c') goto yy581;
+ if (yych == 'c') goto yy584;
goto yy187;
} else {
- if (yych <= 's') goto yy579;
- if (yych <= 't') goto yy580;
+ if (yych <= 's') goto yy582;
+ if (yych <= 't') goto yy583;
goto yy187;
}
}
-yy574:
- YYDEBUG(574, *YYCURSOR);
+yy577:
+ YYDEBUG(577, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy575;
+ if (yych == 'S') goto yy578;
if (yych != 's') goto yy187;
-yy575:
- YYDEBUG(575, *YYCURSOR);
+yy578:
+ YYDEBUG(578, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy576;
+ if (yych == 'E') goto yy579;
if (yych != 'e') goto yy187;
-yy576:
- YYDEBUG(576, *YYCURSOR);
+yy579:
+ YYDEBUG(579, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy577;
+ if (yych == 'T') goto yy580;
if (yych != 't') goto yy187;
-yy577:
- YYDEBUG(577, *YYCURSOR);
+yy580:
+ YYDEBUG(580, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(578, *YYCURSOR);
+ YYDEBUG(581, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1294 "Zend/zend_language_scanner.l"
+#line 1286 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 5815 "Zend/zend_language_scanner.c"
-yy579:
- YYDEBUG(579, *YYCURSOR);
+#line 5763 "Zend/zend_language_scanner.c"
+yy582:
+ YYDEBUG(582, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy600;
- if (yych == 't') goto yy600;
+ if (yych == 'T') goto yy603;
+ if (yych == 't') goto yy603;
goto yy187;
-yy580:
- YYDEBUG(580, *YYCURSOR);
+yy583:
+ YYDEBUG(583, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy593;
- if (yych == 'e') goto yy593;
+ if (yych == 'E') goto yy596;
+ if (yych == 'e') goto yy596;
goto yy187;
-yy581:
- YYDEBUG(581, *YYCURSOR);
+yy584:
+ YYDEBUG(584, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy582;
+ if (yych == 'L') goto yy585;
if (yych != 'l') goto yy187;
-yy582:
- YYDEBUG(582, *YYCURSOR);
+yy585:
+ YYDEBUG(585, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy583;
+ if (yych == 'U') goto yy586;
if (yych != 'u') goto yy187;
-yy583:
- YYDEBUG(583, *YYCURSOR);
+yy586:
+ YYDEBUG(586, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy584;
+ if (yych == 'D') goto yy587;
if (yych != 'd') goto yy187;
-yy584:
- YYDEBUG(584, *YYCURSOR);
+yy587:
+ YYDEBUG(587, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy585;
+ if (yych == 'E') goto yy588;
if (yych != 'e') goto yy187;
-yy585:
- YYDEBUG(585, *YYCURSOR);
+yy588:
+ YYDEBUG(588, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
if (yych >= '0') goto yy186;
} else {
- if (yych <= '@') goto yy586;
+ if (yych <= '@') goto yy589;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy587;
+ if (yych <= '_') goto yy590;
} else {
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy586:
- YYDEBUG(586, *YYCURSOR);
+yy589:
+ YYDEBUG(589, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
+#line 1254 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 5873 "Zend/zend_language_scanner.c"
-yy587:
- YYDEBUG(587, *YYCURSOR);
+#line 5821 "Zend/zend_language_scanner.c"
+yy590:
+ YYDEBUG(590, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy588;
+ if (yych == 'O') goto yy591;
if (yych != 'o') goto yy187;
-yy588:
- YYDEBUG(588, *YYCURSOR);
+yy591:
+ YYDEBUG(591, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy589;
+ if (yych == 'N') goto yy592;
if (yych != 'n') goto yy187;
-yy589:
- YYDEBUG(589, *YYCURSOR);
+yy592:
+ YYDEBUG(592, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy590;
+ if (yych == 'C') goto yy593;
if (yych != 'c') goto yy187;
-yy590:
- YYDEBUG(590, *YYCURSOR);
+yy593:
+ YYDEBUG(593, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy591;
+ if (yych == 'E') goto yy594;
if (yych != 'e') goto yy187;
-yy591:
- YYDEBUG(591, *YYCURSOR);
+yy594:
+ YYDEBUG(594, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(592, *YYCURSOR);
+ YYDEBUG(595, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
+#line 1258 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 5906 "Zend/zend_language_scanner.c"
-yy593:
- YYDEBUG(593, *YYCURSOR);
+#line 5854 "Zend/zend_language_scanner.c"
+yy596:
+ YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy594;
+ if (yych == 'R') goto yy597;
if (yych != 'r') goto yy187;
-yy594:
- YYDEBUG(594, *YYCURSOR);
+yy597:
+ YYDEBUG(597, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy595;
+ if (yych == 'F') goto yy598;
if (yych != 'f') goto yy187;
-yy595:
- YYDEBUG(595, *YYCURSOR);
+yy598:
+ YYDEBUG(598, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy596;
+ if (yych == 'A') goto yy599;
if (yych != 'a') goto yy187;
-yy596:
- YYDEBUG(596, *YYCURSOR);
+yy599:
+ YYDEBUG(599, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy597;
+ if (yych == 'C') goto yy600;
if (yych != 'c') goto yy187;
-yy597:
- YYDEBUG(597, *YYCURSOR);
+yy600:
+ YYDEBUG(600, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy598;
+ if (yych == 'E') goto yy601;
if (yych != 'e') goto yy187;
-yy598:
- YYDEBUG(598, *YYCURSOR);
+yy601:
+ YYDEBUG(601, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(599, *YYCURSOR);
+ YYDEBUG(602, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1164 "Zend/zend_language_scanner.l"
+#line 1154 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 5944 "Zend/zend_language_scanner.c"
-yy600:
- YYDEBUG(600, *YYCURSOR);
+#line 5892 "Zend/zend_language_scanner.c"
+yy603:
+ YYDEBUG(603, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy601;
+ if (yych == 'A') goto yy604;
if (yych <= 'D') goto yy187;
- goto yy602;
+ goto yy605;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
} else {
- if (yych == 'e') goto yy602;
+ if (yych == 'e') goto yy605;
goto yy187;
}
}
-yy601:
- YYDEBUG(601, *YYCURSOR);
+yy604:
+ YYDEBUG(604, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy608;
- if (yych == 'n') goto yy608;
+ if (yych == 'N') goto yy611;
+ if (yych == 'n') goto yy611;
goto yy187;
-yy602:
- YYDEBUG(602, *YYCURSOR);
+yy605:
+ YYDEBUG(605, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy603;
+ if (yych == 'A') goto yy606;
if (yych != 'a') goto yy187;
-yy603:
- YYDEBUG(603, *YYCURSOR);
+yy606:
+ YYDEBUG(606, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy604;
+ if (yych == 'D') goto yy607;
if (yych != 'd') goto yy187;
-yy604:
- YYDEBUG(604, *YYCURSOR);
+yy607:
+ YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy605;
+ if (yych == 'O') goto yy608;
if (yych != 'o') goto yy187;
-yy605:
- YYDEBUG(605, *YYCURSOR);
+yy608:
+ YYDEBUG(608, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy606;
+ if (yych == 'F') goto yy609;
if (yych != 'f') goto yy187;
-yy606:
- YYDEBUG(606, *YYCURSOR);
+yy609:
+ YYDEBUG(609, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(607, *YYCURSOR);
+ YYDEBUG(610, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
+#line 1278 "Zend/zend_language_scanner.l"
{
return T_INSTEADOF;
}
-#line 5998 "Zend/zend_language_scanner.c"
-yy608:
- YYDEBUG(608, *YYCURSOR);
+#line 5946 "Zend/zend_language_scanner.c"
+yy611:
+ YYDEBUG(611, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy609;
+ if (yych == 'C') goto yy612;
if (yych != 'c') goto yy187;
-yy609:
- YYDEBUG(609, *YYCURSOR);
+yy612:
+ YYDEBUG(612, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy610;
+ if (yych == 'E') goto yy613;
if (yych != 'e') goto yy187;
-yy610:
- YYDEBUG(610, *YYCURSOR);
+yy613:
+ YYDEBUG(613, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy611;
+ if (yych == 'O') goto yy614;
if (yych != 'o') goto yy187;
-yy611:
- YYDEBUG(611, *YYCURSOR);
+yy614:
+ YYDEBUG(614, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy612;
+ if (yych == 'F') goto yy615;
if (yych != 'f') goto yy187;
-yy612:
- YYDEBUG(612, *YYCURSOR);
+yy615:
+ YYDEBUG(615, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(613, *YYCURSOR);
+ YYDEBUG(616, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1116 "Zend/zend_language_scanner.l"
+#line 1106 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 6031 "Zend/zend_language_scanner.c"
-yy614:
- YYDEBUG(614, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy615;
- if (yych != 'l') goto yy187;
-yy615:
- YYDEBUG(615, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy616;
- if (yych != 'e') goto yy187;
-yy616:
- YYDEBUG(616, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'M') goto yy617;
- if (yych != 'm') goto yy187;
+#line 5979 "Zend/zend_language_scanner.c"
yy617:
YYDEBUG(617, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy618;
- if (yych != 'e') goto yy187;
+ if (yych == 'L') goto yy618;
+ if (yych != 'l') goto yy187;
yy618:
YYDEBUG(618, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy619;
- if (yych != 'n') goto yy187;
+ if (yych == 'E') goto yy619;
+ if (yych != 'e') goto yy187;
yy619:
YYDEBUG(619, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy620;
- if (yych != 't') goto yy187;
+ if (yych == 'M') goto yy620;
+ if (yych != 'm') goto yy187;
yy620:
YYDEBUG(620, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy621;
- if (yych != 's') goto yy187;
+ if (yych == 'E') goto yy621;
+ if (yych != 'e') goto yy187;
yy621:
YYDEBUG(621, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy622;
+ if (yych != 'n') goto yy187;
+yy622:
+ YYDEBUG(622, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy623;
+ if (yych != 't') goto yy187;
+yy623:
+ YYDEBUG(623, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy624;
+ if (yych != 's') goto yy187;
+yy624:
+ YYDEBUG(624, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(622, *YYCURSOR);
+ YYDEBUG(625, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1176 "Zend/zend_language_scanner.l"
+#line 1166 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 6079 "Zend/zend_language_scanner.c"
-yy623:
- YYDEBUG(623, *YYCURSOR);
+#line 6027 "Zend/zend_language_scanner.c"
+yy626:
+ YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy631;
- if (yych == 'r') goto yy631;
+ if (yych == 'R') goto yy634;
+ if (yych == 'r') goto yy634;
goto yy187;
-yy624:
- YYDEBUG(624, *YYCURSOR);
+yy627:
+ YYDEBUG(627, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'Y') {
- if (yych == 'A') goto yy627;
+ if (yych == 'A') goto yy630;
if (yych <= 'X') goto yy187;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy627;
+ goto yy630;
} else {
if (yych != 'y') goto yy187;
}
}
- YYDEBUG(625, *YYCURSOR);
+ YYDEBUG(628, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(626, *YYCURSOR);
+ YYDEBUG(629, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
+#line 1038 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 6111 "Zend/zend_language_scanner.c"
-yy627:
- YYDEBUG(627, *YYCURSOR);
+#line 6059 "Zend/zend_language_scanner.c"
+yy630:
+ YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy628;
+ if (yych == 'I') goto yy631;
if (yych != 'i') goto yy187;
-yy628:
- YYDEBUG(628, *YYCURSOR);
+yy631:
+ YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy629;
+ if (yych == 'T') goto yy632;
if (yych != 't') goto yy187;
-yy629:
- YYDEBUG(629, *YYCURSOR);
+yy632:
+ YYDEBUG(632, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(630, *YYCURSOR);
+ YYDEBUG(633, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1168 "Zend/zend_language_scanner.l"
+#line 1158 "Zend/zend_language_scanner.l"
{
return T_TRAIT;
}
-#line 6134 "Zend/zend_language_scanner.c"
-yy631:
- YYDEBUG(631, *YYCURSOR);
+#line 6082 "Zend/zend_language_scanner.c"
+yy634:
+ YYDEBUG(634, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy632;
+ if (yych == 'O') goto yy635;
if (yych != 'o') goto yy187;
-yy632:
- YYDEBUG(632, *YYCURSOR);
+yy635:
+ YYDEBUG(635, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy633;
+ if (yych == 'W') goto yy636;
if (yych != 'w') goto yy187;
-yy633:
- YYDEBUG(633, *YYCURSOR);
+yy636:
+ YYDEBUG(636, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(634, *YYCURSOR);
+ YYDEBUG(637, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1060 "Zend/zend_language_scanner.l"
+#line 1050 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 6157 "Zend/zend_language_scanner.c"
-yy635:
- YYDEBUG(635, *YYCURSOR);
+#line 6105 "Zend/zend_language_scanner.c"
+yy638:
+ YYDEBUG(638, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy636;
+ if (yych == 'E') goto yy639;
if (yych != 'e') goto yy187;
-yy636:
- YYDEBUG(636, *YYCURSOR);
+yy639:
+ YYDEBUG(639, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy637;
+ if (yych == 'L') goto yy640;
if (yych != 'l') goto yy187;
-yy637:
- YYDEBUG(637, *YYCURSOR);
+yy640:
+ YYDEBUG(640, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy638;
+ if (yych == 'D') goto yy641;
if (yych != 'd') goto yy187;
-yy638:
- YYDEBUG(638, *YYCURSOR);
+yy641:
+ YYDEBUG(641, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(639, *YYCURSOR);
+ YYDEBUG(642, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
+#line 1034 "Zend/zend_language_scanner.l"
{
return T_YIELD;
}
-#line 6185 "Zend/zend_language_scanner.c"
-yy640:
- YYDEBUG(640, *YYCURSOR);
+#line 6133 "Zend/zend_language_scanner.c"
+yy643:
+ YYDEBUG(643, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych == 'Q') goto yy642;
+ if (yych == 'Q') goto yy645;
if (yych <= 'S') goto yy187;
} else {
if (yych <= 'q') {
if (yych <= 'p') goto yy187;
- goto yy642;
+ goto yy645;
} else {
if (yych != 't') goto yy187;
}
}
- YYDEBUG(641, *YYCURSOR);
+ YYDEBUG(644, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy654;
- if (yych == 'u') goto yy654;
+ if (yych == 'U') goto yy657;
+ if (yych == 'u') goto yy657;
goto yy187;
-yy642:
- YYDEBUG(642, *YYCURSOR);
+yy645:
+ YYDEBUG(645, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy643;
+ if (yych == 'U') goto yy646;
if (yych != 'u') goto yy187;
-yy643:
- YYDEBUG(643, *YYCURSOR);
+yy646:
+ YYDEBUG(646, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy644;
+ if (yych == 'I') goto yy647;
if (yych != 'i') goto yy187;
-yy644:
- YYDEBUG(644, *YYCURSOR);
+yy647:
+ YYDEBUG(647, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy645;
+ if (yych == 'R') goto yy648;
if (yych != 'r') goto yy187;
-yy645:
- YYDEBUG(645, *YYCURSOR);
+yy648:
+ YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy646;
+ if (yych == 'E') goto yy649;
if (yych != 'e') goto yy187;
-yy646:
- YYDEBUG(646, *YYCURSOR);
+yy649:
+ YYDEBUG(649, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
if (yych >= '0') goto yy186;
} else {
- if (yych <= '@') goto yy647;
+ if (yych <= '@') goto yy650;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy648;
+ if (yych <= '_') goto yy651;
} else {
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy647:
- YYDEBUG(647, *YYCURSOR);
+yy650:
+ YYDEBUG(650, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
+#line 1262 "Zend/zend_language_scanner.l"
{
return T_REQUIRE;
}
-#line 6250 "Zend/zend_language_scanner.c"
-yy648:
- YYDEBUG(648, *YYCURSOR);
+#line 6198 "Zend/zend_language_scanner.c"
+yy651:
+ YYDEBUG(651, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy649;
+ if (yych == 'O') goto yy652;
if (yych != 'o') goto yy187;
-yy649:
- YYDEBUG(649, *YYCURSOR);
+yy652:
+ YYDEBUG(652, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy650;
+ if (yych == 'N') goto yy653;
if (yych != 'n') goto yy187;
-yy650:
- YYDEBUG(650, *YYCURSOR);
+yy653:
+ YYDEBUG(653, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy651;
+ if (yych == 'C') goto yy654;
if (yych != 'c') goto yy187;
-yy651:
- YYDEBUG(651, *YYCURSOR);
+yy654:
+ YYDEBUG(654, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy652;
+ if (yych == 'E') goto yy655;
if (yych != 'e') goto yy187;
-yy652:
- YYDEBUG(652, *YYCURSOR);
+yy655:
+ YYDEBUG(655, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(653, *YYCURSOR);
+ YYDEBUG(656, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
+#line 1266 "Zend/zend_language_scanner.l"
{
return T_REQUIRE_ONCE;
}
-#line 6283 "Zend/zend_language_scanner.c"
-yy654:
- YYDEBUG(654, *YYCURSOR);
+#line 6231 "Zend/zend_language_scanner.c"
+yy657:
+ YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy655;
+ if (yych == 'R') goto yy658;
if (yych != 'r') goto yy187;
-yy655:
- YYDEBUG(655, *YYCURSOR);
+yy658:
+ YYDEBUG(658, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy656;
+ if (yych == 'N') goto yy659;
if (yych != 'n') goto yy187;
-yy656:
- YYDEBUG(656, *YYCURSOR);
+yy659:
+ YYDEBUG(659, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(657, *YYCURSOR);
+ YYDEBUG(660, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
+#line 1030 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 6306 "Zend/zend_language_scanner.c"
-yy658:
- YYDEBUG(658, *YYCURSOR);
+#line 6254 "Zend/zend_language_scanner.c"
+yy661:
+ YYDEBUG(661, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'L') {
if (yych <= 'K') goto yy187;
- goto yy681;
+ goto yy684;
} else {
if (yych <= 'R') goto yy187;
- if (yych <= 'S') goto yy680;
- goto yy679;
+ if (yych <= 'S') goto yy683;
+ goto yy682;
}
} else {
if (yych <= 'r') {
- if (yych == 'l') goto yy681;
+ if (yych == 'l') goto yy684;
goto yy187;
} else {
- if (yych <= 's') goto yy680;
- if (yych <= 't') goto yy679;
+ if (yych <= 's') goto yy683;
+ if (yych <= 't') goto yy682;
goto yy187;
}
}
-yy659:
- YYDEBUG(659, *YYCURSOR);
+yy662:
+ YYDEBUG(662, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'A') goto yy671;
+ if (yych == 'A') goto yy674;
if (yych <= 'N') goto yy187;
- goto yy672;
+ goto yy675;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy671;
+ goto yy674;
} else {
- if (yych == 'o') goto yy672;
+ if (yych == 'o') goto yy675;
goto yy187;
}
}
-yy660:
- YYDEBUG(660, *YYCURSOR);
+yy663:
+ YYDEBUG(663, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy661;
+ if (yych == 'N') goto yy664;
if (yych != 'n') goto yy187;
-yy661:
- YYDEBUG(661, *YYCURSOR);
+yy664:
+ YYDEBUG(664, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'R') goto yy187;
- if (yych >= 'T') goto yy663;
+ if (yych >= 'T') goto yy666;
} else {
if (yych <= 'r') goto yy187;
- if (yych <= 's') goto yy662;
- if (yych <= 't') goto yy663;
+ if (yych <= 's') goto yy665;
+ if (yych <= 't') goto yy666;
goto yy187;
}
-yy662:
- YYDEBUG(662, *YYCURSOR);
+yy665:
+ YYDEBUG(665, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy669;
- if (yych == 't') goto yy669;
+ if (yych == 'T') goto yy672;
+ if (yych == 't') goto yy672;
goto yy187;
-yy663:
- YYDEBUG(663, *YYCURSOR);
+yy666:
+ YYDEBUG(666, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy664;
+ if (yych == 'I') goto yy667;
if (yych != 'i') goto yy187;
-yy664:
- YYDEBUG(664, *YYCURSOR);
+yy667:
+ YYDEBUG(667, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy665;
+ if (yych == 'N') goto yy668;
if (yych != 'n') goto yy187;
-yy665:
- YYDEBUG(665, *YYCURSOR);
+yy668:
+ YYDEBUG(668, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy666;
+ if (yych == 'U') goto yy669;
if (yych != 'u') goto yy187;
-yy666:
- YYDEBUG(666, *YYCURSOR);
+yy669:
+ YYDEBUG(669, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy667;
+ if (yych == 'E') goto yy670;
if (yych != 'e') goto yy187;
-yy667:
- YYDEBUG(667, *YYCURSOR);
+yy670:
+ YYDEBUG(670, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(668, *YYCURSOR);
+ YYDEBUG(671, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1144 "Zend/zend_language_scanner.l"
+#line 1134 "Zend/zend_language_scanner.l"
{
return T_CONTINUE;
}
-#line 6400 "Zend/zend_language_scanner.c"
-yy669:
- YYDEBUG(669, *YYCURSOR);
+#line 6348 "Zend/zend_language_scanner.c"
+yy672:
+ YYDEBUG(672, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(670, *YYCURSOR);
+ YYDEBUG(673, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
+#line 1026 "Zend/zend_language_scanner.l"
{
return T_CONST;
}
-#line 6413 "Zend/zend_language_scanner.c"
-yy671:
- YYDEBUG(671, *YYCURSOR);
+#line 6361 "Zend/zend_language_scanner.c"
+yy674:
+ YYDEBUG(674, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy676;
- if (yych == 's') goto yy676;
+ if (yych == 'S') goto yy679;
+ if (yych == 's') goto yy679;
goto yy187;
-yy672:
- YYDEBUG(672, *YYCURSOR);
+yy675:
+ YYDEBUG(675, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy673;
+ if (yych == 'N') goto yy676;
if (yych != 'n') goto yy187;
-yy673:
- YYDEBUG(673, *YYCURSOR);
+yy676:
+ YYDEBUG(676, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy674;
+ if (yych == 'E') goto yy677;
if (yych != 'e') goto yy187;
-yy674:
- YYDEBUG(674, *YYCURSOR);
+yy677:
+ YYDEBUG(677, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(675, *YYCURSOR);
+ YYDEBUG(678, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1214 "Zend/zend_language_scanner.l"
{
return T_CLONE;
}
-#line 6442 "Zend/zend_language_scanner.c"
-yy676:
- YYDEBUG(676, *YYCURSOR);
+#line 6390 "Zend/zend_language_scanner.c"
+yy679:
+ YYDEBUG(679, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy677;
+ if (yych == 'S') goto yy680;
if (yych != 's') goto yy187;
-yy677:
- YYDEBUG(677, *YYCURSOR);
+yy680:
+ YYDEBUG(680, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(678, *YYCURSOR);
+ YYDEBUG(681, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1160 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
{
return T_CLASS;
}
-#line 6460 "Zend/zend_language_scanner.c"
-yy679:
- YYDEBUG(679, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy690;
- if (yych == 'c') goto yy690;
- goto yy187;
-yy680:
- YYDEBUG(680, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy688;
- if (yych == 'e') goto yy688;
- goto yy187;
-yy681:
- YYDEBUG(681, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy682;
- if (yych != 'l') goto yy187;
+#line 6408 "Zend/zend_language_scanner.c"
yy682:
YYDEBUG(682, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy683;
- if (yych != 'a') goto yy187;
+ if (yych == 'C') goto yy693;
+ if (yych == 'c') goto yy693;
+ goto yy187;
yy683:
YYDEBUG(683, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy684;
- if (yych != 'b') goto yy187;
+ if (yych == 'E') goto yy691;
+ if (yych == 'e') goto yy691;
+ goto yy187;
yy684:
YYDEBUG(684, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6492,39 +6425,36 @@ yy684:
yy685:
YYDEBUG(685, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy686;
- if (yych != 'e') goto yy187;
+ if (yych == 'A') goto yy686;
+ if (yych != 'a') goto yy187;
yy686:
YYDEBUG(686, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy186;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'B') goto yy687;
+ if (yych != 'b') goto yy187;
+yy687:
YYDEBUG(687, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1346 "Zend/zend_language_scanner.l"
- {
- return T_CALLABLE;
-}
-#line 6510 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy688;
+ if (yych != 'l') goto yy187;
yy688:
YYDEBUG(688, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy689;
+ if (yych != 'e') goto yy187;
+yy689:
+ YYDEBUG(689, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(689, *YYCURSOR);
+ YYDEBUG(690, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1132 "Zend/zend_language_scanner.l"
+#line 1338 "Zend/zend_language_scanner.l"
{
- return T_CASE;
+ return T_CALLABLE;
}
-#line 6523 "Zend/zend_language_scanner.c"
-yy690:
- YYDEBUG(690, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy691;
- if (yych != 'h') goto yy187;
+#line 6458 "Zend/zend_language_scanner.c"
yy691:
YYDEBUG(691, *YYCURSOR);
++YYCURSOR;
@@ -6533,719 +6463,737 @@ yy691:
}
YYDEBUG(692, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
{
- return T_CATCH;
+ return T_CASE;
}
-#line 6541 "Zend/zend_language_scanner.c"
+#line 6471 "Zend/zend_language_scanner.c"
yy693:
YYDEBUG(693, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy710;
- if (yych == 'n') goto yy710;
- goto yy187;
+ if (yych == 'H') goto yy694;
+ if (yych != 'h') goto yy187;
yy694:
YYDEBUG(694, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy703;
- if (yych == 'r') goto yy703;
- goto yy187;
-yy695:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(695, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy696;
- if (yych != 'n') goto yy187;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1042 "Zend/zend_language_scanner.l"
+ {
+ return T_CATCH;
+}
+#line 6489 "Zend/zend_language_scanner.c"
yy696:
YYDEBUG(696, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy697;
- if (yych != 'c') goto yy187;
+ if (yych == 'N') goto yy713;
+ if (yych == 'n') goto yy713;
+ goto yy187;
yy697:
YYDEBUG(697, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy698;
- if (yych != 't') goto yy187;
+ if (yych == 'R') goto yy706;
+ if (yych == 'r') goto yy706;
+ goto yy187;
yy698:
YYDEBUG(698, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy699;
- if (yych != 'i') goto yy187;
+ if (yych == 'N') goto yy699;
+ if (yych != 'n') goto yy187;
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy700;
- if (yych != 'o') goto yy187;
+ if (yych == 'C') goto yy700;
+ if (yych != 'c') goto yy187;
yy700:
YYDEBUG(700, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy701;
- if (yych != 'n') goto yy187;
+ if (yych == 'T') goto yy701;
+ if (yych != 't') goto yy187;
yy701:
YYDEBUG(701, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy702;
+ if (yych != 'i') goto yy187;
+yy702:
+ YYDEBUG(702, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy703;
+ if (yych != 'o') goto yy187;
+yy703:
+ YYDEBUG(703, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy704;
+ if (yych != 'n') goto yy187;
+yy704:
+ YYDEBUG(704, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(702, *YYCURSOR);
+ YYDEBUG(705, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
+#line 1022 "Zend/zend_language_scanner.l"
{
return T_FUNCTION;
}
-#line 6596 "Zend/zend_language_scanner.c"
-yy703:
- YYDEBUG(703, *YYCURSOR);
+#line 6544 "Zend/zend_language_scanner.c"
+yy706:
+ YYDEBUG(706, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy704;
+ if (yych <= '/') goto yy707;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'E') goto yy705;
+ if (yych == 'E') goto yy708;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'd') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'e') goto yy705;
+ if (yych <= 'e') goto yy708;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy704:
- YYDEBUG(704, *YYCURSOR);
+yy707:
+ YYDEBUG(707, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1092 "Zend/zend_language_scanner.l"
+#line 1082 "Zend/zend_language_scanner.l"
{
return T_FOR;
}
-#line 6624 "Zend/zend_language_scanner.c"
-yy705:
- YYDEBUG(705, *YYCURSOR);
+#line 6572 "Zend/zend_language_scanner.c"
+yy708:
+ YYDEBUG(708, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy706;
+ if (yych == 'A') goto yy709;
if (yych != 'a') goto yy187;
-yy706:
- YYDEBUG(706, *YYCURSOR);
+yy709:
+ YYDEBUG(709, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy707;
+ if (yych == 'C') goto yy710;
if (yych != 'c') goto yy187;
-yy707:
- YYDEBUG(707, *YYCURSOR);
+yy710:
+ YYDEBUG(710, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy708;
+ if (yych == 'H') goto yy711;
if (yych != 'h') goto yy187;
-yy708:
- YYDEBUG(708, *YYCURSOR);
+yy711:
+ YYDEBUG(711, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(709, *YYCURSOR);
+ YYDEBUG(712, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1100 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
{
return T_FOREACH;
}
-#line 6652 "Zend/zend_language_scanner.c"
-yy710:
- YYDEBUG(710, *YYCURSOR);
+#line 6600 "Zend/zend_language_scanner.c"
+yy713:
+ YYDEBUG(713, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy711;
+ if (yych == 'A') goto yy714;
if (yych != 'a') goto yy187;
-yy711:
- YYDEBUG(711, *YYCURSOR);
+yy714:
+ YYDEBUG(714, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy712;
+ if (yych == 'L') goto yy715;
if (yych != 'l') goto yy187;
-yy712:
- YYDEBUG(712, *YYCURSOR);
+yy715:
+ YYDEBUG(715, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy713;
+ if (yych <= '/') goto yy716;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'L') goto yy714;
+ if (yych == 'L') goto yy717;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'k') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'l') goto yy714;
+ if (yych <= 'l') goto yy717;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy713:
- YYDEBUG(713, *YYCURSOR);
+yy716:
+ YYDEBUG(716, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1314 "Zend/zend_language_scanner.l"
+#line 1306 "Zend/zend_language_scanner.l"
{
return T_FINAL;
}
-#line 6690 "Zend/zend_language_scanner.c"
-yy714:
- YYDEBUG(714, *YYCURSOR);
+#line 6638 "Zend/zend_language_scanner.c"
+yy717:
+ YYDEBUG(717, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy715;
+ if (yych == 'Y') goto yy718;
if (yych != 'y') goto yy187;
-yy715:
- YYDEBUG(715, *YYCURSOR);
+yy718:
+ YYDEBUG(718, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(716, *YYCURSOR);
+ YYDEBUG(719, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1056 "Zend/zend_language_scanner.l"
+#line 1046 "Zend/zend_language_scanner.l"
{
return T_FINALLY;
}
-#line 6708 "Zend/zend_language_scanner.c"
-yy717:
- YYDEBUG(717, *YYCURSOR);
+#line 6656 "Zend/zend_language_scanner.c"
+yy720:
+ YYDEBUG(720, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'F') {
- if (yych == 'C') goto yy723;
+ if (yych == 'C') goto yy726;
if (yych <= 'E') goto yy187;
- goto yy724;
+ goto yy727;
} else {
if (yych <= 'c') {
if (yych <= 'b') goto yy187;
- goto yy723;
+ goto yy726;
} else {
- if (yych == 'f') goto yy724;
+ if (yych == 'f') goto yy727;
goto yy187;
}
}
-yy718:
- YYDEBUG(718, *YYCURSOR);
+yy721:
+ YYDEBUG(721, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy721;
- if (yych == 'e') goto yy721;
+ if (yych == 'E') goto yy724;
+ if (yych == 'e') goto yy724;
goto yy187;
-yy719:
- YYDEBUG(719, *YYCURSOR);
+yy722:
+ YYDEBUG(722, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(720, *YYCURSOR);
+ YYDEBUG(723, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1088 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
{
return T_DO;
}
-#line 6743 "Zend/zend_language_scanner.c"
-yy721:
- YYDEBUG(721, *YYCURSOR);
+#line 6691 "Zend/zend_language_scanner.c"
+yy724:
+ YYDEBUG(724, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(722, *YYCURSOR);
+ YYDEBUG(725, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
+#line 1018 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6756 "Zend/zend_language_scanner.c"
-yy723:
- YYDEBUG(723, *YYCURSOR);
+#line 6704 "Zend/zend_language_scanner.c"
+yy726:
+ YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy730;
- if (yych == 'l') goto yy730;
+ if (yych == 'L') goto yy733;
+ if (yych == 'l') goto yy733;
goto yy187;
-yy724:
- YYDEBUG(724, *YYCURSOR);
+yy727:
+ YYDEBUG(727, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy725;
+ if (yych == 'A') goto yy728;
if (yych != 'a') goto yy187;
-yy725:
- YYDEBUG(725, *YYCURSOR);
+yy728:
+ YYDEBUG(728, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy726;
+ if (yych == 'U') goto yy729;
if (yych != 'u') goto yy187;
-yy726:
- YYDEBUG(726, *YYCURSOR);
+yy729:
+ YYDEBUG(729, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy727;
+ if (yych == 'L') goto yy730;
if (yych != 'l') goto yy187;
-yy727:
- YYDEBUG(727, *YYCURSOR);
+yy730:
+ YYDEBUG(730, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy728;
+ if (yych == 'T') goto yy731;
if (yych != 't') goto yy187;
-yy728:
- YYDEBUG(728, *YYCURSOR);
+yy731:
+ YYDEBUG(731, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(729, *YYCURSOR);
+ YYDEBUG(732, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1136 "Zend/zend_language_scanner.l"
+#line 1126 "Zend/zend_language_scanner.l"
{
return T_DEFAULT;
}
-#line 6795 "Zend/zend_language_scanner.c"
-yy730:
- YYDEBUG(730, *YYCURSOR);
+#line 6743 "Zend/zend_language_scanner.c"
+yy733:
+ YYDEBUG(733, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy731;
+ if (yych == 'A') goto yy734;
if (yych != 'a') goto yy187;
-yy731:
- YYDEBUG(731, *YYCURSOR);
+yy734:
+ YYDEBUG(734, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy732;
+ if (yych == 'R') goto yy735;
if (yych != 'r') goto yy187;
-yy732:
- YYDEBUG(732, *YYCURSOR);
+yy735:
+ YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy733;
+ if (yych == 'E') goto yy736;
if (yych != 'e') goto yy187;
-yy733:
- YYDEBUG(733, *YYCURSOR);
+yy736:
+ YYDEBUG(736, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(734, *YYCURSOR);
+ YYDEBUG(737, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1108 "Zend/zend_language_scanner.l"
+#line 1098 "Zend/zend_language_scanner.l"
{
return T_DECLARE;
}
-#line 6823 "Zend/zend_language_scanner.c"
-yy735:
- YYDEBUG(735, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy797;
- if (yych == 'h') goto yy797;
- goto yy187;
-yy736:
- YYDEBUG(736, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy791;
- if (yych == 's') goto yy791;
- goto yy187;
-yy737:
- YYDEBUG(737, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'P') goto yy787;
- if (yych == 'p') goto yy787;
- goto yy187;
+#line 6771 "Zend/zend_language_scanner.c"
yy738:
YYDEBUG(738, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy753;
- if (yych == 'd') goto yy753;
+ if (yych == 'H') goto yy800;
+ if (yych == 'h') goto yy800;
goto yy187;
yy739:
YYDEBUG(739, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy750;
- if (yych == 'a') goto yy750;
+ if (yych == 'S') goto yy794;
+ if (yych == 's') goto yy794;
goto yy187;
yy740:
YYDEBUG(740, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'P') goto yy790;
+ if (yych == 'p') goto yy790;
+ goto yy187;
+yy741:
+ YYDEBUG(741, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy756;
+ if (yych == 'd') goto yy756;
+ goto yy187;
+yy742:
+ YYDEBUG(742, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy753;
+ if (yych == 'a') goto yy753;
+ goto yy187;
+yy743:
+ YYDEBUG(743, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych == 'I') goto yy741;
+ if (yych == 'I') goto yy744;
if (yych <= 'S') goto yy187;
- goto yy742;
+ goto yy745;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
} else {
- if (yych == 't') goto yy742;
+ if (yych == 't') goto yy745;
goto yy187;
}
}
-yy741:
- YYDEBUG(741, *YYCURSOR);
+yy744:
+ YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy748;
- if (yych == 't') goto yy748;
+ if (yych == 'T') goto yy751;
+ if (yych == 't') goto yy751;
goto yy187;
-yy742:
- YYDEBUG(742, *YYCURSOR);
+yy745:
+ YYDEBUG(745, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy743;
+ if (yych == 'E') goto yy746;
if (yych != 'e') goto yy187;
-yy743:
- YYDEBUG(743, *YYCURSOR);
+yy746:
+ YYDEBUG(746, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy744;
+ if (yych == 'N') goto yy747;
if (yych != 'n') goto yy187;
-yy744:
- YYDEBUG(744, *YYCURSOR);
+yy747:
+ YYDEBUG(747, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy745;
+ if (yych == 'D') goto yy748;
if (yych != 'd') goto yy187;
-yy745:
- YYDEBUG(745, *YYCURSOR);
+yy748:
+ YYDEBUG(748, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy746;
+ if (yych == 'S') goto yy749;
if (yych != 's') goto yy187;
-yy746:
- YYDEBUG(746, *YYCURSOR);
+yy749:
+ YYDEBUG(749, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(747, *YYCURSOR);
+ YYDEBUG(750, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1172 "Zend/zend_language_scanner.l"
+#line 1162 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 6907 "Zend/zend_language_scanner.c"
-yy748:
- YYDEBUG(748, *YYCURSOR);
+#line 6855 "Zend/zend_language_scanner.c"
+yy751:
+ YYDEBUG(751, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(749, *YYCURSOR);
+ YYDEBUG(752, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
+#line 1014 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6920 "Zend/zend_language_scanner.c"
-yy750:
- YYDEBUG(750, *YYCURSOR);
+#line 6868 "Zend/zend_language_scanner.c"
+yy753:
+ YYDEBUG(753, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy751;
+ if (yych == 'L') goto yy754;
if (yych != 'l') goto yy187;
-yy751:
- YYDEBUG(751, *YYCURSOR);
+yy754:
+ YYDEBUG(754, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(752, *YYCURSOR);
+ YYDEBUG(755, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
+#line 1250 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 6938 "Zend/zend_language_scanner.c"
-yy753:
- YYDEBUG(753, *YYCURSOR);
+#line 6886 "Zend/zend_language_scanner.c"
+yy756:
+ YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'D':
- case 'd': goto yy754;
+ case 'd': goto yy757;
case 'F':
- case 'f': goto yy755;
+ case 'f': goto yy758;
case 'I':
- case 'i': goto yy756;
+ case 'i': goto yy759;
case 'S':
- case 's': goto yy757;
+ case 's': goto yy760;
case 'W':
- case 'w': goto yy758;
+ case 'w': goto yy761;
default: goto yy187;
}
-yy754:
- YYDEBUG(754, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy780;
- if (yych == 'e') goto yy780;
- goto yy187;
-yy755:
- YYDEBUG(755, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy772;
- if (yych == 'o') goto yy772;
- goto yy187;
-yy756:
- YYDEBUG(756, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy770;
- if (yych == 'f') goto yy770;
- goto yy187;
yy757:
YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy764;
- if (yych == 'w') goto yy764;
+ if (yych == 'E') goto yy783;
+ if (yych == 'e') goto yy783;
goto yy187;
yy758:
YYDEBUG(758, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy759;
- if (yych != 'h') goto yy187;
+ if (yych == 'O') goto yy775;
+ if (yych == 'o') goto yy775;
+ goto yy187;
yy759:
YYDEBUG(759, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy760;
- if (yych != 'i') goto yy187;
+ if (yych == 'F') goto yy773;
+ if (yych == 'f') goto yy773;
+ goto yy187;
yy760:
YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy761;
- if (yych != 'l') goto yy187;
+ if (yych == 'W') goto yy767;
+ if (yych == 'w') goto yy767;
+ goto yy187;
yy761:
YYDEBUG(761, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy762;
- if (yych != 'e') goto yy187;
+ if (yych == 'H') goto yy762;
+ if (yych != 'h') goto yy187;
yy762:
YYDEBUG(762, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy763;
+ if (yych != 'i') goto yy187;
+yy763:
+ YYDEBUG(763, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy764;
+ if (yych != 'l') goto yy187;
+yy764:
+ YYDEBUG(764, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy765;
+ if (yych != 'e') goto yy187;
+yy765:
+ YYDEBUG(765, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(763, *YYCURSOR);
+ YYDEBUG(766, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1084 "Zend/zend_language_scanner.l"
+#line 1074 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 7012 "Zend/zend_language_scanner.c"
-yy764:
- YYDEBUG(764, *YYCURSOR);
+#line 6960 "Zend/zend_language_scanner.c"
+yy767:
+ YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy765;
+ if (yych == 'I') goto yy768;
if (yych != 'i') goto yy187;
-yy765:
- YYDEBUG(765, *YYCURSOR);
+yy768:
+ YYDEBUG(768, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy766;
+ if (yych == 'T') goto yy769;
if (yych != 't') goto yy187;
-yy766:
- YYDEBUG(766, *YYCURSOR);
+yy769:
+ YYDEBUG(769, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy767;
+ if (yych == 'C') goto yy770;
if (yych != 'c') goto yy187;
-yy767:
- YYDEBUG(767, *YYCURSOR);
+yy770:
+ YYDEBUG(770, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy768;
+ if (yych == 'H') goto yy771;
if (yych != 'h') goto yy187;
-yy768:
- YYDEBUG(768, *YYCURSOR);
+yy771:
+ YYDEBUG(771, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(769, *YYCURSOR);
+ YYDEBUG(772, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1128 "Zend/zend_language_scanner.l"
+#line 1118 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 7045 "Zend/zend_language_scanner.c"
-yy770:
- YYDEBUG(770, *YYCURSOR);
+#line 6993 "Zend/zend_language_scanner.c"
+yy773:
+ YYDEBUG(773, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(771, *YYCURSOR);
+ YYDEBUG(774, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1072 "Zend/zend_language_scanner.l"
+#line 1062 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 7058 "Zend/zend_language_scanner.c"
-yy772:
- YYDEBUG(772, *YYCURSOR);
+#line 7006 "Zend/zend_language_scanner.c"
+yy775:
+ YYDEBUG(775, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy773;
+ if (yych == 'R') goto yy776;
if (yych != 'r') goto yy187;
-yy773:
- YYDEBUG(773, *YYCURSOR);
+yy776:
+ YYDEBUG(776, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy774;
+ if (yych <= '/') goto yy777;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'E') goto yy775;
+ if (yych == 'E') goto yy778;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'd') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'e') goto yy775;
+ if (yych <= 'e') goto yy778;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy774:
- YYDEBUG(774, *YYCURSOR);
+yy777:
+ YYDEBUG(777, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1096 "Zend/zend_language_scanner.l"
+#line 1086 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 7091 "Zend/zend_language_scanner.c"
-yy775:
- YYDEBUG(775, *YYCURSOR);
+#line 7039 "Zend/zend_language_scanner.c"
+yy778:
+ YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy776;
+ if (yych == 'A') goto yy779;
if (yych != 'a') goto yy187;
-yy776:
- YYDEBUG(776, *YYCURSOR);
+yy779:
+ YYDEBUG(779, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy777;
+ if (yych == 'C') goto yy780;
if (yych != 'c') goto yy187;
-yy777:
- YYDEBUG(777, *YYCURSOR);
+yy780:
+ YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy778;
+ if (yych == 'H') goto yy781;
if (yych != 'h') goto yy187;
-yy778:
- YYDEBUG(778, *YYCURSOR);
+yy781:
+ YYDEBUG(781, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(779, *YYCURSOR);
+ YYDEBUG(782, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1104 "Zend/zend_language_scanner.l"
+#line 1094 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 7119 "Zend/zend_language_scanner.c"
-yy780:
- YYDEBUG(780, *YYCURSOR);
+#line 7067 "Zend/zend_language_scanner.c"
+yy783:
+ YYDEBUG(783, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy781;
+ if (yych == 'C') goto yy784;
if (yych != 'c') goto yy187;
-yy781:
- YYDEBUG(781, *YYCURSOR);
+yy784:
+ YYDEBUG(784, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy782;
+ if (yych == 'L') goto yy785;
if (yych != 'l') goto yy187;
-yy782:
- YYDEBUG(782, *YYCURSOR);
+yy785:
+ YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy783;
+ if (yych == 'A') goto yy786;
if (yych != 'a') goto yy187;
-yy783:
- YYDEBUG(783, *YYCURSOR);
+yy786:
+ YYDEBUG(786, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy784;
+ if (yych == 'R') goto yy787;
if (yych != 'r') goto yy187;
-yy784:
- YYDEBUG(784, *YYCURSOR);
+yy787:
+ YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy785;
+ if (yych == 'E') goto yy788;
if (yych != 'e') goto yy187;
-yy785:
- YYDEBUG(785, *YYCURSOR);
+yy788:
+ YYDEBUG(788, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(786, *YYCURSOR);
+ YYDEBUG(789, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1112 "Zend/zend_language_scanner.l"
+#line 1102 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 7157 "Zend/zend_language_scanner.c"
-yy787:
- YYDEBUG(787, *YYCURSOR);
+#line 7105 "Zend/zend_language_scanner.c"
+yy790:
+ YYDEBUG(790, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy788;
+ if (yych == 'T') goto yy791;
if (yych != 't') goto yy187;
-yy788:
- YYDEBUG(788, *YYCURSOR);
+yy791:
+ YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy789;
+ if (yych == 'Y') goto yy792;
if (yych != 'y') goto yy187;
-yy789:
- YYDEBUG(789, *YYCURSOR);
+yy792:
+ YYDEBUG(792, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(790, *YYCURSOR);
+ YYDEBUG(793, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1298 "Zend/zend_language_scanner.l"
+#line 1290 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 7180 "Zend/zend_language_scanner.c"
-yy791:
- YYDEBUG(791, *YYCURSOR);
+#line 7128 "Zend/zend_language_scanner.c"
+yy794:
+ YYDEBUG(794, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy792;
+ if (yych == 'E') goto yy795;
if (yych != 'e') goto yy187;
-yy792:
- YYDEBUG(792, *YYCURSOR);
+yy795:
+ YYDEBUG(795, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy793;
+ if (yych <= '/') goto yy796;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'I') goto yy794;
+ if (yych == 'I') goto yy797;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'h') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'i') goto yy794;
+ if (yych <= 'i') goto yy797;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy793:
- YYDEBUG(793, *YYCURSOR);
+yy796:
+ YYDEBUG(796, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1076 "Zend/zend_language_scanner.l"
+#line 1066 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 7213 "Zend/zend_language_scanner.c"
-yy794:
- YYDEBUG(794, *YYCURSOR);
+#line 7161 "Zend/zend_language_scanner.c"
+yy797:
+ YYDEBUG(797, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy795;
+ if (yych == 'F') goto yy798;
if (yych != 'f') goto yy187;
-yy795:
- YYDEBUG(795, *YYCURSOR);
+yy798:
+ YYDEBUG(798, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(796, *YYCURSOR);
+ YYDEBUG(799, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1068 "Zend/zend_language_scanner.l"
+#line 1058 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 7231 "Zend/zend_language_scanner.c"
-yy797:
- YYDEBUG(797, *YYCURSOR);
+#line 7179 "Zend/zend_language_scanner.c"
+yy800:
+ YYDEBUG(800, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy798;
+ if (yych == 'O') goto yy801;
if (yych != 'o') goto yy187;
-yy798:
- YYDEBUG(798, *YYCURSOR);
+yy801:
+ YYDEBUG(801, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(799, *YYCURSOR);
+ YYDEBUG(802, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1152 "Zend/zend_language_scanner.l"
+#line 1142 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 7249 "Zend/zend_language_scanner.c"
+#line 7197 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7284,115 +7232,113 @@ yyc_ST_LOOKING_FOR_PROPERTY:
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
};
- YYDEBUG(800, *YYCURSOR);
+ YYDEBUG(803, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= '\r') {
- if (yych <= 0x08) goto yy808;
- if (yych <= '\n') goto yy802;
- if (yych <= '\f') goto yy808;
+ if (yych <= 0x08) goto yy811;
+ if (yych <= '\n') goto yy805;
+ if (yych <= '\f') goto yy811;
} else {
- if (yych == ' ') goto yy802;
- if (yych <= ',') goto yy808;
- goto yy804;
+ if (yych == ' ') goto yy805;
+ if (yych <= ',') goto yy811;
+ goto yy807;
}
} else {
if (yych <= '_') {
- if (yych <= '@') goto yy808;
- if (yych <= 'Z') goto yy806;
- if (yych <= '^') goto yy808;
- goto yy806;
+ if (yych <= '@') goto yy811;
+ if (yych <= 'Z') goto yy809;
+ if (yych <= '^') goto yy811;
+ goto yy809;
} else {
- if (yych <= '`') goto yy808;
- if (yych <= 'z') goto yy806;
- if (yych <= '~') goto yy808;
- goto yy806;
+ if (yych <= '`') goto yy811;
+ if (yych <= 'z') goto yy809;
+ if (yych <= '~') goto yy811;
+ goto yy809;
}
}
-yy802:
- YYDEBUG(802, *YYCURSOR);
+yy805:
+ YYDEBUG(805, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy814;
-yy803:
- YYDEBUG(803, *YYCURSOR);
+ goto yy817;
+yy806:
+ YYDEBUG(806, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1185 "Zend/zend_language_scanner.l"
+#line 1175 "Zend/zend_language_scanner.l"
{
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 7330 "Zend/zend_language_scanner.c"
-yy804:
- YYDEBUG(804, *YYCURSOR);
+#line 7276 "Zend/zend_language_scanner.c"
+yy807:
+ YYDEBUG(807, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy811;
-yy805:
- YYDEBUG(805, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '>') goto yy814;
+yy808:
+ YYDEBUG(808, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1204 "Zend/zend_language_scanner.l"
+#line 1192 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 7344 "Zend/zend_language_scanner.c"
-yy806:
- YYDEBUG(806, *YYCURSOR);
+#line 7290 "Zend/zend_language_scanner.c"
+yy809:
+ YYDEBUG(809, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy810;
-yy807:
- YYDEBUG(807, *YYCURSOR);
+ goto yy813;
+yy810:
+ YYDEBUG(810, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1197 "Zend/zend_language_scanner.l"
+#line 1185 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7360 "Zend/zend_language_scanner.c"
-yy808:
- YYDEBUG(808, *YYCURSOR);
+#line 7306 "Zend/zend_language_scanner.c"
+yy811:
+ YYDEBUG(811, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy805;
-yy809:
- YYDEBUG(809, *YYCURSOR);
+ goto yy808;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy810:
- YYDEBUG(810, *YYCURSOR);
+yy813:
+ YYDEBUG(813, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy809;
+ goto yy812;
}
- goto yy807;
-yy811:
- YYDEBUG(811, *YYCURSOR);
+ goto yy810;
+yy814:
+ YYDEBUG(814, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(812, *YYCURSOR);
+ YYDEBUG(815, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1193 "Zend/zend_language_scanner.l"
+#line 1181 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 7385 "Zend/zend_language_scanner.c"
-yy813:
- YYDEBUG(813, *YYCURSOR);
+#line 7331 "Zend/zend_language_scanner.c"
+yy816:
+ YYDEBUG(816, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy814:
- YYDEBUG(814, *YYCURSOR);
+yy817:
+ YYDEBUG(817, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy813;
+ goto yy816;
}
- goto yy803;
+ goto yy806;
}
/* *********************************** */
yyc_ST_LOOKING_FOR_VARNAME:
@@ -7431,74 +7377,74 @@ yyc_ST_LOOKING_FOR_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(815, *YYCURSOR);
+ YYDEBUG(818, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy819;
- if (yych <= 'Z') goto yy817;
- if (yych <= '^') goto yy819;
+ if (yych <= '@') goto yy822;
+ if (yych <= 'Z') goto yy820;
+ if (yych <= '^') goto yy822;
} else {
- if (yych <= '`') goto yy819;
- if (yych <= 'z') goto yy817;
- if (yych <= '~') goto yy819;
+ if (yych <= '`') goto yy822;
+ if (yych <= 'z') goto yy820;
+ if (yych <= '~') goto yy822;
}
-yy817:
- YYDEBUG(817, *YYCURSOR);
+yy820:
+ YYDEBUG(820, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '_') {
if (yych <= '@') {
- if (yych <= '/') goto yy818;
- if (yych <= '9') goto yy821;
+ if (yych <= '/') goto yy821;
+ if (yych <= '9') goto yy824;
} else {
- if (yych <= '[') goto yy821;
- if (yych >= '_') goto yy821;
+ if (yych <= '[') goto yy824;
+ if (yych >= '_') goto yy824;
}
} else {
if (yych <= '|') {
- if (yych <= '`') goto yy818;
- if (yych <= 'z') goto yy821;
+ if (yych <= '`') goto yy821;
+ if (yych <= 'z') goto yy824;
} else {
- if (yych != '~') goto yy821;
+ if (yych != '~') goto yy824;
}
}
-yy818:
- YYDEBUG(818, *YYCURSOR);
+yy821:
+ YYDEBUG(821, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1490 "Zend/zend_language_scanner.l"
+#line 1482 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 7477 "Zend/zend_language_scanner.c"
-yy819:
- YYDEBUG(819, *YYCURSOR);
+#line 7423 "Zend/zend_language_scanner.c"
+yy822:
+ YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy818;
-yy820:
- YYDEBUG(820, *YYCURSOR);
+ goto yy821;
+yy823:
+ YYDEBUG(823, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy821:
- YYDEBUG(821, *YYCURSOR);
+yy824:
+ YYDEBUG(824, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy820;
+ goto yy823;
}
- if (yych == '[') goto yy823;
- if (yych == '}') goto yy823;
- YYDEBUG(822, *YYCURSOR);
+ if (yych == '[') goto yy826;
+ if (yych == '}') goto yy826;
+ YYDEBUG(825, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy818;
-yy823:
- YYDEBUG(823, *YYCURSOR);
+ goto yy821;
+yy826:
+ YYDEBUG(826, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(824, *YYCURSOR);
+ YYDEBUG(827, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
+#line 1472 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
zend_copy_value(zendlval, yytext, yyleng);
@@ -7507,18 +7453,18 @@ yy823:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 7511 "Zend/zend_language_scanner.c"
+#line 7457 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_NOWDOC:
- YYDEBUG(825, *YYCURSOR);
+ YYDEBUG(828, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(827, *YYCURSOR);
+ YYDEBUG(830, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(828, *YYCURSOR);
+ YYDEBUG(831, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2374 "Zend/zend_language_scanner.l"
+#line 2302 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -7575,7 +7521,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7579 "Zend/zend_language_scanner.c"
+#line 7525 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7613,162 +7559,159 @@ yyc_ST_VAR_OFFSET:
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
};
- YYDEBUG(829, *YYCURSOR);
+ YYDEBUG(832, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy843;
- if (yych <= '\n') goto yy839;
- goto yy843;
+ if (yych <= 0x08) goto yy846;
+ if (yych <= '\n') goto yy842;
+ goto yy846;
} else {
- if (yych <= '\r') goto yy839;
- if (yych <= 0x1F) goto yy843;
- goto yy839;
+ if (yych <= '\r') goto yy842;
+ if (yych <= 0x1F) goto yy846;
+ goto yy842;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy838;
- if (yych <= '#') goto yy839;
- goto yy834;
+ if (yych <= '"') goto yy841;
+ if (yych <= '#') goto yy842;
+ goto yy837;
} else {
- if (yych == '\'') goto yy839;
- goto yy838;
+ if (yych == '\'') goto yy842;
+ goto yy841;
}
}
} else {
if (yych <= '\\') {
if (yych <= '@') {
- if (yych <= '0') goto yy831;
- if (yych <= '9') goto yy833;
- goto yy838;
+ if (yych <= '0') goto yy834;
+ if (yych <= '9') goto yy836;
+ goto yy841;
} else {
- if (yych <= 'Z') goto yy841;
- if (yych <= '[') goto yy838;
- goto yy839;
+ if (yych <= 'Z') goto yy844;
+ if (yych <= '[') goto yy841;
+ goto yy842;
}
} else {
if (yych <= '_') {
- if (yych <= ']') goto yy836;
- if (yych <= '^') goto yy838;
- goto yy841;
+ if (yych <= ']') goto yy839;
+ if (yych <= '^') goto yy841;
+ goto yy844;
} else {
- if (yych <= '`') goto yy838;
- if (yych <= 'z') goto yy841;
- if (yych <= '~') goto yy838;
- goto yy841;
+ if (yych <= '`') goto yy841;
+ if (yych <= 'z') goto yy844;
+ if (yych <= '~') goto yy841;
+ goto yy844;
}
}
}
-yy831:
- YYDEBUG(831, *YYCURSOR);
+yy834:
+ YYDEBUG(834, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
if (yych <= '9') {
- if (yych >= '0') goto yy855;
+ if (yych >= '0') goto yy858;
} else {
- if (yych == 'B') goto yy852;
+ if (yych == 'B') goto yy855;
}
} else {
if (yych <= 'b') {
- if (yych <= 'X') goto yy854;
- if (yych >= 'b') goto yy852;
+ if (yych <= 'X') goto yy857;
+ if (yych >= 'b') goto yy855;
} else {
- if (yych == 'x') goto yy854;
+ if (yych == 'x') goto yy857;
}
}
-yy832:
- YYDEBUG(832, *YYCURSOR);
+yy835:
+ YYDEBUG(835, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1568 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
{ /* Offset could be treated as a long */
if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
- zendlval->value.lval = strtol(yytext, NULL, 10);
- zendlval->type = IS_LONG;
+ ZVAL_LONG(zendlval, strtol(yytext, NULL, 10));
} else {
- zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 1);
}
return T_NUM_STRING;
}
-#line 7698 "Zend/zend_language_scanner.c"
-yy833:
- YYDEBUG(833, *YYCURSOR);
+#line 7641 "Zend/zend_language_scanner.c"
+yy836:
+ YYDEBUG(836, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy851;
-yy834:
- YYDEBUG(834, *YYCURSOR);
+ goto yy854;
+yy837:
+ YYDEBUG(837, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy835;
- if (yych <= 'Z') goto yy847;
- if (yych >= '_') goto yy847;
+ if (yych <= '@') goto yy838;
+ if (yych <= 'Z') goto yy850;
+ if (yych >= '_') goto yy850;
} else {
- if (yych <= '`') goto yy835;
- if (yych <= 'z') goto yy847;
- if (yych >= 0x7F) goto yy847;
+ if (yych <= '`') goto yy838;
+ if (yych <= 'z') goto yy850;
+ if (yych >= 0x7F) goto yy850;
}
-yy835:
- YYDEBUG(835, *YYCURSOR);
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1900 "Zend/zend_language_scanner.l"
+#line 1834 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 7723 "Zend/zend_language_scanner.c"
-yy836:
- YYDEBUG(836, *YYCURSOR);
+#line 7666 "Zend/zend_language_scanner.c"
+yy839:
+ YYDEBUG(839, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(837, *YYCURSOR);
+ YYDEBUG(840, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1829 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 7734 "Zend/zend_language_scanner.c"
-yy838:
- YYDEBUG(838, *YYCURSOR);
+#line 7677 "Zend/zend_language_scanner.c"
+yy841:
+ YYDEBUG(841, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy835;
-yy839:
- YYDEBUG(839, *YYCURSOR);
+ goto yy838;
+yy842:
+ YYDEBUG(842, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(840, *YYCURSOR);
+ YYDEBUG(843, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1905 "Zend/zend_language_scanner.l"
+#line 1839 "Zend/zend_language_scanner.l"
{
/* Invalid rule to return a more explicit parse error with proper line number */
yyless(0);
yy_pop_state(TSRMLS_C);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7751 "Zend/zend_language_scanner.c"
-yy841:
- YYDEBUG(841, *YYCURSOR);
+#line 7694 "Zend/zend_language_scanner.c"
+yy844:
+ YYDEBUG(844, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy846;
-yy842:
- YYDEBUG(842, *YYCURSOR);
+ goto yy849;
+yy845:
+ YYDEBUG(845, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1912 "Zend/zend_language_scanner.l"
+#line 1846 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7766 "Zend/zend_language_scanner.c"
-yy843:
- YYDEBUG(843, *YYCURSOR);
+#line 7709 "Zend/zend_language_scanner.c"
+yy846:
+ YYDEBUG(846, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(844, *YYCURSOR);
+ YYDEBUG(847, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2432 "Zend/zend_language_scanner.l"
+#line 2360 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -7777,118 +7720,116 @@ yy843:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 7781 "Zend/zend_language_scanner.c"
-yy845:
- YYDEBUG(845, *YYCURSOR);
+#line 7724 "Zend/zend_language_scanner.c"
+yy848:
+ YYDEBUG(848, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy846:
- YYDEBUG(846, *YYCURSOR);
+yy849:
+ YYDEBUG(849, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy845;
+ goto yy848;
}
- goto yy842;
-yy847:
- YYDEBUG(847, *YYCURSOR);
+ goto yy845;
+yy850:
+ YYDEBUG(850, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(848, *YYCURSOR);
+ YYDEBUG(851, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy847;
+ if (yych >= '0') goto yy850;
} else {
- if (yych <= '@') goto yy849;
- if (yych <= 'Z') goto yy847;
+ if (yych <= '@') goto yy852;
+ if (yych <= 'Z') goto yy850;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy847;
+ if (yych <= '_') goto yy850;
} else {
- if (yych <= 'z') goto yy847;
- if (yych >= 0x7F) goto yy847;
+ if (yych <= 'z') goto yy850;
+ if (yych >= 0x7F) goto yy850;
}
}
-yy849:
- YYDEBUG(849, *YYCURSOR);
+yy852:
+ YYDEBUG(852, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 7823 "Zend/zend_language_scanner.c"
-yy850:
- YYDEBUG(850, *YYCURSOR);
+#line 7766 "Zend/zend_language_scanner.c"
+yy853:
+ YYDEBUG(853, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy851:
- YYDEBUG(851, *YYCURSOR);
+yy854:
+ YYDEBUG(854, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy850;
+ goto yy853;
}
- goto yy832;
-yy852:
- YYDEBUG(852, *YYCURSOR);
+ goto yy835;
+yy855:
+ YYDEBUG(855, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy860;
+ goto yy863;
}
-yy853:
- YYDEBUG(853, *YYCURSOR);
+yy856:
+ YYDEBUG(856, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy832;
-yy854:
- YYDEBUG(854, *YYCURSOR);
+ goto yy835;
+yy857:
+ YYDEBUG(857, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy858;
+ goto yy861;
}
- goto yy853;
-yy855:
- YYDEBUG(855, *YYCURSOR);
+ goto yy856;
+yy858:
+ YYDEBUG(858, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(856, *YYCURSOR);
- if (yych <= '/') goto yy857;
- if (yych <= '9') goto yy855;
-yy857:
- YYDEBUG(857, *YYCURSOR);
+ YYDEBUG(859, *YYCURSOR);
+ if (yych <= '/') goto yy860;
+ if (yych <= '9') goto yy858;
+yy860:
+ YYDEBUG(860, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
+#line 1567 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
- zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 1);
return T_NUM_STRING;
}
-#line 7870 "Zend/zend_language_scanner.c"
-yy858:
- YYDEBUG(858, *YYCURSOR);
+#line 7811 "Zend/zend_language_scanner.c"
+yy861:
+ YYDEBUG(861, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(859, *YYCURSOR);
+ YYDEBUG(862, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy858;
+ goto yy861;
}
- goto yy857;
-yy860:
- YYDEBUG(860, *YYCURSOR);
+ goto yy860;
+yy863:
+ YYDEBUG(863, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(861, *YYCURSOR);
+ YYDEBUG(864, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy860;
+ goto yy863;
}
- goto yy857;
+ goto yy860;
}
}
-#line 2441 "Zend/zend_language_scanner.l"
+#line 2369 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h
index 2e5914f1b..05345b2cc 100644
--- a/Zend/zend_language_scanner.h
+++ b/Zend/zend_language_scanner.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_language_scanner.l b/Zend/zend_language_scanner.l
index d2e7243bb..ccf8a4ca0 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -47,7 +47,7 @@
#include "zend_API.h"
#include "zend_strtod.h"
#include "zend_exceptions.h"
-#include "tsrm_virtual_cwd.h"
+#include "zend_virtual_cwd.h"
#include "tsrm_config_common.h"
#define YYCTYPE unsigned char
@@ -562,10 +562,8 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
zend_bool original_in_compilation = CG(in_compilation);
retval_znode.op_type = IS_CONST;
- retval_znode.u.constant.type = IS_LONG;
- retval_znode.u.constant.value.lval = 1;
- Z_UNSET_ISREF(retval_znode.u.constant);
- Z_SET_REFCOUNT(retval_znode.u.constant, 1);
+ INIT_PZVAL(&retval_znode.u.constant);
+ ZVAL_LONG(&retval_znode.u.constant, 1);
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
@@ -622,7 +620,7 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
convert_to_string(&tmp);
filename = &tmp;
}
- file_handle.filename = filename->value.str.val;
+ file_handle.filename = Z_STRVAL_P(filename);
file_handle.free_filename = 0;
file_handle.type = ZEND_HANDLE_FILENAME;
file_handle.opened_path = NULL;
@@ -633,7 +631,7 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
int dummy = 1;
if (!file_handle.opened_path) {
- file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
+ file_handle.opened_path = opened_path = estrndup(Z_STRVAL_P(filename), Z_STRLEN_P(filename));
}
zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
@@ -655,22 +653,15 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
char *buf;
size_t size;
- /* enforce two trailing NULLs for flex... */
- if (IS_INTERNED(str->value.str.val)) {
- char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);
- memcpy(tmp, str->value.str.val, str->value.str.len + ZEND_MMAP_AHEAD);
- str->value.str.val = tmp;
- } else {
- str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
- }
-
- memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
+ /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
+ Z_STRVAL_P(str) = str_erealloc(Z_STRVAL_P(str), Z_STRLEN_P(str) + ZEND_MMAP_AHEAD);
+ memset(Z_STRVAL_P(str) + Z_STRLEN_P(str), 0, ZEND_MMAP_AHEAD);
SCNG(yy_in) = NULL;
SCNG(yy_start) = NULL;
- buf = str->value.str.val;
- size = str->value.str.len;
+ buf = Z_STRVAL_P(str);
+ size = Z_STRLEN_P(str);
if (CG(multibyte)) {
SCNG(script_org) = (unsigned char*)buf;
@@ -731,7 +722,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
int compiler_result;
zend_bool original_in_compilation = CG(in_compilation);
- if (source_string->value.str.len==0) {
+ if (Z_STRLEN_P(source_string)==0) {
efree(op_array);
return NULL;
}
@@ -869,11 +860,11 @@ ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter
# define zend_copy_value(zendlval, yytext, yyleng) \
if (SCNG(output_filter)) { \
size_t sz = 0; \
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
- zendlval->value.str.len = sz; \
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
+ Z_STRLEN_P(zendlval) = sz; \
} else { \
- zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
- zendlval->value.str.len = yyleng; \
+ Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng); \
+ Z_STRLEN_P(zendlval) = yyleng; \
}
static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
@@ -884,8 +875,8 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
ZVAL_STRINGL(zendlval, str, len, 1);
/* convert escape sequences */
- s = t = zendlval->value.str.val;
- end = s+zendlval->value.str.len;
+ s = t = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
while (s<end) {
if (*s=='\\') {
s++;
@@ -897,23 +888,23 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
switch(*s) {
case 'n':
*t++ = '\n';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'r':
*t++ = '\r';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 't':
*t++ = '\t';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'f':
*t++ = '\f';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'v':
*t++ = '\v';
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'e':
#ifdef PHP_WIN32
@@ -921,7 +912,7 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
#else
*t++ = '\e';
#endif
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case '"':
case '`':
@@ -933,20 +924,20 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
case '\\':
case '$':
*t++ = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
case 'x':
case 'X':
if (ZEND_IS_HEX(*(s+1))) {
char hex_buf[3] = { 0, 0, 0 };
- zendlval->value.str.len--; /* for the 'x' */
+ Z_STRLEN_P(zendlval)--; /* for the 'x' */
hex_buf[0] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_HEX(*(s+1))) {
hex_buf[1] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
}
*t++ = (char) strtol(hex_buf, NULL, 16);
} else {
@@ -960,13 +951,13 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
char octal_buf[4] = { 0, 0, 0, 0 };
octal_buf[0] = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_OCT(*(s+1))) {
octal_buf[1] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
if (ZEND_IS_OCT(*(s+1))) {
octal_buf[2] = *(++s);
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
}
}
*t++ = (char) strtol(octal_buf, NULL, 8);
@@ -988,9 +979,9 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo
*t = 0;
if (SCNG(output_filter)) {
size_t sz = 0;
- s = zendlval->value.str.val;
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
- zendlval->value.str.len = sz;
+ s = Z_STRVAL_P(zendlval);
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval) TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
efree(s);
}
}
@@ -1020,7 +1011,6 @@ NEWLINE ("\r"|"\n"|"\r\n")
/* compute yyleng before each rule */
<!*> := yyleng = YYCURSOR - SCNG(yy_text);
-
<ST_IN_SCRIPTING>"exit" {
return T_EXIT;
}
@@ -1183,9 +1173,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
<ST_IN_SCRIPTING,ST_LOOKING_FOR_PROPERTY>{WHITESPACE}+ {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
@@ -1215,6 +1203,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_NS_SEPARATOR;
}
+<ST_IN_SCRIPTING>"..." {
+ return T_ELLIPSIS;
+}
+
<ST_IN_SCRIPTING>"new" {
return T_NEW;
}
@@ -1506,30 +1498,29 @@ NEWLINE ("\r"|"\n"|"\r\n")
if (len < SIZEOF_LONG * 8) {
if (len == 0) {
- zendlval->value.lval = 0;
+ Z_LVAL_P(zendlval) = 0;
} else {
- zendlval->value.lval = strtol(bin, NULL, 2);
+ Z_LVAL_P(zendlval) = strtol(bin, NULL, 2);
}
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
- zendlval->value.dval = zend_bin_strtod(bin, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, NULL));
return T_DNUMBER;
}
}
<ST_IN_SCRIPTING>{LNUM} {
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
- zendlval->value.lval = strtol(yytext, NULL, 0);
+ Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
} else {
errno = 0;
- zendlval->value.lval = strtol(yytext, NULL, 0);
+ Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
if (errno == ERANGE) { /* Overflow */
if (yytext[0] == '0') { /* octal overflow */
- zendlval->value.dval = zend_oct_strtod(yytext, NULL);
+ Z_DVAL_P(zendlval) = zend_oct_strtod(yytext, NULL);
} else {
- zendlval->value.dval = zend_strtod(yytext, NULL);
+ Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
}
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
@@ -1552,120 +1543,80 @@ NEWLINE ("\r"|"\n"|"\r\n")
if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
if (len == 0) {
- zendlval->value.lval = 0;
+ Z_LVAL_P(zendlval) = 0;
} else {
- zendlval->value.lval = strtol(hex, NULL, 16);
+ Z_LVAL_P(zendlval) = strtol(hex, NULL, 16);
}
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
- zendlval->value.dval = zend_hex_strtod(hex, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, NULL));
return T_DNUMBER;
}
}
<ST_VAR_OFFSET>[0]|([1-9][0-9]*) { /* Offset could be treated as a long */
if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
- zendlval->value.lval = strtol(yytext, NULL, 10);
- zendlval->type = IS_LONG;
+ ZVAL_LONG(zendlval, strtol(yytext, NULL, 10));
} else {
- zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 1);
}
return T_NUM_STRING;
}
<ST_VAR_OFFSET>{LNUM}|{HNUM}|{BNUM} { /* Offset must be treated as a string */
- zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 1);
return T_NUM_STRING;
}
<ST_IN_SCRIPTING>{DNUM}|{EXPONENT_DNUM} {
- zendlval->value.dval = zend_strtod(yytext, NULL);
- zendlval->type = IS_DOUBLE;
+ ZVAL_DOUBLE(zendlval, zend_strtod(yytext, NULL));
return T_DNUMBER;
}
<ST_IN_SCRIPTING>"__CLASS__" {
- const char *class_name = NULL;
-
- if (CG(active_class_entry)
- && (ZEND_ACC_TRAIT ==
- (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
+ zend_class_entry *ce = CG(active_class_entry);
+ if (ce && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
/* We create a special __CLASS__ constant that is going to be resolved
at run-time */
- zendlval->value.str.len = sizeof("__CLASS__")-1;
- zendlval->value.str.val = estrndup("__CLASS__", zendlval->value.str.len);
+ Z_STRLEN_P(zendlval) = sizeof("__CLASS__")-1;
+ Z_STRVAL_P(zendlval) = estrndup("__CLASS__", Z_STRLEN_P(zendlval));
zendlval->type = IS_CONSTANT;
} else {
- if (CG(active_class_entry)) {
- class_name = CG(active_class_entry)->name;
- }
-
- if (!class_name) {
- class_name = "";
+ if (ce && ce->name) {
+ ZVAL_STRINGL(zendlval, ce->name, ce->name_length, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
}
-
- zendlval->value.str.len = strlen(class_name);
- zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
}
return T_CLASS_C;
}
<ST_IN_SCRIPTING>"__TRAIT__" {
- const char *trait_name = NULL;
-
- if (CG(active_class_entry)
- && (ZEND_ACC_TRAIT ==
- (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
- trait_name = CG(active_class_entry)->name;
- }
-
- if (!trait_name) {
- trait_name = "";
- }
-
- zendlval->value.str.len = strlen(trait_name);
- zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
-
+ zend_class_entry *ce = CG(active_class_entry);
+ if (ce && ce->name && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
+ ZVAL_STRINGL(zendlval, ce->name, ce->name_length, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
+ }
return T_TRAIT_C;
}
<ST_IN_SCRIPTING>"__FUNCTION__" {
- const char *func_name = NULL;
-
- if (CG(active_op_array)) {
- func_name = CG(active_op_array)->function_name;
- }
-
- if (!func_name) {
- func_name = "";
+ zend_op_array *op_array = CG(active_op_array);
+ if (op_array && op_array->function_name) {
+ ZVAL_STRING(zendlval, op_array->function_name, 1);
+ } else {
+ ZVAL_EMPTY_STRING(zendlval);
}
- zendlval->value.str.len = strlen(func_name);
- zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
- zendlval->type = IS_STRING;
return T_FUNC_C;
}
<ST_IN_SCRIPTING>"__METHOD__" {
const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
- size_t len = 0;
-
- if (class_name) {
- len += strlen(class_name) + 2;
- }
- if (func_name) {
- len += strlen(func_name);
- }
- zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
+ Z_STRLEN_P(zendlval) = zend_spprintf(&Z_STRVAL_P(zendlval), 0, "%s%s%s",
class_name ? class_name : "",
class_name && func_name ? "::" : "",
func_name ? func_name : ""
@@ -1675,8 +1626,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
<ST_IN_SCRIPTING>"__LINE__" {
- zendlval->value.lval = CG(zend_lineno);
- zendlval->type = IS_LONG;
+ ZVAL_LONG(zendlval, CG(zend_lineno));
return T_LINE;
}
@@ -1686,9 +1636,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
if (!filename) {
filename = "";
}
- zendlval->value.str.len = strlen(filename);
- zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
- zendlval->type = IS_STRING;
+ ZVAL_STRING(zendlval, filename, 1);
return T_FILE;
}
@@ -1713,9 +1661,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
#endif
}
- zendlval->value.str.len = strlen(dirname);
- zendlval->value.str.val = dirname;
- zendlval->type = IS_STRING;
+ ZVAL_STRING(zendlval, dirname, 0);
return T_DIR;
}
@@ -1739,9 +1685,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
HANDLE_NEWLINES(yytext, yyleng);
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
@@ -1749,9 +1693,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>"<%=" {
if (CG(asp_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
} else {
@@ -1761,9 +1703,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>"<?=" {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
}
@@ -1771,9 +1711,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>"<%" {
if (CG(asp_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
@@ -1783,9 +1721,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>"<?php"([ \t]|{NEWLINE}) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
HANDLE_NEWLINE(yytext[yyleng-1]);
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
@@ -1794,9 +1730,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>"<?" {
if (CG(short_tags)) {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
@@ -1850,14 +1784,14 @@ inline_html:
if (SCNG(output_filter)) {
int readsize;
size_t sz = 0;
- readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
- zendlval->value.str.len = sz;
+ readsize = SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
if (readsize < yyleng) {
yyless(readsize);
}
} else {
- zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
- zendlval->value.str.len = yyleng;
+ Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng);
+ Z_STRLEN_P(zendlval) = yyleng;
}
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
@@ -1985,9 +1919,7 @@ inline_html:
}
<ST_IN_SCRIPTING>("?>"|"</script"{WHITESPACE}*">"){NEWLINE}? {
- zendlval->value.str.val = yytext; /* no copying - intentional */
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
@@ -1996,9 +1928,7 @@ inline_html:
<ST_IN_SCRIPTING>"%>"{NEWLINE}? {
if (CG(asp_tags)) {
BEGIN(INITIAL);
- zendlval->value.str.len = yyleng;
- zendlval->type = IS_STRING;
- zendlval->value.str.val = yytext; /* no copying - intentional */
+ ZVAL_STRINGL(zendlval, yytext, yyleng, 0); /* no copying - intentional */
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
} else {
yyless(1);
@@ -2032,13 +1962,11 @@ inline_html:
}
}
- zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
- zendlval->value.str.len = yyleng-bprefix-2;
- zendlval->type = IS_STRING;
+ ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2, 1);
/* convert escape sequences */
- s = t = zendlval->value.str.val;
- end = s+zendlval->value.str.len;
+ s = t = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
while (s<end) {
if (*s=='\\') {
s++;
@@ -2047,7 +1975,7 @@ inline_html:
case '\\':
case '\'':
*t++ = *s;
- zendlval->value.str.len--;
+ Z_STRLEN_P(zendlval)--;
break;
default:
*t++ = '\\';
@@ -2067,9 +1995,9 @@ inline_html:
if (SCNG(output_filter)) {
size_t sz = 0;
- s = zendlval->value.str.val;
- SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
- zendlval->value.str.len = sz;
+ s = Z_STRVAL_P(zendlval);
+ SCNG(output_filter)((unsigned char **)&Z_STRVAL_P(zendlval), &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval) TSRMLS_CC);
+ Z_STRLEN_P(zendlval) = sz;
efree(s);
}
return T_CONSTANT_ENCAPSED_STRING;
@@ -2187,7 +2115,7 @@ inline_html:
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" {
- zendlval->value.lval = (long) '{';
+ Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
diff --git a/Zend/zend_list.c b/Zend/zend_list.c
index e60deb1cd..11c2c3356 100644
--- a/Zend/zend_list.c
+++ b/Zend/zend_list.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_list.h b/Zend/zend_list.h
index 23f51140f..b7980d56f 100644
--- a/Zend/zend_list.h
+++ b/Zend/zend_list.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_llist.c b/Zend/zend_llist.c
index 20f847c78..ad74bd56c 100644
--- a/Zend/zend_llist.c
+++ b/Zend/zend_llist.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_llist.h b/Zend/zend_llist.h
index 0a03e6ce5..b05ece807 100644
--- a/Zend/zend_llist.h
+++ b/Zend/zend_llist.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_modules.h b/Zend/zend_modules.h
index d4adcf5aa..080d46168 100644
--- a/Zend/zend_modules.h
+++ b/Zend/zend_modules.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -33,7 +33,7 @@
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module TSRMLS_DC
#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module TSRMLS_CC
-#define ZEND_MODULE_API_NO 20121212
+#define ZEND_MODULE_API_NO 20131226
#ifdef ZTS
#define USING_ZTS 1
#else
diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c
index dafcf1839..75fcd638d 100644
--- a/Zend/zend_multibyte.c
+++ b/Zend/zend_multibyte.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -53,7 +53,7 @@ static size_t dummy_encoding_converter(unsigned char **to, size_t *to_length, co
static int dummy_encoding_list_parser(const char *encoding_list, size_t encoding_list_len, const zend_encoding ***return_list, size_t *return_size, int persistent TSRMLS_DC)
{
*return_list = pemalloc(0, persistent);
- return_size = 0;
+ *return_size = 0;
return SUCCESS;
}
diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h
index c537e133f..db2db1a97 100644
--- a/Zend/zend_multibyte.h
+++ b/Zend/zend_multibyte.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_multiply.h b/Zend/zend_multiply.h
index 0d8977fde..74dc7d145 100644
--- a/Zend/zend_multiply.h
+++ b/Zend/zend_multiply.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_object_handlers.c b/Zend/zend_object_handlers.c
index f7be37036..991dca2ee 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -896,11 +896,8 @@ ZEND_API void zend_std_call_user_call(INTERNAL_FUNCTION_PARAMETERS) /* {{{ */
zend_call_method_with_2_params(&this_ptr, ce, &ce->__call, ZEND_CALL_FUNC_NAME, &method_result_ptr, method_name_ptr, method_args_ptr);
if (method_result_ptr) {
- if (Z_ISREF_P(method_result_ptr) || Z_REFCOUNT_P(method_result_ptr) > 1) {
- RETVAL_ZVAL(method_result_ptr, 1, 1);
- } else {
- RETVAL_ZVAL(method_result_ptr, 0, 1);
- }
+ RETVAL_ZVAL_FAST(method_result_ptr);
+ zval_ptr_dtor(&method_result_ptr);
}
/* now destruct all auxiliaries */
@@ -1113,11 +1110,8 @@ ZEND_API void zend_std_callstatic_user_call(INTERNAL_FUNCTION_PARAMETERS) /* {{{
zend_call_method_with_2_params(NULL, ce, &ce->__callstatic, ZEND_CALLSTATIC_FUNC_NAME, &method_result_ptr, method_name_ptr, method_args_ptr);
if (method_result_ptr) {
- if (Z_ISREF_P(method_result_ptr) || Z_REFCOUNT_P(method_result_ptr) > 1) {
- RETVAL_ZVAL(method_result_ptr, 1, 1);
- } else {
- RETVAL_ZVAL(method_result_ptr, 0, 1);
- }
+ RETVAL_ZVAL_FAST(method_result_ptr);
+ zval_ptr_dtor(&method_result_ptr);
}
/* now destruct all auxiliaries */
@@ -1379,10 +1373,6 @@ static int zend_std_compare_objects(zval *o1, zval *o2 TSRMLS_DC) /* {{{ */
Z_OBJ_UNPROTECT_RECURSION(o1);
Z_OBJ_UNPROTECT_RECURSION(o2);
return 1;
- } else {
- Z_OBJ_UNPROTECT_RECURSION(o1);
- Z_OBJ_UNPROTECT_RECURSION(o2);
- return 0;
}
}
}
@@ -1651,6 +1641,8 @@ ZEND_API zend_object_handlers std_object_handlers = {
NULL, /* get_debug_info */
zend_std_get_closure, /* get_closure */
zend_std_get_gc, /* get_gc */
+ NULL, /* do_operation */
+ NULL, /* compare */
};
/*
diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h
index 3ea600835..14418b9bf 100644
--- a/Zend/zend_object_handlers.h
+++ b/Zend/zend_object_handlers.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -100,6 +100,7 @@ typedef zend_object_value (*zend_object_clone_obj_t)(zval *object TSRMLS_DC);
typedef zend_class_entry *(*zend_object_get_class_entry_t)(const zval *object TSRMLS_DC);
typedef int (*zend_object_get_class_name_t)(const zval *object, const char **class_name, zend_uint *class_name_len, int parent TSRMLS_DC);
typedef int (*zend_object_compare_t)(zval *object1, zval *object2 TSRMLS_DC);
+typedef int (*zend_object_compare_zvals_t)(zval *resul, zval *op1, zval *op2 TSRMLS_DC);
/* Cast an object to some other type
*/
@@ -113,6 +114,8 @@ typedef int (*zend_object_get_closure_t)(zval *obj, zend_class_entry **ce_ptr, u
typedef HashTable *(*zend_object_get_gc_t)(zval *object, zval ***table, int *n TSRMLS_DC);
+typedef int (*zend_object_do_operation_t)(zend_uchar opcode, zval *result, zval *op1, zval *op2 TSRMLS_DC);
+
struct _zend_object_handlers {
/* general object functions */
zend_object_add_ref_t add_ref;
@@ -142,6 +145,8 @@ struct _zend_object_handlers {
zend_object_get_debug_info_t get_debug_info;
zend_object_get_closure_t get_closure;
zend_object_get_gc_t get_gc;
+ zend_object_do_operation_t do_operation;
+ zend_object_compare_zvals_t compare;
};
extern ZEND_API zend_object_handlers std_object_handlers;
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index ce6284439..da3aab551 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_objects.h b/Zend/zend_objects.h
index 17d8430fc..d00c65a36 100644
--- a/Zend/zend_objects.h
+++ b/Zend/zend_objects.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_objects_API.c b/Zend/zend_objects_API.c
index b5dd48f79..f7a6b0b4c 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_objects_API.h b/Zend/zend_objects_API.h
index a6ea9b8c0..d8f2c5e38 100644
--- a/Zend/zend_objects_API.h
+++ b/Zend/zend_objects_API.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_opcode.c b/Zend/zend_opcode.c
index 2dfa9848b..af64e5a7f 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -546,11 +546,11 @@ static void zend_resolve_finally_call(zend_op_array *op_array, zend_uint op_num,
while (i > 0) {
i--;
if (op_array->try_catch_array[i].finally_op &&
- op_num >= op_array->try_catch_array[i].try_op &&
- op_num < op_array->try_catch_array[i].finally_op - 1 &&
- (dst_num < op_array->try_catch_array[i].try_op ||
- dst_num > op_array->try_catch_array[i].finally_end)) {
-
+ op_num >= op_array->try_catch_array[i].try_op &&
+ op_num < op_array->try_catch_array[i].finally_op - 1 &&
+ (dst_num < op_array->try_catch_array[i].try_op ||
+ dst_num > op_array->try_catch_array[i].finally_end)) {
+
opline = get_next_op(op_array TSRMLS_CC);
opline->opcode = ZEND_FAST_CALL;
SET_UNUSED(opline->op1);
@@ -570,7 +570,7 @@ static void zend_resolve_finally_call(zend_op_array *op_array, zend_uint op_num,
SET_UNUSED(opline->op2);
opline->op1.opline_num = start_op;
- break;
+ break;
}
}
}
@@ -715,7 +715,7 @@ ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC)
if (op_array->fn_flags & ZEND_ACC_GENERATOR) {
if (opline->op1_type != IS_CONST || Z_TYPE_P(opline->op1.zv) != IS_NULL) {
CG(zend_lineno) = opline->lineno;
- zend_error(E_COMPILE_ERROR, "Generators cannot return values using \"return\"");
+ zend_error_noreturn(E_COMPILE_ERROR, "Generators cannot return values using \"return\"");
}
opline->opcode = ZEND_GENERATOR_RETURN;
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 5c84deb26..3434694f4 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -192,7 +192,7 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC) /* {{{ */
if ((Z_TYPE_P(op)=is_numeric_string(strval, Z_STRLEN_P(op), &Z_LVAL_P(op), &Z_DVAL_P(op), 1)) == 0) {
ZVAL_LONG(op, 0);
}
- STR_FREE(strval);
+ str_efree(strval);
break;
}
case IS_BOOL:
@@ -391,7 +391,7 @@ ZEND_API void convert_to_long_base(zval *op, int base) /* {{{ */
char *strval = Z_STRVAL_P(op);
Z_LVAL_P(op) = strtol(strval, NULL, base);
- STR_FREE(strval);
+ str_efree(strval);
}
break;
case IS_ARRAY:
@@ -451,7 +451,7 @@ ZEND_API void convert_to_double(zval *op) /* {{{ */
char *strval = Z_STRVAL_P(op);
Z_DVAL_P(op) = zend_strtod(strval, NULL);
- STR_FREE(strval);
+ str_efree(strval);
}
break;
case IS_ARRAY:
@@ -540,7 +540,7 @@ ZEND_API void convert_to_boolean(zval *op) /* {{{ */
} else {
Z_LVAL_P(op) = 1;
}
- STR_FREE(strval);
+ str_efree(strval);
}
break;
case IS_ARRAY:
@@ -857,6 +857,8 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
default:
if (!converted) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_ADD);
+
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
converted = 1;
@@ -904,6 +906,8 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
default:
if (!converted) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SUB);
+
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
converted = 1;
@@ -945,6 +949,8 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
default:
if (!converted) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_MUL);
+
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
converted = 1;
@@ -1010,6 +1016,8 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
default:
if (!converted) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_DIV);
+
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
converted = 1;
@@ -1027,9 +1035,15 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
zval op1_copy, op2_copy;
long op1_lval;
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_MOD);
+
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
if (Z_LVAL_P(op2) == 0) {
zend_error(E_WARNING, "Division by zero");
@@ -1053,9 +1067,16 @@ ZEND_API int boolean_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
zval op1_copy, op2_copy;
long op1_lval;
- zendi_convert_to_boolean(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_boolean(op2, op2_copy, result);
+ if (Z_TYPE_P(op1) != IS_BOOL || Z_TYPE_P(op2) != IS_BOOL) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BOOL_XOR);
+
+ zendi_convert_to_boolean(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_boolean(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
+
ZVAL_BOOL(result, op1_lval ^ Z_LVAL_P(op2));
return SUCCESS;
}
@@ -1065,7 +1086,12 @@ ZEND_API int boolean_not_function(zval *result, zval *op1 TSRMLS_DC) /* {{{ */
{
zval op1_copy;
- zendi_convert_to_boolean(op1, op1_copy, result);
+ if (Z_TYPE_P(op1) != IS_BOOL) {
+ ZEND_TRY_UNARY_OBJECT_OPERATION(ZEND_BOOL_NOT);
+
+ zendi_convert_to_boolean(op1, op1_copy, result);
+ }
+
ZVAL_BOOL(result, !Z_LVAL_P(op1));
return SUCCESS;
}
@@ -1073,29 +1099,32 @@ ZEND_API int boolean_not_function(zval *result, zval *op1 TSRMLS_DC) /* {{{ */
ZEND_API int bitwise_not_function(zval *result, zval *op1 TSRMLS_DC) /* {{{ */
{
- zval op1_copy = *op1;
-
- op1 = &op1_copy;
- if (Z_TYPE_P(op1) == IS_LONG) {
- ZVAL_LONG(result, ~Z_LVAL_P(op1));
- return SUCCESS;
- } else if (Z_TYPE_P(op1) == IS_DOUBLE) {
- ZVAL_LONG(result, ~zend_dval_to_lval(Z_DVAL_P(op1)));
- return SUCCESS;
- } else if (Z_TYPE_P(op1) == IS_STRING) {
- int i;
-
- Z_TYPE_P(result) = IS_STRING;
- Z_STRVAL_P(result) = estrndup(Z_STRVAL_P(op1), Z_STRLEN_P(op1));
- Z_STRLEN_P(result) = Z_STRLEN_P(op1);
- for (i = 0; i < Z_STRLEN_P(op1); i++) {
- Z_STRVAL_P(result)[i] = ~Z_STRVAL_P(op1)[i];
+ switch (Z_TYPE_P(op1)) {
+ case IS_LONG:
+ ZVAL_LONG(result, ~Z_LVAL_P(op1));
+ return SUCCESS;
+ case IS_DOUBLE:
+ ZVAL_LONG(result, ~zend_dval_to_lval(Z_DVAL_P(op1)));
+ return SUCCESS;
+ case IS_STRING: {
+ int i;
+ zval op1_copy = *op1;
+
+ Z_TYPE_P(result) = IS_STRING;
+ Z_STRVAL_P(result) = estrndup(Z_STRVAL(op1_copy), Z_STRLEN(op1_copy));
+ Z_STRLEN_P(result) = Z_STRLEN(op1_copy);
+ for (i = 0; i < Z_STRLEN(op1_copy); i++) {
+ Z_STRVAL_P(result)[i] = ~Z_STRVAL(op1_copy)[i];
+ }
+ return SUCCESS;
}
- return SUCCESS;
+ default:
+ ZEND_TRY_UNARY_OBJECT_OPERATION(ZEND_BW_NOT);
+
+ zend_error(E_ERROR, "Unsupported operand types");
+ return FAILURE;
}
- zend_error(E_ERROR, "Unsupported operand types");
- return FAILURE; /* unknown datatype */
}
/* }}} */
@@ -1124,15 +1153,22 @@ ZEND_API int bitwise_or_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /
result_str[i] |= Z_STRVAL_P(shorter)[i];
}
if (result==op1) {
- STR_FREE(Z_STRVAL_P(result));
+ str_efree(Z_STRVAL_P(result));
}
Z_STRVAL_P(result) = result_str;
Z_STRLEN_P(result) = result_len;
return SUCCESS;
}
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_OR);
+
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
ZVAL_LONG(result, op1_lval | Z_LVAL_P(op2));
return SUCCESS;
@@ -1164,17 +1200,22 @@ ZEND_API int bitwise_and_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
result_str[i] &= Z_STRVAL_P(longer)[i];
}
if (result==op1) {
- STR_FREE(Z_STRVAL_P(result));
+ str_efree(Z_STRVAL_P(result));
}
Z_STRVAL_P(result) = result_str;
Z_STRLEN_P(result) = result_len;
return SUCCESS;
}
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_AND);
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
ZVAL_LONG(result, op1_lval & Z_LVAL_P(op2));
return SUCCESS;
@@ -1206,16 +1247,22 @@ ZEND_API int bitwise_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
result_str[i] ^= Z_STRVAL_P(longer)[i];
}
if (result==op1) {
- STR_FREE(Z_STRVAL_P(result));
+ str_efree(Z_STRVAL_P(result));
}
Z_STRVAL_P(result) = result_str;
Z_STRLEN_P(result) = result_len;
return SUCCESS;
}
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_XOR);
+
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
ZVAL_LONG(result, op1_lval ^ Z_LVAL_P(op2));
return SUCCESS;
@@ -1227,9 +1274,16 @@ ZEND_API int shift_left_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /
zval op1_copy, op2_copy;
long op1_lval;
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SL);
+
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
+
ZVAL_LONG(result, op1_lval << Z_LVAL_P(op2));
return SUCCESS;
}
@@ -1240,9 +1294,16 @@ ZEND_API int shift_right_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
zval op1_copy, op2_copy;
long op1_lval;
- zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
- zendi_convert_to_long(op2, op2_copy, result);
+ if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SR);
+
+ zendi_convert_to_long(op1, op1_copy, result);
+ op1_lval = Z_LVAL_P(op1);
+ zendi_convert_to_long(op2, op2_copy, result);
+ } else {
+ op1_lval = Z_LVAL_P(op1);
+ }
+
ZVAL_LONG(result, op1_lval >> Z_LVAL_P(op2));
return SUCCESS;
}
@@ -1252,14 +1313,8 @@ ZEND_API int shift_right_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
ZEND_API int add_char_to_string(zval *result, const zval *op1, const zval *op2) /* {{{ */
{
int length = Z_STRLEN_P(op1) + 1;
- char *buf;
+ char *buf = str_erealloc(Z_STRVAL_P(op1), length + 1);
- if (IS_INTERNED(Z_STRVAL_P(op1))) {
- buf = (char *) emalloc(length + 1);
- memcpy(buf, Z_STRVAL_P(op1), Z_STRLEN_P(op1));
- } else {
- buf = (char *) erealloc(Z_STRVAL_P(op1), length + 1);
- }
buf[length - 1] = (char) Z_LVAL_P(op2);
buf[length] = 0;
ZVAL_STRINGL(result, buf, length, 0);
@@ -1271,14 +1326,8 @@ ZEND_API int add_char_to_string(zval *result, const zval *op1, const zval *op2)
ZEND_API int add_string_to_string(zval *result, const zval *op1, const zval *op2) /* {{{ */
{
int length = Z_STRLEN_P(op1) + Z_STRLEN_P(op2);
- char *buf;
+ char *buf = str_erealloc(Z_STRVAL_P(op1), length + 1);
- if (IS_INTERNED(Z_STRVAL_P(op1))) {
- buf = (char *) emalloc(length+1);
- memcpy(buf, Z_STRVAL_P(op1), Z_STRLEN_P(op1));
- } else {
- buf = (char *) erealloc(Z_STRVAL_P(op1), length+1);
- }
memcpy(buf + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2));
buf[length] = 0;
ZVAL_STRINGL(result, buf, length, 0);
@@ -1291,11 +1340,15 @@ ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{
zval op1_copy, op2_copy;
int use_copy1 = 0, use_copy2 = 0;
- if (Z_TYPE_P(op1) != IS_STRING) {
- zend_make_printable_zval(op1, &op1_copy, &use_copy1);
- }
- if (Z_TYPE_P(op2) != IS_STRING) {
- zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ if (Z_TYPE_P(op1) != IS_STRING || Z_TYPE_P(op2) != IS_STRING) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_CONCAT);
+
+ if (Z_TYPE_P(op1) != IS_STRING) {
+ zend_make_printable_zval(op1, &op1_copy, &use_copy1);
+ }
+ if (Z_TYPE_P(op2) != IS_STRING) {
+ zend_make_printable_zval(op2, &op2_copy, &use_copy2);
+ }
}
if (use_copy1) {
@@ -1526,20 +1579,24 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {
ZVAL_LONG(result, -1);
return SUCCESS;
- case TYPE_PAIR(IS_OBJECT, IS_OBJECT):
- /* If both are objects sharing the same comparision handler then use is */
- if (Z_OBJ_HANDLER_P(op1,compare_objects) == Z_OBJ_HANDLER_P(op2,compare_objects)) {
+ default:
+ if (Z_TYPE_P(op1) == IS_OBJECT && Z_OBJ_HANDLER_P(op1, compare)) {
+ return Z_OBJ_HANDLER_P(op1, compare)(result, op1, op2 TSRMLS_CC);
+ } else if (Z_TYPE_P(op2) == IS_OBJECT && Z_OBJ_HANDLER_P(op2, compare)) {
+ return Z_OBJ_HANDLER_P(op2, compare)(result, op1, op2 TSRMLS_CC);
+ }
+
+ if (Z_TYPE_P(op1) == IS_OBJECT && Z_TYPE_P(op2) == IS_OBJECT) {
if (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)) {
/* object handles are identical, apparently this is the same object */
ZVAL_LONG(result, 0);
return SUCCESS;
}
- ZVAL_LONG(result, Z_OBJ_HT_P(op1)->compare_objects(op1, op2 TSRMLS_CC));
- return SUCCESS;
+ if (Z_OBJ_HANDLER_P(op1, compare_objects) == Z_OBJ_HANDLER_P(op2, compare_objects)) {
+ ZVAL_LONG(result, Z_OBJ_HANDLER_P(op1, compare_objects)(op1, op2 TSRMLS_CC));
+ return SUCCESS;
+ }
}
- /* break missing intentionally */
-
- default:
if (Z_TYPE_P(op1) == IS_OBJECT) {
if (Z_OBJ_HT_P(op1)->get) {
op_free = Z_OBJ_HT_P(op1)->get(op1 TSRMLS_CC);
@@ -1773,16 +1830,14 @@ static void increment_string(zval *str) /* {{{ */
int ch;
if (Z_STRLEN_P(str) == 0) {
- STR_FREE(Z_STRVAL_P(str));
+ str_efree(Z_STRVAL_P(str));
Z_STRVAL_P(str) = estrndup("1", sizeof("1")-1);
Z_STRLEN_P(str) = 1;
return;
}
if (IS_INTERNED(s)) {
- s = (char*) emalloc(Z_STRLEN_P(str) + 1);
- memcpy(s, Z_STRVAL_P(str), Z_STRLEN_P(str) + 1);
- Z_STRVAL_P(str) = s;
+ Z_STRVAL_P(str) = s = estrndup(s, Z_STRLEN_P(str));
}
while (pos >= 0) {
@@ -1840,7 +1895,7 @@ static void increment_string(zval *str) /* {{{ */
t[0] = 'a';
break;
}
- STR_FREE(Z_STRVAL_P(str));
+ str_efree(Z_STRVAL_P(str));
Z_STRVAL_P(str) = t;
}
}
@@ -1890,6 +1945,20 @@ ZEND_API int increment_function(zval *op1) /* {{{ */
}
}
break;
+ case IS_OBJECT:
+ if (Z_OBJ_HANDLER_P(op1, do_operation)) {
+ zval *op2;
+ int res;
+ TSRMLS_FETCH();
+
+ MAKE_STD_ZVAL(op2);
+ ZVAL_LONG(op2, 1);
+ res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_ADD, op1, op1, op2 TSRMLS_CC);
+ zval_ptr_dtor(&op2);
+
+ return res;
+ }
+ return FAILURE;
default:
return FAILURE;
}
@@ -1916,13 +1985,13 @@ ZEND_API int decrement_function(zval *op1) /* {{{ */
break;
case IS_STRING: /* Like perl we only support string increment */
if (Z_STRLEN_P(op1) == 0) { /* consider as 0 */
- STR_FREE(Z_STRVAL_P(op1));
+ str_efree(Z_STRVAL_P(op1));
ZVAL_LONG(op1, -1);
break;
}
switch (is_numeric_string(Z_STRVAL_P(op1), Z_STRLEN_P(op1), &lval, &dval, 0)) {
case IS_LONG:
- STR_FREE(Z_STRVAL_P(op1));
+ str_efree(Z_STRVAL_P(op1));
if (lval == LONG_MIN) {
double d = (double)lval;
ZVAL_DOUBLE(op1, d-1);
@@ -1931,11 +2000,25 @@ ZEND_API int decrement_function(zval *op1) /* {{{ */
}
break;
case IS_DOUBLE:
- STR_FREE(Z_STRVAL_P(op1));
+ str_efree(Z_STRVAL_P(op1));
ZVAL_DOUBLE(op1, dval - 1);
break;
}
break;
+ case IS_OBJECT:
+ if (Z_OBJ_HANDLER_P(op1, do_operation)) {
+ zval *op2;
+ int res;
+ TSRMLS_FETCH();
+
+ MAKE_STD_ZVAL(op2);
+ ZVAL_LONG(op2, 1);
+ res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_SUB, op1, op1, op2 TSRMLS_CC);
+ zval_ptr_dtor(&op2);
+
+ return res;
+ }
+ return FAILURE;
default:
return FAILURE;
}
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index 815cf582b..cfc84063e 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -269,11 +269,11 @@ static inline zend_uchar is_numeric_string(const char *str, int length, long *lv
return is_numeric_string_ex(str, length, lval, dval, allow_errors, NULL);
}
-static inline char *
-zend_memnstr(char *haystack, char *needle, int needle_len, char *end)
+static inline const char *
+zend_memnstr(const char *haystack, const char *needle, int needle_len, char *end)
{
- char *p = haystack;
- char ne = needle[needle_len-1];
+ const char *p = haystack;
+ const char ne = needle[needle_len-1];
if (needle_len == 1) {
return (char *)memchr(p, *needle, (end-p));
@@ -443,6 +443,7 @@ END_EXTERN_C()
#define Z_STRVAL(zval) (zval).value.str.val
#define Z_STRLEN(zval) (zval).value.str.len
#define Z_ARRVAL(zval) (zval).value.ht
+#define Z_AST(zval) (zval).value.ast
#define Z_OBJVAL(zval) (zval).value.obj
#define Z_OBJ_HANDLE(zval) Z_OBJVAL(zval).handle
#define Z_OBJ_HT(zval) Z_OBJVAL(zval).handlers
@@ -458,6 +459,7 @@ END_EXTERN_C()
#define Z_STRVAL_P(zval_p) Z_STRVAL(*zval_p)
#define Z_STRLEN_P(zval_p) Z_STRLEN(*zval_p)
#define Z_ARRVAL_P(zval_p) Z_ARRVAL(*zval_p)
+#define Z_AST_P(zval_p) Z_AST(*zval_p)
#define Z_OBJPROP_P(zval_p) Z_OBJPROP(*zval_p)
#define Z_OBJCE_P(zval_p) Z_OBJCE(*zval_p)
#define Z_RESVAL_P(zval_p) Z_RESVAL(*zval_p)
@@ -473,6 +475,7 @@ END_EXTERN_C()
#define Z_STRVAL_PP(zval_pp) Z_STRVAL(**zval_pp)
#define Z_STRLEN_PP(zval_pp) Z_STRLEN(**zval_pp)
#define Z_ARRVAL_PP(zval_pp) Z_ARRVAL(**zval_pp)
+#define Z_AST_PP(zval_p) Z_AST(**zval_p)
#define Z_OBJPROP_PP(zval_pp) Z_OBJPROP(**zval_pp)
#define Z_OBJCE_PP(zval_pp) Z_OBJCE(**zval_pp)
#define Z_RESVAL_PP(zval_pp) Z_RESVAL(**zval_pp)
@@ -952,6 +955,24 @@ static zend_always_inline int fast_is_smaller_or_equal_function(zval *result, zv
return Z_LVAL_P(result) <= 0;
}
+#define ZEND_TRY_BINARY_OBJECT_OPERATION(opcode) \
+ if (Z_TYPE_P(op1) == IS_OBJECT && Z_OBJ_HANDLER_P(op1, do_operation)) { \
+ if (SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, op2 TSRMLS_CC)) { \
+ return SUCCESS; \
+ } \
+ } else if (Z_TYPE_P(op2) == IS_OBJECT && Z_OBJ_HANDLER_P(op2, do_operation)) { \
+ if (SUCCESS == Z_OBJ_HANDLER_P(op2, do_operation)(opcode, result, op1, op2 TSRMLS_CC)) { \
+ return SUCCESS; \
+ } \
+ }
+
+#define ZEND_TRY_UNARY_OBJECT_OPERATION(opcode) \
+ if (Z_TYPE_P(op1) == IS_OBJECT && Z_OBJ_HANDLER_P(op1, do_operation) \
+ && SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, NULL TSRMLS_CC) \
+ ) { \
+ return SUCCESS; \
+ }
+
#endif
/*
diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c
index 9dbdb3ddd..bb85a2cc2 100644
--- a/Zend/zend_ptr_stack.c
+++ b/Zend/zend_ptr_stack.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ptr_stack.h b/Zend/zend_ptr_stack.h
index 109924079..ecd7b7042 100644
--- a/Zend/zend_ptr_stack.h
+++ b/Zend/zend_ptr_stack.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_qsort.c b/Zend/zend_qsort.c
index 128c48dfc..ea577e1c0 100644
--- a/Zend/zend_qsort.c
+++ b/Zend/zend_qsort.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_qsort.h b/Zend/zend_qsort.h
index 0ce32a77c..c61a85d18 100644
--- a/Zend/zend_qsort.h
+++ b/Zend/zend_qsort.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_sprintf.c b/Zend/zend_sprintf.c
index 79ee5a9d6..64c9b727f 100644
--- a/Zend/zend_sprintf.c
+++ b/Zend/zend_sprintf.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_stack.c b/Zend/zend_stack.c
index 3e7401f5f..cf99499e7 100644
--- a/Zend/zend_stack.c
+++ b/Zend/zend_stack.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_stack.h b/Zend/zend_stack.h
index f18dfeca7..d48487946 100644
--- a/Zend/zend_stack.h
+++ b/Zend/zend_stack.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_static_allocator.c b/Zend/zend_static_allocator.c
index 1150deb57..71338d211 100644
--- a/Zend/zend_static_allocator.c
+++ b/Zend/zend_static_allocator.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_static_allocator.h b/Zend/zend_static_allocator.h
index 555625653..751606570 100644
--- a/Zend/zend_static_allocator.h
+++ b/Zend/zend_static_allocator.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_stream.c b/Zend/zend_stream.c
index 835fdbbd7..6d306b337 100644
--- a/Zend/zend_stream.c
+++ b/Zend/zend_stream.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_stream.h b/Zend/zend_stream.h
index a65d25895..5306b496f 100644
--- a/Zend/zend_stream.h
+++ b/Zend/zend_stream.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_string.c b/Zend/zend_string.c
index ff7ee3fd8..f1162f0b4 100644
--- a/Zend/zend_string.c
+++ b/Zend/zend_string.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -61,6 +61,8 @@ void zend_interned_strings_init(TSRMLS_D)
mprotect(CG(interned_strings_start), CG(interned_strings_end) - CG(interned_strings_start), PROT_READ);
#endif
+ /* interned empty string */
+ CG(interned_empty_string) = zend_new_interned_string_int("", sizeof(""), 0 TSRMLS_CC);
#endif
zend_new_interned_string = zend_new_interned_string_int;
diff --git a/Zend/zend_string.h b/Zend/zend_string.h
index ebf8c816c..978426e7c 100644
--- a/Zend/zend_string.h
+++ b/Zend/zend_string.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -56,12 +56,39 @@ END_EXTERN_C()
} \
} while (0)
+#define str_efree_rel(s) do { \
+ if (!IS_INTERNED(s)) { \
+ efree_rel((char *)s); \
+ } \
+ } while (0)
+
#define str_free(s) do { \
if (!IS_INTERNED(s)) { \
free((char*)s); \
} \
} while (0)
+#define str_erealloc(str, new_len) \
+ (IS_INTERNED(str) \
+ ? _str_erealloc(str, new_len, INTERNED_LEN(str)) \
+ : erealloc(str, new_len))
+
+static inline char *_str_erealloc(char *str, size_t new_len, size_t old_len) {
+ char *buf = (char *) emalloc(new_len);
+ memcpy(buf, str, old_len);
+ return buf;
+}
+
+#define str_estrndup(str, len) \
+ (IS_INTERNED(str) ? (str) : estrndup((str), (len)))
+
+#define str_strndup(str, len) \
+ (IS_INTERNED(str) ? (str) : zend_strndup((str), (len)));
+
+#define str_hash(str, len) \
+ (IS_INTERNED(str) ? INTERNED_HASH(str) : zend_hash_func((str), (len)+1))
+
+
#endif /* ZEND_STRING_H */
/*
diff --git a/Zend/zend_strtod.h b/Zend/zend_strtod.h
index aac17cea1..ba312d4f1 100644
--- a/Zend/zend_strtod.h
+++ b/Zend/zend_strtod.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_ts_hash.c b/Zend/zend_ts_hash.c
index f517fe856..100bcf188 100644
--- a/Zend/zend_ts_hash.c
+++ b/Zend/zend_ts_hash.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -59,24 +59,24 @@ static void end_write(TsHashTable *ht)
}
/* delegates */
-ZEND_API int _zend_ts_hash_init(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
+ZEND_API int _zend_ts_hash_init(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
{
#ifdef ZTS
ht->mx_reader = tsrm_mutex_alloc();
ht->mx_writer = tsrm_mutex_alloc();
ht->reader = 0;
#endif
- return _zend_hash_init(TS_HASH(ht), nSize, pHashFunction, pDestructor, persistent ZEND_FILE_LINE_RELAY_CC);
+ return _zend_hash_init(TS_HASH(ht), nSize, pDestructor, persistent ZEND_FILE_LINE_RELAY_CC);
}
-ZEND_API int _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC)
+ZEND_API int _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC)
{
#ifdef ZTS
ht->mx_reader = tsrm_mutex_alloc();
ht->mx_writer = tsrm_mutex_alloc();
ht->reader = 0;
#endif
- return _zend_hash_init_ex(TS_HASH(ht), nSize, pHashFunction, pDestructor, persistent, bApplyProtection ZEND_FILE_LINE_RELAY_CC);
+ return _zend_hash_init_ex(TS_HASH(ht), nSize, pDestructor, persistent, bApplyProtection ZEND_FILE_LINE_RELAY_CC);
}
ZEND_API void zend_ts_hash_destroy(TsHashTable *ht)
diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h
index 9a849e15a..e46acd52b 100644
--- a/Zend/zend_ts_hash.h
+++ b/Zend/zend_ts_hash.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -37,15 +37,15 @@ BEGIN_EXTERN_C()
#define TS_HASH(table) (&(table->hash))
/* startup/shutdown */
-ZEND_API int _zend_ts_hash_init(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
-ZEND_API int _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
+ZEND_API int _zend_ts_hash_init(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
+ZEND_API int _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
ZEND_API void zend_ts_hash_destroy(TsHashTable *ht);
ZEND_API void zend_ts_hash_clean(TsHashTable *ht);
#define zend_ts_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \
- _zend_ts_hash_init(ht, nSize, pHashFunction, pDestructor, persistent ZEND_FILE_LINE_CC)
+ _zend_ts_hash_init(ht, nSize, pDestructor, persistent ZEND_FILE_LINE_CC)
#define zend_ts_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) \
- _zend_ts_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection ZEND_FILE_LINE_CC)
+ _zend_ts_hash_init_ex(ht, nSize, pDestructor, persistent, bApplyProtection ZEND_FILE_LINE_CC)
/* additions/updates/changes */
diff --git a/Zend/zend_types.h b/Zend/zend_types.h
index 9cdf31fb3..e5d5bbb50 100644
--- a/Zend/zend_types.h
+++ b/Zend/zend_types.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_variables.c b/Zend/zend_variables.c
index c0e1849ee..a18591fdf 100644
--- a/Zend/zend_variables.c
+++ b/Zend/zend_variables.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -22,6 +22,7 @@
#include <stdio.h>
#include "zend.h"
#include "zend_API.h"
+#include "zend_ast.h"
#include "zend_globals.h"
#include "zend_constants.h"
#include "zend_list.h"
@@ -33,7 +34,7 @@ ZEND_API void _zval_dtor_func(zval *zvalue ZEND_FILE_LINE_DC)
case IS_STRING:
case IS_CONSTANT:
CHECK_ZVAL_STRING_REL(zvalue);
- STR_FREE_REL(zvalue->value.str.val);
+ str_efree_rel(zvalue->value.str.val);
break;
case IS_ARRAY:
case IS_CONSTANT_ARRAY: {
@@ -47,6 +48,9 @@ ZEND_API void _zval_dtor_func(zval *zvalue ZEND_FILE_LINE_DC)
}
}
break;
+ case IS_CONSTANT_AST:
+ zend_ast_destroy(Z_AST_P(zvalue));
+ break;
case IS_OBJECT:
{
TSRMLS_FETCH();
@@ -83,6 +87,7 @@ ZEND_API void _zval_internal_dtor(zval *zvalue ZEND_FILE_LINE_DC)
break;
case IS_ARRAY:
case IS_CONSTANT_ARRAY:
+ case IS_CONSTANT_AST:
case IS_OBJECT:
case IS_RESOURCE:
zend_error(E_CORE_ERROR, "Internal zval's can't be arrays, objects or resources");
@@ -139,6 +144,9 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
zvalue->value.ht = tmp_ht;
}
break;
+ case IS_CONSTANT_AST:
+ Z_AST_P(zvalue) = zend_ast_copy(Z_AST_P(zvalue));
+ break;
case IS_OBJECT:
{
TSRMLS_FETCH();
diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h
index e52dbd785..30f170bfb 100644
--- a/Zend/zend_variables.h
+++ b/Zend/zend_variables.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_virtual_cwd.c b/Zend/zend_virtual_cwd.c
new file mode 100644
index 000000000..ab3d0d7c4
--- /dev/null
+++ b/Zend/zend_virtual_cwd.c
@@ -0,0 +1,2005 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2014 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP 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.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Andi Gutmans <andi@zend.com> |
+ | Sascha Schumann <sascha@schumann.cx> |
+ | Pierre Joye <pierre@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <stdio.h>
+#include <limits.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <time.h>
+
+#include "zend.h"
+#include "zend_virtual_cwd.h"
+#include "tsrm_strtok_r.h"
+
+#ifdef TSRM_WIN32
+#include <io.h>
+#include "tsrm_win32.h"
+# ifndef IO_REPARSE_TAG_SYMLINK
+# define IO_REPARSE_TAG_SYMLINK 0xA000000C
+# endif
+
+# ifndef IO_REPARSE_TAG_DEDUP
+# define IO_REPARSE_TAG_DEDUP 0x80000013
+# endif
+
+# ifndef VOLUME_NAME_NT
+# define VOLUME_NAME_NT 0x2
+# endif
+
+# ifndef VOLUME_NAME_DOS
+# define VOLUME_NAME_DOS 0x0
+# endif
+#endif
+
+#ifndef S_IFLNK
+# define S_IFLNK 0120000
+#endif
+
+#ifdef NETWARE
+#include <fsio.h>
+#endif
+
+#ifndef HAVE_REALPATH
+#define realpath(x,y) strcpy(y,x)
+#endif
+
+#define VIRTUAL_CWD_DEBUG 0
+
+#include "TSRM.h"
+
+/* Only need mutex for popen() in Windows and NetWare because it doesn't chdir() on UNIX */
+#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
+MUTEX_T cwd_mutex;
+#endif
+
+#ifdef ZTS
+ts_rsrc_id cwd_globals_id;
+#else
+virtual_cwd_globals cwd_globals;
+#endif
+
+cwd_state main_cwd_state; /* True global */
+
+#ifndef TSRM_WIN32
+#include <unistd.h>
+#else
+#include <direct.h>
+#endif
+
+#ifndef S_ISDIR
+#define S_ISDIR(mode) ((mode) & _S_IFDIR)
+#endif
+
+#ifndef S_ISREG
+#define S_ISREG(mode) ((mode) & _S_IFREG)
+#endif
+
+#ifdef TSRM_WIN32
+#include <tchar.h>
+#define tsrm_strtok_r(a,b,c) _tcstok((a),(b))
+#define TOKENIZER_STRING "/\\"
+
+static int php_check_dots(const char *element, int n)
+{
+ while (n-- > 0) if (element[n] != '.') break;
+
+ return (n != -1);
+}
+
+#define IS_DIRECTORY_UP(element, len) \
+ (len >= 2 && !php_check_dots(element, len))
+
+#define IS_DIRECTORY_CURRENT(element, len) \
+ (len == 1 && element[0] == '.')
+
+#elif defined(NETWARE)
+/* NetWare has strtok() (in LibC) and allows both slashes in paths, like Windows --
+ but rest of the stuff is like Unix */
+/* strtok() call in LibC is abending when used in a different address space -- hence using
+ PHP's version itself for now */
+/*#define tsrm_strtok_r(a,b,c) strtok((a),(b))*/
+#define TOKENIZER_STRING "/\\"
+
+#else
+#define TOKENIZER_STRING "/"
+#endif
+
+/* default macros */
+
+#ifndef IS_DIRECTORY_UP
+#define IS_DIRECTORY_UP(element, len) \
+ (len == 2 && element[0] == '.' && element[1] == '.')
+#endif
+
+#ifndef IS_DIRECTORY_CURRENT
+#define IS_DIRECTORY_CURRENT(element, len) \
+ (len == 1 && element[0] == '.')
+#endif
+
+/* define this to check semantics */
+#define IS_DIR_OK(s) (1)
+
+#ifndef IS_DIR_OK
+#define IS_DIR_OK(state) (php_is_dir_ok(state) == 0)
+#endif
+
+
+#define CWD_STATE_COPY(d, s) \
+ (d)->cwd_length = (s)->cwd_length; \
+ (d)->cwd = (char *) emalloc((s)->cwd_length+1); \
+ memcpy((d)->cwd, (s)->cwd, (s)->cwd_length+1);
+
+#define CWD_STATE_FREE(s) \
+ efree((s)->cwd);
+
+#ifdef TSRM_WIN32
+# define CWD_STATE_FREE_ERR(state) do { \
+ DWORD last_error = GetLastError(); \
+ CWD_STATE_FREE(state); \
+ SetLastError(last_error); \
+ } while (0)
+#else
+# define CWD_STATE_FREE_ERR(state) CWD_STATE_FREE(state)
+#endif
+
+#ifdef TSRM_WIN32
+
+#ifdef CTL_CODE
+#undef CTL_CODE
+#endif
+#define CTL_CODE(DeviceType,Function,Method,Access) (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
+#define FILE_DEVICE_FILE_SYSTEM 0x00000009
+#define METHOD_BUFFERED 0
+#define FILE_ANY_ACCESS 0
+#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
+
+typedef struct {
+ unsigned long ReparseTag;
+ unsigned short ReparseDataLength;
+ unsigned short Reserved;
+ union {
+ struct {
+ unsigned short SubstituteNameOffset;
+ unsigned short SubstituteNameLength;
+ unsigned short PrintNameOffset;
+ unsigned short PrintNameLength;
+ unsigned long Flags;
+ wchar_t ReparseTarget[1];
+ } SymbolicLinkReparseBuffer;
+ struct {
+ unsigned short SubstituteNameOffset;
+ unsigned short SubstituteNameLength;
+ unsigned short PrintNameOffset;
+ unsigned short PrintNameLength;
+ wchar_t ReparseTarget[1];
+ } MountPointReparseBuffer;
+ struct {
+ unsigned char ReparseTarget[1];
+ } GenericReparseBuffer;
+ };
+} REPARSE_DATA_BUFFER;
+
+#define SECS_BETWEEN_EPOCHS (__int64)11644473600
+#define SECS_TO_100NS (__int64)10000000
+static inline time_t FileTimeToUnixTime(const FILETIME FileTime)
+{
+ __int64 UnixTime;
+ long *nsec = NULL;
+ SYSTEMTIME SystemTime;
+ FileTimeToSystemTime(&FileTime, &SystemTime);
+
+ UnixTime = ((__int64)FileTime.dwHighDateTime << 32) +
+ FileTime.dwLowDateTime;
+
+ UnixTime -= (SECS_BETWEEN_EPOCHS * SECS_TO_100NS);
+
+ if (nsec) {
+ *nsec = (UnixTime % SECS_TO_100NS) * (__int64)100;
+ }
+
+ UnixTime /= SECS_TO_100NS; /* now convert to seconds */
+
+ if ((time_t)UnixTime != UnixTime) {
+ UnixTime = 0;
+ }
+ return (time_t)UnixTime;
+}
+
+CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len){ /* {{{ */
+ HINSTANCE kernel32;
+ HANDLE hFile;
+ DWORD dwRet;
+
+ typedef BOOL (WINAPI *gfpnh_func)(HANDLE, LPTSTR, DWORD, DWORD);
+ gfpnh_func pGetFinalPathNameByHandle;
+
+ kernel32 = LoadLibrary("kernel32.dll");
+
+ if (kernel32) {
+ pGetFinalPathNameByHandle = (gfpnh_func)GetProcAddress(kernel32, "GetFinalPathNameByHandleA");
+ if (pGetFinalPathNameByHandle == NULL) {
+ return -1;
+ }
+ } else {
+ return -1;
+ }
+
+ hFile = CreateFile(link, // file to open
+ GENERIC_READ, // open for reading
+ FILE_SHARE_READ, // share for reading
+ NULL, // default security
+ OPEN_EXISTING, // existing file only
+ FILE_FLAG_BACKUP_SEMANTICS, // normal file
+ NULL); // no attr. template
+
+ if( hFile == INVALID_HANDLE_VALUE) {
+ return -1;
+ }
+
+ dwRet = pGetFinalPathNameByHandle(hFile, target, MAXPATHLEN, VOLUME_NAME_DOS);
+ if(dwRet >= MAXPATHLEN) {
+ return -1;
+ }
+
+ CloseHandle(hFile);
+
+ if(dwRet > 4) {
+ /* Skip first 4 characters if they are "\??\" */
+ if(target[0] == '\\' && target[1] == '\\' && target[2] == '?' && target[3] == '\\') {
+ char tmp[MAXPATHLEN];
+ unsigned int offset = 4;
+ dwRet -= 4;
+
+ /* \??\UNC\ */
+ if (dwRet > 7 && target[4] == 'U' && target[5] == 'N' && target[6] == 'C') {
+ offset += 2;
+ dwRet -= 2;
+ target[offset] = '\\';
+ }
+
+ memcpy(tmp, target + offset, dwRet);
+ memcpy(target, tmp, dwRet);
+ }
+ }
+
+ target[dwRet] = '\0';
+ return dwRet;
+}
+/* }}} */
+
+CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat) /* {{{ */
+{
+ WIN32_FILE_ATTRIBUTE_DATA data;
+ __int64 t;
+ const size_t path_len = strlen(path);
+ ALLOCA_FLAG(use_heap_large);
+
+ if (!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) {
+ return stat(path, buf);
+ }
+
+ if (path_len >= 1 && path[1] == ':') {
+ if (path[0] >= 'A' && path[0] <= 'Z') {
+ buf->st_dev = buf->st_rdev = path[0] - 'A';
+ } else {
+ buf->st_dev = buf->st_rdev = path[0] - 'a';
+ }
+ } else if (IS_UNC_PATH(path, path_len)) {
+ buf->st_dev = buf->st_rdev = 0;
+ } else {
+ char cur_path[MAXPATHLEN+1];
+ DWORD len = sizeof(cur_path);
+ char *tmp = cur_path;
+
+ while(1) {
+ DWORD r = GetCurrentDirectory(len, tmp);
+ if (r < len) {
+ if (tmp[1] == ':') {
+ if (path[0] >= 'A' && path[0] <= 'Z') {
+ buf->st_dev = buf->st_rdev = path[0] - 'A';
+ } else {
+ buf->st_dev = buf->st_rdev = path[0] - 'a';
+ }
+ } else {
+ buf->st_dev = buf->st_rdev = -1;
+ }
+ break;
+ } else if (!r) {
+ buf->st_dev = buf->st_rdev = -1;
+ break;
+ } else {
+ len = r+1;
+ tmp = (char*)malloc(len);
+ }
+ }
+ if (tmp != cur_path) {
+ free(tmp);
+ }
+ }
+
+ buf->st_uid = buf->st_gid = buf->st_ino = 0;
+
+ if (lstat && data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
+ /* File is a reparse point. Get the target */
+ HANDLE hLink = NULL;
+ REPARSE_DATA_BUFFER * pbuffer;
+ unsigned int retlength = 0;
+
+ hLink = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, NULL);
+ if(hLink == INVALID_HANDLE_VALUE) {
+ return -1;
+ }
+
+ pbuffer = (REPARSE_DATA_BUFFER *)do_alloca(MAXIMUM_REPARSE_DATA_BUFFER_SIZE, use_heap_large);
+ if(!DeviceIoControl(hLink, FSCTL_GET_REPARSE_POINT, NULL, 0, pbuffer, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, &retlength, NULL)) {
+ free_alloca(pbuffer, use_heap_large);
+ CloseHandle(hLink);
+ return -1;
+ }
+
+ CloseHandle(hLink);
+
+ if(pbuffer->ReparseTag == IO_REPARSE_TAG_SYMLINK) {
+ buf->st_mode = S_IFLNK;
+ buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6));
+ }
+
+#if 0 /* Not used yet */
+ else if(pbuffer->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) {
+ buf->st_mode |=;
+ }
+#endif
+ free_alloca(pbuffer, use_heap_large);
+ } else {
+ buf->st_mode = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG;
+ buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6));
+ }
+
+ if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) {
+ int len = strlen(path);
+
+ if (path[len-4] == '.') {
+ if (_memicmp(path+len-3, "exe", 3) == 0 ||
+ _memicmp(path+len-3, "com", 3) == 0 ||
+ _memicmp(path+len-3, "bat", 3) == 0 ||
+ _memicmp(path+len-3, "cmd", 3) == 0) {
+ buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6));
+ }
+ }
+ }
+
+ buf->st_nlink = 1;
+ t = data.nFileSizeHigh;
+ t = t << 32;
+ t |= data.nFileSizeLow;
+ buf->st_size = t;
+ buf->st_atime = FileTimeToUnixTime(data.ftLastAccessTime);
+ buf->st_ctime = FileTimeToUnixTime(data.ftCreationTime);
+ buf->st_mtime = FileTimeToUnixTime(data.ftLastWriteTime);
+ return 0;
+}
+/* }}} */
+#endif
+
+static int php_is_dir_ok(const cwd_state *state) /* {{{ */
+{
+ struct stat buf;
+
+ if (php_sys_stat(state->cwd, &buf) == 0 && S_ISDIR(buf.st_mode))
+ return (0);
+
+ return (1);
+}
+/* }}} */
+
+static int php_is_file_ok(const cwd_state *state) /* {{{ */
+{
+ struct stat buf;
+
+ if (php_sys_stat(state->cwd, &buf) == 0 && S_ISREG(buf.st_mode))
+ return (0);
+
+ return (1);
+}
+/* }}} */
+
+static void cwd_globals_ctor(virtual_cwd_globals *cwd_g TSRMLS_DC) /* {{{ */
+{
+ CWD_STATE_COPY(&cwd_g->cwd, &main_cwd_state);
+ cwd_g->realpath_cache_size = 0;
+ cwd_g->realpath_cache_size_limit = REALPATH_CACHE_SIZE;
+ cwd_g->realpath_cache_ttl = REALPATH_CACHE_TTL;
+ memset(cwd_g->realpath_cache, 0, sizeof(cwd_g->realpath_cache));
+}
+/* }}} */
+
+static void cwd_globals_dtor(virtual_cwd_globals *cwd_g TSRMLS_DC) /* {{{ */
+{
+ realpath_cache_clean(TSRMLS_C);
+}
+/* }}} */
+
+CWD_API void virtual_cwd_startup(void) /* {{{ */
+{
+ char cwd[MAXPATHLEN];
+ char *result;
+
+#ifdef NETWARE
+ result = getcwdpath(cwd, NULL, 1);
+ if(result)
+ {
+ char *c=cwd;
+ while(c = strchr(c, '\\'))
+ {
+ *c='/';
+ ++c;
+ }
+ }
+#else
+ result = getcwd(cwd, sizeof(cwd));
+#endif
+ if (!result) {
+ cwd[0] = '\0';
+ }
+
+ main_cwd_state.cwd_length = strlen(cwd);
+#ifdef TSRM_WIN32
+ if (main_cwd_state.cwd_length >= 2 && cwd[1] == ':') {
+ cwd[0] = toupper(cwd[0]);
+ }
+#endif
+ main_cwd_state.cwd = strdup(cwd);
+
+#ifdef ZTS
+ ts_allocate_id(&cwd_globals_id, sizeof(virtual_cwd_globals), (ts_allocate_ctor) cwd_globals_ctor, (ts_allocate_dtor) cwd_globals_dtor);
+#else
+ cwd_globals_ctor(&cwd_globals TSRMLS_CC);
+#endif
+
+#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
+ cwd_mutex = tsrm_mutex_alloc();
+#endif
+}
+/* }}} */
+
+CWD_API void virtual_cwd_shutdown(void) /* {{{ */
+{
+#ifndef ZTS
+ cwd_globals_dtor(&cwd_globals TSRMLS_CC);
+#endif
+#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
+ tsrm_mutex_free(cwd_mutex);
+#endif
+
+ free(main_cwd_state.cwd); /* Don't use CWD_STATE_FREE because the non global states will probably use emalloc()/efree() */
+}
+/* }}} */
+
+CWD_API int virtual_cwd_activate(TSRMLS_D) /* {{{ */
+{
+ if (CWDG(cwd).cwd == NULL) {
+ CWD_STATE_COPY(&CWDG(cwd), &main_cwd_state);
+ }
+ return 0;
+}
+/* }}} */
+
+CWD_API int virtual_cwd_deactivate(TSRMLS_D) /* {{{ */
+{
+ if (CWDG(cwd).cwd != NULL) {
+ CWD_STATE_FREE(&CWDG(cwd));
+ CWDG(cwd).cwd = NULL;
+ }
+ return 0;
+}
+/* }}} */
+
+CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC) /* {{{ */
+{
+ cwd_state *state;
+
+ state = &CWDG(cwd);
+
+ if (state->cwd_length == 0) {
+ char *retval;
+
+ *length = 1;
+ retval = (char *) emalloc(2);
+ if (retval == NULL) {
+ return NULL;
+ }
+ retval[0] = DEFAULT_SLASH;
+ retval[1] = '\0';
+ return retval;
+ }
+
+#ifdef TSRM_WIN32
+ /* If we have something like C: */
+ if (state->cwd_length == 2 && state->cwd[state->cwd_length-1] == ':') {
+ char *retval;
+
+ *length = state->cwd_length+1;
+ retval = (char *) emalloc(*length+1);
+ if (retval == NULL) {
+ return NULL;
+ }
+ memcpy(retval, state->cwd, *length);
+ retval[0] = toupper(retval[0]);
+ retval[*length-1] = DEFAULT_SLASH;
+ retval[*length] = '\0';
+ return retval;
+ }
+#endif
+ *length = state->cwd_length;
+ return estrdup(state->cwd);
+}
+/* }}} */
+
+/* Same semantics as UNIX getcwd() */
+CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC) /* {{{ */
+{
+ size_t length;
+ char *cwd;
+
+ cwd = virtual_getcwd_ex(&length TSRMLS_CC);
+
+ if (buf == NULL) {
+ return cwd;
+ }
+ if (length > size-1) {
+ efree(cwd);
+ errno = ERANGE; /* Is this OK? */
+ return NULL;
+ }
+ memcpy(buf, cwd, length+1);
+ efree(cwd);
+ return buf;
+}
+/* }}} */
+
+#ifdef PHP_WIN32
+static inline unsigned long realpath_cache_key(const char *path, int path_len TSRMLS_DC) /* {{{ */
+{
+ register unsigned long h;
+ char *bucket_key_start = tsrm_win32_get_path_sid_key(path TSRMLS_CC);
+ char *bucket_key = (char *)bucket_key_start;
+ const char *e = bucket_key + strlen(bucket_key);
+
+ if (!bucket_key) {
+ return 0;
+ }
+
+ for (h = 2166136261U; bucket_key < e;) {
+ h *= 16777619;
+ h ^= *bucket_key++;
+ }
+ HeapFree(GetProcessHeap(), 0, (LPVOID)bucket_key_start);
+ return h;
+}
+/* }}} */
+#else
+static inline unsigned long realpath_cache_key(const char *path, int path_len) /* {{{ */
+{
+ register unsigned long h;
+ const char *e = path + path_len;
+
+ for (h = 2166136261U; path < e;) {
+ h *= 16777619;
+ h ^= *path++;
+ }
+
+ return h;
+}
+/* }}} */
+#endif /* defined(PHP_WIN32) */
+
+CWD_API void realpath_cache_clean(TSRMLS_D) /* {{{ */
+{
+ int i;
+
+ for (i = 0; i < sizeof(CWDG(realpath_cache))/sizeof(CWDG(realpath_cache)[0]); i++) {
+ realpath_cache_bucket *p = CWDG(realpath_cache)[i];
+ while (p != NULL) {
+ realpath_cache_bucket *r = p;
+ p = p->next;
+ free(r);
+ }
+ CWDG(realpath_cache)[i] = NULL;
+ }
+ CWDG(realpath_cache_size) = 0;
+}
+/* }}} */
+
+CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC) /* {{{ */
+{
+#ifdef PHP_WIN32
+ unsigned long key = realpath_cache_key(path, path_len TSRMLS_CC);
+#else
+ unsigned long key = realpath_cache_key(path, path_len);
+#endif
+ unsigned long n = key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
+ realpath_cache_bucket **bucket = &CWDG(realpath_cache)[n];
+
+ while (*bucket != NULL) {
+ if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
+ memcmp(path, (*bucket)->path, path_len) == 0) {
+ realpath_cache_bucket *r = *bucket;
+ *bucket = (*bucket)->next;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath) {
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
+ } else {
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
+ }
+
+ free(r);
+ return;
+ } else {
+ bucket = &(*bucket)->next;
+ }
+ }
+}
+/* }}} */
+
+static inline void realpath_cache_add(const char *path, int path_len, const char *realpath, int realpath_len, int is_dir, time_t t TSRMLS_DC) /* {{{ */
+{
+ long size = sizeof(realpath_cache_bucket) + path_len + 1;
+ int same = 1;
+
+ if (realpath_len != path_len ||
+ memcmp(path, realpath, path_len) != 0) {
+ size += realpath_len + 1;
+ same = 0;
+ }
+
+ if (CWDG(realpath_cache_size) + size <= CWDG(realpath_cache_size_limit)) {
+ realpath_cache_bucket *bucket = malloc(size);
+ unsigned long n;
+
+ if (bucket == NULL) {
+ return;
+ }
+
+#ifdef PHP_WIN32
+ bucket->key = realpath_cache_key(path, path_len TSRMLS_CC);
+#else
+ bucket->key = realpath_cache_key(path, path_len);
+#endif
+ bucket->path = (char*)bucket + sizeof(realpath_cache_bucket);
+ memcpy(bucket->path, path, path_len+1);
+ bucket->path_len = path_len;
+ if (same) {
+ bucket->realpath = bucket->path;
+ } else {
+ bucket->realpath = bucket->path + (path_len + 1);
+ memcpy(bucket->realpath, realpath, realpath_len+1);
+ }
+ bucket->realpath_len = realpath_len;
+ bucket->is_dir = is_dir;
+#ifdef PHP_WIN32
+ bucket->is_rvalid = 0;
+ bucket->is_readable = 0;
+ bucket->is_wvalid = 0;
+ bucket->is_writable = 0;
+#endif
+ bucket->expires = t + CWDG(realpath_cache_ttl);
+ n = bucket->key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
+ bucket->next = CWDG(realpath_cache)[n];
+ CWDG(realpath_cache)[n] = bucket;
+ CWDG(realpath_cache_size) += size;
+ }
+}
+/* }}} */
+
+static inline realpath_cache_bucket* realpath_cache_find(const char *path, int path_len, time_t t TSRMLS_DC) /* {{{ */
+{
+#ifdef PHP_WIN32
+ unsigned long key = realpath_cache_key(path, path_len TSRMLS_CC);
+#else
+ unsigned long key = realpath_cache_key(path, path_len);
+#endif
+
+ unsigned long n = key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
+ realpath_cache_bucket **bucket = &CWDG(realpath_cache)[n];
+
+ while (*bucket != NULL) {
+ if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
+ realpath_cache_bucket *r = *bucket;
+ *bucket = (*bucket)->next;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath) {
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
+ } else {
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
+ }
+ free(r);
+ } else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
+ memcmp(path, (*bucket)->path, path_len) == 0) {
+ return *bucket;
+ } else {
+ bucket = &(*bucket)->next;
+ }
+ }
+ return NULL;
+}
+/* }}} */
+
+CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, int path_len, time_t t TSRMLS_DC) /* {{{ */
+{
+ return realpath_cache_find(path, path_len, t TSRMLS_CC);
+}
+/* }}} */
+
+CWD_API int realpath_cache_size(TSRMLS_D)
+{
+ return CWDG(realpath_cache_size);
+}
+
+CWD_API int realpath_cache_max_buckets(TSRMLS_D)
+{
+ return (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
+}
+
+CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D)
+{
+ return CWDG(realpath_cache);
+}
+
+
+#undef LINK_MAX
+#define LINK_MAX 32
+
+static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, int use_realpath, int is_dir, int *link_is_dir TSRMLS_DC) /* {{{ */
+{
+ int i, j, save;
+ int directory = 0;
+#ifdef TSRM_WIN32
+ WIN32_FIND_DATA data;
+ HANDLE hFind;
+ ALLOCA_FLAG(use_heap_large)
+#else
+ struct stat st;
+#endif
+ realpath_cache_bucket *bucket;
+ char *tmp;
+ ALLOCA_FLAG(use_heap)
+
+ while (1) {
+ if (len <= start) {
+ if (link_is_dir) {
+ *link_is_dir = 1;
+ }
+ return start;
+ }
+
+ i = len;
+ while (i > start && !IS_SLASH(path[i-1])) {
+ i--;
+ }
+
+ if (i == len ||
+ (i == len - 1 && path[i] == '.')) {
+ /* remove double slashes and '.' */
+ len = i - 1;
+ is_dir = 1;
+ continue;
+ } else if (i == len - 2 && path[i] == '.' && path[i+1] == '.') {
+ /* remove '..' and previous directory */
+ is_dir = 1;
+ if (link_is_dir) {
+ *link_is_dir = 1;
+ }
+ if (i - 1 <= start) {
+ return start ? start : len;
+ }
+ j = tsrm_realpath_r(path, start, i-1, ll, t, use_realpath, 1, NULL TSRMLS_CC);
+ if (j > start) {
+ j--;
+ while (j > start && !IS_SLASH(path[j])) {
+ j--;
+ }
+ if (!start) {
+ /* leading '..' must not be removed in case of relative path */
+ if (j == 0 && path[0] == '.' && path[1] == '.' &&
+ IS_SLASH(path[2])) {
+ path[3] = '.';
+ path[4] = '.';
+ path[5] = DEFAULT_SLASH;
+ j = 5;
+ } else if (j > 0 &&
+ path[j+1] == '.' && path[j+2] == '.' &&
+ IS_SLASH(path[j+3])) {
+ j += 4;
+ path[j++] = '.';
+ path[j++] = '.';
+ path[j] = DEFAULT_SLASH;
+ }
+ }
+ } else if (!start && !j) {
+ /* leading '..' must not be removed in case of relative path */
+ path[0] = '.';
+ path[1] = '.';
+ path[2] = DEFAULT_SLASH;
+ j = 2;
+ }
+ return j;
+ }
+
+ path[len] = 0;
+
+ save = (use_realpath != CWD_EXPAND);
+
+ if (start && save && CWDG(realpath_cache_size_limit)) {
+ /* cache lookup for absolute path */
+ if (!*t) {
+ *t = time(0);
+ }
+ if ((bucket = realpath_cache_find(path, len, *t TSRMLS_CC)) != NULL) {
+ if (is_dir && !bucket->is_dir) {
+ /* not a directory */
+ return -1;
+ } else {
+ if (link_is_dir) {
+ *link_is_dir = bucket->is_dir;
+ }
+ memcpy(path, bucket->realpath, bucket->realpath_len + 1);
+ return bucket->realpath_len;
+ }
+ }
+ }
+
+#ifdef TSRM_WIN32
+ if (save && (hFind = FindFirstFile(path, &data)) == INVALID_HANDLE_VALUE) {
+ if (use_realpath == CWD_REALPATH) {
+ /* file not found */
+ return -1;
+ }
+ /* continue resolution anyway but don't save result in the cache */
+ save = 0;
+ }
+
+ if (save) {
+ FindClose(hFind);
+ }
+
+ tmp = do_alloca(len+1, use_heap);
+ memcpy(tmp, path, len+1);
+
+ if(save &&
+ !(IS_UNC_PATH(path, len) && len >= 3 && path[2] != '?') &&
+ (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {
+ /* File is a reparse point. Get the target */
+ HANDLE hLink = NULL;
+ REPARSE_DATA_BUFFER * pbuffer;
+ unsigned int retlength = 0;
+ int bufindex = 0, isabsolute = 0;
+ wchar_t * reparsetarget;
+ BOOL isVolume = FALSE;
+ char printname[MAX_PATH];
+ char substitutename[MAX_PATH];
+ int printname_len, substitutename_len;
+ int substitutename_off = 0;
+
+ if(++(*ll) > LINK_MAX) {
+ return -1;
+ }
+
+ hLink = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, NULL);
+ if(hLink == INVALID_HANDLE_VALUE) {
+ return -1;
+ }
+
+ pbuffer = (REPARSE_DATA_BUFFER *)do_alloca(MAXIMUM_REPARSE_DATA_BUFFER_SIZE, use_heap_large);
+ if (pbuffer == NULL) {
+ return -1;
+ }
+ if(!DeviceIoControl(hLink, FSCTL_GET_REPARSE_POINT, NULL, 0, pbuffer, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, &retlength, NULL)) {
+ free_alloca(pbuffer, use_heap_large);
+ CloseHandle(hLink);
+ return -1;
+ }
+
+ CloseHandle(hLink);
+
+ if(pbuffer->ReparseTag == IO_REPARSE_TAG_SYMLINK) {
+ reparsetarget = pbuffer->SymbolicLinkReparseBuffer.ReparseTarget;
+ printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
+ isabsolute = (pbuffer->SymbolicLinkReparseBuffer.Flags == 0) ? 1 : 0;
+ if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
+ reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),
+ printname_len + 1,
+ printname, MAX_PATH, NULL, NULL
+ )) {
+ free_alloca(pbuffer, use_heap_large);
+ return -1;
+ };
+ printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
+ printname[printname_len] = 0;
+
+ substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);
+ if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
+ reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),
+ substitutename_len + 1,
+ substitutename, MAX_PATH, NULL, NULL
+ )) {
+ free_alloca(pbuffer, use_heap_large);
+ return -1;
+ };
+ substitutename[substitutename_len] = 0;
+ }
+ else if(pbuffer->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) {
+ isabsolute = 1;
+ reparsetarget = pbuffer->MountPointReparseBuffer.ReparseTarget;
+ printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
+ if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
+ reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),
+ printname_len + 1,
+ printname, MAX_PATH, NULL, NULL
+ )) {
+ free_alloca(pbuffer, use_heap_large);
+ return -1;
+ };
+ printname[pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR)] = 0;
+
+ substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);
+ if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
+ reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),
+ substitutename_len + 1,
+ substitutename, MAX_PATH, NULL, NULL
+ )) {
+ free_alloca(pbuffer, use_heap_large);
+ return -1;
+ };
+ substitutename[substitutename_len] = 0;
+ }
+ else if (pbuffer->ReparseTag == IO_REPARSE_TAG_DEDUP) {
+ isabsolute = 1;
+ memcpy(substitutename, path, len + 1);
+ substitutename_len = len;
+ } else {
+ free_alloca(pbuffer, use_heap_large);
+ return -1;
+ }
+
+ if(isabsolute && substitutename_len > 4) {
+ /* Do not resolve volumes (for now). A mounted point can
+ target a volume without a drive, it is not certain that
+ all IO functions we use in php and its deps support
+ path with volume GUID instead of the DOS way, like:
+ d:\test\mnt\foo
+ \\?\Volume{62d1c3f8-83b9-11de-b108-806e6f6e6963}\foo
+ */
+ if (strncmp(substitutename, "\\??\\Volume{",11) == 0
+ || strncmp(substitutename, "\\\\?\\Volume{",11) == 0
+ || strncmp(substitutename, "\\??\\UNC\\", 8) == 0
+ ) {
+ isVolume = TRUE;
+ substitutename_off = 0;
+ } else
+ /* do not use the \??\ and \\?\ prefix*/
+ if (strncmp(substitutename, "\\??\\", 4) == 0
+ || strncmp(substitutename, "\\\\?\\", 4) == 0) {
+ substitutename_off = 4;
+ }
+ }
+
+ if (!isVolume) {
+ char * tmp2 = substitutename + substitutename_off;
+ for(bufindex = 0; bufindex < (substitutename_len - substitutename_off); bufindex++) {
+ *(path + bufindex) = *(tmp2 + bufindex);
+ }
+
+ *(path + bufindex) = 0;
+ j = bufindex;
+ } else {
+ j = len;
+ }
+
+
+#if VIRTUAL_CWD_DEBUG
+ fprintf(stderr, "reparse: print: %s ", printname);
+ fprintf(stderr, "sub: %s ", substitutename);
+ fprintf(stderr, "resolved: %s ", path);
+#endif
+ free_alloca(pbuffer, use_heap_large);
+
+ if(isabsolute == 1) {
+ if (!((j == 3) && (path[1] == ':') && (path[2] == '\\'))) {
+ /* use_realpath is 0 in the call below coz path is absolute*/
+ j = tsrm_realpath_r(path, 0, j, ll, t, 0, is_dir, &directory TSRMLS_CC);
+ if(j < 0) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ }
+ }
+ else {
+ if(i + j >= MAXPATHLEN - 1) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+
+ memmove(path+i, path, j+1);
+ memcpy(path, tmp, i-1);
+ path[i-1] = DEFAULT_SLASH;
+ j = tsrm_realpath_r(path, start, i + j, ll, t, use_realpath, is_dir, &directory TSRMLS_CC);
+ if(j < 0) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ }
+ directory = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
+
+ if(link_is_dir) {
+ *link_is_dir = directory;
+ }
+ }
+ else {
+ if (save) {
+ directory = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
+ if (is_dir && !directory) {
+ /* not a directory */
+ return -1;
+ }
+ }
+
+#elif defined(NETWARE)
+ save = 0;
+ tmp = do_alloca(len+1, use_heap);
+ memcpy(tmp, path, len+1);
+#else
+ if (save && php_sys_lstat(path, &st) < 0) {
+ if (use_realpath == CWD_REALPATH) {
+ /* file not found */
+ return -1;
+ }
+ /* continue resolution anyway but don't save result in the cache */
+ save = 0;
+ }
+
+ tmp = do_alloca(len+1, use_heap);
+ memcpy(tmp, path, len+1);
+
+ if (save && S_ISLNK(st.st_mode)) {
+ if (++(*ll) > LINK_MAX || (j = php_sys_readlink(tmp, path, MAXPATHLEN)) < 0) {
+ /* too many links or broken symlinks */
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ path[j] = 0;
+ if (IS_ABSOLUTE_PATH(path, j)) {
+ j = tsrm_realpath_r(path, 1, j, ll, t, use_realpath, is_dir, &directory TSRMLS_CC);
+ if (j < 0) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ } else {
+ if (i + j >= MAXPATHLEN-1) {
+ free_alloca(tmp, use_heap);
+ return -1; /* buffer overflow */
+ }
+ memmove(path+i, path, j+1);
+ memcpy(path, tmp, i-1);
+ path[i-1] = DEFAULT_SLASH;
+ j = tsrm_realpath_r(path, start, i + j, ll, t, use_realpath, is_dir, &directory TSRMLS_CC);
+ if (j < 0) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ }
+ if (link_is_dir) {
+ *link_is_dir = directory;
+ }
+ } else {
+ if (save) {
+ directory = S_ISDIR(st.st_mode);
+ if (link_is_dir) {
+ *link_is_dir = directory;
+ }
+ if (is_dir && !directory) {
+ /* not a directory */
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ }
+#endif
+ if (i - 1 <= start) {
+ j = start;
+ } else {
+ /* some leading directories may be unaccessable */
+ j = tsrm_realpath_r(path, start, i-1, ll, t, save ? CWD_FILEPATH : use_realpath, 1, NULL TSRMLS_CC);
+ if (j > start) {
+ path[j++] = DEFAULT_SLASH;
+ }
+ }
+#ifdef TSRM_WIN32
+ if (j < 0 || j + len - i >= MAXPATHLEN-1) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ if (save) {
+ i = strlen(data.cFileName);
+ memcpy(path+j, data.cFileName, i+1);
+ j += i;
+ } else {
+ /* use the original file or directory name as it wasn't found */
+ memcpy(path+j, tmp+i, len-i+1);
+ j += (len-i);
+ }
+ }
+#else
+ if (j < 0 || j + len - i >= MAXPATHLEN-1) {
+ free_alloca(tmp, use_heap);
+ return -1;
+ }
+ memcpy(path+j, tmp+i, len-i+1);
+ j += (len-i);
+ }
+#endif
+
+ if (save && start && CWDG(realpath_cache_size_limit)) {
+ /* save absolute path in the cache */
+ realpath_cache_add(tmp, len, path, j, directory, *t TSRMLS_CC);
+ }
+
+ free_alloca(tmp, use_heap);
+ return j;
+ }
+}
+/* }}} */
+
+/* Resolve path relatively to state and put the real path into state */
+/* returns 0 for ok, 1 for error */
+CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC) /* {{{ */
+{
+ int path_length = strlen(path);
+ char resolved_path[MAXPATHLEN];
+ int start = 1;
+ int ll = 0;
+ time_t t;
+ int ret;
+ int add_slash;
+ void *tmp;
+
+ if (path_length == 0 || path_length >= MAXPATHLEN-1) {
+#ifdef TSRM_WIN32
+# if _MSC_VER < 1300
+ errno = EINVAL;
+# else
+ _set_errno(EINVAL);
+# endif
+#else
+ errno = EINVAL;
+#endif
+ return 1;
+ }
+
+#if VIRTUAL_CWD_DEBUG
+ fprintf(stderr,"cwd = %s path = %s\n", state->cwd, path);
+#endif
+
+ /* cwd_length can be 0 when getcwd() fails.
+ * This can happen under solaris when a dir does not have read permissions
+ * but *does* have execute permissions */
+ if (!IS_ABSOLUTE_PATH(path, path_length)) {
+ if (state->cwd_length == 0) {
+ /* resolve relative path */
+ start = 0;
+ memcpy(resolved_path , path, path_length + 1);
+ } else {
+ int state_cwd_length = state->cwd_length;
+
+#ifdef TSRM_WIN32
+ if (IS_SLASH(path[0])) {
+ if (state->cwd[1] == ':') {
+ /* Copy only the drive name */
+ state_cwd_length = 2;
+ } else if (IS_UNC_PATH(state->cwd, state->cwd_length)) {
+ /* Copy only the share name */
+ state_cwd_length = 2;
+ while (IS_SLASH(state->cwd[state_cwd_length])) {
+ state_cwd_length++;
+ }
+ while (state->cwd[state_cwd_length] &&
+ !IS_SLASH(state->cwd[state_cwd_length])) {
+ state_cwd_length++;
+ }
+ while (IS_SLASH(state->cwd[state_cwd_length])) {
+ state_cwd_length++;
+ }
+ while (state->cwd[state_cwd_length] &&
+ !IS_SLASH(state->cwd[state_cwd_length])) {
+ state_cwd_length++;
+ }
+ }
+ }
+#endif
+ if (path_length + state_cwd_length + 1 >= MAXPATHLEN-1) {
+ return 1;
+ }
+ memcpy(resolved_path, state->cwd, state_cwd_length);
+ if (resolved_path[state_cwd_length-1] == DEFAULT_SLASH) {
+ memcpy(resolved_path + state_cwd_length, path, path_length + 1);
+ path_length += state_cwd_length;
+ } else {
+ resolved_path[state_cwd_length] = DEFAULT_SLASH;
+ memcpy(resolved_path + state_cwd_length + 1, path, path_length + 1);
+ path_length += state_cwd_length + 1;
+ }
+ }
+ } else {
+#ifdef TSRM_WIN32
+ if (path_length > 2 && path[1] == ':' && !IS_SLASH(path[2])) {
+ resolved_path[0] = path[0];
+ resolved_path[1] = ':';
+ resolved_path[2] = DEFAULT_SLASH;
+ memcpy(resolved_path + 3, path + 2, path_length - 1);
+ path_length++;
+ } else
+#endif
+ memcpy(resolved_path, path, path_length + 1);
+ }
+
+#ifdef TSRM_WIN32
+ if (memchr(resolved_path, '*', path_length) ||
+ memchr(resolved_path, '?', path_length)) {
+ return 1;
+ }
+#endif
+
+#ifdef TSRM_WIN32
+ if (IS_UNC_PATH(resolved_path, path_length)) {
+ /* skip UNC name */
+ resolved_path[0] = DEFAULT_SLASH;
+ resolved_path[1] = DEFAULT_SLASH;
+ start = 2;
+ while (!IS_SLASH(resolved_path[start])) {
+ if (resolved_path[start] == 0) {
+ goto verify;
+ }
+ resolved_path[start] = toupper(resolved_path[start]);
+ start++;
+ }
+ resolved_path[start++] = DEFAULT_SLASH;
+ while (!IS_SLASH(resolved_path[start])) {
+ if (resolved_path[start] == 0) {
+ goto verify;
+ }
+ resolved_path[start] = toupper(resolved_path[start]);
+ start++;
+ }
+ resolved_path[start++] = DEFAULT_SLASH;
+ } else if (IS_ABSOLUTE_PATH(resolved_path, path_length)) {
+ /* skip DRIVE name */
+ resolved_path[0] = toupper(resolved_path[0]);
+ resolved_path[2] = DEFAULT_SLASH;
+ start = 3;
+ }
+#elif defined(NETWARE)
+ if (IS_ABSOLUTE_PATH(resolved_path, path_length)) {
+ /* skip VOLUME name */
+ start = 0;
+ while (start != ':') {
+ if (resolved_path[start] == 0) return -1;
+ start++;
+ }
+ start++;
+ if (!IS_SLASH(resolved_path[start])) return -1;
+ resolved_path[start++] = DEFAULT_SLASH;
+ }
+#endif
+
+ add_slash = (use_realpath != CWD_REALPATH) && path_length > 0 && IS_SLASH(resolved_path[path_length-1]);
+ t = CWDG(realpath_cache_ttl) ? 0 : -1;
+ path_length = tsrm_realpath_r(resolved_path, start, path_length, &ll, &t, use_realpath, 0, NULL TSRMLS_CC);
+
+ if (path_length < 0) {
+ errno = ENOENT;
+ return 1;
+ }
+
+ if (!start && !path_length) {
+ resolved_path[path_length++] = '.';
+ }
+ if (add_slash && path_length && !IS_SLASH(resolved_path[path_length-1])) {
+ if (path_length >= MAXPATHLEN-1) {
+ return -1;
+ }
+ resolved_path[path_length++] = DEFAULT_SLASH;
+ }
+ resolved_path[path_length] = 0;
+
+#ifdef TSRM_WIN32
+verify:
+#endif
+ if (verify_path) {
+ cwd_state old_state;
+
+ CWD_STATE_COPY(&old_state, state);
+ state->cwd_length = path_length;
+
+ tmp = erealloc(state->cwd, state->cwd_length+1);
+ if (tmp == NULL) {
+#if VIRTUAL_CWD_DEBUG
+ fprintf (stderr, "Out of memory\n");
+#endif
+ return 1;
+ }
+ state->cwd = (char *) tmp;
+
+ memcpy(state->cwd, resolved_path, state->cwd_length+1);
+ if (verify_path(state)) {
+ CWD_STATE_FREE(state);
+ *state = old_state;
+ ret = 1;
+ } else {
+ CWD_STATE_FREE(&old_state);
+ ret = 0;
+ }
+ } else {
+ state->cwd_length = path_length;
+ tmp = erealloc(state->cwd, state->cwd_length+1);
+ if (tmp == NULL) {
+#if VIRTUAL_CWD_DEBUG
+ fprintf (stderr, "Out of memory\n");
+#endif
+ return 1;
+ }
+ state->cwd = (char *) tmp;
+
+ memcpy(state->cwd, resolved_path, state->cwd_length+1);
+ ret = 0;
+ }
+
+#if VIRTUAL_CWD_DEBUG
+ fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd);
+#endif
+ return (ret);
+}
+/* }}} */
+
+CWD_API int virtual_chdir(const char *path TSRMLS_DC) /* {{{ */
+{
+ return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, CWD_REALPATH TSRMLS_CC)?-1:0;
+}
+/* }}} */
+
+CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path TSRMLS_DC) TSRMLS_DC) /* {{{ */
+{
+ int length = strlen(path);
+ char *temp;
+ int retval;
+ ALLOCA_FLAG(use_heap)
+
+ if (length == 0) {
+ return 1; /* Can't cd to empty string */
+ }
+ while(--length >= 0 && !IS_SLASH(path[length])) {
+ }
+
+ if (length == -1) {
+ /* No directory only file name */
+ errno = ENOENT;
+ return -1;
+ }
+
+ if (length == COPY_WHEN_ABSOLUTE(path) && IS_ABSOLUTE_PATH(path, length+1)) { /* Also use trailing slash if this is absolute */
+ length++;
+ }
+ temp = (char *) do_alloca(length+1, use_heap);
+ memcpy(temp, path, length);
+ temp[length] = 0;
+#if VIRTUAL_CWD_DEBUG
+ fprintf (stderr, "Changing directory to %s\n", temp);
+#endif
+ retval = p_chdir(temp TSRMLS_CC);
+ free_alloca(temp, use_heap);
+ return retval;
+}
+/* }}} */
+
+CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ char *retval;
+ char cwd[MAXPATHLEN];
+
+ /* realpath("") returns CWD */
+ if (!*path) {
+ new_state.cwd = (char*)emalloc(1);
+ if (new_state.cwd == NULL) {
+ retval = NULL;
+ goto end;
+ }
+ new_state.cwd[0] = '\0';
+ new_state.cwd_length = 0;
+ if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
+ path = cwd;
+ }
+ } else if (!IS_ABSOLUTE_PATH(path, strlen(path))) {
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ } else {
+ new_state.cwd = (char*)emalloc(1);
+ if (new_state.cwd == NULL) {
+ retval = NULL;
+ goto end;
+ }
+ new_state.cwd[0] = '\0';
+ new_state.cwd_length = 0;
+ }
+
+ if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)==0) {
+ int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length;
+
+ memcpy(real_path, new_state.cwd, len);
+ real_path[len] = '\0';
+ retval = real_path;
+ } else {
+ retval = NULL;
+ }
+
+ CWD_STATE_FREE(&new_state);
+end:
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ retval = virtual_file_ex(&new_state, path, verify_path, CWD_FILEPATH TSRMLS_CC);
+
+ *filepath = new_state.cwd;
+
+ return retval;
+
+}
+/* }}} */
+
+CWD_API int virtual_filepath(const char *path, char **filepath TSRMLS_DC) /* {{{ */
+{
+ return virtual_filepath_ex(path, filepath, php_is_file_ok TSRMLS_CC);
+}
+/* }}} */
+
+CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ FILE *f;
+
+ if (path[0] == '\0') { /* Fail to open empty path */
+ return NULL;
+ }
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return NULL;
+ }
+
+ f = fopen(new_state.cwd, mode);
+
+ CWD_STATE_FREE_ERR(&new_state);
+
+ return f;
+}
+/* }}} */
+
+CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int ret;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+#if defined(TSRM_WIN32)
+ ret = tsrm_win32_access(new_state.cwd, mode TSRMLS_CC);
+#else
+ ret = access(new_state.cwd, mode);
+#endif
+
+ CWD_STATE_FREE_ERR(&new_state);
+
+ return ret;
+}
+/* }}} */
+
+#if HAVE_UTIME
+#ifdef TSRM_WIN32
+static void UnixTimeToFileTime(time_t t, LPFILETIME pft) /* {{{ */
+{
+ // Note that LONGLONG is a 64-bit value
+ LONGLONG ll;
+
+ ll = Int32x32To64(t, 10000000) + 116444736000000000;
+ pft->dwLowDateTime = (DWORD)ll;
+ pft->dwHighDateTime = ll >> 32;
+}
+/* }}} */
+
+TSRM_API int win32_utime(const char *filename, struct utimbuf *buf) /* {{{ */
+{
+ FILETIME mtime, atime;
+ HANDLE hFile;
+
+ hFile = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL,
+ OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, NULL);
+
+ /* OPEN_ALWAYS mode sets the last error to ERROR_ALREADY_EXISTS but
+ the CreateFile operation succeeds */
+ if (GetLastError() == ERROR_ALREADY_EXISTS) {
+ SetLastError(0);
+ }
+
+ if ( hFile == INVALID_HANDLE_VALUE ) {
+ return -1;
+ }
+
+ if (!buf) {
+ SYSTEMTIME st;
+ GetSystemTime(&st);
+ SystemTimeToFileTime(&st, &mtime);
+ atime = mtime;
+ } else {
+ UnixTimeToFileTime(buf->modtime, &mtime);
+ UnixTimeToFileTime(buf->actime, &atime);
+ }
+ if (!SetFileTime(hFile, NULL, &atime, &mtime)) {
+ CloseHandle(hFile);
+ return -1;
+ }
+ CloseHandle(hFile);
+ return 1;
+}
+/* }}} */
+#endif
+
+CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int ret;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+#ifdef TSRM_WIN32
+ ret = win32_utime(new_state.cwd, buf);
+#else
+ ret = utime(new_state.cwd, buf);
+#endif
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return ret;
+}
+/* }}} */
+#endif
+
+CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int ret;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ ret = chmod(new_state.cwd, mode);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return ret;
+}
+/* }}} */
+
+#if !defined(TSRM_WIN32) && !defined(NETWARE)
+CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int ret;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ if (link) {
+#if HAVE_LCHOWN
+ ret = lchown(new_state.cwd, owner, group);
+#else
+ ret = -1;
+#endif
+ } else {
+ ret = chown(new_state.cwd, owner, group);
+ }
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return ret;
+}
+/* }}} */
+#endif
+
+CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...) /* {{{ */
+{
+ cwd_state new_state;
+ int f;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ if (flags & O_CREAT) {
+ mode_t mode;
+ va_list arg;
+
+ va_start(arg, flags);
+ mode = (mode_t) va_arg(arg, int);
+ va_end(arg);
+
+ f = open(new_state.cwd, flags, mode);
+ } else {
+ f = open(new_state.cwd, flags);
+ }
+ CWD_STATE_FREE_ERR(&new_state);
+ return f;
+}
+/* }}} */
+
+CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int f;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ f = creat(new_state.cwd, mode);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return f;
+}
+/* }}} */
+
+CWD_API int virtual_rename(const char *oldname, const char *newname TSRMLS_DC) /* {{{ */
+{
+ cwd_state old_state;
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&old_state, &CWDG(cwd));
+ if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&old_state);
+ return -1;
+ }
+ oldname = old_state.cwd;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&old_state);
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+ newname = new_state.cwd;
+
+ /* rename on windows will fail if newname already exists.
+ MoveFileEx has to be used */
+#ifdef TSRM_WIN32
+ /* MoveFileEx returns 0 on failure, other way 'round for this function */
+ retval = (MoveFileEx(oldname, newname, MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED) == 0) ? -1 : 0;
+#else
+ retval = rename(oldname, newname);
+#endif
+
+ CWD_STATE_FREE_ERR(&old_state);
+ CWD_STATE_FREE_ERR(&new_state);
+
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ retval = php_sys_stat(new_state.cwd, buf);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ retval = php_sys_lstat(new_state.cwd, buf);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_unlink(const char *path TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ retval = unlink(new_state.cwd);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, pathname, NULL, CWD_FILEPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+#ifdef TSRM_WIN32
+ retval = mkdir(new_state.cwd);
+#else
+ retval = mkdir(new_state.cwd, mode);
+#endif
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ int retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, pathname, NULL, CWD_EXPAND TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return -1;
+ }
+
+ retval = rmdir(new_state.cwd);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+#ifdef TSRM_WIN32
+DIR *opendir(const char *name);
+#endif
+
+CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ DIR *retval;
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) {
+ CWD_STATE_FREE_ERR(&new_state);
+ return NULL;
+ }
+
+ retval = opendir(new_state.cwd);
+
+ CWD_STATE_FREE_ERR(&new_state);
+ return retval;
+}
+/* }}} */
+
+#ifdef TSRM_WIN32
+CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC) /* {{{ */
+{
+ return popen_ex(command, type, CWDG(cwd).cwd, NULL TSRMLS_CC);
+}
+/* }}} */
+#elif defined(NETWARE)
+/* On NetWare, the trick of prepending "cd cwd; " doesn't work so we need to perform
+ a VCWD_CHDIR() and mutex it
+ */
+CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC) /* {{{ */
+{
+ char prev_cwd[MAXPATHLEN];
+ char *getcwd_result;
+ FILE *retval;
+
+ getcwd_result = VCWD_GETCWD(prev_cwd, MAXPATHLEN);
+ if (!getcwd_result) {
+ return NULL;
+ }
+
+#ifdef ZTS
+ tsrm_mutex_lock(cwd_mutex);
+#endif
+
+ VCWD_CHDIR(CWDG(cwd).cwd);
+ retval = popen(command, type);
+ VCWD_CHDIR(prev_cwd);
+
+#ifdef ZTS
+ tsrm_mutex_unlock(cwd_mutex);
+#endif
+
+ return retval;
+}
+/* }}} */
+#else /* Unix */
+CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC) /* {{{ */
+{
+ int command_length;
+ int dir_length, extra = 0;
+ char *command_line;
+ char *ptr, *dir;
+ FILE *retval;
+
+ command_length = strlen(command);
+
+ dir_length = CWDG(cwd).cwd_length;
+ dir = CWDG(cwd).cwd;
+ while (dir_length > 0) {
+ if (*dir == '\'') extra+=3;
+ dir++;
+ dir_length--;
+ }
+ dir_length = CWDG(cwd).cwd_length;
+ dir = CWDG(cwd).cwd;
+
+ ptr = command_line = (char *) emalloc(command_length + sizeof("cd '' ; ") + dir_length + extra+1+1);
+ if (!command_line) {
+ return NULL;
+ }
+ memcpy(ptr, "cd ", sizeof("cd ")-1);
+ ptr += sizeof("cd ")-1;
+
+ if (CWDG(cwd).cwd_length == 0) {
+ *ptr++ = DEFAULT_SLASH;
+ } else {
+ *ptr++ = '\'';
+ while (dir_length > 0) {
+ switch (*dir) {
+ case '\'':
+ *ptr++ = '\'';
+ *ptr++ = '\\';
+ *ptr++ = '\'';
+ /* fall-through */
+ default:
+ *ptr++ = *dir;
+ }
+ dir++;
+ dir_length--;
+ }
+ *ptr++ = '\'';
+ }
+
+ *ptr++ = ' ';
+ *ptr++ = ';';
+ *ptr++ = ' ';
+
+ memcpy(ptr, command, command_length+1);
+ retval = popen(command_line, type);
+
+ efree(command_line);
+ return retval;
+}
+/* }}} */
+#endif
+
+CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC) /* {{{ */
+{
+ cwd_state new_state;
+ char cwd[MAXPATHLEN];
+
+ /* realpath("") returns CWD */
+ if (!*path) {
+ new_state.cwd = (char*)emalloc(1);
+ if (new_state.cwd == NULL) {
+ return NULL;
+ }
+ new_state.cwd[0] = '\0';
+ new_state.cwd_length = 0;
+ if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
+ path = cwd;
+ }
+ } else if (!IS_ABSOLUTE_PATH(path, strlen(path)) &&
+ VCWD_GETCWD(cwd, MAXPATHLEN)) {
+ new_state.cwd = estrdup(cwd);
+ new_state.cwd_length = strlen(cwd);
+ } else {
+ new_state.cwd = (char*)emalloc(1);
+ if (new_state.cwd == NULL) {
+ return NULL;
+ }
+ new_state.cwd[0] = '\0';
+ new_state.cwd_length = 0;
+ }
+
+ if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) {
+ efree(new_state.cwd);
+ return NULL;
+ }
+
+ if (real_path) {
+ int copy_len = new_state.cwd_length>MAXPATHLEN-1 ? MAXPATHLEN-1 : new_state.cwd_length;
+ memcpy(real_path, new_state.cwd, copy_len);
+ real_path[copy_len] = '\0';
+ efree(new_state.cwd);
+ return real_path;
+ } else {
+ return new_state.cwd;
+ }
+}
+/* }}} */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ */
diff --git a/Zend/zend_virtual_cwd.h b/Zend/zend_virtual_cwd.h
new file mode 100644
index 000000000..b0df0ad31
--- /dev/null
+++ b/Zend/zend_virtual_cwd.h
@@ -0,0 +1,340 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2014 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP 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.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Andi Gutmans <andi@zend.com> |
+ | Sascha Schumann <sascha@schumann.cx> |
+ | Pierre Joye <pierre@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef VIRTUAL_CWD_H
+#define VIRTUAL_CWD_H
+
+#include "TSRM.h"
+#include "tsrm_config_common.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <ctype.h>
+
+#ifdef HAVE_UTIME_H
+#include <utime.h>
+#endif
+
+#ifdef HAVE_STDARG_H
+#include <stdarg.h>
+#endif
+
+#ifdef ZTS
+#define VIRTUAL_DIR
+#endif
+
+#ifndef TSRM_WIN32
+#include <unistd.h>
+#else
+#include <direct.h>
+#endif
+
+#if defined(__osf__) || defined(_AIX)
+#include <errno.h>
+#endif
+
+#ifdef TSRM_WIN32
+#include "readdir.h"
+#include <sys/utime.h>
+/* mode_t isn't defined on Windows */
+typedef unsigned short mode_t;
+
+#define DEFAULT_SLASH '\\'
+#define DEFAULT_DIR_SEPARATOR ';'
+#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
+#define IS_SLASH_P(c) (*(c) == '/' || \
+ (*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
+
+/* COPY_WHEN_ABSOLUTE is 2 under Win32 because by chance both regular absolute paths
+ in the file system and UNC paths need copying of two characters */
+#define COPY_WHEN_ABSOLUTE(path) 2
+#define IS_UNC_PATH(path, len) \
+ (len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1]))
+#define IS_ABSOLUTE_PATH(path, len) \
+ (len >= 2 && ((isalpha(path[0]) && path[1] == ':') || IS_UNC_PATH(path, len)))
+
+#elif defined(NETWARE)
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+
+#define DEFAULT_SLASH '/'
+#define DEFAULT_DIR_SEPARATOR ';'
+#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
+#define IS_SLASH_P(c) IS_SLASH(*(c))
+/* Colon indicates volume name, either first character should be forward slash or backward slash */
+#define IS_ABSOLUTE_PATH(path, len) \
+ ((strchr(path, ':') != NULL) || ((len >= 1) && ((path[0] == '/') || (path[0] == '\\'))))
+
+#else
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+
+#define DEFAULT_SLASH '/'
+
+#ifdef __riscos__
+#define DEFAULT_DIR_SEPARATOR ';'
+#else
+#define DEFAULT_DIR_SEPARATOR ':'
+#endif
+
+#define IS_SLASH(c) ((c) == '/')
+#define IS_SLASH_P(c) (*(c) == '/')
+
+#endif
+
+
+#ifndef COPY_WHEN_ABSOLUTE
+#define COPY_WHEN_ABSOLUTE(path) 0
+#endif
+
+#ifndef IS_ABSOLUTE_PATH
+#define IS_ABSOLUTE_PATH(path, len) \
+ (IS_SLASH(path[0]))
+#endif
+
+#ifdef TSRM_EXPORTS
+#define CWD_EXPORTS
+#endif
+
+#ifdef TSRM_WIN32
+# ifdef CWD_EXPORTS
+# define CWD_API __declspec(dllexport)
+# else
+# define CWD_API __declspec(dllimport)
+# endif
+#elif defined(__GNUC__) && __GNUC__ >= 4
+# define CWD_API __attribute__ ((visibility("default")))
+#else
+# define CWD_API
+#endif
+
+#ifdef TSRM_WIN32
+CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat);
+# define php_sys_stat(path, buf) php_sys_stat_ex(path, buf, 0)
+# define php_sys_lstat(path, buf) php_sys_stat_ex(path, buf, 1)
+CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len);
+#else
+# define php_sys_stat stat
+# define php_sys_lstat lstat
+# ifdef HAVE_SYMLINK
+# define php_sys_readlink(link, target, target_len) readlink(link, target, target_len)
+# endif
+#endif
+
+typedef struct _cwd_state {
+ char *cwd;
+ int cwd_length;
+} cwd_state;
+
+typedef int (*verify_path_func)(const cwd_state *);
+
+CWD_API void virtual_cwd_startup(void);
+CWD_API void virtual_cwd_shutdown(void);
+CWD_API int virtual_cwd_activate(TSRMLS_D);
+CWD_API int virtual_cwd_deactivate(TSRMLS_D);
+CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC);
+CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC);
+CWD_API int virtual_chdir(const char *path TSRMLS_DC);
+CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path TSRMLS_DC) TSRMLS_DC);
+CWD_API int virtual_filepath(const char *path, char **filepath TSRMLS_DC);
+CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC);
+CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC);
+CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC);
+CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...);
+CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
+CWD_API int virtual_rename(const char *oldname, const char *newname TSRMLS_DC);
+CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
+CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
+CWD_API int virtual_unlink(const char *path TSRMLS_DC);
+CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);
+CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC);
+CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC);
+CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC);
+CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
+#if defined(TSRM_WIN32)
+/* these are not defined in win32 headers */
+#ifndef W_OK
+#define W_OK 0x02
+#endif
+#ifndef R_OK
+#define R_OK 0x04
+#endif
+#ifndef X_OK
+#define X_OK 0x01
+#endif
+#ifndef F_OK
+#define F_OK 0x00
+#endif
+#endif
+
+#if HAVE_UTIME
+CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC);
+#endif
+CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
+#if !defined(TSRM_WIN32) && !defined(NETWARE)
+CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);
+#endif
+
+/* One of the following constants must be used as the last argument
+ in virtual_file_ex() call. */
+
+#define CWD_EXPAND 0 /* expand "." and ".." but dont resolve symlinks */
+#define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */
+#define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */
+
+CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC);
+
+CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC);
+
+#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
+#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
+
+typedef struct _realpath_cache_bucket {
+ unsigned long key;
+ char *path;
+ int path_len;
+ char *realpath;
+ int realpath_len;
+ int is_dir;
+ time_t expires;
+#ifdef PHP_WIN32
+ unsigned char is_rvalid;
+ unsigned char is_readable;
+ unsigned char is_wvalid;
+ unsigned char is_writable;
+#endif
+ struct _realpath_cache_bucket *next;
+} realpath_cache_bucket;
+
+typedef struct _virtual_cwd_globals {
+ cwd_state cwd;
+ long realpath_cache_size;
+ long realpath_cache_size_limit;
+ long realpath_cache_ttl;
+ realpath_cache_bucket *realpath_cache[1024];
+} virtual_cwd_globals;
+
+#ifdef ZTS
+extern ts_rsrc_id cwd_globals_id;
+# define CWDG(v) TSRMG(cwd_globals_id, virtual_cwd_globals *, v)
+#else
+extern virtual_cwd_globals cwd_globals;
+# define CWDG(v) (cwd_globals.v)
+#endif
+
+CWD_API void realpath_cache_clean(TSRMLS_D);
+CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC);
+CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, int path_len, time_t t TSRMLS_DC);
+CWD_API int realpath_cache_size(TSRMLS_D);
+CWD_API int realpath_cache_max_buckets(TSRMLS_D);
+CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
+
+/* The actual macros to be used in programs using TSRM
+ * If the program defines VIRTUAL_DIR it will use the
+ * virtual_* functions
+ */
+
+#ifdef VIRTUAL_DIR
+
+#define VCWD_GETCWD(buff, size) virtual_getcwd(buff, size TSRMLS_CC)
+#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)
+/* Because open() has two modes, we have to macros to replace it */
+#define VCWD_OPEN(path, flags) virtual_open(path TSRMLS_CC, flags)
+#define VCWD_OPEN_MODE(path, flags, mode) virtual_open(path TSRMLS_CC, flags, mode)
+#define VCWD_CREAT(path, mode) virtual_creat(path, mode TSRMLS_CC)
+#define VCWD_CHDIR(path) virtual_chdir(path TSRMLS_CC)
+#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, virtual_chdir TSRMLS_CC)
+#define VCWD_GETWD(buf)
+#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
+#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
+#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
+# define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
+#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
+#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)
+#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)
+#define VCWD_OPENDIR(pathname) virtual_opendir(pathname TSRMLS_CC)
+#define VCWD_POPEN(command, type) virtual_popen(command, type TSRMLS_CC)
+#define VCWD_ACCESS(pathname, mode) virtual_access(pathname, mode TSRMLS_CC)
+#if HAVE_UTIME
+#define VCWD_UTIME(path, time) virtual_utime(path, time TSRMLS_CC)
+#endif
+#define VCWD_CHMOD(path, mode) virtual_chmod(path, mode TSRMLS_CC)
+#if !defined(TSRM_WIN32) && !defined(NETWARE)
+#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group, 0 TSRMLS_CC)
+#if HAVE_LCHOWN
+#define VCWD_LCHOWN(path, owner, group) virtual_chown(path, owner, group, 1 TSRMLS_CC)
+#endif
+#endif
+
+#else
+
+#define VCWD_GETCWD(buff, size) getcwd(buff, size)
+#define VCWD_FOPEN(path, mode) fopen(path, mode)
+#define VCWD_OPEN(path, flags) open(path, flags)
+#define VCWD_OPEN_MODE(path, flags, mode) open(path, flags, mode)
+#define VCWD_CREAT(path, mode) creat(path, mode)
+/* rename on windows will fail if newname already exists.
+ MoveFileEx has to be used */
+#if defined(TSRM_WIN32)
+# define VCWD_RENAME(oldname, newname) (MoveFileEx(oldname, newname, MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED) == 0 ? -1 : 0)
+#else
+# define VCWD_RENAME(oldname, newname) rename(oldname, newname)
+#endif
+#define VCWD_CHDIR(path) chdir(path)
+#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, chdir)
+#define VCWD_GETWD(buf) getwd(buf)
+#define VCWD_STAT(path, buff) php_sys_stat(path, buff)
+#define VCWD_LSTAT(path, buff) lstat(path, buff)
+#define VCWD_UNLINK(path) unlink(path)
+#define VCWD_MKDIR(pathname, mode) mkdir(pathname, mode)
+#define VCWD_RMDIR(pathname) rmdir(pathname)
+#define VCWD_OPENDIR(pathname) opendir(pathname)
+#define VCWD_POPEN(command, type) popen(command, type)
+#if defined(TSRM_WIN32)
+#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode TSRMLS_CC)
+#else
+#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
+#endif
+
+#define VCWD_REALPATH(path, real_path) tsrm_realpath(path, real_path TSRMLS_CC)
+
+#if HAVE_UTIME
+# ifdef TSRM_WIN32
+# define VCWD_UTIME(path, time) win32_utime(path, time)
+# else
+# define VCWD_UTIME(path, time) utime(path, time)
+# endif
+#endif
+
+#define VCWD_CHMOD(path, mode) chmod(path, mode)
+#if !defined(TSRM_WIN32) && !defined(NETWARE)
+#define VCWD_CHOWN(path, owner, group) chown(path, owner, group)
+#if HAVE_LCHOWN
+#define VCWD_LCHOWN(path, owner, group) lchown(path, owner, group)
+#endif
+#endif
+
+#endif
+
+#endif /* VIRTUAL_CWD_H */
diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h
index c406c1a89..078be15b7 100644
--- a/Zend/zend_vm.h
+++ b/Zend/zend_vm.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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_def.h b/Zend/zend_vm_def.h
index 9db6ea19f..1e8a83155 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -352,7 +352,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -372,7 +371,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -411,7 +409,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -419,7 +416,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -484,7 +480,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
FREE_OP2();
FREE_OP1_VAR_PTR();
@@ -512,7 +508,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
FREE_OP2();
@@ -805,7 +801,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
if (OP1_TYPE == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
FREE_OP1_VAR_PTR();
CHECK_EXCEPTION();
@@ -829,7 +825,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
FREE_OP1_VAR_PTR();
@@ -852,7 +848,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
if (OP1_TYPE == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
FREE_OP1_VAR_PTR();
CHECK_EXCEPTION();
@@ -876,7 +872,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
FREE_OP1_VAR_PTR();
@@ -1052,10 +1048,8 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, UNUSED|CONST|
*/
if (OP1_TYPE == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -1108,7 +1102,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, UNUSED|CONST|
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -1149,7 +1143,7 @@ ZEND_VM_HANDLER(92, ZEND_FETCH_FUNC_ARG, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
USE_OPLINE
ZEND_VM_DISPATCH_TO_HELPER_EX(zend_fetch_var_address_helper, type,
- ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R);
+ zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R);
}
ZEND_VM_HANDLER(95, ZEND_FETCH_UNSET, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
@@ -1169,14 +1163,12 @@ ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
zval *container;
SAVE_OPLINE();
-
- if (OP1_TYPE == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = GET_OP1_ZVAL_PTR(BP_VAR_R);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC);
FREE_OP2();
- FREE_OP1();
+ if (OP1_TYPE != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ FREE_OP1();
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -1259,9 +1251,8 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
-
if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -1343,7 +1334,7 @@ ZEND_VM_HELPER(zend_fetch_property_address_read_helper, VAR|UNUSED|CV, CONST|TMP
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
FREE_OP2();
} else {
zval *retval;
@@ -1356,7 +1347,7 @@ ZEND_VM_HELPER(zend_fetch_property_address_read_helper, VAR|UNUSED|CV, CONST|TMP
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (IS_OP2_TMP_FREE()) {
zval_ptr_dtor(&offset);
@@ -1465,7 +1456,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
FREE_OP2();
} else {
zval *retval;
@@ -1478,7 +1469,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (IS_OP2_TMP_FREE()) {
zval_ptr_dtor(&offset);
@@ -1496,7 +1487,7 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -1583,13 +1574,13 @@ ZEND_VM_HANDLER(98, ZEND_FETCH_DIM_TMP_VAR, CONST|TMP, CONST)
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zend_free_op free_op2;
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC);
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
FREE_OP2();
}
CHECK_EXCEPTION();
@@ -1670,11 +1661,11 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -1682,7 +1673,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -1694,7 +1685,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -1726,11 +1717,11 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (OP1_TYPE == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_OP2_TMP_FREE()) {
@@ -1738,7 +1729,7 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (OP2_TYPE == IS_TMP_VAR) {
@@ -1750,7 +1741,7 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
@@ -1807,7 +1798,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*variable_ptr_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
+ EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
}
FREE_OP1_VAR_PTR();
@@ -1825,7 +1816,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
EG(current_execute_data) = EX(prev_execute_data);
EG(opline_ptr) = NULL;
if (!EG(active_symbol_table)) {
- i_free_compiled_variables(execute_data);
+ i_free_compiled_variables(execute_data TSRMLS_CC);
}
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
@@ -1910,20 +1901,22 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
USE_OPLINE
zend_bool should_change_scope = 0;
zend_function *fbc = EX(function_state).function;
+ zend_uint num_args;
SAVE_OPLINE();
EX(object) = EX(call)->object;
if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", fbc->common.scope->name, fbc->common.function_name);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE(); /* Never reached */
}
if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) {
zend_error(E_DEPRECATED, "Function %s%s%s() is deprecated",
fbc->common.scope ? fbc->common.scope->name : "",
fbc->common.scope ? "::" : "",
fbc->common.function_name);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
}
}
if (fbc->common.scope &&
@@ -1933,6 +1926,9 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
if (fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
/* FIXME: output identifiers properly */
zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically", fbc->common.scope->name, fbc->common.function_name);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
} else {
/* FIXME: output identifiers properly */
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
@@ -1950,19 +1946,22 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
EG(called_scope) = EX(call)->called_scope;
}
- EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
- zend_vm_stack_push((void*)(zend_uintptr_t)opline->extended_value TSRMLS_CC);
+ num_args = opline->extended_value + EX(call)->num_additional_args;
+ if (EX(call)->num_additional_args) {
+ EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
+ } else {
+ EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
+ zend_vm_stack_push((void*)(zend_uintptr_t) num_args TSRMLS_CC);
+ }
LOAD_OPLINE();
if (fbc->type == ZEND_INTERNAL_FUNCTION) {
- if (fbc->common.arg_info) {
- zend_uint i=0;
- zval **p = (zval**)EX(function_state).arguments;
- ulong arg_count = opline->extended_value;
-
- while (arg_count>0) {
- zend_verify_arg_type(fbc, ++i, *(p-arg_count), 0 TSRMLS_CC);
- arg_count--;
+ if (fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) {
+ zend_uint i;
+ void **p = EX(function_state).arguments - num_args;
+
+ for (i = 0; i < num_args; ++i, ++p) {
+ zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0 TSRMLS_CC);
}
}
@@ -1976,7 +1975,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
if (!zend_execute_internal) {
/* saves one function call if zend_execute_internal is not used */
- fbc->internal_function.handler(opline->extended_value, ret->var.ptr, (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) ? &ret->var.ptr : NULL, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
+ fbc->internal_function.handler(num_args, ret->var.ptr, &ret->var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
} else {
zend_execute_internal(execute_data, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
}
@@ -2026,7 +2025,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
/* Not sure what should be done here if it's a static method */
if (EXPECTED(EX(object) != NULL)) {
- Z_OBJ_HT_P(EX(object))->call_method(fbc->common.function_name, opline->extended_value, EX_T(opline->result.var).var.ptr, &EX_T(opline->result.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
+ Z_OBJ_HT_P(EX(object))->call_method(fbc->common.function_name, num_args, EX_T(opline->result.var).var.ptr, &EX_T(opline->result.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
} else {
zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object");
}
@@ -2480,6 +2479,8 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV)
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -2595,7 +2596,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -2606,6 +2607,8 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -2629,10 +2632,13 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
} else {
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
}
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
/*CHECK_EXCEPTION();*/
ZEND_VM_NEXT_OPCODE();
} else {
@@ -2657,10 +2663,13 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
}
efree(lcname);
FREE_OP2();
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (OP2_TYPE != IS_CONST && OP2_TYPE != IS_TMP_VAR &&
@@ -2670,15 +2679,18 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
if (call->object) {
Z_ADDREF_P(call->object);
}
- if (OP2_TYPE == IS_VAR && OP2_FREE &&
+ if (OP2_TYPE == IS_VAR && OP2_FREE && Z_REFCOUNT_P(function_name) == 1 &&
call->fbc->common.fn_flags & ZEND_ACC_CLOSURE) {
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
FREE_OP2();
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (OP2_TYPE != IS_CONST &&
@@ -2744,8 +2756,11 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
if (UNEXPECTED(call->fbc == NULL)) {
zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, Z_STRVAL_PP(method));
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
FREE_OP2();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -2783,7 +2798,9 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
+
EX(call) = call;
ZEND_VM_NEXT_OPCODE();
}
@@ -2809,9 +2826,11 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, CONST, ANY)
} else {
CACHE_PTR(opline->op1.literal->cache_slot, EX(function_state).function);
}
+
call->fbc = EX(function_state).function;
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -2830,9 +2849,7 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (!EG(return_value_ptr_ptr)) {
- if (OP1_TYPE == IS_TMP_VAR) {
- FREE_OP1();
- }
+ FREE_OP1();
} else {
if (OP1_TYPE == IS_CONST ||
OP1_TYPE == IS_TMP_VAR ||
@@ -2845,18 +2862,23 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
+ FREE_OP1_IF_VAR();
} else if ((OP1_TYPE == IS_CV || OP1_TYPE == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
+ if (OP1_TYPE == IS_VAR) {
+ Z_DELREF_P(retval_ptr);
+ }
ALLOC_INIT_ZVAL(ret);
*EG(return_value_ptr_ptr) = ret;
} else {
*EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ if (OP1_TYPE == IS_CV) {
+ Z_ADDREF_P(retval_ptr);
+ }
}
}
- FREE_OP1_IF_VAR();
ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
}
@@ -2870,7 +2892,8 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
SAVE_OPLINE();
do {
- if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
+ if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR ||
+ (OP1_TYPE == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -2927,7 +2950,7 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
}
} while (0);
- FREE_OP1_IF_VAR();
+ FREE_OP1_VAR_PTR();
ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
}
@@ -3039,10 +3062,13 @@ ZEND_VM_HANDLER(65, ZEND_SEND_VAL, CONST|TMP, ANY)
USE_OPLINE
SAVE_OPLINE();
- if (opline->extended_value==ZEND_DO_FCALL_BY_NAME
- && ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.opline_num);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ }
}
+
{
zval *valptr;
zval *value;
@@ -3070,21 +3096,26 @@ ZEND_VM_HELPER(zend_send_by_var_helper, VAR|CV, ANY)
varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (varptr == &EG(uninitialized_zval)) {
- ALLOC_ZVAL(varptr);
- INIT_ZVAL(*varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
+ if (OP1_TYPE == IS_VAR) {
+ Z_DELREF_P(varptr);
+ }
+ ALLOC_INIT_ZVAL(varptr);
} else if (PZVAL_IS_REF(varptr)) {
- zval *original_var = varptr;
+ if (OP1_TYPE == IS_CV ||
+ (OP1_TYPE == IS_VAR && Z_REFCOUNT_P(varptr) > 2)) {
+ zval *original_var = varptr;
- ALLOC_ZVAL(varptr);
- ZVAL_COPY_VALUE(varptr, original_var);
- Z_UNSET_ISREF_P(varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
- zval_copy_ctor(varptr);
+ ALLOC_ZVAL(varptr);
+ INIT_PZVAL_COPY(varptr, original_var);
+ zval_copy_ctor(varptr);
+ FREE_OP1();
+ } else {
+ Z_UNSET_ISREF_P(varptr);
+ }
+ } else if (OP1_TYPE == IS_CV) {
+ Z_ADDREF_P(varptr);
}
- Z_ADDREF_P(varptr);
zend_vm_stack_push(varptr TSRMLS_CC);
- FREE_OP1(); /* for string offsets */
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -3095,39 +3126,36 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
USE_OPLINE
zend_free_op free_op1;
zval *varptr;
+ int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
if (!(opline->extended_value & ZEND_ARG_SEND_BY_REF)) {
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
}
- } else if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
- }
-
- if (OP1_TYPE == IS_VAR &&
- (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
- EX_T(opline->op1.var).var.fcall_returned_reference &&
- EX_T(opline->op1.var).var.ptr) {
- varptr = EX_T(opline->op1.var).var.ptr;
- PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
} else {
- varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
+ }
}
+
+ varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
- (PZVAL_IS_REF(varptr) ||
- (Z_REFCOUNT_P(varptr) == 1 && (OP1_TYPE == IS_CV || free_op1.var)))) {
+ (PZVAL_IS_REF(varptr) || Z_REFCOUNT_P(varptr) == 1)) {
Z_SET_ISREF_P(varptr);
- Z_ADDREF_P(varptr);
+ if (OP1_TYPE == IS_CV) {
+ Z_ADDREF_P(varptr);
+ }
zend_vm_stack_push(varptr TSRMLS_CC);
} else {
zval *valptr;
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
ALLOC_ZVAL(valptr);
@@ -3135,9 +3163,9 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
if (!IS_OP1_TMP_FREE()) {
zval_copy_ctor(valptr);
}
+ FREE_OP1_IF_VAR();
zend_vm_stack_push(valptr TSRMLS_CC);
}
- FREE_OP1_IF_VAR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -3164,9 +3192,11 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY)
}
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
- EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
- !ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
+ EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
+ }
}
SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr);
@@ -3183,14 +3213,164 @@ ZEND_VM_HANDLER(66, ZEND_SEND_VAR, VAR|CV, ANY)
{
USE_OPLINE
- if ((opline->extended_value == ZEND_DO_FCALL_BY_NAME)
- && ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF);
+ }
}
SAVE_OPLINE();
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
}
+ZEND_VM_HANDLER(165, ZEND_SEND_UNPACK, ANY, ANY)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+ zval *args;
+ int arg_num;
+ SAVE_OPLINE();
+
+ args = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ arg_num = opline->op2.num + EX(call)->num_additional_args + 1;
+
+ switch (Z_TYPE_P(args)) {
+ case IS_ARRAY: {
+ HashTable *ht = Z_ARRVAL_P(args);
+ HashPosition pos;
+ zval **arg_ptr, *arg;
+
+ ZEND_VM_STACK_GROW_IF_NEEDED(zend_hash_num_elements(ht));
+
+ for (zend_hash_internal_pointer_reset_ex(ht, &pos);
+ zend_hash_get_current_data_ex(ht, (void **) &arg_ptr, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(ht, &pos), ++arg_num
+ ) {
+ char *name;
+ zend_uint name_len;
+ zend_ulong index;
+
+ if (zend_hash_get_current_key_ex(ht, &name, &name_len, &index, 0, &pos) == HASH_KEY_IS_STRING) {
+ zend_error(E_RECOVERABLE_ERROR, "Cannot unpack array with string keys");
+ FREE_OP1();
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+ }
+
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(arg_ptr);
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ } else if (Z_ISREF_PP(arg_ptr)) {
+ ALLOC_ZVAL(arg);
+ MAKE_COPY_ZVAL(arg_ptr, arg);
+ } else {
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ }
+
+ zend_vm_stack_push(arg TSRMLS_CC);
+ EX(call)->num_additional_args++;
+ }
+ break;
+ }
+ case IS_OBJECT: {
+ zend_class_entry *ce = Z_OBJCE_P(args);
+ zend_object_iterator *iter;
+
+ if (!ce || !ce->get_iterator) {
+ zend_error(E_WARNING, "Only arrays and Traversables can be unpacked");
+ break;
+ }
+
+ iter = ce->get_iterator(ce, args, 0 TSRMLS_CC);
+ if (UNEXPECTED(!iter)) {
+ FREE_OP1();
+ if (!EG(exception)) {
+ zend_throw_exception_ex(
+ NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name
+ );
+ }
+ HANDLE_EXCEPTION();
+ }
+
+ if (iter->funcs->rewind) {
+ iter->funcs->rewind(iter TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+ }
+
+ for (; iter->funcs->valid(iter TSRMLS_CC) == SUCCESS; ++arg_num) {
+ zval **arg_ptr, *arg;
+
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+
+ iter->funcs->get_current_data(iter, &arg_ptr TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+
+ if (iter->funcs->get_current_key) {
+ zval key;
+ iter->funcs->get_current_key(iter, &key TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+
+ if (Z_TYPE(key) == IS_STRING) {
+ zend_error(E_RECOVERABLE_ERROR,
+ "Cannot unpack Traversable with string keys");
+ zval_dtor(&key);
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+
+ zval_dtor(&key);
+ }
+
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ zend_error(
+ E_WARNING, "Cannot pass by-reference argument %d of %s%s%s()"
+ " by unpacking a Traversable, passing by-value instead", arg_num,
+ EX(call)->fbc->common.scope ? EX(call)->fbc->common.scope->name : "",
+ EX(call)->fbc->common.scope ? "::" : "",
+ EX(call)->fbc->common.function_name
+ );
+ }
+
+ if (Z_ISREF_PP(arg_ptr)) {
+ ALLOC_ZVAL(arg);
+ MAKE_COPY_ZVAL(arg_ptr, arg);
+ } else {
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ }
+
+ ZEND_VM_STACK_GROW_IF_NEEDED(1);
+ zend_vm_stack_push(arg TSRMLS_CC);
+ EX(call)->num_additional_args++;
+
+ iter->funcs->move_forward(iter TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ ZEND_VM_C_GOTO(unpack_iter_dtor);
+ }
+ }
+
+ZEND_VM_C_LABEL(unpack_iter_dtor):
+ iter->funcs->dtor(iter TSRMLS_CC);
+ break;
+ }
+ default:
+ zend_error(E_WARNING, "Only arrays and Traversables can be unpacked");
+ }
+
+ FREE_OP1();
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
ZEND_VM_HANDLER(63, ZEND_RECV, ANY, ANY)
{
USE_OPLINE
@@ -3244,8 +3424,7 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST)
if (param == NULL) {
ALLOC_ZVAL(assignment_value);
*assignment_value = *opline->op2.zv;
- if ((Z_TYPE_P(assignment_value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT ||
- Z_TYPE_P(assignment_value)==IS_CONSTANT_ARRAY) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(assignment_value))) {
Z_SET_REFCOUNT_P(assignment_value, 1);
zval_update_constant(&assignment_value, 0 TSRMLS_CC);
} else {
@@ -3266,6 +3445,37 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST)
ZEND_VM_NEXT_OPCODE();
}
+ZEND_VM_HANDLER(164, ZEND_RECV_VARIADIC, ANY, ANY)
+{
+ USE_OPLINE
+ zend_uint arg_num = opline->op1.num;
+ zend_uint arg_count = zend_vm_stack_get_args_count(TSRMLS_C);
+ zval **var_ptr, *params;
+
+ SAVE_OPLINE();
+
+ var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
+ Z_DELREF_PP(var_ptr);
+ MAKE_STD_ZVAL(params);
+ *var_ptr = params;
+
+ if (arg_num <= arg_count) {
+ array_init_size(params, arg_count - arg_num + 1);
+ } else {
+ array_init(params);
+ }
+
+ for (; arg_num <= arg_count; ++arg_num) {
+ zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
+ zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
+ zend_hash_next_index_insert(Z_ARRVAL_P(params), param, sizeof(zval *), NULL);
+ Z_ADDREF_PP(param);
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
ZEND_VM_HANDLER(52, ZEND_BOOL, CONST|TMP|VAR|CV, ANY)
{
USE_OPLINE
@@ -3336,9 +3546,6 @@ ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- if (OP1_TYPE==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
GET_OP1_ZVAL_PTR(BP_VAR_R),
GET_OP2_ZVAL_PTR(BP_VAR_R) TSRMLS_CC);
@@ -3399,6 +3606,7 @@ ZEND_VM_HANDLER(68, ZEND_NEW, ANY, ANY)
call->fbc = constructor;
call->object = object_zval;
call->called_scope = EX_T(opline->op1.var).class_entry;
+ call->num_additional_args = 0;
call->is_ctor_call = 1;
call->is_ctor_result_used = RETURN_VALUE_USED(opline);
EX(call) = call;
@@ -3466,7 +3674,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMP|VAR|UNUSED|CV, ANY)
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
FREE_OP1_IF_VAR();
@@ -3544,8 +3752,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
}
if (EXPECTED(zend_hash_quick_find(&ce->constants_table, Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv)+1, Z_HASH_P(opline->op2.zv), (void **) &value) == SUCCESS)) {
- if (Z_TYPE_PP(value) == IS_CONSTANT_ARRAY ||
- (Z_TYPE_PP(value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_PP(value))) {
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
@@ -3559,7 +3766,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
}
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, *value);
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
- } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && strcmp(Z_STRVAL_P(opline->op2.zv), "class") == 0) {
+ } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && memcmp(Z_STRVAL_P(opline->op2.zv), "class", sizeof("class") - 1) == 0) {
/* "class" is assigned as a case-sensitive keyword from zend_do_resolve_class_name */
ZVAL_STRINGL(&EX_T(opline->result.var).tmp_var, ce->name, ce->name_length, 1);
} else {
@@ -3602,7 +3809,8 @@ ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMP|VAR|UNUS
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ FREE_OP1_IF_VAR();
+ } else if (OP1_TYPE == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -3627,11 +3835,7 @@ ZEND_VM_C_LABEL(num_index):
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index));
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -3650,8 +3854,6 @@ ZEND_VM_C_LABEL(num_index):
}
if ((OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) && opline->extended_value) {
FREE_OP1_VAR_PTR();
- } else {
- FREE_OP1_IF_VAR();
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -3821,7 +4023,6 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
EX(original_return_value) = EG(return_value_ptr_ptr);
EG(active_op_array) = new_op_array;
if (RETURN_VALUE_USED(opline)) {
- EX_T(opline->result.var).var.ptr = NULL;
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
} else {
@@ -3859,7 +4060,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
ALLOC_ZVAL(retval);
ZVAL_BOOL(retval, failure_retval);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
ZEND_VM_NEXT_OPCODE();
}
@@ -3981,11 +4182,7 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_dim));
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -4140,19 +4337,27 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
ce = Z_OBJCE_P(array_ptr);
if (!ce || !ce->get_iterator) {
- Z_ADDREF_P(array_ptr);
+ if (OP1_TYPE == IS_CV) {
+ Z_ADDREF_P(array_ptr);
+ }
}
} else if (OP1_TYPE == IS_CONST ||
- ((OP1_TYPE == IS_CV || OP1_TYPE == IS_VAR) &&
+ (OP1_TYPE == IS_CV &&
!Z_ISREF_P(array_ptr) &&
- Z_REFCOUNT_P(array_ptr) > 1)) {
+ Z_REFCOUNT_P(array_ptr) > 1) ||
+ (OP1_TYPE == IS_VAR &&
+ !Z_ISREF_P(array_ptr) &&
+ Z_REFCOUNT_P(array_ptr) > 2)) {
zval *tmp;
+ if (OP1_TYPE == IS_VAR) {
+ Z_DELREF_P(array_ptr);
+ }
ALLOC_ZVAL(tmp);
INIT_PZVAL_COPY(tmp, array_ptr);
zval_copy_ctor(tmp);
array_ptr = tmp;
- } else {
+ } else if (OP1_TYPE == IS_CV) {
Z_ADDREF_P(array_ptr);
}
}
@@ -4160,10 +4365,15 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
if (ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
+ if (OP1_TYPE == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
+ FREE_OP1_IF_VAR();
+ }
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
- FREE_OP1_IF_VAR();
+ if (OP1_TYPE == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ FREE_OP1_VAR_PTR();
+ }
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
}
@@ -4180,14 +4390,18 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
iter->funcs->rewind(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
- FREE_OP1_IF_VAR();
+ if (OP1_TYPE == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ FREE_OP1_VAR_PTR();
+ }
HANDLE_EXCEPTION();
}
}
is_empty = iter->funcs->valid(iter TSRMLS_CC) != SUCCESS;
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
- FREE_OP1_IF_VAR();
+ if (OP1_TYPE == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ FREE_OP1_VAR_PTR();
+ }
HANDLE_EXCEPTION();
}
iter->index = -1; /* will be set to 0 before using next handler */
@@ -4217,7 +4431,9 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
is_empty = 1;
}
- FREE_OP1_IF_VAR();
+ if (OP1_TYPE == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ FREE_OP1_VAR_PTR();
+ }
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
} else {
@@ -4349,7 +4565,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
Z_ADDREF_PP(value);
} else {
PZVAL_LOCK(*value);
- AI_SET_PTR(&EX_T(opline->result.var), *value);
+ EX_T(opline->result.var).var.ptr = *value;
}
CHECK_EXCEPTION();
@@ -4454,7 +4670,6 @@ ZEND_VM_HELPER_EX(zend_isset_isempty_dim_prop_obj_handler, VAR|UNUSED|CV, CONST|
SAVE_OPLINE();
container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
-
offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -4481,11 +4696,7 @@ ZEND_VM_C_LABEL(num_index_prop):
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_prop));
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -4578,7 +4789,7 @@ ZEND_VM_C_LABEL(num_index_prop):
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- FREE_OP1_VAR_PTR();
+ FREE_OP1_IF_VAR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -4993,7 +5204,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
{
zend_uint op_num = EG(opline_before_exception)-EG(active_op_array)->opcodes;
int i;
- zend_uint catch_op_num = 0, finally_op_num = 0;
+ zend_uint catch_op_num = 0, finally_op_num = 0, finally_op_end = 0;
void **stack_frame;
/* Figure out where the next stack frame (which maybe contains pushed
@@ -5018,6 +5229,10 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
if (op_num < EG(active_op_array)->try_catch_array[i].finally_op) {
finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
}
+ if (op_num >= EG(active_op_array)->try_catch_array[i].finally_op &&
+ op_num < EG(active_op_array)->try_catch_array[i].finally_end) {
+ finally_op_end = EG(active_op_array)->try_catch_array[i].finally_end;
+ }
}
if (EX(call) >= EX(call_slots)) {
@@ -5079,14 +5294,29 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
EX(old_error_reporting) = NULL;
if (finally_op_num && (!catch_op_num || catch_op_num >= finally_op_num)) {
- zend_exception_save(TSRMLS_C);
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ }
+ EX(delayed_exception) = EG(exception);
+ EG(exception) = NULL;
EX(fast_ret) = NULL;
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
ZEND_VM_CONTINUE();
} else if (catch_op_num) {
+ if (finally_op_end && catch_op_num > finally_op_end) {
+ /* we are going out of current finally scope */
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ EX(delayed_exception) = NULL;
+ }
+ }
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
ZEND_VM_CONTINUE();
} else {
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ EX(delayed_exception) = NULL;
+ }
if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
ZEND_VM_DISPATCH_TO_HANDLER(ZEND_GENERATOR_RETURN);
} else {
@@ -5146,7 +5376,7 @@ ZEND_VM_HANDLER(143, ZEND_DECLARE_CONST, CONST, CONST)
name = GET_OP1_ZVAL_PTR(BP_VAR_R);
val = GET_OP2_ZVAL_PTR(BP_VAR_R);
- if ((Z_TYPE_P(val) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT || Z_TYPE_P(val) == IS_CONSTANT_ARRAY) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(val))) {
zval tmp;
zval *tmp_ptr = &tmp;
@@ -5162,7 +5392,7 @@ ZEND_VM_HANDLER(143, ZEND_DECLARE_CONST, CONST, CONST)
zval_copy_ctor(&c.value);
}
c.flags = CONST_CS; /* non persistent, case sensetive */
- c.name = IS_INTERNED(Z_STRVAL_P(name)) ? Z_STRVAL_P(name) : zend_strndup(Z_STRVAL_P(name), Z_STRLEN_P(name));
+ c.name = str_strndup(Z_STRVAL_P(name), Z_STRLEN_P(name));
c.name_len = Z_STRLEN_P(name)+1;
c.module_number = PHP_USER_CONSTANT;
@@ -5280,14 +5510,14 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
generator->value = *value_ptr;
}
- FREE_OP1_IF_VAR();
+ FREE_OP1_VAR_PTR();
}
} else {
zval *value = GET_OP1_ZVAL_PTR(BP_VAR_R);
/* Consts, temporary variables and references need copying */
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -5300,12 +5530,13 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
}
generator->value = copy;
+ FREE_OP1_IF_VAR();
} else {
- Z_ADDREF_P(value);
+ if (OP1_TYPE == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- FREE_OP1_IF_VAR();
}
} else {
/* If no value was specified yield null */
@@ -5376,10 +5607,10 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
ZEND_VM_HANDLER(159, ZEND_DISCARD_EXCEPTION, ANY, ANY)
{
- if (EG(prev_exception) != NULL) {
+ if (EX(delayed_exception) != NULL) {
/* discard the previously thrown exception */
- zval_ptr_dtor(&EG(prev_exception));
- EG(prev_exception) = NULL;
+ zval_ptr_dtor(&EX(delayed_exception));
+ EX(delayed_exception) = NULL;
}
ZEND_VM_NEXT_OPCODE();
@@ -5396,6 +5627,7 @@ ZEND_VM_HANDLER(162, ZEND_FAST_CALL, ANY, ANY)
ZEND_VM_CONTINUE();
}
EX(fast_ret) = opline + 1;
+ EX(delayed_exception) = NULL;
ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
ZEND_VM_CONTINUE();
}
@@ -5412,16 +5644,17 @@ ZEND_VM_HANDLER(163, ZEND_FAST_RET, ANY, ANY)
if (opline->extended_value == ZEND_FAST_RET_TO_FINALLY) {
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
ZEND_VM_CONTINUE();
- } else if (opline->extended_value == ZEND_FAST_RET_TO_CATCH) {
- zend_exception_restore(TSRMLS_C);
- ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
- ZEND_VM_CONTINUE();
- } else if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
- zend_exception_restore(TSRMLS_C);
- ZEND_VM_DISPATCH_TO_HANDLER(ZEND_GENERATOR_RETURN);
} else {
- zend_exception_restore(TSRMLS_C);
- ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ EG(exception) = EX(delayed_exception);
+ EX(delayed_exception) = NULL;
+ if (opline->extended_value == ZEND_FAST_RET_TO_CATCH) {
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
+ ZEND_VM_CONTINUE();
+ } else if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
+ ZEND_VM_DISPATCH_TO_HANDLER(ZEND_GENERATOR_RETURN);
+ } else {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ }
}
}
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 3a0a70e94..7e613cd6e 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -396,7 +396,7 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
EG(current_execute_data) = EX(prev_execute_data);
EG(opline_ptr) = NULL;
if (!EG(active_symbol_table)) {
- i_free_compiled_variables(execute_data);
+ i_free_compiled_variables(execute_data TSRMLS_CC);
}
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
@@ -481,20 +481,22 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
USE_OPLINE
zend_bool should_change_scope = 0;
zend_function *fbc = EX(function_state).function;
+ zend_uint num_args;
SAVE_OPLINE();
EX(object) = EX(call)->object;
if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", fbc->common.scope->name, fbc->common.function_name);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE(); /* Never reached */
}
if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) {
zend_error(E_DEPRECATED, "Function %s%s%s() is deprecated",
fbc->common.scope ? fbc->common.scope->name : "",
fbc->common.scope ? "::" : "",
fbc->common.function_name);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
}
}
if (fbc->common.scope &&
@@ -504,6 +506,9 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
if (fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
/* FIXME: output identifiers properly */
zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically", fbc->common.scope->name, fbc->common.function_name);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
} else {
/* FIXME: output identifiers properly */
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
@@ -521,19 +526,22 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
EG(called_scope) = EX(call)->called_scope;
}
- EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
- zend_vm_stack_push((void*)(zend_uintptr_t)opline->extended_value TSRMLS_CC);
+ num_args = opline->extended_value + EX(call)->num_additional_args;
+ if (EX(call)->num_additional_args) {
+ EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
+ } else {
+ EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
+ zend_vm_stack_push((void*)(zend_uintptr_t) num_args TSRMLS_CC);
+ }
LOAD_OPLINE();
if (fbc->type == ZEND_INTERNAL_FUNCTION) {
- if (fbc->common.arg_info) {
- zend_uint i=0;
- zval **p = (zval**)EX(function_state).arguments;
- ulong arg_count = opline->extended_value;
+ if (fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) {
+ zend_uint i;
+ void **p = EX(function_state).arguments - num_args;
- while (arg_count>0) {
- zend_verify_arg_type(fbc, ++i, *(p-arg_count), 0 TSRMLS_CC);
- arg_count--;
+ for (i = 0; i < num_args; ++i, ++p) {
+ zend_verify_arg_type(fbc, i + 1, (zval *) *p, 0 TSRMLS_CC);
}
}
@@ -547,7 +555,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
if (!zend_execute_internal) {
/* saves one function call if zend_execute_internal is not used */
- fbc->internal_function.handler(opline->extended_value, ret->var.ptr, (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) ? &ret->var.ptr : NULL, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
+ fbc->internal_function.handler(num_args, ret->var.ptr, &ret->var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
} else {
zend_execute_internal(execute_data, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
}
@@ -597,7 +605,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
/* Not sure what should be done here if it's a static method */
if (EXPECTED(EX(object) != NULL)) {
- Z_OBJ_HT_P(EX(object))->call_method(fbc->common.function_name, opline->extended_value, EX_T(opline->result.var).var.ptr, &EX_T(opline->result.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
+ Z_OBJ_HT_P(EX(object))->call_method(fbc->common.function_name, num_args, EX_T(opline->result.var).var.ptr, &EX_T(opline->result.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
} else {
zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object");
}
@@ -697,6 +705,154 @@ static int ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_SEND_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+ zval *args;
+ int arg_num;
+ SAVE_OPLINE();
+
+ args = get_zval_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, BP_VAR_R);
+ arg_num = opline->op2.num + EX(call)->num_additional_args + 1;
+
+ switch (Z_TYPE_P(args)) {
+ case IS_ARRAY: {
+ HashTable *ht = Z_ARRVAL_P(args);
+ HashPosition pos;
+ zval **arg_ptr, *arg;
+
+ ZEND_VM_STACK_GROW_IF_NEEDED(zend_hash_num_elements(ht));
+
+ for (zend_hash_internal_pointer_reset_ex(ht, &pos);
+ zend_hash_get_current_data_ex(ht, (void **) &arg_ptr, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(ht, &pos), ++arg_num
+ ) {
+ char *name;
+ zend_uint name_len;
+ zend_ulong index;
+
+ if (zend_hash_get_current_key_ex(ht, &name, &name_len, &index, 0, &pos) == HASH_KEY_IS_STRING) {
+ zend_error(E_RECOVERABLE_ERROR, "Cannot unpack array with string keys");
+ FREE_OP(free_op1);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+ }
+
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(arg_ptr);
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ } else if (Z_ISREF_PP(arg_ptr)) {
+ ALLOC_ZVAL(arg);
+ MAKE_COPY_ZVAL(arg_ptr, arg);
+ } else {
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ }
+
+ zend_vm_stack_push(arg TSRMLS_CC);
+ EX(call)->num_additional_args++;
+ }
+ break;
+ }
+ case IS_OBJECT: {
+ zend_class_entry *ce = Z_OBJCE_P(args);
+ zend_object_iterator *iter;
+
+ if (!ce || !ce->get_iterator) {
+ zend_error(E_WARNING, "Only arrays and Traversables can be unpacked");
+ break;
+ }
+
+ iter = ce->get_iterator(ce, args, 0 TSRMLS_CC);
+ if (UNEXPECTED(!iter)) {
+ FREE_OP(free_op1);
+ if (!EG(exception)) {
+ zend_throw_exception_ex(
+ NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name
+ );
+ }
+ HANDLE_EXCEPTION();
+ }
+
+ if (iter->funcs->rewind) {
+ iter->funcs->rewind(iter TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ goto unpack_iter_dtor;
+ }
+ }
+
+ for (; iter->funcs->valid(iter TSRMLS_CC) == SUCCESS; ++arg_num) {
+ zval **arg_ptr, *arg;
+
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ goto unpack_iter_dtor;
+ }
+
+ iter->funcs->get_current_data(iter, &arg_ptr TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ goto unpack_iter_dtor;
+ }
+
+ if (iter->funcs->get_current_key) {
+ zval key;
+ iter->funcs->get_current_key(iter, &key TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ goto unpack_iter_dtor;
+ }
+
+ if (Z_TYPE(key) == IS_STRING) {
+ zend_error(E_RECOVERABLE_ERROR,
+ "Cannot unpack Traversable with string keys");
+ zval_dtor(&key);
+ goto unpack_iter_dtor;
+ }
+
+ zval_dtor(&key);
+ }
+
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ zend_error(
+ E_WARNING, "Cannot pass by-reference argument %d of %s%s%s()"
+ " by unpacking a Traversable, passing by-value instead", arg_num,
+ EX(call)->fbc->common.scope ? EX(call)->fbc->common.scope->name : "",
+ EX(call)->fbc->common.scope ? "::" : "",
+ EX(call)->fbc->common.function_name
+ );
+ }
+
+ if (Z_ISREF_PP(arg_ptr)) {
+ ALLOC_ZVAL(arg);
+ MAKE_COPY_ZVAL(arg_ptr, arg);
+ } else {
+ arg = *arg_ptr;
+ Z_ADDREF_P(arg);
+ }
+
+ ZEND_VM_STACK_GROW_IF_NEEDED(1);
+ zend_vm_stack_push(arg TSRMLS_CC);
+ EX(call)->num_additional_args++;
+
+ iter->funcs->move_forward(iter TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ goto unpack_iter_dtor;
+ }
+ }
+
+unpack_iter_dtor:
+ iter->funcs->dtor(iter TSRMLS_CC);
+ break;
+ }
+ default:
+ zend_error(E_WARNING, "Only arrays and Traversables can be unpacked");
+ }
+
+ FREE_OP(free_op1);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -738,6 +894,37 @@ static int ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_RECV_VARIADIC_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_uint arg_num = opline->op1.num;
+ zend_uint arg_count = zend_vm_stack_get_args_count(TSRMLS_C);
+ zval **var_ptr, *params;
+
+ SAVE_OPLINE();
+
+ var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
+ Z_DELREF_PP(var_ptr);
+ MAKE_STD_ZVAL(params);
+ *var_ptr = params;
+
+ if (arg_num <= arg_count) {
+ array_init_size(params, arg_count - arg_num + 1);
+ } else {
+ array_init(params);
+ }
+
+ for (; arg_num <= arg_count; ++arg_num) {
+ zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
+ zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, *param, opline->extended_value TSRMLS_CC);
+ zend_hash_next_index_insert(Z_ARRVAL_P(params), param, sizeof(zval *), NULL);
+ Z_ADDREF_PP(param);
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_NEW_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -779,6 +966,7 @@ static int ZEND_FASTCALL ZEND_NEW_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
call->fbc = constructor;
call->object = object_zval;
call->called_scope = EX_T(opline->op1.var).class_entry;
+ call->num_additional_args = 0;
call->is_ctor_call = 1;
call->is_ctor_result_used = RETURN_VALUE_USED(opline);
EX(call) = call;
@@ -981,7 +1169,7 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
{
zend_uint op_num = EG(opline_before_exception)-EG(active_op_array)->opcodes;
int i;
- zend_uint catch_op_num = 0, finally_op_num = 0;
+ zend_uint catch_op_num = 0, finally_op_num = 0, finally_op_end = 0;
void **stack_frame;
/* Figure out where the next stack frame (which maybe contains pushed
@@ -1006,6 +1194,10 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
if (op_num < EG(active_op_array)->try_catch_array[i].finally_op) {
finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
}
+ if (op_num >= EG(active_op_array)->try_catch_array[i].finally_op &&
+ op_num < EG(active_op_array)->try_catch_array[i].finally_end) {
+ finally_op_end = EG(active_op_array)->try_catch_array[i].finally_end;
+ }
}
if (EX(call) >= EX(call_slots)) {
@@ -1067,14 +1259,29 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
EX(old_error_reporting) = NULL;
if (finally_op_num && (!catch_op_num || catch_op_num >= finally_op_num)) {
- zend_exception_save(TSRMLS_C);
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ }
+ EX(delayed_exception) = EG(exception);
+ EG(exception) = NULL;
EX(fast_ret) = NULL;
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
ZEND_VM_CONTINUE();
} else if (catch_op_num) {
+ if (finally_op_end && catch_op_num > finally_op_end) {
+ /* we are going out of current finally scope */
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ EX(delayed_exception) = NULL;
+ }
+ }
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
ZEND_VM_CONTINUE();
} else {
+ if (EX(delayed_exception)) {
+ zend_exception_set_previous(EG(exception), EX(delayed_exception) TSRMLS_CC);
+ EX(delayed_exception) = NULL;
+ }
if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
return ZEND_GENERATOR_RETURN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
@@ -1124,10 +1331,10 @@ static int ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS
static int ZEND_FASTCALL ZEND_DISCARD_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
- if (EG(prev_exception) != NULL) {
+ if (EX(delayed_exception) != NULL) {
/* discard the previously thrown exception */
- zval_ptr_dtor(&EG(prev_exception));
- EG(prev_exception) = NULL;
+ zval_ptr_dtor(&EX(delayed_exception));
+ EX(delayed_exception) = NULL;
}
ZEND_VM_NEXT_OPCODE();
@@ -1144,6 +1351,7 @@ static int ZEND_FASTCALL ZEND_FAST_CALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ZEND_VM_CONTINUE();
}
EX(fast_ret) = opline + 1;
+ EX(delayed_exception) = NULL;
ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
ZEND_VM_CONTINUE();
}
@@ -1160,16 +1368,17 @@ static int ZEND_FASTCALL ZEND_FAST_RET_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (opline->extended_value == ZEND_FAST_RET_TO_FINALLY) {
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
ZEND_VM_CONTINUE();
- } else if (opline->extended_value == ZEND_FAST_RET_TO_CATCH) {
- zend_exception_restore(TSRMLS_C);
- ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
- ZEND_VM_CONTINUE();
- } else if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
- zend_exception_restore(TSRMLS_C);
- return ZEND_GENERATOR_RETURN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
} else {
- zend_exception_restore(TSRMLS_C);
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ EG(exception) = EX(delayed_exception);
+ EX(delayed_exception) = NULL;
+ if (opline->extended_value == ZEND_FAST_RET_TO_CATCH) {
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[opline->op2.opline_num]);
+ ZEND_VM_CONTINUE();
+ } else if (UNEXPECTED((EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) != 0)) {
+ return ZEND_GENERATOR_RETURN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ } else {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
}
}
@@ -1229,10 +1438,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
} else {
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
}
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
/*CHECK_EXCEPTION();*/
ZEND_VM_NEXT_OPCODE();
} else {
@@ -1259,8 +1471,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_CONST != IS_CONST && IS_CONST != IS_TMP_VAR &&
@@ -1270,15 +1484,18 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
if (call->object) {
Z_ADDREF_P(call->object);
}
- if (IS_CONST == IS_VAR && 0 &&
+ if (IS_CONST == IS_VAR && 0 && Z_REFCOUNT_P(function_name) == 1 &&
call->fbc->common.fn_flags & ZEND_ACC_CLOSURE) {
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_CONST != IS_CONST &&
@@ -1344,6 +1561,8 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
if (UNEXPECTED(call->fbc == NULL)) {
zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, Z_STRVAL_PP(method));
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -1383,7 +1602,9 @@ static int ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPC
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
+
EX(call) = call;
ZEND_VM_NEXT_OPCODE();
}
@@ -1400,8 +1621,7 @@ static int ZEND_FASTCALL ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_
if (param == NULL) {
ALLOC_ZVAL(assignment_value);
*assignment_value = *opline->op2.zv;
- if ((Z_TYPE_P(assignment_value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT ||
- Z_TYPE_P(assignment_value)==IS_CONSTANT_ARRAY) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(assignment_value))) {
Z_SET_REFCOUNT_P(assignment_value, 1);
zval_update_constant(&assignment_value, 0 TSRMLS_CC);
} else {
@@ -1554,10 +1774,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
} else {
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
}
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
/*CHECK_EXCEPTION();*/
ZEND_VM_NEXT_OPCODE();
} else {
@@ -1582,10 +1805,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
}
efree(lcname);
zval_dtor(free_op2.var);
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_TMP_VAR != IS_CONST && IS_TMP_VAR != IS_TMP_VAR &&
@@ -1595,15 +1821,18 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
if (call->object) {
Z_ADDREF_P(call->object);
}
- if (IS_TMP_VAR == IS_VAR && 1 &&
+ if (IS_TMP_VAR == IS_VAR && 1 && Z_REFCOUNT_P(function_name) == 1 &&
call->fbc->common.fn_flags & ZEND_ACC_CLOSURE) {
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
zval_dtor(free_op2.var);
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_TMP_VAR != IS_CONST &&
@@ -1669,8 +1898,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
if (UNEXPECTED(call->fbc == NULL)) {
zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, Z_STRVAL_PP(method));
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -1719,7 +1951,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
zend_error_noreturn(E_ERROR, "Class name must be a valid object or a string");
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -1741,10 +1973,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
} else {
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
}
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
/*CHECK_EXCEPTION();*/
ZEND_VM_NEXT_OPCODE();
} else {
@@ -1768,11 +2003,14 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", function_name_strval);
}
efree(lcname);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_VAR != IS_CONST && IS_VAR != IS_TMP_VAR &&
@@ -1782,15 +2020,18 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
if (call->object) {
Z_ADDREF_P(call->object);
}
- if (IS_VAR == IS_VAR && (free_op2.var != NULL) &&
+ if (IS_VAR == IS_VAR && (free_op2.var != NULL) && Z_REFCOUNT_P(function_name) == 1 &&
call->fbc->common.fn_flags & ZEND_ACC_CLOSURE) {
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_VAR != IS_CONST &&
@@ -1856,9 +2097,12 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
if (UNEXPECTED(call->fbc == NULL)) {
zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, Z_STRVAL_PP(method));
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -1966,10 +2210,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
} else {
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
}
+
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
/*CHECK_EXCEPTION();*/
ZEND_VM_NEXT_OPCODE();
} else {
@@ -1996,8 +2243,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_CV != IS_CONST && IS_CV != IS_TMP_VAR &&
@@ -2007,15 +2256,18 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
if (call->object) {
Z_ADDREF_P(call->object);
}
- if (IS_CV == IS_VAR && 0 &&
+ if (IS_CV == IS_VAR && 0 && Z_REFCOUNT_P(function_name) == 1 &&
call->fbc->common.fn_flags & ZEND_ACC_CLOSURE) {
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (IS_CV != IS_CONST &&
@@ -2081,6 +2333,8 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
if (UNEXPECTED(call->fbc == NULL)) {
zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, Z_STRVAL_PP(method));
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -2320,9 +2574,11 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
} else {
CACHE_PTR(opline->op1.literal->cache_slot, EX(function_state).function);
}
+
call->fbc = EX(function_state).function;
call->object = NULL;
call->called_scope = NULL;
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -2339,9 +2595,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
retval_ptr = opline->op1.zv;
if (!EG(return_value_ptr_ptr)) {
- if (IS_CONST == IS_TMP_VAR) {
- }
} else {
if (IS_CONST == IS_CONST ||
IS_CONST == IS_TMP_VAR ||
@@ -2354,18 +2608,23 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
+
} else if ((IS_CONST == IS_CV || IS_CONST == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
+ if (IS_CONST == IS_VAR) {
+ Z_DELREF_P(retval_ptr);
+ }
ALLOC_INIT_ZVAL(ret);
*EG(return_value_ptr_ptr) = ret;
} else {
*EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(retval_ptr);
+ }
}
}
-
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -2379,7 +2638,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
SAVE_OPLINE();
do {
- if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR ||
+ (IS_CONST == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -2475,10 +2735,13 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
USE_OPLINE
SAVE_OPLINE();
- if (opline->extended_value==ZEND_DO_FCALL_BY_NAME
- && ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.opline_num);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ }
}
+
{
zval *valptr;
zval *value;
@@ -2570,7 +2833,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
@@ -2728,7 +2991,6 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
EX(original_return_value) = EG(return_value_ptr_ptr);
EG(active_op_array) = new_op_array;
if (RETURN_VALUE_USED(opline)) {
- EX_T(opline->result.var).var.ptr = NULL;
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
} else {
@@ -2766,7 +3028,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
ALLOC_ZVAL(retval);
ZVAL_BOOL(retval, failure_retval);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
ZEND_VM_NEXT_OPCODE();
}
@@ -2828,19 +3090,27 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
ce = Z_OBJCE_P(array_ptr);
if (!ce || !ce->get_iterator) {
- Z_ADDREF_P(array_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(array_ptr);
+ }
}
} else if (IS_CONST == IS_CONST ||
- ((IS_CONST == IS_CV || IS_CONST == IS_VAR) &&
+ (IS_CONST == IS_CV &&
!Z_ISREF_P(array_ptr) &&
- Z_REFCOUNT_P(array_ptr) > 1)) {
+ Z_REFCOUNT_P(array_ptr) > 1) ||
+ (IS_CONST == IS_VAR &&
+ !Z_ISREF_P(array_ptr) &&
+ Z_REFCOUNT_P(array_ptr) > 2)) {
zval *tmp;
+ if (IS_CONST == IS_VAR) {
+ Z_DELREF_P(array_ptr);
+ }
ALLOC_ZVAL(tmp);
INIT_PZVAL_COPY(tmp, array_ptr);
zval_copy_ctor(tmp);
array_ptr = tmp;
- } else {
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(array_ptr);
}
}
@@ -2848,10 +3118,15 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
if (ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
+ if (IS_CONST == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
+
+ }
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
+ if (IS_CONST == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
}
@@ -2868,14 +3143,18 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
iter->funcs->rewind(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_CONST == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
}
is_empty = iter->funcs->valid(iter TSRMLS_CC) != SUCCESS;
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_CONST == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
iter->index = -1; /* will be set to 0 before using next handler */
@@ -2905,6 +3184,9 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
is_empty = 1;
}
+ if (IS_CONST == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+
+ }
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
} else {
@@ -3370,10 +3652,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_CONST(int type
*/
if (IS_CONST == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -3426,7 +3706,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_CONST(int type
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -3466,7 +3746,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CONST_CONST(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CONST_CONST(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -3486,14 +3766,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_
zval *container;
SAVE_OPLINE();
-
- if (IS_CONST == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = opline->op1.zv;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+ if (IS_CONST != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -3509,13 +3787,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
CHECK_EXCEPTION();
@@ -3627,7 +3905,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -3638,6 +3916,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -3651,9 +3931,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER
SAVE_OPLINE();
- if (IS_CONST==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
opline->op2.zv TSRMLS_CC);
@@ -3732,8 +4009,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
}
if (EXPECTED(zend_hash_quick_find(&ce->constants_table, Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv)+1, Z_HASH_P(opline->op2.zv), (void **) &value) == SUCCESS)) {
- if (Z_TYPE_PP(value) == IS_CONSTANT_ARRAY ||
- (Z_TYPE_PP(value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_PP(value))) {
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
@@ -3747,7 +4023,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
}
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, *value);
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
- } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && strcmp(Z_STRVAL_P(opline->op2.zv), "class") == 0) {
+ } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && memcmp(Z_STRVAL_P(opline->op2.zv), "class", sizeof("class") - 1) == 0) {
/* "class" is assigned as a case-sensitive keyword from zend_do_resolve_class_name */
ZVAL_STRINGL(&EX_T(opline->result.var).tmp_var, ce->name, ce->name_length, 1);
} else {
@@ -3790,7 +4066,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_O
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -3815,11 +4092,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -3838,8 +4111,6 @@ num_index:
}
if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -4034,7 +4305,7 @@ static int ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCOD
name = opline->op1.zv;
val = opline->op2.zv;
- if ((Z_TYPE_P(val) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT || Z_TYPE_P(val) == IS_CONSTANT_ARRAY) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_P(val))) {
zval tmp;
zval *tmp_ptr = &tmp;
@@ -4050,7 +4321,7 @@ static int ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCOD
zval_copy_ctor(&c.value);
}
c.flags = CONST_CS; /* non persistent, case sensetive */
- c.name = IS_INTERNED(Z_STRVAL_P(name)) ? Z_STRVAL_P(name) : zend_strndup(Z_STRVAL_P(name), Z_STRLEN_P(name));
+ c.name = str_strndup(Z_STRVAL_P(name), Z_STRLEN_P(name));
c.name_len = Z_STRLEN_P(name)+1;
c.module_number = PHP_USER_CONSTANT;
@@ -4134,7 +4405,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLE
/* Consts, temporary variables and references need copying */
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -4147,11 +4418,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLE
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -4502,14 +4775,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HA
zval *container;
SAVE_OPLINE();
-
- if (IS_CONST == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = opline->op1.zv;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
+ if (IS_CONST != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4619,7 +4890,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -4630,6 +4901,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -4643,9 +4916,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
zend_free_op free_op2;
SAVE_OPLINE();
- if (IS_CONST==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
@@ -4686,7 +4956,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMP_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -4711,11 +4982,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -4734,8 +5001,6 @@ num_index:
}
if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -4827,7 +5092,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
/* Consts, temporary variables and references need copying */
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -4840,11 +5105,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -4922,7 +5189,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4937,7 +5204,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4952,7 +5219,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4967,7 +5234,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4982,7 +5249,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4997,7 +5264,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5012,7 +5279,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5027,7 +5294,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5042,7 +5309,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5059,7 +5326,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCO
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5075,7 +5342,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5091,7 +5358,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5107,7 +5374,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAN
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5123,7 +5390,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_O
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5138,7 +5405,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5153,7 +5420,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5168,7 +5435,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5183,7 +5450,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5243,10 +5510,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_VAR(int type,
*/
if (IS_CONST == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -5299,7 +5564,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_VAR(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -5339,7 +5604,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CONST_VAR(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CONST_VAR(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5359,14 +5624,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA
zval *container;
SAVE_OPLINE();
-
- if (IS_CONST == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = opline->op1.zv;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (IS_CONST != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5455,7 +5718,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
}
}
if (IS_VAR != IS_CONST) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
if (UNEXPECTED(ce->constructor == NULL)) {
@@ -5476,7 +5739,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -5487,6 +5750,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -5500,14 +5765,11 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
zend_free_op free_op2;
SAVE_OPLINE();
- if (IS_CONST==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5543,7 +5805,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_VAR_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -5568,11 +5831,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -5585,14 +5844,12 @@ num_index:
/* do nothing */
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -5847,7 +6104,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
/* Consts, temporary variables and references need copying */
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -5860,11 +6117,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -5903,7 +6162,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -5988,10 +6247,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int typ
*/
if (IS_CONST == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -6044,7 +6301,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int typ
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -6084,7 +6341,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER(ZEND_OPC
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CONST_UNUSED(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CONST_UNUSED(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6202,7 +6459,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -6213,6 +6470,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -6251,7 +6510,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -6276,11 +6536,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -6299,8 +6555,6 @@ num_index:
}
if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -6573,7 +6827,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDL
/* Consts, temporary variables and references need copying */
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -6586,11 +6840,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDL
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -6941,14 +7197,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HAN
zval *container;
SAVE_OPLINE();
-
- if (IS_CONST == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = opline->op1.zv;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+ if (IS_CONST != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -7058,7 +7312,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -7069,6 +7323,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -7142,9 +7398,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
SAVE_OPLINE();
- if (IS_CONST==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
@@ -7184,7 +7437,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCO
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CONST == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -7209,11 +7463,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -7232,8 +7482,6 @@ num_index:
}
if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -7325,7 +7573,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_A
/* Consts, temporary variables and references need copying */
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -7338,11 +7586,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_A
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -7643,9 +7893,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
- if (IS_TMP_VAR == IS_TMP_VAR) {
- zval_dtor(free_op1.var);
- }
+ zval_dtor(free_op1.var);
} else {
if (IS_TMP_VAR == IS_CONST ||
IS_TMP_VAR == IS_TMP_VAR ||
@@ -7658,18 +7906,23 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
+
} else if ((IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
+ if (IS_TMP_VAR == IS_VAR) {
+ Z_DELREF_P(retval_ptr);
+ }
ALLOC_INIT_ZVAL(ret);
*EG(return_value_ptr_ptr) = ret;
} else {
*EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(retval_ptr);
+ }
}
}
-
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -7683,7 +7936,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
SAVE_OPLINE();
do {
- if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR ||
+ (IS_TMP_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -7779,10 +8033,13 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
USE_OPLINE
SAVE_OPLINE();
- if (opline->extended_value==ZEND_DO_FCALL_BY_NAME
- && ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.opline_num);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ }
}
+
{
zval *valptr;
zval *value;
@@ -7875,7 +8132,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
@@ -8033,7 +8290,6 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
EX(original_return_value) = EG(return_value_ptr_ptr);
EG(active_op_array) = new_op_array;
if (RETURN_VALUE_USED(opline)) {
- EX_T(opline->result.var).var.ptr = NULL;
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
} else {
@@ -8071,7 +8327,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
ALLOC_ZVAL(retval);
ZVAL_BOOL(retval, failure_retval);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
ZEND_VM_NEXT_OPCODE();
}
@@ -8133,19 +8389,27 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
ce = Z_OBJCE_P(array_ptr);
if (!ce || !ce->get_iterator) {
- Z_ADDREF_P(array_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(array_ptr);
+ }
}
} else if (IS_TMP_VAR == IS_CONST ||
- ((IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) &&
+ (IS_TMP_VAR == IS_CV &&
+ !Z_ISREF_P(array_ptr) &&
+ Z_REFCOUNT_P(array_ptr) > 1) ||
+ (IS_TMP_VAR == IS_VAR &&
!Z_ISREF_P(array_ptr) &&
- Z_REFCOUNT_P(array_ptr) > 1)) {
+ Z_REFCOUNT_P(array_ptr) > 2)) {
zval *tmp;
+ if (IS_TMP_VAR == IS_VAR) {
+ Z_DELREF_P(array_ptr);
+ }
ALLOC_ZVAL(tmp);
INIT_PZVAL_COPY(tmp, array_ptr);
zval_copy_ctor(tmp);
array_ptr = tmp;
- } else {
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(array_ptr);
}
}
@@ -8153,10 +8417,15 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
+ if (IS_TMP_VAR == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
+
+ }
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
+ if (IS_TMP_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
}
@@ -8173,14 +8442,18 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
iter->funcs->rewind(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_TMP_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
}
is_empty = iter->funcs->valid(iter TSRMLS_CC) != SUCCESS;
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_TMP_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
iter->index = -1; /* will be set to 0 before using next handler */
@@ -8210,6 +8483,9 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
is_empty = 1;
}
+ if (IS_TMP_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+
+ }
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
} else {
@@ -8727,10 +9003,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_CONST(int type,
*/
if (IS_TMP_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -8783,7 +9057,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_CONST(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -8823,7 +9097,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_TMP_CONST(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_TMP_CONST(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8843,14 +9117,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HA
zval *container;
SAVE_OPLINE();
-
- if (IS_TMP_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
- zval_dtor(free_op1.var);
+ if (IS_TMP_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_dtor(free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -8866,13 +9138,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
CHECK_EXCEPTION();
@@ -8996,6 +9268,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -9010,9 +9284,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
zend_free_op free_op1;
SAVE_OPLINE();
- if (IS_TMP_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
@@ -9052,7 +9323,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -9077,11 +9349,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -9100,8 +9368,6 @@ num_index:
}
if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -9356,7 +9622,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
/* Consts, temporary variables and references need copying */
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -9369,11 +9635,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -9724,14 +9992,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAND
zval *container;
SAVE_OPLINE();
-
- if (IS_TMP_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
- zval_dtor(free_op1.var);
+ if (IS_TMP_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_dtor(free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -9852,6 +10118,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -9867,9 +10135,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- if (IS_TMP_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
@@ -9910,7 +10175,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMP_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -9935,11 +10201,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -9958,8 +10220,6 @@ num_index:
}
if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -10051,7 +10311,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
/* Consts, temporary variables and references need copying */
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -10064,11 +10324,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -10146,7 +10408,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10161,7 +10423,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10176,7 +10438,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10191,7 +10453,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10206,7 +10468,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10221,7 +10483,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10236,7 +10498,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10251,7 +10513,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10266,7 +10528,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10283,7 +10545,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10299,7 +10561,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10315,7 +10577,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10331,7 +10593,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDL
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10347,7 +10609,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPC
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10362,7 +10624,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10377,7 +10639,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10392,7 +10654,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10407,7 +10669,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10467,10 +10729,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_VAR(int type, ZE
*/
if (IS_TMP_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -10523,7 +10783,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_VAR(int type, ZE
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -10563,7 +10823,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_H
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_TMP_VAR(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_TMP_VAR(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10583,14 +10843,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND
zval *container;
SAVE_OPLINE();
-
- if (IS_TMP_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- zval_dtor(free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (IS_TMP_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_dtor(free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10634,7 +10892,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're
* string offsets or overloaded objects
*/
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -10692,7 +10950,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -10711,10 +10969,12 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -10726,14 +10986,11 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- if (IS_TMP_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10769,7 +11026,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -10794,11 +11052,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -10811,14 +11065,12 @@ num_index:
/* do nothing */
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -11073,7 +11325,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
/* Consts, temporary variables and references need copying */
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -11086,11 +11338,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -11129,7 +11383,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -11214,10 +11468,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type,
*/
if (IS_TMP_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -11270,7 +11522,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -11310,7 +11562,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCOD
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_TMP_UNUSED(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_TMP_UNUSED(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11354,7 +11606,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -11379,11 +11632,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -11402,8 +11651,6 @@ num_index:
}
if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -11658,7 +11905,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
/* Consts, temporary variables and references need copying */
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -11671,11 +11918,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -12026,14 +12275,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDL
zval *container;
SAVE_OPLINE();
-
- if (IS_TMP_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
- zval_dtor(free_op1.var);
+ if (IS_TMP_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_dtor(free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12153,6 +12400,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -12167,9 +12416,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
zend_free_op free_op1;
SAVE_OPLINE();
- if (IS_TMP_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
@@ -12209,7 +12455,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -12234,11 +12481,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -12257,8 +12500,6 @@ num_index:
}
if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -12350,7 +12591,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
/* Consts, temporary variables and references need copying */
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -12363,11 +12604,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -12443,7 +12686,7 @@ static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
bitwise_not_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12456,7 +12699,7 @@ static int ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
SAVE_OPLINE();
boolean_not_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12476,9 +12719,9 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12500,10 +12743,10 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12523,9 +12766,9 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12547,10 +12790,10 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12569,7 +12812,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
ZVAL_NULL(&EX_T(opline->result.var).tmp_var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12593,7 +12836,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
fast_increment_function(*var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12612,7 +12855,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
ZVAL_NULL(&EX_T(opline->result.var).tmp_var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12636,7 +12879,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
fast_decrement_function(*var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12655,7 +12898,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
zend_print_variable(z);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12682,7 +12925,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12712,7 +12955,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12742,7 +12985,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12776,7 +13019,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12807,7 +13050,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12848,9 +13091,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
- if (IS_VAR == IS_TMP_VAR) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- }
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CONST ||
IS_VAR == IS_TMP_VAR ||
@@ -12863,18 +13104,23 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if ((IS_VAR == IS_CV || IS_VAR == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
+ if (IS_VAR == IS_VAR) {
+ Z_DELREF_P(retval_ptr);
+ }
ALLOC_INIT_ZVAL(ret);
*EG(return_value_ptr_ptr) = ret;
} else {
*EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(retval_ptr);
+ }
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -12888,14 +13134,15 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
SAVE_OPLINE();
do {
- if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR ||
+ (IS_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
if (IS_VAR == IS_TMP_VAR) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
} else if (!0) { /* Not a temp var */
zval *ret;
@@ -12945,7 +13192,7 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
} while (0);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -12976,7 +13223,7 @@ static int ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_throw_exception_object(exception TSRMLS_CC);
zend_exception_restore(TSRMLS_C);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
@@ -12988,21 +13235,26 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_AR
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (varptr == &EG(uninitialized_zval)) {
- ALLOC_ZVAL(varptr);
- INIT_ZVAL(*varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
+ if (IS_VAR == IS_VAR) {
+ Z_DELREF_P(varptr);
+ }
+ ALLOC_INIT_ZVAL(varptr);
} else if (PZVAL_IS_REF(varptr)) {
- zval *original_var = varptr;
+ if (IS_VAR == IS_CV ||
+ (IS_VAR == IS_VAR && Z_REFCOUNT_P(varptr) > 2)) {
+ zval *original_var = varptr;
- ALLOC_ZVAL(varptr);
- ZVAL_COPY_VALUE(varptr, original_var);
- Z_UNSET_ISREF_P(varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
- zval_copy_ctor(varptr);
+ ALLOC_ZVAL(varptr);
+ INIT_PZVAL_COPY(varptr, original_var);
+ zval_copy_ctor(varptr);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else {
+ Z_UNSET_ISREF_P(varptr);
+ }
+ } else if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(varptr);
}
- Z_ADDREF_P(varptr);
zend_vm_stack_push(varptr TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* for string offsets */
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13013,39 +13265,36 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
USE_OPLINE
zend_free_op free_op1;
zval *varptr;
+ int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
if (!(opline->extended_value & ZEND_ARG_SEND_BY_REF)) {
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
- } else if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- }
-
- if (IS_VAR == IS_VAR &&
- (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
- EX_T(opline->op1.var).var.fcall_returned_reference &&
- EX_T(opline->op1.var).var.ptr) {
- varptr = EX_T(opline->op1.var).var.ptr;
- PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
} else {
- varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
+
+ varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
- (PZVAL_IS_REF(varptr) ||
- (Z_REFCOUNT_P(varptr) == 1 && (IS_VAR == IS_CV || free_op1.var)))) {
+ (PZVAL_IS_REF(varptr) || Z_REFCOUNT_P(varptr) == 1)) {
Z_SET_ISREF_P(varptr);
- Z_ADDREF_P(varptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(varptr);
+ }
zend_vm_stack_push(varptr TSRMLS_CC);
} else {
zval *valptr;
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
ALLOC_ZVAL(valptr);
@@ -13053,9 +13302,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
if (!0) {
zval_copy_ctor(valptr);
}
+ zval_ptr_dtor_nogc(&free_op1.var);
zend_vm_stack_push(valptr TSRMLS_CC);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13082,9 +13331,11 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
- EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
- !ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr);
@@ -13092,7 +13343,7 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
Z_ADDREF_P(varptr);
zend_vm_stack_push(varptr TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13101,9 +13352,11 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
{
USE_OPLINE
- if ((opline->extended_value == ZEND_DO_FCALL_BY_NAME)
- && ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
SAVE_OPLINE();
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -13118,7 +13371,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13192,10 +13445,10 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13237,7 +13490,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (use_copy) {
ZVAL_COPY_VALUE(result, &var_copy);
if (0) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
} else {
ZVAL_COPY_VALUE(result, expr);
@@ -13254,7 +13507,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
convert_to_object(result);
break;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13343,14 +13596,13 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
if (tmp_inc_filename) {
zval_ptr_dtor(&tmp_inc_filename);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
} else if (EXPECTED(new_op_array != NULL)) {
EX(original_return_value) = EG(return_value_ptr_ptr);
EG(active_op_array) = new_op_array;
if (RETURN_VALUE_USED(opline)) {
- EX_T(opline->result.var).var.ptr = NULL;
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
} else {
@@ -13388,7 +13640,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
ALLOC_ZVAL(retval);
ZVAL_BOOL(retval, failure_retval);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
ZEND_VM_NEXT_OPCODE();
}
@@ -13450,19 +13702,27 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
ce = Z_OBJCE_P(array_ptr);
if (!ce || !ce->get_iterator) {
- Z_ADDREF_P(array_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(array_ptr);
+ }
}
} else if (IS_VAR == IS_CONST ||
- ((IS_VAR == IS_CV || IS_VAR == IS_VAR) &&
+ (IS_VAR == IS_CV &&
+ !Z_ISREF_P(array_ptr) &&
+ Z_REFCOUNT_P(array_ptr) > 1) ||
+ (IS_VAR == IS_VAR &&
!Z_ISREF_P(array_ptr) &&
- Z_REFCOUNT_P(array_ptr) > 1)) {
+ Z_REFCOUNT_P(array_ptr) > 2)) {
zval *tmp;
+ if (IS_VAR == IS_VAR) {
+ Z_DELREF_P(array_ptr);
+ }
ALLOC_ZVAL(tmp);
INIT_PZVAL_COPY(tmp, array_ptr);
zval_copy_ctor(tmp);
array_ptr = tmp;
- } else {
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(array_ptr);
}
}
@@ -13470,10 +13730,15 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
+ if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ }
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ }
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
}
@@ -13490,14 +13755,18 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
iter->funcs->rewind(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ }
HANDLE_EXCEPTION();
}
}
is_empty = iter->funcs->valid(iter TSRMLS_CC) != SUCCESS;
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ }
HANDLE_EXCEPTION();
}
iter->index = -1; /* will be set to 0 before using next handler */
@@ -13527,7 +13796,9 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
is_empty = 1;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ }
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
} else {
@@ -13659,7 +13930,7 @@ static int ZEND_FASTCALL ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
Z_ADDREF_PP(value);
} else {
PZVAL_LOCK(*value);
- AI_SET_PTR(&EX_T(opline->result.var), *value);
+ EX_T(opline->result.var).var.ptr = *value;
}
CHECK_EXCEPTION();
@@ -13682,7 +13953,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zend_print_variable(ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
#endif
zend_bailout();
@@ -13703,14 +13974,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (!0) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.opline_num);
#endif
ZEND_VM_JMP(opline->op2.jmp_addr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13738,14 +14009,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
zval_copy_ctor(EX_T(opline->result.var).var.ptr);
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.opline_num);
#endif
ZEND_VM_JMP(opline->op2.jmp_addr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13763,7 +14034,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
if (!0) {
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13791,7 +14062,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13812,7 +14083,7 @@ static int ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
result = 0;
}
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, result);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13826,7 +14097,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13841,7 +14112,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13856,7 +14127,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13871,7 +14142,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13886,7 +14157,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13901,7 +14172,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13916,7 +14187,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13931,7 +14202,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13946,7 +14217,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13963,7 +14234,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13979,7 +14250,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13995,7 +14266,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14011,7 +14282,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14027,7 +14298,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_O
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14042,7 +14313,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14057,7 +14328,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14072,7 +14343,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14087,7 +14358,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14118,7 +14389,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -14138,7 +14408,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -14177,7 +14446,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -14185,7 +14453,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -14198,7 +14465,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -14250,10 +14517,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -14278,17 +14545,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -14378,7 +14645,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14438,7 +14705,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14479,7 +14746,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14540,7 +14807,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14589,7 +14856,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14599,7 +14866,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -14610,10 +14877,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
*/
if (IS_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -14638,11 +14903,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -14666,7 +14931,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -14706,7 +14971,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_VAR_CONST(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_VAR_CONST(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14726,14 +14991,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
zval *container;
SAVE_OPLINE();
-
- if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14755,7 +15018,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -14789,7 +15052,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14804,7 +15067,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_IS TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14816,9 +15079,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -14827,7 +15089,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
zval *container;
@@ -14837,7 +15099,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14865,7 +15127,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -14900,7 +15162,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST(
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -14913,7 +15175,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST(
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -14922,7 +15184,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST(
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14959,7 +15221,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -15002,7 +15264,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15022,7 +15284,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -15035,7 +15297,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -15044,7 +15306,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15053,7 +15315,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -15078,7 +15340,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -15117,7 +15379,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -15152,7 +15414,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -15202,11 +15464,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -15214,7 +15476,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -15226,13 +15488,13 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -15258,11 +15520,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_VAR == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -15270,7 +15532,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_CONST == IS_TMP_VAR) {
@@ -15282,11 +15544,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -15365,10 +15627,12 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15479,7 +15743,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -15490,6 +15754,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -15503,9 +15769,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
zend_free_op free_op1;
SAVE_OPLINE();
- if (IS_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
@@ -15584,8 +15847,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
}
if (EXPECTED(zend_hash_quick_find(&ce->constants_table, Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv)+1, Z_HASH_P(opline->op2.zv), (void **) &value) == SUCCESS)) {
- if (Z_TYPE_PP(value) == IS_CONSTANT_ARRAY ||
- (Z_TYPE_PP(value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_PP(value))) {
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
@@ -15599,7 +15861,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
}
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, *value);
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
- } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && strcmp(Z_STRVAL_P(opline->op2.zv), "class") == 0) {
+ } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && memcmp(Z_STRVAL_P(opline->op2.zv), "class", sizeof("class") - 1) == 0) {
/* "class" is assigned as a case-sensitive keyword from zend_do_resolve_class_name */
ZVAL_STRINGL(&EX_T(opline->result.var).tmp_var, ce->name, ce->name_length, 1);
} else {
@@ -15642,7 +15904,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -15667,11 +15930,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -15689,9 +15948,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- } else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15760,7 +16017,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -15784,7 +16041,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15828,11 +16085,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -15883,7 +16136,7 @@ num_index_dim:
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15924,7 +16177,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15994,7 +16247,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -16027,7 +16280,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
offset = opline->op2.zv;
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -16054,11 +16306,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -16151,7 +16399,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16233,14 +16481,14 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
/* Consts, temporary variables and references need copying */
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -16253,12 +16501,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
- Z_ADDREF_P(value);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else {
/* If no value was specified yield null */
@@ -16335,7 +16584,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16350,7 +16599,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16365,7 +16614,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16380,7 +16629,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16395,7 +16644,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16410,7 +16659,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16425,7 +16674,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16440,7 +16689,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16455,7 +16704,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16472,7 +16721,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16488,7 +16737,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16504,7 +16753,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16520,7 +16769,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16536,7 +16785,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPC
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16551,7 +16800,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16566,7 +16815,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16581,7 +16830,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16596,7 +16845,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16627,7 +16876,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -16647,7 +16895,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -16686,7 +16933,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -16694,7 +16940,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -16707,7 +16952,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -16759,10 +17004,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -16787,18 +17032,18 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
zval_dtor(free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -16888,7 +17133,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -16948,7 +17193,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -16989,7 +17234,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
zval_dtor(free_op2.var);
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17050,7 +17295,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17072,14 +17317,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
zval *container;
SAVE_OPLINE();
-
- if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17101,7 +17344,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -17135,7 +17378,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17150,7 +17393,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17162,9 +17405,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -17173,7 +17415,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
zval *container;
@@ -17183,7 +17425,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17211,7 +17453,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -17246,7 +17488,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -17259,7 +17501,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -17268,7 +17510,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17305,7 +17547,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -17348,7 +17590,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17368,7 +17610,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -17381,7 +17623,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -17390,7 +17632,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17399,7 +17641,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -17424,7 +17666,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -17463,7 +17705,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -17498,7 +17740,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -17549,11 +17791,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -17561,7 +17803,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -17573,13 +17815,13 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -17605,11 +17847,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_VAR == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (1) {
@@ -17617,7 +17859,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_TMP_VAR == IS_TMP_VAR) {
@@ -17629,11 +17871,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -17712,11 +17954,13 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17827,7 +18071,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -17838,6 +18082,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -17851,9 +18097,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- if (IS_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
@@ -17894,7 +18137,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -17919,11 +18163,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -17941,9 +18181,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- } else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18002,11 +18240,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -18057,7 +18291,7 @@ num_index_dim:
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18098,7 +18332,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18116,7 +18350,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -18143,11 +18376,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -18240,7 +18469,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18322,14 +18551,14 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
/* Consts, temporary variables and references need copying */
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -18342,12 +18571,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
- Z_ADDREF_P(value);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else {
/* If no value was specified yield null */
@@ -18424,8 +18654,8 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18439,8 +18669,8 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18454,8 +18684,8 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18469,8 +18699,8 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18484,8 +18714,8 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18499,8 +18729,8 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18514,8 +18744,8 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18529,8 +18759,8 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18544,8 +18774,8 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18561,8 +18791,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18577,8 +18807,8 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18593,8 +18823,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18609,8 +18839,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18625,8 +18855,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPC
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18640,8 +18870,8 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18655,8 +18885,8 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18670,8 +18900,8 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18685,8 +18915,8 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18710,13 +18940,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -18736,7 +18965,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -18775,7 +19003,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -18783,7 +19010,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -18791,12 +19017,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -18848,10 +19074,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -18876,18 +19102,18 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -18972,12 +19198,12 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19035,9 +19261,9 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19076,9 +19302,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19137,9 +19363,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19188,7 +19414,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19198,7 +19424,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -19209,10 +19435,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
*/
if (IS_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -19237,11 +19461,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -19265,7 +19489,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -19305,7 +19529,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_H
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_VAR_VAR(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_VAR_VAR(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19325,14 +19549,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
zval *container;
SAVE_OPLINE();
-
- if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (IS_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19350,11 +19572,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -19384,11 +19606,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19402,8 +19624,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19415,9 +19637,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -19425,8 +19646,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
zval *container;
@@ -19435,8 +19656,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
}
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19460,11 +19681,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -19499,8 +19720,8 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -19512,16 +19733,16 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19553,12 +19774,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -19596,12 +19817,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19621,8 +19842,8 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -19634,16 +19855,16 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19652,7 +19873,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -19672,12 +19893,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -19711,12 +19932,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -19749,9 +19970,9 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property_name);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -19781,7 +20002,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property_name);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
zend_free_op free_op2, free_op_data1, free_op_data2;
@@ -19790,7 +20011,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
zval **variable_ptr_ptr;
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
@@ -19802,11 +20023,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -19814,7 +20035,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -19826,13 +20047,13 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -19858,11 +20079,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_VAR == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -19870,7 +20091,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_VAR == IS_TMP_VAR) {
@@ -19882,14 +20103,14 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19915,7 +20136,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
}
zend_error(E_STRICT, "Only variables should be assigned by reference");
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
HANDLE_EXCEPTION();
}
return ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -19939,11 +20160,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*variable_ptr_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
+ EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20001,7 +20222,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -20020,11 +20241,13 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20114,7 +20337,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
}
}
if (IS_VAR != IS_CONST) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
if (UNEXPECTED(ce->constructor == NULL)) {
@@ -20135,7 +20358,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -20146,6 +20369,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -20159,14 +20384,11 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- if (IS_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -20202,7 +20424,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -20227,11 +20450,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -20244,14 +20463,12 @@ num_index:
/* do nothing */
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- } else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20320,7 +20537,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -20344,7 +20561,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -20388,11 +20605,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -20416,7 +20629,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -20430,20 +20643,20 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20476,15 +20689,15 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20554,7 +20767,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -20587,7 +20800,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -20614,11 +20826,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -20647,7 +20855,7 @@ num_index_prop:
result = 1;
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
@@ -20670,7 +20878,7 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
@@ -20699,9 +20907,9 @@ num_index_prop:
}
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -20711,7 +20919,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20793,14 +21001,14 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
/* Consts, temporary variables and references need copying */
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -20813,12 +21021,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
- Z_ADDREF_P(value);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else {
/* If no value was specified yield null */
@@ -20857,7 +21066,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -20912,7 +21121,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -20932,7 +21140,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -20971,7 +21178,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -20979,7 +21185,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -20992,7 +21197,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -21044,10 +21249,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -21072,17 +21277,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -21177,7 +21382,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21187,7 +21392,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -21198,10 +21403,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
*/
if (IS_VAR == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -21226,11 +21429,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -21254,7 +21457,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -21294,7 +21497,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCOD
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_VAR_UNUSED(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_VAR_UNUSED(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21324,7 +21527,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -21358,7 +21561,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21370,9 +21573,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -21381,7 +21583,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
zval *container;
@@ -21391,7 +21593,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_R TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -21440,11 +21642,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -21452,7 +21654,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -21464,13 +21666,13 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -21582,7 +21784,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -21593,6 +21795,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -21631,7 +21835,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -21656,11 +21861,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -21678,9 +21879,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- } else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -21749,7 +21948,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -21773,7 +21972,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21842,7 +22041,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -21950,14 +22149,14 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
/* Consts, temporary variables and references need copying */
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -21970,12 +22169,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
}
generator->value = copy;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
- Z_ADDREF_P(value);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else {
/* If no value was specified yield null */
@@ -22052,7 +22252,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22067,7 +22267,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22082,7 +22282,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22097,7 +22297,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22112,7 +22312,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22127,7 +22327,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22142,7 +22342,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22157,7 +22357,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22172,7 +22372,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22189,7 +22389,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22205,7 +22405,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22221,7 +22421,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22237,7 +22437,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22253,7 +22453,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCO
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22268,7 +22468,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22283,7 +22483,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22298,7 +22498,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22313,7 +22513,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22344,7 +22544,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -22364,7 +22563,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -22403,7 +22601,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -22411,7 +22608,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -22424,7 +22620,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -22476,10 +22672,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -22504,17 +22700,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -22604,7 +22800,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22664,7 +22860,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22705,7 +22901,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22766,7 +22962,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22788,14 +22984,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
zval *container;
SAVE_OPLINE();
-
- if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22817,7 +23011,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -22851,7 +23045,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22866,7 +23060,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_IS TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22878,9 +23072,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -22889,7 +23082,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
zval *container;
@@ -22899,7 +23092,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22927,7 +23120,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -22962,7 +23155,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -22975,7 +23168,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -22984,7 +23177,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23021,7 +23214,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -23064,7 +23257,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23084,7 +23277,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -23097,7 +23290,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -23106,7 +23299,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23115,7 +23308,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -23140,7 +23333,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -23179,7 +23372,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -23214,7 +23407,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -23264,11 +23457,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -23276,7 +23469,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -23288,13 +23481,13 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -23320,11 +23513,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_VAR == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -23332,7 +23525,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_CV == IS_TMP_VAR) {
@@ -23344,11 +23537,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -23400,10 +23593,10 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*variable_ptr_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
+ EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23480,10 +23673,12 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23594,7 +23789,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_
/* We are calling method of the other (incompatible) class,
but passing $this. This is done for compatibility with php-4. */
if (call->fbc->common.fn_flags & ZEND_ACC_ALLOW_STATIC) {
- zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
+ zend_error(E_DEPRECATED, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
} else {
/* An internal function assumes $this is present and won't check that. So PHP would crash by allowing the call. */
zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically, assuming $this from incompatible context", call->fbc->common.scope->name, call->fbc->common.function_name);
@@ -23605,6 +23800,8 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_
call->called_scope = Z_OBJCE_P(call->object);
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -23618,9 +23815,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
zend_free_op free_op1;
SAVE_OPLINE();
- if (IS_VAR==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
@@ -23660,7 +23854,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+ zval_ptr_dtor_nogc(&free_op1.var);
+ } else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -23685,11 +23880,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -23707,9 +23898,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- } else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23768,11 +23957,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -23823,7 +24008,7 @@ num_index_dim:
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23864,7 +24049,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23882,7 +24067,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -23909,11 +24093,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -24006,7 +24186,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -24088,14 +24268,14 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
/* Consts, temporary variables and references need copying */
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -24108,12 +24288,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
generator->value = copy;
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
- Z_ADDREF_P(value);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else {
/* If no value was specified yield null */
@@ -24239,7 +24420,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
@@ -24294,7 +24475,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -24314,7 +24494,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -24353,7 +24532,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -24361,7 +24539,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -24425,7 +24602,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*bi
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -24453,7 +24630,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*bi
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -24746,7 +24923,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_CON
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -24759,7 +24936,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_CON
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -24866,7 +25043,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCOD
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -24879,7 +25056,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCOD
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -24896,7 +25073,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -25118,6 +25295,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_O
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -25196,8 +25375,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
}
if (EXPECTED(zend_hash_quick_find(&ce->constants_table, Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv)+1, Z_HASH_P(opline->op2.zv), (void **) &value) == SUCCESS)) {
- if (Z_TYPE_PP(value) == IS_CONSTANT_ARRAY ||
- (Z_TYPE_PP(value) & IS_CONSTANT_TYPE_MASK) == IS_CONSTANT) {
+ if (IS_CONSTANT_TYPE(Z_TYPE_PP(value))) {
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
@@ -25211,7 +25389,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
}
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, *value);
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
- } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && strcmp(Z_STRVAL_P(opline->op2.zv), "class") == 0) {
+ } else if (Z_STRLEN_P(opline->op2.zv) == sizeof("class")-1 && memcmp(Z_STRVAL_P(opline->op2.zv), "class", sizeof("class") - 1) == 0) {
/* "class" is assigned as a case-sensitive keyword from zend_do_resolve_class_name */
ZVAL_STRINGL(&EX_T(opline->result.var).tmp_var, ce->name, ce->name_length, 1);
} else {
@@ -25276,11 +25454,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_H
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -25388,7 +25562,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
-
offset = opline->op2.zv;
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -25415,11 +25588,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -25598,7 +25767,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDL
/* Consts, temporary variables and references need copying */
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -25611,11 +25780,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDL
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_UNUSED == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -25708,7 +25879,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -25728,7 +25898,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -25767,7 +25936,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -25775,7 +25943,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -25839,7 +26006,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*bina
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
zval_dtor(free_op2.var);
@@ -25867,7 +26034,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
zval_dtor(free_op2.var);
@@ -26161,7 +26328,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_TMP
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -26174,7 +26341,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_TMP
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -26281,7 +26448,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -26294,7 +26461,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -26311,7 +26478,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMP_HANDLER(ZEND_O
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -26532,6 +26699,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -26594,11 +26763,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -26706,7 +26871,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
-
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -26733,11 +26897,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -26916,7 +27076,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER
/* Consts, temporary variables and references need copying */
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -26929,11 +27089,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_UNUSED == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -27020,13 +27182,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -27046,7 +27207,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -27085,7 +27245,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -27093,7 +27252,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -27101,7 +27259,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
@@ -27157,9 +27315,9 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -27185,9 +27343,9 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
@@ -27281,7 +27439,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
@@ -27344,7 +27502,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27385,7 +27543,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
CHECK_EXCEPTION();
@@ -27446,7 +27604,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27479,8 +27637,8 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -27492,12 +27650,12 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -27532,7 +27690,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27574,7 +27732,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27599,8 +27757,8 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -27612,12 +27770,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -27629,7 +27787,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -27649,7 +27807,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27688,7 +27846,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCO
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27725,7 +27883,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HA
if (0) {
zval_ptr_dtor(&property_name);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
/* assign_obj has two opcodes! */
@@ -27773,7 +27931,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDL
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're
* string offsets or overloaded objects
*/
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27831,7 +27989,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -27850,10 +28008,12 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27912,11 +28072,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -27940,7 +28096,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -27954,18 +28110,18 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27999,13 +28155,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -28024,7 +28180,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
-
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -28051,11 +28206,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -28084,7 +28235,7 @@ num_index_prop:
result = 1;
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
@@ -28107,7 +28258,7 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
@@ -28136,9 +28287,9 @@ num_index_prop:
}
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -28234,7 +28385,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
/* Consts, temporary variables and references need copying */
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -28247,11 +28398,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_UNUSED == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -28290,7 +28443,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -28345,7 +28498,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -28365,7 +28517,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -28404,7 +28555,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -28412,7 +28562,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -28476,7 +28625,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*b
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -28504,7 +28653,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -28661,7 +28810,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HAND
/* Consts, temporary variables and references need copying */
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -28674,11 +28823,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HAND
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_UNUSED == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -28771,7 +28922,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -28791,7 +28941,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -28830,7 +28979,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -28838,7 +28986,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -28902,7 +29049,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binar
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -28930,7 +29077,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -29223,7 +29370,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_CV(
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -29236,7 +29383,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_CV(
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -29343,7 +29490,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_H
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -29356,7 +29503,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_H
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -29373,7 +29520,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OP
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -29593,6 +29740,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCO
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -29654,11 +29803,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAND
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -29766,7 +29911,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
-
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -29793,11 +29937,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -29976,7 +30116,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_
/* Consts, temporary variables and references need copying */
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -29989,11 +30129,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_UNUSED == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -30102,7 +30244,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
CHECK_EXCEPTION();
@@ -30126,7 +30268,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
CHECK_EXCEPTION();
@@ -30148,7 +30290,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
CHECK_EXCEPTION();
@@ -30172,7 +30314,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
CHECK_EXCEPTION();
@@ -30455,9 +30597,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
- if (IS_CV == IS_TMP_VAR) {
- }
} else {
if (IS_CV == IS_CONST ||
IS_CV == IS_TMP_VAR ||
@@ -30470,18 +30610,23 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
+
} else if ((IS_CV == IS_CV || IS_CV == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
+ if (IS_CV == IS_VAR) {
+ Z_DELREF_P(retval_ptr);
+ }
ALLOC_INIT_ZVAL(ret);
*EG(return_value_ptr_ptr) = ret;
} else {
*EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(retval_ptr);
+ }
}
}
-
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -30495,7 +30640,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
SAVE_OPLINE();
do {
- if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR ||
+ (IS_CV == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -30594,21 +30740,26 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARG
varptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
if (varptr == &EG(uninitialized_zval)) {
- ALLOC_ZVAL(varptr);
- INIT_ZVAL(*varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
+ if (IS_CV == IS_VAR) {
+ Z_DELREF_P(varptr);
+ }
+ ALLOC_INIT_ZVAL(varptr);
} else if (PZVAL_IS_REF(varptr)) {
- zval *original_var = varptr;
+ if (IS_CV == IS_CV ||
+ (IS_CV == IS_VAR && Z_REFCOUNT_P(varptr) > 2)) {
+ zval *original_var = varptr;
+
+ ALLOC_ZVAL(varptr);
+ INIT_PZVAL_COPY(varptr, original_var);
+ zval_copy_ctor(varptr);
- ALLOC_ZVAL(varptr);
- ZVAL_COPY_VALUE(varptr, original_var);
- Z_UNSET_ISREF_P(varptr);
- Z_SET_REFCOUNT_P(varptr, 0);
- zval_copy_ctor(varptr);
+ } else {
+ Z_UNSET_ISREF_P(varptr);
+ }
+ } else if (IS_CV == IS_CV) {
+ Z_ADDREF_P(varptr);
}
- Z_ADDREF_P(varptr);
zend_vm_stack_push(varptr TSRMLS_CC);
- ; /* for string offsets */
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -30617,41 +30768,38 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARG
static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
- zend_free_op free_op1;
+
zval *varptr;
+ int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
if (!(opline->extended_value & ZEND_ARG_SEND_BY_REF)) {
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
- } else if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- }
-
- if (IS_CV == IS_VAR &&
- (opline->extended_value & ZEND_ARG_SEND_FUNCTION) &&
- EX_T(opline->op1.var).var.fcall_returned_reference &&
- EX_T(opline->op1.var).var.ptr) {
- varptr = EX_T(opline->op1.var).var.ptr;
- PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
} else {
- varptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
+ arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
+
+ varptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
EX_T(opline->op1.var).var.fcall_returned_reference) &&
varptr != &EG(uninitialized_zval) &&
- (PZVAL_IS_REF(varptr) ||
- (Z_REFCOUNT_P(varptr) == 1 && (IS_CV == IS_CV || free_op1.var)))) {
+ (PZVAL_IS_REF(varptr) || Z_REFCOUNT_P(varptr) == 1)) {
Z_SET_ISREF_P(varptr);
- Z_ADDREF_P(varptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(varptr);
+ }
zend_vm_stack_push(varptr TSRMLS_CC);
} else {
zval *valptr;
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
ALLOC_ZVAL(valptr);
@@ -30659,9 +30807,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
if (!0) {
zval_copy_ctor(valptr);
}
+
zend_vm_stack_push(valptr TSRMLS_CC);
}
-
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -30688,9 +30836,11 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
- EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
- !ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr);
@@ -30706,9 +30856,11 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
{
USE_OPLINE
- if ((opline->extended_value == ZEND_DO_FCALL_BY_NAME)
- && ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.opline_num)) {
- return ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
+ int arg_num = opline->op2.num + EX(call)->num_additional_args;
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ return ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
SAVE_OPLINE();
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -30786,7 +30938,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&retval);
} else {
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
}
@@ -30944,7 +31096,6 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
EX(original_return_value) = EG(return_value_ptr_ptr);
EG(active_op_array) = new_op_array;
if (RETURN_VALUE_USED(opline)) {
- EX_T(opline->result.var).var.ptr = NULL;
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
} else {
@@ -30982,7 +31133,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
ALLOC_ZVAL(retval);
ZVAL_BOOL(retval, failure_retval);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
ZEND_VM_NEXT_OPCODE();
}
@@ -31044,19 +31195,27 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
ce = Z_OBJCE_P(array_ptr);
if (!ce || !ce->get_iterator) {
- Z_ADDREF_P(array_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(array_ptr);
+ }
}
} else if (IS_CV == IS_CONST ||
- ((IS_CV == IS_CV || IS_CV == IS_VAR) &&
+ (IS_CV == IS_CV &&
+ !Z_ISREF_P(array_ptr) &&
+ Z_REFCOUNT_P(array_ptr) > 1) ||
+ (IS_CV == IS_VAR &&
!Z_ISREF_P(array_ptr) &&
- Z_REFCOUNT_P(array_ptr) > 1)) {
+ Z_REFCOUNT_P(array_ptr) > 2)) {
zval *tmp;
+ if (IS_CV == IS_VAR) {
+ Z_DELREF_P(array_ptr);
+ }
ALLOC_ZVAL(tmp);
INIT_PZVAL_COPY(tmp, array_ptr);
zval_copy_ctor(tmp);
array_ptr = tmp;
- } else {
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(array_ptr);
}
}
@@ -31064,10 +31223,15 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (ce && ce->get_iterator) {
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
+ if (IS_CV == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
+
+ }
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
+ if (IS_CV == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
}
@@ -31084,14 +31248,18 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
iter->funcs->rewind(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_CV == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
}
is_empty = iter->funcs->valid(iter TSRMLS_CC) != SUCCESS;
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
+ if (IS_CV == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+ }
HANDLE_EXCEPTION();
}
iter->index = -1; /* will be set to 0 before using next handler */
@@ -31121,6 +31289,9 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
is_empty = 1;
}
+ if (IS_CV == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
+
+ }
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
} else {
@@ -31577,7 +31748,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -31597,7 +31767,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -31636,7 +31805,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -31644,7 +31812,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -31708,7 +31875,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -31736,7 +31903,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -32068,10 +32235,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_CONST(int type, Z
*/
if (IS_CV == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -32124,7 +32289,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_CONST(int type, Z
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -32164,7 +32329,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CV_CONST(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CV_CONST(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32184,14 +32349,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
zval *container;
SAVE_OPLINE();
-
- if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+ if (IS_CV != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -32273,9 +32436,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPC
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
-
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -32357,7 +32519,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_CONST(Z
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -32370,7 +32532,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_CONST(Z
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -32477,7 +32639,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -32490,7 +32652,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -32507,7 +32669,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPC
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -32655,11 +32817,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -32667,7 +32829,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -32679,7 +32841,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -32711,11 +32873,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_CV == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -32723,7 +32885,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_CONST == IS_TMP_VAR) {
@@ -32735,7 +32897,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
@@ -32816,6 +32978,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCOD
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -32830,9 +32994,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
SAVE_OPLINE();
- if (IS_CV==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
@@ -32872,7 +33033,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCO
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -32897,11 +33059,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -32920,8 +33078,6 @@ num_index:
}
if ((IS_CV == IS_VAR || IS_CV == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -33058,11 +33214,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -33255,7 +33407,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
offset = opline->op2.zv;
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -33282,11 +33433,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -33465,7 +33612,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
/* Consts, temporary variables and references need copying */
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -33478,11 +33625,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -33851,7 +34000,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -33871,7 +34019,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -33910,7 +34057,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -33918,7 +34064,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -33982,7 +34127,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_o
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
zval_dtor(free_op2.var);
@@ -34010,7 +34155,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_o
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
zval_dtor(free_op2.var);
@@ -34295,14 +34440,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
zval *container;
SAVE_OPLINE();
-
- if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
+ if (IS_CV != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -34384,9 +34527,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
-
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -34468,7 +34610,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_TMP(ZEN
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -34481,7 +34623,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_TMP(ZEN
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -34588,7 +34730,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
zval_dtor(free_op2.var);
} else {
zval *retval;
@@ -34601,7 +34743,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (1) {
zval_ptr_dtor(&offset);
@@ -34618,7 +34760,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -34767,11 +34909,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -34779,7 +34921,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -34791,7 +34933,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -34823,11 +34965,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_CV == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (1) {
@@ -34835,7 +34977,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_TMP_VAR == IS_TMP_VAR) {
@@ -34847,7 +34989,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
@@ -34928,6 +35070,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -34943,9 +35087,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
zend_free_op free_op2;
SAVE_OPLINE();
- if (IS_CV==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
@@ -34986,7 +35127,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMP_HANDLER(ZEND_OPCODE
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -35011,11 +35153,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -35034,8 +35172,6 @@ num_index:
}
if ((IS_CV == IS_VAR || IS_CV == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -35094,11 +35230,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -35206,7 +35338,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -35233,11 +35364,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -35416,7 +35543,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
/* Consts, temporary variables and references need copying */
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -35429,11 +35556,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -35511,7 +35640,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35526,7 +35655,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35541,7 +35670,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35556,7 +35685,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35571,7 +35700,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35586,7 +35715,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35601,7 +35730,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35616,7 +35745,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35631,7 +35760,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35648,7 +35777,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35664,7 +35793,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35680,7 +35809,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35696,7 +35825,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35712,7 +35841,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCO
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35727,7 +35856,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35742,7 +35871,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35757,7 +35886,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35772,7 +35901,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35796,13 +35925,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -35822,7 +35950,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -35861,7 +35988,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -35869,7 +35995,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -35877,7 +36002,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
@@ -35933,9 +36058,9 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -35961,9 +36086,9 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
@@ -36057,7 +36182,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
@@ -36120,7 +36245,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36161,7 +36286,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
CHECK_EXCEPTION();
@@ -36222,7 +36347,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36294,10 +36419,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_VAR(int type, ZEN
*/
if (IS_CV == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -36350,7 +36473,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_VAR(int type, ZEN
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -36390,7 +36513,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HA
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CV_VAR(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CV_VAR(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36410,14 +36533,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
zval *container;
SAVE_OPLINE();
-
- if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (IS_CV != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -36435,7 +36556,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36468,7 +36589,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36486,7 +36607,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -36499,9 +36620,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
-
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -36509,7 +36629,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *container;
@@ -36519,7 +36639,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
}
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36544,7 +36664,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36583,8 +36703,8 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -36596,12 +36716,12 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -36636,7 +36756,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36678,7 +36798,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36703,8 +36823,8 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -36716,12 +36836,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -36733,7 +36853,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1, free_op2;
zval *property;
@@ -36753,7 +36873,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36792,7 +36912,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
if (0) {
zval_ptr_dtor(&property);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36829,7 +36949,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&property_name);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
/* assign_obj has two opcodes! */
@@ -36861,7 +36981,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&property_name);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
zend_free_op free_op2, free_op_data1, free_op_data2;
@@ -36870,7 +36990,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
zval **variable_ptr_ptr;
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
@@ -36882,11 +37002,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -36894,7 +37014,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -36906,7 +37026,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -36938,11 +37058,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_CV == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -36950,7 +37070,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_VAR == IS_TMP_VAR) {
@@ -36962,12 +37082,12 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
/* zend_assign_to_variable() always takes care of op2, never free it! */
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -36993,7 +37113,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
zend_error(E_STRICT, "Only variables should be assigned by reference");
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
HANDLE_EXCEPTION();
}
return ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -37017,10 +37137,10 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*variable_ptr_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
+ EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37078,7 +37198,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -37097,10 +37217,12 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37112,14 +37234,11 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
zend_free_op free_op2;
SAVE_OPLINE();
- if (IS_CV==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -37155,7 +37274,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -37180,11 +37300,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -37197,14 +37313,12 @@ num_index:
/* do nothing */
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_CV == IS_VAR || IS_CV == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37341,11 +37455,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -37369,7 +37479,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -37383,18 +37493,18 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -37428,13 +37538,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -37538,7 +37648,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -37565,11 +37674,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -37598,7 +37703,7 @@ num_index_prop:
result = 1;
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
@@ -37621,7 +37726,7 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
@@ -37650,9 +37755,9 @@ num_index_prop:
}
}
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -37748,7 +37853,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
/* Consts, temporary variables and references need copying */
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -37761,11 +37866,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -37804,7 +37911,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -37859,7 +37966,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -37879,7 +37985,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -37918,7 +38023,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -37926,7 +38030,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -37990,7 +38093,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binar
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -38018,7 +38121,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -38144,10 +38247,8 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_UNUSED(int type,
*/
if (IS_CV == IS_CONST) {
hash_value = Z_HASH_P(varname);
- } else if (IS_INTERNED(Z_STRVAL_P(varname))) {
- hash_value = INTERNED_HASH(Z_STRVAL_P(varname));
} else {
- hash_value = zend_hash_func(Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1);
+ hash_value = str_hash(Z_STRVAL_P(varname), Z_STRLEN_P(varname));
}
if (zend_hash_quick_find(target_symbol_table, Z_STRVAL_P(varname), Z_STRLEN_P(varname)+1, hash_value, (void **) &retval) == FAILURE) {
@@ -38200,7 +38301,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_UNUSED(int type,
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ EX_T(opline->result.var).var.ptr = *retval;
break;
case BP_VAR_UNSET: {
zend_free_op free_res;
@@ -38240,7 +38341,7 @@ static int ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE
{
USE_OPLINE
- return zend_fetch_var_address_helper_SPEC_CV_UNUSED(ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))?BP_VAR_W:BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ return zend_fetch_var_address_helper_SPEC_CV_UNUSED(zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC) ? BP_VAR_W : BP_VAR_R, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38315,9 +38416,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OP
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
-
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -38385,11 +38485,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -38397,7 +38497,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -38409,7 +38509,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -38453,7 +38553,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -38478,11 +38579,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -38501,8 +38598,6 @@ num_index:
}
if ((IS_CV == IS_VAR || IS_CV == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -38757,7 +38852,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
/* Consts, temporary variables and references need copying */
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -38770,11 +38865,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -39143,7 +39240,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
} else {
/* here we are sure we are dealing with an object */
@@ -39163,7 +39259,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*zptr);
EX_T(opline->result.var).var.ptr = *zptr;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -39202,7 +39297,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(z);
EX_T(opline->result.var).var.ptr = z;
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
zval_ptr_dtor(&z);
} else {
@@ -39210,7 +39304,6 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
- EX_T(opline->result.var).var.ptr_ptr = NULL;
}
}
}
@@ -39274,7 +39367,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
@@ -39302,7 +39395,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*var_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
+ EX_T(opline->result.var).var.ptr = *var_ptr;
}
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -39586,14 +39679,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
zval *container;
SAVE_OPLINE();
-
- if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+ if (IS_CV != IS_VAR || !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -39675,9 +39766,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE
SAVE_OPLINE();
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
zval **container = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
-
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
@@ -39759,7 +39849,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_CV(ZEND
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -39772,7 +39862,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_CV(ZEND
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -39879,7 +39969,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
} else {
zval *retval;
@@ -39892,7 +39982,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
if (0) {
zval_ptr_dtor(&offset);
@@ -39909,7 +39999,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE
{
USE_OPLINE
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
+ if (zend_is_by_ref_func_arg_fetch(opline, EX(call) TSRMLS_CC)) {
/* Behave like FETCH_OBJ_W */
zend_free_op free_op1;
zval *property;
@@ -40057,11 +40147,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (IS_TMP_FREE(free_op_data1)) {
@@ -40069,7 +40159,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if ((opline+1)->op1_type == IS_TMP_VAR) {
@@ -40081,7 +40171,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
FREE_OP_VAR_PTR(free_op_data2);
@@ -40113,11 +40203,11 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
INIT_PZVAL(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
+ EX_T(opline->result.var).var.ptr = retval;
}
} else if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else if (IS_CV == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
if (0) {
@@ -40125,7 +40215,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+ EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
}
} else {
if (IS_CV == IS_TMP_VAR) {
@@ -40137,7 +40227,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(value);
- AI_SET_PTR(&EX_T(opline->result.var), value);
+ EX_T(opline->result.var).var.ptr = value;
}
}
@@ -40191,7 +40281,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(*variable_ptr_ptr);
- AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
+ EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
}
@@ -40270,6 +40360,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_H
call->object = this_ptr;
}
}
+
+ call->num_additional_args = 0;
call->is_ctor_call = 0;
EX(call) = call;
@@ -40284,9 +40376,6 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
- if (IS_CV==IS_VAR) {
- PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
- }
is_equal_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
@@ -40326,7 +40415,8 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- } else {
+
+ } else if (IS_CV == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
}
@@ -40351,11 +40441,7 @@ num_index:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
zend_hash_quick_update(Z_ARRVAL(EX_T(opline->result.var).tmp_var), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, &expr_ptr, sizeof(zval *), NULL);
break;
@@ -40374,8 +40460,6 @@ num_index:
}
if ((IS_CV == IS_VAR || IS_CV == IS_CV) && opline->extended_value) {
- } else {
-
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -40434,11 +40518,7 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (ht == &EG(symbol_table)) {
zend_delete_global_variable_ex(offset->value.str.val, offset->value.str.len, hval TSRMLS_CC);
@@ -40546,7 +40626,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
@@ -40573,11 +40652,7 @@ num_index_prop:
hval = Z_HASH_P(offset);
} else {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- if (IS_INTERNED(Z_STRVAL_P(offset))) {
- hval = INTERNED_HASH(Z_STRVAL_P(offset));
- } else {
- hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
- }
+ hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
isset = 1;
@@ -40756,7 +40831,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
/* Consts, temporary variables and references need copying */
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
- || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
+ || PZVAL_IS_REF(value)
) {
zval *copy;
@@ -40769,11 +40844,13 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
generator->value = copy;
+
} else {
- Z_ADDREF_P(value);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(value);
+ }
generator->value = value;
}
-
}
} else {
/* If no value was specified yield null */
@@ -44951,6 +45028,56 @@ void zend_init_opcodes_handlers(void)
ZEND_FAST_RET_SPEC_HANDLER,
ZEND_FAST_RET_SPEC_HANDLER,
ZEND_FAST_RET_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_RECV_VARIADIC_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_NULL_HANDLER
};
zend_opcode_handlers = (opcode_handler_t*)labels;
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index bc96a3b66..fc6c6177b 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -24,7 +24,7 @@ $header_text = <<< DATA
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -143,6 +143,8 @@ $op1_get_zval_ptr_ptr = array(
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)",
);
+$op1_get_zval_ptr_ptr_fast = $op1_get_zval_ptr_ptr;
+$op1_get_zval_ptr_ptr_fast["VAR"] = "_get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)";
$op2_get_zval_ptr_ptr = array(
"ANY" => "get_zval_ptr_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \\1)",
@@ -152,6 +154,8 @@ $op2_get_zval_ptr_ptr = array(
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)",
);
+$op2_get_zval_ptr_ptr_fast = $op2_get_zval_ptr_ptr;
+$op2_get_zval_ptr_ptr_fast["VAR"] = "_get_zval_ptr_ptr_var_fast(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)";
$op1_get_obj_zval_ptr = array(
"ANY" => "get_obj_zval_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, \\1)",
@@ -179,6 +183,8 @@ $op1_get_obj_zval_ptr_ptr = array(
"UNUSED" => "_get_obj_zval_ptr_ptr_unused(TSRMLS_C)",
"CV" => "_get_zval_ptr_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)",
);
+$op1_get_obj_zval_ptr_ptr_fast = $op1_get_obj_zval_ptr_ptr;
+$op1_get_obj_zval_ptr_ptr_fast["VAR"] = "_get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)";
$op2_get_obj_zval_ptr_ptr = array(
"ANY" => "get_obj_zval_ptr_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \\1)",
@@ -188,6 +194,8 @@ $op2_get_obj_zval_ptr_ptr = array(
"UNUSED" => "_get_obj_zval_ptr_ptr_unused(TSRMLS_C)",
"CV" => "_get_zval_ptr_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)",
);
+$op2_get_obj_zval_ptr_ptr_fast = $op2_get_obj_zval_ptr_ptr;
+$op2_get_obj_zval_ptr_ptr_fast["VAR"] = "_get_zval_ptr_ptr_var_fast(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)";
$op1_is_tmp_free = array(
"ANY" => "IS_TMP_FREE(free_op1)",
@@ -210,7 +218,7 @@ $op2_is_tmp_free = array(
$op1_free_op = array(
"ANY" => "FREE_OP(free_op1)",
"TMP" => "zval_dtor(free_op1.var)",
- "VAR" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -219,7 +227,7 @@ $op1_free_op = array(
$op2_free_op = array(
"ANY" => "FREE_OP(free_op2)",
"TMP" => "zval_dtor(free_op2.var)",
- "VAR" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -228,7 +236,7 @@ $op2_free_op = array(
$op1_free_op_if_var = array(
"ANY" => "FREE_OP_IF_VAR(free_op1)",
"TMP" => "",
- "VAR" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -237,29 +245,33 @@ $op1_free_op_if_var = array(
$op2_free_op_if_var = array(
"ANY" => "FREE_OP_IF_VAR(free_op2)",
"TMP" => "",
- "VAR" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
$op1_free_op_var_ptr = array(
- "ANY" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "ANY" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}",
"TMP" => "",
- "VAR" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "VAR" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
+$op1_free_op_var_ptr_fast = $op1_free_op_var_ptr;
+$op1_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op1.var)";
$op2_free_op_var_ptr = array(
- "ANY" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "ANY" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}",
"TMP" => "",
- "VAR" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "VAR" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
+$op2_free_op_var_ptr_fast = $op2_free_op_var_ptr;
+$op2_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op2.var)";
$list = array(); // list of opcode handlers and helpers in original order
$opcodes = array(); // opcode handlers by code
@@ -311,7 +323,10 @@ function gen_code($f, $spec, $kind, $export, $code, $op1, $op2, $name) {
$op1_get_obj_zval_ptr_ptr, $op2_get_obj_zval_ptr_ptr,
$op1_is_tmp_free, $op2_is_tmp_free, $op1_free, $op2_free,
$op1_free_op, $op2_free_op, $op1_free_op_if_var, $op2_free_op_if_var,
- $op1_free_op_var_ptr, $op2_free_op_var_ptr, $prefix;
+ $op1_free_op_var_ptr, $op2_free_op_var_ptr, $prefix,
+ $op1_get_zval_ptr_ptr_fast, $op2_get_zval_ptr_ptr_fast,
+ $op1_get_obj_zval_ptr_ptr_fast, $op2_get_obj_zval_ptr_ptr_fast,
+ $op1_free_op_var_ptr_fast, $op2_free_op_var_ptr_fast;
// Specializing
$code = preg_replace(
@@ -336,6 +351,12 @@ function gen_code($f, $spec, $kind, $export, $code, $op1, $op2, $name) {
"/FREE_OP2_IF_VAR\(\)/",
"/FREE_OP1_VAR_PTR\(\)/",
"/FREE_OP2_VAR_PTR\(\)/",
+ "/GET_OP1_ZVAL_PTR_PTR_FAST\(([^)]*)\)/",
+ "/GET_OP2_ZVAL_PTR_PTR_FAST\(([^)]*)\)/",
+ "/GET_OP1_OBJ_ZVAL_PTR_PTR_FAST\(([^)]*)\)/",
+ "/GET_OP2_OBJ_ZVAL_PTR_PTR_FAST\(([^)]*)\)/",
+ "/FREE_OP1_VAR_PTR_FAST\(\)/",
+ "/FREE_OP2_VAR_PTR_FAST\(\)/",
"/^#ifdef\s+ZEND_VM_SPEC\s*\n/m",
"/^#ifndef\s+ZEND_VM_SPEC\s*\n/m",
"/\!defined\(ZEND_VM_SPEC\)/m",
@@ -368,6 +389,12 @@ function gen_code($f, $spec, $kind, $export, $code, $op1, $op2, $name) {
$op2_free_op_if_var[$op2],
$op1_free_op_var_ptr[$op1],
$op2_free_op_var_ptr[$op2],
+ $op1_get_zval_ptr_ptr_fast[$op1],
+ $op2_get_zval_ptr_ptr_fast[$op2],
+ $op1_get_obj_zval_ptr_ptr_fast[$op1],
+ $op2_get_obj_zval_ptr_ptr_fast[$op2],
+ $op1_free_op_var_ptr_fast[$op1],
+ $op2_free_op_var_ptr_fast[$op2],
($op1!="ANY"||$op2!="ANY")?"#if 1\n":"#if 0\n",
($op1!="ANY"||$op2!="ANY")?"#if 0\n":"#if 1\n",
($op1!="ANY"||$op2!="ANY")?"0":"1",
diff --git a/Zend/zend_vm_opcodes.c b/Zend/zend_vm_opcodes.c
index 22fc7cbcf..d6f51cce5 100644
--- a/Zend/zend_vm_opcodes.c
+++ b/Zend/zend_vm_opcodes.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -21,7 +21,7 @@
#include <stdio.h>
#include <zend.h>
-const char *zend_vm_opcodes_map[164] = {
+const char *zend_vm_opcodes_map[166] = {
"ZEND_NOP",
"ZEND_ADD",
"ZEND_SUB",
@@ -186,6 +186,8 @@ const char *zend_vm_opcodes_map[164] = {
"ZEND_GENERATOR_RETURN",
"ZEND_FAST_CALL",
"ZEND_FAST_RET",
+ "ZEND_RECV_VARIADIC",
+ "ZEND_SEND_UNPACK",
};
ZEND_API const char* zend_get_opcode_name(zend_uchar opcode) {
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index adbf593d7..c4cab07ae 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2014 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 |
@@ -169,5 +169,7 @@ ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
#define ZEND_GENERATOR_RETURN 161
#define ZEND_FAST_CALL 162
#define ZEND_FAST_RET 163
+#define ZEND_RECV_VARIADIC 164
+#define ZEND_SEND_UNPACK 165
#endif \ No newline at end of file