summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2012-11-16 13:25:37 +0100
committerOndřej Surý <ondrej@sury.org>2012-11-16 13:25:37 +0100
commit0b82e05fe264306004119e30119e665365331e17 (patch)
treeb6ee689804e9ca3946a644a80760d821a032d42f /Zend
parentb57a2691d5b72c3894e2d4e0f945cecc6b3a1953 (diff)
downloadphp-0b82e05fe264306004119e30119e665365331e17.tar.gz
Imported Upstream version 5.5.0~alpha1upstream/5.5.0_alpha1
Diffstat (limited to 'Zend')
-rw-r--r--Zend/Makefile.am3
-rw-r--r--Zend/Zend.dsp4
-rw-r--r--Zend/ZendTS.dsp4
-rw-r--r--Zend/acinclude.m42
-rw-r--r--[-rwxr-xr-x]Zend/tests/array_type_hint_001.phpt0
-rw-r--r--Zend/tests/bug18556.phpt37
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug20240.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug20242.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug21478.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug21888.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug22725.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug24436.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug24884.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26077.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26166.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26229.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26281.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26696.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26697.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26698.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26801.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug26802.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug27268.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug27304.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug27598.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug27669.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug27798.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug28072.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug28377.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug28442.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug28444.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug29368.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug29505.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug29674.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug29896.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30080.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30140.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30161.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30162.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30346.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30394.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30519.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30707.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30725.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30791.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30820.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30828.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug30998.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug31102.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug31177-2.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug31177.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug31341.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug31525.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32226.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32252.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32290.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32296.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32322.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32428.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32596.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32660.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32799.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug32993.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33116.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33171.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33257.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33318.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33512.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33558.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33710.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33732.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33802.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33996.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug33999.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34045.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34062.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34064.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34065.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34137.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34199.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34260.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34358.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34467.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34518.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34617.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34678.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34786.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34879.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug34893.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35017.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35106.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35163.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35163_2.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35163_3.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35239.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35393.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35411.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35437.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35470.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35509.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35634.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug35655.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36006.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36037.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36071.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36214.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36268.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36303.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36513.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36568.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug36759.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37046.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37138.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37144.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37212.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37632.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37667.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37707.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37715.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug37811.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38047.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38146.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38211.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38220.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38234.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38287.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38623.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38772.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38808.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug38942.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39017.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39297.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39304.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39438.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39445.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39449.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39542.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39602.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39721.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39775.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39825.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39944.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug39990.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40236.inc0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40236.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40261.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40509.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40705.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40757.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40770.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40809.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug40833.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41117_1.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41372.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41401.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41633_1.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41633_2.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41633_3.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41633_4.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41929.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug41961.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42772.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42802.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42819.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42820.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42859.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug42937.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug43027.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug43128.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug43175.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug43183.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug43201.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug44660.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug45178.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug45805.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug46304.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug60169.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug60573.phpt0
-rw-r--r--Zend/tests/bug60738.phpt22
-rw-r--r--Zend/tests/bug60738_variation.phpt23
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug60978.phpt0
-rw-r--r--Zend/tests/bug61681.phpt11
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug61761.phpt0
-rw-r--r--Zend/tests/bug62991.phpt50
-rw-r--r--Zend/tests/bug63055.phpt23
-rw-r--r--Zend/tests/bug63219.phpt18
-rw-r--r--Zend/tests/bug63305.phpt43
-rw-r--r--Zend/tests/bug63336.phpt24
-rw-r--r--[-rwxr-xr-x]Zend/tests/bug_debug_backtrace.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/call_static.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/catch.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/catch_002.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/catch_003.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/catch_004.phpt0
-rw-r--r--Zend/tests/catch_finally_001.phpt32
-rw-r--r--Zend/tests/catch_finally_002.phpt21
-rw-r--r--Zend/tests/catch_finally_003.phpt40
-rw-r--r--Zend/tests/catch_finally_004.phpt41
-rw-r--r--Zend/tests/catch_finally_005.phpt21
-rw-r--r--Zend/tests/catch_finally_006.phpt28
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_016.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_022.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_023.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_033.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_036.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/closure_037.phpt0
-rw-r--r--Zend/tests/const_dereference_001.phpt21
-rw-r--r--Zend/tests/const_dereference_002.phpt18
-rw-r--r--Zend/tests/const_dereference_003.phpt21
-rw-r--r--[-rwxr-xr-x]Zend/tests/constants/dir-constant-eval.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/constants/dir-constant-includes.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/constants/dir-constant-nested_includes.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/constants/dir-constant-normal.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/constants_005.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/dtor_scope.phpt0
-rw-r--r--Zend/tests/empty_with_expr.phpt32
-rw-r--r--Zend/tests/errmsg_043.phpt12
-rw-r--r--[-rwxr-xr-x]Zend/tests/exception_007.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/exception_008.phpt0
-rw-r--r--Zend/tests/foreach_list_001.phpt43
-rw-r--r--Zend/tests/foreach_list_002.phpt26
-rw-r--r--Zend/tests/foreach_list_003.phpt13
-rw-r--r--Zend/tests/foreach_list_004.phpt13
-rw-r--r--Zend/tests/foreach_temp_array_expr_with_refs.phpt18
-rw-r--r--Zend/tests/generators/auto_incrementing_keys.phpt22
-rw-r--r--Zend/tests/generators/backtrace.phpt27
-rw-r--r--Zend/tests/generators/clone.phpt32
-rw-r--r--Zend/tests/generators/clone_with_foreach.phpt33
-rw-r--r--Zend/tests/generators/clone_with_stack.phpt18
-rw-r--r--Zend/tests/generators/clone_with_symbol_table.phpt27
-rw-r--r--Zend/tests/generators/clone_with_this.phpt24
-rw-r--r--Zend/tests/generators/dynamic_call.phpt19
-rw-r--r--Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt13
-rw-r--r--Zend/tests/generators/errors/generator_cannot_return_error.phpt13
-rw-r--r--Zend/tests/generators/errors/generator_extend_error.phpt10
-rw-r--r--Zend/tests/generators/errors/generator_instantiate_error.phpt10
-rw-r--r--Zend/tests/generators/errors/non_ref_generator_iterated_by_ref_error.phpt18
-rw-r--r--Zend/tests/generators/errors/resume_running_generator_error.phpt17
-rw-r--r--Zend/tests/generators/errors/serialize_unserialize_error.phpt46
-rw-r--r--Zend/tests/generators/errors/yield_const_by_ref_error.phpt16
-rw-r--r--Zend/tests/generators/errors/yield_in_force_closed_finally_error.phpt29
-rw-r--r--Zend/tests/generators/errors/yield_non_ref_function_call_by_ref_error.phpt20
-rw-r--r--Zend/tests/generators/errors/yield_outside_function_error.phpt10
-rw-r--r--Zend/tests/generators/fibonacci.phpt36
-rw-r--r--Zend/tests/generators/finally_ran_on_close.phpt25
-rw-r--r--Zend/tests/generators/finally_uninterrupted.phpt28
-rw-r--r--Zend/tests/generators/finally_with_return.phpt33
-rw-r--r--Zend/tests/generators/func_get_args.phpt21
-rw-r--r--Zend/tests/generators/generator_closure.phpt20
-rw-r--r--Zend/tests/generators/generator_closure_with_this.phpt20
-rw-r--r--Zend/tests/generators/generator_in_multipleiterator.phpt37
-rw-r--r--Zend/tests/generators/generator_method.phpt29
-rw-r--r--Zend/tests/generators/generator_method_by_ref.phpt44
-rw-r--r--Zend/tests/generators/generator_returns_generator.phpt18
-rw-r--r--Zend/tests/generators/generator_rewind.phpt62
-rw-r--r--Zend/tests/generators/generator_send.phpt22
-rw-r--r--Zend/tests/generators/generator_static_method.phpt29
-rw-r--r--Zend/tests/generators/generator_throwing_during_function_call.phpt32
-rw-r--r--Zend/tests/generators/generator_throwing_exception.phpt28
-rw-r--r--Zend/tests/generators/generator_throwing_in_foreach.phpt20
-rw-r--r--Zend/tests/generators/generator_with_keys.phpt26
-rw-r--r--Zend/tests/generators/nested_method_calls.phpt39
-rw-r--r--Zend/tests/generators/no_foreach_var_leaks.phpt19
-rw-r--r--Zend/tests/generators/send_after_close.phpt14
-rw-r--r--Zend/tests/generators/send_returns_current.phpt20
-rw-r--r--Zend/tests/generators/unused_return_value.phpt13
-rw-r--r--Zend/tests/generators/xrange.phpt23
-rw-r--r--Zend/tests/generators/yield_array_key.phpt18
-rw-r--r--Zend/tests/generators/yield_array_offset_by_ref.phpt26
-rw-r--r--Zend/tests/generators/yield_by_reference.phpt42
-rw-r--r--Zend/tests/generators/yield_during_function_call.phpt15
-rw-r--r--Zend/tests/generators/yield_during_method_call.phpt35
-rw-r--r--Zend/tests/generators/yield_in_finally.phpt29
-rw-r--r--Zend/tests/generators/yield_in_parenthesis.phpt23
-rw-r--r--Zend/tests/generators/yield_ref_function_call_by_reference.phpt24
-rw-r--r--Zend/tests/generators/yield_without_value.phpt27
-rw-r--r--[-rwxr-xr-x]Zend/tests/instanceof.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/is_a.phpt0
-rw-r--r--Zend/tests/isset_expr_error.phpt8
-rw-r--r--Zend/tests/isset_func_error.phpt8
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump01.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump02.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump03.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump04.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump05.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump06.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump07.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump08.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump09.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/jump10.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/lsb_018.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/lsb_022.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/multibyte/multibyte_encoding_001.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/multibyte/multibyte_encoding_002.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/multibyte/multibyte_encoding_003.phptbin471 -> 471 bytes
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_001.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_002.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_003.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_004.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_005.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_006.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_007.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_008.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_009.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_010.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_011.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_012.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_013.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_014.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_015.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_016.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_017.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_018.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_019.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_020.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_021.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_022.inc0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_022.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_023.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_024.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_025.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_026.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_027.inc0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_027.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_028.inc0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_028.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_029.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_030.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_031.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_032.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_033.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_034.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_035.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_036.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_037.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_038.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_054.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_055.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_056.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_057.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_058.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_059.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_065.inc0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_065.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_075.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_076.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_1.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_2.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_3.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_4.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_5.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_6.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_7.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_077_8.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/ns_078.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/object_handlers.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/objects_015.phpt0
-rw-r--r--Zend/tests/offset_assign.phpt4
-rw-r--r--Zend/tests/offset_string.phpt2
-rw-r--r--[-rwxr-xr-x]Zend/tests/selfParent_001.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/selfParent_002.phpt0
-rw-r--r--Zend/tests/try_catch_finally_001.phpt36
-rw-r--r--Zend/tests/try_catch_finally_002.phpt42
-rw-r--r--Zend/tests/try_catch_finally_003.phpt38
-rw-r--r--Zend/tests/try_catch_finally_004.phpt30
-rw-r--r--Zend/tests/try_catch_finally_005.phpt52
-rw-r--r--Zend/tests/try_catch_finally_006.phpt39
-rw-r--r--Zend/tests/try_catch_finally_007.phpt46
-rw-r--r--Zend/tests/try_finally_001.phpt22
-rw-r--r--Zend/tests/try_finally_002.phpt23
-rw-r--r--Zend/tests/try_finally_003.phpt27
-rw-r--r--Zend/tests/try_finally_004.phpt14
-rw-r--r--Zend/tests/try_finally_005.phpt17
-rw-r--r--Zend/tests/try_finally_006.phpt26
-rw-r--r--Zend/tests/try_finally_007.phpt22
-rw-r--r--Zend/tests/try_finally_008.phpt21
-rw-r--r--Zend/tests/try_finally_009.phpt23
-rw-r--r--[-rwxr-xr-x]Zend/tests/unexpected_ref_bug.phpt0
-rw-r--r--[-rwxr-xr-x]Zend/tests/unset_cv12.phpt0
-rw-r--r--Zend/zend.h23
-rw-r--r--Zend/zend_alloc.c4
-rw-r--r--Zend/zend_alloc.h6
-rw-r--r--[-rwxr-xr-x]Zend/zend_build.h0
-rw-r--r--Zend/zend_builtin_functions.c49
-rw-r--r--Zend/zend_compile.c178
-rw-r--r--Zend/zend_compile.h17
-rw-r--r--Zend/zend_default_classes.c2
-rw-r--r--Zend/zend_dtrace.c4
-rw-r--r--Zend/zend_dtrace.h4
-rw-r--r--Zend/zend_execute.c61
-rw-r--r--Zend/zend_execute.h19
-rw-r--r--Zend/zend_execute_API.c46
-rw-r--r--Zend/zend_extensions.h2
-rw-r--r--Zend/zend_generators.c916
-rw-r--r--Zend/zend_generators.h78
-rw-r--r--Zend/zend_globals.h4
-rw-r--r--Zend/zend_highlight.c2
-rw-r--r--Zend/zend_ini_parser.c712
-rw-r--r--Zend/zend_ini_parser.h31
-rw-r--r--Zend/zend_ini_parser.output6
-rw-r--r--Zend/zend_ini_scanner.c2
-rw-r--r--Zend/zend_ini_scanner_defs.h2
-rw-r--r--[-rwxr-xr-x]Zend/zend_interfaces.c0
-rw-r--r--[-rwxr-xr-x]Zend/zend_interfaces.h0
-rw-r--r--[-rwxr-xr-x]Zend/zend_iterators.c0
-rw-r--r--[-rwxr-xr-x]Zend/zend_iterators.h0
-rw-r--r--Zend/zend_language_parser.c5679
-rw-r--r--Zend/zend_language_parser.h507
-rw-r--r--Zend/zend_language_parser.output37506
-rw-r--r--Zend/zend_language_parser.y162
-rw-r--r--Zend/zend_language_scanner.c5373
-rw-r--r--Zend/zend_language_scanner.h5
-rw-r--r--Zend/zend_language_scanner.l85
-rw-r--r--Zend/zend_language_scanner_defs.h2
-rw-r--r--Zend/zend_modules.h2
-rw-r--r--Zend/zend_opcode.c52
-rw-r--r--Zend/zend_operators.c92
-rw-r--r--Zend/zend_operators.h1
-rw-r--r--Zend/zend_ptr_stack.c16
-rw-r--r--Zend/zend_ptr_stack.h7
-rw-r--r--Zend/zend_signal.c4
-rw-r--r--Zend/zend_variables.c2
-rw-r--r--Zend/zend_vm_def.h1005
-rw-r--r--Zend/zend_vm_execute.h4837
-rw-r--r--Zend/zend_vm_execute.skl88
-rw-r--r--Zend/zend_vm_gen.php103
-rw-r--r--Zend/zend_vm_opcodes.h3
427 files changed, 34636 insertions, 25528 deletions
diff --git a/Zend/Makefile.am b/Zend/Makefile.am
index 5ec4590fe..e5757fac5 100644
--- a/Zend/Makefile.am
+++ b/Zend/Makefile.am
@@ -17,7 +17,8 @@ libZend_la_SOURCES=\
zend_objects_API.c zend_ts_hash.c zend_stream.c \
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
- zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c
+ zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c \
+ zend_generators.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
diff --git a/Zend/Zend.dsp b/Zend/Zend.dsp
index ebe01978c..23ebd4532 100644
--- a/Zend/Zend.dsp
+++ b/Zend/Zend.dsp
@@ -159,6 +159,10 @@ SOURCE=.\zend_float.c
# End Source File
# Begin Source File
+SOURCE=.\zend_generators.c
+# End Source File
+# Begin Source File
+
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
diff --git a/Zend/ZendTS.dsp b/Zend/ZendTS.dsp
index 3494cd4e1..3be2c58be 100644
--- a/Zend/ZendTS.dsp
+++ b/Zend/ZendTS.dsp
@@ -185,6 +185,10 @@ SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
+SOURCE=.\zend_generators.c
+# End Source File
+# Begin Source File
+
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
index a7358fa85..136d2d8be 100644
--- a/Zend/acinclude.m4
+++ b/Zend/acinclude.m4
@@ -4,7 +4,7 @@ dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
- bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1"
+ bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
diff --git a/Zend/tests/array_type_hint_001.phpt b/Zend/tests/array_type_hint_001.phpt
index a67699277..a67699277 100755..100644
--- a/Zend/tests/array_type_hint_001.phpt
+++ b/Zend/tests/array_type_hint_001.phpt
diff --git a/Zend/tests/bug18556.phpt b/Zend/tests/bug18556.phpt
new file mode 100644
index 000000000..036abb2ad
--- /dev/null
+++ b/Zend/tests/bug18556.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Bug #18556 (Setting locale to 'tr_TR' lowercases class names)
+--FILE--
+<?php
+$g_lang = 'tr_TR';
+putenv("LANG=$g_lang");
+setlocale(LC_ALL, $g_lang);
+
+class InfoBlob {
+ var $foo;
+ function InfoBlob() {
+ $this->foo = "Foo";
+ }
+}
+
+echo "Instantiating an infoBlob with a lowercase i\n";
+$foobar = new infoBlob();
+echo $foobar->foo;
+echo "\nInstantiating an InfoBlob with an uppercase I\n";
+$foobar = new InfoBlob();
+echo $foobar->foo;
+echo "\n";
+setlocale(LC_ALL, "tr_TR.utf8");
+foreach(get_declared_classes() as $class)
+{
+ if(!class_exists($class))
+ echo "$class No Longer Exists!\n";
+
+}
+echo "Done.\n";
+?>
+--EXPECT--
+Instantiating an infoBlob with a lowercase i
+Foo
+Instantiating an InfoBlob with an uppercase I
+Foo
+Done.
diff --git a/Zend/tests/bug20240.phpt b/Zend/tests/bug20240.phpt
index acf673a27..acf673a27 100755..100644
--- a/Zend/tests/bug20240.phpt
+++ b/Zend/tests/bug20240.phpt
diff --git a/Zend/tests/bug20242.phpt b/Zend/tests/bug20242.phpt
index 064f8235f..064f8235f 100755..100644
--- a/Zend/tests/bug20242.phpt
+++ b/Zend/tests/bug20242.phpt
diff --git a/Zend/tests/bug21478.phpt b/Zend/tests/bug21478.phpt
index 8b38f24d6..8b38f24d6 100755..100644
--- a/Zend/tests/bug21478.phpt
+++ b/Zend/tests/bug21478.phpt
diff --git a/Zend/tests/bug21888.phpt b/Zend/tests/bug21888.phpt
index a13da1943..a13da1943 100755..100644
--- a/Zend/tests/bug21888.phpt
+++ b/Zend/tests/bug21888.phpt
diff --git a/Zend/tests/bug22725.phpt b/Zend/tests/bug22725.phpt
index 5f3c258b1..5f3c258b1 100755..100644
--- a/Zend/tests/bug22725.phpt
+++ b/Zend/tests/bug22725.phpt
diff --git a/Zend/tests/bug24436.phpt b/Zend/tests/bug24436.phpt
index 0c261b668..0c261b668 100755..100644
--- a/Zend/tests/bug24436.phpt
+++ b/Zend/tests/bug24436.phpt
diff --git a/Zend/tests/bug24884.phpt b/Zend/tests/bug24884.phpt
index 457acd00d..457acd00d 100755..100644
--- a/Zend/tests/bug24884.phpt
+++ b/Zend/tests/bug24884.phpt
diff --git a/Zend/tests/bug26077.phpt b/Zend/tests/bug26077.phpt
index dc7686e0a..dc7686e0a 100755..100644
--- a/Zend/tests/bug26077.phpt
+++ b/Zend/tests/bug26077.phpt
diff --git a/Zend/tests/bug26166.phpt b/Zend/tests/bug26166.phpt
index 60624ed98..60624ed98 100755..100644
--- a/Zend/tests/bug26166.phpt
+++ b/Zend/tests/bug26166.phpt
diff --git a/Zend/tests/bug26229.phpt b/Zend/tests/bug26229.phpt
index 347eb5557..347eb5557 100755..100644
--- a/Zend/tests/bug26229.phpt
+++ b/Zend/tests/bug26229.phpt
diff --git a/Zend/tests/bug26281.phpt b/Zend/tests/bug26281.phpt
index e1888a88d..e1888a88d 100755..100644
--- a/Zend/tests/bug26281.phpt
+++ b/Zend/tests/bug26281.phpt
diff --git a/Zend/tests/bug26696.phpt b/Zend/tests/bug26696.phpt
index 62ceacda5..62ceacda5 100755..100644
--- a/Zend/tests/bug26696.phpt
+++ b/Zend/tests/bug26696.phpt
diff --git a/Zend/tests/bug26697.phpt b/Zend/tests/bug26697.phpt
index 8266a23e3..8266a23e3 100755..100644
--- a/Zend/tests/bug26697.phpt
+++ b/Zend/tests/bug26697.phpt
diff --git a/Zend/tests/bug26698.phpt b/Zend/tests/bug26698.phpt
index aecc708a0..aecc708a0 100755..100644
--- a/Zend/tests/bug26698.phpt
+++ b/Zend/tests/bug26698.phpt
diff --git a/Zend/tests/bug26801.phpt b/Zend/tests/bug26801.phpt
index b8cc37aa1..b8cc37aa1 100755..100644
--- a/Zend/tests/bug26801.phpt
+++ b/Zend/tests/bug26801.phpt
diff --git a/Zend/tests/bug26802.phpt b/Zend/tests/bug26802.phpt
index ab0ad25aa..ab0ad25aa 100755..100644
--- a/Zend/tests/bug26802.phpt
+++ b/Zend/tests/bug26802.phpt
diff --git a/Zend/tests/bug27268.phpt b/Zend/tests/bug27268.phpt
index a86e8d029..a86e8d029 100755..100644
--- a/Zend/tests/bug27268.phpt
+++ b/Zend/tests/bug27268.phpt
diff --git a/Zend/tests/bug27304.phpt b/Zend/tests/bug27304.phpt
index 0f248346c..0f248346c 100755..100644
--- a/Zend/tests/bug27304.phpt
+++ b/Zend/tests/bug27304.phpt
diff --git a/Zend/tests/bug27598.phpt b/Zend/tests/bug27598.phpt
index 534e8cf85..534e8cf85 100755..100644
--- a/Zend/tests/bug27598.phpt
+++ b/Zend/tests/bug27598.phpt
diff --git a/Zend/tests/bug27669.phpt b/Zend/tests/bug27669.phpt
index 4d513e91a..4d513e91a 100755..100644
--- a/Zend/tests/bug27669.phpt
+++ b/Zend/tests/bug27669.phpt
diff --git a/Zend/tests/bug27798.phpt b/Zend/tests/bug27798.phpt
index 9e54efa83..9e54efa83 100755..100644
--- a/Zend/tests/bug27798.phpt
+++ b/Zend/tests/bug27798.phpt
diff --git a/Zend/tests/bug28072.phpt b/Zend/tests/bug28072.phpt
index 76208733f..76208733f 100755..100644
--- a/Zend/tests/bug28072.phpt
+++ b/Zend/tests/bug28072.phpt
diff --git a/Zend/tests/bug28377.phpt b/Zend/tests/bug28377.phpt
index 9d1b43472..9d1b43472 100755..100644
--- a/Zend/tests/bug28377.phpt
+++ b/Zend/tests/bug28377.phpt
diff --git a/Zend/tests/bug28442.phpt b/Zend/tests/bug28442.phpt
index 1237357cc..1237357cc 100755..100644
--- a/Zend/tests/bug28442.phpt
+++ b/Zend/tests/bug28442.phpt
diff --git a/Zend/tests/bug28444.phpt b/Zend/tests/bug28444.phpt
index 78c08d2fc..78c08d2fc 100755..100644
--- a/Zend/tests/bug28444.phpt
+++ b/Zend/tests/bug28444.phpt
diff --git a/Zend/tests/bug29368.phpt b/Zend/tests/bug29368.phpt
index c16399abb..c16399abb 100755..100644
--- a/Zend/tests/bug29368.phpt
+++ b/Zend/tests/bug29368.phpt
diff --git a/Zend/tests/bug29505.phpt b/Zend/tests/bug29505.phpt
index 4d7c05351..4d7c05351 100755..100644
--- a/Zend/tests/bug29505.phpt
+++ b/Zend/tests/bug29505.phpt
diff --git a/Zend/tests/bug29674.phpt b/Zend/tests/bug29674.phpt
index 30c23faa0..30c23faa0 100755..100644
--- a/Zend/tests/bug29674.phpt
+++ b/Zend/tests/bug29674.phpt
diff --git a/Zend/tests/bug29896.phpt b/Zend/tests/bug29896.phpt
index 1e2eb0b06..1e2eb0b06 100755..100644
--- a/Zend/tests/bug29896.phpt
+++ b/Zend/tests/bug29896.phpt
diff --git a/Zend/tests/bug30080.phpt b/Zend/tests/bug30080.phpt
index bd8401e1b..bd8401e1b 100755..100644
--- a/Zend/tests/bug30080.phpt
+++ b/Zend/tests/bug30080.phpt
diff --git a/Zend/tests/bug30140.phpt b/Zend/tests/bug30140.phpt
index 1dfb83500..1dfb83500 100755..100644
--- a/Zend/tests/bug30140.phpt
+++ b/Zend/tests/bug30140.phpt
diff --git a/Zend/tests/bug30161.phpt b/Zend/tests/bug30161.phpt
index 22f8fb59e..22f8fb59e 100755..100644
--- a/Zend/tests/bug30161.phpt
+++ b/Zend/tests/bug30161.phpt
diff --git a/Zend/tests/bug30162.phpt b/Zend/tests/bug30162.phpt
index a011292a1..a011292a1 100755..100644
--- a/Zend/tests/bug30162.phpt
+++ b/Zend/tests/bug30162.phpt
diff --git a/Zend/tests/bug30346.phpt b/Zend/tests/bug30346.phpt
index 30f36fbde..30f36fbde 100755..100644
--- a/Zend/tests/bug30346.phpt
+++ b/Zend/tests/bug30346.phpt
diff --git a/Zend/tests/bug30394.phpt b/Zend/tests/bug30394.phpt
index b69eda4fe..b69eda4fe 100755..100644
--- a/Zend/tests/bug30394.phpt
+++ b/Zend/tests/bug30394.phpt
diff --git a/Zend/tests/bug30519.phpt b/Zend/tests/bug30519.phpt
index 7d70cba07..7d70cba07 100755..100644
--- a/Zend/tests/bug30519.phpt
+++ b/Zend/tests/bug30519.phpt
diff --git a/Zend/tests/bug30707.phpt b/Zend/tests/bug30707.phpt
index d37d32974..d37d32974 100755..100644
--- a/Zend/tests/bug30707.phpt
+++ b/Zend/tests/bug30707.phpt
diff --git a/Zend/tests/bug30725.phpt b/Zend/tests/bug30725.phpt
index ce6c9a50a..ce6c9a50a 100755..100644
--- a/Zend/tests/bug30725.phpt
+++ b/Zend/tests/bug30725.phpt
diff --git a/Zend/tests/bug30791.phpt b/Zend/tests/bug30791.phpt
index e9991f3ad..e9991f3ad 100755..100644
--- a/Zend/tests/bug30791.phpt
+++ b/Zend/tests/bug30791.phpt
diff --git a/Zend/tests/bug30820.phpt b/Zend/tests/bug30820.phpt
index 97e46e928..97e46e928 100755..100644
--- a/Zend/tests/bug30820.phpt
+++ b/Zend/tests/bug30820.phpt
diff --git a/Zend/tests/bug30828.phpt b/Zend/tests/bug30828.phpt
index d05dbb606..d05dbb606 100755..100644
--- a/Zend/tests/bug30828.phpt
+++ b/Zend/tests/bug30828.phpt
diff --git a/Zend/tests/bug30998.phpt b/Zend/tests/bug30998.phpt
index d0ace9fa1..d0ace9fa1 100755..100644
--- a/Zend/tests/bug30998.phpt
+++ b/Zend/tests/bug30998.phpt
diff --git a/Zend/tests/bug31102.phpt b/Zend/tests/bug31102.phpt
index b7911bea5..b7911bea5 100755..100644
--- a/Zend/tests/bug31102.phpt
+++ b/Zend/tests/bug31102.phpt
diff --git a/Zend/tests/bug31177-2.phpt b/Zend/tests/bug31177-2.phpt
index 10083c59e..10083c59e 100755..100644
--- a/Zend/tests/bug31177-2.phpt
+++ b/Zend/tests/bug31177-2.phpt
diff --git a/Zend/tests/bug31177.phpt b/Zend/tests/bug31177.phpt
index 5e8457362..5e8457362 100755..100644
--- a/Zend/tests/bug31177.phpt
+++ b/Zend/tests/bug31177.phpt
diff --git a/Zend/tests/bug31341.phpt b/Zend/tests/bug31341.phpt
index 309a54d76..309a54d76 100755..100644
--- a/Zend/tests/bug31341.phpt
+++ b/Zend/tests/bug31341.phpt
diff --git a/Zend/tests/bug31525.phpt b/Zend/tests/bug31525.phpt
index b1a01b61e..b1a01b61e 100755..100644
--- a/Zend/tests/bug31525.phpt
+++ b/Zend/tests/bug31525.phpt
diff --git a/Zend/tests/bug32226.phpt b/Zend/tests/bug32226.phpt
index 9536c921a..9536c921a 100755..100644
--- a/Zend/tests/bug32226.phpt
+++ b/Zend/tests/bug32226.phpt
diff --git a/Zend/tests/bug32252.phpt b/Zend/tests/bug32252.phpt
index 706da18cf..706da18cf 100755..100644
--- a/Zend/tests/bug32252.phpt
+++ b/Zend/tests/bug32252.phpt
diff --git a/Zend/tests/bug32290.phpt b/Zend/tests/bug32290.phpt
index 89da67b19..89da67b19 100755..100644
--- a/Zend/tests/bug32290.phpt
+++ b/Zend/tests/bug32290.phpt
diff --git a/Zend/tests/bug32296.phpt b/Zend/tests/bug32296.phpt
index b3e705ec1..b3e705ec1 100755..100644
--- a/Zend/tests/bug32296.phpt
+++ b/Zend/tests/bug32296.phpt
diff --git a/Zend/tests/bug32322.phpt b/Zend/tests/bug32322.phpt
index f69c5259e..f69c5259e 100755..100644
--- a/Zend/tests/bug32322.phpt
+++ b/Zend/tests/bug32322.phpt
diff --git a/Zend/tests/bug32428.phpt b/Zend/tests/bug32428.phpt
index 0b5ca6aeb..0b5ca6aeb 100755..100644
--- a/Zend/tests/bug32428.phpt
+++ b/Zend/tests/bug32428.phpt
diff --git a/Zend/tests/bug32596.phpt b/Zend/tests/bug32596.phpt
index 2dd0cfe9f..2dd0cfe9f 100755..100644
--- a/Zend/tests/bug32596.phpt
+++ b/Zend/tests/bug32596.phpt
diff --git a/Zend/tests/bug32660.phpt b/Zend/tests/bug32660.phpt
index 3a307189a..3a307189a 100755..100644
--- a/Zend/tests/bug32660.phpt
+++ b/Zend/tests/bug32660.phpt
diff --git a/Zend/tests/bug32799.phpt b/Zend/tests/bug32799.phpt
index c76daedde..c76daedde 100755..100644
--- a/Zend/tests/bug32799.phpt
+++ b/Zend/tests/bug32799.phpt
diff --git a/Zend/tests/bug32993.phpt b/Zend/tests/bug32993.phpt
index 88fb0230b..88fb0230b 100755..100644
--- a/Zend/tests/bug32993.phpt
+++ b/Zend/tests/bug32993.phpt
diff --git a/Zend/tests/bug33116.phpt b/Zend/tests/bug33116.phpt
index aa714a1f8..aa714a1f8 100755..100644
--- a/Zend/tests/bug33116.phpt
+++ b/Zend/tests/bug33116.phpt
diff --git a/Zend/tests/bug33171.phpt b/Zend/tests/bug33171.phpt
index 27f5264ba..27f5264ba 100755..100644
--- a/Zend/tests/bug33171.phpt
+++ b/Zend/tests/bug33171.phpt
diff --git a/Zend/tests/bug33257.phpt b/Zend/tests/bug33257.phpt
index c17ddfd17..c17ddfd17 100755..100644
--- a/Zend/tests/bug33257.phpt
+++ b/Zend/tests/bug33257.phpt
diff --git a/Zend/tests/bug33318.phpt b/Zend/tests/bug33318.phpt
index dc1afbb15..dc1afbb15 100755..100644
--- a/Zend/tests/bug33318.phpt
+++ b/Zend/tests/bug33318.phpt
diff --git a/Zend/tests/bug33512.phpt b/Zend/tests/bug33512.phpt
index 9dd4e4e5f..9dd4e4e5f 100755..100644
--- a/Zend/tests/bug33512.phpt
+++ b/Zend/tests/bug33512.phpt
diff --git a/Zend/tests/bug33558.phpt b/Zend/tests/bug33558.phpt
index 9c87fc601..9c87fc601 100755..100644
--- a/Zend/tests/bug33558.phpt
+++ b/Zend/tests/bug33558.phpt
diff --git a/Zend/tests/bug33710.phpt b/Zend/tests/bug33710.phpt
index 330bb584a..330bb584a 100755..100644
--- a/Zend/tests/bug33710.phpt
+++ b/Zend/tests/bug33710.phpt
diff --git a/Zend/tests/bug33732.phpt b/Zend/tests/bug33732.phpt
index 4969791fa..4969791fa 100755..100644
--- a/Zend/tests/bug33732.phpt
+++ b/Zend/tests/bug33732.phpt
diff --git a/Zend/tests/bug33802.phpt b/Zend/tests/bug33802.phpt
index d2f8cd736..d2f8cd736 100755..100644
--- a/Zend/tests/bug33802.phpt
+++ b/Zend/tests/bug33802.phpt
diff --git a/Zend/tests/bug33996.phpt b/Zend/tests/bug33996.phpt
index e722eceaf..e722eceaf 100755..100644
--- a/Zend/tests/bug33996.phpt
+++ b/Zend/tests/bug33996.phpt
diff --git a/Zend/tests/bug33999.phpt b/Zend/tests/bug33999.phpt
index 194628071..194628071 100755..100644
--- a/Zend/tests/bug33999.phpt
+++ b/Zend/tests/bug33999.phpt
diff --git a/Zend/tests/bug34045.phpt b/Zend/tests/bug34045.phpt
index 61886cf35..61886cf35 100755..100644
--- a/Zend/tests/bug34045.phpt
+++ b/Zend/tests/bug34045.phpt
diff --git a/Zend/tests/bug34062.phpt b/Zend/tests/bug34062.phpt
index bcb4ad8c6..bcb4ad8c6 100755..100644
--- a/Zend/tests/bug34062.phpt
+++ b/Zend/tests/bug34062.phpt
diff --git a/Zend/tests/bug34064.phpt b/Zend/tests/bug34064.phpt
index 84208a54f..84208a54f 100755..100644
--- a/Zend/tests/bug34064.phpt
+++ b/Zend/tests/bug34064.phpt
diff --git a/Zend/tests/bug34065.phpt b/Zend/tests/bug34065.phpt
index 9d76fca64..9d76fca64 100755..100644
--- a/Zend/tests/bug34065.phpt
+++ b/Zend/tests/bug34065.phpt
diff --git a/Zend/tests/bug34137.phpt b/Zend/tests/bug34137.phpt
index 585633333..585633333 100755..100644
--- a/Zend/tests/bug34137.phpt
+++ b/Zend/tests/bug34137.phpt
diff --git a/Zend/tests/bug34199.phpt b/Zend/tests/bug34199.phpt
index 3012d808f..3012d808f 100755..100644
--- a/Zend/tests/bug34199.phpt
+++ b/Zend/tests/bug34199.phpt
diff --git a/Zend/tests/bug34260.phpt b/Zend/tests/bug34260.phpt
index fa393d065..fa393d065 100755..100644
--- a/Zend/tests/bug34260.phpt
+++ b/Zend/tests/bug34260.phpt
diff --git a/Zend/tests/bug34358.phpt b/Zend/tests/bug34358.phpt
index b9c6565f5..b9c6565f5 100755..100644
--- a/Zend/tests/bug34358.phpt
+++ b/Zend/tests/bug34358.phpt
diff --git a/Zend/tests/bug34467.phpt b/Zend/tests/bug34467.phpt
index 5f0ccafc4..5f0ccafc4 100755..100644
--- a/Zend/tests/bug34467.phpt
+++ b/Zend/tests/bug34467.phpt
diff --git a/Zend/tests/bug34518.phpt b/Zend/tests/bug34518.phpt
index b94fdf498..b94fdf498 100755..100644
--- a/Zend/tests/bug34518.phpt
+++ b/Zend/tests/bug34518.phpt
diff --git a/Zend/tests/bug34617.phpt b/Zend/tests/bug34617.phpt
index 25f785f90..25f785f90 100755..100644
--- a/Zend/tests/bug34617.phpt
+++ b/Zend/tests/bug34617.phpt
diff --git a/Zend/tests/bug34678.phpt b/Zend/tests/bug34678.phpt
index 2a13201f2..2a13201f2 100755..100644
--- a/Zend/tests/bug34678.phpt
+++ b/Zend/tests/bug34678.phpt
diff --git a/Zend/tests/bug34786.phpt b/Zend/tests/bug34786.phpt
index 18642848d..18642848d 100755..100644
--- a/Zend/tests/bug34786.phpt
+++ b/Zend/tests/bug34786.phpt
diff --git a/Zend/tests/bug34879.phpt b/Zend/tests/bug34879.phpt
index 606142bde..606142bde 100755..100644
--- a/Zend/tests/bug34879.phpt
+++ b/Zend/tests/bug34879.phpt
diff --git a/Zend/tests/bug34893.phpt b/Zend/tests/bug34893.phpt
index bbe02358e..bbe02358e 100755..100644
--- a/Zend/tests/bug34893.phpt
+++ b/Zend/tests/bug34893.phpt
diff --git a/Zend/tests/bug35017.phpt b/Zend/tests/bug35017.phpt
index 0a89d23aa..0a89d23aa 100755..100644
--- a/Zend/tests/bug35017.phpt
+++ b/Zend/tests/bug35017.phpt
diff --git a/Zend/tests/bug35106.phpt b/Zend/tests/bug35106.phpt
index 61a66d014..61a66d014 100755..100644
--- a/Zend/tests/bug35106.phpt
+++ b/Zend/tests/bug35106.phpt
diff --git a/Zend/tests/bug35163.phpt b/Zend/tests/bug35163.phpt
index 6a10d244b..6a10d244b 100755..100644
--- a/Zend/tests/bug35163.phpt
+++ b/Zend/tests/bug35163.phpt
diff --git a/Zend/tests/bug35163_2.phpt b/Zend/tests/bug35163_2.phpt
index 01387204c..01387204c 100755..100644
--- a/Zend/tests/bug35163_2.phpt
+++ b/Zend/tests/bug35163_2.phpt
diff --git a/Zend/tests/bug35163_3.phpt b/Zend/tests/bug35163_3.phpt
index 6c6a57f25..6c6a57f25 100755..100644
--- a/Zend/tests/bug35163_3.phpt
+++ b/Zend/tests/bug35163_3.phpt
diff --git a/Zend/tests/bug35239.phpt b/Zend/tests/bug35239.phpt
index 869971e2a..869971e2a 100755..100644
--- a/Zend/tests/bug35239.phpt
+++ b/Zend/tests/bug35239.phpt
diff --git a/Zend/tests/bug35393.phpt b/Zend/tests/bug35393.phpt
index ce3bdd001..ce3bdd001 100755..100644
--- a/Zend/tests/bug35393.phpt
+++ b/Zend/tests/bug35393.phpt
diff --git a/Zend/tests/bug35411.phpt b/Zend/tests/bug35411.phpt
index 90957aa57..90957aa57 100755..100644
--- a/Zend/tests/bug35411.phpt
+++ b/Zend/tests/bug35411.phpt
diff --git a/Zend/tests/bug35437.phpt b/Zend/tests/bug35437.phpt
index 73222a9f2..73222a9f2 100755..100644
--- a/Zend/tests/bug35437.phpt
+++ b/Zend/tests/bug35437.phpt
diff --git a/Zend/tests/bug35470.phpt b/Zend/tests/bug35470.phpt
index 5a854552b..5a854552b 100755..100644
--- a/Zend/tests/bug35470.phpt
+++ b/Zend/tests/bug35470.phpt
diff --git a/Zend/tests/bug35509.phpt b/Zend/tests/bug35509.phpt
index 6cb54c03e..6cb54c03e 100755..100644
--- a/Zend/tests/bug35509.phpt
+++ b/Zend/tests/bug35509.phpt
diff --git a/Zend/tests/bug35634.phpt b/Zend/tests/bug35634.phpt
index 1437017a3..1437017a3 100755..100644
--- a/Zend/tests/bug35634.phpt
+++ b/Zend/tests/bug35634.phpt
diff --git a/Zend/tests/bug35655.phpt b/Zend/tests/bug35655.phpt
index bbb137799..bbb137799 100755..100644
--- a/Zend/tests/bug35655.phpt
+++ b/Zend/tests/bug35655.phpt
diff --git a/Zend/tests/bug36006.phpt b/Zend/tests/bug36006.phpt
index 79f9897d1..79f9897d1 100755..100644
--- a/Zend/tests/bug36006.phpt
+++ b/Zend/tests/bug36006.phpt
diff --git a/Zend/tests/bug36037.phpt b/Zend/tests/bug36037.phpt
index 3ccebf652..3ccebf652 100755..100644
--- a/Zend/tests/bug36037.phpt
+++ b/Zend/tests/bug36037.phpt
diff --git a/Zend/tests/bug36071.phpt b/Zend/tests/bug36071.phpt
index e5146091e..e5146091e 100755..100644
--- a/Zend/tests/bug36071.phpt
+++ b/Zend/tests/bug36071.phpt
diff --git a/Zend/tests/bug36214.phpt b/Zend/tests/bug36214.phpt
index 630773713..630773713 100755..100644
--- a/Zend/tests/bug36214.phpt
+++ b/Zend/tests/bug36214.phpt
diff --git a/Zend/tests/bug36268.phpt b/Zend/tests/bug36268.phpt
index 5276d50d4..5276d50d4 100755..100644
--- a/Zend/tests/bug36268.phpt
+++ b/Zend/tests/bug36268.phpt
diff --git a/Zend/tests/bug36303.phpt b/Zend/tests/bug36303.phpt
index 0f9232383..0f9232383 100755..100644
--- a/Zend/tests/bug36303.phpt
+++ b/Zend/tests/bug36303.phpt
diff --git a/Zend/tests/bug36513.phpt b/Zend/tests/bug36513.phpt
index f46da4efc..f46da4efc 100755..100644
--- a/Zend/tests/bug36513.phpt
+++ b/Zend/tests/bug36513.phpt
diff --git a/Zend/tests/bug36568.phpt b/Zend/tests/bug36568.phpt
index d621491a4..d621491a4 100755..100644
--- a/Zend/tests/bug36568.phpt
+++ b/Zend/tests/bug36568.phpt
diff --git a/Zend/tests/bug36759.phpt b/Zend/tests/bug36759.phpt
index 8aa9977a0..8aa9977a0 100755..100644
--- a/Zend/tests/bug36759.phpt
+++ b/Zend/tests/bug36759.phpt
diff --git a/Zend/tests/bug37046.phpt b/Zend/tests/bug37046.phpt
index 09b8f0cb5..09b8f0cb5 100755..100644
--- a/Zend/tests/bug37046.phpt
+++ b/Zend/tests/bug37046.phpt
diff --git a/Zend/tests/bug37138.phpt b/Zend/tests/bug37138.phpt
index f8503f8da..f8503f8da 100755..100644
--- a/Zend/tests/bug37138.phpt
+++ b/Zend/tests/bug37138.phpt
diff --git a/Zend/tests/bug37144.phpt b/Zend/tests/bug37144.phpt
index b3e548946..b3e548946 100755..100644
--- a/Zend/tests/bug37144.phpt
+++ b/Zend/tests/bug37144.phpt
diff --git a/Zend/tests/bug37212.phpt b/Zend/tests/bug37212.phpt
index 212ef23ec..212ef23ec 100755..100644
--- a/Zend/tests/bug37212.phpt
+++ b/Zend/tests/bug37212.phpt
diff --git a/Zend/tests/bug37632.phpt b/Zend/tests/bug37632.phpt
index fb72f8934..fb72f8934 100755..100644
--- a/Zend/tests/bug37632.phpt
+++ b/Zend/tests/bug37632.phpt
diff --git a/Zend/tests/bug37667.phpt b/Zend/tests/bug37667.phpt
index ecf43c5b8..ecf43c5b8 100755..100644
--- a/Zend/tests/bug37667.phpt
+++ b/Zend/tests/bug37667.phpt
diff --git a/Zend/tests/bug37707.phpt b/Zend/tests/bug37707.phpt
index 196495852..196495852 100755..100644
--- a/Zend/tests/bug37707.phpt
+++ b/Zend/tests/bug37707.phpt
diff --git a/Zend/tests/bug37715.phpt b/Zend/tests/bug37715.phpt
index a585c78e5..a585c78e5 100755..100644
--- a/Zend/tests/bug37715.phpt
+++ b/Zend/tests/bug37715.phpt
diff --git a/Zend/tests/bug37811.phpt b/Zend/tests/bug37811.phpt
index 70c4c90ed..70c4c90ed 100755..100644
--- a/Zend/tests/bug37811.phpt
+++ b/Zend/tests/bug37811.phpt
diff --git a/Zend/tests/bug38047.phpt b/Zend/tests/bug38047.phpt
index 00290ee54..00290ee54 100755..100644
--- a/Zend/tests/bug38047.phpt
+++ b/Zend/tests/bug38047.phpt
diff --git a/Zend/tests/bug38146.phpt b/Zend/tests/bug38146.phpt
index e321e11c8..e321e11c8 100755..100644
--- a/Zend/tests/bug38146.phpt
+++ b/Zend/tests/bug38146.phpt
diff --git a/Zend/tests/bug38211.phpt b/Zend/tests/bug38211.phpt
index 6ae9430e8..6ae9430e8 100755..100644
--- a/Zend/tests/bug38211.phpt
+++ b/Zend/tests/bug38211.phpt
diff --git a/Zend/tests/bug38220.phpt b/Zend/tests/bug38220.phpt
index bee3ffc75..bee3ffc75 100755..100644
--- a/Zend/tests/bug38220.phpt
+++ b/Zend/tests/bug38220.phpt
diff --git a/Zend/tests/bug38234.phpt b/Zend/tests/bug38234.phpt
index a81a3aadc..a81a3aadc 100755..100644
--- a/Zend/tests/bug38234.phpt
+++ b/Zend/tests/bug38234.phpt
diff --git a/Zend/tests/bug38287.phpt b/Zend/tests/bug38287.phpt
index 9a53a9335..9a53a9335 100755..100644
--- a/Zend/tests/bug38287.phpt
+++ b/Zend/tests/bug38287.phpt
diff --git a/Zend/tests/bug38623.phpt b/Zend/tests/bug38623.phpt
index 9b042a914..9b042a914 100755..100644
--- a/Zend/tests/bug38623.phpt
+++ b/Zend/tests/bug38623.phpt
diff --git a/Zend/tests/bug38772.phpt b/Zend/tests/bug38772.phpt
index 0e97c291c..0e97c291c 100755..100644
--- a/Zend/tests/bug38772.phpt
+++ b/Zend/tests/bug38772.phpt
diff --git a/Zend/tests/bug38808.phpt b/Zend/tests/bug38808.phpt
index 0fc4bfecd..0fc4bfecd 100755..100644
--- a/Zend/tests/bug38808.phpt
+++ b/Zend/tests/bug38808.phpt
diff --git a/Zend/tests/bug38942.phpt b/Zend/tests/bug38942.phpt
index 85bb56d20..85bb56d20 100755..100644
--- a/Zend/tests/bug38942.phpt
+++ b/Zend/tests/bug38942.phpt
diff --git a/Zend/tests/bug39017.phpt b/Zend/tests/bug39017.phpt
index 70204758d..70204758d 100755..100644
--- a/Zend/tests/bug39017.phpt
+++ b/Zend/tests/bug39017.phpt
diff --git a/Zend/tests/bug39297.phpt b/Zend/tests/bug39297.phpt
index 92f91a555..92f91a555 100755..100644
--- a/Zend/tests/bug39297.phpt
+++ b/Zend/tests/bug39297.phpt
diff --git a/Zend/tests/bug39304.phpt b/Zend/tests/bug39304.phpt
index 8303b8257..8303b8257 100755..100644
--- a/Zend/tests/bug39304.phpt
+++ b/Zend/tests/bug39304.phpt
diff --git a/Zend/tests/bug39438.phpt b/Zend/tests/bug39438.phpt
index e1ed8e886..e1ed8e886 100755..100644
--- a/Zend/tests/bug39438.phpt
+++ b/Zend/tests/bug39438.phpt
diff --git a/Zend/tests/bug39445.phpt b/Zend/tests/bug39445.phpt
index cf1607f2d..cf1607f2d 100755..100644
--- a/Zend/tests/bug39445.phpt
+++ b/Zend/tests/bug39445.phpt
diff --git a/Zend/tests/bug39449.phpt b/Zend/tests/bug39449.phpt
index c725147ac..c725147ac 100755..100644
--- a/Zend/tests/bug39449.phpt
+++ b/Zend/tests/bug39449.phpt
diff --git a/Zend/tests/bug39542.phpt b/Zend/tests/bug39542.phpt
index 13ddc0a91..13ddc0a91 100755..100644
--- a/Zend/tests/bug39542.phpt
+++ b/Zend/tests/bug39542.phpt
diff --git a/Zend/tests/bug39602.phpt b/Zend/tests/bug39602.phpt
index db8763d8a..db8763d8a 100755..100644
--- a/Zend/tests/bug39602.phpt
+++ b/Zend/tests/bug39602.phpt
diff --git a/Zend/tests/bug39721.phpt b/Zend/tests/bug39721.phpt
index 63edfc23e..63edfc23e 100755..100644
--- a/Zend/tests/bug39721.phpt
+++ b/Zend/tests/bug39721.phpt
diff --git a/Zend/tests/bug39775.phpt b/Zend/tests/bug39775.phpt
index 4c6ce6baf..4c6ce6baf 100755..100644
--- a/Zend/tests/bug39775.phpt
+++ b/Zend/tests/bug39775.phpt
diff --git a/Zend/tests/bug39825.phpt b/Zend/tests/bug39825.phpt
index 791b329f7..791b329f7 100755..100644
--- a/Zend/tests/bug39825.phpt
+++ b/Zend/tests/bug39825.phpt
diff --git a/Zend/tests/bug39944.phpt b/Zend/tests/bug39944.phpt
index 4249988ff..4249988ff 100755..100644
--- a/Zend/tests/bug39944.phpt
+++ b/Zend/tests/bug39944.phpt
diff --git a/Zend/tests/bug39990.phpt b/Zend/tests/bug39990.phpt
index d7545eeec..d7545eeec 100755..100644
--- a/Zend/tests/bug39990.phpt
+++ b/Zend/tests/bug39990.phpt
diff --git a/Zend/tests/bug40236.inc b/Zend/tests/bug40236.inc
index fc03349f7..fc03349f7 100755..100644
--- a/Zend/tests/bug40236.inc
+++ b/Zend/tests/bug40236.inc
diff --git a/Zend/tests/bug40236.phpt b/Zend/tests/bug40236.phpt
index f9a427724..f9a427724 100755..100644
--- a/Zend/tests/bug40236.phpt
+++ b/Zend/tests/bug40236.phpt
diff --git a/Zend/tests/bug40261.phpt b/Zend/tests/bug40261.phpt
index b7e2c98c5..b7e2c98c5 100755..100644
--- a/Zend/tests/bug40261.phpt
+++ b/Zend/tests/bug40261.phpt
diff --git a/Zend/tests/bug40509.phpt b/Zend/tests/bug40509.phpt
index 21eaae944..21eaae944 100755..100644
--- a/Zend/tests/bug40509.phpt
+++ b/Zend/tests/bug40509.phpt
diff --git a/Zend/tests/bug40705.phpt b/Zend/tests/bug40705.phpt
index 374f73b75..374f73b75 100755..100644
--- a/Zend/tests/bug40705.phpt
+++ b/Zend/tests/bug40705.phpt
diff --git a/Zend/tests/bug40757.phpt b/Zend/tests/bug40757.phpt
index b5c91c79c..b5c91c79c 100755..100644
--- a/Zend/tests/bug40757.phpt
+++ b/Zend/tests/bug40757.phpt
diff --git a/Zend/tests/bug40770.phpt b/Zend/tests/bug40770.phpt
index c4c78c222..c4c78c222 100755..100644
--- a/Zend/tests/bug40770.phpt
+++ b/Zend/tests/bug40770.phpt
diff --git a/Zend/tests/bug40809.phpt b/Zend/tests/bug40809.phpt
index 08fc89f55..08fc89f55 100755..100644
--- a/Zend/tests/bug40809.phpt
+++ b/Zend/tests/bug40809.phpt
diff --git a/Zend/tests/bug40833.phpt b/Zend/tests/bug40833.phpt
index c56ca4c3b..c56ca4c3b 100755..100644
--- a/Zend/tests/bug40833.phpt
+++ b/Zend/tests/bug40833.phpt
diff --git a/Zend/tests/bug41117_1.phpt b/Zend/tests/bug41117_1.phpt
index f555b637a..f555b637a 100755..100644
--- a/Zend/tests/bug41117_1.phpt
+++ b/Zend/tests/bug41117_1.phpt
diff --git a/Zend/tests/bug41372.phpt b/Zend/tests/bug41372.phpt
index 3446150f5..3446150f5 100755..100644
--- a/Zend/tests/bug41372.phpt
+++ b/Zend/tests/bug41372.phpt
diff --git a/Zend/tests/bug41401.phpt b/Zend/tests/bug41401.phpt
index 50d2109ca..50d2109ca 100755..100644
--- a/Zend/tests/bug41401.phpt
+++ b/Zend/tests/bug41401.phpt
diff --git a/Zend/tests/bug41633_1.phpt b/Zend/tests/bug41633_1.phpt
index 1c1d552dd..1c1d552dd 100755..100644
--- a/Zend/tests/bug41633_1.phpt
+++ b/Zend/tests/bug41633_1.phpt
diff --git a/Zend/tests/bug41633_2.phpt b/Zend/tests/bug41633_2.phpt
index 3deb4516a..3deb4516a 100755..100644
--- a/Zend/tests/bug41633_2.phpt
+++ b/Zend/tests/bug41633_2.phpt
diff --git a/Zend/tests/bug41633_3.phpt b/Zend/tests/bug41633_3.phpt
index 7b9452db8..7b9452db8 100755..100644
--- a/Zend/tests/bug41633_3.phpt
+++ b/Zend/tests/bug41633_3.phpt
diff --git a/Zend/tests/bug41633_4.phpt b/Zend/tests/bug41633_4.phpt
index 3507f6a08..3507f6a08 100755..100644
--- a/Zend/tests/bug41633_4.phpt
+++ b/Zend/tests/bug41633_4.phpt
diff --git a/Zend/tests/bug41929.phpt b/Zend/tests/bug41929.phpt
index c332aba2d..c332aba2d 100755..100644
--- a/Zend/tests/bug41929.phpt
+++ b/Zend/tests/bug41929.phpt
diff --git a/Zend/tests/bug41961.phpt b/Zend/tests/bug41961.phpt
index 514265b60..514265b60 100755..100644
--- a/Zend/tests/bug41961.phpt
+++ b/Zend/tests/bug41961.phpt
diff --git a/Zend/tests/bug42772.phpt b/Zend/tests/bug42772.phpt
index 8887bdbd7..8887bdbd7 100755..100644
--- a/Zend/tests/bug42772.phpt
+++ b/Zend/tests/bug42772.phpt
diff --git a/Zend/tests/bug42802.phpt b/Zend/tests/bug42802.phpt
index 2aa7061f3..2aa7061f3 100755..100644
--- a/Zend/tests/bug42802.phpt
+++ b/Zend/tests/bug42802.phpt
diff --git a/Zend/tests/bug42819.phpt b/Zend/tests/bug42819.phpt
index e52660369..e52660369 100755..100644
--- a/Zend/tests/bug42819.phpt
+++ b/Zend/tests/bug42819.phpt
diff --git a/Zend/tests/bug42820.phpt b/Zend/tests/bug42820.phpt
index 921f0090a..921f0090a 100755..100644
--- a/Zend/tests/bug42820.phpt
+++ b/Zend/tests/bug42820.phpt
diff --git a/Zend/tests/bug42859.phpt b/Zend/tests/bug42859.phpt
index 755f41f8d..755f41f8d 100755..100644
--- a/Zend/tests/bug42859.phpt
+++ b/Zend/tests/bug42859.phpt
diff --git a/Zend/tests/bug42937.phpt b/Zend/tests/bug42937.phpt
index 537c56792..537c56792 100755..100644
--- a/Zend/tests/bug42937.phpt
+++ b/Zend/tests/bug42937.phpt
diff --git a/Zend/tests/bug43027.phpt b/Zend/tests/bug43027.phpt
index adecf3e39..adecf3e39 100755..100644
--- a/Zend/tests/bug43027.phpt
+++ b/Zend/tests/bug43027.phpt
diff --git a/Zend/tests/bug43128.phpt b/Zend/tests/bug43128.phpt
index 629f46c59..629f46c59 100755..100644
--- a/Zend/tests/bug43128.phpt
+++ b/Zend/tests/bug43128.phpt
diff --git a/Zend/tests/bug43175.phpt b/Zend/tests/bug43175.phpt
index 3bf6befc1..3bf6befc1 100755..100644
--- a/Zend/tests/bug43175.phpt
+++ b/Zend/tests/bug43175.phpt
diff --git a/Zend/tests/bug43183.phpt b/Zend/tests/bug43183.phpt
index a8ca698e9..a8ca698e9 100755..100644
--- a/Zend/tests/bug43183.phpt
+++ b/Zend/tests/bug43183.phpt
diff --git a/Zend/tests/bug43201.phpt b/Zend/tests/bug43201.phpt
index 89e1b6672..89e1b6672 100755..100644
--- a/Zend/tests/bug43201.phpt
+++ b/Zend/tests/bug43201.phpt
diff --git a/Zend/tests/bug44660.phpt b/Zend/tests/bug44660.phpt
index 1027377d3..1027377d3 100755..100644
--- a/Zend/tests/bug44660.phpt
+++ b/Zend/tests/bug44660.phpt
diff --git a/Zend/tests/bug45178.phpt b/Zend/tests/bug45178.phpt
index 5ce185994..5ce185994 100755..100644
--- a/Zend/tests/bug45178.phpt
+++ b/Zend/tests/bug45178.phpt
diff --git a/Zend/tests/bug45805.phpt b/Zend/tests/bug45805.phpt
index 986187ee6..986187ee6 100755..100644
--- a/Zend/tests/bug45805.phpt
+++ b/Zend/tests/bug45805.phpt
diff --git a/Zend/tests/bug46304.phpt b/Zend/tests/bug46304.phpt
index 0a6e3bffc..0a6e3bffc 100755..100644
--- a/Zend/tests/bug46304.phpt
+++ b/Zend/tests/bug46304.phpt
diff --git a/Zend/tests/bug60169.phpt b/Zend/tests/bug60169.phpt
index f97574191..f97574191 100755..100644
--- a/Zend/tests/bug60169.phpt
+++ b/Zend/tests/bug60169.phpt
diff --git a/Zend/tests/bug60573.phpt b/Zend/tests/bug60573.phpt
index d41a5f3ec..d41a5f3ec 100755..100644
--- a/Zend/tests/bug60573.phpt
+++ b/Zend/tests/bug60573.phpt
diff --git a/Zend/tests/bug60738.phpt b/Zend/tests/bug60738.phpt
new file mode 100644
index 000000000..e4080715e
--- /dev/null
+++ b/Zend/tests/bug60738.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #60738 Allow 'set_error_handler' to handle NULL
+--FILE--
+<?php
+
+var_dump(set_error_handler(
+ function() { echo 'Intercepted error!', "\n"; }
+));
+
+trigger_error('Error!');
+
+var_dump(set_error_handler(null));
+
+trigger_error('Error!');
+?>
+--EXPECTF--
+NULL
+Intercepted error!
+object(Closure)#1 (0) {
+}
+
+Notice: Error! in %s on line %d
diff --git a/Zend/tests/bug60738_variation.phpt b/Zend/tests/bug60738_variation.phpt
new file mode 100644
index 000000000..d7cf00ecd
--- /dev/null
+++ b/Zend/tests/bug60738_variation.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #60738 Allow 'set_error_handler' to handle NULL
+--FILE--
+<?php
+
+var_dump(set_exception_handler(
+ function() { echo 'Intercepted exception!', "\n"; }
+));
+
+var_dump(set_exception_handler(null));
+
+throw new Exception('Exception!');
+?>
+--EXPECTF--
+NULL
+object(Closure)#1 (0) {
+}
+
+Fatal error: Uncaught exception 'Exception' with message 'Exception!' in %s:%d
+Stack trace:
+#0 {main}
+ thrown in %s on line %d
+
diff --git a/Zend/tests/bug60978.phpt b/Zend/tests/bug60978.phpt
index 5dc6fe31e..5dc6fe31e 100755..100644
--- a/Zend/tests/bug60978.phpt
+++ b/Zend/tests/bug60978.phpt
diff --git a/Zend/tests/bug61681.phpt b/Zend/tests/bug61681.phpt
new file mode 100644
index 000000000..acc027539
--- /dev/null
+++ b/Zend/tests/bug61681.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #61681: Malformed grammar
+--FILE--
+<?php
+$la = "ooxx";
+
+echo "${substr('laruence', 0, 2)}";
+
+?>
+--EXPECT--
+ooxx
diff --git a/Zend/tests/bug61761.phpt b/Zend/tests/bug61761.phpt
index 24c69ae79..24c69ae79 100755..100644
--- a/Zend/tests/bug61761.phpt
+++ b/Zend/tests/bug61761.phpt
diff --git a/Zend/tests/bug62991.phpt b/Zend/tests/bug62991.phpt
new file mode 100644
index 000000000..cb4ff9335
--- /dev/null
+++ b/Zend/tests/bug62991.phpt
@@ -0,0 +1,50 @@
+--TEST--
+Bug #62991 (Segfault with generator and closure)
+--FILE--
+<?php
+
+function test( array $array )
+{
+ $closure = function() use ( $array ) {
+ print_r( $array );
+ yield "hi";
+ };
+ return $closure();
+}
+
+function test2( array $array )
+{
+ $closure = function() use ( $array ) {
+ print_r( $array );
+ yield "hi";
+ };
+ return $closure; // if you return the $closure and call it outside this function it works.
+}
+
+$generator = test(array( 1, 2, 3 ) );
+foreach($generator as $something) {
+}
+
+$generator = test2(array( 1, 2, 3 ) );
+foreach($generator() as $something) {
+}
+
+
+$generator = test2(array( 1, 2, 3 ) );
+
+echo "okey\n";
+?>
+--EXPECT--
+Array
+(
+ [0] => 1
+ [1] => 2
+ [2] => 3
+)
+Array
+(
+ [0] => 1
+ [1] => 2
+ [2] => 3
+)
+okey
diff --git a/Zend/tests/bug63055.phpt b/Zend/tests/bug63055.phpt
new file mode 100644
index 000000000..711385a3c
--- /dev/null
+++ b/Zend/tests/bug63055.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #63055 (Segfault in zend_gc with SF2 testsuite)
+--FILE--
+<?php
+/* the default gc root size is 10,000 */
+for ($i=0; $i<9998; $i++) {
+ $array = array();
+ $array[0] = &$array;
+ unset($array);
+}
+
+$matches = array("foo" => "bar"); /* this bucket will trigger the segfault */
+$dummy = array("dummy"); /* used to trigger gc_collect_cycles */
+$dummy[1] = &$dummy;
+
+$matches[1] = &$matches;
+$matches[2] = $dummy;
+
+str_replace("foo", "bar", "foobar", $matches);
+echo "okey";
+?>
+--EXPECTF--
+okey
diff --git a/Zend/tests/bug63219.phpt b/Zend/tests/bug63219.phpt
new file mode 100644
index 000000000..999be4a85
--- /dev/null
+++ b/Zend/tests/bug63219.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Bug #63219 (Segfault when aliasing trait method when autoloader throws excpetion)
+--FILE--
+<?php
+trait TFoo {
+ public function fooMethod(){}
+}
+
+class C {
+ use TFoo {
+ Typo::fooMethod as tf;
+ }
+}
+
+echo "okey";
+?>
+--EXPECTF--
+Fatal error: Could not find trait Typo in %sbug63219.php on line %d
diff --git a/Zend/tests/bug63305.phpt b/Zend/tests/bug63305.phpt
new file mode 100644
index 000000000..4bd3a4dbe
--- /dev/null
+++ b/Zend/tests/bug63305.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Bug #63305 (zend_mm_heap corrupted with traits)
+--FILE--
+<?php
+new Attachment("");
+
+function __autoload($class) {
+ switch ($class) {
+ case "Attachment":
+ eval(<<<'PHP'
+class Attachment extends File {
+}
+PHP
+ );
+ break;
+ case "File":
+ eval(<<<'PHP'
+class File {
+ use TDatabaseObject {
+ TDatabaseObject::__construct as private databaseObjectConstruct;
+ }
+ public function __construct() {
+ }
+}
+PHP
+ );
+ break;
+ case "TDatabaseObject":
+ eval(<<<'PHP'
+trait TDatabaseObject {
+ public function __construct() {
+ }
+}
+PHP
+ );
+ break;
+ }
+ return TRUE;
+}
+echo "okey";
+?>
+--EXPECT--
+okey
diff --git a/Zend/tests/bug63336.phpt b/Zend/tests/bug63336.phpt
new file mode 100644
index 000000000..d2c3d4113
--- /dev/null
+++ b/Zend/tests/bug63336.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #63336 (invalid E_NOTICE error occur)
+--XFAIL--
+Bug is not fixed yet
+--FILE--
+<?php
+error_reporting(E_ALL | E_NOTICE );
+define("TEST", "123");
+class Base {
+ const DUMMY = "XXX";
+ public function foo($var=TEST, $more=null) { return true; }
+ public function bar($more=self::DUMMY) { return true; }
+}
+
+class Child extends Base {
+ const DUMMY = "DDD";
+ public function foo($var=TEST, array $more = array()) { return true; }
+ public function bar($var, $more=self::DUMMY) { return true; }
+}
+?>
+--EXPECT--
+Strict Standards: Declaration of Child::foo() should be compatible with Base::foo($var = '123', $more = NULL) in %sbug63336.php on line %d
+
+Strict Standards: Declaration of Child::bar() should be compatible with Base::bar($var, $more = 'XXX') in %sbug63336.php on line %d
diff --git a/Zend/tests/bug_debug_backtrace.phpt b/Zend/tests/bug_debug_backtrace.phpt
index 3e4a0ec94..3e4a0ec94 100755..100644
--- a/Zend/tests/bug_debug_backtrace.phpt
+++ b/Zend/tests/bug_debug_backtrace.phpt
diff --git a/Zend/tests/call_static.phpt b/Zend/tests/call_static.phpt
index c37bc7223..c37bc7223 100755..100644
--- a/Zend/tests/call_static.phpt
+++ b/Zend/tests/call_static.phpt
diff --git a/Zend/tests/catch.phpt b/Zend/tests/catch.phpt
index 0ec5cf759..0ec5cf759 100755..100644
--- a/Zend/tests/catch.phpt
+++ b/Zend/tests/catch.phpt
diff --git a/Zend/tests/catch_002.phpt b/Zend/tests/catch_002.phpt
index 11d736abe..11d736abe 100755..100644
--- a/Zend/tests/catch_002.phpt
+++ b/Zend/tests/catch_002.phpt
diff --git a/Zend/tests/catch_003.phpt b/Zend/tests/catch_003.phpt
index 414d50f81..414d50f81 100755..100644
--- a/Zend/tests/catch_003.phpt
+++ b/Zend/tests/catch_003.phpt
diff --git a/Zend/tests/catch_004.phpt b/Zend/tests/catch_004.phpt
index 54920b894..54920b894 100755..100644
--- a/Zend/tests/catch_004.phpt
+++ b/Zend/tests/catch_004.phpt
diff --git a/Zend/tests/catch_finally_001.phpt b/Zend/tests/catch_finally_001.phpt
new file mode 100644
index 000000000..0c3f597a0
--- /dev/null
+++ b/Zend/tests/catch_finally_001.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Try catch finally (basic test)
+--FILE--
+<?php
+function foo ($throw = FALSE) {
+ try {
+ echo "try\n";
+ if ($throw) {
+ throw new Exception("ex");
+ }
+ } catch (Exception $e) {
+ echo "catch\n";
+ } finally {
+ echo "finally\n";
+ }
+
+ echo "end\n";
+}
+
+foo();
+echo "\n";
+foo(true);
+?>
+--EXPECTF--
+try
+finally
+end
+
+try
+catch
+finally
+end
diff --git a/Zend/tests/catch_finally_002.phpt b/Zend/tests/catch_finally_002.phpt
new file mode 100644
index 000000000..c54477ff8
--- /dev/null
+++ b/Zend/tests/catch_finally_002.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Try catch finally (basic test with return)
+--FILE--
+<?php
+function foo () {
+ try {
+ echo "try\n";
+ return 1;
+ } catch (Exception $e) {
+ } finally {
+ echo "finally\n";
+ }
+ return 2;
+}
+
+var_dump(foo());
+?>
+--EXPECTF--
+try
+finally
+int(1)
diff --git a/Zend/tests/catch_finally_003.phpt b/Zend/tests/catch_finally_003.phpt
new file mode 100644
index 000000000..24e468d33
--- /dev/null
+++ b/Zend/tests/catch_finally_003.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Try catch finally (with multi-returns)
+--FILE--
+<?php
+function dummy($msg) {
+ var_dump($msg);
+}
+
+function foo ($a) {
+ try {
+ dummy("try");
+ return $a;
+ } catch (Exception $e) {
+ throw $e;
+ } finally {
+ dummy("finally");
+ return "finally";
+ }
+ return "end";
+}
+
+function &bar($a) {
+ try {
+ echo "try\n";
+ throw new Exception("ex");
+ } catch (Exception $e) {
+ } finally {
+ return $a;
+ }
+ return ($c = "end");
+}
+var_dump(foo("para"));
+var_dump(bar("para"));
+?>
+--EXPECTF--
+string(3) "try"
+string(7) "finally"
+string(7) "finally"
+try
+string(4) "para"
diff --git a/Zend/tests/catch_finally_004.phpt b/Zend/tests/catch_finally_004.phpt
new file mode 100644
index 000000000..a2c22beab
--- /dev/null
+++ b/Zend/tests/catch_finally_004.phpt
@@ -0,0 +1,41 @@
+--TEST--
+Try catch finally (nesting try-catch-finally)
+--FILE--
+<?php
+
+function throw_exception($msg) {
+ throw new Exception($msg);
+}
+
+function foo (&$ex) {
+ try {
+ echo "1";
+ try {
+ echo "2";
+ throw_exception("try");
+ } catch (Exception $e) {
+ echo "3";
+ throw_exception("catch");
+ } finally {
+ echo "4";
+ throw_exception("finally");
+ }
+ } catch (Exception $e) {
+ $ex = $e;
+ echo "3";
+ } finally {
+ echo "2";
+ }
+ return 1;
+}
+
+var_dump(foo($ex));
+
+do {
+ var_dump($ex->getMessage());
+} while ($ex = $ex->getPrevious());
+?>
+--EXPECT--
+123432int(1)
+string(7) "finally"
+string(5) "catch"
diff --git a/Zend/tests/catch_finally_005.phpt b/Zend/tests/catch_finally_005.phpt
new file mode 100644
index 000000000..c2fd55df2
--- /dev/null
+++ b/Zend/tests/catch_finally_005.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Try catch finally (with multi-returns and exception)
+--FILE--
+<?php
+function foo ($a) {
+ try {
+ throw new Exception("ex");
+ } catch (PdoException $e) {
+ die("error");
+ } catch (Exception $e) {
+ return 2;
+ } finally {
+ return 3;
+ }
+ return 1;
+}
+
+var_dump(foo("para"));
+?>
+--EXPECTF--
+int(3)
diff --git a/Zend/tests/catch_finally_006.phpt b/Zend/tests/catch_finally_006.phpt
new file mode 100644
index 000000000..9759eab37
--- /dev/null
+++ b/Zend/tests/catch_finally_006.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Try catch finally (re-throw exception in catch block)
+--FILE--
+<?php
+function foo ($a) {
+ try {
+ throw new Exception("ex");
+ } catch (Exception $e) {
+ var_dump($a);
+ throw $e;
+ } finally {
+ var_dump("finally");
+ return "return";
+ }
+ return 1;
+}
+
+try {
+ var_dump(foo("para"));
+} catch (Exception $e) {
+ "caught exception" . PHP_EOL;
+ var_dump($e->getMessage());
+}
+?>
+--EXPECT--
+string(4) "para"
+string(7) "finally"
+string(2) "ex"
diff --git a/Zend/tests/closure_016.phpt b/Zend/tests/closure_016.phpt
index ae0036586..ae0036586 100755..100644
--- a/Zend/tests/closure_016.phpt
+++ b/Zend/tests/closure_016.phpt
diff --git a/Zend/tests/closure_022.phpt b/Zend/tests/closure_022.phpt
index 8621d2c09..8621d2c09 100755..100644
--- a/Zend/tests/closure_022.phpt
+++ b/Zend/tests/closure_022.phpt
diff --git a/Zend/tests/closure_023.phpt b/Zend/tests/closure_023.phpt
index 634fb6dd5..634fb6dd5 100755..100644
--- a/Zend/tests/closure_023.phpt
+++ b/Zend/tests/closure_023.phpt
diff --git a/Zend/tests/closure_033.phpt b/Zend/tests/closure_033.phpt
index f6510066b..f6510066b 100755..100644
--- a/Zend/tests/closure_033.phpt
+++ b/Zend/tests/closure_033.phpt
diff --git a/Zend/tests/closure_036.phpt b/Zend/tests/closure_036.phpt
index 77d7ce690..77d7ce690 100755..100644
--- a/Zend/tests/closure_036.phpt
+++ b/Zend/tests/closure_036.phpt
diff --git a/Zend/tests/closure_037.phpt b/Zend/tests/closure_037.phpt
index 4b24c85d1..4b24c85d1 100755..100644
--- a/Zend/tests/closure_037.phpt
+++ b/Zend/tests/closure_037.phpt
diff --git a/Zend/tests/const_dereference_001.phpt b/Zend/tests/const_dereference_001.phpt
new file mode 100644
index 000000000..5fe6e4d43
--- /dev/null
+++ b/Zend/tests/const_dereference_001.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Const array deference
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+var_dump(array(1, 2, 3, 4,) [3]);
+var_dump(array(1, 2, 3, 4,) ['foo']);
+var_dump(array(array(1,2,3), array(4, 5, 6))[1][2]);
+
+foreach (array(array(1, 2, 3))[0] as $var) {
+ echo $var;
+}
+?>
+--EXPECTF--
+int(4)
+
+Notice: Undefined index: foo in %sconst_dereference_001.php on line %d
+NULL
+int(6)
+123
diff --git a/Zend/tests/const_dereference_002.phpt b/Zend/tests/const_dereference_002.phpt
new file mode 100644
index 000000000..ff8951975
--- /dev/null
+++ b/Zend/tests/const_dereference_002.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Const string dereference
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+var_dump("foobar"[3]);
+var_dump("foobar"[2][0]);
+var_dump("foobar"["foo"]["bar"]);
+
+--EXPECTF--
+string(1) "b"
+string(1) "o"
+
+Warning: Illegal string offset 'foo' in %sconst_dereference_002.php on line %d
+
+Warning: Illegal string offset 'bar' in %sconst_dereference_002.php on line %d
+string(1) "f"
diff --git a/Zend/tests/const_dereference_003.phpt b/Zend/tests/const_dereference_003.phpt
new file mode 100644
index 000000000..810ad14b8
--- /dev/null
+++ b/Zend/tests/const_dereference_003.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Const array deference
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+var_dump([1, 2, 3, 4,][3]);
+var_dump([1, 2, 3, 4]['foo']);
+var_dump([array(1,2,3), [4, 5, 6]][1][2]);
+
+foreach (array([1, 2, 3])[0] as $var) {
+ echo $var;
+}
+?>
+--EXPECTF--
+int(4)
+
+Notice: Undefined index: foo in %sconst_dereference_003.php on line %d
+NULL
+int(6)
+123
diff --git a/Zend/tests/constants/dir-constant-eval.phpt b/Zend/tests/constants/dir-constant-eval.phpt
index 8fe619d56..8fe619d56 100755..100644
--- a/Zend/tests/constants/dir-constant-eval.phpt
+++ b/Zend/tests/constants/dir-constant-eval.phpt
diff --git a/Zend/tests/constants/dir-constant-includes.phpt b/Zend/tests/constants/dir-constant-includes.phpt
index 8ea65292d..8ea65292d 100755..100644
--- a/Zend/tests/constants/dir-constant-includes.phpt
+++ b/Zend/tests/constants/dir-constant-includes.phpt
diff --git a/Zend/tests/constants/dir-constant-nested_includes.phpt b/Zend/tests/constants/dir-constant-nested_includes.phpt
index 18bdfa891..18bdfa891 100755..100644
--- a/Zend/tests/constants/dir-constant-nested_includes.phpt
+++ b/Zend/tests/constants/dir-constant-nested_includes.phpt
diff --git a/Zend/tests/constants/dir-constant-normal.phpt b/Zend/tests/constants/dir-constant-normal.phpt
index 1a573a205..1a573a205 100755..100644
--- a/Zend/tests/constants/dir-constant-normal.phpt
+++ b/Zend/tests/constants/dir-constant-normal.phpt
diff --git a/Zend/tests/constants_005.phpt b/Zend/tests/constants_005.phpt
index d2a205b78..d2a205b78 100755..100644
--- a/Zend/tests/constants_005.phpt
+++ b/Zend/tests/constants_005.phpt
diff --git a/Zend/tests/dtor_scope.phpt b/Zend/tests/dtor_scope.phpt
index ab991cf94..ab991cf94 100755..100644
--- a/Zend/tests/dtor_scope.phpt
+++ b/Zend/tests/dtor_scope.phpt
diff --git a/Zend/tests/empty_with_expr.phpt b/Zend/tests/empty_with_expr.phpt
new file mode 100644
index 000000000..582eb3d2d
--- /dev/null
+++ b/Zend/tests/empty_with_expr.phpt
@@ -0,0 +1,32 @@
+--TEST--
+empty() with arbitrary expressions
+--FILE--
+<?php
+
+function getEmptyArray() { return []; }
+function getNonEmptyArray() { return [1, 2, 3]; }
+
+var_dump(empty([]));
+var_dump(empty([1, 2, 3]));
+
+var_dump(empty(getEmptyArray()));
+var_dump(empty(getNonEmptyArray()));
+
+var_dump(empty([] + []));
+var_dump(empty([1, 2, 3] + []));
+
+var_dump(empty("string"));
+var_dump(empty(""));
+var_dump(empty(true));
+var_dump(empty(false));
+--EXPECT--
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
diff --git a/Zend/tests/errmsg_043.phpt b/Zend/tests/errmsg_043.phpt
deleted file mode 100644
index 3de8bc206..000000000
--- a/Zend/tests/errmsg_043.phpt
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-errmsg: cannot create references to temp array
---FILE--
-<?php
-
-foreach (array(1,2,3) as $k=>&$v) {
-}
-
-echo "Done\n";
-?>
---EXPECTF--
-Fatal error: Cannot create references to elements of a temporary array expression in %s on line %d
diff --git a/Zend/tests/exception_007.phpt b/Zend/tests/exception_007.phpt
index 953e76513..953e76513 100755..100644
--- a/Zend/tests/exception_007.phpt
+++ b/Zend/tests/exception_007.phpt
diff --git a/Zend/tests/exception_008.phpt b/Zend/tests/exception_008.phpt
index 0d40541ee..0d40541ee 100755..100644
--- a/Zend/tests/exception_008.phpt
+++ b/Zend/tests/exception_008.phpt
diff --git a/Zend/tests/foreach_list_001.phpt b/Zend/tests/foreach_list_001.phpt
new file mode 100644
index 000000000..a318f1aad
--- /dev/null
+++ b/Zend/tests/foreach_list_001.phpt
@@ -0,0 +1,43 @@
+--TEST--
+foreach with list syntax
+--FILE--
+<?php
+
+foreach(array(array(1,2), array(3,4)) as list($a, $b)) {
+ var_dump($a . $b);
+}
+
+$array = array(
+ array('a', 'b'),
+ array('c', 'd'),
+);
+
+foreach ($array as list($a, $b)) {
+ var_dump($a . $b);
+}
+
+
+$multi = array(
+ array(array(1,2), array(3,4)),
+ array(array(5,6), array(7,8)),
+);
+
+foreach ($multi as list(list($a, $b), list($c, $d))) {
+ var_dump($a . $b . $c . $d);
+}
+
+foreach ($multi as $key => list(list($a, $b), list($c, $d))) {
+ var_dump($key . $a . $b . $c . $d);
+}
+
+
+?>
+--EXPECT--
+string(2) "12"
+string(2) "34"
+string(2) "ab"
+string(2) "cd"
+string(4) "1234"
+string(4) "5678"
+string(5) "01234"
+string(5) "15678"
diff --git a/Zend/tests/foreach_list_002.phpt b/Zend/tests/foreach_list_002.phpt
new file mode 100644
index 000000000..251870ba0
--- /dev/null
+++ b/Zend/tests/foreach_list_002.phpt
@@ -0,0 +1,26 @@
+--TEST--
+foreach with freak lists
+--FILE--
+<?php
+
+foreach (array(array(1,2), array(3,4)) as list($a, )) {
+ var_dump($a);
+}
+
+$array = [['a', 'b'], 'c', 'd'];
+
+foreach($array as list(list(), $a)) {
+ var_dump($a);
+}
+
+?>
+--EXPECTF--
+int(1)
+int(3)
+string(1) "b"
+
+Notice: Uninitialized string offset: 1 in %sforeach_list_002.php on line %d
+string(0) ""
+
+Notice: Uninitialized string offset: 1 in %sforeach_list_002.php on line %d
+string(0) ""
diff --git a/Zend/tests/foreach_list_003.phpt b/Zend/tests/foreach_list_003.phpt
new file mode 100644
index 000000000..8674ecd75
--- /dev/null
+++ b/Zend/tests/foreach_list_003.phpt
@@ -0,0 +1,13 @@
+--TEST--
+foreach with list key
+--FILE--
+<?php
+
+$array = [['a', 'b'], 'c', 'd'];
+
+foreach($array as list($key) => list(list(), $a)) {
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use list as key element in %sforeach_list_003.php on line %d
diff --git a/Zend/tests/foreach_list_004.phpt b/Zend/tests/foreach_list_004.phpt
new file mode 100644
index 000000000..fd48e8a1f
--- /dev/null
+++ b/Zend/tests/foreach_list_004.phpt
@@ -0,0 +1,13 @@
+--TEST--
+foreach with empty list
+--FILE--
+<?php
+
+$array = [['a', 'b'], 'c', 'd'];
+
+foreach($array as $key => list()) {
+}
+
+?>
+--EXPECTF--
+Fatal error: Cannot use empty list in %sforeach_list_004.php on line %d
diff --git a/Zend/tests/foreach_temp_array_expr_with_refs.phpt b/Zend/tests/foreach_temp_array_expr_with_refs.phpt
new file mode 100644
index 000000000..8978b7b01
--- /dev/null
+++ b/Zend/tests/foreach_temp_array_expr_with_refs.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Temporary array expressions can be iterated by reference
+--FILE--
+<?php
+
+$a = 'a';
+$b = 'b';
+
+foreach ([&$a, &$b] as &$value) {
+ $value .= '-foo';
+}
+
+var_dump($a, $b);
+
+?>
+--EXPECT--
+string(5) "a-foo"
+string(5) "b-foo"
diff --git a/Zend/tests/generators/auto_incrementing_keys.phpt b/Zend/tests/generators/auto_incrementing_keys.phpt
new file mode 100644
index 000000000..acfb2f2ce
--- /dev/null
+++ b/Zend/tests/generators/auto_incrementing_keys.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Generator keys are auto-incrementing by default
+--FILE--
+<?php
+
+function gen() {
+ yield 'foo';
+ yield 'bar';
+ yield 5 => 'rab';
+ yield 'oof';
+}
+
+foreach (gen() as $k => $v) {
+ echo $k, ' => ', $v, "\n";
+}
+
+?>
+--EXPECT--
+0 => foo
+1 => bar
+5 => rab
+6 => oof
diff --git a/Zend/tests/generators/backtrace.phpt b/Zend/tests/generators/backtrace.phpt
new file mode 100644
index 000000000..5fed1d467
--- /dev/null
+++ b/Zend/tests/generators/backtrace.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Printing the stack trace in a generator
+--FILE--
+<?php
+
+function f1() {
+ debug_print_backtrace();
+}
+
+function f2($arg1, $arg2) {
+ f1();
+ yield; // force generator
+}
+
+function f3($gen) {
+ $gen->rewind(); // trigger run
+}
+
+$gen = f2('foo', 'bar');
+f3($gen);
+
+?>
+--EXPECTF--
+#0 f1() called at [%s:%d]
+#1 f2(foo, bar)
+#2 Generator->rewind() called at [%s:%d]
+#3 f3(Generator Object ()) called at [%s:%d]
diff --git a/Zend/tests/generators/clone.phpt b/Zend/tests/generators/clone.phpt
new file mode 100644
index 000000000..36811dfe6
--- /dev/null
+++ b/Zend/tests/generators/clone.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Generators can be cloned
+--FILE--
+<?php
+
+function firstN($end) {
+ for ($i = 0; $i < $end; ++$i) {
+ yield $i;
+ }
+}
+
+$g1 = firstN(5);
+var_dump($g1->current());
+$g1->next();
+
+$g2 = clone $g1;
+var_dump($g2->current());
+$g2->next();
+
+var_dump($g2->current());
+var_dump($g1->current());
+
+$g1->next();
+var_dump($g1->current());
+
+?>
+--EXPECT--
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
diff --git a/Zend/tests/generators/clone_with_foreach.phpt b/Zend/tests/generators/clone_with_foreach.phpt
new file mode 100644
index 000000000..b05ed0731
--- /dev/null
+++ b/Zend/tests/generators/clone_with_foreach.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Cloning a generator with a foreach loop properly adds a ref for the loop var
+--FILE--
+<?php
+
+function gen() {
+ foreach ([1, 2, 3] as $i) {
+ yield $i;
+ }
+}
+
+$g1 = gen();
+var_dump($g1->current());
+
+$g2 = clone $g1;
+var_dump($g2->current());
+
+$g1->next();
+$g2->next();
+var_dump($g1->current());
+var_dump($g2->current());
+
+unset($g1);
+$g2->next();
+var_dump($g2->current());
+
+?>
+--EXPECT--
+int(1)
+int(1)
+int(2)
+int(2)
+int(3)
diff --git a/Zend/tests/generators/clone_with_stack.phpt b/Zend/tests/generators/clone_with_stack.phpt
new file mode 100644
index 000000000..5a8e6d842
--- /dev/null
+++ b/Zend/tests/generators/clone_with_stack.phpt
@@ -0,0 +1,18 @@
+--TEST--
+A generator with an active stack can be cloned
+--FILE--
+<?php
+
+function gen() {
+ var_dump(str_repeat("x", yield));
+}
+
+$g1 = gen();
+$g1->rewind();
+$g2 = clone $g1;
+unset($g1);
+$g2->send(10);
+
+?>
+--EXPECT--
+string(10) "xxxxxxxxxx"
diff --git a/Zend/tests/generators/clone_with_symbol_table.phpt b/Zend/tests/generators/clone_with_symbol_table.phpt
new file mode 100644
index 000000000..e1fefebd8
--- /dev/null
+++ b/Zend/tests/generators/clone_with_symbol_table.phpt
@@ -0,0 +1,27 @@
+--TEST--
+A generator using a symbol table can be cloned
+--FILE--
+<?php
+
+function gen() {
+ // force compiled variable for $foo
+ $foo = 'foo';
+
+ // force symbol table
+ extract(['foo' => 'bar']);
+
+ // interrupt
+ yield;
+
+ var_dump($foo);
+}
+
+$g1 = gen();
+$g1->rewind();
+$g2 = clone $g1;
+unset($g1);
+$g2->next();
+
+?>
+--EXPECT--
+string(3) "bar"
diff --git a/Zend/tests/generators/clone_with_this.phpt b/Zend/tests/generators/clone_with_this.phpt
new file mode 100644
index 000000000..b242d851e
--- /dev/null
+++ b/Zend/tests/generators/clone_with_this.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Cloning a generator method (with $this)
+--FILE--
+<?php
+
+class Test {
+ protected $foo;
+
+ public function gen() {
+ $this->foo = 'bar';
+ yield; // interrupt
+ var_dump($this->foo);
+ }
+}
+
+$g1 = (new Test)->gen();
+$g1->rewind(); // goto yield
+$g2 = clone $g1;
+unset($g1);
+$g2->next();
+
+?>
+--EXPECT--
+string(3) "bar"
diff --git a/Zend/tests/generators/dynamic_call.phpt b/Zend/tests/generators/dynamic_call.phpt
new file mode 100644
index 000000000..d56454095
--- /dev/null
+++ b/Zend/tests/generators/dynamic_call.phpt
@@ -0,0 +1,19 @@
+--TEST--
+It's possible to invoke a generator dynamically
+--FILE--
+<?php
+
+function gen($foo, $bar) {
+ yield $foo;
+ yield $bar;
+}
+
+$gen = call_user_func('gen', 'bar', 'foo');
+foreach ($gen as $value) {
+ var_dump($value);
+}
+
+?>
+--EXPECT--
+string(3) "bar"
+string(3) "foo"
diff --git a/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt b/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt
new file mode 100644
index 000000000..ad618d20b
--- /dev/null
+++ b/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Generators cannot return values (even before yield)
+--FILE--
+<?php
+
+function gen() {
+ return $foo;
+ yield;
+}
+
+?>
+--EXPECTF--
+Fatal error: Generators cannot return values using "return" in %s on line 4
diff --git a/Zend/tests/generators/errors/generator_cannot_return_error.phpt b/Zend/tests/generators/errors/generator_cannot_return_error.phpt
new file mode 100644
index 000000000..51149062a
--- /dev/null
+++ b/Zend/tests/generators/errors/generator_cannot_return_error.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Generators cannot return values
+--FILE--
+<?php
+
+function gen() {
+ yield;
+ return $abc;
+}
+
+?>
+--EXPECTF--
+Fatal error: Generators cannot return values using "return" in %s on line 5
diff --git a/Zend/tests/generators/errors/generator_extend_error.phpt b/Zend/tests/generators/errors/generator_extend_error.phpt
new file mode 100644
index 000000000..550f16ae0
--- /dev/null
+++ b/Zend/tests/generators/errors/generator_extend_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+The Generator class cannot be extended
+--FILE--
+<?php
+
+class ExtendedGenerator extends Generator { }
+
+?>
+--EXPECTF--
+Fatal error: Class ExtendedGenerator may not inherit from final class (Generator) in %s on line %d
diff --git a/Zend/tests/generators/errors/generator_instantiate_error.phpt b/Zend/tests/generators/errors/generator_instantiate_error.phpt
new file mode 100644
index 000000000..f8941c087
--- /dev/null
+++ b/Zend/tests/generators/errors/generator_instantiate_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+It's not possible to directly instantiate the Generator class
+--FILE--
+<?php
+
+new Generator;
+
+?>
+--EXPECTF--
+Catchable fatal error: The "Generator" class is reserved for internal use and cannot be manually instantiated in %s on line %d
diff --git a/Zend/tests/generators/errors/non_ref_generator_iterated_by_ref_error.phpt b/Zend/tests/generators/errors/non_ref_generator_iterated_by_ref_error.phpt
new file mode 100644
index 000000000..de5b22f6b
--- /dev/null
+++ b/Zend/tests/generators/errors/non_ref_generator_iterated_by_ref_error.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Non-ref generators cannot be iterated by-ref
+--FILE--
+<?php
+
+function gen() { yield; }
+
+$gen = gen();
+foreach ($gen as &$value) { }
+
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' with message 'You can only iterate a generator by-reference if it declared that it yields by-reference' in %s:%d
+Stack trace:
+#0 %s(%d): unknown()
+#1 {main}
+ thrown in %s on line %d
+
diff --git a/Zend/tests/generators/errors/resume_running_generator_error.phpt b/Zend/tests/generators/errors/resume_running_generator_error.phpt
new file mode 100644
index 000000000..567d72f3f
--- /dev/null
+++ b/Zend/tests/generators/errors/resume_running_generator_error.phpt
@@ -0,0 +1,17 @@
+--TEST--
+It is not possible to resume an already running generator
+--FILE--
+<?php
+
+function gen() {
+ $gen = yield;
+ $gen->next();
+}
+
+$gen = gen();
+$gen->send($gen);
+$gen->next();
+
+?>
+--EXPECTF--
+Fatal error: Cannot resume an already running generator in %s on line %d
diff --git a/Zend/tests/generators/errors/serialize_unserialize_error.phpt b/Zend/tests/generators/errors/serialize_unserialize_error.phpt
new file mode 100644
index 000000000..a8470b0a6
--- /dev/null
+++ b/Zend/tests/generators/errors/serialize_unserialize_error.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Generators can't be serialized or unserialized
+--FILE--
+<?php
+
+function gen() { yield; }
+
+$gen = gen();
+
+try {
+ serialize($gen);
+} catch (Exception $e) {
+ echo $e, "\n\n";
+}
+
+try {
+ var_dump(unserialize('O:9:"Generator":0:{}'));
+} catch (Exception $e) {
+ echo $e, "\n\n";
+}
+
+try {
+ var_dump(unserialize('C:9:"Generator":0:{}'));
+} catch (Exception $e) {
+ echo $e;
+}
+
+?>
+--EXPECTF--
+exception 'Exception' with message 'Serialization of 'Generator' is not allowed' in %s:%d
+Stack trace:
+#0 %s(%d): serialize(Object(Generator))
+#1 {main}
+
+exception 'Exception' with message 'Unserialization of 'Generator' is not allowed' in %s:%d
+Stack trace:
+#0 [internal function]: Generator->__wakeup()
+#1 %s(%d): unserialize('O:9:"Generator"...')
+#2 {main}
+
+
+Notice: unserialize(): Error at offset 19 of 20 bytes in %s on line %d
+exception 'Exception' with message 'Unserialization of 'Generator' is not allowed' in %s:%d
+Stack trace:
+#0 %s(%d): unserialize('C:9:"Generator"...')
+#1 {main}
diff --git a/Zend/tests/generators/errors/yield_const_by_ref_error.phpt b/Zend/tests/generators/errors/yield_const_by_ref_error.phpt
new file mode 100644
index 000000000..e79f83e24
--- /dev/null
+++ b/Zend/tests/generators/errors/yield_const_by_ref_error.phpt
@@ -0,0 +1,16 @@
+--TEST--
+A notice is thrown when yielding a constant value by reference
+--FILE--
+<?php
+
+function &gen() {
+ yield "foo";
+}
+
+$gen = gen();
+var_dump($gen->current());
+
+?>
+--EXPECTF--
+Notice: Only variable references should be yielded by reference in %s on line %d
+string(3) "foo"
diff --git a/Zend/tests/generators/errors/yield_in_force_closed_finally_error.phpt b/Zend/tests/generators/errors/yield_in_force_closed_finally_error.phpt
new file mode 100644
index 000000000..aada676a6
--- /dev/null
+++ b/Zend/tests/generators/errors/yield_in_force_closed_finally_error.phpt
@@ -0,0 +1,29 @@
+--TEST--
+yield cannot be used in a finally block when the generator is force-closed
+--FILE--
+<?php
+
+function gen() {
+ try {
+ echo "before yield\n";
+ yield;
+ echo "after yield\n";
+ } finally {
+ echo "before yield in finally\n";
+ yield;
+ echo "after yield in finally\n";
+ }
+
+ echo "after finally\n";
+}
+
+$gen = gen();
+$gen->rewind();
+unset($gen);
+
+?>
+--EXPECTF--
+before yield
+before yield in finally
+
+Fatal error: Cannot yield from finally in a force-closed generator in %s on line %d
diff --git a/Zend/tests/generators/errors/yield_non_ref_function_call_by_ref_error.phpt b/Zend/tests/generators/errors/yield_non_ref_function_call_by_ref_error.phpt
new file mode 100644
index 000000000..4b8563331
--- /dev/null
+++ b/Zend/tests/generators/errors/yield_non_ref_function_call_by_ref_error.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Yielding the result of a non-ref function call throw a notice
+--FILE--
+<?php
+
+function foo() {
+ return "bar";
+}
+
+function &gen() {
+ yield foo();
+}
+
+$gen = gen();
+var_dump($gen->current());
+
+?>
+--EXPECTF--
+Notice: Only variable references should be yielded by reference in %s on line %d
+string(3) "bar"
diff --git a/Zend/tests/generators/errors/yield_outside_function_error.phpt b/Zend/tests/generators/errors/yield_outside_function_error.phpt
new file mode 100644
index 000000000..f999c1c03
--- /dev/null
+++ b/Zend/tests/generators/errors/yield_outside_function_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Yield cannot be used outside of functions
+--FILE--
+<?php
+
+yield "Test";
+
+?>
+--EXPECTF--
+Fatal error: The "yield" expression can only be used inside a function in %s on line %d
diff --git a/Zend/tests/generators/fibonacci.phpt b/Zend/tests/generators/fibonacci.phpt
new file mode 100644
index 000000000..35b31352f
--- /dev/null
+++ b/Zend/tests/generators/fibonacci.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Creating an infinite fibonacci list using a generator
+--FILE--
+<?php
+
+function fib() {
+ list($a, $b) = [1, 1];
+ while (true) {
+ yield $b;
+ list($a, $b) = [$b, $a + $b];
+ }
+}
+
+foreach (fib() as $n) {
+ if ($n > 1000) break;
+
+ var_dump($n);
+}
+
+?>
+--EXPECT--
+int(1)
+int(2)
+int(3)
+int(5)
+int(8)
+int(13)
+int(21)
+int(34)
+int(55)
+int(89)
+int(144)
+int(233)
+int(377)
+int(610)
+int(987)
diff --git a/Zend/tests/generators/finally_ran_on_close.phpt b/Zend/tests/generators/finally_ran_on_close.phpt
new file mode 100644
index 000000000..44a84fae5
--- /dev/null
+++ b/Zend/tests/generators/finally_ran_on_close.phpt
@@ -0,0 +1,25 @@
+--TEST--
+finally is run even if a generator is closed mid-execution
+--FILE--
+<?php
+
+function gen() {
+ try {
+ echo "before yield\n";
+ yield;
+ echo "after yield\n";
+ } finally {
+ echo "finally run\n";
+ }
+
+ echo "code after finally\n";
+}
+
+$gen = gen();
+$gen->rewind();
+unset($gen);
+
+?>
+--EXPECT--
+before yield
+finally run
diff --git a/Zend/tests/generators/finally_uninterrupted.phpt b/Zend/tests/generators/finally_uninterrupted.phpt
new file mode 100644
index 000000000..64c94382a
--- /dev/null
+++ b/Zend/tests/generators/finally_uninterrupted.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Use of finally in generator without interrupt
+--FILE--
+<?php
+
+function gen() {
+ try {
+ throw new Exception;
+ } finally {
+ echo "finally run\n";
+ }
+
+ yield; // force generator
+}
+
+$gen = gen();
+$gen->rewind(); // force run
+
+?>
+--EXPECTF--
+finally run
+
+Fatal error: Uncaught exception 'Exception' in %s:%d
+Stack trace:
+#0 [internal function]: gen()
+#1 %s(%d): Generator->rewind()
+#2 {main}
+ thrown in %s on line %d
diff --git a/Zend/tests/generators/finally_with_return.phpt b/Zend/tests/generators/finally_with_return.phpt
new file mode 100644
index 000000000..b26a49f32
--- /dev/null
+++ b/Zend/tests/generators/finally_with_return.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Use of finally in generator with return
+--FILE--
+<?php
+
+function gen() {
+ try {
+ try {
+ echo "before return\n";
+ return;
+ echo "after return\n";
+ } finally {
+ echo "before return in inner finally\n";
+ return;
+ echo "after return in inner finally\n";
+ }
+ } finally {
+ echo "outer finally run\n";
+ }
+
+ echo "code after finally\n";
+
+ yield; // force generator
+}
+
+$gen = gen();
+$gen->rewind(); // force run
+
+?>
+--EXPECTF--
+before return
+before return in inner finally
+outer finally run
diff --git a/Zend/tests/generators/func_get_args.phpt b/Zend/tests/generators/func_get_args.phpt
new file mode 100644
index 000000000..f8d3fa7c1
--- /dev/null
+++ b/Zend/tests/generators/func_get_args.phpt
@@ -0,0 +1,21 @@
+--TEST--
+func_get_args() can be used inside generator functions
+--FILE--
+<?php
+
+function gen() {
+ var_dump(func_get_args());
+ yield; // trigger generator
+}
+
+$gen = gen("foo", "bar");
+$gen->rewind();
+
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ string(3) "foo"
+ [1]=>
+ string(3) "bar"
+}
diff --git a/Zend/tests/generators/generator_closure.phpt b/Zend/tests/generators/generator_closure.phpt
new file mode 100644
index 000000000..bf8006601
--- /dev/null
+++ b/Zend/tests/generators/generator_closure.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Closures can be generators
+--FILE--
+<?php
+
+$genFactory = function() {
+ yield 1;
+ yield 2;
+ yield 3;
+};
+
+foreach ($genFactory() as $value) {
+ var_dump($value);
+}
+
+?>
+--EXPECT--
+int(1)
+int(2)
+int(3)
diff --git a/Zend/tests/generators/generator_closure_with_this.phpt b/Zend/tests/generators/generator_closure_with_this.phpt
new file mode 100644
index 000000000..d5a4861e8
--- /dev/null
+++ b/Zend/tests/generators/generator_closure_with_this.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Non-static closures can be generators
+--FILE--
+<?php
+
+class Test {
+ public function getGenFactory() {
+ return function() {
+ yield $this;
+ };
+ }
+}
+
+$genFactory = (new Test)->getGenFactory();
+var_dump($genFactory()->current());
+
+?>
+--EXPECT--
+object(Test)#1 (0) {
+}
diff --git a/Zend/tests/generators/generator_in_multipleiterator.phpt b/Zend/tests/generators/generator_in_multipleiterator.phpt
new file mode 100644
index 000000000..611dbc965
--- /dev/null
+++ b/Zend/tests/generators/generator_in_multipleiterator.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Generators work properly in MultipleIterator
+--FILE--
+<?php
+
+function gen1() {
+ yield 'a';
+ yield 'aa';
+}
+
+function gen2() {
+ yield 'b';
+ yield 'bb';
+}
+
+$it = new MultipleIterator;
+$it->attachIterator(gen1());
+$it->attachIterator(gen2());
+
+foreach ($it as $values) {
+ var_dump($values);
+}
+
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+}
+array(2) {
+ [0]=>
+ string(2) "aa"
+ [1]=>
+ string(2) "bb"
+}
diff --git a/Zend/tests/generators/generator_method.phpt b/Zend/tests/generators/generator_method.phpt
new file mode 100644
index 000000000..b8196c171
--- /dev/null
+++ b/Zend/tests/generators/generator_method.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Methods can be generators
+--FILE--
+<?php
+
+class Test implements IteratorAggregate {
+ protected $data;
+
+ public function __construct(array $data) {
+ $this->data = $data;
+ }
+
+ public function getIterator() {
+ foreach ($this->data as $value) {
+ yield $value;
+ }
+ }
+}
+
+$test = new Test(['foo', 'bar', 'baz']);
+foreach ($test as $value) {
+ var_dump($value);
+}
+
+?>
+--EXPECT--
+string(3) "foo"
+string(3) "bar"
+string(3) "baz"
diff --git a/Zend/tests/generators/generator_method_by_ref.phpt b/Zend/tests/generators/generator_method_by_ref.phpt
new file mode 100644
index 000000000..cfe52fe67
--- /dev/null
+++ b/Zend/tests/generators/generator_method_by_ref.phpt
@@ -0,0 +1,44 @@
+--TEST--
+Generator methods can yield by reference
+--FILE--
+<?php
+
+class Test implements IteratorAggregate {
+ protected $data;
+
+ public function __construct(array $data) {
+ $this->data = $data;
+ }
+
+ public function getData() {
+ return $this->data;
+ }
+
+ public function &getIterator() {
+ foreach ($this->data as $key => &$value) {
+ yield $key => $value;
+ }
+ }
+}
+
+$test = new Test([1, 2, 3, 4, 5]);
+foreach ($test as &$value) {
+ $value *= -1;
+}
+
+var_dump($test->getData());
+
+?>
+--EXPECT--
+array(5) {
+ [0]=>
+ int(-1)
+ [1]=>
+ int(-2)
+ [2]=>
+ int(-3)
+ [3]=>
+ int(-4)
+ [4]=>
+ &int(-5)
+}
diff --git a/Zend/tests/generators/generator_returns_generator.phpt b/Zend/tests/generators/generator_returns_generator.phpt
new file mode 100644
index 000000000..ad332a3be
--- /dev/null
+++ b/Zend/tests/generators/generator_returns_generator.phpt
@@ -0,0 +1,18 @@
+--TEST--
+A generator function returns a Generator object
+--FILE--
+<?php
+
+function gen() {
+ // execution is suspended here, so the following never gets run:
+ echo "Foo";
+ // trigger a generator
+ yield;
+}
+
+$generator = gen();
+var_dump($generator instanceof Generator);
+
+?>
+--EXPECT--
+bool(true)
diff --git a/Zend/tests/generators/generator_rewind.phpt b/Zend/tests/generators/generator_rewind.phpt
new file mode 100644
index 000000000..c4b5bbbdf
--- /dev/null
+++ b/Zend/tests/generators/generator_rewind.phpt
@@ -0,0 +1,62 @@
+--TEST--
+A generator can only be rewinded before or at the first yield
+--FILE--
+<?php
+
+function gen() {
+ echo "before yield\n";
+ yield;
+ echo "after yield\n";
+ yield;
+}
+
+$gen = gen();
+$gen->rewind();
+$gen->rewind();
+$gen->next();
+
+try {
+ $gen->rewind();
+} catch (Exception $e) {
+ echo "\n", $e, "\n\n";
+}
+
+function &gen2() {
+ $foo = 'bar';
+ yield $foo;
+ yield $foo;
+}
+
+$gen = gen2();
+foreach ($gen as $v) { }
+try {
+ foreach ($gen as $v) { }
+} catch (Exception $e) {
+ echo $e, "\n\n";
+}
+
+function gen3() {
+ echo "in generator\n";
+
+ if (false) yield;
+}
+
+$gen = gen3();
+$gen->rewind();
+
+?>
+--EXPECTF--
+before yield
+after yield
+
+exception 'Exception' with message 'Cannot rewind a generator that was already run' in %s:%d
+Stack trace:
+#0 %s(%d): Generator->rewind()
+#1 {main}
+
+exception 'Exception' with message 'Cannot traverse an already closed generator' in %s:%d
+Stack trace:
+#0 %s(%d): unknown()
+#1 {main}
+
+in generator
diff --git a/Zend/tests/generators/generator_send.phpt b/Zend/tests/generators/generator_send.phpt
new file mode 100644
index 000000000..074d81538
--- /dev/null
+++ b/Zend/tests/generators/generator_send.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Values can be sent back to the generator
+--FILE--
+<?php
+
+function gen() {
+ var_dump(yield "yield foo");
+ var_dump(yield "yield bar");
+}
+
+$gen = gen();
+var_dump($gen->current());
+$gen->send("send bar");
+var_dump($gen->current());
+$gen->send("send foo");
+
+?>
+--EXPECT--
+string(9) "yield foo"
+string(8) "send bar"
+string(9) "yield bar"
+string(8) "send foo"
diff --git a/Zend/tests/generators/generator_static_method.phpt b/Zend/tests/generators/generator_static_method.phpt
new file mode 100644
index 000000000..cd9b450a7
--- /dev/null
+++ b/Zend/tests/generators/generator_static_method.phpt
@@ -0,0 +1,29 @@
+--TEST--
+A static method can be a generator
+--FILE--
+<?php
+
+class Test {
+ public static function gen() {
+ var_dump(get_class());
+ var_dump(get_called_class());
+ yield 1;
+ yield 2;
+ yield 3;
+ }
+}
+
+class ExtendedTest extends Test {
+}
+
+foreach (ExtendedTest::gen() as $i) {
+ var_dump($i);
+}
+
+?>
+--EXPECT--
+string(4) "Test"
+string(12) "ExtendedTest"
+int(1)
+int(2)
+int(3)
diff --git a/Zend/tests/generators/generator_throwing_during_function_call.phpt b/Zend/tests/generators/generator_throwing_during_function_call.phpt
new file mode 100644
index 000000000..bd0d2448b
--- /dev/null
+++ b/Zend/tests/generators/generator_throwing_during_function_call.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Stack is cleaned up properly when an exception is thrown during a function call
+--FILE--
+<?php
+
+function throwException() {
+ throw new Exception('test');
+}
+
+function gen() {
+ yield 'foo';
+ strlen("foo", "bar", throwException());
+ yield 'bar';
+}
+
+$gen = gen();
+
+var_dump($gen->current());
+
+try {
+ $gen->next();
+} catch (Exception $e) {
+ echo 'Caught exception with message "', $e->getMessage(), '"', "\n";
+}
+
+var_dump($gen->current());
+
+?>
+--EXPECT--
+string(3) "foo"
+Caught exception with message "test"
+NULL
diff --git a/Zend/tests/generators/generator_throwing_exception.phpt b/Zend/tests/generators/generator_throwing_exception.phpt
new file mode 100644
index 000000000..f537c3fc7
--- /dev/null
+++ b/Zend/tests/generators/generator_throwing_exception.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Generators can throw exceptions
+--FILE--
+<?php
+
+function gen() {
+ yield 'foo';
+ throw new Exception('test');
+ yield 'bar';
+}
+
+$gen = gen();
+
+var_dump($gen->current());
+
+try {
+ $gen->next();
+} catch (Exception $e) {
+ echo 'Caught exception with message "', $e->getMessage(), '"', "\n";
+}
+
+var_dump($gen->current());
+
+?>
+--EXPECT--
+string(3) "foo"
+Caught exception with message "test"
+NULL
diff --git a/Zend/tests/generators/generator_throwing_in_foreach.phpt b/Zend/tests/generators/generator_throwing_in_foreach.phpt
new file mode 100644
index 000000000..dbf20c2ca
--- /dev/null
+++ b/Zend/tests/generators/generator_throwing_in_foreach.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Exceptions throwing by generators during foreach iteration are properly handled
+--FILE--
+<?php
+
+function gen() {
+ throw new Exception("foo");
+ yield; // force generator
+}
+
+foreach (gen() as $value) { }
+
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' with message 'foo' in %s:%d
+Stack trace:
+#0 %s(%d): gen()
+#1 {main}
+ thrown in %s on line %d
+
diff --git a/Zend/tests/generators/generator_with_keys.phpt b/Zend/tests/generators/generator_with_keys.phpt
new file mode 100644
index 000000000..efb377679
--- /dev/null
+++ b/Zend/tests/generators/generator_with_keys.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Generators can also yield keys
+--FILE--
+<?php
+
+function reverse(array $array) {
+ end($array);
+ while (null !== $key = key($array)) {
+ yield $key => current($array);
+ prev($array);
+ }
+}
+
+$array = [
+ 'foo' => 'bar',
+ 'bar' => 'foo',
+];
+
+foreach (reverse($array) as $key => $value) {
+ echo $key, ' => ', $value, "\n";
+}
+
+?>
+--EXPECT--
+bar => foo
+foo => bar
diff --git a/Zend/tests/generators/nested_method_calls.phpt b/Zend/tests/generators/nested_method_calls.phpt
new file mode 100644
index 000000000..98aee2e60
--- /dev/null
+++ b/Zend/tests/generators/nested_method_calls.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Yield can be used in nested method calls
+--FILE--
+<?php
+
+class A {
+ function foo() {
+ echo "Called A::foo\n";
+ }
+}
+
+class B {
+ function foo() {
+ echo "Called B::foo\n";
+ }
+}
+
+function gen($obj) {
+ $obj->foo($obj->foo(yield));
+}
+
+$g1 = gen(new A);
+$g1->current();
+
+$g2 = gen(new B);
+$g2->current();
+
+$g1->next();
+
+$g3 = clone $g2;
+unset($g2);
+$g3->next();
+
+?>
+--EXPECT--
+Called A::foo
+Called A::foo
+Called B::foo
+Called B::foo
diff --git a/Zend/tests/generators/no_foreach_var_leaks.phpt b/Zend/tests/generators/no_foreach_var_leaks.phpt
new file mode 100644
index 000000000..62743895e
--- /dev/null
+++ b/Zend/tests/generators/no_foreach_var_leaks.phpt
@@ -0,0 +1,19 @@
+--TEST--
+foreach() (and other) variables aren't leaked on premature close
+--FILE--
+<?php
+
+function gen(array $array) {
+ foreach ($array as $value) {
+ yield $value;
+ }
+}
+
+$gen = gen(['Foo', 'Bar']);
+var_dump($gen->current());
+
+// generator is closed here, without running SWITCH_FREE
+
+?>
+--EXPECT--
+string(3) "Foo"
diff --git a/Zend/tests/generators/send_after_close.phpt b/Zend/tests/generators/send_after_close.phpt
new file mode 100644
index 000000000..806baf8ce
--- /dev/null
+++ b/Zend/tests/generators/send_after_close.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Calls to send() after close should do nothing
+--FILE--
+<?php
+
+function gen() { var_dump(yield); }
+
+$gen = gen();
+$gen->send('foo');
+$gen->send('bar');
+
+?>
+--EXPECT--
+string(3) "foo"
diff --git a/Zend/tests/generators/send_returns_current.phpt b/Zend/tests/generators/send_returns_current.phpt
new file mode 100644
index 000000000..27ba74bc1
--- /dev/null
+++ b/Zend/tests/generators/send_returns_current.phpt
@@ -0,0 +1,20 @@
+--TEST--
+$generator->send() returns the yielded value
+--FILE--
+<?php
+
+function reverseEchoGenerator() {
+ $data = yield;
+ while (true) {
+ $data = (yield strrev($data));
+ }
+}
+
+$gen = reverseEchoGenerator();
+var_dump($gen->send('foo'));
+var_dump($gen->send('bar'));
+
+?>
+--EXPECT--
+string(3) "oof"
+string(3) "rab"
diff --git a/Zend/tests/generators/unused_return_value.phpt b/Zend/tests/generators/unused_return_value.phpt
new file mode 100644
index 000000000..ddce64542
--- /dev/null
+++ b/Zend/tests/generators/unused_return_value.phpt
@@ -0,0 +1,13 @@
+--TEST--
+There shouldn't be any leaks when the genertor's return value isn't used
+--FILE--
+<?php
+
+function gen($foo) { yield; }
+
+gen('foo'); // return value not used
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/Zend/tests/generators/xrange.phpt b/Zend/tests/generators/xrange.phpt
new file mode 100644
index 000000000..4d8b60fa9
--- /dev/null
+++ b/Zend/tests/generators/xrange.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Simple generator xrange() test
+--FILE--
+<?php
+
+function xrange($start, $end, $step = 1) {
+ for ($i = $start; $i <= $end; $i += $step) {
+ yield $i;
+ }
+}
+
+foreach (xrange(10, 20, 2) as $i) {
+ var_dump($i);
+}
+
+?>
+--EXPECT--
+int(10)
+int(12)
+int(14)
+int(16)
+int(18)
+int(20)
diff --git a/Zend/tests/generators/yield_array_key.phpt b/Zend/tests/generators/yield_array_key.phpt
new file mode 100644
index 000000000..5afba00de
--- /dev/null
+++ b/Zend/tests/generators/yield_array_key.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Array keys can be yielded from generators
+--FILE--
+<?php
+
+function gen() {
+ yield [] => 1;
+}
+
+$gen = gen();
+var_dump($gen->key());
+var_dump($gen->current());
+
+?>
+--EXPECT--
+array(0) {
+}
+int(1)
diff --git a/Zend/tests/generators/yield_array_offset_by_ref.phpt b/Zend/tests/generators/yield_array_offset_by_ref.phpt
new file mode 100644
index 000000000..544108e64
--- /dev/null
+++ b/Zend/tests/generators/yield_array_offset_by_ref.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Array offsets can be yielded by reference
+--FILE--
+<?php
+
+function &gen(array &$array) {
+ yield $array[0];
+}
+
+$array = [1, 2, 3];
+$gen = gen($array);
+foreach ($gen as &$val) {
+ $val *= -1;
+}
+var_dump($array);
+
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ &int(-1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
diff --git a/Zend/tests/generators/yield_by_reference.phpt b/Zend/tests/generators/yield_by_reference.phpt
new file mode 100644
index 000000000..dba0791c0
--- /dev/null
+++ b/Zend/tests/generators/yield_by_reference.phpt
@@ -0,0 +1,42 @@
+--TEST--
+Generators can yield by-reference
+--FILE--
+<?php
+
+function &iter(array &$array) {
+ foreach ($array as $key => &$value) {
+ yield $key => $value;
+ }
+}
+
+$array = [1, 2, 3];
+$iter = iter($array);
+foreach ($iter as &$value) {
+ $value *= -1;
+}
+var_dump($array);
+
+$array = [1, 2, 3];
+foreach (iter($array) as &$value) {
+ $value *= -1;
+}
+var_dump($array);
+
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ int(-1)
+ [1]=>
+ int(-2)
+ [2]=>
+ &int(-3)
+}
+array(3) {
+ [0]=>
+ int(-1)
+ [1]=>
+ int(-2)
+ [2]=>
+ &int(-3)
+}
diff --git a/Zend/tests/generators/yield_during_function_call.phpt b/Zend/tests/generators/yield_during_function_call.phpt
new file mode 100644
index 000000000..21071f9fb
--- /dev/null
+++ b/Zend/tests/generators/yield_during_function_call.phpt
@@ -0,0 +1,15 @@
+--TEST--
+"yield" can occur during a function call
+--FILE--
+<?php
+
+function gen() {
+ var_dump(str_repeat("x", yield));
+}
+
+$gen = gen();
+$gen->send(10);
+
+?>
+--EXPECT--
+string(10) "xxxxxxxxxx"
diff --git a/Zend/tests/generators/yield_during_method_call.phpt b/Zend/tests/generators/yield_during_method_call.phpt
new file mode 100644
index 000000000..5fbe84fff
--- /dev/null
+++ b/Zend/tests/generators/yield_during_method_call.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Yield can be used during a method call
+--FILE--
+<?php
+
+class A {
+ public function b($c) {
+ echo $c, "\n";
+ }
+}
+
+function gen() {
+ $a = new A;
+ $a->b(yield);
+}
+
+$gen = gen();
+$gen->send('foo');
+
+// test resource cleanup
+$gen = gen();
+$gen->rewind();
+unset($gen);
+
+// test cloning
+$g1 = gen();
+$g1->rewind();
+$g2 = clone $g1;
+unset($g1);
+$g2->send('bar');
+
+?>
+--EXPECT--
+foo
+bar
diff --git a/Zend/tests/generators/yield_in_finally.phpt b/Zend/tests/generators/yield_in_finally.phpt
new file mode 100644
index 000000000..805484ad1
--- /dev/null
+++ b/Zend/tests/generators/yield_in_finally.phpt
@@ -0,0 +1,29 @@
+--TEST--
+yield can be used in finally (apart from forced closes)
+--FILE--
+<?php
+
+function gen() {
+ try {
+ echo "before return\n";
+ return;
+ echo "after return\n";
+ } finally {
+ echo "before yield\n";
+ yield "yielded value";
+ echo "after yield\n";
+ }
+
+ echo "after finally\n";
+}
+
+$gen = gen();
+var_dump($gen->current());
+$gen->next();
+
+?>
+--EXPECTF--
+before return
+before yield
+string(%d) "yielded value"
+after yield
diff --git a/Zend/tests/generators/yield_in_parenthesis.phpt b/Zend/tests/generators/yield_in_parenthesis.phpt
new file mode 100644
index 000000000..4a603f4cc
--- /dev/null
+++ b/Zend/tests/generators/yield_in_parenthesis.phpt
@@ -0,0 +1,23 @@
+--TEST--
+No additional parenthesis are required around yield if they are already present
+--FILE--
+<?php
+
+function gen() {
+ if (yield $foo); elseif (yield $foo);
+ if (yield $foo): elseif (yield $foo): endif;
+ while (yield $foo);
+ do {} while (yield $foo);
+ switch (yield $foo) {}
+ (yield $foo);
+ die(yield $foo);
+ func(yield $foo);
+ $foo->func(yield $foo);
+ new Foo(yield $foo);
+}
+
+echo "Done";
+
+?>
+--EXPECT--
+Done
diff --git a/Zend/tests/generators/yield_ref_function_call_by_reference.phpt b/Zend/tests/generators/yield_ref_function_call_by_reference.phpt
new file mode 100644
index 000000000..e371affd9
--- /dev/null
+++ b/Zend/tests/generators/yield_ref_function_call_by_reference.phpt
@@ -0,0 +1,24 @@
+--TEST--
+The result of a by-ref function call can be yielded just fine
+--FILE--
+<?php
+
+function &nop(&$var) {
+ return $var;
+}
+
+function &gen(&$var) {
+ yield nop($var);
+}
+
+$var = "foo";
+$gen = gen($var);
+foreach ($gen as &$varRef) {
+ $varRef = "bar";
+}
+
+var_dump($var);
+
+?>
+--EXPECT--
+string(3) "bar"
diff --git a/Zend/tests/generators/yield_without_value.phpt b/Zend/tests/generators/yield_without_value.phpt
new file mode 100644
index 000000000..510c755bd
--- /dev/null
+++ b/Zend/tests/generators/yield_without_value.phpt
@@ -0,0 +1,27 @@
+--TEST--
+yield can be used without a value
+--FILE--
+<?php
+
+function recv() {
+ while (true) {
+ var_dump(yield);
+ }
+}
+
+$reciever = recv();
+var_dump($reciever->current());
+$reciever->send(1);
+var_dump($reciever->current());
+$reciever->send(2);
+var_dump($reciever->current());
+$reciever->send(3);
+
+?>
+--EXPECT--
+NULL
+int(1)
+NULL
+int(2)
+NULL
+int(3)
diff --git a/Zend/tests/instanceof.phpt b/Zend/tests/instanceof.phpt
index 8bcbede99..8bcbede99 100755..100644
--- a/Zend/tests/instanceof.phpt
+++ b/Zend/tests/instanceof.phpt
diff --git a/Zend/tests/is_a.phpt b/Zend/tests/is_a.phpt
index 0a01eb756..0a01eb756 100755..100644
--- a/Zend/tests/is_a.phpt
+++ b/Zend/tests/is_a.phpt
diff --git a/Zend/tests/isset_expr_error.phpt b/Zend/tests/isset_expr_error.phpt
new file mode 100644
index 000000000..27fc6cd8d
--- /dev/null
+++ b/Zend/tests/isset_expr_error.phpt
@@ -0,0 +1,8 @@
+--TEST--
+Error message for isset(func())
+--FILE--
+<?php
+isset(1 + 1);
+?>
+--EXPECTF--
+Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in %s on line %d
diff --git a/Zend/tests/isset_func_error.phpt b/Zend/tests/isset_func_error.phpt
new file mode 100644
index 000000000..7d1036def
--- /dev/null
+++ b/Zend/tests/isset_func_error.phpt
@@ -0,0 +1,8 @@
+--TEST--
+Error message for isset(func())
+--FILE--
+<?php
+isset(abc());
+?>
+--EXPECTF--
+Fatal error: Cannot use isset() on the result of a function call (you can use "null !== func()" instead) in %s on line %d
diff --git a/Zend/tests/jump01.phpt b/Zend/tests/jump01.phpt
index 87dba88ba..87dba88ba 100755..100644
--- a/Zend/tests/jump01.phpt
+++ b/Zend/tests/jump01.phpt
diff --git a/Zend/tests/jump02.phpt b/Zend/tests/jump02.phpt
index ff83bc4b9..ff83bc4b9 100755..100644
--- a/Zend/tests/jump02.phpt
+++ b/Zend/tests/jump02.phpt
diff --git a/Zend/tests/jump03.phpt b/Zend/tests/jump03.phpt
index 2399f30ad..2399f30ad 100755..100644
--- a/Zend/tests/jump03.phpt
+++ b/Zend/tests/jump03.phpt
diff --git a/Zend/tests/jump04.phpt b/Zend/tests/jump04.phpt
index 2bbf1f5c0..2bbf1f5c0 100755..100644
--- a/Zend/tests/jump04.phpt
+++ b/Zend/tests/jump04.phpt
diff --git a/Zend/tests/jump05.phpt b/Zend/tests/jump05.phpt
index 2e5e50c06..2e5e50c06 100755..100644
--- a/Zend/tests/jump05.phpt
+++ b/Zend/tests/jump05.phpt
diff --git a/Zend/tests/jump06.phpt b/Zend/tests/jump06.phpt
index ef01b0e5b..ef01b0e5b 100755..100644
--- a/Zend/tests/jump06.phpt
+++ b/Zend/tests/jump06.phpt
diff --git a/Zend/tests/jump07.phpt b/Zend/tests/jump07.phpt
index c0cb112a7..c0cb112a7 100755..100644
--- a/Zend/tests/jump07.phpt
+++ b/Zend/tests/jump07.phpt
diff --git a/Zend/tests/jump08.phpt b/Zend/tests/jump08.phpt
index 25a211c8c..25a211c8c 100755..100644
--- a/Zend/tests/jump08.phpt
+++ b/Zend/tests/jump08.phpt
diff --git a/Zend/tests/jump09.phpt b/Zend/tests/jump09.phpt
index 52a14b7d5..52a14b7d5 100755..100644
--- a/Zend/tests/jump09.phpt
+++ b/Zend/tests/jump09.phpt
diff --git a/Zend/tests/jump10.phpt b/Zend/tests/jump10.phpt
index 67206a29a..67206a29a 100755..100644
--- a/Zend/tests/jump10.phpt
+++ b/Zend/tests/jump10.phpt
diff --git a/Zend/tests/lsb_018.phpt b/Zend/tests/lsb_018.phpt
index c7877cddf..c7877cddf 100755..100644
--- a/Zend/tests/lsb_018.phpt
+++ b/Zend/tests/lsb_018.phpt
diff --git a/Zend/tests/lsb_022.phpt b/Zend/tests/lsb_022.phpt
index 016fde83c..016fde83c 100755..100644
--- a/Zend/tests/lsb_022.phpt
+++ b/Zend/tests/lsb_022.phpt
diff --git a/Zend/tests/multibyte/multibyte_encoding_001.phpt b/Zend/tests/multibyte/multibyte_encoding_001.phpt
index 38aa80a40..38aa80a40 100755..100644
--- a/Zend/tests/multibyte/multibyte_encoding_001.phpt
+++ b/Zend/tests/multibyte/multibyte_encoding_001.phpt
diff --git a/Zend/tests/multibyte/multibyte_encoding_002.phpt b/Zend/tests/multibyte/multibyte_encoding_002.phpt
index 6e1ad80c9..6e1ad80c9 100755..100644
--- a/Zend/tests/multibyte/multibyte_encoding_002.phpt
+++ b/Zend/tests/multibyte/multibyte_encoding_002.phpt
diff --git a/Zend/tests/multibyte/multibyte_encoding_003.phpt b/Zend/tests/multibyte/multibyte_encoding_003.phpt
index 0f873dd07..0f873dd07 100755..100644
--- a/Zend/tests/multibyte/multibyte_encoding_003.phpt
+++ b/Zend/tests/multibyte/multibyte_encoding_003.phpt
Binary files differ
diff --git a/Zend/tests/ns_001.phpt b/Zend/tests/ns_001.phpt
index 67715947a..67715947a 100755..100644
--- a/Zend/tests/ns_001.phpt
+++ b/Zend/tests/ns_001.phpt
diff --git a/Zend/tests/ns_002.phpt b/Zend/tests/ns_002.phpt
index 3d9e09869..3d9e09869 100755..100644
--- a/Zend/tests/ns_002.phpt
+++ b/Zend/tests/ns_002.phpt
diff --git a/Zend/tests/ns_003.phpt b/Zend/tests/ns_003.phpt
index 4372722c2..4372722c2 100755..100644
--- a/Zend/tests/ns_003.phpt
+++ b/Zend/tests/ns_003.phpt
diff --git a/Zend/tests/ns_004.phpt b/Zend/tests/ns_004.phpt
index d293f65dc..d293f65dc 100755..100644
--- a/Zend/tests/ns_004.phpt
+++ b/Zend/tests/ns_004.phpt
diff --git a/Zend/tests/ns_005.phpt b/Zend/tests/ns_005.phpt
index c082afc48..c082afc48 100755..100644
--- a/Zend/tests/ns_005.phpt
+++ b/Zend/tests/ns_005.phpt
diff --git a/Zend/tests/ns_006.phpt b/Zend/tests/ns_006.phpt
index 1c0ec3ab0..1c0ec3ab0 100755..100644
--- a/Zend/tests/ns_006.phpt
+++ b/Zend/tests/ns_006.phpt
diff --git a/Zend/tests/ns_007.phpt b/Zend/tests/ns_007.phpt
index 2f4d1361d..2f4d1361d 100755..100644
--- a/Zend/tests/ns_007.phpt
+++ b/Zend/tests/ns_007.phpt
diff --git a/Zend/tests/ns_008.phpt b/Zend/tests/ns_008.phpt
index 2c2c9180c..2c2c9180c 100755..100644
--- a/Zend/tests/ns_008.phpt
+++ b/Zend/tests/ns_008.phpt
diff --git a/Zend/tests/ns_009.phpt b/Zend/tests/ns_009.phpt
index 3481316f2..3481316f2 100755..100644
--- a/Zend/tests/ns_009.phpt
+++ b/Zend/tests/ns_009.phpt
diff --git a/Zend/tests/ns_010.phpt b/Zend/tests/ns_010.phpt
index 28ef61bcd..28ef61bcd 100755..100644
--- a/Zend/tests/ns_010.phpt
+++ b/Zend/tests/ns_010.phpt
diff --git a/Zend/tests/ns_011.phpt b/Zend/tests/ns_011.phpt
index 1706f2a00..1706f2a00 100755..100644
--- a/Zend/tests/ns_011.phpt
+++ b/Zend/tests/ns_011.phpt
diff --git a/Zend/tests/ns_012.phpt b/Zend/tests/ns_012.phpt
index 034f12492..034f12492 100755..100644
--- a/Zend/tests/ns_012.phpt
+++ b/Zend/tests/ns_012.phpt
diff --git a/Zend/tests/ns_013.phpt b/Zend/tests/ns_013.phpt
index ef73b1395..ef73b1395 100755..100644
--- a/Zend/tests/ns_013.phpt
+++ b/Zend/tests/ns_013.phpt
diff --git a/Zend/tests/ns_014.phpt b/Zend/tests/ns_014.phpt
index 6bcab51c8..6bcab51c8 100755..100644
--- a/Zend/tests/ns_014.phpt
+++ b/Zend/tests/ns_014.phpt
diff --git a/Zend/tests/ns_015.phpt b/Zend/tests/ns_015.phpt
index ae2c81834..ae2c81834 100755..100644
--- a/Zend/tests/ns_015.phpt
+++ b/Zend/tests/ns_015.phpt
diff --git a/Zend/tests/ns_016.phpt b/Zend/tests/ns_016.phpt
index bee8b5bee..bee8b5bee 100755..100644
--- a/Zend/tests/ns_016.phpt
+++ b/Zend/tests/ns_016.phpt
diff --git a/Zend/tests/ns_017.phpt b/Zend/tests/ns_017.phpt
index 888d8e5ef..888d8e5ef 100755..100644
--- a/Zend/tests/ns_017.phpt
+++ b/Zend/tests/ns_017.phpt
diff --git a/Zend/tests/ns_018.phpt b/Zend/tests/ns_018.phpt
index 5c2495c63..5c2495c63 100755..100644
--- a/Zend/tests/ns_018.phpt
+++ b/Zend/tests/ns_018.phpt
diff --git a/Zend/tests/ns_019.phpt b/Zend/tests/ns_019.phpt
index c3db78686..c3db78686 100755..100644
--- a/Zend/tests/ns_019.phpt
+++ b/Zend/tests/ns_019.phpt
diff --git a/Zend/tests/ns_020.phpt b/Zend/tests/ns_020.phpt
index ec4fda029..ec4fda029 100755..100644
--- a/Zend/tests/ns_020.phpt
+++ b/Zend/tests/ns_020.phpt
diff --git a/Zend/tests/ns_021.phpt b/Zend/tests/ns_021.phpt
index 405468399..405468399 100755..100644
--- a/Zend/tests/ns_021.phpt
+++ b/Zend/tests/ns_021.phpt
diff --git a/Zend/tests/ns_022.inc b/Zend/tests/ns_022.inc
index be571fc34..be571fc34 100755..100644
--- a/Zend/tests/ns_022.inc
+++ b/Zend/tests/ns_022.inc
diff --git a/Zend/tests/ns_022.phpt b/Zend/tests/ns_022.phpt
index 7aebe1d5a..7aebe1d5a 100755..100644
--- a/Zend/tests/ns_022.phpt
+++ b/Zend/tests/ns_022.phpt
diff --git a/Zend/tests/ns_023.phpt b/Zend/tests/ns_023.phpt
index 34fbb56f2..34fbb56f2 100755..100644
--- a/Zend/tests/ns_023.phpt
+++ b/Zend/tests/ns_023.phpt
diff --git a/Zend/tests/ns_024.phpt b/Zend/tests/ns_024.phpt
index 019a89c47..019a89c47 100755..100644
--- a/Zend/tests/ns_024.phpt
+++ b/Zend/tests/ns_024.phpt
diff --git a/Zend/tests/ns_025.phpt b/Zend/tests/ns_025.phpt
index 917a710d9..917a710d9 100755..100644
--- a/Zend/tests/ns_025.phpt
+++ b/Zend/tests/ns_025.phpt
diff --git a/Zend/tests/ns_026.phpt b/Zend/tests/ns_026.phpt
index af2bf2ca5..af2bf2ca5 100755..100644
--- a/Zend/tests/ns_026.phpt
+++ b/Zend/tests/ns_026.phpt
diff --git a/Zend/tests/ns_027.inc b/Zend/tests/ns_027.inc
index 382381829..382381829 100755..100644
--- a/Zend/tests/ns_027.inc
+++ b/Zend/tests/ns_027.inc
diff --git a/Zend/tests/ns_027.phpt b/Zend/tests/ns_027.phpt
index 88ef22f93..88ef22f93 100755..100644
--- a/Zend/tests/ns_027.phpt
+++ b/Zend/tests/ns_027.phpt
diff --git a/Zend/tests/ns_028.inc b/Zend/tests/ns_028.inc
index 5bd3ae776..5bd3ae776 100755..100644
--- a/Zend/tests/ns_028.inc
+++ b/Zend/tests/ns_028.inc
diff --git a/Zend/tests/ns_028.phpt b/Zend/tests/ns_028.phpt
index ec23dac81..ec23dac81 100755..100644
--- a/Zend/tests/ns_028.phpt
+++ b/Zend/tests/ns_028.phpt
diff --git a/Zend/tests/ns_029.phpt b/Zend/tests/ns_029.phpt
index f1aa954ae..f1aa954ae 100755..100644
--- a/Zend/tests/ns_029.phpt
+++ b/Zend/tests/ns_029.phpt
diff --git a/Zend/tests/ns_030.phpt b/Zend/tests/ns_030.phpt
index 69724159e..69724159e 100755..100644
--- a/Zend/tests/ns_030.phpt
+++ b/Zend/tests/ns_030.phpt
diff --git a/Zend/tests/ns_031.phpt b/Zend/tests/ns_031.phpt
index 840c08621..840c08621 100755..100644
--- a/Zend/tests/ns_031.phpt
+++ b/Zend/tests/ns_031.phpt
diff --git a/Zend/tests/ns_032.phpt b/Zend/tests/ns_032.phpt
index 5717a3368..5717a3368 100755..100644
--- a/Zend/tests/ns_032.phpt
+++ b/Zend/tests/ns_032.phpt
diff --git a/Zend/tests/ns_033.phpt b/Zend/tests/ns_033.phpt
index dc431d82b..dc431d82b 100755..100644
--- a/Zend/tests/ns_033.phpt
+++ b/Zend/tests/ns_033.phpt
diff --git a/Zend/tests/ns_034.phpt b/Zend/tests/ns_034.phpt
index 76775f118..76775f118 100755..100644
--- a/Zend/tests/ns_034.phpt
+++ b/Zend/tests/ns_034.phpt
diff --git a/Zend/tests/ns_035.phpt b/Zend/tests/ns_035.phpt
index fcc771a74..fcc771a74 100755..100644
--- a/Zend/tests/ns_035.phpt
+++ b/Zend/tests/ns_035.phpt
diff --git a/Zend/tests/ns_036.phpt b/Zend/tests/ns_036.phpt
index 245cf7d5b..245cf7d5b 100755..100644
--- a/Zend/tests/ns_036.phpt
+++ b/Zend/tests/ns_036.phpt
diff --git a/Zend/tests/ns_037.phpt b/Zend/tests/ns_037.phpt
index db0a76e94..db0a76e94 100755..100644
--- a/Zend/tests/ns_037.phpt
+++ b/Zend/tests/ns_037.phpt
diff --git a/Zend/tests/ns_038.phpt b/Zend/tests/ns_038.phpt
index f3a8c8cc6..f3a8c8cc6 100755..100644
--- a/Zend/tests/ns_038.phpt
+++ b/Zend/tests/ns_038.phpt
diff --git a/Zend/tests/ns_054.phpt b/Zend/tests/ns_054.phpt
index 54ab95861..54ab95861 100755..100644
--- a/Zend/tests/ns_054.phpt
+++ b/Zend/tests/ns_054.phpt
diff --git a/Zend/tests/ns_055.phpt b/Zend/tests/ns_055.phpt
index a692e4760..a692e4760 100755..100644
--- a/Zend/tests/ns_055.phpt
+++ b/Zend/tests/ns_055.phpt
diff --git a/Zend/tests/ns_056.phpt b/Zend/tests/ns_056.phpt
index 2390608d4..2390608d4 100755..100644
--- a/Zend/tests/ns_056.phpt
+++ b/Zend/tests/ns_056.phpt
diff --git a/Zend/tests/ns_057.phpt b/Zend/tests/ns_057.phpt
index 13bf3054c..13bf3054c 100755..100644
--- a/Zend/tests/ns_057.phpt
+++ b/Zend/tests/ns_057.phpt
diff --git a/Zend/tests/ns_058.phpt b/Zend/tests/ns_058.phpt
index 7a0cd97d9..7a0cd97d9 100755..100644
--- a/Zend/tests/ns_058.phpt
+++ b/Zend/tests/ns_058.phpt
diff --git a/Zend/tests/ns_059.phpt b/Zend/tests/ns_059.phpt
index ea66037b4..ea66037b4 100755..100644
--- a/Zend/tests/ns_059.phpt
+++ b/Zend/tests/ns_059.phpt
diff --git a/Zend/tests/ns_065.inc b/Zend/tests/ns_065.inc
index 963a74e14..963a74e14 100755..100644
--- a/Zend/tests/ns_065.inc
+++ b/Zend/tests/ns_065.inc
diff --git a/Zend/tests/ns_065.phpt b/Zend/tests/ns_065.phpt
index 40ccd1e15..40ccd1e15 100755..100644
--- a/Zend/tests/ns_065.phpt
+++ b/Zend/tests/ns_065.phpt
diff --git a/Zend/tests/ns_075.phpt b/Zend/tests/ns_075.phpt
index 0156e99eb..0156e99eb 100755..100644
--- a/Zend/tests/ns_075.phpt
+++ b/Zend/tests/ns_075.phpt
diff --git a/Zend/tests/ns_076.phpt b/Zend/tests/ns_076.phpt
index eeda39bd2..eeda39bd2 100755..100644
--- a/Zend/tests/ns_076.phpt
+++ b/Zend/tests/ns_076.phpt
diff --git a/Zend/tests/ns_077_1.phpt b/Zend/tests/ns_077_1.phpt
index 5a9c4b153..5a9c4b153 100755..100644
--- a/Zend/tests/ns_077_1.phpt
+++ b/Zend/tests/ns_077_1.phpt
diff --git a/Zend/tests/ns_077_2.phpt b/Zend/tests/ns_077_2.phpt
index 8c2672185..8c2672185 100755..100644
--- a/Zend/tests/ns_077_2.phpt
+++ b/Zend/tests/ns_077_2.phpt
diff --git a/Zend/tests/ns_077_3.phpt b/Zend/tests/ns_077_3.phpt
index bdeb7924e..bdeb7924e 100755..100644
--- a/Zend/tests/ns_077_3.phpt
+++ b/Zend/tests/ns_077_3.phpt
diff --git a/Zend/tests/ns_077_4.phpt b/Zend/tests/ns_077_4.phpt
index aef91fd3e..aef91fd3e 100755..100644
--- a/Zend/tests/ns_077_4.phpt
+++ b/Zend/tests/ns_077_4.phpt
diff --git a/Zend/tests/ns_077_5.phpt b/Zend/tests/ns_077_5.phpt
index 17afe03f4..17afe03f4 100755..100644
--- a/Zend/tests/ns_077_5.phpt
+++ b/Zend/tests/ns_077_5.phpt
diff --git a/Zend/tests/ns_077_6.phpt b/Zend/tests/ns_077_6.phpt
index 17afe03f4..17afe03f4 100755..100644
--- a/Zend/tests/ns_077_6.phpt
+++ b/Zend/tests/ns_077_6.phpt
diff --git a/Zend/tests/ns_077_7.phpt b/Zend/tests/ns_077_7.phpt
index 9bf5baf05..9bf5baf05 100755..100644
--- a/Zend/tests/ns_077_7.phpt
+++ b/Zend/tests/ns_077_7.phpt
diff --git a/Zend/tests/ns_077_8.phpt b/Zend/tests/ns_077_8.phpt
index 9f9240db0..9f9240db0 100755..100644
--- a/Zend/tests/ns_077_8.phpt
+++ b/Zend/tests/ns_077_8.phpt
diff --git a/Zend/tests/ns_078.phpt b/Zend/tests/ns_078.phpt
index ed6770ff4..ed6770ff4 100755..100644
--- a/Zend/tests/ns_078.phpt
+++ b/Zend/tests/ns_078.phpt
diff --git a/Zend/tests/object_handlers.phpt b/Zend/tests/object_handlers.phpt
index 3e8dfcc53..3e8dfcc53 100755..100644
--- a/Zend/tests/object_handlers.phpt
+++ b/Zend/tests/object_handlers.phpt
diff --git a/Zend/tests/objects_015.phpt b/Zend/tests/objects_015.phpt
index a923ee0c4..a923ee0c4 100755..100644
--- a/Zend/tests/objects_015.phpt
+++ b/Zend/tests/objects_015.phpt
diff --git a/Zend/tests/offset_assign.phpt b/Zend/tests/offset_assign.phpt
index 6a0059109..721516f53 100644
--- a/Zend/tests/offset_assign.phpt
+++ b/Zend/tests/offset_assign.phpt
@@ -3,11 +3,11 @@ Crash on $x['x']['y'] += 1 when $x is string
--FILE--
<?php
$x = "a";
-$x['x']['y'] += 1;
+$x['x']['y'] += 1;
echo "Done\n";
?>
---EXPECTF--
+--EXPECTF--
Warning: Illegal string offset 'x' in %soffset_assign.php on line %d
Fatal error: Cannot use string offset as an array in %soffset_assign.php on line %d
diff --git a/Zend/tests/offset_string.phpt b/Zend/tests/offset_string.phpt
index f7cb81bb2..c546b3718 100644
--- a/Zend/tests/offset_string.phpt
+++ b/Zend/tests/offset_string.phpt
@@ -27,7 +27,7 @@ var_dump($str[$arr]);
echo "Done\n";
?>
---EXPECTF--
+--EXPECTF--
string(1) "i"
Notice: String offset cast occurred in %s on line %d
diff --git a/Zend/tests/selfParent_001.phpt b/Zend/tests/selfParent_001.phpt
index 9d8cd6e22..9d8cd6e22 100755..100644
--- a/Zend/tests/selfParent_001.phpt
+++ b/Zend/tests/selfParent_001.phpt
diff --git a/Zend/tests/selfParent_002.phpt b/Zend/tests/selfParent_002.phpt
index 18a8f09ea..18a8f09ea 100755..100644
--- a/Zend/tests/selfParent_002.phpt
+++ b/Zend/tests/selfParent_002.phpt
diff --git a/Zend/tests/try_catch_finally_001.phpt b/Zend/tests/try_catch_finally_001.phpt
new file mode 100644
index 000000000..3d478f461
--- /dev/null
+++ b/Zend/tests/try_catch_finally_001.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Try catch finally
+--FILE--
+<?php
+
+class AE extends Exception {};
+class BE extends Exception {};
+
+function foo () {
+ try {
+ try {
+ try {
+ throw new Exception("try");
+ } catch (AE $e) {
+ echo "0";
+ die("error");
+ } finally {
+ echo "1";
+ }
+ } finally {
+ echo "2";
+ }
+ } catch (BE $e) {
+ die("error");
+ } catch (Exception $e) {
+ echo "3";
+ } finally {
+ echo "4";
+ }
+ return 1;
+}
+
+var_dump(foo());
+?>
+--EXPECTF--
+1234int(1)
diff --git a/Zend/tests/try_catch_finally_002.phpt b/Zend/tests/try_catch_finally_002.phpt
new file mode 100644
index 000000000..79efcb3de
--- /dev/null
+++ b/Zend/tests/try_catch_finally_002.phpt
@@ -0,0 +1,42 @@
+--TEST--
+Try catch finally catch(multi catch blocks)
+--FILE--
+<?php
+
+class AE extends Exception {};
+class BE extends Exception {};
+
+function foo () {
+ try {
+ try {
+ try {
+ try {
+ echo "1";
+ throw new Exception("try");
+ } catch (AE $e) {
+ die("error");
+ } finally {
+ echo "2";
+ }
+ } finally {
+ echo "3";
+ }
+ } catch (BE $e) {
+ die("error");
+ } finally {
+ echo "4";
+ }
+ } catch (Exception $e) {
+ echo "5";
+ } catch (AE $e) {
+ die("error");
+ } finally {
+ echo "6";
+ }
+ return 7;
+}
+
+var_dump(foo());
+?>
+--EXPECTF--
+123456int(7)
diff --git a/Zend/tests/try_catch_finally_003.phpt b/Zend/tests/try_catch_finally_003.phpt
new file mode 100644
index 000000000..784063b74
--- /dev/null
+++ b/Zend/tests/try_catch_finally_003.phpt
@@ -0,0 +1,38 @@
+--TEST--
+Try catch finally (multi catch blocks with return)
+--FILE--
+<?php
+
+class AE extends Exception {};
+class BE extends Exception {};
+
+function foo () {
+ try {
+ try {
+ try {
+ throw new Exception("try");
+ } catch (AE $e) {
+ die("error");
+ } finally {
+ echo "1";
+ return 1;
+ }
+ } finally {
+ echo "2";
+ return 2;
+ }
+ } catch (BE $e) {
+ die("error");
+ } catch (Exception $e) {
+ echo "3";
+ } finally {
+ echo "4";
+ return 4;
+ }
+ return 5;
+}
+
+var_dump(foo());
+?>
+--EXPECTF--
+1234int(4)
diff --git a/Zend/tests/try_catch_finally_004.phpt b/Zend/tests/try_catch_finally_004.phpt
new file mode 100644
index 000000000..eb8d0966a
--- /dev/null
+++ b/Zend/tests/try_catch_finally_004.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Try catch finally (re-throw exception in catch block)
+--CREDITS--
+adoy
+--FILE--
+<?php
+function dummy($msg) {
+ var_dump($msg);
+}
+try {
+ try {
+ var_dump("try");
+ return;
+ } catch (Exception $e) {
+ dummy("catch");
+ throw $e;
+ } finally {
+ dummy("finally");
+ }
+} catch (Exception $e) {
+ dummy("catch2");
+} finally {
+ dummy("finally2");
+}
+var_dump("end");
+?>
+--EXPECTF--
+string(3) "try"
+string(7) "finally"
+string(8) "finally2"
diff --git a/Zend/tests/try_catch_finally_005.phpt b/Zend/tests/try_catch_finally_005.phpt
new file mode 100644
index 000000000..dafeb6bbe
--- /dev/null
+++ b/Zend/tests/try_catch_finally_005.phpt
@@ -0,0 +1,52 @@
+--TEST--
+Try catch finally (break / cont in try block)
+--CREDITS--
+adoy
+--FILE--
+<?php
+for ($i = 0; $i < 100 ; $i ++) {
+ try {
+ break;
+ } finally {
+ var_dump("break");
+ }
+}
+
+
+for ($i = 0; $i < 2; $i ++) {
+ try {
+ continue;
+ } finally {
+ var_dump("continue1");
+ }
+}
+
+for ($i = 0; $i < 3; $i ++) {
+ try {
+ try {
+ continue;
+ } finally {
+ var_dump("continue2");
+ if ($i == 1) {
+ throw new Exception("continue exception");
+ }
+ }
+ } catch (Exception $e) {
+ var_dump("cactched");
+ } finally {
+ var_dump("finally");
+ }
+}
+
+?>
+--EXPECTF--
+string(5) "break"
+string(9) "continue1"
+string(9) "continue1"
+string(9) "continue2"
+string(7) "finally"
+string(9) "continue2"
+string(8) "cactched"
+string(7) "finally"
+string(9) "continue2"
+string(7) "finally"
diff --git a/Zend/tests/try_catch_finally_006.phpt b/Zend/tests/try_catch_finally_006.phpt
new file mode 100644
index 000000000..dab6af6a5
--- /dev/null
+++ b/Zend/tests/try_catch_finally_006.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Try catch finally (goto in try/catch block)
+--CREDITS--
+adoy
+--FILE--
+<?php
+function foo($ex = NULL) {
+ try {
+ try {
+ goto label;
+ } finally {
+ var_dump("finally1");
+ if ($ex) throw $ex;
+ }
+ } catch (Exception $e) {
+ var_dump("catched");
+ if ($ex) return "return1";
+ } finally {
+ var_dump("finally2");
+ }
+
+label:
+ var_dump("label");
+ return "return2";
+}
+
+var_dump(foo());
+var_dump(foo(new Exception()));
+
+?>
+--EXPECTF--
+string(8) "finally1"
+string(8) "finally2"
+string(5) "label"
+string(7) "return2"
+string(8) "finally1"
+string(7) "catched"
+string(8) "finally2"
+string(7) "return1"
diff --git a/Zend/tests/try_catch_finally_007.phpt b/Zend/tests/try_catch_finally_007.phpt
new file mode 100644
index 000000000..ad33c6813
--- /dev/null
+++ b/Zend/tests/try_catch_finally_007.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Try catch finally (goto in try/catch block)
+--CREDITS--
+adoy
+--FILE--
+<?php
+function foo($ret = FALSE) {
+ try {
+ try {
+ do {
+ goto label;
+ } while(0);
+ foreach (array() as $val) {
+ continue;
+ }
+ } finally {
+ var_dump("finally1");
+ throw new Exception("exception");
+ }
+ } catch (Exception $e) {
+ goto local;
+local:
+ var_dump("catched");
+ if ($ret) return "return";
+ } finally {
+ var_dump("finally2");
+ }
+
+label:
+ var_dump("label");
+}
+
+var_dump(foo());
+var_dump(foo(true));
+
+?>
+--EXPECTF--
+string(8) "finally1"
+string(7) "catched"
+string(8) "finally2"
+string(5) "label"
+NULL
+string(8) "finally1"
+string(7) "catched"
+string(8) "finally2"
+string(6) "return"
diff --git a/Zend/tests/try_finally_001.phpt b/Zend/tests/try_finally_001.phpt
new file mode 100644
index 000000000..0f740872c
--- /dev/null
+++ b/Zend/tests/try_finally_001.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Try finally (basic test)
+--FILE--
+<?php
+function foo ($a) {
+ try {
+ throw new Exception("ex");
+ } finally {
+ var_dump($a);
+ }
+}
+
+foo("finally");
+?>
+--EXPECTF--
+string(7) "finally"
+
+Fatal error: Uncaught exception 'Exception' with message 'ex' %s
+Stack trace:
+#0 %stry_finally_001.php(%d): foo('finally')
+#1 {main}
+ thrown in %stry_finally_001.php on line %d
diff --git a/Zend/tests/try_finally_002.phpt b/Zend/tests/try_finally_002.phpt
new file mode 100644
index 000000000..99a34f62f
--- /dev/null
+++ b/Zend/tests/try_finally_002.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Try finally (re-throw exception in finally block)
+--FILE--
+<?php
+function foo () {
+ try {
+ throw new Exception("try");
+ } finally {
+ throw new Exception("finally");
+ }
+}
+
+try {
+ foo();
+} catch (Exception $e) {
+ do {
+ var_dump($e->getMessage());
+ } while ($e = $e->getPrevious());
+}
+?>
+--EXPECT--
+string(7) "finally"
+string(3) "try"
diff --git a/Zend/tests/try_finally_003.phpt b/Zend/tests/try_finally_003.phpt
new file mode 100644
index 000000000..c1294911b
--- /dev/null
+++ b/Zend/tests/try_finally_003.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Try finally (call sequence test)
+--FILE--
+<?php
+function foo () {
+ try {
+ echo "1";
+ try {
+ echo "2";
+ throw new Exception("ex");
+ } finally {
+ echo "3";
+ }
+ } finally {
+ echo "4";
+ }
+}
+
+foo();
+?>
+--EXPECTF--
+1234
+Fatal error: Uncaught exception 'Exception' with message 'ex' %s
+Stack trace:
+#0 %stry_finally_003.php(%d): foo()
+#1 {main}
+ thrown in %stry_finally_003.php on line %d
diff --git a/Zend/tests/try_finally_004.phpt b/Zend/tests/try_finally_004.phpt
new file mode 100644
index 000000000..08930a40c
--- /dev/null
+++ b/Zend/tests/try_finally_004.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Try finally (without catch/finally block)
+--FILE--
+<?php
+function foo () {
+ try {
+ echo "3";
+ }
+}
+
+foo();
+?>
+--EXPECTF--
+Fatal error: Cannot use try without catch or finally in %stry_finally_004.php on line %d
diff --git a/Zend/tests/try_finally_005.phpt b/Zend/tests/try_finally_005.phpt
new file mode 100644
index 000000000..8664d6b1b
--- /dev/null
+++ b/Zend/tests/try_finally_005.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Try finally (with long goto)
+--FILE--
+<?php
+function foo () {
+ try {
+ } finally {
+ goto label;
+ }
+label:
+ return 1;
+}
+
+foo();
+?>
+--EXPECTF--
+Fatal error: jump out of a finally block is disallowed in %stry_finally_005.php on line %d
diff --git a/Zend/tests/try_finally_006.phpt b/Zend/tests/try_finally_006.phpt
new file mode 100644
index 000000000..f53e6b5bc
--- /dev/null
+++ b/Zend/tests/try_finally_006.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Try finally (with near goto)
+--FILE--
+<?php
+function foo () {
+ $jmp = 1;
+ try {
+ } finally {
+previous:
+ if ($jmp) {
+ goto label;
+ echo "dummy";
+label:
+ echo "label\n";
+ $jmp = 0;
+ goto previous;
+ }
+ echo "okey";
+ }
+}
+
+foo();
+?>
+--EXPECTF--
+label
+okey
diff --git a/Zend/tests/try_finally_007.phpt b/Zend/tests/try_finally_007.phpt
new file mode 100644
index 000000000..634937495
--- /dev/null
+++ b/Zend/tests/try_finally_007.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Try finally (with goto previous label)
+--FILE--
+<?php
+function foo () {
+ try {
+label:
+ echo "label";
+ try {
+ } finally {
+ goto label;
+ echo "dummy";
+ }
+ } catch (Exception $e) {
+ } finally {
+ }
+}
+
+foo();
+?>
+--EXPECTF--
+Fatal error: jump out of a finally block is disallowed in %stry_finally_007.php on line %d
diff --git a/Zend/tests/try_finally_008.phpt b/Zend/tests/try_finally_008.phpt
new file mode 100644
index 000000000..cee37aeda
--- /dev/null
+++ b/Zend/tests/try_finally_008.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Try finally (with break in do...while)
+--FILE--
+<?php
+function foo () {
+ do {
+ try {
+ try {
+ } finally {
+ break;
+ }
+ } catch (Exception $e) {
+ } finally {
+ }
+ } while (0);
+}
+
+foo();
+?>
+--EXPECTF--
+Fatal error: jump out of a finally block is disallowed in %stry_finally_008.php on line %d
diff --git a/Zend/tests/try_finally_009.phpt b/Zend/tests/try_finally_009.phpt
new file mode 100644
index 000000000..b29930a75
--- /dev/null
+++ b/Zend/tests/try_finally_009.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Try finally (with for continue)
+--FILE--
+<?php
+function foo () {
+ for($i = 0; $i < 5; $i++) {
+ do {
+ try {
+ try {
+ } finally {
+ }
+ } catch (Exception $e) {
+ } finally {
+ continue;
+ }
+ } while (0);
+ }
+}
+
+foo();
+?>
+--EXPECTF--
+Fatal error: jump out of a finally block is disallowed in %stry_finally_009.php on line %d
diff --git a/Zend/tests/unexpected_ref_bug.phpt b/Zend/tests/unexpected_ref_bug.phpt
index 61fe1aa5b..61fe1aa5b 100755..100644
--- a/Zend/tests/unexpected_ref_bug.phpt
+++ b/Zend/tests/unexpected_ref_bug.phpt
diff --git a/Zend/tests/unset_cv12.phpt b/Zend/tests/unset_cv12.phpt
index a22b13dea..a22b13dea 100755..100644
--- a/Zend/tests/unset_cv12.phpt
+++ b/Zend/tests/unset_cv12.phpt
diff --git a/Zend/zend.h b/Zend/zend.h
index 3226f8ce0..d2a4ef695 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -22,7 +22,7 @@
#ifndef ZEND_H
#define ZEND_H
-#define ZEND_VERSION "2.4.0"
+#define ZEND_VERSION "2.5.0-dev"
#define ZEND_ENGINE_2
@@ -133,6 +133,11 @@ char *alloca ();
# endif
#endif
+/* Compatibility with non-clang compilers */
+#ifndef __has_attribute
+# define __has_attribute(x) 0
+#endif
+
/* GCC x.y.z supplies __GNUC__ = x and __GNUC_MINOR__ = y */
#ifdef __GNUC__
# define ZEND_GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
@@ -146,6 +151,14 @@ char *alloca ();
# define ZEND_ATTRIBUTE_MALLOC
#endif
+#if ZEND_GCC_VERSION >= 4003 || __has_attribute(alloc_size)
+# define ZEND_ATTRIBUTE_ALLOC_SIZE(X) __attribute__ ((alloc_size(X)))
+# define ZEND_ATTRIBUTE_ALLOC_SIZE2(X,Y) __attribute__ ((alloc_size(X,Y)))
+#else
+# define ZEND_ATTRIBUTE_ALLOC_SIZE(X)
+# define ZEND_ATTRIBUTE_ALLOC_SIZE2(X,Y)
+#endif
+
#if ZEND_GCC_VERSION >= 2007
# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
#else
@@ -263,10 +276,10 @@ static const char long_min_digits[] = "9223372036854775808";
#define MAX_LENGTH_OF_DOUBLE 32
-#undef SUCCESS
-#undef FAILURE
-#define SUCCESS 0
-#define FAILURE -1 /* this MUST stay a negative number, or it may affect functions! */
+typedef enum {
+ SUCCESS = 0,
+ FAILURE = -1, /* this MUST stay a negative number, or it may affect functions! */
+} ZEND_RESULT_CODE;
#include "zend_hash.h"
#include "zend_ts_hash.h"
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 0b0e8632c..155ae88b6 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -658,9 +658,9 @@ static unsigned int _mem_block_end_magic = 0;
#define ZEND_MM_LARGE_BUCKET_INDEX(S) zend_mm_high_bit(S)
-static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
+static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(2);
static void _zend_mm_free_int(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(3);
static inline unsigned int zend_mm_high_bit(size_t _size)
{
diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h
index b8b800e0d..6b071c289 100644
--- a/Zend/zend_alloc.h
+++ b/Zend/zend_alloc.h
@@ -54,12 +54,12 @@ BEGIN_EXTERN_C()
ZEND_API char *zend_strndup(const char *s, unsigned int length) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
+ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(1);
ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void *_safe_malloc(size_t nmemb, size_t size, size_t offset) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE2(1,2);
+ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(2);
ZEND_API void *_safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void *_safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
diff --git a/Zend/zend_build.h b/Zend/zend_build.h
index 042f50e80..042f50e80 100755..100644
--- a/Zend/zend_build.h
+++ b/Zend/zend_build.h
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index eab98ed94..698ef72e5 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1512,7 +1512,6 @@ ZEND_FUNCTION(trigger_error)
ZEND_FUNCTION(set_error_handler)
{
zval *error_handler;
- zend_bool had_orig_error_handler=0;
char *error_handler_name = NULL;
long error_type = E_ALL;
@@ -1520,38 +1519,31 @@ ZEND_FUNCTION(set_error_handler)
return;
}
- if (!zend_is_callable(error_handler, 0, &error_handler_name TSRMLS_CC)) {
- zend_error(E_WARNING, "%s() expects the argument (%s) to be a valid callback",
- get_active_function_name(TSRMLS_C), error_handler_name?error_handler_name:"unknown");
+ if (Z_TYPE_P(error_handler) != IS_NULL) { /* NULL == unset */
+ if (!zend_is_callable(error_handler, 0, &error_handler_name TSRMLS_CC)) {
+ zend_error(E_WARNING, "%s() expects the argument (%s) to be a valid callback",
+ get_active_function_name(TSRMLS_C), error_handler_name?error_handler_name:"unknown");
+ efree(error_handler_name);
+ return;
+ }
efree(error_handler_name);
- return;
}
- efree(error_handler_name);
if (EG(user_error_handler)) {
- had_orig_error_handler = 1;
- *return_value = *EG(user_error_handler);
- zval_copy_ctor(return_value);
- INIT_PZVAL(return_value);
+ RETVAL_ZVAL(EG(user_error_handler), 1, 0);
+
zend_stack_push(&EG(user_error_handlers_error_reporting), &EG(user_error_handler_error_reporting), sizeof(EG(user_error_handler_error_reporting)));
zend_ptr_stack_push(&EG(user_error_handlers), EG(user_error_handler));
}
- ALLOC_ZVAL(EG(user_error_handler));
- if (!zend_is_true(error_handler)) { /* unset user-defined handler */
- FREE_ZVAL(EG(user_error_handler));
+ if (Z_TYPE_P(error_handler) == IS_NULL) { /* unset user-defined handler */
EG(user_error_handler) = NULL;
- RETURN_TRUE;
+ return;
}
+ ALLOC_ZVAL(EG(user_error_handler));
+ MAKE_COPY_ZVAL(&error_handler, EG(user_error_handler));
EG(user_error_handler_error_reporting) = (int)error_type;
- *EG(user_error_handler) = *error_handler;
- zval_copy_ctor(EG(user_error_handler));
- INIT_PZVAL(EG(user_error_handler));
-
- if (!had_orig_error_handler) {
- RETURN_NULL();
- }
}
/* }}} */
@@ -1585,7 +1577,6 @@ ZEND_FUNCTION(set_exception_handler)
{
zval *exception_handler;
char *exception_handler_name = NULL;
- zend_bool had_orig_exception_handler=0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &exception_handler) == FAILURE) {
return;
@@ -1602,24 +1593,18 @@ ZEND_FUNCTION(set_exception_handler)
}
if (EG(user_exception_handler)) {
- had_orig_exception_handler = 1;
- *return_value = *EG(user_exception_handler);
- zval_copy_ctor(return_value);
+ RETVAL_ZVAL(EG(user_exception_handler), 1, 0);
+
zend_ptr_stack_push(&EG(user_exception_handlers), EG(user_exception_handler));
}
- ALLOC_ZVAL(EG(user_exception_handler));
if (Z_TYPE_P(exception_handler) == IS_NULL) { /* unset user-defined handler */
- FREE_ZVAL(EG(user_exception_handler));
EG(user_exception_handler) = NULL;
- RETURN_TRUE;
+ return;
}
+ ALLOC_ZVAL(EG(user_exception_handler));
MAKE_COPY_ZVAL(&exception_handler, EG(user_exception_handler))
-
- if (!had_orig_exception_handler) {
- RETURN_NULL();
- }
}
/* }}} */
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index c39d8eaa1..2d2c284b7 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1722,7 +1722,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
}
{
- /* Push a seperator to the switch and foreach stacks */
+ /* Push a seperator to the switch stack */
zend_switch_entry switch_entry;
switch_entry.cond.op_type = IS_UNUSED;
@@ -1730,16 +1730,16 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
switch_entry.control_var = 0;
zend_stack_push(&CG(switch_cond_stack), (void *) &switch_entry, sizeof(switch_entry));
+ }
- {
- /* Foreach stack separator */
- zend_op dummy_opline;
+ {
+ /* Push a separator to the foreach stack */
+ zend_op dummy_opline;
- dummy_opline.result_type = IS_UNUSED;
- dummy_opline.op1_type = IS_UNUSED;
+ dummy_opline.result_type = IS_UNUSED;
+ dummy_opline.op1_type = IS_UNUSED;
- zend_stack_push(&CG(foreach_copy_stack), (void *) &dummy_opline, sizeof(zend_op));
- }
+ zend_stack_push(&CG(foreach_copy_stack), (void *) &dummy_opline, sizeof(zend_op));
}
if (CG(doc_comment)) {
@@ -2611,9 +2611,12 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */
{
zend_op *opline;
int start_op_number, end_op_number;
+ zend_bool returns_reference = (CG(active_op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
+
+ /* The error for use of return inside a generator is thrown in pass_two. */
if (do_end_vparse) {
- if ((CG(active_op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) && !zend_is_function_or_method_call(expr)) {
+ if (returns_reference && !zend_is_function_or_method_call(expr)) {
zend_do_end_variable_parse(expr, BP_VAR_W, 0 TSRMLS_CC);
} else {
zend_do_end_variable_parse(expr, BP_VAR_R, 0 TSRMLS_CC);
@@ -2638,7 +2641,7 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- opline->opcode = (CG(active_op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) ? ZEND_RETURN_BY_REF : ZEND_RETURN;
+ opline->opcode = returns_reference ? ZEND_RETURN_BY_REF : ZEND_RETURN;
if (expr) {
SET_NODE(opline->op1, expr);
@@ -2655,12 +2658,58 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */
}
/* }}} */
+void zend_do_yield(znode *result, znode *value, const znode *key, zend_bool is_variable TSRMLS_DC) /* {{{ */
+{
+ 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");
+ }
+
+ CG(active_op_array)->fn_flags |= ZEND_ACC_GENERATOR;
+
+ if (is_variable) {
+ if ((CG(active_op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) && !zend_is_function_or_method_call(value)) {
+ zend_do_end_variable_parse(value, BP_VAR_W, 0 TSRMLS_CC);
+ } else {
+ zend_do_end_variable_parse(value, BP_VAR_R, 0 TSRMLS_CC);
+ }
+ }
+
+ opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+
+ opline->opcode = ZEND_YIELD;
+
+ if (value) {
+ SET_NODE(opline->op1, value);
+
+ if (is_variable && zend_is_function_or_method_call(value)) {
+ opline->extended_value = ZEND_RETURNS_FUNCTION;
+ }
+ } else {
+ SET_UNUSED(opline->op1);
+ }
+
+ if (key) {
+ SET_NODE(opline->op2, key);
+ } else {
+ SET_UNUSED(opline->op2);
+ }
+
+ opline->result_type = IS_VAR;
+ opline->result.var = get_temporary_variable(CG(active_op_array));
+ GET_NODE(result, opline->result);
+}
+/* }}} */
+
static int zend_add_try_element(zend_uint try_op TSRMLS_DC) /* {{{ */
{
int try_catch_offset = CG(active_op_array)->last_try_catch++;
CG(active_op_array)->try_catch_array = erealloc(CG(active_op_array)->try_catch_array, sizeof(zend_try_catch_element)*CG(active_op_array)->last_try_catch);
CG(active_op_array)->try_catch_array[try_catch_offset].try_op = try_op;
+ CG(active_op_array)->try_catch_array[try_catch_offset].finally_op = 0;
+ CG(active_op_array)->try_catch_array[try_catch_offset].finally_end = 0;
return try_catch_offset;
}
/* }}} */
@@ -2677,7 +2726,7 @@ void zend_do_first_catch(znode *open_parentheses TSRMLS_DC) /* {{{ */
}
/* }}} */
-void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC) /* {{{ */
+void zend_initialize_try_catch_element(znode *catch_token TSRMLS_DC) /* {{{ */
{
int jmp_op_number = get_next_op_number(CG(active_op_array));
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -2694,7 +2743,7 @@ void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC) /* {{{
zend_stack_top(&CG(bp_stack), (void **) &jmp_list_ptr);
zend_llist_add_element(jmp_list_ptr, &jmp_op_number);
- zend_add_catch_element(try_token->u.op.opline_num, get_next_op_number(CG(active_op_array)) TSRMLS_CC);
+ catch_token->EA = get_next_op_number(CG(active_op_array));
}
/* }}} */
@@ -2720,7 +2769,11 @@ void zend_do_try(znode *try_token TSRMLS_DC) /* {{{ */
}
/* }}} */
-void zend_do_begin_catch(znode *try_token, znode *class_name, znode *catch_var, znode *first_catch TSRMLS_DC) /* {{{ */
+void zend_do_finally(znode *finally_token TSRMLS_DC) /* {{{ */ {
+ finally_token->u.op.opline_num = get_next_op_number(CG(active_op_array));
+} /* }}} */
+
+void zend_do_begin_catch(znode *catch_token, znode *class_name, znode *catch_var, znode *first_catch TSRMLS_DC) /* {{{ */
{
long catch_op_number;
zend_op *opline;
@@ -2748,11 +2801,11 @@ void zend_do_begin_catch(znode *try_token, znode *class_name, znode *catch_var,
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 */
- try_token->u.op.opline_num = catch_op_number;
+ catch_token->u.op.opline_num = catch_op_number;
}
/* }}} */
-void zend_do_end_catch(const znode *try_token TSRMLS_DC) /* {{{ */
+void zend_do_end_catch(znode *catch_token TSRMLS_DC) /* {{{ */
{
int jmp_op_number = get_next_op_number(CG(active_op_array));
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -2766,7 +2819,35 @@ void zend_do_end_catch(const znode *try_token TSRMLS_DC) /* {{{ */
zend_stack_top(&CG(bp_stack), (void **) &jmp_list_ptr);
zend_llist_add_element(jmp_list_ptr, &jmp_op_number);
- CG(active_op_array)->opcodes[try_token->u.op.opline_num].extended_value = get_next_op_number(CG(active_op_array));
+ CG(active_op_array)->opcodes[catch_token->u.op.opline_num].extended_value = get_next_op_number(CG(active_op_array));
+}
+/* }}} */
+
+void zend_do_bind_catch(znode *try_token, znode *catch_token TSRMLS_DC) /* {{{ */ {
+ if (catch_token->op_type != IS_UNUSED) {
+ zend_add_catch_element(try_token->u.op.opline_num, catch_token->EA TSRMLS_CC);
+ }
+}
+/* }}} */
+
+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");
+ }
+ if (finally_token->op_type != IS_UNUSED) {
+ zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ CG(active_op_array)->try_catch_array[try_token->u.op.opline_num].finally_op = finally_token->u.op.opline_num;
+ CG(active_op_array)->try_catch_array[try_token->u.op.opline_num].finally_end = get_next_op_number(CG(active_op_array));
+ CG(active_op_array)->has_finally_block = 1;
+
+ opline->opcode = ZEND_LEAVE;
+ SET_UNUSED(opline->op1);
+ SET_UNUSED(opline->op2);
+ }
+ if (catch_token->op_type == IS_UNUSED) {
+ CG(active_op_array)->try_catch_array[try_token->u.op.opline_num].catch_op = 0;
+ }
}
/* }}} */
@@ -3885,7 +3966,7 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args,
/* if it is 0, no modifieres has been changed */
if (aliases[i]->modifiers) {
- fn_copy.common.fn_flags = aliases[i]->modifiers;
+ fn_copy.common.fn_flags = aliases[i]->modifiers | ZEND_ACC_ALIAS;
if (!(aliases[i]->modifiers & ZEND_ACC_PPP_MASK)) {
fn_copy.common.fn_flags |= ZEND_ACC_PUBLIC;
}
@@ -3926,7 +4007,7 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args,
&& (!aliases[i]->trait_method->ce || fn->common.scope == aliases[i]->trait_method->ce)
&& (aliases[i]->trait_method->mname_len == fnname_len)
&& (zend_binary_strcasecmp(aliases[i]->trait_method->method_name, aliases[i]->trait_method->mname_len, fn->common.function_name, fnname_len) == 0)) {
- fn_copy.common.fn_flags = aliases[i]->modifiers;
+ fn_copy.common.fn_flags = aliases[i]->modifiers | ZEND_ACC_ALIAS;
if (!(aliases[i]->modifiers & ZEND_ACC_PPP_MASK)) {
fn_copy.common.fn_flags |= ZEND_ACC_PUBLIC;
@@ -3975,8 +4056,10 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
/** Resolve classes for all precedence operations. */
if (cur_precedence->exclude_from_classes) {
cur_method_ref = cur_precedence->trait_method;
- cur_precedence->trait_method->ce = zend_fetch_class(cur_method_ref->class_name,
- cur_method_ref->cname_len, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC);
+ 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);
+ }
/** Ensure that the prefered method is actually available. */
lcname = zend_str_tolower_dup(cur_method_ref->method_name,
@@ -4003,7 +4086,9 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
char* class_name = (char*)cur_precedence->exclude_from_classes[j];
zend_uint name_length = strlen(class_name);
- cur_precedence->exclude_from_classes[j] = zend_fetch_class(class_name, name_length, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC);
+ 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);
+ }
/* make sure that the trait method is not from a class mentioned in
exclude_from_classes, for consistency */
@@ -4030,7 +4115,9 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
/** For all aliases with an explicit class name, resolve the class now. */
if (ce->trait_aliases[i]->trait_method->class_name) {
cur_method_ref = ce->trait_aliases[i]->trait_method;
- cur_method_ref->ce = zend_fetch_class(cur_method_ref->class_name, cur_method_ref->cname_len, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC);
+ 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);
+ }
/** And, ensure that the referenced method is resolvable, too. */
lcname = zend_str_tolower_dup(cur_method_ref->method_name,
@@ -6099,7 +6186,16 @@ void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC
zend_do_end_variable_parse(variable, BP_VAR_IS, 0 TSRMLS_CC);
- zend_check_writable_variable(variable);
+ if (zend_is_function_or_method_call(variable)) {
+ if (type == ZEND_ISEMPTY) {
+ /* 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)");
+ }
+
+ return;
+ }
if (variable->op_type == IS_CV) {
last_op = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -6246,15 +6342,18 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
opline->extended_value |= ZEND_FE_FETCH_WITH_KEY;
}
- if ((key->op_type != IS_UNUSED) && (key->EA & ZEND_PARSED_REFERENCE_VARIABLE)) {
- zend_error(E_COMPILE_ERROR, "Key element cannot be a reference");
+ if ((key->op_type != IS_UNUSED)) {
+ if (key->EA & ZEND_PARSED_REFERENCE_VARIABLE) {
+ zend_error(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");
+ }
}
if (value->EA & ZEND_PARSED_REFERENCE_VARIABLE) {
assign_by_ref = 1;
- if (!(opline-1)->extended_value) {
- zend_error(E_COMPILE_ERROR, "Cannot create references to elements of a temporary array expression");
- }
+
/* Mark extended_value for assign-by-reference */
opline->extended_value |= ZEND_FE_FETCH_BYREF;
CG(active_op_array)->opcodes[foreach_token->u.op.opline_num].extended_value |= ZEND_FE_RESET_REFERENCE;
@@ -6283,13 +6382,21 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token
GET_NODE(&value_node, opline->result);
- if (assign_by_ref) {
- zend_do_end_variable_parse(value, BP_VAR_W, 0 TSRMLS_CC);
- /* Mark FE_FETCH as IS_VAR as it holds the data directly as a value */
- zend_do_assign_ref(NULL, value, &value_node TSRMLS_CC);
- } else {
- zend_do_assign(&dummy, value, &value_node TSRMLS_CC);
+ if (value->EA & ZEND_PARSED_LIST_EXPR) {
+ if (!CG(list_llist).head) {
+ zend_error(E_COMPILE_ERROR, "Cannot use empty list");
+ }
+ zend_do_list_end(&dummy, &value_node TSRMLS_CC);
zend_do_free(&dummy TSRMLS_CC);
+ } else {
+ if (assign_by_ref) {
+ zend_do_end_variable_parse(value, BP_VAR_W, 0 TSRMLS_CC);
+ /* Mark FE_FETCH as IS_VAR as it holds the data directly as a value */
+ zend_do_assign_ref(NULL, value, &value_node TSRMLS_CC);
+ } else {
+ zend_do_assign(&dummy, value, &value_node TSRMLS_CC);
+ zend_do_free(&dummy TSRMLS_CC);
+ }
}
if (key->op_type != IS_UNUSED) {
@@ -6718,9 +6825,6 @@ again:
case T_OPEN_TAG_WITH_ECHO:
retval = T_ECHO;
break;
- case T_END_HEREDOC:
- efree(Z_STRVAL(zendlval->u.constant));
- break;
}
INIT_PZVAL(&zendlval->u.constant);
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index 79ace0c3c..77809dae5 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -80,7 +80,7 @@ typedef union _znode_op {
zend_op *jmp_addr;
zval *zv;
zend_literal *literal;
- void *ptr; /* Used for passing pointers from the compile to execution phase, currently used for traits */
+ 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 */
@@ -132,6 +132,8 @@ typedef struct _zend_label {
typedef struct _zend_try_catch_element {
zend_uint try_op;
zend_uint catch_op; /* ketchup! */
+ zend_uint finally_op;
+ zend_uint finally_end;
} zend_try_catch_element;
#if SIZEOF_LONG == 8
@@ -194,6 +196,7 @@ typedef struct _zend_try_catch_element {
#define ZEND_ACC_CLOSURE 0x100000
+#define ZEND_ACC_GENERATOR 0x800000
/* function flag for internal user call handlers __call, __callstatic */
#define ZEND_ACC_CALL_VIA_HANDLER 0x200000
@@ -281,6 +284,7 @@ struct _zend_op_array {
zend_try_catch_element *try_catch_array;
int last_try_catch;
+ zend_bool has_finally_block;
/* static variables support */
HashTable *static_variables;
@@ -383,6 +387,8 @@ struct _zend_execute_data {
zend_class_entry *current_called_scope;
zval *current_this;
zval *current_object;
+ zend_uint leaving;
+ zend_uint leaving_dest;
};
#define EX(element) execute_data.element
@@ -491,6 +497,7 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_c
int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
+void zend_do_yield(znode *result, znode *value, const znode *key, zend_bool is_variable TSRMLS_DC);
void zend_do_handle_exception(TSRMLS_D);
void zend_do_begin_lambda_function_declaration(znode *result, znode *function_token, int return_reference, int is_static TSRMLS_DC);
@@ -498,7 +505,10 @@ void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC);
void zend_do_try(znode *try_token TSRMLS_DC);
void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var, znode *first_catch TSRMLS_DC);
-void zend_do_end_catch(const znode *try_token TSRMLS_DC);
+void zend_do_bind_catch(znode *try_token, znode *catch_token TSRMLS_DC);
+void zend_do_end_catch(znode *catch_token TSRMLS_DC);
+void zend_do_finally(znode *finally_token TSRMLS_DC);
+void zend_do_end_finally(znode *try_token, znode* catch_token, znode *finally_token TSRMLS_DC);
void zend_do_throw(const znode *expr TSRMLS_DC);
ZEND_API int do_bind_function(const zend_op_array *op_array, zend_op *opline, HashTable *function_table, zend_bool compile_time);
@@ -664,7 +674,7 @@ void print_op_array(zend_op_array *op_array, int optimizations);
ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC);
zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array);
void zend_do_first_catch(znode *open_parentheses TSRMLS_DC);
-void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC);
+void zend_initialize_try_catch_element(znode *catch_token TSRMLS_DC);
void zend_do_mark_last_catch(const znode *first_catch, const znode *last_additional_catch TSRMLS_DC);
ZEND_API zend_bool zend_is_compiling(TSRMLS_D);
ZEND_API char *zend_make_compiled_string_description(const char *name TSRMLS_DC);
@@ -720,6 +730,7 @@ int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
#define ZEND_PARSED_VARIABLE (1<<4)
#define ZEND_PARSED_REFERENCE_VARIABLE (1<<5)
#define ZEND_PARSED_NEW (1<<6)
+#define ZEND_PARSED_LIST_EXPR (1<<7)
/* unset types */
diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c
index 73a765811..bcc43ea7d 100644
--- a/Zend/zend_default_classes.c
+++ b/Zend/zend_default_classes.c
@@ -25,6 +25,7 @@
#include "zend_interfaces.h"
#include "zend_exceptions.h"
#include "zend_closures.h"
+#include "zend_generators.h"
ZEND_API void zend_register_default_classes(TSRMLS_D)
@@ -33,6 +34,7 @@ ZEND_API void zend_register_default_classes(TSRMLS_D)
zend_register_default_exception(TSRMLS_C);
zend_register_iterator_wrapper(TSRMLS_C);
zend_register_closure_ce(TSRMLS_C);
+ zend_register_generator_ce(TSRMLS_C);
}
/*
diff --git a/Zend/zend_dtrace.c b/Zend/zend_dtrace.c
index 5b2d0d2df..3d109deab 100644
--- a/Zend/zend_dtrace.c
+++ b/Zend/zend_dtrace.c
@@ -83,7 +83,7 @@ ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC)
}
}
-ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC)
+ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC)
{
int lineno;
char *filename;
@@ -96,7 +96,7 @@ ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int r
DTRACE_EXECUTE_ENTRY(filename, lineno);
}
- execute_internal(execute_data_ptr, return_value_used TSRMLS_CC);
+ execute_internal(execute_data_ptr, fci, return_value_used TSRMLS_CC);
if (DTRACE_EXECUTE_RETURN_ENABLED()) {
DTRACE_EXECUTE_RETURN(filename, lineno);
diff --git a/Zend/zend_dtrace.h b/Zend/zend_dtrace.h
index 65d19ef34..49388e562 100644
--- a/Zend/zend_dtrace.h
+++ b/Zend/zend_dtrace.h
@@ -32,11 +32,11 @@ extern "C" {
#ifdef HAVE_DTRACE
ZEND_API zend_op_array *(*zend_dtrace_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
ZEND_API void (*zend_dtrace_execute)(zend_op_array *op_array TSRMLS_DC);
-ZEND_API void (*zend_dtrace_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
+ZEND_API void (*zend_dtrace_execute_internal)(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC);
ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int type TSRMLS_DC);
ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC);
-ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
+ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC);
#include <zend_dtrace_gen.h>
#endif /* HAVE_DTRACE */
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index fbc73258c..361afc6f1 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -35,6 +35,7 @@
#include "zend_exceptions.h"
#include "zend_interfaces.h"
#include "zend_closures.h"
+#include "zend_generators.h"
#include "zend_vm.h"
#include "zend_dtrace.h"
@@ -1474,10 +1475,18 @@ static int zend_check_symbol(zval **pz TSRMLS_DC)
ZEND_API opcode_handler_t *zend_opcode_handlers;
-ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC)
+ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC)
{
- zval **return_value_ptr = &(*(temp_variable *)((char *) execute_data_ptr->Ts + 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);
+ 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);
+
+ } else {
+ zval **return_value_ptr = &(*(temp_variable *)((char *) execute_data_ptr->Ts + 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);
+ }
}
#define ZEND_VM_NEXT_OPCODE() \
@@ -1512,7 +1521,7 @@ ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler
{
if (opcode != ZEND_USER_OPCODE) {
if (handler == NULL) {
- /* restore the original handler */
+ /* restore the original handler */
zend_user_opcodes[opcode] = opcode;
} else {
zend_user_opcodes[opcode] = ZEND_USER_OPCODE;
@@ -1536,6 +1545,50 @@ ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const t
return get_zval_ptr_ptr(op_type, node, Ts, should_free, type);
}
+void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC) /* {{{ */
+{
+ if (EG(symtable_cache_ptr) >= EG(symtable_cache_limit)) {
+ zend_hash_destroy(symbol_table);
+ FREE_HASHTABLE(symbol_table);
+ } else {
+ /* clean before putting into the cache, since clean
+ could call dtors, which could use cached hash */
+ zend_hash_clean(symbol_table);
+ *(++EG(symtable_cache_ptr)) = symbol_table;
+ }
+}
+/* }}} */
+
+void zend_free_compiled_variables(zval ***CVs, int num) /* {{{ */
+{
+ int i;
+ for (i = 0; i < num; ++i) {
+ if (CVs[i]) {
+ zval_ptr_dtor(CVs[i]);
+ }
+ }
+}
+/* }}} */
+
+void** zend_copy_arguments(void **arguments_end) /* {{{ */
+{
+ int arguments_count = (int) (zend_uintptr_t) *arguments_end;
+ size_t arguments_size = (arguments_count + 1) * sizeof(void **);
+ void **arguments_start = arguments_end - arguments_count;
+ void **copied_arguments_start = emalloc(arguments_size);
+ void **copied_arguments_end = copied_arguments_start + arguments_count;
+ int i;
+
+ memcpy(copied_arguments_start, arguments_start, arguments_size);
+
+ for (i = 0; i < arguments_count; i++) {
+ Z_ADDREF_P((zval *) arguments_start[i]);
+ }
+
+ return copied_arguments_end;
+}
+/* }}} */
+
/*
* Local variables:
* tab-width: 4
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 7d427388b..4594eba9e 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -5,7 +5,7 @@
| Copyright (c) 1998-2012 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 |
+ | 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 |
@@ -49,14 +49,17 @@ typedef union _temp_variable {
BEGIN_EXTERN_C()
+struct _zend_fcall_info;
ZEND_API extern void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
-ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
+ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, struct _zend_fcall_info *fci, int return_value_used TSRMLS_DC);
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 void execute(zend_op_array *op_array TSRMLS_DC);
-ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_value_used 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);
ZEND_API int zend_is_true(zval *op);
#define safe_free_zval_ptr(p) safe_free_zval_ptr_rel(p ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
static zend_always_inline void safe_free_zval_ptr_rel(zval *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
@@ -270,7 +273,7 @@ static zend_always_inline void *zend_vm_stack_alloc(size_t size TSRMLS_DC)
}
static zend_always_inline void zend_vm_stack_free_int(void *ptr TSRMLS_DC)
-{
+{
if (UNEXPECTED(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) == (void**)ptr)) {
zend_vm_stack p = EG(argument_stack);
@@ -282,7 +285,7 @@ static zend_always_inline void zend_vm_stack_free_int(void *ptr TSRMLS_DC)
}
static zend_always_inline void zend_vm_stack_free(void *ptr TSRMLS_DC)
-{
+{
if (UNEXPECTED(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) == (void**)ptr)) {
zend_vm_stack p = EG(argument_stack);
@@ -302,7 +305,7 @@ static zend_always_inline void zend_vm_stack_free(void *ptr TSRMLS_DC)
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) ||
+ if (UNEXPECTED(EG(argument_stack)->top - ZEND_VM_STACK_ELEMETS(EG(argument_stack)) < count) ||
UNEXPECTED(EG(argument_stack)->top == EG(argument_stack)->end)) {
zend_vm_stack p = EG(argument_stack);
@@ -431,6 +434,10 @@ ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const t
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(zval ***CVs, int num);
+void **zend_copy_arguments(void **arguments_end);
+
#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 1deee2a86..9787966f2 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -31,6 +31,7 @@
#include "zend_extensions.h"
#include "zend_exceptions.h"
#include "zend_closures.h"
+#include "zend_generators.h"
#include "zend_vm.h"
#include "zend_float.h"
#ifdef HAVE_SYS_TIME_H
@@ -38,7 +39,7 @@
#endif
ZEND_API void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
-ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
+ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC);
/* true globals */
ZEND_API const zend_fcall_info empty_fcall_info = { 0, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0 };
@@ -406,7 +407,7 @@ ZEND_API const char *zend_get_executed_filename(TSRMLS_D) /* {{{ */
ZEND_API uint zend_get_executed_lineno(TSRMLS_D) /* {{{ */
{
- if(EG(exception) && EG(opline_ptr) && active_opline->opcode == ZEND_HANDLE_EXCEPTION &&
+ if(EG(exception) && EG(opline_ptr) && active_opline->opcode == ZEND_HANDLE_EXCEPTION &&
active_opline->lineno == 0 && EG(opline_before_exception)) {
return EG(opline_before_exception)->lineno;
}
@@ -600,7 +601,7 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
zend_hash_init(tmp_ht, zend_hash_num_elements(Z_ARRVAL_P(p)), NULL, ZVAL_PTR_DTOR, 0);
zend_hash_copy(tmp_ht, Z_ARRVAL_P(p), (copy_ctor_func_t) zval_deep_copy, (void *) &tmp, sizeof(zval *));
Z_ARRVAL_P(p) = tmp_ht;
- }
+ }
/* First go over the array and see if there are any constant indices */
zend_hash_internal_pointer_reset(Z_ARRVAL_P(p));
@@ -955,17 +956,15 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
EG(return_value_ptr_ptr) = fci->retval_ptr_ptr;
EG(active_op_array) = (zend_op_array *) EX(function_state).function;
original_opline_ptr = EG(opline_ptr);
- zend_execute(EG(active_op_array) TSRMLS_CC);
+
+ if (EG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ *fci->retval_ptr_ptr = zend_generator_create_zval(EG(active_op_array) TSRMLS_CC);
+ } else {
+ zend_execute(EG(active_op_array) TSRMLS_CC);
+ }
+
if (!fci->symbol_table && EG(active_symbol_table)) {
- if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) {
- zend_hash_destroy(EG(active_symbol_table));
- FREE_HASHTABLE(EG(active_symbol_table));
- } else {
- /* clean before putting into the cache, since clean
- could call dtors, which could use cached hash */
- zend_hash_clean(EG(active_symbol_table));
- *(++EG(symtable_cache_ptr)) = EG(active_symbol_table);
- }
+ zend_clean_and_cache_symbol_table(EG(active_symbol_table) TSRMLS_CC);
}
EG(active_symbol_table) = calling_symbol_table;
EG(active_op_array) = original_op_array;
@@ -977,7 +976,12 @@ 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;
}
- ((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);
+ 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);
+ } else {
+ zend_execute_internal(&execute_data, fci, 1 TSRMLS_CC);
+ }
/* We shouldn't fix bad extensions here,
because it can break proper ones (Bug #34045)
if (!EX(function_state).function->common.return_reference)
@@ -1312,9 +1316,9 @@ void execute_new_code(TSRMLS_D) /* {{{ */
ZEND_VM_SET_OPCODE_HANDLER(opline);
opline++;
}
-
+
zend_release_labels(TSRMLS_C);
-
+
EG(return_value_ptr_ptr) = NULL;
EG(active_op_array) = CG(active_op_array);
orig_interactive = CG(interactive);
@@ -1337,11 +1341,11 @@ ZEND_API void zend_timeout(int dummy) /* {{{ */
if (zend_on_timeout) {
#ifdef ZEND_SIGNALS
- /*
+ /*
We got here because we got a timeout signal, so we are in a signal handler
at this point. However, we want to be able to timeout any user-supplied
shutdown functions, so pretend we are not in a signal handler while we are
- calling these
+ calling these
*/
SIGG(running) = 0;
#endif
@@ -1590,7 +1594,7 @@ check_fetch_type:
zend_error(E_ERROR, "Trait '%s' not found", class_name);
} else {
zend_error(E_ERROR, "Class '%s' not found", class_name);
- }
+ }
}
}
return NULL;
@@ -1613,7 +1617,7 @@ zend_class_entry *zend_fetch_class_by_name(const char *class_name, uint class_na
zend_error(E_ERROR, "Trait '%s' not found", class_name);
} else {
zend_error(E_ERROR, "Class '%s' not found", class_name);
- }
+ }
}
}
return NULL;
@@ -1754,7 +1758,7 @@ ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */
zend_execute_data *ex;
if (!EG(active_symbol_table)) {
-
+
/* Search for last called user function */
ex = EG(current_execute_data);
while (ex && !ex->op_array) {
diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h
index b3f510ac1..703e03c3f 100644
--- a/Zend/zend_extensions.h
+++ b/Zend/zend_extensions.h
@@ -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 220100525
+#define ZEND_EXTENSION_API_NO 220121113
typedef struct _zend_extension_version_info {
int zend_extension_api_no;
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
new file mode 100644
index 000000000..87f0644e8
--- /dev/null
+++ b/Zend/zend_generators.c
@@ -0,0 +1,916 @@
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2012 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: Nikita Popov <nikic@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#include "zend.h"
+#include "zend_API.h"
+#include "zend_interfaces.h"
+#include "zend_exceptions.h"
+#include "zend_generators.h"
+
+ZEND_API zend_class_entry *zend_ce_generator;
+static zend_object_handlers zend_generator_handlers;
+
+void zend_generator_close(zend_generator *generator, zend_bool finished_execution TSRMLS_DC) /* {{{ */
+{
+ if (generator->execute_data) {
+ zend_execute_data *execute_data = generator->execute_data;
+ zend_op_array *op_array = execute_data->op_array;
+
+ if (!finished_execution) {
+ if (op_array->has_finally_block) {
+ /* -1 required because we want the last run opcode, not the
+ * next to-be-run one. */
+ zend_uint op_num = execute_data->opline - op_array->opcodes - 1;
+ zend_uint finally_op_num = 0;
+
+ /* Find next finally block */
+ int i;
+ for (i = 0; i < op_array->last_try_catch; i++) {
+ zend_try_catch_element *try_catch = &op_array->try_catch_array[i];
+
+ if (op_num < try_catch->try_op) {
+ break;
+ }
+
+ if (op_num < try_catch->finally_op) {
+ finally_op_num = try_catch->finally_op;
+ }
+ }
+
+ /* If a finally block was found we jump directly to it and
+ * resume the generator. Furthermore we abort this close call
+ * because the generator will already be closed somewhere in
+ * the resume. */
+ if (finally_op_num) {
+ execute_data->opline = &op_array->opcodes[finally_op_num];
+ execute_data->leaving = ZEND_RETURN;
+ generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
+ zend_generator_resume(generator TSRMLS_CC);
+ return;
+ }
+ }
+ }
+
+ if (!execute_data->symbol_table) {
+ zend_free_compiled_variables(execute_data->CVs, op_array->last_var);
+ } else {
+ zend_clean_and_cache_symbol_table(execute_data->symbol_table TSRMLS_CC);
+ }
+
+ if (execute_data->current_this) {
+ zval_ptr_dtor(&execute_data->current_this);
+ }
+
+ if (execute_data->object) {
+ zval_ptr_dtor(&execute_data->object);
+ }
+
+ /* If the generator is closed before it can finish execution (reach
+ * a return statement) we have to free loop variables manually, as
+ * we don't know whether the SWITCH_FREE / FREE opcodes have run */
+ if (!finished_execution) {
+ /* -1 required because we want the last run opcode, not the
+ * next to-be-run one. */
+ zend_uint op_num = execute_data->opline - op_array->opcodes - 1;
+
+ int i;
+ for (i = 0; i < op_array->last_brk_cont; ++i) {
+ zend_brk_cont_element *brk_cont = op_array->brk_cont_array + i;
+
+ if (brk_cont->start < 0) {
+ continue;
+ } else if (brk_cont->start > op_num) {
+ break;
+ } else if (brk_cont->brk > op_num) {
+ zend_op *brk_opline = op_array->opcodes + brk_cont->brk;
+
+ switch (brk_opline->opcode) {
+ case ZEND_SWITCH_FREE:
+ {
+ temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
+ zval_ptr_dtor(&var->var.ptr);
+ }
+ break;
+ case ZEND_FREE:
+ {
+ temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
+ zval_dtor(&var->tmp_var);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ /* Clear any backed up stack arguments */
+ if (generator->backed_up_stack) {
+ zval **zvals = (zval **) generator->backed_up_stack;
+ size_t zval_num = generator->backed_up_stack_size / sizeof(zval *);
+ int i;
+
+ for (i = 0; i < zval_num; i++) {
+ zval_ptr_dtor(&zvals[i]);
+ }
+
+ efree(generator->backed_up_stack);
+ }
+
+ if (generator->backed_up_arg_types_stack) {
+ /* The arg types stack contains three elements per call: fbc, object
+ * and called_scope. Here we traverse the stack from top to bottom
+ * and dtor the object. */
+ int i = generator->backed_up_arg_types_stack_count / 3;
+ while (i--) {
+ zval *object = (zval *) generator->backed_up_arg_types_stack[3*i + 1];
+ if (object) {
+ zval_ptr_dtor(&object);
+ }
+ }
+
+ efree(generator->backed_up_arg_types_stack);
+ }
+
+ /* We have added an additional stack frame in prev_execute_data, so we
+ * have to free it. It also contains the arguments passed to the
+ * generator (for func_get_args) so those have to be freed too. */
+ {
+ zend_execute_data *prev_execute_data = execute_data->prev_execute_data;
+ void **arguments = prev_execute_data->function_state.arguments;
+
+ if (arguments) {
+ int arguments_count = (int) (zend_uintptr_t) *arguments;
+ zval **arguments_start = (zval **) (arguments - arguments_count);
+ int i;
+
+ for (i = 0; i < arguments_count; ++i) {
+ zval_ptr_dtor(arguments_start + i);
+ }
+
+ efree(arguments_start);
+ }
+
+ efree(prev_execute_data);
+ }
+
+ /* Free a clone of closure */
+ if (op_array->fn_flags & ZEND_ACC_CLOSURE) {
+ destroy_op_array(op_array TSRMLS_CC);
+ efree(op_array);
+ }
+
+ efree(execute_data);
+ generator->execute_data = NULL;
+ }
+
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ generator->value = NULL;
+ }
+
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ generator->key = NULL;
+ }
+}
+/* }}} */
+
+static void zend_generator_free_storage(zend_generator *generator TSRMLS_DC) /* {{{ */
+{
+ zend_generator_close(generator, 0 TSRMLS_CC);
+
+ zend_object_std_dtor(&generator->std TSRMLS_CC);
+ efree(generator);
+}
+/* }}} */
+
+static void zend_generator_clone_storage(zend_generator *orig, zend_generator **clone_ptr) /* {{{ */
+{
+ zend_generator *clone = emalloc(sizeof(zend_generator));
+ memcpy(clone, orig, sizeof(zend_generator));
+
+ if (orig->execute_data) {
+ /* Create a few shorter aliases to the old execution data */
+ zend_execute_data *execute_data = orig->execute_data;
+ zend_op_array *op_array = execute_data->op_array;
+ HashTable *symbol_table = execute_data->symbol_table;
+
+ /* Alloc separate execution context, as well as separate sections for
+ * compiled variables and temporary variables */
+ size_t execute_data_size = ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data));
+ size_t CVs_size = ZEND_MM_ALIGNED_SIZE(sizeof(zval **) * op_array->last_var * (symbol_table ? 1 : 2));
+ size_t Ts_size = ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T;
+ size_t total_size = execute_data_size + CVs_size + Ts_size;
+
+ clone->execute_data = emalloc(total_size);
+
+ /* Copy the zend_execute_data struct */
+ memcpy(clone->execute_data, execute_data, execute_data_size);
+
+ /* Set the pointers to the memory segments for the compiled and
+ * temporary variables (which are located after the execute_data) */
+ clone->execute_data->CVs = (zval ***) ((char *) clone->execute_data + execute_data_size);
+ clone->execute_data->Ts = (temp_variable *) ((char *) clone->execute_data->CVs + CVs_size);
+
+ /* Zero out the compiled variables section */
+ memset(clone->execute_data->CVs, 0, sizeof(zval **) * op_array->last_var);
+
+ if (!symbol_table) {
+ int i;
+
+ /* Copy compiled variables */
+ for (i = 0; i < op_array->last_var; i++) {
+ if (execute_data->CVs[i]) {
+ clone->execute_data->CVs[i] = (zval **) clone->execute_data->CVs + op_array->last_var + i;
+ *clone->execute_data->CVs[i] = (zval *) orig->execute_data->CVs[op_array->last_var + i];
+ Z_ADDREF_PP(clone->execute_data->CVs[i]);
+ }
+ }
+ } else {
+ /* Copy symbol table */
+ ALLOC_HASHTABLE(clone->execute_data->symbol_table);
+ zend_hash_init(clone->execute_data->symbol_table, zend_hash_num_elements(symbol_table), NULL, ZVAL_PTR_DTOR, 0);
+ zend_hash_copy(clone->execute_data->symbol_table, symbol_table, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *));
+
+ /* Update zval** pointers for compiled variables */
+ {
+ int i;
+ for (i = 0; i < op_array->last_var; i++) {
+ if (zend_hash_quick_find(clone->execute_data->symbol_table, op_array->vars[i].name, op_array->vars[i].name_len + 1, op_array->vars[i].hash_value, (void **) &clone->execute_data->CVs[i]) == FAILURE) {
+ clone->execute_data->CVs[i] = NULL;
+ }
+ }
+ }
+ }
+
+ /* Copy the temporary variables */
+ memcpy(clone->execute_data->Ts, orig->execute_data->Ts, Ts_size);
+
+ /* Add references to loop variables */
+ {
+ zend_uint op_num = execute_data->opline - op_array->opcodes;
+
+ int i;
+ for (i = 0; i < op_array->last_brk_cont; ++i) {
+ zend_brk_cont_element *brk_cont = op_array->brk_cont_array + i;
+
+ if (brk_cont->start < 0) {
+ continue;
+ } else if (brk_cont->start > op_num) {
+ break;
+ } else if (brk_cont->brk > op_num) {
+ zend_op *brk_opline = op_array->opcodes + brk_cont->brk;
+
+ if (brk_opline->opcode == ZEND_SWITCH_FREE) {
+ temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
+
+ Z_ADDREF_P(var->var.ptr);
+ }
+ }
+ }
+ }
+
+ if (orig->backed_up_stack) {
+ /* Copy backed up stack */
+ clone->backed_up_stack = emalloc(orig->backed_up_stack_size);
+ memcpy(clone->backed_up_stack, orig->backed_up_stack, orig->backed_up_stack_size);
+
+ /* Add refs to stack variables */
+ {
+ zval **zvals = (zval **) orig->backed_up_stack;
+ size_t zval_num = orig->backed_up_stack_size / sizeof(zval *);
+ int i;
+
+ for (i = 0; i < zval_num; i++) {
+ Z_ADDREF_P(zvals[i]);
+ }
+ }
+ }
+
+ if (orig->backed_up_arg_types_stack) {
+ size_t stack_size = orig->backed_up_arg_types_stack_count * sizeof(void *);
+
+ clone->backed_up_arg_types_stack = emalloc(stack_size);
+ memcpy(clone->backed_up_arg_types_stack, orig->backed_up_arg_types_stack, stack_size);
+
+ /* We have to add refs to the objects in the arg types stack (the
+ * object is always the second element of a three-pack. */
+ {
+ int i, stack_frames = clone->backed_up_arg_types_stack_count / 3;
+ for (i = 0; i < stack_frames; i++) {
+ zval *object = (zval *) clone->backed_up_arg_types_stack[3*i + 1];
+ if (object) {
+ Z_ADDREF_P(object);
+ }
+ }
+ }
+ }
+
+ /* Update the send_target to use the temporary variable with the same
+ * offset as the original generator, but in our temporary variable
+ * memory segment. */
+ if (orig->send_target) {
+ size_t offset = (char *) orig->send_target - (char *) execute_data->Ts;
+ clone->send_target = (temp_variable *) (
+ (char *) clone->execute_data->Ts + offset
+ );
+ Z_ADDREF_P(clone->send_target->var.ptr);
+ }
+
+ if (execute_data->current_this) {
+ Z_ADDREF_P(execute_data->current_this);
+ }
+
+ if (execute_data->object) {
+ Z_ADDREF_P(execute_data->object);
+ }
+
+ /* Prev execute data contains an additional stack frame (for proper
+ * backtraces) which has to be copied. */
+ clone->execute_data->prev_execute_data = emalloc(sizeof(zend_execute_data));
+ memcpy(clone->execute_data->prev_execute_data, execute_data->prev_execute_data, sizeof(zend_execute_data));
+
+ /* It also contains the arguments passed to the generator, which also
+ * have to be copied */
+ if (execute_data->prev_execute_data->function_state.arguments) {
+ clone->execute_data->prev_execute_data->function_state.arguments
+ = zend_copy_arguments(execute_data->prev_execute_data->function_state.arguments);
+ }
+ }
+
+ /* The value and key are known not to be references, so simply add refs */
+ if (orig->value) {
+ Z_ADDREF_P(orig->value);
+ }
+
+ if (orig->key) {
+ Z_ADDREF_P(orig->key);
+ }
+
+ *clone_ptr = clone;
+}
+/* }}} */
+
+static zend_object_value zend_generator_create(zend_class_entry *class_type TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator;
+ zend_object_value object;
+
+ generator = emalloc(sizeof(zend_generator));
+ memset(generator, 0, sizeof(zend_generator));
+
+ /* The key will be incremented on first use, so it'll start at 0 */
+ generator->largest_used_integer_key = -1;
+
+ zend_object_std_init(&generator->std, class_type TSRMLS_CC);
+
+ object.handle = zend_objects_store_put(generator, NULL,
+ (zend_objects_free_object_storage_t) zend_generator_free_storage,
+ (zend_objects_store_clone_t) zend_generator_clone_storage
+ TSRMLS_CC
+ );
+ object.handlers = &zend_generator_handlers;
+
+ return object;
+}
+/* }}} */
+
+/* Requires globals EG(scope), EG(current_scope), EG(This),
+ * EG(active_symbol_table) and EG(current_execute_data). */
+zval *zend_generator_create_zval(zend_op_array *op_array TSRMLS_DC) /* {{{ */
+{
+ zval *return_value;
+ zend_generator *generator;
+ zend_execute_data *current_execute_data;
+ zend_op **opline_ptr;
+ zend_execute_data *execute_data;
+
+ /* Create a clone of closure, because it may be destroyed */
+ if (op_array->fn_flags & ZEND_ACC_CLOSURE) {
+ zend_op_array *op_array_copy = (zend_op_array*)emalloc(sizeof(zend_op_array));
+ *op_array_copy = *op_array;
+ function_add_ref((zend_function *) op_array_copy);
+ op_array = op_array_copy;
+ }
+
+ /* Create new execution context. We have to back up and restore
+ * EG(current_execute_data) and EG(opline_ptr) here because the function
+ * modifies it. */
+ current_execute_data = EG(current_execute_data);
+ opline_ptr = EG(opline_ptr);
+ execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC);
+ EG(current_execute_data) = current_execute_data;
+ EG(opline_ptr) = opline_ptr;
+
+ ALLOC_INIT_ZVAL(return_value);
+ object_init_ex(return_value, zend_ce_generator);
+
+ if (EG(This)) {
+ Z_ADDREF_P(EG(This));
+ }
+
+ /* Back up executor globals. */
+ execute_data->current_scope = EG(scope);
+ execute_data->current_called_scope = EG(called_scope);
+ execute_data->symbol_table = EG(active_symbol_table);
+ execute_data->current_this = EG(This);
+
+ /* Save execution context in generator object. */
+ generator = (zend_generator *) zend_object_store_get_object(return_value TSRMLS_CC);
+ generator->execute_data = execute_data;
+
+ /* We have to add another stack frame so the generator function shows
+ * up in backtraces and func_get_all() can access the function
+ * arguments. */
+ execute_data->prev_execute_data = emalloc(sizeof(zend_execute_data));
+ memset(execute_data->prev_execute_data, 0, sizeof(zend_execute_data));
+ execute_data->prev_execute_data->function_state.function = (zend_function *) op_array;
+ if (EG(current_execute_data)) {
+ execute_data->prev_execute_data->function_state.arguments = zend_copy_arguments(EG(current_execute_data)->function_state.arguments);
+ } else {
+ execute_data->prev_execute_data->function_state.arguments = NULL;
+ }
+
+ return return_value;
+}
+/* }}} */
+
+static zend_function *zend_generator_get_constructor(zval *object TSRMLS_DC) /* {{{ */
+{
+ zend_error(E_RECOVERABLE_ERROR, "The \"Generator\" class is reserved for internal use and cannot be manually instantiated");
+
+ return NULL;
+}
+/* }}} */
+
+void zend_generator_resume(zend_generator *generator TSRMLS_DC) /* {{{ */
+{
+ if (EG(exception)) {
+ return;
+ }
+
+ /* The generator is already closed, thus can't resume */
+ if (!generator->execute_data) {
+ return;
+ }
+
+ if (generator->flags & ZEND_GENERATOR_CURRENTLY_RUNNING) {
+ zend_error(E_ERROR, "Cannot resume an already running generator");
+ }
+
+ /* Drop the AT_FIRST_YIELD flag */
+ generator->flags &= ~ZEND_GENERATOR_AT_FIRST_YIELD;
+
+ {
+ /* Backup executor globals */
+ zval **original_return_value_ptr_ptr = EG(return_value_ptr_ptr);
+ zend_execute_data *original_execute_data = EG(current_execute_data);
+ zend_op **original_opline_ptr = EG(opline_ptr);
+ zend_op_array *original_active_op_array = EG(active_op_array);
+ HashTable *original_active_symbol_table = EG(active_symbol_table);
+ zval *original_This = EG(This);
+ zend_class_entry *original_scope = EG(scope);
+ zend_class_entry *original_called_scope = EG(called_scope);
+ int original_arg_types_stack_count = EG(arg_types_stack).top;
+
+ /* Remember the current stack position so we can back up pushed args */
+ generator->original_stack_top = zend_vm_stack_top(TSRMLS_C);
+
+ /* If there is a backed up stack copy it to the VM stack */
+ if (generator->backed_up_stack) {
+ void *stack = zend_vm_stack_alloc(generator->backed_up_stack_size TSRMLS_CC);
+ memcpy(stack, generator->backed_up_stack, generator->backed_up_stack_size);
+ efree(generator->backed_up_stack);
+ generator->backed_up_stack = NULL;
+ }
+
+ if (generator->backed_up_arg_types_stack) {
+ zend_ptr_stack_push_from_memory(
+ &EG(arg_types_stack),
+ generator->backed_up_arg_types_stack_count,
+ generator->backed_up_arg_types_stack
+ );
+ efree(generator->backed_up_arg_types_stack);
+ generator->backed_up_arg_types_stack = NULL;
+ }
+
+ /* We (mis)use the return_value_ptr_ptr to provide the generator object
+ * to the executor, so YIELD will be able to set the yielded value */
+ EG(return_value_ptr_ptr) = (zval **) generator;
+
+ /* Set executor globals */
+ EG(current_execute_data) = generator->execute_data;
+ EG(opline_ptr) = &generator->execute_data->opline;
+ EG(active_op_array) = generator->execute_data->op_array;
+ EG(active_symbol_table) = generator->execute_data->symbol_table;
+ EG(This) = generator->execute_data->current_this;
+ EG(scope) = generator->execute_data->current_scope;
+ EG(called_scope) = generator->execute_data->current_called_scope;
+
+ /* We want the backtrace to look as if the generator function was
+ * called from whatever method we are current running (e.g. next()).
+ * The first prev_execute_data contains an additional stack frame,
+ * which makes the generator function show up in the backtrace and
+ * makes the arguments available to func_get_args(). So we have to
+ * set the prev_execute_data of that prev_execute_data :) */
+ generator->execute_data->prev_execute_data->prev_execute_data = original_execute_data;
+
+ /* Resume execution */
+ generator->flags |= ZEND_GENERATOR_CURRENTLY_RUNNING;
+ execute_ex(generator->execute_data TSRMLS_CC);
+ generator->flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING;
+
+ /* Restore executor globals */
+ EG(return_value_ptr_ptr) = original_return_value_ptr_ptr;
+ EG(current_execute_data) = original_execute_data;
+ EG(opline_ptr) = original_opline_ptr;
+ EG(active_op_array) = original_active_op_array;
+ EG(active_symbol_table) = original_active_symbol_table;
+ EG(This) = original_This;
+ EG(scope) = original_scope;
+ EG(called_scope) = original_called_scope;
+
+ /* The stack top before and after the execution differ, i.e. there are
+ * arguments pushed to the stack. */
+ if (generator->original_stack_top != zend_vm_stack_top(TSRMLS_C)) {
+ generator->backed_up_stack_size = (zend_vm_stack_top(TSRMLS_C) - generator->original_stack_top) * sizeof(void *);
+ generator->backed_up_stack = emalloc(generator->backed_up_stack_size);
+ memcpy(generator->backed_up_stack, generator->original_stack_top, generator->backed_up_stack_size);
+ zend_vm_stack_free(generator->original_stack_top TSRMLS_CC);
+ }
+
+ if (original_arg_types_stack_count != EG(arg_types_stack).top) {
+ generator->backed_up_arg_types_stack_count =
+ EG(arg_types_stack).top - original_arg_types_stack_count;
+
+ generator->backed_up_arg_types_stack = emalloc(generator->backed_up_arg_types_stack_count * sizeof(void *));
+ zend_ptr_stack_pop_into_memory(
+ &EG(arg_types_stack),
+ generator->backed_up_arg_types_stack_count,
+ generator->backed_up_arg_types_stack
+ );
+ }
+
+ /* If an exception was thrown in the generator we have to internally
+ * rethrow it in the parent scope. */
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ zend_throw_exception_internal(NULL TSRMLS_CC);
+ }
+ }
+}
+/* }}} */
+
+static void zend_generator_ensure_initialized(zend_generator *generator TSRMLS_DC) /* {{{ */
+{
+ if (generator->execute_data && !generator->value) {
+ zend_generator_resume(generator TSRMLS_CC);
+ generator->flags |= ZEND_GENERATOR_AT_FIRST_YIELD;
+ }
+}
+/* }}} */
+
+static void zend_generator_rewind(zend_generator *generator TSRMLS_DC) /* {{{ */
+{
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ if (!(generator->flags & ZEND_GENERATOR_AT_FIRST_YIELD)) {
+ zend_throw_exception(NULL, "Cannot rewind a generator that was already run", 0 TSRMLS_CC);
+ }
+}
+/* }}} */
+
+/* {{{ proto void Generator::rewind()
+ * Rewind the generator */
+ZEND_METHOD(Generator, rewind)
+{
+ zend_generator *generator;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_rewind(generator TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ proto bool Generator::valid()
+ * Check whether the generator is valid */
+ZEND_METHOD(Generator, valid)
+{
+ zend_generator *generator;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ RETURN_BOOL(generator->value != NULL);
+}
+/* }}} */
+
+/* {{{ proto mixed Generator::current()
+ * Get the current value */
+ZEND_METHOD(Generator, current)
+{
+ zend_generator *generator;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ if (generator->value) {
+ RETURN_ZVAL(generator->value, 1, 0);
+ }
+}
+/* }}} */
+
+/* {{{ proto mixed Generator::key()
+ * Get the current key */
+ZEND_METHOD(Generator, key)
+{
+ zend_generator *generator;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ if (generator->key) {
+ RETURN_ZVAL(generator->key, 1, 0);
+ }
+}
+/* }}} */
+
+/* {{{ proto void Generator::next()
+ * Advances the generator */
+ZEND_METHOD(Generator, next)
+{
+ zend_generator *generator;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ zend_generator_resume(generator TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ proto mixed Generator::send()
+ * Sends a value to the generator */
+ZEND_METHOD(Generator, send)
+{
+ zval *value;
+ zend_generator *generator;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &value) == FAILURE) {
+ return;
+ }
+
+ generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ /* The generator is already closed, thus can't send anything */
+ if (!generator->execute_data) {
+ return;
+ }
+
+ /* The sent value was initialized to NULL, so dtor that */
+ zval_ptr_dtor(&generator->send_target->var.ptr);
+
+ /* Set new sent value */
+ Z_ADDREF_P(value);
+ generator->send_target->var.ptr = value;
+ generator->send_target->var.ptr_ptr = &value;
+
+ zend_generator_resume(generator TSRMLS_CC);
+
+ if (generator->value) {
+ RETURN_ZVAL(generator->value, 1, 0);
+ }
+}
+/* }}} */
+
+/* {{{ proto void Generator::__wakeup()
+ * Throws an Exception as generators can't be serialized */
+ZEND_METHOD(Generator, __wakeup)
+{
+ /* Just specifying the zend_class_unserialize_deny handler is not enough,
+ * because it is only invoked for C unserialization. For O the error has
+ * to be thrown in __wakeup. */
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ zend_throw_exception(NULL, "Unserialization of 'Generator' is not allowed", 0 TSRMLS_CC);
+}
+/* }}} */
+
+/* get_iterator implementation */
+
+typedef struct _zend_generator_iterator {
+ zend_object_iterator intern;
+
+ /* The generator object zval has to be stored, because the iterator is
+ * holding a ref to it, which has to be dtored. */
+ zval *object;
+} zend_generator_iterator;
+
+static void zend_generator_iterator_dtor(zend_object_iterator *iterator TSRMLS_DC) /* {{{ */
+{
+ zval *object = ((zend_generator_iterator *) iterator)->object;
+
+ zval_ptr_dtor(&object);
+
+ efree(iterator);
+}
+/* }}} */
+
+static int zend_generator_iterator_valid(zend_object_iterator *iterator TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator = (zend_generator *) iterator->data;
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ return generator->value != NULL ? SUCCESS : FAILURE;
+}
+/* }}} */
+
+static void zend_generator_iterator_get_data(zend_object_iterator *iterator, zval ***data TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator = (zend_generator *) iterator->data;
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ if (generator->value) {
+ *data = &generator->value;
+ } else {
+ *data = NULL;
+ }
+}
+/* }}} */
+
+static int zend_generator_iterator_get_key(zend_object_iterator *iterator, char **str_key, uint *str_key_len, ulong *int_key TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator = (zend_generator *) iterator->data;
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ if (!generator->key) {
+ return HASH_KEY_NON_EXISTANT;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG) {
+ *int_key = Z_LVAL_P(generator->key);
+ return HASH_KEY_IS_LONG;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_STRING) {
+ *str_key = estrndup(Z_STRVAL_P(generator->key), Z_STRLEN_P(generator->key));
+ *str_key_len = Z_STRLEN_P(generator->key) + 1;
+ return HASH_KEY_IS_STRING;
+ }
+
+ /* Waiting for Etienne's patch to allow arbitrary zval keys. Until then
+ * error out on non-int and non-string keys. */
+ zend_error_noreturn(E_ERROR, "Currently only int and string keys can be yielded");
+}
+/* }}} */
+
+static void zend_generator_iterator_move_forward(zend_object_iterator *iterator TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator = (zend_generator *) iterator->data;
+
+ zend_generator_ensure_initialized(generator TSRMLS_CC);
+
+ zend_generator_resume(generator TSRMLS_CC);
+}
+/* }}} */
+
+static void zend_generator_iterator_rewind(zend_object_iterator *iterator TSRMLS_DC) /* {{{ */
+{
+ zend_generator *generator = (zend_generator *) iterator->data;
+
+ zend_generator_rewind(generator TSRMLS_CC);
+}
+/* }}} */
+
+static zend_object_iterator_funcs zend_generator_iterator_functions = {
+ zend_generator_iterator_dtor,
+ zend_generator_iterator_valid,
+ zend_generator_iterator_get_data,
+ zend_generator_iterator_get_key,
+ zend_generator_iterator_move_forward,
+ zend_generator_iterator_rewind
+};
+
+zend_object_iterator *zend_generator_get_iterator(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC) /* {{{ */
+{
+ zend_generator_iterator *iterator;
+ zend_generator *generator;
+
+ generator = (zend_generator *) zend_object_store_get_object(object TSRMLS_CC);
+
+ if (!generator->execute_data) {
+ zend_throw_exception(NULL, "Cannot traverse an already closed generator", 0 TSRMLS_CC);
+ return NULL;
+ }
+
+ if (by_ref && !(generator->execute_data->op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE)) {
+ zend_throw_exception(NULL, "You can only iterate a generator by-reference if it declared that it yields by-reference", 0 TSRMLS_CC);
+ return NULL;
+ }
+
+ iterator = emalloc(sizeof(zend_generator_iterator));
+ iterator->intern.funcs = &zend_generator_iterator_functions;
+ iterator->intern.data = (void *) generator;
+
+ /* We have to keep a reference to the generator object zval around,
+ * otherwise the generator may be destroyed during iteration. */
+ Z_ADDREF_P(object);
+ iterator->object = object;
+
+ return (zend_object_iterator *) iterator;
+}
+/* }}} */
+
+ZEND_BEGIN_ARG_INFO(arginfo_generator_void, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_generator_send, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry generator_functions[] = {
+ ZEND_ME(Generator, rewind, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, valid, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, current, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, key, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, next, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, send, arginfo_generator_send, ZEND_ACC_PUBLIC)
+ ZEND_ME(Generator, __wakeup, arginfo_generator_void, ZEND_ACC_PUBLIC)
+ ZEND_FE_END
+};
+
+void zend_register_generator_ce(TSRMLS_D) /* {{{ */
+{
+ zend_class_entry ce;
+
+ INIT_CLASS_ENTRY(ce, "Generator", generator_functions);
+ zend_ce_generator = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_ce_generator->ce_flags |= ZEND_ACC_FINAL_CLASS;
+ zend_ce_generator->create_object = zend_generator_create;
+ zend_ce_generator->serialize = zend_class_serialize_deny;
+ zend_ce_generator->unserialize = zend_class_unserialize_deny;
+
+ /* get_iterator has to be assigned *after* implementing the inferface */
+ zend_class_implements(zend_ce_generator TSRMLS_CC, 1, zend_ce_iterator);
+ zend_ce_generator->get_iterator = zend_generator_get_iterator;
+ zend_ce_generator->iterator_funcs.funcs = &zend_generator_iterator_functions;
+
+ memcpy(&zend_generator_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+ zend_generator_handlers.get_constructor = zend_generator_get_constructor;
+ zend_generator_handlers.clone_obj = zend_objects_store_clone_obj;
+}
+/* }}} */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ */
diff --git a/Zend/zend_generators.h b/Zend/zend_generators.h
new file mode 100644
index 000000000..3dc3e6fec
--- /dev/null
+++ b/Zend/zend_generators.h
@@ -0,0 +1,78 @@
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2012 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: Nikita Popov <nikic@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef ZEND_GENERATORS_H
+#define ZEND_GENERATORS_H
+
+BEGIN_EXTERN_C()
+extern ZEND_API zend_class_entry *zend_ce_generator;
+END_EXTERN_C()
+
+typedef struct _zend_generator {
+ zend_object std;
+
+ /* The suspended execution context. */
+ zend_execute_data *execute_data;
+
+ /* If the execution is suspended during a function call there may be
+ * arguments pushed to the stack, so it has to be backed up. */
+ void *backed_up_stack;
+ size_t backed_up_stack_size;
+
+ /* For method calls PHP also pushes various type information on a second
+ * stack, which also needs to be backed up. */
+ void **backed_up_arg_types_stack;
+ int backed_up_arg_types_stack_count;
+
+ /* The original stack top before resuming the generator. This is required
+ * for proper cleanup during exception handling. */
+ void **original_stack_top;
+
+ /* Current value */
+ zval *value;
+ /* Current key */
+ zval *key;
+ /* Variable to put sent value into */
+ temp_variable *send_target;
+ /* Largest used integer key for auto-incrementing keys */
+ long largest_used_integer_key;
+
+ /* ZEND_GENERATOR_* flags */
+ zend_uchar flags;
+} zend_generator;
+
+static const zend_uchar ZEND_GENERATOR_CURRENTLY_RUNNING = 0x1;
+static const zend_uchar ZEND_GENERATOR_FORCED_CLOSE = 0x2;
+static const zend_uchar ZEND_GENERATOR_AT_FIRST_YIELD = 0x4;
+
+void zend_register_generator_ce(TSRMLS_D);
+zval *zend_generator_create_zval(zend_op_array *op_array TSRMLS_DC);
+void zend_generator_close(zend_generator *generator, zend_bool finished_execution TSRMLS_DC);
+void zend_generator_resume(zend_generator *generator TSRMLS_DC);
+
+#endif
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ */
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h
index dbbcf972a..e5aba0df6 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -89,9 +89,6 @@ struct _zend_compiler_globals {
int zend_lineno;
- char *heredoc;
- int heredoc_len;
-
zend_op_array *active_op_array;
HashTable *function_table; /* function symbol table */
@@ -297,6 +294,7 @@ struct _zend_php_scanner_globals {
unsigned char *yy_limit;
int yy_state;
zend_stack state_stack;
+ zend_ptr_stack heredoc_label_stack;
/* original (unfiltered) script */
unsigned char *script_org;
diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c
index e9fd850e6..938e1c612 100644
--- a/Zend/zend_highlight.c
+++ b/Zend/zend_highlight.c
@@ -153,8 +153,6 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini
efree(token.value.str.val);
break;
}
- } else if (token_type == T_END_HEREDOC) {
- efree(token.value.str.val);
}
token.type = 0;
}
diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c
index d97f68967..e0198e37b 100644
--- a/Zend/zend_ini_parser.c
+++ b/Zend/zend_ini_parser.c
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -47,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,58 +52,23 @@
/* Pure parsers. */
#define YYPURE 1
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
/* Using locations. */
#define YYLSP_NEEDED 0
/* Substitute the variable and function names. */
-#define yyparse ini_parse
-#define yylex ini_lex
-#define yyerror ini_error
-#define yylval ini_lval
-#define yychar ini_char
-#define yydebug ini_debug
-#define yynerrs ini_nerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- TC_SECTION = 258,
- TC_RAW = 259,
- TC_CONSTANT = 260,
- TC_NUMBER = 261,
- TC_STRING = 262,
- TC_WHITESPACE = 263,
- TC_LABEL = 264,
- TC_OFFSET = 265,
- TC_DOLLAR_CURLY = 266,
- TC_VARNAME = 267,
- TC_QUOTED_STRING = 268,
- BOOL_TRUE = 269,
- BOOL_FALSE = 270,
- END_OF_LINE = 271
- };
-#endif
-/* Tokens. */
-#define TC_SECTION 258
-#define TC_RAW 259
-#define TC_CONSTANT 260
-#define TC_NUMBER 261
-#define TC_STRING 262
-#define TC_WHITESPACE 263
-#define TC_LABEL 264
-#define TC_OFFSET 265
-#define TC_DOLLAR_CURLY 266
-#define TC_VARNAME 267
-#define TC_QUOTED_STRING 268
-#define BOOL_TRUE 269
-#define BOOL_FALSE 270
-#define END_OF_LINE 271
-
-
+#define yyparse ini_parse
+#define yylex ini_lex
+#define yyerror ini_error
+#define yylval ini_lval
+#define yychar ini_char
+#define yydebug ini_debug
+#define yynerrs ini_nerrs
/* Copy the first part of user declarations. */
@@ -359,6 +321,7 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
+
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -377,20 +340,59 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
# define YYTOKEN_TABLE 0
#endif
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ TC_SECTION = 258,
+ TC_RAW = 259,
+ TC_CONSTANT = 260,
+ TC_NUMBER = 261,
+ TC_STRING = 262,
+ TC_WHITESPACE = 263,
+ TC_LABEL = 264,
+ TC_OFFSET = 265,
+ TC_DOLLAR_CURLY = 266,
+ TC_VARNAME = 267,
+ TC_QUOTED_STRING = 268,
+ BOOL_TRUE = 269,
+ BOOL_FALSE = 270,
+ END_OF_LINE = 271
+ };
+#endif
+/* Tokens. */
+#define TC_SECTION 258
+#define TC_RAW 259
+#define TC_CONSTANT 260
+#define TC_NUMBER 261
+#define TC_STRING 262
+#define TC_WHITESPACE 263
+#define TC_LABEL 264
+#define TC_OFFSET 265
+#define TC_DOLLAR_CURLY 266
+#define TC_VARNAME 267
+#define TC_QUOTED_STRING 268
+#define BOOL_TRUE 269
+#define BOOL_FALSE 270
+#define END_OF_LINE 271
+
+
+
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
-
/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
-
#ifdef short
# undef short
@@ -465,14 +467,14 @@ typedef short int yytype_int16;
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int i)
+YYID (int yyi)
#else
static int
-YYID (i)
- int i;
+YYID (yyi)
+ int yyi;
#endif
{
- return i;
+ return yyi;
}
#endif
@@ -493,11 +495,11 @@ YYID (i)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -520,24 +522,24 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -553,9 +555,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -566,6 +568,27 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
@@ -583,24 +606,7 @@ union yyalloc
while (YYID (0))
# endif
# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
+#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
@@ -705,7 +711,7 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "TC_SECTION", "TC_RAW", "TC_CONSTANT",
"TC_NUMBER", "TC_STRING", "TC_WHITESPACE", "TC_LABEL", "TC_OFFSET",
"TC_DOLLAR_CURLY", "TC_VARNAME", "TC_QUOTED_STRING", "BOOL_TRUE",
- "BOOL_FALSE", "END_OF_LINE", "'='", "':'", "','", "'.'", "'\"'", "'''",
+ "BOOL_FALSE", "END_OF_LINE", "'='", "':'", "','", "'.'", "'\"'", "'\\''",
"'^'", "'+'", "'-'", "'/'", "'*'", "'%'", "'$'", "'~'", "'<'", "'>'",
"'?'", "'@'", "'{'", "'}'", "'|'", "'&'", "'!'", "']'", "'('", "')'",
"$accept", "statement_list", "statement", "section_string_or_value",
@@ -748,8 +754,8 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
@@ -792,8 +798,7 @@ static const yytype_int8 yypgoto[] =
/* 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. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
@@ -810,6 +815,12 @@ static const yytype_uint8 yytable[] =
0, 0, 4, 5, 0, 47, 0, 68, 0, 6
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-36))
+
+#define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
static const yytype_int8 yycheck[] =
{
3, 25, 37, 38, 4, 5, 6, 7, 8, 33,
@@ -850,9 +861,18 @@ static const yytype_uint8 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -862,7 +882,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -904,19 +923,10 @@ while (YYID (0))
#endif
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -1020,17 +1030,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
YYFPRINTF (stderr, "\n");
}
@@ -1064,11 +1077,11 @@ yy_reduce_print (yyvsp, yyrule)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- fprintf (stderr, " $%d = ", yyi + 1);
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
- fprintf (stderr, "\n");
+ YYFPRINTF (stderr, "\n");
}
}
@@ -1105,7 +1118,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1208,115 +1220,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1348,10 +1387,9 @@ yydestruct (yymsg, yytype, yyvaluep)
break;
}
}
-
-/* Prevent warnings from -Wmissing-prototypes. */
+/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -1367,10 +1405,6 @@ int yyparse ();
#endif /* ! YYPARSE_PARAM */
-
-
-
-
/*----------.
| yyparse. |
`----------*/
@@ -1397,74 +1431,75 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
+/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ /* Number of syntax errors so far. */
+ int yynerrs;
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
- YYSIZE_T yystacksize = YYINITDEPTH;
+ YYSIZE_T yystacksize;
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
-
yyssp = yyss;
yyvsp = yyvs;
@@ -1494,7 +1529,6 @@ int yynerrs;
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
-
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -1502,7 +1536,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -1525,9 +1558,8 @@ int yynerrs;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -1538,7 +1570,6 @@ int yynerrs;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
-
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -1548,6 +1579,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -1556,16 +1590,16 @@ int yynerrs;
yybackup:
/* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
+ lookahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to look-ahead token. */
+ /* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
- /* Not known => get a look-ahead token if don't already have one. */
+ /* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1591,26 +1625,22 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the look-ahead token. */
+ /* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
@@ -1891,10 +1921,20 @@ yyreduce:
break;
-/* Line 1267 of yacc.c. */
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -1903,7 +1943,6 @@ yyreduce:
*++yyvsp = yyval;
-
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -1923,6 +1962,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -1930,37 +1973,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -1968,7 +2010,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse look-ahead token after an
+ /* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -1985,7 +2027,7 @@ yyerrlab:
}
}
- /* Else will try to reuse look-ahead token after shifting the error
+ /* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
@@ -2019,7 +2061,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2042,9 +2084,6 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
*++yyvsp = yylval;
@@ -2069,7 +2108,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2080,9 +2119,14 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ if (yychar != YYEMPTY)
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
diff --git a/Zend/zend_ini_parser.h b/Zend/zend_ini_parser.h
index d883f9d40..b1538eafd 100644
--- a/Zend/zend_ini_parser.h
+++ b/Zend/zend_ini_parser.h
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,10 +26,11 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -76,10 +74,11 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+
diff --git a/Zend/zend_ini_parser.output b/Zend/zend_ini_parser.output
index 9f7bcda21..fc6468a7f 100644
--- a/Zend/zend_ini_parser.output
+++ b/Zend/zend_ini_parser.output
@@ -1,9 +1,9 @@
-Terminals which are not used
+Terminals unused in grammar
':'
','
'.'
- '''
+ '\''
'^'
'+'
'-'
@@ -90,7 +90,7 @@ $end (0) 0
'$' (36)
'%' (37)
'&' (38) 33
-''' (39)
+'\'' (39)
'(' (40) 36
')' (41) 36
'*' (42)
diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c
index 94c48c897..470f52360 100644
--- a/Zend/zend_ini_scanner.c
+++ b/Zend/zend_ini_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Jun 7 17:48:25 2012 */
+/* Generated by re2c 0.13.5 on Thu Jun 7 17:55:40 2012 */
#line 1 "Zend/zend_ini_scanner.l"
/*
+----------------------------------------------------------------------+
diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h
index 0c0471373..9c99cc43d 100644
--- a/Zend/zend_ini_scanner_defs.h
+++ b/Zend/zend_ini_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Jun 7 17:48:25 2012 */
+/* Generated by re2c 0.13.5 on Thu Jun 7 17:55:41 2012 */
#line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE {
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index aee0d612d..aee0d612d 100755..100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h
index e3e3629c5..e3e3629c5 100755..100644
--- a/Zend/zend_interfaces.h
+++ b/Zend/zend_interfaces.h
diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c
index d0572b25c..d0572b25c 100755..100644
--- a/Zend/zend_iterators.c
+++ b/Zend/zend_iterators.c
diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h
index dba05850a..dba05850a 100755..100644
--- a/Zend/zend_iterators.h
+++ b/Zend/zend_iterators.h
diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c
index 353a10960..7b941accb 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -47,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,286 +52,23 @@
/* Pure parsers. */
#define YYPURE 1
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
/* Using locations. */
#define YYLSP_NEEDED 0
/* Substitute the variable and function names. */
-#define yyparse zendparse
-#define yylex zendlex
-#define yyerror zenderror
-#define yylval zendlval
-#define yychar zendchar
-#define yydebug zenddebug
-#define yynerrs zendnerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- END = 0,
- T_REQUIRE_ONCE = 258,
- T_REQUIRE = 259,
- T_EVAL = 260,
- T_INCLUDE_ONCE = 261,
- T_INCLUDE = 262,
- T_LOGICAL_OR = 263,
- T_LOGICAL_XOR = 264,
- T_LOGICAL_AND = 265,
- T_PRINT = 266,
- T_SR_EQUAL = 267,
- T_SL_EQUAL = 268,
- T_XOR_EQUAL = 269,
- T_OR_EQUAL = 270,
- T_AND_EQUAL = 271,
- T_MOD_EQUAL = 272,
- T_CONCAT_EQUAL = 273,
- T_DIV_EQUAL = 274,
- T_MUL_EQUAL = 275,
- T_MINUS_EQUAL = 276,
- T_PLUS_EQUAL = 277,
- T_BOOLEAN_OR = 278,
- T_BOOLEAN_AND = 279,
- T_IS_NOT_IDENTICAL = 280,
- T_IS_IDENTICAL = 281,
- T_IS_NOT_EQUAL = 282,
- T_IS_EQUAL = 283,
- T_IS_GREATER_OR_EQUAL = 284,
- T_IS_SMALLER_OR_EQUAL = 285,
- T_SR = 286,
- T_SL = 287,
- T_INSTANCEOF = 288,
- T_UNSET_CAST = 289,
- T_BOOL_CAST = 290,
- T_OBJECT_CAST = 291,
- T_ARRAY_CAST = 292,
- T_STRING_CAST = 293,
- T_DOUBLE_CAST = 294,
- T_INT_CAST = 295,
- T_DEC = 296,
- T_INC = 297,
- T_CLONE = 298,
- T_NEW = 299,
- T_EXIT = 300,
- T_IF = 301,
- T_ELSEIF = 302,
- T_ELSE = 303,
- T_ENDIF = 304,
- T_LNUMBER = 305,
- T_DNUMBER = 306,
- T_STRING = 307,
- T_STRING_VARNAME = 308,
- T_VARIABLE = 309,
- T_NUM_STRING = 310,
- T_INLINE_HTML = 311,
- T_CHARACTER = 312,
- T_BAD_CHARACTER = 313,
- T_ENCAPSED_AND_WHITESPACE = 314,
- T_CONSTANT_ENCAPSED_STRING = 315,
- T_ECHO = 316,
- T_DO = 317,
- T_WHILE = 318,
- T_ENDWHILE = 319,
- T_FOR = 320,
- T_ENDFOR = 321,
- T_FOREACH = 322,
- T_ENDFOREACH = 323,
- T_DECLARE = 324,
- T_ENDDECLARE = 325,
- T_AS = 326,
- T_SWITCH = 327,
- T_ENDSWITCH = 328,
- T_CASE = 329,
- T_DEFAULT = 330,
- T_BREAK = 331,
- T_CONTINUE = 332,
- T_GOTO = 333,
- T_FUNCTION = 334,
- T_CONST = 335,
- T_RETURN = 336,
- T_TRY = 337,
- T_CATCH = 338,
- T_THROW = 339,
- T_USE = 340,
- T_INSTEADOF = 341,
- T_GLOBAL = 342,
- T_PUBLIC = 343,
- T_PROTECTED = 344,
- T_PRIVATE = 345,
- T_FINAL = 346,
- T_ABSTRACT = 347,
- T_STATIC = 348,
- T_VAR = 349,
- T_UNSET = 350,
- T_ISSET = 351,
- T_EMPTY = 352,
- T_HALT_COMPILER = 353,
- T_CLASS = 354,
- T_TRAIT = 355,
- T_INTERFACE = 356,
- T_EXTENDS = 357,
- T_IMPLEMENTS = 358,
- T_OBJECT_OPERATOR = 359,
- T_DOUBLE_ARROW = 360,
- T_LIST = 361,
- T_ARRAY = 362,
- T_CALLABLE = 363,
- T_CLASS_C = 364,
- T_TRAIT_C = 365,
- T_METHOD_C = 366,
- T_FUNC_C = 367,
- T_LINE = 368,
- T_FILE = 369,
- T_COMMENT = 370,
- T_DOC_COMMENT = 371,
- T_OPEN_TAG = 372,
- T_OPEN_TAG_WITH_ECHO = 373,
- T_CLOSE_TAG = 374,
- T_WHITESPACE = 375,
- T_START_HEREDOC = 376,
- T_END_HEREDOC = 377,
- T_DOLLAR_OPEN_CURLY_BRACES = 378,
- T_CURLY_OPEN = 379,
- T_PAAMAYIM_NEKUDOTAYIM = 380,
- T_NAMESPACE = 381,
- T_NS_C = 382,
- T_DIR = 383,
- T_NS_SEPARATOR = 384
- };
-#endif
-/* Tokens. */
-#define END 0
-#define T_REQUIRE_ONCE 258
-#define T_REQUIRE 259
-#define T_EVAL 260
-#define T_INCLUDE_ONCE 261
-#define T_INCLUDE 262
-#define T_LOGICAL_OR 263
-#define T_LOGICAL_XOR 264
-#define T_LOGICAL_AND 265
-#define T_PRINT 266
-#define T_SR_EQUAL 267
-#define T_SL_EQUAL 268
-#define T_XOR_EQUAL 269
-#define T_OR_EQUAL 270
-#define T_AND_EQUAL 271
-#define T_MOD_EQUAL 272
-#define T_CONCAT_EQUAL 273
-#define T_DIV_EQUAL 274
-#define T_MUL_EQUAL 275
-#define T_MINUS_EQUAL 276
-#define T_PLUS_EQUAL 277
-#define T_BOOLEAN_OR 278
-#define T_BOOLEAN_AND 279
-#define T_IS_NOT_IDENTICAL 280
-#define T_IS_IDENTICAL 281
-#define T_IS_NOT_EQUAL 282
-#define T_IS_EQUAL 283
-#define T_IS_GREATER_OR_EQUAL 284
-#define T_IS_SMALLER_OR_EQUAL 285
-#define T_SR 286
-#define T_SL 287
-#define T_INSTANCEOF 288
-#define T_UNSET_CAST 289
-#define T_BOOL_CAST 290
-#define T_OBJECT_CAST 291
-#define T_ARRAY_CAST 292
-#define T_STRING_CAST 293
-#define T_DOUBLE_CAST 294
-#define T_INT_CAST 295
-#define T_DEC 296
-#define T_INC 297
-#define T_CLONE 298
-#define T_NEW 299
-#define T_EXIT 300
-#define T_IF 301
-#define T_ELSEIF 302
-#define T_ELSE 303
-#define T_ENDIF 304
-#define T_LNUMBER 305
-#define T_DNUMBER 306
-#define T_STRING 307
-#define T_STRING_VARNAME 308
-#define T_VARIABLE 309
-#define T_NUM_STRING 310
-#define T_INLINE_HTML 311
-#define T_CHARACTER 312
-#define T_BAD_CHARACTER 313
-#define T_ENCAPSED_AND_WHITESPACE 314
-#define T_CONSTANT_ENCAPSED_STRING 315
-#define T_ECHO 316
-#define T_DO 317
-#define T_WHILE 318
-#define T_ENDWHILE 319
-#define T_FOR 320
-#define T_ENDFOR 321
-#define T_FOREACH 322
-#define T_ENDFOREACH 323
-#define T_DECLARE 324
-#define T_ENDDECLARE 325
-#define T_AS 326
-#define T_SWITCH 327
-#define T_ENDSWITCH 328
-#define T_CASE 329
-#define T_DEFAULT 330
-#define T_BREAK 331
-#define T_CONTINUE 332
-#define T_GOTO 333
-#define T_FUNCTION 334
-#define T_CONST 335
-#define T_RETURN 336
-#define T_TRY 337
-#define T_CATCH 338
-#define T_THROW 339
-#define T_USE 340
-#define T_INSTEADOF 341
-#define T_GLOBAL 342
-#define T_PUBLIC 343
-#define T_PROTECTED 344
-#define T_PRIVATE 345
-#define T_FINAL 346
-#define T_ABSTRACT 347
-#define T_STATIC 348
-#define T_VAR 349
-#define T_UNSET 350
-#define T_ISSET 351
-#define T_EMPTY 352
-#define T_HALT_COMPILER 353
-#define T_CLASS 354
-#define T_TRAIT 355
-#define T_INTERFACE 356
-#define T_EXTENDS 357
-#define T_IMPLEMENTS 358
-#define T_OBJECT_OPERATOR 359
-#define T_DOUBLE_ARROW 360
-#define T_LIST 361
-#define T_ARRAY 362
-#define T_CALLABLE 363
-#define T_CLASS_C 364
-#define T_TRAIT_C 365
-#define T_METHOD_C 366
-#define T_FUNC_C 367
-#define T_LINE 368
-#define T_FILE 369
-#define T_COMMENT 370
-#define T_DOC_COMMENT 371
-#define T_OPEN_TAG 372
-#define T_OPEN_TAG_WITH_ECHO 373
-#define T_CLOSE_TAG 374
-#define T_WHITESPACE 375
-#define T_START_HEREDOC 376
-#define T_END_HEREDOC 377
-#define T_DOLLAR_OPEN_CURLY_BRACES 378
-#define T_CURLY_OPEN 379
-#define T_PAAMAYIM_NEKUDOTAYIM 380
-#define T_NAMESPACE 381
-#define T_NS_C 382
-#define T_DIR 383
-#define T_NS_SEPARATOR 384
-
-
+#define yyparse zendparse
+#define yylex zendlex
+#define yyerror zenderror
+#define yylval zendlval
+#define yychar zendchar
+#define yydebug zenddebug
+#define yynerrs zendnerrs
/* Copy the first part of user declarations. */
@@ -390,6 +124,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
+
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -408,20 +143,291 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
# define YYTOKEN_TABLE 0
#endif
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ END = 0,
+ T_REQUIRE_ONCE = 258,
+ T_REQUIRE = 259,
+ T_EVAL = 260,
+ T_INCLUDE_ONCE = 261,
+ T_INCLUDE = 262,
+ T_LOGICAL_OR = 263,
+ T_LOGICAL_XOR = 264,
+ T_LOGICAL_AND = 265,
+ T_PRINT = 266,
+ T_YIELD = 267,
+ T_SR_EQUAL = 268,
+ T_SL_EQUAL = 269,
+ T_XOR_EQUAL = 270,
+ T_OR_EQUAL = 271,
+ T_AND_EQUAL = 272,
+ T_MOD_EQUAL = 273,
+ T_CONCAT_EQUAL = 274,
+ T_DIV_EQUAL = 275,
+ T_MUL_EQUAL = 276,
+ T_MINUS_EQUAL = 277,
+ T_PLUS_EQUAL = 278,
+ T_BOOLEAN_OR = 279,
+ T_BOOLEAN_AND = 280,
+ T_IS_NOT_IDENTICAL = 281,
+ T_IS_IDENTICAL = 282,
+ T_IS_NOT_EQUAL = 283,
+ T_IS_EQUAL = 284,
+ T_IS_GREATER_OR_EQUAL = 285,
+ T_IS_SMALLER_OR_EQUAL = 286,
+ T_SR = 287,
+ T_SL = 288,
+ T_INSTANCEOF = 289,
+ T_UNSET_CAST = 290,
+ T_BOOL_CAST = 291,
+ T_OBJECT_CAST = 292,
+ T_ARRAY_CAST = 293,
+ T_STRING_CAST = 294,
+ T_DOUBLE_CAST = 295,
+ T_INT_CAST = 296,
+ T_DEC = 297,
+ T_INC = 298,
+ T_CLONE = 299,
+ T_NEW = 300,
+ T_EXIT = 301,
+ T_IF = 302,
+ T_ELSEIF = 303,
+ T_ELSE = 304,
+ T_ENDIF = 305,
+ T_LNUMBER = 306,
+ T_DNUMBER = 307,
+ T_STRING = 308,
+ T_STRING_VARNAME = 309,
+ T_VARIABLE = 310,
+ T_NUM_STRING = 311,
+ T_INLINE_HTML = 312,
+ T_CHARACTER = 313,
+ T_BAD_CHARACTER = 314,
+ T_ENCAPSED_AND_WHITESPACE = 315,
+ T_CONSTANT_ENCAPSED_STRING = 316,
+ T_ECHO = 317,
+ T_DO = 318,
+ T_WHILE = 319,
+ T_ENDWHILE = 320,
+ T_FOR = 321,
+ T_ENDFOR = 322,
+ T_FOREACH = 323,
+ T_ENDFOREACH = 324,
+ T_DECLARE = 325,
+ T_ENDDECLARE = 326,
+ T_AS = 327,
+ T_SWITCH = 328,
+ T_ENDSWITCH = 329,
+ T_CASE = 330,
+ T_DEFAULT = 331,
+ T_BREAK = 332,
+ T_CONTINUE = 333,
+ T_GOTO = 334,
+ T_FUNCTION = 335,
+ T_CONST = 336,
+ T_RETURN = 337,
+ T_TRY = 338,
+ T_CATCH = 339,
+ T_FINALLY = 340,
+ T_THROW = 341,
+ T_USE = 342,
+ T_INSTEADOF = 343,
+ T_GLOBAL = 344,
+ T_PUBLIC = 345,
+ T_PROTECTED = 346,
+ T_PRIVATE = 347,
+ T_FINAL = 348,
+ T_ABSTRACT = 349,
+ T_STATIC = 350,
+ T_VAR = 351,
+ T_UNSET = 352,
+ T_ISSET = 353,
+ T_EMPTY = 354,
+ T_HALT_COMPILER = 355,
+ T_CLASS = 356,
+ T_TRAIT = 357,
+ T_INTERFACE = 358,
+ T_EXTENDS = 359,
+ T_IMPLEMENTS = 360,
+ T_OBJECT_OPERATOR = 361,
+ T_DOUBLE_ARROW = 362,
+ T_LIST = 363,
+ T_ARRAY = 364,
+ T_CALLABLE = 365,
+ T_CLASS_C = 366,
+ T_TRAIT_C = 367,
+ T_METHOD_C = 368,
+ T_FUNC_C = 369,
+ T_LINE = 370,
+ T_FILE = 371,
+ T_COMMENT = 372,
+ T_DOC_COMMENT = 373,
+ T_OPEN_TAG = 374,
+ T_OPEN_TAG_WITH_ECHO = 375,
+ T_CLOSE_TAG = 376,
+ T_WHITESPACE = 377,
+ T_START_HEREDOC = 378,
+ T_END_HEREDOC = 379,
+ T_DOLLAR_OPEN_CURLY_BRACES = 380,
+ T_CURLY_OPEN = 381,
+ T_PAAMAYIM_NEKUDOTAYIM = 382,
+ T_NAMESPACE = 383,
+ T_NS_C = 384,
+ T_DIR = 385,
+ T_NS_SEPARATOR = 386
+ };
+#endif
+/* Tokens. */
+#define END 0
+#define T_REQUIRE_ONCE 258
+#define T_REQUIRE 259
+#define T_EVAL 260
+#define T_INCLUDE_ONCE 261
+#define T_INCLUDE 262
+#define T_LOGICAL_OR 263
+#define T_LOGICAL_XOR 264
+#define T_LOGICAL_AND 265
+#define T_PRINT 266
+#define T_YIELD 267
+#define T_SR_EQUAL 268
+#define T_SL_EQUAL 269
+#define T_XOR_EQUAL 270
+#define T_OR_EQUAL 271
+#define T_AND_EQUAL 272
+#define T_MOD_EQUAL 273
+#define T_CONCAT_EQUAL 274
+#define T_DIV_EQUAL 275
+#define T_MUL_EQUAL 276
+#define T_MINUS_EQUAL 277
+#define T_PLUS_EQUAL 278
+#define T_BOOLEAN_OR 279
+#define T_BOOLEAN_AND 280
+#define T_IS_NOT_IDENTICAL 281
+#define T_IS_IDENTICAL 282
+#define T_IS_NOT_EQUAL 283
+#define T_IS_EQUAL 284
+#define T_IS_GREATER_OR_EQUAL 285
+#define T_IS_SMALLER_OR_EQUAL 286
+#define T_SR 287
+#define T_SL 288
+#define T_INSTANCEOF 289
+#define T_UNSET_CAST 290
+#define T_BOOL_CAST 291
+#define T_OBJECT_CAST 292
+#define T_ARRAY_CAST 293
+#define T_STRING_CAST 294
+#define T_DOUBLE_CAST 295
+#define T_INT_CAST 296
+#define T_DEC 297
+#define T_INC 298
+#define T_CLONE 299
+#define T_NEW 300
+#define T_EXIT 301
+#define T_IF 302
+#define T_ELSEIF 303
+#define T_ELSE 304
+#define T_ENDIF 305
+#define T_LNUMBER 306
+#define T_DNUMBER 307
+#define T_STRING 308
+#define T_STRING_VARNAME 309
+#define T_VARIABLE 310
+#define T_NUM_STRING 311
+#define T_INLINE_HTML 312
+#define T_CHARACTER 313
+#define T_BAD_CHARACTER 314
+#define T_ENCAPSED_AND_WHITESPACE 315
+#define T_CONSTANT_ENCAPSED_STRING 316
+#define T_ECHO 317
+#define T_DO 318
+#define T_WHILE 319
+#define T_ENDWHILE 320
+#define T_FOR 321
+#define T_ENDFOR 322
+#define T_FOREACH 323
+#define T_ENDFOREACH 324
+#define T_DECLARE 325
+#define T_ENDDECLARE 326
+#define T_AS 327
+#define T_SWITCH 328
+#define T_ENDSWITCH 329
+#define T_CASE 330
+#define T_DEFAULT 331
+#define T_BREAK 332
+#define T_CONTINUE 333
+#define T_GOTO 334
+#define T_FUNCTION 335
+#define T_CONST 336
+#define T_RETURN 337
+#define T_TRY 338
+#define T_CATCH 339
+#define T_FINALLY 340
+#define T_THROW 341
+#define T_USE 342
+#define T_INSTEADOF 343
+#define T_GLOBAL 344
+#define T_PUBLIC 345
+#define T_PROTECTED 346
+#define T_PRIVATE 347
+#define T_FINAL 348
+#define T_ABSTRACT 349
+#define T_STATIC 350
+#define T_VAR 351
+#define T_UNSET 352
+#define T_ISSET 353
+#define T_EMPTY 354
+#define T_HALT_COMPILER 355
+#define T_CLASS 356
+#define T_TRAIT 357
+#define T_INTERFACE 358
+#define T_EXTENDS 359
+#define T_IMPLEMENTS 360
+#define T_OBJECT_OPERATOR 361
+#define T_DOUBLE_ARROW 362
+#define T_LIST 363
+#define T_ARRAY 364
+#define T_CALLABLE 365
+#define T_CLASS_C 366
+#define T_TRAIT_C 367
+#define T_METHOD_C 368
+#define T_FUNC_C 369
+#define T_LINE 370
+#define T_FILE 371
+#define T_COMMENT 372
+#define T_DOC_COMMENT 373
+#define T_OPEN_TAG 374
+#define T_OPEN_TAG_WITH_ECHO 375
+#define T_CLOSE_TAG 376
+#define T_WHITESPACE 377
+#define T_START_HEREDOC 378
+#define T_END_HEREDOC 379
+#define T_DOLLAR_OPEN_CURLY_BRACES 380
+#define T_CURLY_OPEN 381
+#define T_PAAMAYIM_NEKUDOTAYIM 382
+#define T_NAMESPACE 383
+#define T_NS_C 384
+#define T_DIR 385
+#define T_NS_SEPARATOR 386
+
+
+
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
-
/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
-
#ifdef short
# undef short
@@ -496,14 +502,14 @@ typedef short int yytype_int16;
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int i)
+YYID (int yyi)
#else
static int
-YYID (i)
- int i;
+YYID (yyi)
+ int yyi;
#endif
{
- return i;
+ return yyi;
}
#endif
@@ -524,11 +530,11 @@ YYID (i)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -551,24 +557,24 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -584,9 +590,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -597,6 +603,27 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
@@ -614,42 +641,25 @@ union yyalloc
while (YYID (0))
# endif
# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
+#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 5312
+#define YYLAST 5133
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 158
+#define YYNTOKENS 160
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 206
+#define YYNNTS 216
/* YYNRULES -- Number of rules. */
-#define YYNRULES 516
+#define YYNRULES 541
/* YYNRULES -- Number of states. */
-#define YYNSTATES 983
+#define YYNSTATES 998
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 384
+#define YYMAXUTOK 386
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -660,16 +670,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, 48, 157, 2, 154, 47, 31, 2,
- 149, 150, 45, 42, 8, 43, 44, 46, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 26, 151,
- 36, 13, 37, 25, 51, 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,
+ 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, 61, 2, 155, 30, 2, 156, 2, 2, 2,
+ 2, 62, 2, 157, 31, 2, 158, 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, 152, 29, 153, 50, 2, 2, 2,
+ 2, 2, 2, 154, 30, 155, 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,
@@ -683,10 +693,10 @@ static const yytype_uint8 yytranslate[] =
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, 1, 2, 3, 4,
- 5, 6, 7, 9, 10, 11, 12, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 27, 28,
- 32, 33, 34, 35, 38, 39, 40, 41, 49, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 62, 63,
+ 5, 6, 7, 9, 10, 11, 12, 13, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 28,
+ 29, 33, 34, 35, 36, 39, 40, 41, 42, 50,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
@@ -695,7 +705,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
+ 144, 145, 146, 147, 148, 149, 150
};
#if YYDEBUG
@@ -707,284 +717,295 @@ static const yytype_uint16 yyprhs[] =
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,
- 123, 124, 125, 138, 139, 140, 148, 149, 150, 160,
- 161, 162, 163, 176, 177, 184, 187, 191, 194, 198,
- 201, 205, 209, 213, 217, 221, 223, 226, 232, 233,
- 234, 245, 246, 247, 258, 259, 266, 268, 269, 270,
- 271, 272, 273, 292, 296, 300, 302, 303, 305, 308,
- 309, 310, 321, 323, 327, 329, 331, 333, 334, 336,
- 337, 348, 349, 358, 359, 367, 369, 372, 374, 377,
- 378, 381, 383, 384, 387, 388, 391, 393, 397, 398,
- 401, 403, 406, 408, 413, 415, 420, 422, 427, 431,
- 437, 441, 446, 451, 457, 458, 459, 466, 467, 473,
- 475, 477, 479, 484, 485, 486, 494, 495, 496, 505,
- 506, 509, 510, 514, 516, 517, 520, 524, 530, 535,
- 540, 546, 554, 561, 562, 564, 566, 568, 570, 571,
- 573, 575, 578, 582, 586, 591, 595, 597, 599, 602,
- 607, 611, 617, 619, 623, 626, 627, 628, 633, 636,
- 638, 639, 649, 653, 655, 659, 661, 665, 666, 668,
- 670, 673, 676, 679, 683, 685, 689, 691, 693, 697,
- 702, 706, 707, 709, 711, 715, 717, 719, 720, 722,
- 724, 727, 729, 731, 733, 735, 737, 739, 743, 749,
- 751, 755, 761, 766, 770, 772, 773, 775, 776, 781,
- 783, 786, 788, 793, 797, 798, 802, 804, 806, 807,
- 808, 811, 812, 817, 818, 826, 830, 835, 836, 844,
- 847, 851, 855, 859, 863, 867, 871, 875, 879, 883,
- 887, 891, 894, 897, 900, 903, 904, 909, 910, 915,
- 916, 921, 922, 927, 931, 935, 939, 943, 947, 951,
- 955, 959, 963, 967, 971, 975, 978, 981, 984, 987,
- 991, 995, 999, 1003, 1007, 1011, 1015, 1019, 1023, 1027,
- 1029, 1030, 1036, 1037, 1038, 1046, 1047, 1053, 1055, 1058,
- 1061, 1064, 1067, 1070, 1073, 1076, 1079, 1080, 1084, 1086,
- 1091, 1095, 1099, 1102, 1103, 1114, 1115, 1127, 1129, 1130,
- 1135, 1139, 1144, 1146, 1149, 1150, 1156, 1157, 1165, 1166,
- 1173, 1174, 1182, 1183, 1191, 1192, 1200, 1201, 1209, 1210,
- 1216, 1218, 1220, 1224, 1227, 1229, 1233, 1236, 1238, 1240,
- 1241, 1242, 1249, 1251, 1254, 1255, 1258, 1259, 1262, 1266,
- 1267, 1269, 1271, 1272, 1276, 1278, 1280, 1282, 1284, 1286,
- 1288, 1290, 1292, 1294, 1296, 1300, 1303, 1305, 1307, 1311,
- 1314, 1317, 1320, 1325, 1329, 1331, 1333, 1337, 1339, 1341,
- 1343, 1347, 1350, 1352, 1356, 1360, 1362, 1363, 1366, 1367,
- 1369, 1375, 1379, 1383, 1385, 1387, 1389, 1391, 1393, 1395,
- 1396, 1397, 1405, 1407, 1410, 1411, 1412, 1417, 1422, 1427,
- 1428, 1433, 1435, 1437, 1438, 1440, 1443, 1447, 1451, 1453,
- 1458, 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1483,
- 1488, 1490, 1492, 1497, 1498, 1500, 1502, 1503, 1506, 1511,
- 1516, 1518, 1520, 1524, 1526, 1529, 1533, 1535, 1537, 1538,
- 1544, 1545, 1546, 1549, 1555, 1559, 1563, 1565, 1572, 1577,
- 1582, 1585, 1588, 1591, 1593, 1596, 1598, 1599, 1605, 1609,
- 1613, 1620, 1624, 1626, 1628, 1630, 1635, 1640, 1643, 1646,
- 1651, 1654, 1657, 1659, 1660, 1665, 1669
+ 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, 1344,
+ 1347, 1350, 1353, 1358, 1362, 1364, 1366, 1370, 1372, 1374,
+ 1376, 1380, 1383, 1385, 1389, 1393, 1395, 1396, 1399, 1400,
+ 1402, 1408, 1412, 1416, 1418, 1420, 1422, 1426, 1430, 1432,
+ 1434, 1436, 1437, 1438, 1446, 1448, 1451, 1452, 1453, 1458,
+ 1463, 1468, 1469, 1472, 1474, 1476, 1477, 1479, 1482, 1486,
+ 1490, 1492, 1497, 1498, 1504, 1506, 1508, 1510, 1512, 1515,
+ 1517, 1522, 1527, 1529, 1531, 1536, 1537, 1539, 1541, 1542,
+ 1545, 1550, 1555, 1557, 1559, 1563, 1565, 1568, 1572, 1574,
+ 1576, 1577, 1583, 1584, 1585, 1588, 1594, 1598, 1602, 1604,
+ 1611, 1616, 1621, 1624, 1627, 1630, 1632, 1635, 1637, 1638,
+ 1644, 1648, 1652, 1659, 1663, 1665, 1667, 1669, 1674, 1679,
+ 1684, 1687, 1690, 1695, 1698, 1701, 1703, 1704, 1709, 1711,
+ 1713, 1717
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 159, 0, -1, 160, -1, -1, 160, 161, 163, -1,
- -1, 71, -1, 162, 148, 71, -1, 172, -1, 203,
- -1, 204, -1, 117, 149, 150, 151, -1, 145, 162,
- 151, -1, -1, 145, 162, 152, 164, 160, 153, -1,
- -1, 145, 152, 165, 160, 153, -1, 104, 166, 151,
- -1, 168, 151, -1, 166, 8, 167, -1, 167, -1,
- 162, -1, 162, 90, 71, -1, 148, 162, -1, 148,
- 162, 90, 71, -1, 168, 8, 71, 13, 316, -1,
- 99, 71, 13, 316, -1, -1, 169, 170, 171, -1,
- -1, 172, -1, 203, -1, 204, -1, 117, 149, 150,
- 151, -1, 173, -1, 71, 26, -1, 152, 169, 153,
- -1, -1, -1, 65, 149, 322, 150, 174, 172, 175,
- 229, 233, -1, -1, -1, 65, 149, 322, 150, 26,
- 176, 169, 177, 231, 234, 68, 151, -1, -1, -1,
- 82, 149, 178, 322, 150, 179, 228, -1, -1, -1,
- 81, 180, 172, 82, 149, 181, 322, 150, 151, -1,
- -1, -1, -1, 84, 149, 267, 151, 182, 267, 151,
- 183, 267, 150, 184, 219, -1, -1, 91, 149, 322,
- 150, 185, 223, -1, 95, 151, -1, 95, 322, 151,
- -1, 96, 151, -1, 96, 322, 151, -1, 100, 151,
- -1, 100, 278, 151, -1, 100, 326, 151, -1, 106,
- 240, 151, -1, 112, 242, 151, -1, 80, 266, 151,
- -1, 75, -1, 322, 151, -1, 114, 149, 201, 150,
- 151, -1, -1, -1, 86, 149, 326, 90, 186, 218,
- 217, 150, 187, 220, -1, -1, -1, 86, 149, 278,
- 90, 188, 326, 217, 150, 189, 220, -1, -1, 88,
- 190, 149, 222, 150, 221, -1, 151, -1, -1, -1,
- -1, -1, -1, 101, 191, 152, 169, 153, 102, 149,
- 192, 305, 193, 73, 150, 194, 152, 169, 153, 195,
- 196, -1, 103, 322, 151, -1, 97, 71, 151, -1,
- 197, -1, -1, 198, -1, 197, 198, -1, -1, -1,
- 102, 149, 305, 199, 73, 150, 200, 152, 169, 153,
- -1, 202, -1, 201, 8, 202, -1, 326, -1, 206,
- -1, 208, -1, -1, 31, -1, -1, 292, 205, 71,
- 207, 149, 235, 150, 152, 169, 153, -1, -1, 211,
- 71, 212, 209, 215, 152, 243, 153, -1, -1, 213,
- 71, 210, 214, 152, 243, 153, -1, 118, -1, 111,
- 118, -1, 119, -1, 110, 118, -1, -1, 121, 305,
- -1, 120, -1, -1, 121, 216, -1, -1, 122, 216,
- -1, 305, -1, 216, 8, 305, -1, -1, 124, 218,
- -1, 326, -1, 31, 326, -1, 172, -1, 26, 169,
- 85, 151, -1, 172, -1, 26, 169, 87, 151, -1,
- 172, -1, 26, 169, 89, 151, -1, 71, 13, 316,
- -1, 222, 8, 71, 13, 316, -1, 152, 224, 153,
- -1, 152, 151, 224, 153, -1, 26, 224, 92, 151,
- -1, 26, 151, 224, 92, 151, -1, -1, -1, 224,
- 93, 322, 227, 225, 169, -1, -1, 224, 94, 227,
- 226, 169, -1, 26, -1, 151, -1, 172, -1, 26,
- 169, 83, 151, -1, -1, -1, 229, 66, 149, 322,
- 150, 230, 172, -1, -1, -1, 231, 66, 149, 322,
- 150, 26, 232, 169, -1, -1, 67, 172, -1, -1,
- 67, 26, 169, -1, 236, -1, -1, 237, 73, -1,
- 237, 31, 73, -1, 237, 31, 73, 13, 316, -1,
- 237, 73, 13, 316, -1, 236, 8, 237, 73, -1,
- 236, 8, 237, 31, 73, -1, 236, 8, 237, 31,
- 73, 13, 316, -1, 236, 8, 237, 73, 13, 316,
- -1, -1, 126, -1, 127, -1, 305, -1, 239, -1,
- -1, 278, -1, 326, -1, 31, 324, -1, 239, 8,
- 278, -1, 239, 8, 326, -1, 239, 8, 31, 324,
- -1, 240, 8, 241, -1, 241, -1, 73, -1, 154,
- 323, -1, 154, 152, 322, 153, -1, 242, 8, 73,
- -1, 242, 8, 73, 13, 316, -1, 73, -1, 73,
- 13, 316, -1, 243, 244, -1, -1, -1, 260, 245,
- 264, 151, -1, 265, 151, -1, 247, -1, -1, 261,
- 292, 205, 71, 246, 149, 235, 150, 259, -1, 104,
- 248, 249, -1, 305, -1, 248, 8, 305, -1, 151,
- -1, 152, 250, 153, -1, -1, 251, -1, 252, -1,
- 251, 252, -1, 253, 151, -1, 257, 151, -1, 256,
- 105, 254, -1, 305, -1, 254, 8, 305, -1, 71,
- -1, 256, -1, 305, 144, 71, -1, 255, 90, 258,
- 71, -1, 255, 90, 263, -1, -1, 263, -1, 151,
- -1, 152, 169, 153, -1, 262, -1, 113, -1, -1,
- 262, -1, 263, -1, 262, 263, -1, 107, -1, 108,
- -1, 109, -1, 112, -1, 111, -1, 110, -1, 264,
- 8, 73, -1, 264, 8, 73, 13, 316, -1, 73,
- -1, 73, 13, 316, -1, 265, 8, 71, 13, 316,
- -1, 99, 71, 13, 316, -1, 266, 8, 322, -1,
- 322, -1, -1, 268, -1, -1, 268, 8, 269, 322,
- -1, 322, -1, 270, 330, -1, 330, -1, 271, 61,
- 345, 155, -1, 61, 345, 155, -1, -1, 271, 273,
- 270, -1, 271, -1, 270, -1, -1, -1, 275, 272,
- -1, -1, 63, 306, 277, 314, -1, -1, 125, 149,
- 279, 351, 150, 13, 322, -1, 326, 13, 322, -1,
- 326, 13, 31, 326, -1, -1, 326, 13, 31, 63,
- 306, 280, 314, -1, 62, 322, -1, 326, 24, 322,
- -1, 326, 23, 322, -1, 326, 22, 322, -1, 326,
- 21, 322, -1, 326, 20, 322, -1, 326, 19, 322,
- -1, 326, 18, 322, -1, 326, 17, 322, -1, 326,
- 16, 322, -1, 326, 15, 322, -1, 326, 14, 322,
- -1, 325, 60, -1, 60, 325, -1, 325, 59, -1,
- 59, 325, -1, -1, 322, 27, 281, 322, -1, -1,
- 322, 28, 282, 322, -1, -1, 322, 9, 283, 322,
- -1, -1, 322, 11, 284, 322, -1, 322, 10, 322,
- -1, 322, 29, 322, -1, 322, 31, 322, -1, 322,
- 30, 322, -1, 322, 44, 322, -1, 322, 42, 322,
- -1, 322, 43, 322, -1, 322, 45, 322, -1, 322,
- 46, 322, -1, 322, 47, 322, -1, 322, 41, 322,
- -1, 322, 40, 322, -1, 42, 322, -1, 43, 322,
- -1, 48, 322, -1, 50, 322, -1, 322, 33, 322,
- -1, 322, 32, 322, -1, 322, 35, 322, -1, 322,
- 34, 322, -1, 322, 36, 322, -1, 322, 39, 322,
- -1, 322, 37, 322, -1, 322, 38, 322, -1, 322,
- 49, 306, -1, 149, 322, 150, -1, 276, -1, -1,
- 149, 276, 150, 285, 274, -1, -1, -1, 322, 25,
- 286, 322, 26, 287, 322, -1, -1, 322, 25, 26,
- 288, 322, -1, 360, -1, 58, 322, -1, 57, 322,
- -1, 56, 322, -1, 55, 322, -1, 54, 322, -1,
- 53, 322, -1, 52, 322, -1, 64, 312, -1, -1,
- 51, 289, 322, -1, 318, -1, 126, 149, 354, 150,
- -1, 61, 354, 155, -1, 156, 313, 156, -1, 12,
- 322, -1, -1, 292, 205, 149, 290, 235, 150, 293,
- 152, 169, 153, -1, -1, 112, 292, 205, 149, 291,
- 235, 150, 293, 152, 169, 153, -1, 98, -1, -1,
- 104, 149, 294, 150, -1, 294, 8, 73, -1, 294,
- 8, 31, 73, -1, 73, -1, 31, 73, -1, -1,
- 162, 149, 296, 238, 150, -1, -1, 145, 148, 162,
- 149, 297, 238, 150, -1, -1, 148, 162, 149, 298,
- 238, 150, -1, -1, 304, 144, 349, 149, 299, 238,
- 150, -1, -1, 304, 144, 336, 149, 300, 238, 150,
- -1, -1, 338, 144, 349, 149, 301, 238, 150, -1,
- -1, 338, 144, 336, 149, 302, 238, 150, -1, -1,
- 336, 149, 303, 238, 150, -1, 112, -1, 162, -1,
- 145, 148, 162, -1, 148, 162, -1, 162, -1, 145,
- 148, 162, -1, 148, 162, -1, 304, -1, 307, -1,
- -1, -1, 342, 123, 308, 346, 309, 310, -1, 342,
- -1, 310, 311, -1, -1, 123, 346, -1, -1, 149,
- 150, -1, 149, 322, 150, -1, -1, 78, -1, 356,
- -1, -1, 149, 238, 150, -1, 69, -1, 70, -1,
- 79, -1, 132, -1, 133, -1, 147, -1, 129, -1,
- 130, -1, 131, -1, 146, -1, 140, 78, 141, -1,
- 140, 141, -1, 315, -1, 162, -1, 145, 148, 162,
- -1, 148, 162, -1, 42, 316, -1, 43, 316, -1,
- 126, 149, 319, 150, -1, 61, 319, 155, -1, 317,
- -1, 128, -1, 304, 144, 71, -1, 72, -1, 363,
- -1, 162, -1, 145, 148, 162, -1, 148, 162, -1,
- 315, -1, 157, 356, 157, -1, 140, 356, 141, -1,
- 128, -1, -1, 321, 320, -1, -1, 8, -1, 321,
- 8, 316, 124, 316, -1, 321, 8, 316, -1, 316,
- 124, 316, -1, 316, -1, 323, -1, 278, -1, 326,
- -1, 326, -1, 326, -1, -1, -1, 341, 123, 327,
- 346, 328, 335, 329, -1, 341, -1, 329, 330, -1,
- -1, -1, 123, 346, 331, 335, -1, 332, 61, 345,
- 155, -1, 333, 61, 345, 155, -1, -1, 149, 334,
- 238, 150, -1, 333, -1, 332, -1, -1, 343, -1,
- 350, 343, -1, 304, 144, 336, -1, 338, 144, 336,
- -1, 343, -1, 339, 61, 345, 155, -1, -1, 295,
- 340, 61, 345, 155, -1, 342, -1, 339, -1, 295,
- -1, 343, -1, 350, 343, -1, 337, -1, 343, 61,
- 345, 155, -1, 343, 152, 322, 153, -1, 344, -1,
- 73, -1, 154, 152, 322, 153, -1, -1, 322, -1,
- 348, -1, -1, 336, 347, -1, 348, 61, 345, 155,
- -1, 348, 152, 322, 153, -1, 349, -1, 71, -1,
- 152, 322, 153, -1, 154, -1, 350, 154, -1, 351,
- 8, 352, -1, 352, -1, 326, -1, -1, 125, 149,
- 353, 351, 150, -1, -1, -1, 355, 320, -1, 355,
- 8, 322, 124, 322, -1, 355, 8, 322, -1, 322,
- 124, 322, -1, 322, -1, 355, 8, 322, 124, 31,
- 324, -1, 355, 8, 31, 324, -1, 322, 124, 31,
- 324, -1, 31, 324, -1, 356, 357, -1, 356, 78,
- -1, 357, -1, 78, 357, -1, 73, -1, -1, 73,
- 61, 358, 359, 155, -1, 73, 123, 71, -1, 142,
- 322, 153, -1, 142, 72, 61, 322, 155, 153, -1,
- 143, 326, 153, -1, 71, -1, 74, -1, 73, -1,
- 115, 149, 361, 150, -1, 116, 149, 326, 150, -1,
- 7, 322, -1, 6, 322, -1, 5, 149, 322, 150,
- -1, 4, 322, -1, 3, 322, -1, 326, -1, -1,
- 361, 8, 362, 326, -1, 304, 144, 71, -1, 338,
- 144, 71, -1
+ 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, 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, 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
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 214, 214, 218, 218, 219, 223, 224, 228, 229,
- 230, 231, 232, 233, 233, 235, 235, 237, 238, 242,
- 243, 247, 248, 249, 250, 254, 255, 259, 259, 260,
- 265, 266, 267, 268, 273, 274, 278, 279, 279, 279,
- 280, 280, 280, 281, 281, 281, 282, 282, 282, 286,
- 288, 290, 283, 292, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 307, 308,
- 306, 311, 312, 310, 314, 314, 315, 316, 317, 318,
- 319, 320, 316, 322, 323, 328, 329, 333, 334, 339,
- 339, 339, 344, 345, 349, 353, 357, 362, 363, 368,
- 368, 374, 373, 380, 379, 389, 390, 391, 392, 396,
- 397, 401, 404, 406, 409, 411, 415, 416, 420, 421,
- 426, 427, 431, 432, 437, 438, 443, 444, 449, 450,
- 455, 456, 457, 458, 463, 464, 464, 465, 465, 470,
- 471, 476, 477, 482, 484, 484, 488, 490, 490, 494,
- 496, 500, 502, 507, 508, 513, 514, 515, 516, 517,
- 518, 519, 520, 525, 526, 527, 528, 533, 534, 539,
- 540, 541, 542, 543, 544, 548, 549, 554, 555, 556,
- 561, 562, 563, 564, 570, 571, 576, 576, 577, 578,
- 579, 579, 584, 588, 589, 593, 594, 597, 599, 603,
- 604, 608, 609, 613, 617, 618, 622, 623, 627, 631,
- 632, 636, 637, 641, 642, 646, 647, 651, 652, 656,
- 657, 661, 662, 663, 664, 665, 666, 670, 671, 672,
- 673, 677, 678, 682, 683, 688, 689, 693, 693, 694,
- 698, 699, 703, 704, 708, 708, 709, 710, 714, 715,
- 715, 720, 720, 724, 724, 725, 726, 727, 727, 728,
- 729, 730, 731, 732, 733, 734, 735, 736, 737, 738,
- 739, 740, 741, 742, 743, 744, 744, 745, 745, 746,
- 746, 747, 747, 748, 749, 750, 751, 752, 753, 754,
- 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
- 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
- 775, 775, 776, 777, 776, 779, 779, 781, 782, 783,
- 784, 785, 786, 787, 788, 789, 790, 790, 791, 792,
- 793, 794, 795, 796, 796, 798, 798, 803, 806, 808,
- 812, 813, 814, 815, 819, 819, 822, 822, 825, 825,
- 828, 828, 831, 831, 834, 834, 837, 837, 840, 840,
- 846, 847, 848, 849, 853, 854, 855, 861, 862, 867,
- 868, 867, 870, 875, 876, 881, 885, 886, 887, 891,
- 892, 893, 898, 899, 904, 905, 906, 907, 908, 909,
- 910, 911, 912, 913, 914, 915, 920, 921, 922, 923,
- 924, 925, 926, 927, 928, 929, 933, 937, 938, 939,
- 940, 941, 942, 943, 944, 945, 950, 951, 954, 956,
- 960, 961, 962, 963, 967, 968, 973, 978, 983, 988,
- 989, 988, 991, 995, 996, 1001, 1001, 1005, 1006, 1010,
- 1010, 1016, 1017, 1018, 1022, 1023, 1027, 1028, 1033, 1037,
- 1038, 1038, 1043, 1044, 1045, 1050, 1051, 1052, 1056, 1057,
- 1058, 1063, 1064, 1068, 1069, 1074, 1075, 1075, 1079, 1080,
- 1081, 1085, 1086, 1090, 1091, 1095, 1096, 1101, 1102, 1102,
- 1103, 1108, 1109, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
- 1120, 1124, 1125, 1126, 1127, 1133, 1134, 1134, 1135, 1136,
- 1137, 1138, 1143, 1144, 1145, 1150, 1151, 1152, 1153, 1154,
- 1155, 1156, 1160, 1161, 1161, 1165, 1166
+ 0, 217, 217, 221, 221, 222, 226, 227, 231, 232,
+ 233, 234, 235, 236, 236, 238, 238, 240, 241, 245,
+ 246, 250, 251, 252, 253, 257, 258, 262, 262, 263,
+ 268, 269, 270, 271, 276, 277, 281, 282, 282, 282,
+ 283, 283, 283, 284, 284, 284, 285, 285, 285, 289,
+ 291, 293, 286, 295, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 311,
+ 312, 310, 315, 316, 314, 318, 318, 319, 320, 321,
+ 320, 323, 324, 328, 329, 330, 331, 332, 329, 336,
+ 337, 337, 341, 342, 346, 347, 351, 351, 351, 355,
+ 356, 360, 364, 368, 372, 373, 378, 378, 385, 384,
+ 391, 390, 400, 401, 402, 403, 407, 408, 412, 415,
+ 417, 420, 422, 426, 427, 431, 432, 436, 437, 438,
+ 438, 442, 443, 448, 449, 454, 455, 460, 461, 466,
+ 467, 468, 469, 474, 475, 475, 476, 476, 481, 482,
+ 487, 488, 493, 495, 495, 499, 501, 501, 505, 507,
+ 511, 513, 518, 519, 524, 525, 526, 527, 528, 529,
+ 530, 531, 536, 537, 538, 539, 544, 545, 546, 551,
+ 552, 553, 554, 555, 556, 560, 561, 566, 567, 568,
+ 573, 574, 575, 576, 582, 583, 588, 588, 589, 590,
+ 591, 591, 597, 601, 602, 606, 607, 610, 612, 616,
+ 617, 621, 622, 626, 630, 631, 635, 636, 640, 644,
+ 645, 649, 650, 654, 655, 659, 660, 664, 665, 669,
+ 670, 674, 675, 676, 677, 678, 679, 683, 684, 685,
+ 686, 690, 691, 695, 696, 701, 702, 706, 706, 707,
+ 711, 712, 716, 717, 721, 721, 722, 723, 727, 728,
+ 728, 733, 733, 737, 737, 738, 739, 740, 740, 741,
+ 742, 743, 744, 745, 746, 747, 748, 749, 750, 751,
+ 752, 753, 754, 755, 756, 757, 757, 758, 758, 759,
+ 759, 760, 760, 761, 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, 788, 789, 790, 789, 792, 792, 794, 795, 796,
+ 797, 798, 799, 800, 801, 802, 803, 803, 804, 805,
+ 806, 807, 808, 809, 810, 810, 813, 813, 819, 820,
+ 821, 822, 826, 827, 828, 831, 832, 835, 838, 840,
+ 844, 845, 846, 847, 851, 851, 853, 853, 855, 855,
+ 857, 857, 859, 859, 861, 861, 863, 863, 865, 865,
+ 870, 871, 872, 873, 877, 878, 879, 885, 886, 891,
+ 892, 891, 894, 899, 900, 905, 909, 910, 911, 915,
+ 916, 917, 922, 923, 928, 929, 930, 931, 932, 933,
+ 934, 935, 936, 937, 938, 939, 944, 945, 946, 947,
+ 948, 949, 950, 951, 952, 953, 957, 961, 962, 963,
+ 964, 965, 966, 967, 968, 969, 974, 975, 978, 980,
+ 984, 985, 986, 987, 991, 992, 996, 997, 1002, 1007,
+ 1012, 1017, 1018, 1017, 1020, 1024, 1025, 1030, 1030, 1034,
+ 1035, 1039, 1039, 1044, 1045, 1046, 1050, 1051, 1055, 1056,
+ 1061, 1065, 1066, 1066, 1071, 1072, 1073, 1078, 1079, 1080,
+ 1084, 1085, 1086, 1091, 1092, 1096, 1097, 1102, 1103, 1103,
+ 1107, 1108, 1109, 1113, 1114, 1118, 1119, 1123, 1124, 1129,
+ 1130, 1130, 1131, 1136, 1137, 1141, 1142, 1143, 1144, 1145,
+ 1146, 1147, 1148, 1152, 1153, 1154, 1155, 1161, 1162, 1162,
+ 1163, 1164, 1165, 1166, 1171, 1172, 1173, 1178, 1179, 1180,
+ 1181, 1182, 1183, 1184, 1185, 1189, 1190, 1190, 1194, 1195,
+ 1199, 1200
};
#endif
@@ -998,9 +1019,9 @@ static const char *const yytname[] =
"\"eval (T_EVAL)\"", "\"include_once (T_INCLUDE_ONCE)\"",
"\"include (T_INCLUDE)\"", "','", "\"or (T_LOGICAL_OR)\"",
"\"xor (T_LOGICAL_XOR)\"", "\"and (T_LOGICAL_AND)\"",
- "\"print (T_PRINT)\"", "'='", "\">>= (T_SR_EQUAL)\"",
- "\"<<= (T_SL_EQUAL)\"", "\"^= (T_XOR_EQUAL)\"", "\"|= (T_OR_EQUAL)\"",
- "\"&= (T_AND_EQUAL)\"", "\"%= (T_MOD_EQUAL)\"",
+ "\"print (T_PRINT)\"", "\"yield (T_YIELD)\"", "'='",
+ "\">>= (T_SR_EQUAL)\"", "\"<<= (T_SL_EQUAL)\"", "\"^= (T_XOR_EQUAL)\"",
+ "\"|= (T_OR_EQUAL)\"", "\"&= (T_AND_EQUAL)\"", "\"%= (T_MOD_EQUAL)\"",
"\".= (T_CONCAT_EQUAL)\"", "\"/= (T_DIV_EQUAL)\"",
"\"*= (T_MUL_EQUAL)\"", "\"-= (T_MINUS_EQUAL)\"",
"\"+= (T_PLUS_EQUAL)\"", "'?'", "':'", "\"|| (T_BOOLEAN_OR)\"",
@@ -1032,12 +1053,12 @@ static const char *const yytname[] =
"\"continue (T_CONTINUE)\"", "\"goto (T_GOTO)\"",
"\"function (T_FUNCTION)\"", "\"const (T_CONST)\"",
"\"return (T_RETURN)\"", "\"try (T_TRY)\"", "\"catch (T_CATCH)\"",
- "\"throw (T_THROW)\"", "\"use (T_USE)\"", "\"insteadof (T_INSTEADOF)\"",
- "\"global (T_GLOBAL)\"", "\"public (T_PUBLIC)\"",
- "\"protected (T_PROTECTED)\"", "\"private (T_PRIVATE)\"",
- "\"final (T_FINAL)\"", "\"abstract (T_ABSTRACT)\"",
- "\"static (T_STATIC)\"", "\"var (T_VAR)\"", "\"unset (T_UNSET)\"",
- "\"isset (T_ISSET)\"", "\"empty (T_EMPTY)\"",
+ "\"finally (T_FINALLY)\"", "\"throw (T_THROW)\"", "\"use (T_USE)\"",
+ "\"insteadof (T_INSTEADOF)\"", "\"global (T_GLOBAL)\"",
+ "\"public (T_PUBLIC)\"", "\"protected (T_PROTECTED)\"",
+ "\"private (T_PRIVATE)\"", "\"final (T_FINAL)\"",
+ "\"abstract (T_ABSTRACT)\"", "\"static (T_STATIC)\"", "\"var (T_VAR)\"",
+ "\"unset (T_UNSET)\"", "\"isset (T_ISSET)\"", "\"empty (T_EMPTY)\"",
"\"__halt_compiler (T_HALT_COMPILER)\"", "\"class (T_CLASS)\"",
"\"trait (T_TRAIT)\"", "\"interface (T_INTERFACE)\"",
"\"extends (T_EXTENDS)\"", "\"implements (T_IMPLEMENTS)\"",
@@ -1055,27 +1076,29 @@ static const char *const yytname[] =
"\":: (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", "@24", "@25", "@26",
- "additional_catches", "non_empty_additional_catches", "additional_catch",
- "@27", "@28", "unset_variables", "unset_variable",
+ "']'", "'`'", "'\"'", "$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",
"function_declaration_statement", "class_declaration_statement",
- "is_reference", "unticked_function_declaration_statement", "@29",
- "unticked_class_declaration_statement", "@30", "@31", "class_entry_type",
- "extends_from", "interface_entry", "interface_extends_list",
- "implements_list", "interface_list", "foreach_optional_arg",
- "foreach_variable", "for_statement", "foreach_statement",
- "declare_statement", "declare_list", "switch_case_list", "case_list",
- "@32", "@33", "case_separator", "while_statement", "elseif_list", "@34",
- "new_elseif_list", "@35", "else_single", "new_else_single",
- "parameter_list", "non_empty_parameter_list", "optional_class_type",
+ "is_reference", "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",
+ "foreach_statement", "declare_statement", "declare_list",
+ "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",
"function_call_parameter_list", "non_empty_function_call_parameter_list",
"global_var_list", "global_var", "static_var_list",
- "class_statement_list", "class_statement", "@36", "@37",
+ "class_statement_list", "class_statement", "$@39", "$@40",
"trait_use_statement", "trait_list", "trait_adaptations",
"trait_adaptation_list", "non_empty_trait_adaptation_list",
"trait_adaptation_statement", "trait_precedence", "trait_reference_list",
@@ -1083,32 +1106,34 @@ static const char *const yytname[] =
"trait_alias", "trait_modifiers", "method_body", "variable_modifiers",
"method_modifiers", "non_empty_member_modifiers", "member_modifier",
"class_variable_declaration", "class_constant_declaration",
- "echo_expr_list", "for_expr", "non_empty_for_expr", "@38",
+ "echo_expr_list", "for_expr", "non_empty_for_expr", "$@41",
"chaining_method_or_property", "chaining_dereference",
- "chaining_instance_call", "@39", "instance_call", "@40", "new_expr",
- "@41", "expr_without_variable", "@42", "@43", "@44", "@45", "@46", "@47",
- "@48", "@49", "@50", "@51", "@52", "@53", "@54", "function",
- "lexical_vars", "lexical_var_list", "function_call", "@55", "@56", "@57",
- "@58", "@59", "@60", "@61", "@62", "class_name",
+ "chaining_instance_call", "$@42", "instance_call", "$@43", "new_expr",
+ "$@44", "expr_without_variable", "$@45", "$@46", "$@47", "$@48", "$@49",
+ "$@50", "@51", "$@52", "$@53", "$@54", "$@55", "@56", "@57",
+ "yield_expr", "combined_scalar_offset", "combined_scalar", "function",
+ "lexical_vars", "lexical_var_list", "function_call", "@58", "@59", "@60",
+ "@61", "$@62", "$@63", "$@64", "$@65", "class_name",
"fully_qualified_class_name", "class_name_reference",
- "dynamic_class_name_reference", "@63", "@64",
+ "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",
- "r_variable", "w_variable", "rw_variable", "variable", "@65", "@66",
- "variable_properties", "variable_property", "@67",
- "array_method_dereference", "method", "@68", "method_or_not",
+ "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", "@69", "base_variable_with_function_calls",
- "base_variable", "reference_variable", "compound_variable", "dim_offset",
- "object_property", "@70", "object_dim_list", "variable_name",
+ "array_function_dereference", "$@72",
+ "base_variable_with_function_calls", "base_variable",
+ "reference_variable", "compound_variable", "dim_offset",
+ "object_property", "$@73", "object_dim_list", "variable_name",
"simple_indirect_reference", "assignment_list",
- "assignment_list_element", "@71", "array_pair_list",
- "non_empty_array_pair_list", "encaps_list", "encaps_var", "@72",
+ "assignment_list_element", "$@74", "array_pair_list",
+ "non_empty_array_pair_list", "encaps_list", "encaps_var", "$@75",
"encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
- "@73", "class_constant", 0
+ "$@76", "isset_variable", "class_constant", 0
};
#endif
@@ -1118,12 +1143,12 @@ static const char *const yytname[] =
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 44, 263,
- 264, 265, 266, 61, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 63, 58, 278, 279, 124,
- 94, 38, 280, 281, 282, 283, 60, 62, 284, 285,
- 286, 287, 43, 45, 46, 42, 47, 37, 33, 288,
- 126, 64, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 91, 298, 299, 300, 301, 302, 303, 304, 305,
+ 264, 265, 266, 267, 61, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 63, 58, 279, 280,
+ 124, 94, 38, 281, 282, 283, 284, 60, 62, 285,
+ 286, 287, 288, 43, 45, 46, 42, 47, 37, 33,
+ 289, 126, 64, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 91, 299, 300, 301, 302, 303, 304, 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, 333, 334, 335,
@@ -1131,66 +1156,69 @@ static const yytype_uint16 yytoknum[] =
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
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, 40,
- 41, 59, 123, 125, 36, 93, 96, 34
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
+ 386, 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, 158, 159, 161, 160, 160, 162, 162, 163, 163,
- 163, 163, 163, 164, 163, 165, 163, 163, 163, 166,
- 166, 167, 167, 167, 167, 168, 168, 170, 169, 169,
- 171, 171, 171, 171, 172, 172, 173, 174, 175, 173,
- 176, 177, 173, 178, 179, 173, 180, 181, 173, 182,
- 183, 184, 173, 185, 173, 173, 173, 173, 173, 173,
- 173, 173, 173, 173, 173, 173, 173, 173, 186, 187,
- 173, 188, 189, 173, 190, 173, 173, 191, 192, 193,
- 194, 195, 173, 173, 173, 196, 196, 197, 197, 199,
- 200, 198, 201, 201, 202, 203, 204, 205, 205, 207,
- 206, 209, 208, 210, 208, 211, 211, 211, 211, 212,
- 212, 213, 214, 214, 215, 215, 216, 216, 217, 217,
- 218, 218, 219, 219, 220, 220, 221, 221, 222, 222,
- 223, 223, 223, 223, 224, 225, 224, 226, 224, 227,
- 227, 228, 228, 229, 230, 229, 231, 232, 231, 233,
- 233, 234, 234, 235, 235, 236, 236, 236, 236, 236,
- 236, 236, 236, 237, 237, 237, 237, 238, 238, 239,
- 239, 239, 239, 239, 239, 240, 240, 241, 241, 241,
- 242, 242, 242, 242, 243, 243, 245, 244, 244, 244,
- 246, 244, 247, 248, 248, 249, 249, 250, 250, 251,
- 251, 252, 252, 253, 254, 254, 255, 255, 256, 257,
- 257, 258, 258, 259, 259, 260, 260, 261, 261, 262,
- 262, 263, 263, 263, 263, 263, 263, 264, 264, 264,
- 264, 265, 265, 266, 266, 267, 267, 269, 268, 268,
- 270, 270, 271, 271, 273, 272, 272, 272, 274, 275,
- 274, 277, 276, 279, 278, 278, 278, 280, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 281, 278, 282, 278, 283,
- 278, 284, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 285, 278, 286, 287, 278, 288, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 289, 278, 278, 278,
- 278, 278, 278, 290, 278, 291, 278, 292, 293, 293,
- 294, 294, 294, 294, 296, 295, 297, 295, 298, 295,
- 299, 295, 300, 295, 301, 295, 302, 295, 303, 295,
- 304, 304, 304, 304, 305, 305, 305, 306, 306, 308,
- 309, 307, 307, 310, 310, 311, 312, 312, 312, 313,
- 313, 313, 314, 314, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 317, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 319, 319, 320, 320,
- 321, 321, 321, 321, 322, 322, 323, 324, 325, 327,
- 328, 326, 326, 329, 329, 331, 330, 332, 332, 334,
- 333, 335, 335, 335, 336, 336, 337, 337, 338, 339,
- 340, 339, 341, 341, 341, 342, 342, 342, 343, 343,
- 343, 344, 344, 345, 345, 346, 347, 346, 348, 348,
- 348, 349, 349, 350, 350, 351, 351, 352, 353, 352,
- 352, 354, 354, 355, 355, 355, 355, 355, 355, 355,
- 355, 356, 356, 356, 356, 357, 358, 357, 357, 357,
- 357, 357, 359, 359, 359, 360, 360, 360, 360, 360,
- 360, 360, 361, 362, 361, 363, 363
+ 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, 327, 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
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1199,20 +1227,21 @@ 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, 9,
- 0, 0, 12, 0, 0, 7, 0, 0, 9, 0,
- 0, 0, 12, 0, 6, 2, 3, 2, 3, 2,
- 3, 3, 3, 3, 3, 1, 2, 5, 0, 0,
- 10, 0, 0, 10, 0, 6, 1, 0, 0, 0,
- 0, 0, 18, 3, 3, 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, 1, 4, 1, 4, 1, 4, 3, 5,
- 3, 4, 4, 5, 0, 0, 6, 0, 5, 1,
- 1, 1, 4, 0, 0, 7, 0, 0, 8, 0,
- 2, 0, 3, 1, 0, 2, 3, 5, 4, 4,
- 5, 7, 6, 0, 1, 1, 1, 1, 0, 1,
+ 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,
@@ -1226,1474 +1255,1450 @@ static const yytype_uint8 yyr2[] =
3, 2, 2, 2, 2, 0, 4, 0, 4, 0,
4, 0, 4, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 2, 2, 2, 2, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
+ 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, 4,
- 3, 3, 2, 0, 10, 0, 11, 1, 0, 4,
- 3, 4, 1, 2, 0, 5, 0, 7, 0, 6,
- 0, 7, 0, 7, 0, 7, 0, 7, 0, 5,
+ 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, 3, 0,
- 1, 1, 0, 3, 1, 1, 1, 1, 1, 1,
+ 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, 3, 2,
2, 2, 4, 3, 1, 1, 3, 1, 1, 1,
3, 2, 1, 3, 3, 1, 0, 2, 0, 1,
- 5, 3, 3, 1, 1, 1, 1, 1, 1, 0,
- 0, 7, 1, 2, 0, 0, 4, 4, 4, 0,
- 4, 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, 2, 2, 4,
- 2, 2, 1, 0, 4, 3, 3
+ 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
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
5, 0, 3, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 326, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 481, 0, 0, 376, 0,
- 384, 385, 6, 407, 461, 65, 386, 0, 46, 0,
- 0, 0, 74, 0, 0, 0, 0, 337, 0, 0,
- 77, 0, 0, 0, 0, 0, 360, 0, 0, 0,
- 0, 105, 107, 111, 0, 0, 415, 390, 391, 392,
- 387, 388, 0, 0, 393, 389, 0, 0, 76, 29,
- 473, 379, 0, 409, 4, 0, 8, 34, 9, 10,
- 95, 96, 0, 0, 309, 425, 97, 454, 0, 412,
- 328, 0, 424, 0, 426, 0, 457, 0, 453, 432,
- 452, 455, 460, 0, 317, 408, 6, 360, 0, 97,
- 511, 510, 0, 508, 507, 332, 295, 296, 297, 298,
- 0, 324, 323, 322, 321, 320, 319, 318, 360, 0,
- 0, 361, 0, 274, 428, 0, 272, 0, 486, 0,
- 418, 259, 0, 0, 361, 367, 251, 368, 0, 372,
- 455, 0, 0, 325, 0, 35, 0, 234, 0, 43,
- 235, 0, 0, 0, 55, 0, 57, 0, 0, 0,
- 59, 425, 0, 426, 0, 0, 0, 21, 0, 20,
- 177, 0, 0, 176, 108, 106, 182, 0, 97, 0,
- 0, 0, 0, 253, 481, 495, 0, 395, 0, 0,
- 0, 493, 0, 15, 0, 411, 309, 0, 27, 0,
- 380, 0, 381, 0, 0, 0, 344, 0, 18, 109,
- 103, 98, 0, 0, 0, 279, 0, 281, 312, 275,
- 277, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 343, 0, 0, 0, 0, 336, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 503, 0, 0, 396,
+ 0, 404, 405, 6, 427, 483, 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, 435, 410, 411,
+ 412, 407, 408, 0, 0, 413, 409, 0, 0, 77,
+ 29, 495, 399, 0, 429, 4, 0, 8, 34, 9,
+ 10, 102, 103, 0, 0, 319, 445, 0, 339, 340,
+ 104, 476, 0, 432, 338, 0, 318, 444, 0, 448,
+ 378, 479, 0, 475, 454, 474, 477, 482, 0, 327,
+ 428, 343, 6, 380, 0, 104, 534, 533, 0, 531,
+ 530, 342, 445, 0, 448, 305, 306, 307, 308, 0,
+ 334, 333, 332, 331, 330, 329, 328, 380, 0, 0,
+ 364, 0, 284, 450, 0, 282, 0, 508, 0, 438,
+ 269, 0, 0, 381, 387, 261, 388, 0, 392, 477,
+ 0, 0, 335, 398, 0, 37, 35, 485, 0, 244,
+ 0, 0, 245, 0, 0, 53, 55, 0, 57, 0,
+ 0, 0, 59, 445, 0, 448, 0, 0, 0, 21,
+ 0, 20, 187, 0, 0, 186, 115, 113, 192, 0,
+ 104, 0, 0, 0, 0, 263, 503, 517, 0, 415,
+ 0, 0, 0, 515, 0, 15, 0, 431, 319, 0,
+ 0, 27, 0, 400, 0, 401, 0, 0, 0, 0,
+ 0, 18, 116, 110, 62, 485, 485, 105, 344, 0,
+ 0, 289, 0, 291, 322, 285, 287, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 66, 273, 271, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 358, 0, 463, 429,
- 463, 0, 474, 456, 0, 0, 327, 0, 363, 0,
- 0, 490, 427, 0, 330, 419, 482, 0, 363, 0,
- 382, 0, 369, 456, 377, 0, 0, 0, 64, 0,
- 0, 0, 236, 239, 425, 426, 0, 0, 56, 58,
- 84, 0, 60, 61, 29, 83, 23, 0, 0, 17,
- 0, 178, 426, 0, 62, 0, 0, 63, 0, 0,
- 92, 94, 512, 0, 0, 0, 480, 0, 496, 0,
- 394, 494, 407, 0, 0, 492, 414, 491, 410, 5,
- 12, 13, 348, 310, 308, 36, 0, 0, 331, 413,
- 7, 168, 0, 0, 101, 112, 99, 333, 463, 515,
- 0, 446, 444, 0, 0, 0, 283, 0, 315, 0,
- 0, 0, 284, 286, 285, 300, 299, 302, 301, 303,
- 305, 306, 304, 294, 293, 288, 289, 287, 290, 291,
- 292, 307, 0, 255, 270, 269, 268, 267, 266, 265,
- 264, 263, 262, 261, 260, 168, 516, 447, 0, 464,
- 0, 0, 0, 0, 509, 362, 471, 0, 485, 0,
- 484, 362, 446, 168, 252, 447, 0, 378, 37, 233,
- 0, 0, 49, 237, 71, 68, 0, 0, 53, 0,
- 0, 416, 0, 405, 0, 0, 0, 397, 0, 396,
- 26, 404, 27, 0, 22, 19, 0, 175, 183, 180,
- 335, 0, 0, 513, 505, 506, 11, 0, 477, 0,
- 476, 329, 0, 498, 0, 499, 501, 346, 3, 5,
- 168, 248, 0, 28, 30, 31, 32, 462, 0, 0,
- 167, 425, 426, 0, 0, 0, 364, 110, 114, 0,
- 0, 0, 163, 0, 0, 352, 350, 445, 280, 282,
- 0, 0, 276, 278, 0, 256, 0, 356, 354, 449,
- 466, 430, 465, 470, 458, 459, 489, 488, 0, 0,
- 370, 40, 0, 47, 44, 235, 0, 0, 0, 0,
- 0, 0, 0, 400, 401, 423, 0, 418, 416, 0,
- 0, 399, 0, 0, 24, 179, 0, 163, 93, 67,
- 0, 478, 480, 0, 502, 504, 503, 0, 0, 168,
- 16, 3, 0, 311, 0, 0, 171, 345, 0, 25,
- 0, 366, 0, 0, 113, 116, 185, 163, 164, 165,
- 0, 153, 0, 166, 451, 472, 168, 168, 316, 313,
- 257, 359, 168, 168, 467, 443, 463, 0, 0, 483,
- 383, 374, 29, 38, 0, 0, 0, 238, 118, 0,
- 118, 120, 128, 0, 29, 126, 75, 134, 134, 54,
- 0, 403, 419, 417, 0, 398, 406, 0, 181, 0,
- 514, 480, 475, 0, 497, 0, 0, 14, 349, 463,
- 0, 247, 246, 250, 241, 0, 0, 425, 426, 365,
- 115, 185, 0, 217, 0, 338, 163, 0, 155, 0,
- 0, 0, 382, 0, 0, 439, 442, 441, 434, 0,
- 0, 487, 371, 27, 143, 0, 29, 141, 45, 50,
- 0, 0, 121, 0, 0, 27, 134, 0, 134, 0,
- 422, 421, 402, 78, 338, 0, 254, 500, 347, 0,
- 435, 240, 463, 0, 33, 174, 217, 117, 0, 0,
- 221, 222, 223, 226, 225, 224, 216, 104, 184, 189,
- 186, 0, 215, 219, 0, 0, 0, 0, 0, 156,
- 0, 353, 351, 314, 258, 357, 355, 168, 463, 463,
- 431, 468, 469, 0, 373, 146, 149, 0, 27, 235,
- 119, 72, 69, 129, 0, 0, 0, 0, 0, 0,
- 130, 0, 0, 0, 479, 243, 443, 0, 245, 102,
- 0, 0, 193, 0, 97, 220, 0, 188, 29, 0,
- 29, 0, 159, 0, 158, 0, 0, 0, 433, 375,
- 151, 0, 0, 39, 48, 0, 0, 0, 0, 127,
- 0, 132, 0, 139, 140, 137, 131, 420, 79, 29,
- 436, 242, 0, 0, 195, 197, 192, 229, 0, 0,
- 0, 27, 0, 342, 0, 27, 160, 0, 157, 440,
- 437, 438, 0, 0, 0, 0, 150, 142, 51, 29,
- 124, 73, 70, 133, 135, 29, 0, 27, 232, 194,
- 6, 0, 198, 199, 0, 0, 207, 0, 0, 0,
- 0, 187, 190, 0, 100, 343, 0, 339, 334, 0,
- 162, 0, 29, 0, 0, 0, 27, 29, 27, 0,
- 336, 196, 200, 201, 211, 0, 202, 0, 230, 227,
- 0, 231, 0, 340, 161, 0, 27, 42, 144, 29,
- 122, 52, 0, 27, 80, 0, 210, 203, 204, 208,
- 0, 163, 341, 0, 0, 27, 125, 0, 209, 0,
- 228, 0, 147, 145, 0, 29, 205, 0, 29, 123,
- 27, 213, 29, 191, 27, 81, 27, 86, 214, 0,
- 82, 85, 87, 0, 88, 89, 0, 0, 90, 0,
- 29, 27, 91
+ 0, 0, 0, 0, 0, 0, 0, 67, 283, 281,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 485, 451, 485, 0, 496, 478,
+ 344, 0, 0, 337, 0, 368, 0, 0, 512, 449,
+ 0, 356, 439, 504, 0, 383, 0, 402, 0, 389,
+ 478, 397, 40, 0, 486, 0, 0, 65, 0, 44,
+ 0, 246, 249, 445, 448, 0, 0, 56, 58, 82,
+ 0, 60, 61, 29, 81, 23, 0, 0, 17, 0,
+ 188, 448, 0, 63, 0, 0, 64, 346, 0, 99,
+ 101, 445, 448, 0, 535, 445, 448, 0, 502, 0,
+ 518, 0, 414, 516, 427, 0, 0, 514, 434, 513,
+ 430, 5, 12, 13, 0, 320, 447, 446, 36, 0,
+ 0, 341, 433, 7, 0, 365, 0, 0, 108, 119,
+ 0, 0, 106, 0, 485, 540, 0, 468, 466, 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, 541, 469, 374, 0, 0, 0, 0, 532,
+ 445, 448, 366, 493, 0, 507, 0, 506, 382, 468,
+ 403, 262, 469, 0, 29, 38, 354, 243, 47, 0,
+ 49, 247, 72, 69, 0, 0, 143, 143, 54, 0,
+ 0, 436, 406, 0, 425, 0, 0, 0, 417, 0,
+ 416, 26, 424, 27, 0, 22, 19, 0, 185, 193,
+ 190, 0, 0, 0, 536, 527, 529, 528, 11, 0,
+ 499, 0, 498, 355, 0, 520, 0, 521, 523, 0,
+ 3, 5, 369, 258, 0, 28, 30, 31, 32, 484,
+ 0, 176, 0, 445, 0, 448, 0, 0, 0, 384,
+ 117, 121, 0, 0, 353, 352, 0, 172, 0, 0,
+ 0, 0, 467, 290, 292, 0, 0, 286, 288, 0,
+ 266, 0, 0, 471, 488, 452, 487, 492, 480, 481,
+ 511, 510, 0, 390, 27, 152, 0, 29, 150, 45,
+ 245, 0, 0, 0, 0, 0, 0, 143, 0, 143,
+ 0, 420, 421, 443, 0, 438, 436, 0, 0, 419,
+ 0, 83, 24, 189, 0, 172, 100, 68, 0, 500,
+ 502, 0, 524, 526, 525, 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, 473, 494, 373, 371, 326, 323, 267, 377,
+ 375, 489, 465, 485, 0, 0, 505, 394, 155, 158,
+ 0, 27, 0, 248, 0, 0, 125, 127, 125, 137,
+ 0, 29, 135, 76, 0, 0, 0, 0, 0, 139,
+ 0, 423, 439, 437, 0, 418, 426, 0, 79, 191,
+ 0, 537, 502, 497, 0, 519, 0, 14, 485, 0,
+ 257, 256, 260, 251, 0, 0, 445, 448, 385, 122,
+ 195, 0, 227, 0, 358, 172, 0, 164, 0, 402,
+ 464, 463, 0, 456, 0, 0, 509, 391, 160, 0,
+ 0, 39, 48, 0, 50, 128, 129, 0, 0, 0,
+ 0, 27, 0, 141, 0, 148, 149, 146, 140, 442,
+ 441, 422, 84, 89, 358, 0, 264, 522, 0, 457,
+ 250, 485, 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, 485, 485, 462, 453, 490, 491, 0, 393,
+ 0, 0, 0, 153, 159, 151, 245, 502, 126, 73,
+ 70, 138, 0, 142, 144, 29, 0, 0, 90, 80,
+ 0, 501, 253, 465, 0, 255, 109, 0, 0, 203,
+ 0, 104, 230, 0, 198, 29, 0, 29, 0, 168,
+ 0, 167, 0, 0, 455, 395, 0, 29, 0, 0,
+ 0, 0, 0, 0, 136, 29, 27, 440, 85, 0,
+ 29, 458, 252, 0, 0, 205, 207, 202, 239, 0,
+ 0, 0, 27, 0, 362, 0, 27, 169, 0, 166,
+ 459, 460, 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
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 2, 4, 83, 84, 499, 359, 188, 189,
- 85, 218, 366, 503, 870, 87, 552, 704, 632, 775,
- 310, 635, 168, 634, 555, 779, 905, 562, 558, 828,
- 557, 827, 172, 184, 792, 876, 947, 967, 970, 971,
- 972, 976, 979, 339, 340, 88, 89, 232, 90, 521,
- 91, 518, 375, 92, 374, 93, 520, 603, 604, 711,
- 640, 931, 871, 646, 457, 649, 717, 907, 875, 835,
- 708, 776, 944, 820, 958, 823, 864, 610, 611, 612,
- 509, 510, 192, 193, 197, 683, 748, 803, 920, 749,
- 801, 846, 881, 882, 883, 884, 937, 885, 886, 887,
- 935, 963, 750, 751, 752, 753, 848, 754, 166, 311,
- 312, 556, 671, 672, 673, 733, 593, 594, 94, 300,
- 95, 346, 692, 390, 391, 385, 387, 501, 389, 691,
- 530, 130, 522, 577, 119, 757, 854, 97, 371, 589,
- 500, 617, 616, 623, 622, 425, 98, 613, 156, 157,
- 446, 631, 702, 774, 163, 221, 444, 99, 565, 471,
- 100, 566, 296, 567, 182, 102, 291, 103, 104, 431,
- 625, 770, 674, 796, 696, 697, 767, 698, 105, 106,
- 107, 108, 233, 109, 110, 111, 112, 430, 541, 624,
- 542, 543, 113, 489, 490, 661, 149, 150, 210, 211,
- 492, 587, 114, 343, 580, 115
+ -1, 1, 2, 4, 84, 85, 531, 381, 200, 201,
+ 86, 231, 389, 535, 899, 88, 323, 585, 474, 668,
+ 181, 479, 180, 586, 590, 816, 930, 336, 593, 863,
+ 592, 862, 184, 196, 763, 698, 827, 903, 966, 982,
+ 829, 869, 985, 986, 987, 991, 994, 358, 359, 89,
+ 90, 248, 91, 556, 92, 551, 399, 93, 398, 94,
+ 553, 641, 642, 748, 676, 817, 952, 900, 683, 485,
+ 488, 598, 865, 825, 757, 589, 669, 859, 738, 929,
+ 741, 812, 648, 649, 650, 470, 542, 204, 205, 209,
+ 722, 787, 840, 944, 788, 838, 877, 909, 910, 911,
+ 912, 958, 913, 914, 915, 956, 979, 789, 790, 791,
+ 792, 879, 793, 178, 330, 331, 591, 710, 711, 712,
+ 772, 630, 631, 95, 317, 96, 368, 729, 416, 417,
+ 411, 413, 533, 415, 728, 565, 139, 403, 511, 97,
+ 98, 99, 125, 796, 885, 101, 239, 529, 384, 561,
+ 560, 572, 571, 292, 102, 651, 165, 166, 473, 667,
+ 737, 809, 172, 234, 471, 103, 603, 502, 104, 604,
+ 313, 605, 105, 106, 107, 308, 108, 109, 456, 662,
+ 805, 713, 833, 730, 731, 732, 733, 110, 111, 112,
+ 113, 249, 114, 115, 116, 117, 325, 575, 661, 576,
+ 577, 118, 521, 522, 702, 158, 159, 222, 223, 524,
+ 625, 119, 363, 618, 364, 120
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -736
+#define YYPACT_NINF -769
static const yytype_int16 yypact[] =
{
- -736, 64, 80, -736, 1600, 3962, 3962, -83, 3962, 3962,
- 3962, 3962, 3962, 3962, 3962, -736, 3962, 3962, 3962, 3962,
- 3962, 3962, 3962, 171, 171, 2521, 3962, 187, -54, -52,
- -736, -736, 76, -736, -736, -736, -736, 3962, -736, -44,
- -36, 68, -736, 86, 2652, 2783, 57, -736, 82, 2914,
- -736, 3962, -15, -13, 145, 153, -11, 100, 124, 152,
- 168, -736, -736, -736, 185, 195, -736, -736, -736, -736,
- -736, -736, 172, 127, -736, -736, 205, 3962, -736, -736,
- 179, 178, 303, -66, -736, 11, -736, -736, -736, -736,
- -736, -736, 282, 295, -736, -736, 338, 323, 252, -736,
- -736, 4480, -736, 341, 1199, 249, -736, 261, 349, 292,
- -736, -10, -736, 27, -736, -736, -736, 320, 287, 338,
- 5120, 5120, 3962, 5120, 5120, 1452, -736, -736, 399, -736,
- 3962, -736, -736, -736, -736, -736, -736, -736, -736, 296,
- 205, -77, 306, -736, -736, 336, -736, 171, 1506, 302,
- 456, -736, 334, 205, 340, 345, -736, -736, 347, 361,
- -17, 27, 3045, -736, 3962, -736, 14, 5120, 2390, -736,
- 3962, 3962, 346, 3962, -736, 4521, -736, 4562, 358, 485,
- -736, 359, 5120, 1056, 362, 4605, 205, 98, 16, -736,
- -736, -8, 18, -736, -736, -736, 487, 19, 338, 171,
- 171, 171, 365, -736, 2521, 131, 63, -736, 4093, 171,
- 290, -736, 205, -736, 260, -58, 366, 4646, 364, 3962,
- 231, 367, 317, 231, 53, 450, -736, 455, -736, 416,
- -736, -736, 5, 477, 45, -736, 3962, -736, 513, -736,
- -736, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962,
- 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962,
- 187, -736, -736, -736, 3176, 3962, 3962, 3962, 3962, 3962,
- 3962, 3962, 3962, 3962, 3962, 3962, -736, 170, 3962, -736,
- 3962, 3962, 179, -27, 391, 4687, -736, 205, 281, 188,
- 188, -736, -736, 3307, -736, 3438, -736, 205, 340, 39,
- 392, 39, -736, -9, -736, 4730, 4772, 3962, -736, 461,
- 3962, 393, 540, 5120, 460, 1219, 481, 4813, -736, -736,
- -736, 1020, -736, -736, -736, -736, 162, 484, -15, -736,
- 3962, -736, -736, -13, -736, 1020, 488, -736, 413, 30,
- -736, -736, -736, 32, 414, 415, 143, 417, -736, 497,
- -736, -736, 514, 1549, 425, -736, -736, -736, -50, -736,
- -736, -736, -736, -736, -736, -736, 1731, 4226, -736, -736,
- -736, 3569, 569, 148, -736, 462, -736, -736, 3962, 432,
- 3962, 437, -9, 438, 27, 3962, 5197, 3962, -736, 3962,
- 3962, 3962, 2571, 1582, 1373, 2700, 2700, 2700, 2700, 1288,
- 1288, 1288, 1288, 568, 568, 61, 61, 61, 399, 399,
- 399, -736, -16, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
- 1452, 1452, 1452, 1452, 1452, 3569, 432, 444, 446, 5120,
- 443, 188, 447, 4267, -736, 319, -736, 171, 5120, 171,
- 5020, 340, -736, 3569, -736, -736, 188, -736, 573, 5120,
- 452, 4854, -736, -736, -736, -736, 590, 33, -736, 1020,
- 1020, 1020, 457, -736, 25, 459, 205, -56, 464, -736,
- -736, -736, 451, 549, -736, -736, 4308, -736, -736, 608,
- -736, 171, 471, -736, -736, -736, -736, 475, -736, 34,
- -736, -736, 221, -736, 3962, -736, -736, -736, 473, -736,
- 3569, 159, 492, -736, -736, -736, -736, -736, 171, 480,
- 634, 35, 210, 1020, 495, 205, 340, -736, 522, 148,
- 494, 498, 235, 493, 4353, -736, -736, -9, 5160, 1452,
- 3962, 5063, 5242, 5263, 187, -736, 499, -736, -736, -736,
- -736, -736, 0, -736, -736, -736, -736, -736, 3700, 500,
- -736, -736, 2390, -736, -736, 3962, 3962, 171, 2, 1020,
- 583, 1863, -1, -736, -736, 531, 501, 652, 1020, 520,
- 205, 118, 601, 572, -736, -736, 1020, 235, -736, -736,
- 171, -736, 143, 662, -736, -736, -736, 521, 1418, 3569,
- -736, 525, 530, -736, 206, 532, -736, -736, 3831, -736,
- 205, 340, 148, 529, 675, -736, -736, 235, -736, -736,
- 534, 677, 36, -736, -736, -736, 3569, 3569, 5220, -736,
- -736, -736, 3569, 3569, -736, 537, 3962, 3962, 171, 5120,
- -736, -736, -736, -736, 3962, 1995, 541, 5120, 574, 171,
- 574, -736, -736, 680, -736, -736, -736, 545, 546, -736,
- 1020, -736, 1020, -736, 550, 163, -736, 552, -736, 554,
- -736, 143, -736, 3962, -736, 553, 557, -736, -736, 3962,
- 188, 576, 225, -736, -736, 551, 171, 37, 1034, 340,
- 675, -736, 148, 420, 559, 606, 182, 638, 700, 564,
- 565, 3962, 392, 570, 571, -736, 657, 663, -736, 577,
- 4394, -736, 600, 311, -736, 4896, -736, -736, -736, -736,
- 2, 575, -736, 578, 1020, 640, -736, 328, -736, 310,
- -736, 603, -736, -736, 606, 40, 1452, -736, -736, 580,
- -736, -736, 3962, 576, -736, -736, 524, -736, 660, 148,
- -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
- -736, 320, 396, -736, 22, 581, 585, 605, 46, 745,
- 1020, -736, -736, 5220, -736, -736, -736, 3569, 3962, 3962,
- 576, -736, -736, 188, -736, -736, 395, 611, 681, 3962,
- -736, -736, -736, -736, 612, 348, 615, 3962, 43, 313,
- -736, 1020, 148, 618, -736, -736, 537, 619, 576, -736,
- 754, 6, -736, 702, 338, -736, 706, -736, -736, 48,
- -736, 707, 760, 1020, -736, 631, 627, 628, -736, -736,
- 403, 635, 2390, -736, -736, 636, 641, 2127, 2127, -736,
- 642, -736, 4437, -736, -736, -736, -736, -736, -736, -736,
- -736, -736, 1020, 148, -736, 209, -736, 773, 24, 721,
- 781, 643, 722, -736, 41, 644, 786, 1020, -736, -736,
- -736, -736, 651, 775, 736, 3962, -736, -736, -736, -736,
- -736, -736, -736, -736, -736, -736, 729, 653, -736, -736,
- 715, 654, 209, -736, 658, 718, 705, 661, 671, 1020,
- 743, -736, -736, 1020, -736, -736, 50, -736, -736, 1020,
- -736, 3962, -736, 666, 4937, 2259, 731, -736, 294, 673,
- -736, -736, -736, -736, 558, 148, -736, 750, -736, 811,
- 682, -736, 756, -736, -736, 4978, 762, -736, -736, -736,
- -736, -736, 684, 299, -736, 761, 766, 825, -736, -736,
- 1020, 235, -736, 810, 2390, 753, -736, 688, -736, 148,
- -736, 691, -736, -736, 692, -736, -736, 324, -736, -736,
- 689, -736, -736, -736, 387, -736, 693, 742, -736, 696,
- -736, 742, -736, 148, -736, -736, 776, 698, -736, 699,
- -736, 697, -736
+ -769, 118, 121, -769, 1586, 3871, 3871, -25, 3871, 3871,
+ 3871, 3871, 3871, 3871, 3871, 3871, -769, 3871, 3871, 3871,
+ 3871, 3871, 3871, 3871, 187, 187, 2541, 3871, 349, -22,
+ -20, -769, -769, 107, -769, -769, -769, 74, 3871, -769,
+ -769, 47, 78, -769, -20, 2674, 2807, 163, -769, 170,
+ 2940, -769, 3871, -47, -26, 26, 111, 14, 109, 112,
+ 114, 116, -769, -769, -769, 149, 164, -769, -769, -769,
+ -769, -769, -769, 374, -27, -769, -769, 200, 4004, -769,
+ -769, 150, 194, 253, 278, -769, 13, -769, -769, -769,
+ -769, -769, -769, 247, 275, -769, -769, 172, 288, 303,
+ 340, 315, 249, -769, -769, 4485, -769, -769, 29, 2292,
+ -769, -769, 255, 364, 307, -769, 66, -769, -16, -769,
+ -769, -769, -769, 369, 285, 340, 4938, 4938, 3871, 4938,
+ 4938, 937, -11, 4737, 1760, -769, -769, 353, -769, 3871,
+ -769, -769, -769, -769, -769, -769, -769, -769, 299, 200,
+ -49, 334, -769, -769, 338, -769, 187, 4780, 344, 498,
+ -769, 360, 200, 362, 377, -769, -769, 386, 390, -35,
+ -16, 3073, -769, -769, 4004, 503, -769, 3871, 20, 4938,
+ 2275, -20, 3871, 3871, 387, -769, -769, 4527, -769, 4569,
+ 388, 526, -769, 391, 4938, 1380, 392, 4611, 200, -5,
+ 23, -769, -769, 246, 24, -769, -769, -769, 535, 25,
+ 340, 187, 3871, 3871, 401, -769, 2541, 100, 131, -769,
+ 4137, 187, 413, -769, 200, -769, 306, 293, 402, 412,
+ 4653, 416, 3871, 144, 420, 359, 144, 158, 507, 429,
+ 509, -769, 462, -769, -769, 3871, 3871, -769, 514, 527,
+ 220, -769, 3871, -769, 565, -769, -769, 3871, 3871, 3871,
+ 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
+ 3871, 3871, 3871, 3871, 3871, 3871, 349, -769, -769, -769,
+ 3206, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
+ 3871, 3871, 429, 235, 3871, -769, 3871, 3871, 150, -7,
+ -769, 4695, 3871, -769, 200, -38, 250, 250, -769, -769,
+ 3339, -769, 3472, -769, 200, 362, -8, 429, -8, -769,
+ 36, -769, -769, 2275, 4938, 436, 3871, -769, 511, -769,
+ 445, 592, 4938, 512, 1208, 534, 10, -769, -769, -769,
+ 757, -769, -769, -769, -769, 162, 538, -47, -769, 3871,
+ -769, -769, -26, -769, 757, 533, -769, -769, 33, -769,
+ -769, 34, 56, 41, -769, 461, 1560, 464, 280, 463,
+ -769, 546, -769, -769, 557, 1066, 465, -769, -769, -769,
+ 304, -769, -769, -769, 429, -769, -769, -769, -769, 1743,
+ 1327, -769, -769, -769, 2408, -769, 609, 89, -769, 504,
+ 469, 471, -769, 479, 3871, 480, 3871, 481, 36, -769,
+ -16, 3871, 5017, 3871, -769, 3871, 3871, 3871, 2458, 2591,
+ 2722, 2855, 2855, 2855, 2855, 1563, 1563, 1563, 1563, 642,
+ 642, 370, 370, 370, 353, 353, 353, -769, 219, 937,
+ 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
+ 937, -769, 480, 486, -769, 483, 250, 487, 4271, -769,
+ 210, 2026, -36, -769, 187, 4938, 187, 4839, 362, -769,
+ -769, -769, -769, 250, -769, -769, -769, 4938, -769, 1404,
+ -769, -769, -769, -769, 624, 49, 490, 495, -769, 757,
+ 757, 757, -769, 500, -769, 45, 499, 200, -49, 506,
+ -769, -769, -769, 501, 581, -769, -769, 4313, -769, -769,
+ 640, 508, 187, 505, -769, -769, -769, -769, -769, 513,
+ -769, 51, -769, -769, 207, -769, 3871, -769, -769, 429,
+ 502, -769, -769, 153, 516, -769, -769, -769, -769, -769,
+ 187, -769, 52, 54, 510, 135, 757, 515, 200, 362,
+ -769, 536, 89, 518, -769, -769, 519, 350, 517, 4355,
+ 429, 429, 36, 4979, 937, 3871, 4881, 5062, 5083, 349,
+ -769, 429, 429, -769, -769, -769, 53, -769, -769, -769,
+ -769, -769, 3605, -769, 341, -769, -20, -769, -769, -769,
+ 3871, 3871, 234, 234, 757, 597, 1876, -769, 382, -769,
+ 176, -769, -769, 550, 522, 672, 757, 539, 200, -38,
+ 622, 595, -769, -769, 757, 350, -769, -769, 3871, -769,
+ 280, 681, -769, -769, -769, 543, 985, -769, -769, 547,
+ -769, 159, 551, -769, 3738, -769, -769, -769, 200, 362,
+ 89, 553, 696, -769, -769, 350, -769, -769, 563, 697,
+ 59, -769, -769, -769, -769, -769, 5040, -769, -769, -769,
+ -769, -769, 568, 3871, 3871, 187, 4938, -769, -769, 384,
+ 567, 632, 569, 4938, 187, 573, 603, -769, 603, -769,
+ 716, -769, -769, -769, 441, 579, 3871, 58, 291, -769,
+ 757, -769, 757, -769, 589, -36, -769, 582, -769, -769,
+ 590, -769, 280, -769, 3871, -769, 591, -769, 3871, 250,
+ 623, 171, -769, -769, 594, 187, 57, 1227, 362, 696,
+ -769, 89, 650, 599, 646, 284, 679, 743, 3871, 429,
+ 705, 706, 429, -769, 612, 4399, -769, 645, 394, -20,
+ 2275, -769, -769, 618, -769, -769, -769, 234, 625, 627,
+ 757, 684, 628, -769, 4443, -769, -769, -769, -769, -769,
+ 652, -769, -769, 678, 646, 61, 937, -769, 619, -769,
+ -769, 3871, 623, -769, -769, 1167, -769, 711, 89, -769,
+ -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
+ 369, 600, -769, 27, 630, 634, 633, 212, 772, 757,
+ 5040, -769, 3871, 3871, -769, 623, -769, -769, 250, -769,
+ -20, 761, 722, -769, -769, -769, 3871, 280, -769, -769,
+ -769, -769, 639, -769, -769, -769, 757, 89, -769, -769,
+ 641, -769, -769, 568, 637, 623, -769, 783, 18, -769,
+ 730, 340, -769, 736, -769, -769, 351, -769, 735, 796,
+ 757, -769, 654, 655, -769, -769, 787, -769, 662, 2275,
+ 664, 75, 2009, 2009, -769, -769, 155, -769, -769, 663,
+ -769, -769, -769, 757, 89, -769, 91, -769, 804, 28,
+ 749, 808, 668, 750, -769, 76, 670, 816, 757, -769,
+ -769, -769, -769, 763, -769, -769, -769, -769, -769, -769,
+ -769, -769, 204, 759, -769, 680, -769, -769, 747, 685,
+ 91, -769, 686, 751, 727, 688, 698, 757, 771, -769,
+ -769, 757, -769, -769, 367, -769, -769, 757, -769, -769,
+ 2142, 758, 695, 693, -769, -769, -769, -769, 626, 89,
+ -769, 779, -769, 839, 704, -769, 782, -769, -769, 493,
+ -769, -769, -769, 708, -769, -769, 785, 786, 851, -769,
+ -769, 757, 350, -769, 777, -769, 712, -769, 89, -769,
+ 713, 714, -769, -769, 336, -769, 715, -769, -769, -769,
+ -769, 718, 765, -769, 723, -769, 765, -769, 89, -769,
+ -769, 801, 724, -769, 725, -769, 726, -769
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -736, -736, -328, -736, -23, -736, -736, -736, -736, 527,
- -736, -250, -736, -736, 4, -736, -736, -736, -736, -736,
- -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
- -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
- -119, -736, -736, -736, 372, 491, 496, -114, -736, -736,
- -736, -736, -736, -736, -736, -736, -736, -736, 256, 220,
- 151, -736, 44, -736, -736, -736, -367, -736, -736, 31,
- -736, -736, -736, -736, -736, -736, -736, -570, -736, 181,
- -415, -736, -736, 535, -736, 184, -736, -736, -736, -736,
- -736, -736, -736, -736, -7, -736, -736, -736, -736, -736,
- -736, -736, -736, -736, -736, -735, -736, -736, -736, -539,
- -736, -736, 138, -736, -736, -736, -736, -736, 796, -736,
- -26, -736, -736, -736, -736, -736, -736, -736, -736, -736,
- -736, -736, -736, -736, -2, 150, -736, -736, -736, -736,
- -736, -736, -736, -736, -736, -736, 12, -364, -249, -736,
- -736, -736, -736, -736, -736, -736, 186, 579, 368, -736,
- -736, 309, 312, -736, 734, 694, -419, 454, 765, -736,
- -736, -736, -650, -736, -736, -736, -736, 84, -231, -736,
- 137, -736, -736, -736, -21, -12, -736, -267, -434, -736,
- -736, 13, 66, 222, 300, -736, 683, -736, 405, 203,
- -736, -736, -736, -736, -736, -736
+ -769, -769, -362, -769, -24, -769, -769, -769, -769, 530,
+ -769, -223, -769, -769, 3, -769, -769, -769, -769, -769,
+ -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
+ -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
+ -769, -769, -769, -769, -108, -769, -769, -769, 368, 494,
+ 520, -123, -769, -769, -769, -769, -769, -769, -769, -769,
+ -769, -769, 242, 206, -579, -769, -769, 31, -769, -769,
+ -769, -383, -769, -769, 141, -769, -769, -769, -769, -769,
+ -769, -769, -607, -769, 175, -193, -769, -769, 544, -769,
+ 181, -769, -769, -769, -769, -769, -769, -769, -769, 0,
+ -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
+ -768, -769, -769, -769, -573, -769, -769, 139, -769, -769,
+ -769, -769, -769, 834, -769, 11, -769, -769, -769, -769,
+ -769, -769, -769, -769, -769, -769, -769, -769, -769, -65,
+ -769, -769, -1, 160, -769, -769, -769, -769, -769, -769,
+ -769, -769, -769, -769, -19, -363, -264, -769, -769, -769,
+ -769, -769, -769, -769, 203, 459, 466, -769, -769, 333,
+ 331, -769, 908, -14, 737, -446, 470, 43, -769, -769,
+ -769, -670, -769, -769, -769, -769, 108, -211, -769, 19,
+ -769, -769, -769, -18, 64, -769, -194, -462, -769, -769,
+ 236, 35, -678, 323, -769, 729, -769, 443, 330, -769,
+ -769, -769, -769, -769, 329, -769
};
/* 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 -472
+ number is the opposite. If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -540
static const yytype_int16 yytable[] =
{
- 141, 141, 96, 381, 154, 284, 159, 659, 86, 517,
- 536, 411, 550, 432, 843, 160, 636, 805, 546, 227,
- 547, 731, 307, 181, 328, 647, 333, 336, 549, 187,
- 806, 498, 890, 639, 280, 142, 142, 684, 481, 155,
- 483, 560, 582, -169, 280, -172, 427, 534, 582, 896,
- 214, 280, 280, 215, 198, 116, 116, 34, 381, 427,
- 190, 626, 196, 116, 3, 34, 122, 687, 442, 833,
- 445, 225, 226, 116, 472, 34, 376, 811, -361, 852,
- -2, 922, 225, 226, 338, 592, -363, 47, -361, 596,
- 225, 362, 225, 161, -362, 162, 138, 164, 225, 497,
- 34, 283, 165, 569, 138, 169, 257, 258, 259, 688,
- 260, 523, 34, 170, 138, 198, 379, 288, 34, 812,
- 818, 853, -445, 923, 141, 281, 205, -448, 178, 139,
- 298, 355, 140, 186, -448, 281, 205, 139, 80, -444,
- 140, 191, 281, 281, 330, 314, 80, 139, 731, 303,
- 140, 648, 627, 179, 377, 605, 80, 844, 845, 142,
- 145, 145, 228, 326, 158, 308, 207, 329, 141, 334,
- 337, 591, 309, 807, 666, 891, 141, 141, 141, 936,
- 482, 282, 484, 561, 583, -169, 141, -172, 327, 358,
- 794, 897, 348, 80, 834, 208, 209, 380, 116, 80,
- 540, 689, 690, 142, 350, 208, 209, 693, 694, 701,
- 369, 142, 142, 142, 116, 540, 34, 171, -170, 116,
- -249, 142, 382, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 173, 730, 154, 605, 159,
- 826, 426, 116, 34, 34, 205, 225, 383, 160, 199,
- 206, 205, 473, 116, 349, 138, 220, 735, 116, 436,
- 34, 34, -363, 194, 435, 382, 225, 669, 487, -428,
- -428, 195, 155, 200, 441, 212, 116, 382, 382, 213,
- 880, 719, -249, 138, 145, 620, 732, 382, 139, 382,
- 428, 140, 584, 514, 585, 586, 515, 80, 467, 138,
- 384, 201, 383, 428, 205, 187, 116, -362, 608, 609,
- 225, 225, 467, 207, 208, 209, 139, 202, 737, 140,
- 208, 209, 380, 141, 80, 80, 161, 514, 145, 670,
- 515, 219, 152, 468, 203, 153, 145, 145, 145, 819,
- 380, 80, 80, 384, 204, 511, 145, 468, -244, 785,
- 516, 789, 815, 229, 514, 384, 384, 515, 142, 699,
- -170, 608, 609, 205, 96, 384, 230, 384, 355, 231,
- 504, 951, 527, 208, 209, 802, 205, -41, -41, -41,
- 514, 223, 703, 515, -450, -154, -138, -138, -138, 141,
- 205, -136, -136, -136, 715, 355, 234, 158, 276, 511,
- 262, 263, 729, 787, 788, 277, 787, 788, 225, 351,
- 278, 360, 361, 357, 141, 279, 141, 511, 47, 382,
- 786, 787, 788, 351, 142, 357, 351, 357, 838, 225,
- 362, 356, 208, 209, 382, 212, 467, 467, 467, 540,
- 830, 787, 788, 571, 287, 208, 209, -138, 260, 142,
- 289, 142, -136, -148, -148, -148, 778, 294, 141, 208,
- 209, 821, 822, 790, 295, 797, 836, 225, 497, 862,
- 863, 468, 468, 468, 511, 961, 962, 143, 146, 879,
- 290, 888, 297, 145, 302, 141, 222, 224, 225, 299,
- 467, 301, 601, 142, -218, 316, 516, 384, 321, 516,
- 335, 816, 817, 740, 741, 742, 743, 744, 745, 320,
- 322, 154, 384, 159, 324, 345, 363, 365, 888, 738,
- 142, 370, 160, 368, 739, 468, 372, 740, 741, 742,
- 743, 744, 745, 746, 141, 141, 467, 373, 378, 388,
- 377, 443, 540, 450, 452, 467, 155, 655, 453, 145,
- 454, 938, 456, 467, 516, 474, 633, 141, 851, 141,
- 855, 479, 480, 511, 485, 645, 486, 491, 493, 142,
- 142, 468, 677, 747, 145, 494, 145, 679, 496, 516,
- 468, -471, 513, 519, 516, 956, 525, 526, 468, 877,
- 511, 511, 142, 537, 142, 538, 511, 511, 539, 551,
- 161, 553, 544, 559, 573, 141, 568, 570, 572, 975,
- 254, 255, 256, 257, 258, 259, 141, 260, 145, 906,
- 574, 576, 579, 738, 581, 908, 590, 467, 739, 467,
- 597, 740, 741, 742, 743, 744, 745, 746, 141, 707,
- 142, 595, 598, 600, 602, 145, 606, 607, 614, 621,
- 630, 142, 926, 141, 643, 650, 651, 933, 382, 516,
- 652, 350, 468, 516, 468, 740, 741, 742, 743, 744,
- 745, 158, 656, 142, 657, 663, 664, 799, 667, 945,
- 668, 681, 675, 682, 685, 686, 695, 141, 142, 470,
- 849, 467, 709, 714, 145, 145, 716, 718, 710, 670,
- 722, 723, 734, 478, 724, 960, 727, 728, 964, 755,
- 756, 759, 966, 760, 761, 762, 516, 145, 768, 145,
- 765, 766, 142, 773, 769, 781, 468, 791, 782, 784,
- 981, 800, 771, 808, 809, 795, 384, 467, 101, 120,
- 121, 511, 123, 124, 125, 126, 127, 128, 129, 804,
- 131, 132, 133, 134, 135, 136, 137, 810, 813, 148,
- 151, 382, 824, 829, 825, 145, 831, 842, 467, 516,
- 839, 167, 468, 857, 841, 847, 145, 850, 175, 177,
- 856, 859, 860, 861, 865, 185, 889, 867, 144, 144,
- 467, 868, 892, 873, 893, 895, 894, 898, 145, 899,
- 901, 902, 909, 468, 903, -206, 910, 911, 914, 913,
- 915, 217, 916, 145, 183, 917, 919, 927, 932, 467,
- 516, 939, 516, 934, 940, 468, 866, 563, 564, 942,
- -152, 941, 948, 949, 467, 946, 952, -212, 954, 384,
- 955, 957, 965, 959, 969, 973, 968, 145, 978, 977,
- 982, 980, 974, 578, 468, 475, 285, 505, 680, 516,
- 713, 780, 506, 874, 286, 736, 467, 758, 477, 468,
- 467, 798, 872, 216, 793, 912, 467, 654, 764, 653,
- 840, 599, 662, 725, 0, 331, 0, 347, 0, 0,
- 0, 0, 516, 0, 0, 0, 305, 0, 306, 0,
- 469, 468, 101, 0, 313, 468, 0, 317, 0, 930,
- 0, 468, 292, 0, 469, 0, 0, 467, 516, 0,
- 0, 0, 0, 0, 0, 0, 516, 642, 0, 0,
- 0, 0, 0, 0, 0, 0, 315, 0, 148, 0,
- 0, 0, 353, 0, 658, 0, 0, 0, 953, 0,
- 516, 0, 468, 367, 0, 0, 332, 0, 0, 0,
- 0, 0, 0, 0, 341, 342, 344, 0, 0, 0,
- 386, 0, 0, 0, 354, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 0, 0, 0, 0, 413, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
- 0, 0, 429, 0, 429, 433, 0, 0, 720, 0,
- 721, 0, 0, 0, 0, 0, 0, 438, 0, 440,
- 0, 0, 0, 0, 0, 0, 0, 0, 469, 469,
- 469, 449, -173, 0, 451, 0, 0, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
- 0, 0, 459, 460, 476, 0, 0, 0, 0, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 461, 783, 0, 0, 0, 0, 0, 0, 30,
- 31, 116, 469, -428, -428, 0, 0, 0, 0, 36,
- 101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 488, 429, 0, 524, -428, -428, 0, 0, 528,
- 0, 529, 0, 531, 532, 533, 0, 0, 814, 0,
- 0, 0, 138, 0, 0, 0, 512, 0, 469, 0,
- 0, 0, 0, 0, 0, 0, 462, 469, 463, 67,
- 68, 69, 70, 71, 0, 469, 0, 0, 0, 837,
- 464, 0, 0, 0, 0, 465, 74, 75, 466, 0,
- 0, 0, 0, 0, 0, 0, 0, 535, 0, 0,
- 0, 858, 0, 0, -173, 0, 0, 0, 0, 0,
- 512, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 292, 0, 292, 0, 0, 323, 512, 0,
- 878, 0, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 0, 900, 0, 0, 588, 469,
- 0, 469, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 0, 0, 341, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 918, -428, -428,
- 0, 921, 0, 0, 618, 512, 0, 924, 0, 0,
- 0, 0, 0, 292, 0, 0, 0, 0, -428, -428,
- 0, 0, 629, 0, 0, 0, 101, 0, 0, 313,
- 637, 0, 0, 469, 0, 101, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 950, 455,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 638, 641, -472, -472, -472, -472, 252, 253,
- 254, 255, 256, 257, 258, 259, 0, 260, 0, 469,
- 0, 0, 0, 0, 0, 660, 0, 488, 0, 0,
- 0, 0, 0, 0, 512, 0, 0, 0, 0, 0,
- 429, 700, 0, 678, 0, 0, 0, 0, 705, 101,
- 469, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 512, 512, 0, 0, 0, 0, 512, 512, 0,
- 0, 0, 469, 292, 0, 0, 0, 726, 0, 0,
- 0, 0, 0, 429, 712, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 469, 260, 0, 0, 763, 488, 235, 236, 237,
- 0, 0, 0, 0, 0, 0, 469, 0, 0, 0,
- 0, 292, 0, 238, 0, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 429, 260, 469, 0,
- 0, 0, 469, 0, 0, 641, 0, 238, 469, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 0, 260, 429, 429, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 313, 0, 235, 236, 237, 0, 469,
- 0, 832, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 512, 239, 240, 241, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, 0, 260, 101, 0, 235, 236,
- 237, 101, 101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 665, 238, 0, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 0, 260, 904,
- 0, 0, 0, 5, 6, 7, 8, 9, 0, 0,
- 0, 0, 10, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 293, 260, 0, 0, 0, 925, 0, 0, 0, 101,
- 0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 0, 0, 30,
- 31, 32, 33, 34, 0, 35, 0, 0, 101, 36,
- 37, 38, 39, 0, 40, 0, 41, 0, 42, 0,
- 0, 43, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 50, 495, 51, 52, 0, 53, 0, 0, 0,
- 54, 55, 56, 0, 57, 58, 59, 60, 61, 62,
- 63, 0, 0, 0, 0, 64, 65, 0, 66, 67,
- 68, 69, 70, 71, 5, 6, 7, 8, 9, 0,
- 72, 0, 0, 10, 0, 73, 74, 75, 76, 77,
- 0, 78, 79, 0, 80, 0, 81, 82, 0, 0,
+ 150, 150, 300, 100, 163, 151, 151, 87, 700, 164,
+ 168, 583, 437, 229, 678, 173, 175, 672, 580, 530,
+ 581, 240, 132, 842, 765, 122, 874, 296, 326, 199,
+ 185, 347, 352, 355, 550, 843, 918, 486, 723, 407,
+ 770, 512, -539, 154, 154, 122, 395, 167, 202, 514,
+ 226, 400, 401, 227, 134, 296, 210, 595, 35, 620,
+ 634, 193, -179, 170, -538, -182, 35, 153, 153, 620,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 453, 620, 924, 755, 346, 357, 208, 278,
+ 279, 726, 169, 195, 633, 407, 453, -381, 296, 451,
+ 455, 238, 457, 198, 600, 469, 229, 472, -383, 229,
+ -382, -470, 238, 48, 238, 663, -450, -450, 3, 297,
+ 503, -2, 210, 224, 607, 305, 128, 225, 296, 171,
+ 203, 174, 150, 727, 176, 854, 177, 151, 315, 861,
+ 298, -348, -348, -180, -467, 238, 206, 297, 81, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
+ 291, 122, 370, 908, 487, 770, 241, 329, 818, 629,
+ 957, 875, 876, 327, 345, 154, 348, 353, 356, 150,
+ 844, 919, 299, 328, 151, 513, -539, 150, 219, 643,
+ 297, 532, 151, 515, 333, -450, -450, 150, 182, 309,
+ 380, 596, 151, 621, 635, 217, -179, 664, -538, -182,
+ 558, 756, -470, 831, 684, -259, 688, -466, 217, 736,
+ 297, 708, 154, 361, 365, 371, 334, 897, 925, 183,
+ 154, 207, 217, 771, 320, 190, 547, 377, 547, 548,
+ 154, 548, 191, 860, 848, 574, 351, 769, -147, -147,
+ -147, 584, 163, 504, 360, 362, 366, 164, 168, 122,
+ 211, 35, 574, 212, 376, 213, 674, 214, 217, 774,
+ 686, 687, 122, 233, 372, 220, 221, 643, -259, 622,
+ 462, 623, 624, 569, 709, 410, 849, -180, 220, 221,
+ 468, 122, 405, 35, 35, 167, -254, -145, -145, -145,
+ 215, 147, 220, 221, 232, 658, 122, 452, 35, 35,
+ -147, 170, 238, 460, 408, 216, 498, 392, 122, 242,
+ 35, 499, 463, 199, 35, 244, 475, 217, 410, 544,
+ 498, 689, 236, 147, 148, 499, 627, 149, 220, 221,
+ 169, 410, 410, 81, 150, 461, 855, 243, 147, 151,
+ 245, 410, 122, 410, 35, 970, 122, 408, 776, -145,
+ 147, 675, -350, -350, 671, 246, 148, 654, 655, 149,
+ 408, 408, 247, 549, 406, 81, 81, -472, 659, 660,
+ 408, 148, 408, 883, 149, 686, 687, 154, 100, 406,
+ 81, 81, 536, 148, 147, 250, 149, 220, 221, 946,
+ 349, 293, 81, 276, 406, 543, 81, 519, -41, -41,
+ -41, 520, 646, 647, 150, 839, 273, 274, 275, 151,
+ 276, 122, 122, 35, -381, 884, 294, 148, 238, -364,
+ 149, 547, 295, 217, 548, 224, 81, 545, 377, -383,
+ 150, 947, 150, 238, -368, 151, 758, 151, 217, 304,
+ -382, 739, 740, 218, 238, -366, 238, 154, 751, 382,
+ 383, 810, 811, 147, 868, 498, 498, 498, 48, 734,
+ 499, 499, 499, 609, 562, 685, 686, 687, 646, 647,
+ 306, 570, 588, 154, 307, 154, 409, 217, 150, 977,
+ 978, 410, 377, 151, 152, 155, 161, 547, 574, 162,
+ 548, 311, -163, 220, 221, 81, 312, 309, 410, 309,
+ 314, 907, 238, 916, 768, 319, 150, 219, 220, 221,
+ 408, 151, 498, 316, 639, 235, 237, 499, 549, 454,
+ 322, 154, 318, 549, 752, 686, 687, 408, 335, 804,
+ 340, 339, 409, 454, 341, 163, 343, 916, 373, 354,
+ 164, 168, 379, 367, 385, 360, 378, 220, 221, 154,
+ -157, -157, -157, 373, 386, 379, 373, 379, 150, 150,
+ 498, 388, 670, 151, 151, 499, 959, 834, 391, 393,
+ 394, 396, 498, 309, 695, 397, 402, 499, 167, 404,
+ 498, 549, 414, 476, 478, 499, 150, 574, 480, 682,
+ 481, 151, 866, 482, 170, 973, 484, 510, 852, 853,
+ 505, 154, 154, 516, 718, 523, 549, 518, 525, 526,
+ 528, 549, 882, 546, 886, 990, 554, 552, 555, 361,
+ 557, -493, -372, 169, 893, 677, 677, -376, 594, 154,
+ 573, 150, 902, 597, 578, 716, 151, 905, 599, 608,
+ 150, 606, 610, 612, 614, 151, 611, 628, 617, 615,
+ 640, 362, 636, 520, 619, 638, 498, 632, 498, 680,
+ 645, 499, 644, 499, 652, 931, 690, 717, 150, 691,
+ 692, 933, 372, 151, 154, 270, 271, 272, 273, 274,
+ 275, 150, 276, 154, 696, 704, 151, 549, 697, -228,
+ 705, 549, 707, 714, 721, 725, 949, 720, 309, 779,
+ 780, 781, 782, 783, 784, 724, 743, 745, 880, -461,
+ 742, 154, 744, 150, 746, 813, 498, 964, 151, 747,
+ 750, 499, 753, 762, 154, 779, 780, 781, 782, 783,
+ 784, 761, 764, 814, 410, 520, 767, 773, 709, 976,
+ 777, 794, 795, 798, 549, 981, 778, 799, 309, 779,
+ 780, 781, 782, 783, 784, 785, 154, 802, 803, 806,
+ 808, 815, 996, 408, 822, 498, 832, 819, 826, 820,
+ 499, 823, 828, 837, 845, 846, 850, 847, 857, 841,
+ 677, 858, 864, 150, 872, 870, 856, 873, 151, 500,
+ 489, 490, 498, 549, 878, 786, 501, 499, 881, 887,
+ 888, 890, 891, 500, 892, 894, 896, 904, 917, 491,
+ 509, 920, 921, 922, 923, 926, 498, 31, 32, 122,
+ 927, 499, -161, 932, 939, 934, 154, 492, -216, 937,
+ 935, 940, 938, 410, 941, 943, 953, 954, 955, 498,
+ 549, 960, 549, 961, 499, 962, 963, 967, -222, 968,
+ 520, 965, 895, 971, 498, 974, 972, 975, 984, 499,
+ 980, 147, 408, 983, 988, 992, 993, 506, 989, 995,
+ 616, 997, 719, 537, 749, 493, 549, 494, 68, 69,
+ 70, 71, 72, 498, 901, 824, 508, 498, 499, 495,
+ 797, 775, 499, 498, 496, 75, 76, 497, 499, 538,
+ 936, 835, 228, 126, 127, 549, 129, 130, 131, 133,
+ 135, 136, 137, 138, 830, 140, 141, 142, 143, 144,
+ 145, 146, 801, 951, 157, 160, 693, 498, 549, 694,
+ 350, 871, 499, 703, 549, 369, 179, 701, 500, 500,
+ 500, 0, 0, 187, 189, 601, 602, 0, 194, 0,
+ 197, 0, 0, 254, 549, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 230, 276, 0, 0,
+ 0, 0, 0, 0, 251, 252, 253, 0, 0, 0,
+ 0, 0, 0, 0, 0, 500, 0, 0, 0, 0,
+ 0, 254, 637, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 0, 276, 301, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 303, 0, 0,
+ 0, 0, 0, 500, 0, 0, 0, 0, 0, 0,
+ 679, 0, 0, 0, 0, 500, 0, 0, 0, 0,
+ 0, 0, 0, 500, 0, 251, 252, 253, 0, 230,
+ 699, 0, 230, 0, 0, 324, 0, 0, 0, 0,
+ 332, 194, 254, 0, 255, 256, 257, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 0, 276, 0, 0, 0,
+ 194, 194, 0, 0, 157, 0, 0, 0, 375, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 0, 0, 0, 0, 13,
- 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
- 30, 31, 32, 33, 34, 0, 35, 0, 0, 0,
- 36, 37, 38, 39, 0, 40, 0, 41, 0, 42,
- 0, 0, 43, 0, 0, 0, 44, 45, 46, 47,
- 0, 49, 50, 0, 51, 0, 0, 53, 0, 0,
- 0, 54, 55, 56, 0, 57, 58, 59, 502, 61,
- 62, 63, 0, 0, 0, 0, 64, 65, 0, 66,
- 67, 68, 69, 70, 71, 0, 5, 6, 7, 8,
- 9, 72, 0, 0, 0, 10, 118, 74, 75, 76,
- 77, 0, 78, 79, 0, 80, 0, 81, 82, 644,
+ 390, 0, 706, 0, 0, 0, 0, 0, 0, 500,
+ 0, 500, 0, 324, 324, 0, 759, 0, 760, 0,
+ 412, 0, 0, 0, 0, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 0, 0, 0, 0, 439, 440,
+ 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
+ 0, 0, 324, 0, 324, 458, 0, 0, 0, 500,
+ 194, 0, 0, 0, 0, 0, 821, 0, 465, 0,
+ 467, 527, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 290, 291, 477, -183, 0, 0, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 0, 0, 0, 0, 507, 500, 0,
+ 0, 0, 0, 0, 0, 851, 0, 777, -450, -450,
+ 0, 0, 0, 778, 0, 0, 779, 780, 781, 782,
+ 783, 784, 785, 0, 0, 500, 0, -450, -450, 0,
+ 0, 0, 867, 0, 0, 0, 0, 0, 0, 483,
+ 0, 0, 194, 0, 0, 0, 0, 0, 0, 500,
+ 0, 0, 324, 0, 559, 0, 889, 0, 0, 563,
+ 0, 564, 836, 566, 567, 568, 0, 0, 0, 0,
+ 0, 0, 500, 0, 0, 0, 251, 252, 253, 906,
+ 0, 0, 0, 0, 0, 0, 0, 500, 0, 0,
+ 0, 0, 0, 254, 928, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 500, 276, 0, -183,
+ 500, 0, 0, 942, 0, 0, 500, 945, 0, 0,
+ 0, 0, 0, 948, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 0, 5, 6, 7,
+ 8, 9, 0, 0, 0, 0, 10, 11, 0, 0,
+ 500, 0, 0, 0, 0, 0, 0, 969, 0, 0,
+ 0, 587, 0, 0, 626, 0, 0, 0, 0, 0,
+ -450, -450, 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, 656, 31, 32, 33, 34, 35, 0,
+ 36, 0, 539, 0, 37, 38, 39, 40, 0, 41,
+ 666, 42, 0, 43, 0, 0, 44, 0, 332, 673,
+ 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, 194, 0, 0, 0,
+ 0, 65, 66, 342, 67, 68, 69, 70, 71, 72,
+ 0, 0, 194, 0, 0, 0, 73, 0, 0, 0,
+ 0, 124, 75, 76, 77, 78, 0, 79, 80, 0,
+ 81, 0, 82, 83, 0, 0, 0, 0, 0, 0,
+ 0, 324, 735, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 0, 0, 0, 5,
+ 6, 7, 8, 9, 754, 0, 0, 0, 10, 11,
+ -540, -540, -540, -540, 268, 269, 270, 271, 272, 273,
+ 274, 275, 766, 276, 0, 0, 324, 0, 0, 0,
+ -450, -450, 0, 0, 0, 0, 0, 0, 0, 12,
+ 13, 0, 0, 0, 0, 14, 800, 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, 324,
+ 0, 0, 45, 46, 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,
+ 324, 324, 517, 65, 66, 0, 67, 68, 69, 70,
+ 71, 72, 0, 0, 332, 0, 0, 0, 73, 0,
+ 0, 0, 0, 74, 75, 76, 77, 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, 0, 0, 0, 0, 11, 12, 0, 0, 0,
- 0, 13, 0, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
- 0, 0, 30, 31, 32, 33, 34, 0, 35, 0,
- 0, 0, 36, 37, 38, 39, 0, 40, 0, 41,
- 0, 42, 0, 0, 43, 0, 0, 0, 44, 45,
- 46, 47, 0, 49, 50, 0, 51, 0, 0, 53,
- 0, 0, 0, 0, 0, 56, 0, 57, 58, 59,
- 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
- 0, 66, 67, 68, 69, 70, 71, 0, 5, 6,
- 7, 8, 9, 72, 0, 0, 0, 10, 118, 74,
- 75, 76, 77, 0, 78, 79, 0, 80, 0, 81,
- 82, 706, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
- 0, 0, 0, 13, 0, 14, 15, 16, 17, 18,
+ 0, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 291, 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,
+ -450, -450, 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, 55, 56, 57, 0, 58,
+ 59, 60, 534, 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,
+ 124, 75, 76, 77, 78, 0, 79, 80, 0, 81,
+ 0, 82, 83, 681, 0, 0, 0, 0, 0, 0,
+ 0, 0, -349, -349, 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, 124, 75, 76, 77, 78, 0, 79,
+ 80, 0, 81, 0, 82, 83, 898, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 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, -450, -450, 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, 124, 75, 76, 77,
+ 78, 0, 79, 80, 0, 81, 0, 82, 83, 950,
+ 0, 0, 0, 0, 0, 0, 0, 0, -351, -351,
+ 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, 124,
+ 75, 76, 77, 78, 0, 79, 80, 0, 81, 0,
+ 82, 83, 0, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 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, 30, 31, 32, 33, 34, 0,
- 35, 0, 0, 0, 36, 37, 38, 39, 0, 40,
- 0, 41, 0, 42, 0, 0, 43, 0, 0, 0,
- 44, 45, 46, 47, 0, 49, 50, 0, 51, 0,
- 0, 53, 0, 0, 0, 0, 0, 56, 0, 57,
- 58, 59, 0, 0, 0, 0, 0, 0, 0, 0,
- 64, 65, 0, 66, 67, 68, 69, 70, 71, 0,
- 5, 6, 7, 8, 9, 72, 0, 0, 0, 10,
- 118, 74, 75, 76, 77, 0, 78, 79, 0, 80,
- 0, 81, 82, 869, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
- 12, 0, 0, 0, 0, 13, 0, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 0, 0, 0, 30, 31, 32, 33,
- 34, 0, 35, 0, 0, 0, 36, 37, 38, 39,
- 0, 40, 0, 41, 0, 42, 0, 0, 43, 0,
- 0, 0, 44, 45, 46, 47, 0, 49, 50, 0,
- 51, 0, 0, 53, 0, 0, 0, 0, 0, 56,
- 0, 57, 58, 59, 0, 0, 0, 0, 0, 0,
- 0, 0, 64, 65, 0, 66, 67, 68, 69, 70,
- 71, 0, 5, 6, 7, 8, 9, 72, 0, 0,
- 0, 10, 118, 74, 75, 76, 77, 0, 78, 79,
- 0, 80, 0, 81, 82, 929, 0, 0, 0, 0,
+ 29, 30, 0, 0, 0, 31, 32, 33, 34, 35,
+ 0, 36, -450, -450, 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, 124, 75, 76, 77, 78, 0, 79, 80,
+ 0, 81, 0, 82, 83, 0, 0, 0, 0, 0,
+ 540, 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,
+ 122, 34, 35, 0, 0, 0, 0, 0, 37, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 48, 276, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 11, 12, 0, 0, 0, 0, 13, 0, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 0, 0, 0, 30, 31,
- 32, 33, 34, 0, 35, 0, 0, 0, 36, 37,
- 38, 39, 0, 40, 0, 41, 0, 42, 0, 0,
- 43, 0, 0, 0, 44, 45, 46, 47, 0, 49,
- 50, 0, 51, 0, 0, 53, 0, 0, 0, 0,
- 0, 56, 0, 57, 58, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 65, 0, 66, 67, 68,
- 69, 70, 71, 5, 6, 7, 8, 9, 0, 72,
- 0, 0, 10, 0, 118, 74, 75, 76, 77, 0,
- 78, 79, 0, 80, 0, 81, 82, 0, 0, 0,
+ 0, 0, 123, 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, 121, 124, 75, 76, 77, 78,
+ 541, 0, 0, 0, 81, 0, 82, 83, 0, 0,
+ 0, 0, 0, 156, 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, 122, 34, 35, 0, 0, 0, 0,
+ 0, 37, 0, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 48, 276, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 123, 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, 121, 124, 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, 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, 122, 34, 35, 0,
+ 0, 0, 0, 0, 37, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 0, 276, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 123, 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,
+ 121, 124, 75, 76, 77, 78, 0, 186, 0, 0,
+ 81, 0, 82, 83, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 0, 0, 30,
- 31, 32, 33, 34, 0, 35, 0, 0, 0, 36,
- 37, 38, 39, 0, 40, 0, 41, 0, 42, 0,
- 0, 43, 0, 0, 0, 44, 45, 46, 47, 0,
- 49, 50, 0, 51, 0, 0, 53, 0, 0, 0,
- 0, 0, 56, 0, 57, 58, 59, 0, 0, 0,
- 0, 0, 0, 0, 0, 64, 65, 0, 66, 67,
- 68, 69, 70, 71, 5, 6, 7, 8, 9, 0,
- 72, 0, 0, 10, 0, 118, 74, 75, 76, 77,
- 0, 78, 79, 0, 80, 0, 81, 82, 0, 0,
- 0, 0, 147, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 0, 0, 0, 0, 13,
- 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 0, 0, 0, 0,
- 30, 31, 116, 33, 34, 0, 0, 0, 0, 0,
- 36, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 47,
- 260, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 117, 0, 0, 58, 59, 0, 0,
- 0, 0, 0, 0, 0, 0, 64, 65, 0, 66,
- 67, 68, 69, 70, 71, 5, 6, 7, 8, 9,
- 0, 72, 0, 0, 10, 0, 118, 74, 75, 76,
- 77, 0, 0, 0, 0, 80, 0, 81, 82, 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, 122,
+ 34, 35, 0, 0, 0, 0, 0, 37, -540, -540,
+ -540, -540, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 0, 276, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 0, 0, 0, 0,
- 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 0, 0, 0,
- 0, 30, 31, 116, 33, 34, 0, 0, 0, 0,
- 0, 36, -472, -472, -472, -472, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 117, 0, 0, 58, 59, 0,
- 0, 0, 0, 0, 0, 0, 0, 64, 65, 0,
- 66, 67, 68, 69, 70, 71, 5, 6, 7, 8,
- 9, 0, 72, 0, 0, 10, 0, 118, 74, 75,
- 76, 77, 0, 174, 0, 0, 80, 0, 81, 82,
+ 0, 123, 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, 121, 124, 75, 76, 77, 78, 0,
+ 188, 0, 0, 81, 0, 82, 83, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 11, 12, 0, 0, 0,
- 0, 13, 0, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 0, 0,
- 0, 0, 30, 31, 116, 33, 34, 0, 0, 0,
- 0, 0, 36, 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, 122, 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, 47, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 117, 0, 0, 58, 59,
- 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
- 0, 66, 67, 68, 69, 70, 71, 5, 6, 7,
- 8, 9, 0, 72, 0, 0, 10, 0, 118, 74,
- 75, 76, 77, 0, 176, 0, 0, 80, 0, 81,
- 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
- 0, 0, 13, 0, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
- 0, 0, 0, 30, 31, 116, 33, 34, 0, 0,
- 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 123, 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, 124, 75, 76,
+ 77, 78, 0, 192, 0, 0, 81, 0, 82, 83,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 47, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 117, 0, 0, 58,
- 59, 0, 0, 0, 0, 0, 0, 0, 0, 64,
- 65, 0, 66, 67, 68, 69, 70, 71, 5, 6,
- 7, 8, 9, 0, 72, 0, 0, 10, 0, 118,
- 74, 75, 76, 77, 0, 180, 0, 0, 80, 0,
- 81, 82, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
- 0, 0, 0, 13, 0, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 0, 0, 0, 0, 30, 31, 116, 33, 34, 0,
- 0, 0, 0, 0, 36, 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, 122, 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, 47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 117, 0, 0,
- 58, 59, 0, 0, 0, 0, 0, 0, 0, 0,
- 64, 65, 0, 66, 67, 68, 69, 70, 71, 5,
- 6, 7, 8, 9, 0, 72, 0, 0, 10, 0,
- 118, 74, 75, 76, 77, 304, 0, 0, 0, 80,
- 0, 81, 82, 0, 0, 0, 0, 412, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
- 0, 0, 0, 0, 13, 0, 14, 15, 16, 17,
+ 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 123, 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, 121,
+ 124, 75, 76, 77, 78, 321, 0, 0, 0, 81,
+ 0, 82, 83, 0, 0, 0, 0, 0, 438, 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, 0, 0, 0, 0, 30, 31, 116, 33, 34,
- 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
+ 28, 29, 0, 0, 0, 0, 31, 32, 122, 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, 47, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
- 0, 58, 59, 0, 0, 0, 0, 0, 0, 0,
- 0, 64, 65, 0, 66, 67, 68, 69, 70, 71,
- 5, 6, 7, 8, 9, 0, 72, 0, 0, 10,
- 0, 118, 74, 75, 76, 77, 0, 0, 0, 0,
- 80, 0, 81, 82, 0, 0, 0, 0, 437, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
- 12, 0, 0, 0, 0, 13, 0, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 0, 0, 0, 0, 30, 31, 116, 33,
- 34, 0, 0, 0, 0, 0, 36, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 47, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
- 0, 0, 58, 59, 0, 0, 0, 0, 0, 0,
- 0, 0, 64, 65, 0, 66, 67, 68, 69, 70,
- 71, 5, 6, 7, 8, 9, 0, 72, 0, 0,
- 10, 0, 118, 74, 75, 76, 77, 0, 0, 0,
- 0, 80, 0, 81, 82, 0, 0, 0, 0, 439,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 12, 0, 0, 0, 0, 13, 0, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 0, 0, 0, 0, 30, 31, 116,
- 33, 34, 0, 0, 0, 0, 0, 36, 0, 0,
+ 0, 0, 0, 0, 0, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 47, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 117, 0, 0, 58, 59, 0, 0, 0, 0, 0,
- 0, 0, 0, 64, 65, 0, 66, 67, 68, 69,
- 70, 71, 5, 6, 7, 8, 9, 0, 72, 0,
- 0, 10, 0, 118, 74, 75, 76, 77, 0, 0,
- 0, 0, 80, 0, 81, 82, 0, 0, 0, 0,
- 508, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 11, 12, 0, 0, 0, 0, 13, 0, 14,
+ 123, 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, 121, 124, 75, 76, 77, 78, 0, 0,
+ 0, 0, 81, 0, 82, 83, 0, 0, 0, 0,
+ 0, 464, 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, 0, 0, 0, 0, 30, 31,
- 116, 33, 34, 0, 0, 0, 0, 0, 36, 0,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 31,
+ 32, 122, 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, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 117, 0, 0, 58, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 65, 0, 66, 67, 68,
- 69, 70, 71, 5, 6, 7, 8, 9, 0, 72,
- 0, 0, 10, 0, 118, 74, 75, 76, 77, 0,
- 0, 0, 0, 80, 0, 81, 82, 0, 0, 0,
- 0, 628, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 12, 0, 0, 0, 0, 13, 0,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 0, 0, 0, 0, 30,
- 31, 116, 33, 34, 0, 0, 0, 0, 0, 36,
+ 0, 0, 0, 123, 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, 121, 124, 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, 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, 122, 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, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 123, 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, 121, 124,
+ 75, 76, 77, 78, 0, 0, 0, 0, 81, 0,
+ 82, 83, 0, 0, 0, 0, 0, 665, 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, 122, 34, 35,
+ 0, 0, 0, 0, 0, 37, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 117, 0, 0, 58, 59, 0, 0, 0,
- 0, 0, 0, 0, 0, 64, 65, 0, 66, 67,
- 68, 69, 70, 71, 5, 6, 7, 8, 9, 0,
- 72, 0, 0, 10, 0, 118, 74, 75, 76, 77,
- 0, 0, 0, 0, 80, 0, 81, 82, 0, 0,
- 0, 0, 676, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 0, 0, 0, 0, 13,
- 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 0, 0, 0, 0,
- 30, 31, 116, 33, 34, 0, 0, 0, 0, 0,
- 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,
+ 0, 0, 0, 0, 48, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 123,
+ 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, 121, 124, 75, 76, 77, 78, 0, 0, 0,
+ 0, 81, 0, 82, 83, 0, 0, 0, 0, 0,
+ 715, 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,
+ 122, 34, 35, 0, 0, 0, 0, 0, 37, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 117, 0, 0, 58, 59, 0, 0,
- 0, 0, 0, 0, 0, 0, 64, 65, 0, 66,
- 67, 68, 69, 70, 71, 5, 6, 7, 8, 9,
- 0, 72, 0, 0, 10, 0, 118, 74, 75, 76,
- 77, 0, 0, 0, 0, 80, 0, 81, 82, 0,
+ 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 0, 0, 0, 0,
- 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 0, 0, 0,
- 0, 30, 31, 116, 33, 34, 0, 0, 0, 0,
- 0, 36, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 123, 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, 121, 124, 75, 76, 77, 78,
+ 0, 0, 0, 0, 81, 0, 82, 83, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 117, 0, 0, 58, 59, 0,
- 0, 0, 0, 0, 0, 0, 0, 64, 65, 0,
- 66, 67, 68, 69, 70, 71, 5, 6, 7, 8,
- 9, 0, 72, 0, 0, 10, 0, 118, 74, 75,
- 76, 77, 0, 0, 0, 0, 80, 0, 81, 82,
+ 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, 122, 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, 0, 0, 0, 0, 11, 12, 0, 0, 0,
- 0, 13, 0, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 0, 0,
- 0, 0, 30, 31, 116, 352, 34, 0, 0, 0,
- 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 123, 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, 124, 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, 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, 122, 34, 35, 0,
+ 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 117, 0, 0, 58, 59,
- 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
- 0, 66, 67, 68, 69, 70, 71, 0, 0, 0,
- 0, 0, 0, 72, 0, 235, 236, 237, 118, 74,
- 75, 76, 77, 0, 0, 0, 0, 80, 0, 81,
- 82, 238, 0, 239, 240, 241, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, 0, 260, 235, 236, 237, 0,
+ 0, 0, 0, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 123, 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,
+ 121, 124, 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, 0,
- 0, 0, 238, 0, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 0, 260, 235, 236, 237,
+ 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, 122,
+ 374, 35, 0, 0, 0, 0, 0, 37, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 0, 260, 0, 0,
- 0, 0, 235, 236, 237, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 238, 507,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 0, 260, 235, 236, 237, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 545, 239, 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
- 258, 259, 0, 260, 0, 0, 235, 236, 237, 0,
+ 0, 0, 0, 0, 0, 0, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 575, 238, 833, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 0, 260, 0, 0, 235,
- 236, 237, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 615, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 235, 236, 237, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 238, 772, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 0,
- 260, 235, 236, 237, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 834, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 0, 260, 0, 0, 235, 236, 237, 0, 0, 0,
+ 0, 123, 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,
+ 251, 252, 253, 0, 124, 75, 76, 77, 78, 0,
+ 0, 0, 0, 81, 0, 82, 83, 254, 0, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 0, 276, 251, 252, 253, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 254,
+ 0, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 0, 276, 251, 252, 253, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 238, 261, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 0, 260, 235, 236, 237, 0, 0,
+ 0, 254, 0, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 0, 276, 0, 0, 251, 252,
+ 253, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 254, 579, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 0, 276,
+ 0, 0, 251, 252, 253, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 613, 254,
+ 755, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 0, 276, 251, 252, 253, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 318, 239, 240, 241, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, 0, 260, 235, 236, 237, 0,
+ 653, 254, 0, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 0, 276, 251, 252, 253, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 319, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 0, 260, 0, 0, 235,
- 236, 237, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 325, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 0, 235, 236, 237, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 364, 238, 0, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 0, 260, 235, 236, 237, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 434, 238, 0,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 0, 260, 235, 236, 237, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 447, 239, 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
- 258, 259, 0, 260, 0, 235, 236, 237, 0, 0,
+ 0, 0, 0, 254, 807, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 0, 276, 251, 252,
+ 253, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 254, 756, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 0, 276,
+ 251, 252, 253, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 254, 277, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 0, 276, 251, 252, 253, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 254,
+ 337, 255, 256, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 0, 276, 251, 252, 253, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 448, 239, 240, 241, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, 0, 260, 235, 236, 237, 0,
+ 0, 254, 338, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 0, 276, 251, 252, 253, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 458, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 0, 260, 235, 236, 237,
+ 0, 0, 0, 254, 344, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 0, 276, 0, 251,
+ 252, 253, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 387, 254, 0, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 459, 251, 252,
+ 253, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 302, 0, 254, 0, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 0, 276,
+ 251, 252, 253, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 310, 254, 657, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 0, 276, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 251, 252, 253,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 554, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 0, 260, 0, 235,
- 236, 237, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 777, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 0, 0, 235, 236, 237, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 928, 238, 619,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 0, 260, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 943, 235,
- 236, 237, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 548, 238, 0, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 236, 237, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 0, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 237, 260,
+ 0, 0, 0, 0, 254, 582, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 0, 276, 252,
+ 253, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 254, 0, 255, 256, 257,
+ 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, 253, 276,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 0, 260, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 0, 260,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 0, 260, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 0, 260
+ 0, 0, 0, 254, 0, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 0, 276, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
+ 276, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 0, 276, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 0, 276
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-769))
+
+#define yytable_value_is_error(yytable_value) \
+ ((yytable_value) == (-540))
+
static const yytype_int16 yycheck[] =
{
- 23, 24, 4, 234, 27, 119, 27, 577, 4, 373,
- 425, 260, 446, 280, 8, 27, 555, 752, 437, 8,
- 439, 671, 8, 49, 8, 26, 8, 8, 443, 52,
- 8, 359, 8, 31, 61, 23, 24, 607, 8, 27,
- 8, 8, 8, 8, 61, 8, 277, 63, 8, 8,
- 73, 61, 61, 76, 56, 71, 71, 73, 289, 290,
- 73, 61, 73, 71, 0, 73, 149, 31, 299, 26,
- 301, 148, 149, 71, 324, 73, 71, 31, 144, 31,
- 0, 31, 148, 149, 198, 500, 144, 98, 144, 508,
- 148, 149, 148, 27, 144, 149, 112, 149, 148, 149,
- 73, 113, 26, 78, 112, 149, 45, 46, 47, 73,
- 49, 378, 73, 149, 112, 117, 71, 140, 73, 73,
- 770, 73, 149, 73, 147, 152, 73, 144, 71, 145,
- 153, 78, 148, 148, 144, 152, 73, 145, 154, 149,
- 148, 154, 152, 152, 152, 171, 154, 145, 798, 161,
- 148, 152, 152, 71, 149, 519, 154, 151, 152, 147,
- 23, 24, 151, 186, 27, 151, 141, 151, 191, 151,
- 151, 499, 168, 151, 589, 151, 199, 200, 201, 914,
- 150, 154, 150, 150, 150, 150, 209, 150, 90, 212,
- 150, 150, 61, 154, 151, 142, 143, 152, 71, 154,
- 431, 616, 617, 191, 141, 142, 143, 622, 623, 628,
- 157, 199, 200, 201, 71, 446, 73, 149, 8, 71,
- 61, 209, 234, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 149, 670, 260, 602, 260,
- 779, 71, 71, 73, 73, 73, 148, 234, 260, 149,
- 78, 73, 90, 71, 123, 112, 78, 676, 71, 71,
- 73, 73, 144, 118, 287, 277, 148, 61, 125, 59,
- 60, 118, 260, 149, 297, 148, 71, 289, 290, 152,
- 71, 648, 123, 112, 147, 534, 61, 299, 145, 301,
- 277, 148, 71, 145, 73, 74, 148, 154, 321, 112,
- 234, 149, 289, 290, 73, 328, 71, 144, 126, 127,
- 148, 148, 335, 141, 142, 143, 145, 149, 682, 148,
- 142, 143, 152, 346, 154, 154, 260, 145, 191, 123,
- 148, 152, 145, 321, 149, 148, 199, 200, 201, 773,
- 152, 154, 154, 277, 149, 371, 209, 335, 123, 716,
- 373, 718, 767, 71, 145, 289, 290, 148, 346, 626,
- 150, 126, 127, 73, 366, 299, 71, 301, 78, 31,
- 366, 941, 384, 142, 143, 739, 73, 66, 67, 68,
- 145, 78, 632, 148, 61, 150, 92, 93, 94, 412,
- 73, 92, 93, 94, 644, 78, 144, 260, 149, 425,
- 59, 60, 669, 93, 94, 144, 93, 94, 148, 206,
- 61, 151, 152, 210, 437, 123, 439, 443, 98, 431,
- 92, 93, 94, 220, 412, 222, 223, 224, 792, 148,
- 149, 141, 142, 143, 446, 148, 459, 460, 461, 670,
- 92, 93, 94, 466, 148, 142, 143, 153, 49, 437,
- 144, 439, 153, 66, 67, 68, 706, 155, 481, 142,
- 143, 66, 67, 153, 8, 732, 153, 148, 149, 66,
- 67, 459, 460, 461, 500, 151, 152, 23, 24, 843,
- 144, 845, 148, 346, 123, 508, 81, 82, 148, 144,
- 513, 144, 515, 481, 98, 149, 519, 431, 13, 522,
- 13, 768, 769, 107, 108, 109, 110, 111, 112, 151,
- 151, 534, 446, 534, 152, 150, 150, 153, 882, 99,
- 508, 71, 534, 156, 104, 513, 71, 107, 108, 109,
- 110, 111, 112, 113, 557, 558, 559, 121, 61, 26,
- 149, 149, 773, 82, 151, 568, 534, 570, 8, 412,
- 90, 915, 71, 576, 577, 71, 552, 580, 808, 582,
- 810, 73, 149, 589, 150, 561, 151, 150, 71, 557,
- 558, 559, 598, 153, 437, 61, 439, 600, 153, 602,
- 568, 149, 13, 121, 607, 949, 149, 149, 576, 839,
- 616, 617, 580, 149, 582, 149, 622, 623, 155, 26,
- 534, 149, 155, 13, 153, 628, 149, 148, 144, 973,
- 42, 43, 44, 45, 46, 47, 639, 49, 481, 869,
- 71, 13, 151, 99, 149, 875, 153, 650, 104, 652,
- 150, 107, 108, 109, 110, 111, 112, 113, 661, 635,
- 628, 149, 8, 148, 122, 508, 152, 149, 155, 150,
- 150, 639, 902, 676, 71, 124, 155, 907, 670, 682,
- 8, 141, 650, 686, 652, 107, 108, 109, 110, 111,
- 112, 534, 71, 661, 102, 13, 155, 153, 153, 929,
- 150, 152, 150, 8, 150, 8, 149, 710, 676, 321,
- 804, 714, 151, 13, 557, 558, 151, 151, 124, 123,
- 150, 149, 151, 335, 150, 955, 153, 150, 958, 150,
- 104, 73, 962, 13, 150, 150, 739, 580, 61, 582,
- 150, 150, 710, 123, 61, 150, 714, 124, 150, 89,
- 980, 71, 155, 152, 149, 155, 670, 760, 4, 5,
- 6, 767, 8, 9, 10, 11, 12, 13, 14, 751,
- 16, 17, 18, 19, 20, 21, 22, 152, 13, 25,
- 26, 773, 151, 151, 83, 628, 151, 13, 791, 792,
- 152, 37, 760, 13, 155, 73, 639, 71, 44, 45,
- 73, 150, 155, 155, 149, 51, 13, 151, 23, 24,
- 813, 150, 71, 151, 13, 73, 153, 153, 661, 13,
- 149, 26, 73, 791, 68, 90, 153, 153, 90, 151,
- 105, 77, 151, 676, 49, 144, 73, 151, 87, 842,
- 843, 71, 845, 150, 13, 813, 822, 459, 460, 73,
- 68, 149, 71, 8, 857, 151, 26, 71, 85, 773,
- 152, 150, 153, 151, 102, 149, 153, 710, 150, 73,
- 153, 152, 971, 481, 842, 328, 122, 366, 602, 882,
- 640, 710, 366, 832, 130, 681, 889, 686, 333, 857,
- 893, 733, 828, 77, 724, 882, 899, 568, 692, 567,
- 796, 513, 582, 661, -1, 191, -1, 204, -1, -1,
- -1, -1, 915, -1, -1, -1, 162, -1, 164, -1,
- 321, 889, 168, -1, 170, 893, -1, 173, -1, 905,
- -1, 899, 147, -1, 335, -1, -1, 940, 941, -1,
- -1, -1, -1, -1, -1, -1, 949, 559, -1, -1,
- -1, -1, -1, -1, -1, -1, 171, -1, 204, -1,
- -1, -1, 208, -1, 576, -1, -1, -1, 944, -1,
- 973, -1, 940, 219, -1, -1, 191, -1, -1, -1,
- -1, -1, -1, -1, 199, 200, 201, -1, -1, -1,
- 236, -1, -1, -1, 209, 241, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, -1, -1, -1, -1, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- -1, -1, 278, -1, 280, 281, -1, -1, 650, -1,
- 652, -1, -1, -1, -1, -1, -1, 293, -1, 295,
- -1, -1, -1, -1, -1, -1, -1, -1, 459, 460,
- 461, 307, 8, -1, 310, -1, -1, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, -1,
- -1, -1, 42, 43, 330, -1, -1, -1, -1, 13,
+ 24, 25, 125, 4, 28, 24, 25, 4, 615, 28,
+ 28, 473, 276, 78, 593, 29, 30, 590, 464, 381,
+ 466, 8, 11, 791, 702, 72, 8, 62, 8, 53,
+ 44, 8, 8, 8, 397, 8, 8, 27, 645, 250,
+ 710, 8, 8, 24, 25, 72, 239, 28, 74, 8,
+ 74, 245, 246, 77, 11, 62, 57, 8, 74, 8,
+ 8, 50, 8, 28, 8, 8, 74, 24, 25, 8,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 61, 714, -1, -1, -1, -1, -1, -1, 69,
- 70, 71, 513, 59, 60, -1, -1, -1, -1, 79,
- 366, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 346, 378, -1, 380, 59, 60, -1, -1, 385,
- -1, 387, -1, 389, 390, 391, -1, -1, 760, -1,
- -1, -1, 112, -1, -1, -1, 371, -1, 559, -1,
- -1, -1, -1, -1, -1, -1, 126, 568, 128, 129,
- 130, 131, 132, 133, -1, 576, -1, -1, -1, 791,
- 140, -1, -1, -1, -1, 145, 146, 147, 148, -1,
- -1, -1, -1, -1, -1, -1, -1, 412, -1, -1,
- -1, 813, -1, -1, 150, -1, -1, -1, -1, -1,
- 425, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 437, -1, 439, -1, -1, 151, 443, -1,
- 842, -1, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, -1, 857, -1, -1, 494, 650,
- -1, 652, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, -1, -1, 481, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 889, 59, 60,
- -1, 893, -1, -1, 530, 500, -1, 899, -1, -1,
- -1, -1, -1, 508, -1, -1, -1, -1, 59, 60,
- -1, -1, 548, -1, -1, -1, 552, -1, -1, 555,
- 556, -1, -1, 714, -1, 561, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 940, 90,
+ 24, 25, 293, 8, 8, 27, 91, 210, 74, 60,
+ 61, 32, 28, 50, 540, 306, 307, 146, 62, 292,
+ 294, 150, 296, 150, 487, 316, 171, 318, 146, 174,
+ 146, 146, 150, 99, 150, 62, 60, 61, 0, 154,
+ 343, 0, 123, 150, 79, 149, 151, 154, 62, 151,
+ 156, 151, 156, 74, 27, 805, 62, 156, 162, 817,
+ 156, 152, 153, 8, 151, 150, 120, 154, 156, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 72, 62, 72, 154, 835, 153, 181, 747, 531,
+ 938, 153, 154, 153, 198, 156, 153, 153, 153, 203,
+ 153, 153, 118, 180, 203, 152, 152, 211, 143, 552,
+ 154, 384, 211, 152, 183, 60, 61, 221, 151, 156,
+ 224, 152, 221, 152, 152, 74, 152, 154, 152, 152,
+ 404, 153, 146, 152, 597, 62, 599, 151, 74, 665,
+ 154, 62, 203, 212, 213, 125, 183, 152, 152, 151,
+ 211, 120, 74, 62, 170, 72, 147, 79, 147, 150,
+ 221, 150, 72, 816, 32, 456, 203, 709, 93, 94,
+ 95, 474, 276, 91, 211, 212, 213, 276, 276, 72,
+ 151, 74, 473, 151, 221, 151, 32, 151, 74, 715,
+ 94, 95, 72, 79, 143, 144, 145, 640, 125, 72,
+ 304, 74, 75, 64, 125, 250, 74, 152, 144, 145,
+ 314, 72, 72, 74, 74, 276, 125, 93, 94, 95,
+ 151, 114, 144, 145, 154, 569, 72, 72, 74, 74,
+ 155, 276, 150, 302, 250, 151, 340, 159, 72, 72,
+ 74, 340, 72, 347, 74, 153, 323, 74, 293, 394,
+ 354, 155, 79, 114, 147, 354, 529, 150, 144, 145,
+ 276, 306, 307, 156, 368, 302, 808, 72, 114, 368,
+ 62, 316, 72, 318, 74, 962, 72, 293, 721, 155,
+ 114, 127, 152, 153, 587, 62, 147, 560, 561, 150,
+ 306, 307, 32, 397, 154, 156, 156, 62, 571, 572,
+ 316, 147, 318, 32, 150, 94, 95, 368, 389, 154,
+ 156, 156, 389, 147, 114, 146, 150, 144, 145, 32,
+ 154, 146, 156, 50, 154, 394, 156, 127, 67, 68,
+ 69, 368, 128, 129, 438, 778, 46, 47, 48, 438,
+ 50, 72, 72, 74, 146, 74, 62, 147, 150, 151,
+ 150, 147, 125, 74, 150, 150, 156, 394, 79, 146,
+ 464, 74, 466, 150, 151, 464, 155, 466, 74, 150,
+ 146, 67, 68, 79, 150, 151, 150, 438, 681, 153,
+ 154, 67, 68, 114, 827, 489, 490, 491, 99, 663,
+ 489, 490, 491, 497, 410, 93, 94, 95, 128, 129,
+ 146, 438, 479, 464, 146, 466, 250, 74, 512, 153,
+ 154, 456, 79, 512, 24, 25, 147, 147, 709, 150,
+ 150, 157, 152, 144, 145, 156, 8, 464, 473, 466,
+ 150, 874, 150, 876, 708, 125, 540, 143, 144, 145,
+ 456, 540, 546, 146, 548, 82, 83, 546, 552, 293,
+ 27, 512, 146, 557, 93, 94, 95, 473, 151, 732,
+ 14, 153, 306, 307, 153, 569, 154, 910, 218, 14,
+ 569, 569, 222, 152, 152, 512, 143, 144, 145, 540,
+ 67, 68, 69, 233, 152, 235, 236, 237, 592, 593,
+ 594, 155, 586, 592, 593, 594, 939, 771, 158, 72,
+ 151, 72, 606, 540, 608, 123, 72, 606, 569, 62,
+ 614, 615, 27, 157, 83, 614, 620, 808, 153, 596,
+ 8, 620, 825, 91, 569, 968, 72, 74, 802, 803,
+ 72, 592, 593, 152, 638, 152, 640, 153, 72, 62,
+ 155, 645, 845, 14, 847, 988, 157, 123, 157, 618,
+ 151, 151, 151, 569, 857, 592, 593, 151, 14, 620,
+ 157, 665, 865, 153, 157, 634, 665, 870, 153, 150,
+ 674, 151, 146, 72, 14, 674, 155, 155, 153, 151,
+ 124, 618, 152, 620, 151, 150, 690, 151, 692, 72,
+ 151, 690, 154, 692, 157, 898, 126, 634, 702, 157,
+ 8, 904, 143, 702, 665, 43, 44, 45, 46, 47,
+ 48, 715, 50, 674, 72, 14, 715, 721, 103, 99,
+ 157, 725, 155, 152, 8, 8, 929, 154, 665, 109,
+ 110, 111, 112, 113, 114, 152, 84, 674, 841, 151,
+ 153, 702, 153, 747, 151, 739, 750, 950, 747, 126,
+ 14, 750, 153, 151, 715, 109, 110, 111, 112, 113,
+ 114, 152, 152, 740, 709, 702, 155, 153, 125, 972,
+ 100, 152, 106, 74, 778, 978, 106, 14, 715, 109,
+ 110, 111, 112, 113, 114, 115, 747, 62, 62, 157,
+ 125, 153, 995, 709, 90, 799, 157, 152, 126, 152,
+ 799, 153, 104, 72, 154, 151, 14, 154, 27, 790,
+ 747, 69, 153, 817, 157, 154, 810, 14, 817, 340,
+ 43, 44, 826, 827, 74, 155, 340, 826, 72, 74,
+ 14, 157, 157, 354, 27, 153, 152, 154, 14, 62,
+ 354, 72, 14, 155, 74, 155, 850, 70, 71, 72,
+ 14, 850, 69, 74, 107, 155, 817, 80, 91, 153,
+ 155, 153, 91, 808, 146, 74, 88, 152, 155, 873,
+ 874, 72, 876, 14, 873, 151, 74, 72, 72, 8,
+ 817, 153, 859, 86, 888, 152, 154, 153, 103, 888,
+ 155, 114, 808, 155, 151, 74, 152, 347, 986, 154,
+ 512, 155, 640, 389, 678, 128, 910, 130, 131, 132,
+ 133, 134, 135, 917, 863, 754, 352, 921, 917, 142,
+ 725, 720, 921, 927, 147, 148, 149, 150, 927, 389,
+ 910, 772, 78, 5, 6, 939, 8, 9, 10, 11,
+ 12, 13, 14, 15, 764, 17, 18, 19, 20, 21,
+ 22, 23, 729, 930, 26, 27, 605, 961, 962, 606,
+ 203, 833, 961, 620, 968, 216, 38, 618, 489, 490,
+ 491, -1, -1, 45, 46, 489, 490, -1, 50, -1,
+ 52, -1, -1, 26, 988, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 78, 50, -1, -1,
+ -1, -1, -1, -1, 9, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, -1, 546, -1, -1, -1, -1,
+ -1, 26, 546, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, -1, 50, 128, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 139, -1, -1,
+ -1, -1, -1, 594, -1, -1, -1, -1, -1, -1,
+ 594, -1, -1, -1, -1, 606, -1, -1, -1, -1,
+ -1, -1, -1, 614, -1, 9, 10, 11, -1, 171,
+ 614, -1, 174, -1, -1, 177, -1, -1, -1, -1,
+ 182, 183, 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,
+ 212, 213, -1, -1, 216, -1, -1, -1, 220, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 557, 558, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, 760,
- -1, -1, -1, -1, -1, 580, -1, 582, -1, -1,
- -1, -1, -1, -1, 589, -1, -1, -1, -1, -1,
- 626, 627, -1, 598, -1, -1, -1, -1, 634, 635,
- 791, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 616, 617, -1, -1, -1, -1, 622, 623, -1,
- -1, -1, 813, 628, -1, -1, -1, 663, -1, -1,
- -1, -1, -1, 669, 639, 32, 33, 34, 35, 36,
+ 232, -1, 157, -1, -1, -1, -1, -1, -1, 690,
+ -1, 692, -1, 245, 246, -1, 690, -1, 692, -1,
+ 252, -1, -1, -1, -1, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, -1, -1, -1, -1, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ -1, -1, 294, -1, 296, 297, -1, -1, -1, 750,
+ 302, -1, -1, -1, -1, -1, 750, -1, 310, -1,
+ 312, 155, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 326, 8, -1, -1, -1, -1,
+ -1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, -1, -1, -1, -1, 349, 799, -1,
+ -1, -1, -1, -1, -1, 799, -1, 100, 60, 61,
+ -1, -1, -1, 106, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, -1, -1, 826, -1, 60, 61, -1,
+ -1, -1, 826, -1, -1, -1, -1, -1, -1, 91,
+ -1, -1, 394, -1, -1, -1, -1, -1, -1, 850,
+ -1, -1, 404, -1, 406, -1, 850, -1, -1, 411,
+ -1, 413, 155, 415, 416, 417, -1, -1, -1, -1,
+ -1, -1, 873, -1, -1, -1, 9, 10, 11, 873,
+ -1, -1, -1, -1, -1, -1, -1, 888, -1, -1,
+ -1, -1, -1, 26, 888, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 917, 50, -1, 152,
+ 921, -1, -1, 917, -1, -1, 927, 921, -1, -1,
+ -1, -1, -1, 927, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, 3, 4, 5,
+ 6, 7, -1, -1, -1, -1, 12, 13, -1, -1,
+ 961, -1, -1, -1, -1, -1, -1, 961, -1, -1,
+ -1, 27, -1, -1, 526, -1, -1, -1, -1, -1,
+ 60, 61, -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, 565, 70, 71, 72, 73, 74, -1,
+ 76, -1, 155, -1, 80, 81, 82, 83, -1, 85,
+ 582, 87, -1, 89, -1, -1, 92, -1, 590, 591,
+ 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, 618, -1, -1, -1,
+ -1, 127, 128, 153, 130, 131, 132, 133, 134, 135,
+ -1, -1, 634, -1, -1, -1, 142, -1, -1, -1,
+ -1, 147, 148, 149, 150, 151, -1, 153, 154, -1,
+ 156, -1, 158, 159, -1, -1, -1, -1, -1, -1,
+ -1, 663, 664, -1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, -1, -1, 3,
+ 4, 5, 6, 7, 686, -1, -1, -1, 12, 13,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 842, 49, -1, -1, 691, 661, 9, 10, 11,
- -1, -1, -1, -1, -1, -1, 857, -1, -1, -1,
- -1, 676, -1, 25, -1, 27, 28, 29, 30, 31,
+ 47, 48, 704, 50, -1, -1, 708, -1, -1, -1,
+ 60, 61, -1, -1, -1, -1, -1, -1, -1, 43,
+ 44, -1, -1, -1, -1, 49, 728, 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, 771,
+ -1, -1, 96, 97, 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,
+ 802, 803, 152, 127, 128, -1, 130, 131, 132, 133,
+ 134, 135, -1, -1, 816, -1, -1, -1, 142, -1,
+ -1, -1, -1, 147, 148, 149, 150, 151, -1, 153,
+ 154, -1, 156, -1, 158, 159, 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, -1, -1, -1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 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,
+ 60, 61, -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, 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, -1, 152, 153, -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, -1, -1,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 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, 60, 61, -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, -1, -1, -1, -1, -1, -1, -1, 152, 153,
+ -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, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 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, 60, 61, -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, -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, 732, 49, 889, -1,
- -1, -1, 893, -1, -1, 710, -1, 25, 899, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- -1, 49, 768, 769, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 779, -1, 9, 10, 11, -1, 940,
- -1, 787, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 25, 767, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, 822, -1, 9, 10,
- 11, 827, 828, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 155, 25, -1, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, -1, 49, 865,
- -1, -1, -1, 3, 4, 5, 6, 7, -1, -1,
- -1, -1, 12, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 124, 49, -1, -1, -1, 901, -1, -1, -1, 905,
- -1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, -1, -1, -1, 69,
- 70, 71, 72, 73, -1, 75, -1, -1, 944, 79,
- 80, 81, 82, -1, 84, -1, 86, -1, 88, -1,
- -1, 91, -1, -1, -1, 95, 96, 97, 98, 99,
- 100, 101, 153, 103, 104, -1, 106, -1, -1, -1,
- 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
- 120, -1, -1, -1, -1, 125, 126, -1, 128, 129,
- 130, 131, 132, 133, 3, 4, 5, 6, 7, -1,
- 140, -1, -1, 12, -1, 145, 146, 147, 148, 149,
- -1, 151, 152, -1, 154, -1, 156, 157, -1, -1,
+ 42, 43, 44, 45, 46, 47, 48, 99, 50, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 42, 43, -1, -1, -1, -1, 48,
- -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ -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, -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,
- 69, 70, 71, 72, 73, -1, 75, -1, -1, -1,
- 79, 80, 81, 82, -1, 84, -1, 86, -1, 88,
- -1, -1, 91, -1, -1, -1, 95, 96, 97, 98,
- -1, 100, 101, -1, 103, -1, -1, 106, -1, -1,
- -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
- 119, 120, -1, -1, -1, -1, 125, 126, -1, 128,
- 129, 130, 131, 132, 133, -1, 3, 4, 5, 6,
- 7, 140, -1, -1, -1, 12, 145, 146, 147, 148,
- 149, -1, 151, 152, -1, 154, -1, 156, 157, 26,
+ -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, -1, -1, -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,
+ -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, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
- -1, 48, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
- -1, -1, 69, 70, 71, 72, 73, -1, 75, -1,
- -1, -1, 79, 80, 81, 82, -1, 84, -1, 86,
- -1, 88, -1, -1, 91, -1, -1, -1, 95, 96,
- 97, 98, -1, 100, 101, -1, 103, -1, -1, 106,
- -1, -1, -1, -1, -1, 112, -1, 114, 115, 116,
- -1, -1, -1, -1, -1, -1, -1, -1, 125, 126,
- -1, 128, 129, 130, 131, 132, 133, -1, 3, 4,
- 5, 6, 7, 140, -1, -1, -1, 12, 145, 146,
- 147, 148, 149, -1, 151, 152, -1, 154, -1, 156,
- 157, 26, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
- -1, -1, -1, 48, -1, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, -1, -1, -1, 69, 70, 71, 72, 73, -1,
- 75, -1, -1, -1, 79, 80, 81, 82, -1, 84,
- -1, 86, -1, 88, -1, -1, 91, -1, -1, -1,
- 95, 96, 97, 98, -1, 100, 101, -1, 103, -1,
- -1, 106, -1, -1, -1, -1, -1, 112, -1, 114,
- 115, 116, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, 126, -1, 128, 129, 130, 131, 132, 133, -1,
- 3, 4, 5, 6, 7, 140, -1, -1, -1, 12,
- 145, 146, 147, 148, 149, -1, 151, 152, -1, 154,
- -1, 156, 157, 26, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 42,
- 43, -1, -1, -1, -1, 48, -1, 50, 51, 52,
+ 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, 69, 70, 71, 72,
- 73, -1, 75, -1, -1, -1, 79, 80, 81, 82,
- -1, 84, -1, 86, -1, 88, -1, -1, 91, -1,
- -1, -1, 95, 96, 97, 98, -1, 100, 101, -1,
- 103, -1, -1, 106, -1, -1, -1, -1, -1, 112,
- -1, 114, 115, 116, -1, -1, -1, -1, -1, -1,
- -1, -1, 125, 126, -1, 128, 129, 130, 131, 132,
- 133, -1, 3, 4, 5, 6, 7, 140, -1, -1,
- -1, 12, 145, 146, 147, 148, 149, -1, 151, 152,
- -1, 154, -1, 156, 157, 26, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, -1, -1, -1, -1, 48, -1, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
- 71, 72, 73, -1, 75, -1, -1, -1, 79, 80,
- 81, 82, -1, 84, -1, 86, -1, 88, -1, -1,
- 91, -1, -1, -1, 95, 96, 97, 98, -1, 100,
- 101, -1, 103, -1, -1, 106, -1, -1, -1, -1,
- -1, 112, -1, 114, 115, 116, -1, -1, -1, -1,
- -1, -1, -1, -1, 125, 126, -1, 128, 129, 130,
- 131, 132, 133, 3, 4, 5, 6, 7, -1, 140,
- -1, -1, 12, -1, 145, 146, 147, 148, 149, -1,
- 151, 152, -1, 154, -1, 156, 157, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, -1, -1, -1, 69,
- 70, 71, 72, 73, -1, 75, -1, -1, -1, 79,
- 80, 81, 82, -1, 84, -1, 86, -1, 88, -1,
- -1, 91, -1, -1, -1, 95, 96, 97, 98, -1,
- 100, 101, -1, 103, -1, -1, 106, -1, -1, -1,
- -1, -1, 112, -1, 114, 115, 116, -1, -1, -1,
- -1, -1, -1, -1, -1, 125, 126, -1, 128, 129,
- 130, 131, 132, 133, 3, 4, 5, 6, 7, -1,
- 140, -1, -1, 12, -1, 145, 146, 147, 148, 149,
- -1, 151, 152, -1, 154, -1, 156, 157, -1, -1,
- -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 42, 43, -1, -1, -1, -1, 48,
- -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, -1, -1, -1, -1,
- 69, 70, 71, 72, 73, -1, -1, -1, -1, -1,
- 79, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 98,
- 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 112, -1, -1, 115, 116, -1, -1,
- -1, -1, -1, -1, -1, -1, 125, 126, -1, 128,
- 129, 130, 131, 132, 133, 3, 4, 5, 6, 7,
- -1, 140, -1, -1, 12, -1, 145, 146, 147, 148,
- 149, -1, -1, -1, -1, 154, -1, 156, 157, -1,
+ 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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
- 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
- -1, 69, 70, 71, 72, 73, -1, -1, -1, -1,
- -1, 79, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
- 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 112, -1, -1, 115, 116, -1,
- -1, -1, -1, -1, -1, -1, -1, 125, 126, -1,
- 128, 129, 130, 131, 132, 133, 3, 4, 5, 6,
- 7, -1, 140, -1, -1, 12, -1, 145, 146, 147,
- 148, 149, -1, 151, -1, -1, 154, -1, 156, 157,
+ -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, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
- -1, 48, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, -1, -1,
- -1, -1, 69, 70, 71, 72, 73, -1, -1, -1,
- -1, -1, 79, -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, 98, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 112, -1, -1, 115, 116,
- -1, -1, -1, -1, -1, -1, -1, -1, 125, 126,
- -1, 128, 129, 130, 131, 132, 133, 3, 4, 5,
- 6, 7, -1, 140, -1, -1, 12, -1, 145, 146,
- 147, 148, 149, -1, 151, -1, -1, 154, -1, 156,
- 157, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
- -1, -1, 48, -1, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, -1,
- -1, -1, -1, 69, 70, 71, 72, 73, -1, -1,
- -1, -1, -1, 79, -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, -1, -1, -1,
- -1, -1, 98, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 112, -1, -1, 115,
- 116, -1, -1, -1, -1, -1, -1, -1, -1, 125,
- 126, -1, 128, 129, 130, 131, 132, 133, 3, 4,
- 5, 6, 7, -1, 140, -1, -1, 12, -1, 145,
- 146, 147, 148, 149, -1, 151, -1, -1, 154, -1,
- 156, 157, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
- -1, -1, -1, 48, -1, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- -1, -1, -1, -1, 69, 70, 71, 72, 73, -1,
- -1, -1, -1, -1, 79, -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, -1, 98, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
- 115, 116, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, 126, -1, 128, 129, 130, 131, 132, 133, 3,
- 4, 5, 6, 7, -1, 140, -1, -1, 12, -1,
- 145, 146, 147, 148, 149, 150, -1, -1, -1, 154,
- -1, 156, 157, -1, -1, -1, -1, 31, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 42, 43,
- -1, -1, -1, -1, 48, -1, 50, 51, 52, 53,
+ -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, 152, -1, -1, -1, 156,
+ -1, 158, 159, -1, -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, -1, -1, -1, -1, 69, 70, 71, 72, 73,
- -1, -1, -1, -1, -1, 79, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 98, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
- -1, 115, 116, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, 126, -1, 128, 129, 130, 131, 132, 133,
- 3, 4, 5, 6, 7, -1, 140, -1, -1, 12,
- -1, 145, 146, 147, 148, 149, -1, -1, -1, -1,
- 154, -1, 156, 157, -1, -1, -1, -1, 31, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 42,
- 43, -1, -1, -1, -1, 48, -1, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, -1, -1, -1, -1, 69, 70, 71, 72,
- 73, -1, -1, -1, -1, -1, 79, -1, -1, -1,
+ 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, 98, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
- -1, -1, 115, 116, -1, -1, -1, -1, -1, -1,
- -1, -1, 125, 126, -1, 128, 129, 130, 131, 132,
- 133, 3, 4, 5, 6, 7, -1, 140, -1, -1,
- 12, -1, 145, 146, 147, 148, 149, -1, -1, -1,
- -1, 154, -1, 156, 157, -1, -1, -1, -1, 31,
+ -1, -1, -1, -1, -1, 99, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 42, 43, -1, -1, -1, -1, 48, -1, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, -1, -1, -1, -1, 69, 70, 71,
- 72, 73, -1, -1, -1, -1, -1, 79, -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, -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, 98, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 99, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 112, -1, -1, 115, 116, -1, -1, -1, -1, -1,
- -1, -1, -1, 125, 126, -1, 128, 129, 130, 131,
- 132, 133, 3, 4, 5, 6, 7, -1, 140, -1,
- -1, 12, -1, 145, 146, 147, 148, 149, -1, -1,
- -1, -1, 154, -1, 156, 157, -1, -1, -1, -1,
- 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, -1, -1, -1, -1, 48, -1, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, -1, -1, -1, -1, 69, 70,
- 71, 72, 73, -1, -1, -1, -1, -1, 79, -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, -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, -1, -1, -1, -1, -1, 98, -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, 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, -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, 112, -1, -1, 115, 116, -1, -1, -1, -1,
- -1, -1, -1, -1, 125, 126, -1, 128, 129, 130,
- 131, 132, 133, 3, 4, 5, 6, 7, -1, 140,
- -1, -1, 12, -1, 145, 146, 147, 148, 149, -1,
- -1, -1, -1, 154, -1, 156, 157, -1, -1, -1,
- -1, 31, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 42, 43, -1, -1, -1, -1, 48, -1,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, -1, -1, -1, -1, 69,
- 70, 71, 72, 73, -1, -1, -1, -1, -1, 79,
+ -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, 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,
+ -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, 98, -1,
+ -1, -1, -1, -1, -1, -1, -1, 99, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 112, -1, -1, 115, 116, -1, -1, -1,
- -1, -1, -1, -1, -1, 125, 126, -1, 128, 129,
- 130, 131, 132, 133, 3, 4, 5, 6, 7, -1,
- 140, -1, -1, 12, -1, 145, 146, 147, 148, 149,
- -1, -1, -1, -1, 154, -1, 156, 157, -1, -1,
- -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 42, 43, -1, -1, -1, -1, 48,
- -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, -1, -1, -1, -1,
- 69, 70, 71, 72, 73, -1, -1, -1, -1, -1,
- 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
+ -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, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 112, -1, -1, 115, 116, -1, -1,
- -1, -1, -1, -1, -1, -1, 125, 126, -1, 128,
- 129, 130, 131, 132, 133, 3, 4, 5, 6, 7,
- -1, 140, -1, -1, 12, -1, 145, 146, 147, 148,
- 149, -1, -1, -1, -1, 154, -1, 156, 157, -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, -1, -1, -1, 42, 43, -1, -1, -1, -1,
- 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
- -1, 69, 70, 71, 72, 73, -1, -1, -1, -1,
- -1, 79, -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, 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, -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,
- 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 112, -1, -1, 115, 116, -1,
- -1, -1, -1, -1, -1, -1, -1, 125, 126, -1,
- 128, 129, 130, 131, 132, 133, 3, 4, 5, 6,
- 7, -1, 140, -1, -1, 12, -1, 145, 146, 147,
- 148, 149, -1, -1, -1, -1, 154, -1, 156, 157,
+ -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,
+ 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, -1,
- -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
- -1, 48, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, -1, -1,
- -1, -1, 69, 70, 71, 72, 73, -1, -1, -1,
- -1, -1, 79, -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, 98, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 112, -1, -1, 115, 116,
- -1, -1, -1, -1, -1, -1, -1, -1, 125, 126,
- -1, 128, 129, 130, 131, 132, 133, -1, -1, -1,
- -1, -1, -1, 140, -1, 9, 10, 11, 145, 146,
- 147, 148, 149, -1, -1, -1, -1, 154, -1, 156,
- 157, 25, -1, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, 9, 10, 11, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, -1, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, 49, 9, 10, 11,
+ -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, -1, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, -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, 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, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 25, 153,
+ -1, -1, -1, -1, -1, -1, -1, -1, 155, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, 49, 9, 10, 11, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
- 153, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 9, 10, 11, -1,
+ 47, 48, -1, 50, 9, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 155, 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, 153, 25, 26, 27, 28, 29, 30, 31, 32,
+ -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, -1, 49, -1, -1, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 25, 153, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
+ 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, 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, 25, 153, 27, 28,
+ -1, -1, -1, -1, -1, -1, -1, 26, 153, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- 49, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 25, 151, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 9, 10, 11, -1, -1, -1,
+ 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, 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,
- 25, 151, 27, 28, 29, 30, 31, 32, 33, 34,
+ -1, 26, 153, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, -1, 49, 9, 10, 11, -1, -1,
+ 45, 46, 47, 48, -1, 50, 9, 10, 11, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 25, 151, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, 9, 10, 11, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, 151, 27, 28, 29, 30, 31, 32,
+ -1, -1, -1, 26, 153, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 9,
+ 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, 25, 151, 27, 28, 29,
+ -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, -1, 49,
- -1, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 150, 25, -1, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- -1, 49, 9, 10, 11, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 150, 25, -1,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, 49, 9, 10, 11, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
- 150, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 25, 150, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, -1, 49, 9, 10, 11, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, 150, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, 49, 9, 10, 11,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, -1,
+ 50, -1, -1, -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, 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, 126, 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, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 9, 10, 11,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, 150, 27, 28, 29, 30, 31,
+ -1, -1, -1, -1, 26, 126, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 25, 150, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 9, 10, 11, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 150, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 150, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, 25, -1, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, 49,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 11, 49,
+ 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, -1, -1, -1,
- -1, -1, 25, -1, 27, 28, 29, 30, 31, 32,
+ -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, -1, 49, 27, 28, 29,
+ 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, -1, 49,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 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,
- -1, 49, 29, 30, 31, 32, 33, 34, 35, 36,
+ 48, -1, 50, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, 49
+ 47, 48, -1, 50
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 159, 160, 0, 161, 3, 4, 5, 6, 7,
- 12, 42, 43, 48, 50, 51, 52, 53, 54, 55,
+ 0, 161, 162, 0, 163, 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,
- 69, 70, 71, 72, 73, 75, 79, 80, 81, 82,
- 84, 86, 88, 91, 95, 96, 97, 98, 99, 100,
- 101, 103, 104, 106, 110, 111, 112, 114, 115, 116,
- 117, 118, 119, 120, 125, 126, 128, 129, 130, 131,
- 132, 133, 140, 145, 146, 147, 148, 149, 151, 152,
- 154, 156, 157, 162, 163, 168, 172, 173, 203, 204,
- 206, 208, 211, 213, 276, 278, 292, 295, 304, 315,
- 318, 322, 323, 325, 326, 336, 337, 338, 339, 341,
- 342, 343, 344, 350, 360, 363, 71, 112, 145, 292,
- 322, 322, 149, 322, 322, 322, 322, 322, 322, 322,
- 289, 322, 322, 322, 322, 322, 322, 322, 112, 145,
- 148, 162, 304, 325, 326, 338, 325, 31, 322, 354,
- 355, 322, 145, 148, 162, 304, 306, 307, 338, 342,
- 343, 350, 149, 312, 149, 26, 266, 322, 180, 149,
- 149, 149, 190, 149, 151, 322, 151, 322, 71, 71,
- 151, 278, 322, 326, 191, 322, 148, 162, 166, 167,
- 73, 154, 240, 241, 118, 118, 73, 242, 292, 149,
- 149, 149, 149, 149, 149, 73, 78, 141, 142, 143,
- 356, 357, 148, 152, 162, 162, 276, 322, 169, 152,
- 78, 313, 356, 78, 356, 148, 149, 8, 151, 71,
- 71, 31, 205, 340, 144, 9, 10, 11, 25, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 49, 151, 59, 60, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 149, 144, 61, 123,
- 61, 152, 154, 343, 205, 322, 322, 148, 162, 144,
- 144, 324, 326, 124, 155, 8, 320, 148, 162, 144,
- 277, 144, 123, 343, 150, 322, 322, 8, 151, 172,
- 178, 267, 268, 322, 278, 326, 149, 322, 151, 151,
- 151, 13, 151, 151, 152, 151, 162, 90, 8, 151,
- 152, 323, 326, 8, 151, 13, 8, 151, 205, 201,
- 202, 326, 326, 361, 326, 150, 279, 354, 61, 123,
- 141, 357, 72, 322, 326, 78, 141, 357, 162, 165,
- 151, 152, 149, 150, 150, 153, 170, 322, 156, 157,
- 71, 296, 71, 121, 212, 210, 71, 149, 61, 71,
- 152, 336, 343, 349, 350, 283, 322, 284, 26, 286,
- 281, 282, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 306, 31, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 303, 71, 336, 349, 322,
- 345, 327, 345, 322, 150, 162, 71, 31, 322, 31,
- 322, 162, 336, 149, 314, 336, 308, 150, 150, 322,
- 82, 322, 151, 8, 90, 90, 71, 222, 150, 42,
- 43, 61, 126, 128, 140, 145, 148, 162, 304, 315,
- 316, 317, 169, 90, 71, 167, 322, 241, 316, 73,
- 149, 8, 150, 8, 150, 150, 151, 125, 326, 351,
- 352, 150, 358, 71, 61, 153, 153, 149, 160, 164,
- 298, 285, 117, 171, 172, 203, 204, 153, 31, 238,
- 239, 278, 326, 13, 145, 148, 162, 305, 209, 121,
- 214, 207, 290, 345, 322, 149, 149, 343, 322, 322,
- 288, 322, 322, 322, 63, 326, 238, 149, 149, 155,
- 336, 346, 348, 349, 155, 153, 324, 324, 124, 238,
- 346, 26, 174, 149, 150, 182, 269, 188, 186, 13,
- 8, 150, 185, 316, 316, 316, 319, 321, 149, 78,
- 148, 162, 144, 153, 71, 153, 13, 291, 202, 151,
- 362, 149, 8, 150, 71, 73, 74, 359, 322, 297,
- 153, 160, 238, 274, 275, 149, 324, 150, 8, 316,
- 148, 162, 122, 215, 216, 305, 152, 149, 126, 127,
- 235, 236, 237, 305, 155, 153, 300, 299, 322, 26,
- 306, 150, 302, 301, 347, 328, 61, 152, 31, 322,
- 150, 309, 176, 172, 181, 179, 267, 322, 326, 31,
- 218, 326, 316, 71, 26, 172, 221, 26, 152, 223,
- 124, 155, 8, 320, 319, 162, 71, 102, 316, 235,
- 326, 353, 352, 13, 155, 155, 238, 153, 150, 61,
- 123, 270, 271, 272, 330, 150, 31, 278, 326, 162,
- 216, 152, 8, 243, 235, 150, 8, 31, 73, 238,
- 238, 287, 280, 238, 238, 149, 332, 333, 335, 345,
- 322, 324, 310, 169, 175, 322, 26, 172, 228, 151,
- 124, 217, 326, 217, 13, 169, 151, 224, 151, 224,
- 316, 316, 150, 149, 150, 351, 322, 153, 150, 345,
- 346, 330, 61, 273, 151, 324, 243, 305, 99, 104,
- 107, 108, 109, 110, 111, 112, 113, 153, 244, 247,
- 260, 261, 262, 263, 265, 150, 104, 293, 237, 73,
- 13, 150, 150, 322, 314, 150, 150, 334, 61, 61,
- 329, 155, 153, 123, 311, 177, 229, 150, 169, 183,
- 218, 150, 150, 316, 89, 224, 92, 93, 94, 224,
- 153, 124, 192, 293, 150, 155, 331, 345, 270, 153,
- 71, 248, 305, 245, 292, 263, 8, 151, 152, 149,
- 152, 31, 73, 13, 316, 238, 345, 345, 330, 346,
- 231, 66, 67, 233, 151, 83, 267, 189, 187, 151,
- 92, 151, 322, 26, 151, 227, 153, 316, 305, 152,
- 335, 155, 13, 8, 151, 152, 249, 73, 264, 205,
- 71, 169, 31, 73, 294, 169, 73, 13, 316, 150,
- 155, 155, 66, 67, 234, 149, 172, 151, 150, 26,
- 172, 220, 220, 151, 227, 226, 193, 169, 316, 305,
- 71, 250, 251, 252, 253, 255, 256, 257, 305, 13,
- 8, 151, 71, 13, 153, 73, 8, 150, 153, 13,
- 316, 149, 26, 68, 322, 184, 169, 225, 169, 73,
- 153, 153, 252, 151, 90, 105, 151, 144, 316, 73,
- 246, 316, 31, 73, 316, 322, 169, 151, 150, 26,
- 172, 219, 87, 169, 150, 258, 263, 254, 305, 71,
- 13, 149, 73, 150, 230, 169, 151, 194, 71, 8,
- 316, 235, 26, 172, 85, 152, 305, 150, 232, 151,
- 169, 151, 152, 259, 169, 153, 169, 195, 153, 102,
- 196, 197, 198, 149, 198, 305, 199, 73, 150, 200,
- 152, 169, 153
+ 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, 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, 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, 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, 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
};
#define yyerrok (yyerrstatus = 0)
@@ -2708,9 +2713,18 @@ static const yytype_uint16 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -2720,7 +2734,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -2762,19 +2775,10 @@ while (YYID (0))
#endif
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -2878,17 +2882,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
YYFPRINTF (stderr, "\n");
}
@@ -2922,11 +2929,11 @@ yy_reduce_print (yyvsp, yyrule)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- fprintf (stderr, " $%d = ", yyi + 1);
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
- fprintf (stderr, "\n");
+ YYFPRINTF (stderr, "\n");
}
}
@@ -2963,7 +2970,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -3066,115 +3072,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -3206,10 +3239,9 @@ yydestruct (yymsg, yytype, yyvaluep)
break;
}
}
-
-/* Prevent warnings from -Wmissing-prototypes. */
+/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -3225,10 +3257,6 @@ int yyparse ();
#endif /* ! YYPARSE_PARAM */
-
-
-
-
/*----------.
| yyparse. |
`----------*/
@@ -3255,74 +3283,75 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
+/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ /* Number of syntax errors so far. */
+ int yynerrs;
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
- YYSIZE_T yystacksize = YYINITDEPTH;
+ YYSIZE_T yystacksize;
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
-
yyssp = yyss;
yyvsp = yyvs;
@@ -3352,7 +3381,6 @@ int yynerrs;
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
-
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -3360,7 +3388,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -3383,9 +3410,8 @@ int yynerrs;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -3396,7 +3422,6 @@ int yynerrs;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
-
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -3406,6 +3431,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -3414,16 +3442,16 @@ int yynerrs;
yybackup:
/* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
+ lookahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to look-ahead token. */
+ /* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
- /* Not known => get a look-ahead token if don't already have one. */
+ /* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -3449,26 +3477,22 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the look-ahead token. */
+ /* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
@@ -3644,12 +3668,12 @@ yyreduce:
case 37:
- { zend_do_if_cond(&(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(2) - (2)]), &(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 38:
- { zend_do_if_after_statement(&(yyvsp[(4) - (6)]), 1 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
case 39:
@@ -3659,12 +3683,12 @@ yyreduce:
case 40:
- { zend_do_if_cond(&(yyvsp[(3) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(2) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
case 41:
- { zend_do_if_after_statement(&(yyvsp[(4) - (7)]), 1 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(1) - (5)]), 1 TSRMLS_CC); }
break;
case 42:
@@ -3674,17 +3698,17 @@ yyreduce:
case 43:
- { (yyvsp[(1) - (2)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 44:
- { zend_do_while_cond(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
+ { zend_do_while_cond(&(yyvsp[(3) - (3)]), &(yyval) TSRMLS_CC); }
break;
case 45:
- { zend_do_while_end(&(yyvsp[(1) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
+ { zend_do_while_end(&(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
case 46:
@@ -3694,12 +3718,12 @@ yyreduce:
case 47:
- { (yyvsp[(5) - (5)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyvsp[(4) - (4)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 48:
- { zend_do_do_while_end(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]) TSRMLS_CC); }
+ { zend_do_do_while_end(&(yyvsp[(1) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(6) - (7)]) TSRMLS_CC); }
break;
case 49:
@@ -3724,12 +3748,12 @@ yyreduce:
case 53:
- { zend_do_switch_cond(&(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ { zend_do_switch_cond(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 54:
- { zend_do_switch_end(&(yyvsp[(6) - (6)]) TSRMLS_CC); }
+ { zend_do_switch_end(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
case 55:
@@ -3767,2043 +3791,2178 @@ yyreduce:
{ zend_do_return(&(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
- case 65:
+ case 62:
- { zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (2)]); }
break;
case 66:
- { zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
+ { zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 68:
+ case 67:
- { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
+ { zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 69:
- { zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
case 70:
- { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
+ { zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
case 71:
- { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
case 72:
- { zend_check_writable_variable(&(yyvsp[(6) - (8)])); zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
break;
case 73:
- { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
+ { zend_do_foreach_cont(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]), &(yyvsp[(4) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(7) - (8)]) TSRMLS_CC); }
break;
case 74:
- { (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (10)]), &(yyvsp[(4) - (10)]) TSRMLS_CC); }
break;
case 75:
- { zend_do_declare_end(&(yyvsp[(1) - (6)]) TSRMLS_CC); }
+ { (yyvsp[(1) - (1)]).u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
break;
- case 77:
+ case 76:
- { zend_do_try(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ { zend_do_declare_end(&(yyvsp[(1) - (6)]) TSRMLS_CC); }
break;
case 78:
- { zend_initialize_try_catch_element(&(yyvsp[(1) - (7)]) TSRMLS_CC); }
+ { zend_do_try(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 79:
- { zend_do_first_catch(&(yyvsp[(7) - (9)]) TSRMLS_CC); }
+ { zend_do_bind_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(6) - (6)]) TSRMLS_CC); }
break;
case 80:
- { zend_do_begin_catch(&(yyvsp[(1) - (12)]), &(yyvsp[(9) - (12)]), &(yyvsp[(11) - (12)]), &(yyvsp[(7) - (12)]) TSRMLS_CC); }
+ { zend_do_end_finally(&(yyvsp[(1) - (8)]), &(yyvsp[(6) - (8)]), &(yyvsp[(8) - (8)]) TSRMLS_CC); }
break;
case 81:
- { zend_do_end_catch(&(yyvsp[(1) - (16)]) TSRMLS_CC); }
+ { zend_do_throw(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 82:
- { zend_do_mark_last_catch(&(yyvsp[(7) - (18)]), &(yyvsp[(18) - (18)]) TSRMLS_CC); }
+ { zend_do_goto(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 83:
- { zend_do_throw(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 84:
- { zend_do_goto(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
+ { zend_initialize_try_catch_element(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 85:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_first_catch(&(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 86:
- { (yyval).u.op.opline_num = -1; }
+ { zend_do_begin_catch(&(yyvsp[(1) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(6) - (7)]), &(yyvsp[(2) - (7)]) TSRMLS_CC); }
break;
case 87:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { zend_do_end_catch(&(yyvsp[(1) - (11)]) TSRMLS_CC); }
break;
case 88:
- { (yyval) = (yyvsp[(2) - (2)]); }
+ { zend_do_mark_last_catch(&(yyvsp[(2) - (13)]), &(yyvsp[(13) - (13)]) TSRMLS_CC); (yyval) = (yyvsp[(1) - (13)]);}
break;
case 89:
- { (yyval).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 90:
- { zend_do_begin_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(5) - (6)]), NULL TSRMLS_CC); }
+ { zend_do_finally(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 91:
- { zend_do_end_catch(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (5)]); }
+ break;
+
+ case 92:
+
+ { (yyval) = (yyvsp[(1) - (1)]); }
+ break;
+
+ case 93:
+
+ { (yyval).u.op.opline_num = -1; }
break;
case 94:
- { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 95:
- { DO_TICKS(); }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 96:
- { DO_TICKS(); }
+ { (yyval).u.op.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 97:
- { (yyval).op_type = ZEND_RETURN_VAL; }
+ { zend_do_begin_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(5) - (6)]), NULL TSRMLS_CC); }
break;
case 98:
+ { zend_do_end_catch(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
+ break;
+
+ case 101:
+
+ { 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:
+
+ { DO_TICKS(); }
+ break;
+
+ case 103:
+
+ { DO_TICKS(); }
+ break;
+
+ case 104:
+
+ { (yyval).op_type = ZEND_RETURN_VAL; }
+ break;
+
+ case 105:
+
{ (yyval).op_type = ZEND_RETURN_REF; }
break;
- case 99:
+ case 106:
{ zend_do_begin_function_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0, (yyvsp[(2) - (3)]).op_type, NULL TSRMLS_CC); }
break;
- case 100:
+ case 107:
{ zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
break;
- case 101:
+ case 108:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 102:
+ case 109:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]) TSRMLS_CC); }
break;
- case 103:
+ case 110:
{ zend_do_begin_class_declaration(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), NULL TSRMLS_CC); }
break;
- case 104:
+ case 111:
{ zend_do_end_class_declaration(&(yyvsp[(1) - (7)]), &(yyvsp[(2) - (7)]) TSRMLS_CC); }
break;
- case 105:
+ case 112:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = 0; }
break;
- case 106:
+ case 113:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
break;
- case 107:
+ case 114:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_TRAIT; }
break;
- case 108:
+ case 115:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_FINAL_CLASS; }
break;
- case 109:
+ case 116:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 110:
+ case 117:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 111:
+ case 118:
{ (yyval).u.op.opline_num = CG(zend_lineno); (yyval).EA = ZEND_ACC_INTERFACE; }
break;
- case 116:
+ case 123:
{ zend_do_implements_interface(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 117:
+ case 124:
{ zend_do_implements_interface(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 118:
+ case 125:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 119:
+ case 126:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 120:
+ case 127:
{ zend_check_writable_variable(&(yyvsp[(1) - (1)])); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 121:
+ case 128:
{ zend_check_writable_variable(&(yyvsp[(2) - (2)])); (yyval) = (yyvsp[(2) - (2)]); (yyval).EA |= ZEND_PARSED_REFERENCE_VARIABLE; }
break;
- case 128:
+ case 129:
+
+ { zend_do_list_init(TSRMLS_C); }
+ break;
+
+ case 130:
+
+ { (yyval) = (yyvsp[(1) - (5)]); (yyval).EA = ZEND_PARSED_LIST_EXPR; }
+ break;
+
+ case 137:
{ zend_do_declare_stmt(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 129:
+ case 138:
{ zend_do_declare_stmt(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 130:
+ case 139:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 131:
+ case 140:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 132:
+ case 141:
{ (yyval) = (yyvsp[(2) - (4)]); }
break;
- case 133:
+ case 142:
{ (yyval) = (yyvsp[(3) - (5)]); }
break;
- case 134:
+ case 143:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 135:
+ case 144:
{ zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 136:
+ case 145:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (6)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 137:
+ case 146:
{ zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 138:
+ case 147:
{ zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (5)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
- case 144:
+ case 153:
- { zend_do_if_cond(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(3) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 145:
+ case 154:
- { zend_do_if_after_statement(&(yyvsp[(5) - (7)]), 0 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(2) - (5)]), 0 TSRMLS_CC); }
break;
- case 147:
+ case 156:
- { zend_do_if_cond(&(yyvsp[(4) - (6)]), &(yyvsp[(5) - (6)]) TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(3) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 148:
+ case 157:
- { zend_do_if_after_statement(&(yyvsp[(5) - (8)]), 0 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(2) - (6)]), 0 TSRMLS_CC); }
break;
- case 155:
+ 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 156:
+ 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 157:
+ 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 158:
+ 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 159:
+ 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 160:
+ 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 161:
+ case 170:
{ (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); }
break;
- case 162:
+ case 171:
{ (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); }
break;
- case 163:
+ case 172:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 164:
+ case 173:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant)=IS_ARRAY; }
break;
- case 165:
+ case 174:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant)=IS_CALLABLE; }
break;
- case 166:
+ case 175:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 167:
+ case 176:
- { (yyval) = (yyvsp[(1) - (1)]); }
+ { Z_LVAL((yyval).u.constant) = 0; }
break;
- case 168:
+ case 177:
- { Z_LVAL((yyval).u.constant) = 0; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 169:
+ case 178:
+
+ { 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:
{ 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 170:
+ case 180:
{ 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 171:
+ case 181:
{ 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 172:
+ case 182:
{ 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 173:
+ case 183:
{ 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 174:
+ case 184:
{ 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 175:
+ case 185:
{ zend_do_fetch_global_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 176:
+ case 186:
{ zend_do_fetch_global_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
- case 177:
+ case 187:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 178:
+ case 188:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 179:
+ case 189:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 180:
+ case 190:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 181:
+ case 191:
{ zend_do_fetch_static_variable(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 182:
+ case 192:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 183:
+ case 193:
{ zend_do_fetch_static_variable(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
- case 186:
+ case 196:
{ CG(access_type) = Z_LVAL((yyvsp[(1) - (1)]).u.constant); }
break;
- case 190:
+ case 200:
{ zend_do_begin_function_declaration(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]), 1, (yyvsp[(3) - (4)]).op_type, &(yyvsp[(1) - (4)]) TSRMLS_CC); }
break;
- case 191:
+ case 201:
{ 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 193:
+ case 203:
{ zend_do_implements_trait(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 194:
+ case 204:
{ zend_do_implements_trait(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 201:
+ case 211:
{ zend_add_trait_precedence(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 202:
+ case 212:
{ zend_add_trait_alias(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 203:
+ case 213:
{ zend_prepare_trait_precedence(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 204:
+ case 214:
{ 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); }
break;
- case 205:
+ case 215:
{ 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)]); }
break;
- case 206:
+ case 216:
{ zend_prepare_reference(&(yyval), NULL, &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 207:
+ case 217:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 208:
+ case 218:
{ zend_prepare_reference(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 209:
+ case 219:
{ zend_prepare_trait_alias(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 210:
+ case 220:
{ zend_prepare_trait_alias(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), NULL TSRMLS_CC); }
break;
- case 211:
+ case 221:
{ Z_LVAL((yyval).u.constant) = 0x0; }
break;
- case 212:
+ case 222:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 213:
+ case 223:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 214:
+ case 224:
{ Z_LVAL((yyval).u.constant) = 0; }
break;
- case 215:
+ case 225:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 216:
+ case 226:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 217:
+ case 227:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 218:
+ case 228:
{ (yyval) = (yyvsp[(1) - (1)]); if (!(Z_LVAL((yyval).u.constant) & ZEND_ACC_PPP_MASK)) { Z_LVAL((yyval).u.constant) |= ZEND_ACC_PUBLIC; } }
break;
- case 219:
+ case 229:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 220:
+ case 230:
{ Z_LVAL((yyval).u.constant) = zend_do_verify_access_types(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); }
break;
- case 221:
+ case 231:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PUBLIC; }
break;
- case 222:
+ case 232:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PROTECTED; }
break;
- case 223:
+ case 233:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_PRIVATE; }
break;
- case 224:
+ case 234:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_STATIC; }
break;
- case 225:
+ case 235:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_ABSTRACT; }
break;
- case 226:
+ case 236:
{ Z_LVAL((yyval).u.constant) = ZEND_ACC_FINAL; }
break;
- case 227:
+ case 237:
{ zend_do_declare_property(&(yyvsp[(3) - (3)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 228:
+ case 238:
{ zend_do_declare_property(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), CG(access_type) TSRMLS_CC); }
break;
- case 229:
+ case 239:
{ zend_do_declare_property(&(yyvsp[(1) - (1)]), NULL, CG(access_type) TSRMLS_CC); }
break;
- case 230:
+ case 240:
{ zend_do_declare_property(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), CG(access_type) TSRMLS_CC); }
break;
- case 231:
+ case 241:
{ zend_do_declare_class_constant(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 232:
+ case 242:
{ zend_do_declare_class_constant(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 233:
+ case 243:
{ zend_do_echo(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 234:
+ case 244:
{ zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 235:
+ case 245:
{ (yyval).op_type = IS_CONST; Z_TYPE((yyval).u.constant) = IS_BOOL; Z_LVAL((yyval).u.constant) = 1; }
break;
- case 236:
+ case 246:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 237:
+ case 247:
{ zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 238:
+ case 248:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 239:
+ case 249:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 240:
+ case 250:
{ (yyval).EA = (yyvsp[(2) - (2)]).EA; }
break;
- case 241:
+ case 251:
{ (yyval).EA = (yyvsp[(1) - (1)]).EA; }
break;
- case 242:
+ case 252:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 243:
+ case 253:
{ zend_do_pop_object(&(yyvsp[(1) - (3)]) TSRMLS_CC); fetch_array_dim(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 244:
+ case 254:
{ zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 245:
+ case 255:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 246:
+ case 256:
{ zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 247:
+ case 257:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 248:
+ case 258:
{ (yyval) = (yyvsp[(0) - (0)]); }
break;
- case 249:
+ case 259:
{ zend_do_push_object(&(yyvsp[(0) - (0)]) TSRMLS_CC); zend_do_begin_variable_parse(TSRMLS_C); }
break;
- case 250:
+ case 260:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 251:
+ case 261:
{ zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 252:
+ case 262:
{ zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 253:
+ case 263:
{ zend_do_list_init(TSRMLS_C); }
break;
- case 254:
+ case 264:
{ zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
- case 255:
+ case 265:
{ zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 256:
+ case 266:
{ 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 257:
+ case 267:
{ 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 258:
+ case 268:
{ 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 259:
+ case 269:
{ zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 260:
+ case 270:
{ 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 261:
+ case 271:
{ 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 262:
+ case 272:
{ 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 263:
+ case 273:
{ 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 264:
+ case 274:
{ 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 265:
+ case 275:
{ 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 266:
+ case 276:
{ 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 267:
+ case 277:
{ 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 268:
+ case 278:
{ 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 269:
+ case 279:
{ 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 270:
+ case 280:
{ 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 271:
+ case 281:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); }
break;
- case 272:
+ case 282:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); }
break;
- case 273:
+ case 283:
{ zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); }
break;
- case 274:
+ case 284:
{ zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); }
break;
- case 275:
+ case 285:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 276:
+ case 286:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 277:
+ case 287:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 278:
+ case 288:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 279:
+ case 289:
{ zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 280:
+ case 290:
{ zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 281:
+ case 291:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 282:
+ case 292:
{ zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 283:
+ case 293:
{ zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 284:
+ case 294:
{ zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 285:
+ case 295:
{ zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 286:
+ case 296:
{ zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 287:
+ case 297:
{ zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 288:
+ case 298:
{ zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 289:
+ case 299:
{ zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 290:
+ case 300:
{ zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 291:
+ case 301:
{ zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 292:
+ case 302:
{ zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 293:
+ case 303:
{ zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 294:
+ case 304:
{ zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 295:
+ case 305:
{ 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 296:
+ case 306:
{ 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 297:
+ case 307:
{ zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 298:
+ case 308:
{ zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 299:
+ case 309:
{ zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 300:
+ case 310:
{ zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 301:
+ case 311:
{ zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 302:
+ case 312:
{ zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 303:
+ case 313:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 304:
+ case 314:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 305:
+ case 315:
{ zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 306:
+ case 316:
{ zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 307:
+ case 317:
{ zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 308:
+ case 318:
- { (yyval) = (yyvsp[(2) - (3)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 309:
+ case 319:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 310:
+ case 320:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 311:
+ case 321:
{ (yyval) = (yyvsp[(5) - (5)]); }
break;
- case 312:
+ case 322:
{ zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 313:
+ case 323:
{ zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
- case 314:
+ case 324:
{ zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
break;
- case 315:
+ case 325:
{ zend_do_jmp_set(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 316:
+ case 326:
{ zend_do_jmp_set_else(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(3) - (5)]) TSRMLS_CC); }
break;
- case 317:
+ case 327:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 318:
+ case 328:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); }
break;
- case 319:
+ case 329:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); }
break;
- case 320:
+ case 330:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); }
break;
- case 321:
+ case 331:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); }
break;
- case 322:
+ case 332:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); }
break;
- case 323:
+ case 333:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); }
break;
- case 324:
+ case 334:
{ zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); }
break;
- case 325:
+ case 335:
{ zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 326:
+ case 336:
{ zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 327:
+ case 337:
{ zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 328:
+ case 338:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 329:
+ case 339:
- { (yyval) = (yyvsp[(3) - (4)]); }
+ { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 330:
+ case 340:
- { (yyval) = (yyvsp[(2) - (3)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 331:
+ case 341:
{ zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
- case 332:
+ case 342:
{ zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 333:
+ case 343:
- { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]).op_type, 0 TSRMLS_CC); }
+ { zend_do_yield(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
- case 334:
+ case 344:
- { zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); (yyval) = (yyvsp[(4) - (10)]); }
+ { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]).op_type, 0 TSRMLS_CC); }
break;
- case 335:
+ case 345:
- { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]).op_type, 1 TSRMLS_CC); }
+ { zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (10)]); }
break;
- case 336:
+ case 346:
- { zend_do_end_function_declaration(&(yyvsp[(2) - (11)]) TSRMLS_CC); (yyval) = (yyvsp[(5) - (11)]); }
+ { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]).op_type, 1 TSRMLS_CC); }
break;
- case 337:
+ case 347:
+
+ { zend_do_end_function_declaration(&(yyvsp[(2) - (11)]) TSRMLS_CC); (yyval) = (yyvsp[(4) - (11)]); }
+ break;
+
+ case 348:
+
+ { zend_do_yield(&(yyval), &(yyvsp[(2) - (2)]), NULL, 0 TSRMLS_CC); }
+ break;
+
+ case 349:
+
+ { zend_do_yield(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
+ break;
+
+ case 350:
+
+ { zend_do_yield(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); }
+ break;
+
+ case 351:
+
+ { zend_do_yield(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]), 1 TSRMLS_CC); }
+ break;
+
+ case 352:
+
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ break;
+
+ case 353:
+
+ { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ break;
+
+ case 354:
+
+ { (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:
+
+ { (yyval) = (yyvsp[(3) - (4)]); }
+ break;
+
+ case 356:
+
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+ case 357:
{ (yyval).u.op.opline_num = CG(zend_lineno); }
break;
- case 340:
+ case 360:
{ zend_do_fetch_lexical_variable(&(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
- case 341:
+ case 361:
{ zend_do_fetch_lexical_variable(&(yyvsp[(4) - (4)]), 1 TSRMLS_CC); }
break;
- case 342:
+ case 362:
{ zend_do_fetch_lexical_variable(&(yyvsp[(1) - (1)]), 0 TSRMLS_CC); }
break;
- case 343:
+ case 363:
{ zend_do_fetch_lexical_variable(&(yyvsp[(2) - (2)]), 1 TSRMLS_CC); }
break;
- case 344:
+ case 364:
- { (yyvsp[(2) - (2)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (2)]), 1 TSRMLS_CC); }
+ { (yyval).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 345:
+ case 365:
- { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, (yyvsp[(2) - (5)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { 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 346:
+ case 366:
- { (yyvsp[(1) - (4)]).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyvsp[(1) - (4)]).u.constant); zend_do_build_namespace_name(&(yyvsp[(1) - (4)]), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (4)]), 0 TSRMLS_CC); }
+ { (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 347:
+ case 367:
- { zend_do_end_function_call(&(yyvsp[(1) - (7)]), &(yyval), &(yyvsp[(6) - (7)]), 0, (yyvsp[(4) - (7)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { 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 348:
+ case 368:
- { (yyvsp[(3) - (3)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(2) - (3)]), 0 TSRMLS_CC); }
+ { (yyval).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(2) - (2)]), 0 TSRMLS_CC); }
break;
- case 349:
+ case 369:
- { zend_do_end_function_call(&(yyvsp[(2) - (6)]), &(yyval), &(yyvsp[(5) - (6)]), 0, (yyvsp[(3) - (6)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { 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 350:
+ case 370:
- { (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ { (yyval).u.op.opline_num = zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 351:
+ case 371:
- { zend_do_end_function_call((yyvsp[(4) - (7)]).u.op.opline_num?NULL:&(yyvsp[(3) - (7)]), &(yyval), &(yyvsp[(6) - (7)]), (yyvsp[(4) - (7)]).u.op.opline_num, (yyvsp[(4) - (7)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { 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 352:
+ case 372:
- { zend_do_end_variable_parse(&(yyvsp[(3) - (4)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ { 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 353:
+ case 373:
- { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 354:
+ case 374:
- { zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ { zend_do_begin_class_member_function_call(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
- case 355:
+ case 375:
- { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 356:
+ case 376:
- { zend_do_end_variable_parse(&(yyvsp[(3) - (4)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ { 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 357:
+ case 377:
- { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(5) - (5)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
- case 358:
+ case 378:
- { zend_do_end_variable_parse(&(yyvsp[(1) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[(1) - (2)]), 0 TSRMLS_CC); }
+ { 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 359:
+ case 379:
- { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { 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 360:
+ case 380:
{ (yyval).op_type = IS_CONST; ZVAL_STRINGL(&(yyval).u.constant, "static", sizeof("static")-1, 1);}
break;
- case 361:
+ case 381:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 362:
+ case 382:
{ (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 363:
+ case 383:
{ 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 364:
+ case 384:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 365:
+ case 385:
{ (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 366:
+ case 386:
{ 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 367:
+ case 387:
{ zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 368:
+ case 388:
{ 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 369:
+ case 389:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 370:
+ case 390:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 371:
+ case 391:
{ zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).EA = ZEND_PARSED_MEMBER; }
break;
- case 372:
+ case 392:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 375:
+ case 395:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 376:
+ case 396:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
- case 377:
+ case 397:
{ memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
- case 378:
+ case 398:
- { (yyval) = (yyvsp[(2) - (3)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 379:
+ case 399:
{ ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; }
break;
- case 380:
+ case 400:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 381:
+ case 401:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 382:
+ case 402:
- { Z_LVAL((yyval).u.constant)=0; }
+ { Z_LVAL((yyval).u.constant) = 0; }
break;
- case 383:
+ case 403:
- { (yyval) = (yyvsp[(2) - (3)]); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 384:
+ case 404:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 385:
+ case 405:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 386:
+ case 406:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 387:
+ case 407:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 388:
+ case 408:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 389:
+ case 409:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 390:
+ case 410:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 391:
+ case 411:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 392:
+ case 412:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 393:
+ case 413:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 394:
+ case 414:
- { (yyval) = (yyvsp[(2) - (3)]); CG(heredoc) = Z_STRVAL((yyvsp[(1) - (3)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (3)]).u.constant); }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 395:
+ case 415:
- { ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; CG(heredoc) = Z_STRVAL((yyvsp[(1) - (2)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (2)]).u.constant); }
+ { ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; }
break;
- case 396:
+ case 416:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 397:
+ case 417:
{ zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT, 1 TSRMLS_CC); }
break;
- case 398:
+ case 418:
{ (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); }
break;
- case 399:
+ case 419:
{ 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); }
break;
- case 400:
+ case 420:
{ 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)]); }
break;
- case 401:
+ case 421:
{ 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)]); }
break;
- case 402:
+ case 422:
{ (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
break;
- case 403:
+ case 423:
{ (yyval) = (yyvsp[(2) - (3)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; }
break;
- case 404:
+ case 424:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 405:
+ case 425:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 406:
+ case 426:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); }
break;
- case 407:
+ case 427:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 408:
+ case 428:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 409:
+ case 429:
{ zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT, 1 TSRMLS_CC); }
break;
- case 410:
+ case 430:
{ (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 411:
+ case 431:
{ 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 412:
+ case 432:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 413:
+ case 433:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 414:
+ case 434:
- { (yyval) = (yyvsp[(2) - (3)]); CG(heredoc) = Z_STRVAL((yyvsp[(1) - (3)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (3)]).u.constant); }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 415:
+ case 435:
{ 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 416:
+ case 436:
{ (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); }
break;
- case 417:
+ case 437:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 420:
+ case 440:
{ zend_do_add_static_array_element(&(yyval), &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)])); }
break;
- case 421:
+ case 441:
{ zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(3) - (3)])); }
break;
- case 422:
+ case 442:
{ (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 423:
+ case 443:
{ (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 424:
+ case 444:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 425:
+ case 445:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 426:
+ case 446:
+
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+ case 447:
+
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+ case 448:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 427:
+ case 449:
{ 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 428:
+ case 450:
{ 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 429:
+ case 451:
{ zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
- case 430:
+ case 452:
{ zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
- case 431:
+ case 453:
{ 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 432:
+ case 454:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 433:
+ case 455:
{ (yyval).EA = (yyvsp[(2) - (2)]).EA; }
break;
- case 434:
+ case 456:
{ (yyval).EA = 0; }
break;
- case 435:
+ case 457:
{ zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 436:
+ case 458:
{ (yyval).EA = (yyvsp[(4) - (4)]).EA; }
break;
- case 437:
+ case 459:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 438:
+ case 460:
{ (yyvsp[(1) - (4)]).EA = ZEND_PARSED_METHOD_CALL; fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 439:
+ case 461:
- { zend_do_pop_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ { zend_do_pop_object(&(yyval) TSRMLS_CC); zend_do_begin_method_call(&(yyval) TSRMLS_CC); }
break;
- case 440:
+ case 462:
- { zend_do_end_function_call(&(yyvsp[(1) - (4)]), &(yyval), &(yyvsp[(3) - (4)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { zend_do_end_function_call(&(yyvsp[(1) - (2)]), &(yyval), &(yyvsp[(2) - (2)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
- case 441:
+ case 463:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_METHOD_CALL; zend_do_push_object(&(yyval) TSRMLS_CC); }
break;
- case 442:
+ case 464:
{ (yyval) = (yyvsp[(1) - (1)]); zend_do_push_object(&(yyval) TSRMLS_CC); }
break;
- case 443:
+ case 465:
{ (yyval).EA = ZEND_PARSED_MEMBER; }
break;
- case 444:
+ case 466:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 445:
+ case 467:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 446:
+ case 468:
{ (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 447:
+ case 469:
{ (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
- case 448:
+ case 470:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (1)]);; }
break;
- case 449:
+ case 471:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 450:
+ case 472:
{ zend_do_begin_variable_parse(TSRMLS_C); (yyvsp[(1) - (1)]).EA = ZEND_PARSED_FUNCTION_CALL; }
break;
- case 451:
+ case 473:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 452:
+ case 474:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 453:
+ case 475:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 454:
+ case 476:
{ zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_FUNCTION_CALL; }
break;
- case 455:
+ case 477:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_VARIABLE; }
break;
- case 456:
+ case 478:
{ zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).EA = ZEND_PARSED_VARIABLE; }
break;
- case 457:
+ case 479:
{ (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_STATIC_MEMBER; }
break;
- case 458:
+ case 480:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 459:
+ case 481:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 460:
+ case 482:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 461:
+ case 483:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 462:
+ case 484:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 463:
+ case 485:
{ (yyval).op_type = IS_UNUSED; }
break;
- case 464:
+ case 486:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 465:
+ case 487:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 466:
+ case 488:
{ zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); }
break;
- case 467:
+ case 489:
{ 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 468:
+ case 490:
{ fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 469:
+ case 491:
{ fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 470:
+ case 492:
{ 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 471:
+ case 493:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 472:
+ case 494:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 473:
+ case 495:
{ Z_LVAL((yyval).u.constant) = 1; }
break;
- case 474:
+ case 496:
{ Z_LVAL((yyval).u.constant)++; }
break;
- case 477:
+ case 499:
{ zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
- case 478:
+ case 500:
{ zend_do_new_list_begin(TSRMLS_C); }
break;
- case 479:
+ case 501:
{ zend_do_new_list_end(TSRMLS_C); }
break;
- case 480:
+ case 502:
{ zend_do_add_list_element(NULL TSRMLS_CC); }
break;
- case 481:
+ case 503:
{ zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
- case 482:
+ case 504:
{ (yyval) = (yyvsp[(1) - (2)]); }
break;
- case 483:
+ case 505:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); }
break;
- case 484:
+ case 506:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); }
break;
- case 485:
+ case 507:
{ zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
- case 486:
+ case 508:
{ zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
break;
- case 487:
+ case 509:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); }
break;
- case 488:
+ case 510:
{ zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); }
break;
- case 489:
+ case 511:
{ zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
- case 490:
+ case 512:
{ zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
- case 491:
+ case 513:
{ 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 492:
+ case 514:
{ zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 493:
+ case 515:
{ 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 494:
+ case 516:
{ 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 495:
+ case 517:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 496:
+ case 518:
{ zend_do_begin_variable_parse(TSRMLS_C); }
break;
- case 497:
+ case 519:
{ fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
- case 498:
+ case 520:
{ 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 499:
+ case 521:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
- case 500:
+ case 522:
{ zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); }
break;
- case 501:
+ case 523:
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
- case 502:
+ case 524:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 503:
+ case 525:
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 504:
+ case 526:
{ fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
- case 505:
+ case 527:
{ (yyval) = (yyvsp[(3) - (4)]); }
break;
- case 506:
+ case 528:
{ zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 507:
+ case 529:
+
+ { zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
+ break;
+
+ case 530:
{ zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 508:
+ case 531:
{ zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 509:
+ case 532:
{ zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
- case 510:
+ case 533:
{ zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 511:
+ case 534:
{ zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 512:
+ case 535:
- { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
- case 513:
+ case 536:
{ zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
- case 514:
+ case 537:
- { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &tmp, &(yyvsp[(2) - (4)]) TSRMLS_CC); }
+ { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
- case 515:
+ case 538:
+
+ { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
+ break;
+
+ case 539:
+
+ { zend_error(E_COMPILE_ERROR, "Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead)"); }
+ break;
+
+ case 540:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); }
break;
- case 516:
+ case 541:
{ zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); }
break;
-/* Line 1267 of yacc.c. */
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -5812,7 +5971,6 @@ yyreduce:
*++yyvsp = yyval;
-
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -5832,6 +5990,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -5839,37 +6001,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -5877,7 +6038,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse look-ahead token after an
+ /* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -5894,7 +6055,7 @@ yyerrlab:
}
}
- /* Else will try to reuse look-ahead token after shifting the error
+ /* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
@@ -5928,7 +6089,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -5951,9 +6112,6 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
*++yyvsp = yylval;
@@ -5978,7 +6136,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -5989,9 +6147,14 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ if (yychar != YYEMPTY)
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
diff --git a/Zend/zend_language_parser.h b/Zend/zend_language_parser.h
index 152ff00e7..ee3362cff 100644
--- a/Zend/zend_language_parser.h
+++ b/Zend/zend_language_parser.h
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,10 +26,11 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -49,124 +47,126 @@
T_LOGICAL_XOR = 264,
T_LOGICAL_AND = 265,
T_PRINT = 266,
- T_SR_EQUAL = 267,
- T_SL_EQUAL = 268,
- T_XOR_EQUAL = 269,
- T_OR_EQUAL = 270,
- T_AND_EQUAL = 271,
- T_MOD_EQUAL = 272,
- T_CONCAT_EQUAL = 273,
- T_DIV_EQUAL = 274,
- T_MUL_EQUAL = 275,
- T_MINUS_EQUAL = 276,
- T_PLUS_EQUAL = 277,
- T_BOOLEAN_OR = 278,
- T_BOOLEAN_AND = 279,
- T_IS_NOT_IDENTICAL = 280,
- T_IS_IDENTICAL = 281,
- T_IS_NOT_EQUAL = 282,
- T_IS_EQUAL = 283,
- T_IS_GREATER_OR_EQUAL = 284,
- T_IS_SMALLER_OR_EQUAL = 285,
- T_SR = 286,
- T_SL = 287,
- T_INSTANCEOF = 288,
- T_UNSET_CAST = 289,
- T_BOOL_CAST = 290,
- T_OBJECT_CAST = 291,
- T_ARRAY_CAST = 292,
- T_STRING_CAST = 293,
- T_DOUBLE_CAST = 294,
- T_INT_CAST = 295,
- T_DEC = 296,
- T_INC = 297,
- T_CLONE = 298,
- T_NEW = 299,
- T_EXIT = 300,
- T_IF = 301,
- T_ELSEIF = 302,
- T_ELSE = 303,
- T_ENDIF = 304,
- T_LNUMBER = 305,
- T_DNUMBER = 306,
- T_STRING = 307,
- T_STRING_VARNAME = 308,
- T_VARIABLE = 309,
- T_NUM_STRING = 310,
- T_INLINE_HTML = 311,
- T_CHARACTER = 312,
- T_BAD_CHARACTER = 313,
- T_ENCAPSED_AND_WHITESPACE = 314,
- T_CONSTANT_ENCAPSED_STRING = 315,
- T_ECHO = 316,
- T_DO = 317,
- T_WHILE = 318,
- T_ENDWHILE = 319,
- T_FOR = 320,
- T_ENDFOR = 321,
- T_FOREACH = 322,
- T_ENDFOREACH = 323,
- T_DECLARE = 324,
- T_ENDDECLARE = 325,
- T_AS = 326,
- T_SWITCH = 327,
- T_ENDSWITCH = 328,
- T_CASE = 329,
- T_DEFAULT = 330,
- T_BREAK = 331,
- T_CONTINUE = 332,
- T_GOTO = 333,
- T_FUNCTION = 334,
- T_CONST = 335,
- T_RETURN = 336,
- T_TRY = 337,
- T_CATCH = 338,
- T_THROW = 339,
- T_USE = 340,
- T_INSTEADOF = 341,
- T_GLOBAL = 342,
- T_PUBLIC = 343,
- T_PROTECTED = 344,
- T_PRIVATE = 345,
- T_FINAL = 346,
- T_ABSTRACT = 347,
- T_STATIC = 348,
- T_VAR = 349,
- T_UNSET = 350,
- T_ISSET = 351,
- T_EMPTY = 352,
- T_HALT_COMPILER = 353,
- T_CLASS = 354,
- T_TRAIT = 355,
- T_INTERFACE = 356,
- T_EXTENDS = 357,
- T_IMPLEMENTS = 358,
- T_OBJECT_OPERATOR = 359,
- T_DOUBLE_ARROW = 360,
- T_LIST = 361,
- T_ARRAY = 362,
- T_CALLABLE = 363,
- T_CLASS_C = 364,
- T_TRAIT_C = 365,
- T_METHOD_C = 366,
- T_FUNC_C = 367,
- T_LINE = 368,
- T_FILE = 369,
- T_COMMENT = 370,
- T_DOC_COMMENT = 371,
- T_OPEN_TAG = 372,
- T_OPEN_TAG_WITH_ECHO = 373,
- T_CLOSE_TAG = 374,
- T_WHITESPACE = 375,
- T_START_HEREDOC = 376,
- T_END_HEREDOC = 377,
- T_DOLLAR_OPEN_CURLY_BRACES = 378,
- T_CURLY_OPEN = 379,
- T_PAAMAYIM_NEKUDOTAYIM = 380,
- T_NAMESPACE = 381,
- T_NS_C = 382,
- T_DIR = 383,
- T_NS_SEPARATOR = 384
+ T_YIELD = 267,
+ T_SR_EQUAL = 268,
+ T_SL_EQUAL = 269,
+ T_XOR_EQUAL = 270,
+ T_OR_EQUAL = 271,
+ T_AND_EQUAL = 272,
+ T_MOD_EQUAL = 273,
+ T_CONCAT_EQUAL = 274,
+ T_DIV_EQUAL = 275,
+ T_MUL_EQUAL = 276,
+ T_MINUS_EQUAL = 277,
+ T_PLUS_EQUAL = 278,
+ T_BOOLEAN_OR = 279,
+ T_BOOLEAN_AND = 280,
+ T_IS_NOT_IDENTICAL = 281,
+ T_IS_IDENTICAL = 282,
+ T_IS_NOT_EQUAL = 283,
+ T_IS_EQUAL = 284,
+ T_IS_GREATER_OR_EQUAL = 285,
+ T_IS_SMALLER_OR_EQUAL = 286,
+ T_SR = 287,
+ T_SL = 288,
+ T_INSTANCEOF = 289,
+ T_UNSET_CAST = 290,
+ T_BOOL_CAST = 291,
+ T_OBJECT_CAST = 292,
+ T_ARRAY_CAST = 293,
+ T_STRING_CAST = 294,
+ T_DOUBLE_CAST = 295,
+ T_INT_CAST = 296,
+ T_DEC = 297,
+ T_INC = 298,
+ T_CLONE = 299,
+ T_NEW = 300,
+ T_EXIT = 301,
+ T_IF = 302,
+ T_ELSEIF = 303,
+ T_ELSE = 304,
+ T_ENDIF = 305,
+ T_LNUMBER = 306,
+ T_DNUMBER = 307,
+ T_STRING = 308,
+ T_STRING_VARNAME = 309,
+ T_VARIABLE = 310,
+ T_NUM_STRING = 311,
+ T_INLINE_HTML = 312,
+ T_CHARACTER = 313,
+ T_BAD_CHARACTER = 314,
+ T_ENCAPSED_AND_WHITESPACE = 315,
+ T_CONSTANT_ENCAPSED_STRING = 316,
+ T_ECHO = 317,
+ T_DO = 318,
+ T_WHILE = 319,
+ T_ENDWHILE = 320,
+ T_FOR = 321,
+ T_ENDFOR = 322,
+ T_FOREACH = 323,
+ T_ENDFOREACH = 324,
+ T_DECLARE = 325,
+ T_ENDDECLARE = 326,
+ T_AS = 327,
+ T_SWITCH = 328,
+ T_ENDSWITCH = 329,
+ T_CASE = 330,
+ T_DEFAULT = 331,
+ T_BREAK = 332,
+ T_CONTINUE = 333,
+ T_GOTO = 334,
+ T_FUNCTION = 335,
+ T_CONST = 336,
+ T_RETURN = 337,
+ T_TRY = 338,
+ T_CATCH = 339,
+ T_FINALLY = 340,
+ T_THROW = 341,
+ T_USE = 342,
+ T_INSTEADOF = 343,
+ T_GLOBAL = 344,
+ T_PUBLIC = 345,
+ T_PROTECTED = 346,
+ T_PRIVATE = 347,
+ T_FINAL = 348,
+ T_ABSTRACT = 349,
+ T_STATIC = 350,
+ T_VAR = 351,
+ T_UNSET = 352,
+ T_ISSET = 353,
+ T_EMPTY = 354,
+ T_HALT_COMPILER = 355,
+ T_CLASS = 356,
+ T_TRAIT = 357,
+ T_INTERFACE = 358,
+ T_EXTENDS = 359,
+ T_IMPLEMENTS = 360,
+ T_OBJECT_OPERATOR = 361,
+ T_DOUBLE_ARROW = 362,
+ T_LIST = 363,
+ T_ARRAY = 364,
+ T_CALLABLE = 365,
+ T_CLASS_C = 366,
+ T_TRAIT_C = 367,
+ T_METHOD_C = 368,
+ T_FUNC_C = 369,
+ T_LINE = 370,
+ T_FILE = 371,
+ T_COMMENT = 372,
+ T_DOC_COMMENT = 373,
+ T_OPEN_TAG = 374,
+ T_OPEN_TAG_WITH_ECHO = 375,
+ T_CLOSE_TAG = 376,
+ T_WHITESPACE = 377,
+ T_START_HEREDOC = 378,
+ T_END_HEREDOC = 379,
+ T_DOLLAR_OPEN_CURLY_BRACES = 380,
+ T_CURLY_OPEN = 381,
+ T_PAAMAYIM_NEKUDOTAYIM = 382,
+ T_NAMESPACE = 383,
+ T_NS_C = 384,
+ T_DIR = 385,
+ T_NS_SEPARATOR = 386
};
#endif
/* Tokens. */
@@ -180,134 +180,137 @@
#define T_LOGICAL_XOR 264
#define T_LOGICAL_AND 265
#define T_PRINT 266
-#define T_SR_EQUAL 267
-#define T_SL_EQUAL 268
-#define T_XOR_EQUAL 269
-#define T_OR_EQUAL 270
-#define T_AND_EQUAL 271
-#define T_MOD_EQUAL 272
-#define T_CONCAT_EQUAL 273
-#define T_DIV_EQUAL 274
-#define T_MUL_EQUAL 275
-#define T_MINUS_EQUAL 276
-#define T_PLUS_EQUAL 277
-#define T_BOOLEAN_OR 278
-#define T_BOOLEAN_AND 279
-#define T_IS_NOT_IDENTICAL 280
-#define T_IS_IDENTICAL 281
-#define T_IS_NOT_EQUAL 282
-#define T_IS_EQUAL 283
-#define T_IS_GREATER_OR_EQUAL 284
-#define T_IS_SMALLER_OR_EQUAL 285
-#define T_SR 286
-#define T_SL 287
-#define T_INSTANCEOF 288
-#define T_UNSET_CAST 289
-#define T_BOOL_CAST 290
-#define T_OBJECT_CAST 291
-#define T_ARRAY_CAST 292
-#define T_STRING_CAST 293
-#define T_DOUBLE_CAST 294
-#define T_INT_CAST 295
-#define T_DEC 296
-#define T_INC 297
-#define T_CLONE 298
-#define T_NEW 299
-#define T_EXIT 300
-#define T_IF 301
-#define T_ELSEIF 302
-#define T_ELSE 303
-#define T_ENDIF 304
-#define T_LNUMBER 305
-#define T_DNUMBER 306
-#define T_STRING 307
-#define T_STRING_VARNAME 308
-#define T_VARIABLE 309
-#define T_NUM_STRING 310
-#define T_INLINE_HTML 311
-#define T_CHARACTER 312
-#define T_BAD_CHARACTER 313
-#define T_ENCAPSED_AND_WHITESPACE 314
-#define T_CONSTANT_ENCAPSED_STRING 315
-#define T_ECHO 316
-#define T_DO 317
-#define T_WHILE 318
-#define T_ENDWHILE 319
-#define T_FOR 320
-#define T_ENDFOR 321
-#define T_FOREACH 322
-#define T_ENDFOREACH 323
-#define T_DECLARE 324
-#define T_ENDDECLARE 325
-#define T_AS 326
-#define T_SWITCH 327
-#define T_ENDSWITCH 328
-#define T_CASE 329
-#define T_DEFAULT 330
-#define T_BREAK 331
-#define T_CONTINUE 332
-#define T_GOTO 333
-#define T_FUNCTION 334
-#define T_CONST 335
-#define T_RETURN 336
-#define T_TRY 337
-#define T_CATCH 338
-#define T_THROW 339
-#define T_USE 340
-#define T_INSTEADOF 341
-#define T_GLOBAL 342
-#define T_PUBLIC 343
-#define T_PROTECTED 344
-#define T_PRIVATE 345
-#define T_FINAL 346
-#define T_ABSTRACT 347
-#define T_STATIC 348
-#define T_VAR 349
-#define T_UNSET 350
-#define T_ISSET 351
-#define T_EMPTY 352
-#define T_HALT_COMPILER 353
-#define T_CLASS 354
-#define T_TRAIT 355
-#define T_INTERFACE 356
-#define T_EXTENDS 357
-#define T_IMPLEMENTS 358
-#define T_OBJECT_OPERATOR 359
-#define T_DOUBLE_ARROW 360
-#define T_LIST 361
-#define T_ARRAY 362
-#define T_CALLABLE 363
-#define T_CLASS_C 364
-#define T_TRAIT_C 365
-#define T_METHOD_C 366
-#define T_FUNC_C 367
-#define T_LINE 368
-#define T_FILE 369
-#define T_COMMENT 370
-#define T_DOC_COMMENT 371
-#define T_OPEN_TAG 372
-#define T_OPEN_TAG_WITH_ECHO 373
-#define T_CLOSE_TAG 374
-#define T_WHITESPACE 375
-#define T_START_HEREDOC 376
-#define T_END_HEREDOC 377
-#define T_DOLLAR_OPEN_CURLY_BRACES 378
-#define T_CURLY_OPEN 379
-#define T_PAAMAYIM_NEKUDOTAYIM 380
-#define T_NAMESPACE 381
-#define T_NS_C 382
-#define T_DIR 383
-#define T_NS_SEPARATOR 384
+#define T_YIELD 267
+#define T_SR_EQUAL 268
+#define T_SL_EQUAL 269
+#define T_XOR_EQUAL 270
+#define T_OR_EQUAL 271
+#define T_AND_EQUAL 272
+#define T_MOD_EQUAL 273
+#define T_CONCAT_EQUAL 274
+#define T_DIV_EQUAL 275
+#define T_MUL_EQUAL 276
+#define T_MINUS_EQUAL 277
+#define T_PLUS_EQUAL 278
+#define T_BOOLEAN_OR 279
+#define T_BOOLEAN_AND 280
+#define T_IS_NOT_IDENTICAL 281
+#define T_IS_IDENTICAL 282
+#define T_IS_NOT_EQUAL 283
+#define T_IS_EQUAL 284
+#define T_IS_GREATER_OR_EQUAL 285
+#define T_IS_SMALLER_OR_EQUAL 286
+#define T_SR 287
+#define T_SL 288
+#define T_INSTANCEOF 289
+#define T_UNSET_CAST 290
+#define T_BOOL_CAST 291
+#define T_OBJECT_CAST 292
+#define T_ARRAY_CAST 293
+#define T_STRING_CAST 294
+#define T_DOUBLE_CAST 295
+#define T_INT_CAST 296
+#define T_DEC 297
+#define T_INC 298
+#define T_CLONE 299
+#define T_NEW 300
+#define T_EXIT 301
+#define T_IF 302
+#define T_ELSEIF 303
+#define T_ELSE 304
+#define T_ENDIF 305
+#define T_LNUMBER 306
+#define T_DNUMBER 307
+#define T_STRING 308
+#define T_STRING_VARNAME 309
+#define T_VARIABLE 310
+#define T_NUM_STRING 311
+#define T_INLINE_HTML 312
+#define T_CHARACTER 313
+#define T_BAD_CHARACTER 314
+#define T_ENCAPSED_AND_WHITESPACE 315
+#define T_CONSTANT_ENCAPSED_STRING 316
+#define T_ECHO 317
+#define T_DO 318
+#define T_WHILE 319
+#define T_ENDWHILE 320
+#define T_FOR 321
+#define T_ENDFOR 322
+#define T_FOREACH 323
+#define T_ENDFOREACH 324
+#define T_DECLARE 325
+#define T_ENDDECLARE 326
+#define T_AS 327
+#define T_SWITCH 328
+#define T_ENDSWITCH 329
+#define T_CASE 330
+#define T_DEFAULT 331
+#define T_BREAK 332
+#define T_CONTINUE 333
+#define T_GOTO 334
+#define T_FUNCTION 335
+#define T_CONST 336
+#define T_RETURN 337
+#define T_TRY 338
+#define T_CATCH 339
+#define T_FINALLY 340
+#define T_THROW 341
+#define T_USE 342
+#define T_INSTEADOF 343
+#define T_GLOBAL 344
+#define T_PUBLIC 345
+#define T_PROTECTED 346
+#define T_PRIVATE 347
+#define T_FINAL 348
+#define T_ABSTRACT 349
+#define T_STATIC 350
+#define T_VAR 351
+#define T_UNSET 352
+#define T_ISSET 353
+#define T_EMPTY 354
+#define T_HALT_COMPILER 355
+#define T_CLASS 356
+#define T_TRAIT 357
+#define T_INTERFACE 358
+#define T_EXTENDS 359
+#define T_IMPLEMENTS 360
+#define T_OBJECT_OPERATOR 361
+#define T_DOUBLE_ARROW 362
+#define T_LIST 363
+#define T_ARRAY 364
+#define T_CALLABLE 365
+#define T_CLASS_C 366
+#define T_TRAIT_C 367
+#define T_METHOD_C 368
+#define T_FUNC_C 369
+#define T_LINE 370
+#define T_FILE 371
+#define T_COMMENT 372
+#define T_DOC_COMMENT 373
+#define T_OPEN_TAG 374
+#define T_OPEN_TAG_WITH_ECHO 375
+#define T_CLOSE_TAG 376
+#define T_WHITESPACE 377
+#define T_START_HEREDOC 378
+#define T_END_HEREDOC 379
+#define T_DOLLAR_OPEN_CURLY_BRACES 380
+#define T_CURLY_OPEN 381
+#define T_PAAMAYIM_NEKUDOTAYIM 382
+#define T_NAMESPACE 383
+#define T_NS_C 384
+#define T_DIR 385
+#define T_NS_SEPARATOR 386
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+
diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output
index a67c1a458..bac71177e 100644
--- a/Zend/zend_language_parser.output
+++ b/Zend/zend_language_parser.output
@@ -1,4 +1,4 @@
-Terminals which are not used
+Terminals unused in grammar
T_CHARACTER
T_BAD_CHARACTER
@@ -10,8 +10,8 @@ Terminals which are not used
"whitespace (T_WHITESPACE)"
-State 216 conflicts: 1 shift/reduce
-State 776 conflicts: 2 shift/reduce
+State 228 conflicts: 1 shift/reduce
+State 669 conflicts: 2 shift/reduce
Grammar
@@ -20,9 +20,9 @@ Grammar
1 start: top_statement_list
- 2 @1: /* empty */
+ 2 $@1: /* empty */
- 3 top_statement_list: top_statement_list @1 top_statement
+ 3 top_statement_list: top_statement_list $@1 top_statement
4 | /* empty */
5 namespace_name: "identifier (T_STRING)"
@@ -34,13 +34,13 @@ Grammar
10 | "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';'
11 | "namespace (T_NAMESPACE)" namespace_name ';'
- 12 @2: /* empty */
+ 12 $@2: /* empty */
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list '}'
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}'
- 14 @3: /* empty */
+ 14 $@3: /* empty */
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list '}'
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}'
16 | "use (T_USE)" use_declarations ';'
17 | constant_declaration ';'
@@ -55,9 +55,9 @@ Grammar
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
25 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
- 26 @4: /* empty */
+ 26 $@4: /* empty */
- 27 inner_statement_list: inner_statement_list @4 inner_statement
+ 27 inner_statement_list: inner_statement_list $@4 inner_statement
28 | /* empty */
29 inner_statement: statement
@@ -70,41 +70,41 @@ Grammar
35 unticked_statement: '{' inner_statement_list '}'
- 36 @5: /* empty */
+ 36 $@5: /* empty */
- 37 @6: /* empty */
+ 37 $@6: /* empty */
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list else_single
+ 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single
- 39 @7: /* empty */
+ 39 $@7: /* empty */
- 40 @8: /* empty */
+ 40 $@8: /* empty */
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- 42 @9: /* empty */
+ 42 $@9: /* empty */
43 @10: /* empty */
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement
- 45 @11: /* empty */
+ 45 $@11: /* empty */
- 46 @12: /* empty */
+ 46 $@12: /* empty */
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
- 48 @13: /* empty */
+ 48 $@13: /* empty */
- 49 @14: /* empty */
+ 49 $@14: /* empty */
- 50 @15: /* empty */
+ 50 $@15: /* empty */
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- 52 @16: /* empty */
+ 52 $@16: /* empty */
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 switch_case_list
+ 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)" ';'
@@ -112,1289 +112,1350 @@ Grammar
58 | "return (T_RETURN)" ';'
59 | "return (T_RETURN)" expr_without_variable ';'
60 | "return (T_RETURN)" variable ';'
- 61 | "global (T_GLOBAL)" global_var_list ';'
- 62 | "static (T_STATIC)" static_var_list ';'
- 63 | "echo (T_ECHO)" echo_expr_list ';'
- 64 | T_INLINE_HTML
- 65 | expr ';'
- 66 | "unset (T_UNSET)" '(' unset_variables ')' ';'
+ 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 ')' ';'
- 67 @17: /* empty */
+ 68 $@17: /* empty */
- 68 @18: /* empty */
+ 69 $@18: /* empty */
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 70 @19: /* empty */
+ 71 $@19: /* empty */
- 71 @20: /* empty */
+ 72 $@20: /* empty */
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
- 73 @21: /* empty */
+ 74 $@21: /* empty */
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' declare_statement
- 75 | ';'
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement
+ 76 | ';'
- 76 @22: /* empty */
+ 77 $@22: /* empty */
- 77 @23: /* empty */
+ 78 $@23: /* empty */
- 78 @24: /* empty */
+ 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)" ';'
- 79 @25: /* empty */
+ 82 catch_statement: /* empty */
- 80 @26: /* empty */
+ 83 $@24: /* empty */
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
- 82 | "throw (T_THROW)" expr ';'
- 83 | "goto (T_GOTO)" "identifier (T_STRING)" ';'
+ 84 $@25: /* empty */
- 84 additional_catches: non_empty_additional_catches
- 85 | /* empty */
+ 85 $@26: /* empty */
- 86 non_empty_additional_catches: additional_catch
- 87 | non_empty_additional_catches additional_catch
+ 86 $@27: /* empty */
- 88 @27: /* empty */
+ 87 catch_statement: "catch (T_CATCH)" '(' $@24 fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- 89 @28: /* empty */
+ 88 finally_statement: /* empty */
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 89 $@28: /* empty */
- 91 unset_variables: unset_variable
- 92 | unset_variables ',' unset_variable
+ 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}'
- 93 unset_variable: variable
+ 91 additional_catches: non_empty_additional_catches
+ 92 | /* empty */
- 94 function_declaration_statement: unticked_function_declaration_statement
+ 93 non_empty_additional_catches: additional_catch
+ 94 | non_empty_additional_catches additional_catch
- 95 class_declaration_statement: unticked_class_declaration_statement
+ 95 @29: /* empty */
- 96 is_reference: /* empty */
- 97 | '&'
+ 96 $@30: /* empty */
- 98 @29: /* empty */
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 98 unset_variables: unset_variable
+ 99 | unset_variables ',' unset_variable
- 100 @30: /* empty */
+ 100 unset_variable: variable
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}'
+ 101 function_declaration_statement: unticked_function_declaration_statement
- 102 @31: /* empty */
+ 102 class_declaration_statement: unticked_class_declaration_statement
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}'
+ 103 is_reference: /* empty */
+ 104 | '&'
- 104 class_entry_type: "class (T_CLASS)"
- 105 | "abstract (T_ABSTRACT)" "class (T_CLASS)"
- 106 | "trait (T_TRAIT)"
- 107 | "final (T_FINAL)" "class (T_CLASS)"
+ 105 $@31: /* empty */
- 108 extends_from: /* empty */
- 109 | "extends (T_EXTENDS)" fully_qualified_class_name
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}'
- 110 interface_entry: "interface (T_INTERFACE)"
+ 107 $@32: /* empty */
- 111 interface_extends_list: /* empty */
- 112 | "extends (T_EXTENDS)" interface_list
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
- 113 implements_list: /* empty */
- 114 | "implements (T_IMPLEMENTS)" interface_list
+ 109 $@33: /* empty */
- 115 interface_list: fully_qualified_class_name
- 116 | interface_list ',' fully_qualified_class_name
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
- 117 foreach_optional_arg: /* empty */
- 118 | "=> (T_DOUBLE_ARROW)" foreach_variable
+ 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)"
- 119 foreach_variable: variable
- 120 | '&' variable
+ 115 extends_from: /* empty */
+ 116 | "extends (T_EXTENDS)" fully_qualified_class_name
- 121 for_statement: statement
- 122 | ':' inner_statement_list "endfor (T_ENDFOR)" ';'
+ 117 interface_entry: "interface (T_INTERFACE)"
- 123 foreach_statement: statement
- 124 | ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';'
+ 118 interface_extends_list: /* empty */
+ 119 | "extends (T_EXTENDS)" interface_list
- 125 declare_statement: statement
- 126 | ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
+ 120 implements_list: /* empty */
+ 121 | "implements (T_IMPLEMENTS)" interface_list
- 127 declare_list: "identifier (T_STRING)" '=' static_scalar
- 128 | declare_list ',' "identifier (T_STRING)" '=' static_scalar
+ 122 interface_list: fully_qualified_class_name
+ 123 | interface_list ',' fully_qualified_class_name
- 129 switch_case_list: '{' case_list '}'
- 130 | '{' ';' case_list '}'
- 131 | ':' case_list "endswitch (T_ENDSWITCH)" ';'
- 132 | ':' ';' case_list "endswitch (T_ENDSWITCH)" ';'
+ 124 foreach_optional_arg: /* empty */
+ 125 | "=> (T_DOUBLE_ARROW)" foreach_variable
- 133 case_list: /* empty */
+ 126 foreach_variable: variable
+ 127 | '&' variable
- 134 @32: /* empty */
+ 128 $@34: /* empty */
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 inner_statement_list
+ 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')'
- 136 @33: /* empty */
+ 130 for_statement: statement
+ 131 | ':' inner_statement_list "endfor (T_ENDFOR)" ';'
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 132 foreach_statement: statement
+ 133 | ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';'
- 138 case_separator: ':'
- 139 | ';'
+ 134 declare_statement: statement
+ 135 | ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
- 140 while_statement: statement
- 141 | ':' inner_statement_list "endwhile (T_ENDWHILE)" ';'
+ 136 declare_list: "identifier (T_STRING)" '=' static_scalar
+ 137 | declare_list ',' "identifier (T_STRING)" '=' static_scalar
- 142 elseif_list: /* empty */
+ 138 switch_case_list: '{' case_list '}'
+ 139 | '{' ';' case_list '}'
+ 140 | ':' case_list "endswitch (T_ENDSWITCH)" ';'
+ 141 | ':' ';' case_list "endswitch (T_ENDSWITCH)" ';'
- 143 @34: /* empty */
+ 142 case_list: /* empty */
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 statement
+ 143 $@35: /* empty */
- 145 new_elseif_list: /* empty */
+ 144 case_list: case_list "case (T_CASE)" expr case_separator $@35 inner_statement_list
- 146 @35: /* empty */
+ 145 $@36: /* empty */
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list
+ 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list
- 148 else_single: /* empty */
- 149 | "else (T_ELSE)" statement
+ 147 case_separator: ':'
+ 148 | ';'
- 150 new_else_single: /* empty */
- 151 | "else (T_ELSE)" ':' inner_statement_list
+ 149 while_statement: statement
+ 150 | ':' inner_statement_list "endwhile (T_ENDWHILE)" ';'
- 152 parameter_list: non_empty_parameter_list
- 153 | /* empty */
+ 151 elseif_list: /* empty */
- 154 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)"
- 155 | optional_class_type '&' "variable (T_VARIABLE)"
- 156 | optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 157 | optional_class_type "variable (T_VARIABLE)" '=' static_scalar
- 158 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)"
- 159 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)"
- 160 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 161 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar
+ 152 $@37: /* empty */
- 162 optional_class_type: /* empty */
- 163 | "array (T_ARRAY)"
- 164 | "callable (T_CALLABLE)"
- 165 | fully_qualified_class_name
+ 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement
- 166 function_call_parameter_list: non_empty_function_call_parameter_list
- 167 | /* empty */
+ 154 new_elseif_list: /* empty */
- 168 non_empty_function_call_parameter_list: expr_without_variable
- 169 | variable
- 170 | '&' w_variable
- 171 | non_empty_function_call_parameter_list ',' expr_without_variable
- 172 | non_empty_function_call_parameter_list ',' variable
- 173 | non_empty_function_call_parameter_list ',' '&' w_variable
+ 155 $@38: /* empty */
- 174 global_var_list: global_var_list ',' global_var
- 175 | global_var
+ 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 inner_statement_list
- 176 global_var: "variable (T_VARIABLE)"
- 177 | '$' r_variable
- 178 | '$' '{' expr '}'
+ 157 else_single: /* empty */
+ 158 | "else (T_ELSE)" statement
- 179 static_var_list: static_var_list ',' "variable (T_VARIABLE)"
- 180 | static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar
- 181 | "variable (T_VARIABLE)"
- 182 | "variable (T_VARIABLE)" '=' static_scalar
+ 159 new_else_single: /* empty */
+ 160 | "else (T_ELSE)" ':' inner_statement_list
- 183 class_statement_list: class_statement_list class_statement
- 184 | /* empty */
+ 161 parameter_list: non_empty_parameter_list
+ 162 | /* empty */
- 185 @36: /* 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
- 186 class_statement: variable_modifiers @36 class_variable_declaration ';'
- 187 | class_constant_declaration ';'
- 188 | trait_use_statement
+ 171 optional_class_type: /* empty */
+ 172 | "array (T_ARRAY)"
+ 173 | "callable (T_CALLABLE)"
+ 174 | fully_qualified_class_name
- 189 @37: /* empty */
+ 175 function_call_parameter_list: '(' ')'
+ 176 | '(' non_empty_function_call_parameter_list ')'
+ 177 | '(' yield_expr ')'
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 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
- 191 trait_use_statement: "use (T_USE)" trait_list trait_adaptations
+ 184 global_var_list: global_var_list ',' global_var
+ 185 | global_var
- 192 trait_list: fully_qualified_class_name
- 193 | trait_list ',' fully_qualified_class_name
+ 186 global_var: "variable (T_VARIABLE)"
+ 187 | '$' r_variable
+ 188 | '$' '{' expr '}'
- 194 trait_adaptations: ';'
- 195 | '{' trait_adaptation_list '}'
+ 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
- 196 trait_adaptation_list: /* empty */
- 197 | non_empty_trait_adaptation_list
+ 193 class_statement_list: class_statement_list class_statement
+ 194 | /* empty */
- 198 non_empty_trait_adaptation_list: trait_adaptation_statement
- 199 | non_empty_trait_adaptation_list trait_adaptation_statement
+ 195 $@39: /* empty */
- 200 trait_adaptation_statement: trait_precedence ';'
- 201 | trait_alias ';'
+ 196 class_statement: variable_modifiers $@39 class_variable_declaration ';'
+ 197 | class_constant_declaration ';'
+ 198 | trait_use_statement
- 202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list
+ 199 $@40: /* empty */
- 203 trait_reference_list: fully_qualified_class_name
- 204 | trait_reference_list ',' fully_qualified_class_name
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- 205 trait_method_reference: "identifier (T_STRING)"
- 206 | trait_method_reference_fully_qualified
+ 201 trait_use_statement: "use (T_USE)" trait_list trait_adaptations
- 207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 202 trait_list: fully_qualified_class_name
+ 203 | trait_list ',' fully_qualified_class_name
- 208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)"
- 209 | trait_method_reference "as (T_AS)" member_modifier
+ 204 trait_adaptations: ';'
+ 205 | '{' trait_adaptation_list '}'
- 210 trait_modifiers: /* empty */
- 211 | member_modifier
+ 206 trait_adaptation_list: /* empty */
+ 207 | non_empty_trait_adaptation_list
- 212 method_body: ';'
- 213 | '{' inner_statement_list '}'
+ 208 non_empty_trait_adaptation_list: trait_adaptation_statement
+ 209 | non_empty_trait_adaptation_list trait_adaptation_statement
- 214 variable_modifiers: non_empty_member_modifiers
- 215 | "var (T_VAR)"
+ 210 trait_adaptation_statement: trait_precedence ';'
+ 211 | trait_alias ';'
- 216 method_modifiers: /* empty */
- 217 | non_empty_member_modifiers
+ 212 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list
- 218 non_empty_member_modifiers: member_modifier
- 219 | non_empty_member_modifiers member_modifier
+ 213 trait_reference_list: fully_qualified_class_name
+ 214 | trait_reference_list ',' fully_qualified_class_name
- 220 member_modifier: "public (T_PUBLIC)"
- 221 | "protected (T_PROTECTED)"
- 222 | "private (T_PRIVATE)"
- 223 | "static (T_STATIC)"
- 224 | "abstract (T_ABSTRACT)"
- 225 | "final (T_FINAL)"
+ 215 trait_method_reference: "identifier (T_STRING)"
+ 216 | trait_method_reference_fully_qualified
- 226 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)"
- 227 | class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar
- 228 | "variable (T_VARIABLE)"
- 229 | "variable (T_VARIABLE)" '=' static_scalar
+ 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
- 231 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
+ 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)"
+ 219 | trait_method_reference "as (T_AS)" member_modifier
- 232 echo_expr_list: echo_expr_list ',' expr
- 233 | expr
+ 220 trait_modifiers: /* empty */
+ 221 | member_modifier
- 234 for_expr: /* empty */
- 235 | non_empty_for_expr
+ 222 method_body: ';'
+ 223 | '{' inner_statement_list '}'
- 236 @38: /* empty */
+ 224 variable_modifiers: non_empty_member_modifiers
+ 225 | "var (T_VAR)"
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr
- 238 | expr
+ 226 method_modifiers: /* empty */
+ 227 | non_empty_member_modifiers
- 239 chaining_method_or_property: chaining_method_or_property variable_property
- 240 | variable_property
+ 228 non_empty_member_modifiers: member_modifier
+ 229 | non_empty_member_modifiers member_modifier
- 241 chaining_dereference: chaining_dereference '[' dim_offset ']'
- 242 | '[' dim_offset ']'
+ 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)"
- 243 @39: /* empty */
+ 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
- 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property
- 245 | chaining_dereference
- 246 | chaining_method_or_property
+ 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
+ 241 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
- 247 instance_call: /* empty */
+ 242 echo_expr_list: echo_expr_list ',' expr
+ 243 | expr
- 248 @40: /* empty */
+ 244 for_expr: /* empty */
+ 245 | non_empty_for_expr
- 249 instance_call: @40 chaining_instance_call
+ 246 $@41: /* empty */
- 250 @41: /* empty */
+ 247 non_empty_for_expr: non_empty_for_expr ',' $@41 expr
+ 248 | expr
- 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments
+ 249 chaining_method_or_property: chaining_method_or_property variable_property
+ 250 | variable_property
- 252 @42: /* empty */
+ 251 chaining_dereference: chaining_dereference '[' dim_offset ']'
+ 252 | '[' dim_offset ']'
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr
- 254 | variable '=' expr
- 255 | variable '=' '&' variable
+ 253 $@42: /* empty */
- 256 @43: /* empty */
+ 254 chaining_instance_call: chaining_dereference $@42 chaining_method_or_property
+ 255 | chaining_dereference
+ 256 | chaining_method_or_property
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 258 | "clone (T_CLONE)" expr
- 259 | variable "+= (T_PLUS_EQUAL)" expr
- 260 | variable "-= (T_MINUS_EQUAL)" expr
- 261 | variable "*= (T_MUL_EQUAL)" expr
- 262 | variable "/= (T_DIV_EQUAL)" expr
- 263 | variable ".= (T_CONCAT_EQUAL)" expr
- 264 | variable "%= (T_MOD_EQUAL)" expr
- 265 | variable "&= (T_AND_EQUAL)" expr
- 266 | variable "|= (T_OR_EQUAL)" expr
- 267 | variable "^= (T_XOR_EQUAL)" expr
- 268 | variable "<<= (T_SL_EQUAL)" expr
- 269 | variable ">>= (T_SR_EQUAL)" expr
- 270 | rw_variable "++ (T_INC)"
- 271 | "++ (T_INC)" rw_variable
- 272 | rw_variable "-- (T_DEC)"
- 273 | "-- (T_DEC)" rw_variable
+ 257 instance_call: /* empty */
- 274 @44: /* empty */
+ 258 $@43: /* empty */
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 expr
+ 259 instance_call: $@43 chaining_instance_call
- 276 @45: /* empty */
+ 260 $@44: /* empty */
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 expr
+ 261 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments
- 278 @46: /* empty */
+ 262 $@45: /* empty */
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 expr
+ 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' expr
+ 264 | variable '=' expr
+ 265 | variable '=' '&' variable
- 280 @47: /* empty */
+ 266 $@46: /* empty */
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 expr
- 282 | expr "xor (T_LOGICAL_XOR)" expr
- 283 | expr '|' expr
- 284 | expr '&' expr
- 285 | expr '^' expr
- 286 | expr '.' expr
- 287 | expr '+' expr
- 288 | expr '-' expr
- 289 | expr '*' expr
- 290 | expr '/' expr
- 291 | expr '%' expr
- 292 | expr "<< (T_SL)" expr
- 293 | expr ">> (T_SR)" expr
- 294 | '+' expr
- 295 | '-' expr
- 296 | '!' expr
- 297 | '~' expr
- 298 | expr "=== (T_IS_IDENTICAL)" expr
- 299 | expr "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr "== (T_IS_EQUAL)" expr
- 301 | expr "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr '<' expr
- 303 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr '>' expr
- 305 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr "instanceof (T_INSTANCEOF)" class_name_reference
- 307 | '(' expr ')'
- 308 | new_expr
+ 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
- 309 @48: /* empty */
+ 284 $@47: /* empty */
- 310 expr_without_variable: '(' new_expr ')' @48 instance_call
+ 285 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@47 expr
- 311 @49: /* empty */
+ 286 $@48: /* empty */
- 312 @50: /* empty */
+ 287 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@48 expr
- 313 expr_without_variable: expr '?' @49 expr ':' @50 expr
+ 288 $@49: /* empty */
- 314 @51: /* empty */
+ 289 expr_without_variable: expr "or (T_LOGICAL_OR)" $@49 expr
- 315 expr_without_variable: expr '?' ':' @51 expr
- 316 | internal_functions_in_yacc
- 317 | "(int) (T_INT_CAST)" expr
- 318 | "(double) (T_DOUBLE_CAST)" expr
- 319 | "(string) (T_STRING_CAST)" expr
- 320 | "(array) (T_ARRAY_CAST)" expr
- 321 | "(object) (T_OBJECT_CAST)" expr
- 322 | "(bool) (T_BOOL_CAST)" expr
- 323 | "(unset) (T_UNSET_CAST)" expr
- 324 | "exit (T_EXIT)" exit_expr
+ 290 $@50: /* empty */
- 325 @52: /* 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
- 326 expr_without_variable: '@' @52 expr
- 327 | scalar
- 328 | "array (T_ARRAY)" '(' array_pair_list ')'
- 329 | '[' array_pair_list ']'
- 330 | '`' backticks_expr '`'
- 331 | "print (T_PRINT)" expr
+ 319 @51: /* empty */
- 332 @53: /* empty */
+ 320 expr_without_variable: '(' new_expr ')' @51 instance_call
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 321 $@52: /* empty */
- 334 @54: /* empty */
+ 322 $@53: /* empty */
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 323 expr_without_variable: expr '?' $@52 expr ':' $@53 expr
- 336 function: "function (T_FUNCTION)"
+ 324 $@54: /* empty */
- 337 lexical_vars: /* empty */
- 338 | "use (T_USE)" '(' lexical_var_list ')'
+ 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
- 339 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)"
- 340 | lexical_var_list ',' '&' "variable (T_VARIABLE)"
- 341 | "variable (T_VARIABLE)"
- 342 | '&' "variable (T_VARIABLE)"
+ 335 $@55: /* empty */
- 343 @55: /* empty */
+ 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)"
- 344 function_call: namespace_name '(' @55 function_call_parameter_list ')'
+ 343 @56: /* empty */
- 345 @56: /* empty */
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
+ 345 @57: /* empty */
- 347 @57: /* empty */
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')'
+ 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 @58: /* 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 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
+ 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')'
+ 355 | '[' array_pair_list ']'
- 351 @59: /* empty */
+ 356 function: "function (T_FUNCTION)"
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
+ 357 lexical_vars: /* empty */
+ 358 | "use (T_USE)" '(' lexical_var_list ')'
- 353 @60: /* 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)"
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
+ 363 @58: /* empty */
- 355 @61: /* empty */
+ 364 function_call: namespace_name @58 function_call_parameter_list
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
+ 365 @59: /* empty */
- 357 @62: /* empty */
+ 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_list
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')'
+ 367 @60: /* empty */
- 359 class_name: "static (T_STATIC)"
- 360 | namespace_name
- 361 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 362 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list
- 363 fully_qualified_class_name: namespace_name
- 364 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 365 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 369 @61: /* empty */
- 366 class_name_reference: class_name
- 367 | dynamic_class_name_reference
+ 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list
- 368 @63: /* empty */
+ 371 $@62: /* empty */
- 369 @64: /* empty */
+ 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties
- 371 | base_variable
+ 373 $@63: /* empty */
- 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
- 373 | /* empty */
+ 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list
- 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property
+ 375 $@64: /* empty */
- 375 exit_expr: /* empty */
- 376 | '(' ')'
- 377 | '(' expr ')'
+ 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list
- 378 backticks_expr: /* empty */
- 379 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- 380 | encaps_list
+ 377 $@65: /* empty */
- 381 ctor_arguments: /* empty */
- 382 | '(' function_call_parameter_list ')'
+ 378 function_call: variable_without_objects $@65 function_call_parameter_list
- 383 common_scalar: "integer number (T_LNUMBER)"
- 384 | "floating-point number (T_DNUMBER)"
- 385 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)"
- 386 | "__LINE__ (T_LINE)"
- 387 | "__FILE__ (T_FILE)"
- 388 | "__DIR__ (T_DIR)"
- 389 | "__TRAIT__ (T_TRAIT_C)"
- 390 | "__METHOD__ (T_METHOD_C)"
- 391 | "__FUNCTION__ (T_FUNC_C)"
- 392 | "__NAMESPACE__ (T_NS_C)"
- 393 | "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 394 | "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)"
+ 379 class_name: "static (T_STATIC)"
+ 380 | namespace_name
+ 381 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 382 | "\\ (T_NS_SEPARATOR)" namespace_name
- 395 static_scalar: common_scalar
- 396 | namespace_name
- 397 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 398 | "\\ (T_NS_SEPARATOR)" namespace_name
- 399 | '+' static_scalar
- 400 | '-' static_scalar
- 401 | "array (T_ARRAY)" '(' static_array_pair_list ')'
- 402 | '[' static_array_pair_list ']'
- 403 | static_class_constant
- 404 | "__CLASS__ (T_CLASS_C)"
+ 383 fully_qualified_class_name: namespace_name
+ 384 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 385 | "\\ (T_NS_SEPARATOR)" namespace_name
- 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 386 class_name_reference: class_name
+ 387 | dynamic_class_name_reference
- 406 scalar: "variable name (T_STRING_VARNAME)"
- 407 | class_constant
- 408 | namespace_name
- 409 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
- 410 | "\\ (T_NS_SEPARATOR)" namespace_name
- 411 | common_scalar
- 412 | '"' encaps_list '"'
- 413 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)"
- 414 | "__CLASS__ (T_CLASS_C)"
+ 388 $@66: /* empty */
- 415 static_array_pair_list: /* empty */
- 416 | non_empty_static_array_pair_list possible_comma
+ 389 $@67: /* empty */
- 417 possible_comma: /* empty */
- 418 | ','
+ 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 dynamic_class_name_variable_properties
+ 391 | base_variable
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 420 | non_empty_static_array_pair_list ',' static_scalar
- 421 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 422 | static_scalar
+ 392 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
+ 393 | /* empty */
- 423 expr: r_variable
- 424 | expr_without_variable
+ 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property
- 425 r_variable: variable
+ 395 exit_expr: /* empty */
+ 396 | '(' ')'
+ 397 | parenthesis_expr
- 426 w_variable: variable
+ 398 backticks_expr: /* empty */
+ 399 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 400 | encaps_list
- 427 rw_variable: variable
+ 401 ctor_arguments: /* empty */
+ 402 | function_call_parameter_list
- 428 @65: /* 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)"
- 429 @66: /* empty */
+ 415 static_scalar: common_scalar
+ 416 | namespace_name
+ 417 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 418 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 419 | '+' static_scalar
+ 420 | '-' static_scalar
+ 421 | "array (T_ARRAY)" '(' static_array_pair_list ')'
+ 422 | '[' static_array_pair_list ']'
+ 423 | static_class_constant
+ 424 | "__CLASS__ (T_CLASS_C)"
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties
- 431 | base_variable_with_function_calls
+ 425 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 432 variable_properties: variable_properties variable_property
- 433 | /* empty */
+ 426 scalar: "variable name (T_STRING_VARNAME)"
+ 427 | class_constant
+ 428 | namespace_name
+ 429 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name
+ 430 | "\\ (T_NS_SEPARATOR)" namespace_name
+ 431 | common_scalar
+ 432 | '"' encaps_list '"'
+ 433 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)"
+ 434 | "__CLASS__ (T_CLASS_C)"
- 434 @67: /* empty */
+ 435 static_array_pair_list: /* empty */
+ 436 | non_empty_static_array_pair_list possible_comma
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not
+ 437 possible_comma: /* empty */
+ 438 | ','
- 436 array_method_dereference: array_method_dereference '[' dim_offset ']'
- 437 | method '[' dim_offset ']'
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 440 | non_empty_static_array_pair_list ',' static_scalar
+ 441 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 442 | static_scalar
- 438 @68: /* empty */
+ 443 expr: r_variable
+ 444 | expr_without_variable
- 439 method: '(' @68 function_call_parameter_list ')'
+ 445 parenthesis_expr: '(' expr ')'
+ 446 | '(' yield_expr ')'
- 440 method_or_not: method
- 441 | array_method_dereference
- 442 | /* empty */
+ 447 r_variable: variable
- 443 variable_without_objects: reference_variable
- 444 | simple_indirect_reference reference_variable
+ 448 w_variable: variable
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 446 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 449 rw_variable: variable
- 447 variable_class_name: reference_variable
+ 450 $@68: /* empty */
- 448 array_function_dereference: array_function_dereference '[' dim_offset ']'
+ 451 $@69: /* empty */
- 449 @69: /* empty */
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
+ 453 | base_variable_with_function_calls
- 450 array_function_dereference: function_call @69 '[' dim_offset ']'
+ 454 variable_properties: variable_properties variable_property
+ 455 | /* empty */
- 451 base_variable_with_function_calls: base_variable
- 452 | array_function_dereference
- 453 | function_call
+ 456 $@70: /* empty */
- 454 base_variable: reference_variable
- 455 | simple_indirect_reference reference_variable
- 456 | static_member
+ 457 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not
- 457 reference_variable: reference_variable '[' dim_offset ']'
- 458 | reference_variable '{' expr '}'
- 459 | compound_variable
+ 458 array_method_dereference: array_method_dereference '[' dim_offset ']'
+ 459 | method '[' dim_offset ']'
- 460 compound_variable: "variable (T_VARIABLE)"
- 461 | '$' '{' expr '}'
+ 460 @71: /* empty */
- 462 dim_offset: /* empty */
- 463 | expr
+ 461 method: @71 function_call_parameter_list
- 464 object_property: object_dim_list
+ 462 method_or_not: method
+ 463 | array_method_dereference
+ 464 | /* empty */
- 465 @70: /* empty */
+ 465 variable_without_objects: reference_variable
+ 466 | simple_indirect_reference reference_variable
- 466 object_property: variable_without_objects @70
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 468 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 467 object_dim_list: object_dim_list '[' dim_offset ']'
- 468 | object_dim_list '{' expr '}'
- 469 | variable_name
+ 469 variable_class_name: reference_variable
- 470 variable_name: "identifier (T_STRING)"
- 471 | '{' expr '}'
+ 470 array_function_dereference: array_function_dereference '[' dim_offset ']'
- 472 simple_indirect_reference: '$'
- 473 | simple_indirect_reference '$'
+ 471 $@72: /* empty */
- 474 assignment_list: assignment_list ',' assignment_list_element
- 475 | assignment_list_element
+ 472 array_function_dereference: function_call $@72 '[' dim_offset ']'
- 476 assignment_list_element: variable
+ 473 base_variable_with_function_calls: base_variable
+ 474 | array_function_dereference
+ 475 | function_call
- 477 @71: /* empty */
+ 476 base_variable: reference_variable
+ 477 | simple_indirect_reference reference_variable
+ 478 | static_member
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')'
- 479 | /* empty */
+ 479 reference_variable: reference_variable '[' dim_offset ']'
+ 480 | reference_variable '{' expr '}'
+ 481 | compound_variable
- 480 array_pair_list: /* empty */
- 481 | non_empty_array_pair_list possible_comma
+ 482 compound_variable: "variable (T_VARIABLE)"
+ 483 | '$' '{' expr '}'
- 482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr
- 483 | non_empty_array_pair_list ',' expr
- 484 | expr "=> (T_DOUBLE_ARROW)" expr
- 485 | expr
- 486 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 487 | non_empty_array_pair_list ',' '&' w_variable
- 488 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 489 | '&' w_variable
+ 484 dim_offset: /* empty */
+ 485 | expr
- 490 encaps_list: encaps_list encaps_var
- 491 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- 492 | encaps_var
- 493 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var
+ 486 object_property: object_dim_list
- 494 encaps_var: "variable (T_VARIABLE)"
+ 487 $@73: /* empty */
- 495 @72: /* empty */
+ 488 object_property: variable_without_objects $@73
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']'
- 497 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
- 498 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}'
- 499 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
- 500 | "{$ (T_CURLY_OPEN)" variable '}'
+ 489 object_dim_list: object_dim_list '[' dim_offset ']'
+ 490 | object_dim_list '{' expr '}'
+ 491 | variable_name
- 501 encaps_var_offset: "identifier (T_STRING)"
- 502 | "number (T_NUM_STRING)"
- 503 | "variable (T_VARIABLE)"
+ 492 variable_name: "identifier (T_STRING)"
+ 493 | '{' expr '}'
- 504 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')'
- 505 | "empty (T_EMPTY)" '(' variable ')'
- 506 | "include (T_INCLUDE)" expr
- 507 | "include_once (T_INCLUDE_ONCE)" expr
- 508 | "eval (T_EVAL)" '(' expr ')'
- 509 | "require (T_REQUIRE)" expr
- 510 | "require_once (T_REQUIRE_ONCE)" expr
+ 494 simple_indirect_reference: '$'
+ 495 | simple_indirect_reference '$'
- 511 isset_variables: variable
+ 496 assignment_list: assignment_list ',' assignment_list_element
+ 497 | assignment_list_element
- 512 @73: /* empty */
+ 498 assignment_list_element: variable
- 513 isset_variables: isset_variables ',' @73 variable
+ 499 $@74: /* empty */
- 514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- 515 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 500 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')'
+ 501 | /* empty */
+
+ 502 array_pair_list: /* empty */
+ 503 | non_empty_array_pair_list possible_comma
+
+ 504 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr
+ 505 | non_empty_array_pair_list ',' expr
+ 506 | expr "=> (T_DOUBLE_ARROW)" expr
+ 507 | expr
+ 508 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 509 | non_empty_array_pair_list ',' '&' w_variable
+ 510 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 511 | '&' w_variable
+
+ 512 encaps_list: encaps_list encaps_var
+ 513 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 514 | encaps_var
+ 515 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var
+
+ 516 encaps_var: "variable (T_VARIABLE)"
+
+ 517 $@75: /* empty */
+
+ 518 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']'
+ 519 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
+ 520 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}'
+ 521 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
+ 522 | "{$ (T_CURLY_OPEN)" variable '}'
+
+ 523 encaps_var_offset: "identifier (T_STRING)"
+ 524 | "number (T_NUM_STRING)"
+ 525 | "variable (T_VARIABLE)"
+
+ 526 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')'
+ 527 | "empty (T_EMPTY)" '(' variable ')'
+ 528 | "empty (T_EMPTY)" '(' expr_without_variable ')'
+ 529 | "include (T_INCLUDE)" expr
+ 530 | "include_once (T_INCLUDE_ONCE)" expr
+ 531 | "eval (T_EVAL)" '(' expr ')'
+ 532 | "require (T_REQUIRE)" expr
+ 533 | "require_once (T_REQUIRE_ONCE)" expr
+
+ 534 isset_variables: isset_variable
+
+ 535 $@76: /* empty */
+
+ 536 isset_variables: isset_variables ',' $@76 isset_variable
+
+ 537 isset_variable: variable
+ 538 | expr_without_variable
+
+ 539 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 540 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
Terminals, with rules where they appear
"end of file" (0) 0
-'!' (33) 296
-'"' (34) 412
-'$' (36) 177 178 461 472 473
-'%' (37) 291
-'&' (38) 97 120 155 156 159 160 170 173 255 257 284 340 342 486 487
- 488 489
-'(' (40) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 253
- 307 310 328 333 335 338 344 346 348 350 352 354 356 358 376 377
- 382 401 439 478 504 505 508
-')' (41) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 253
- 307 310 328 333 335 338 344 346 348 350 352 354 356 358 376 377
- 382 401 439 478 504 505 508
-'*' (42) 289
-'+' (43) 287 294 399
-',' (44) 18 24 92 116 128 158 159 160 161 171 172 173 174 179 180 193
- 204 226 227 230 232 237 339 340 418 419 420 474 482 483 486 487
- 513
-'-' (45) 288 295 400
-'.' (46) 286
-'/' (47) 290
-':' (58) 34 41 122 124 126 131 132 138 141 147 151 313 315
-';' (59) 10 11 16 17 32 41 47 51 54 55 56 57 58 59 60 61 62 63 65 66
- 75 82 83 122 124 126 130 131 132 139 141 186 187 194 200 201 212
-'<' (60) 302
-'=' (61) 24 25 127 128 156 157 160 161 180 182 227 229 230 231 253
- 254 255 257
-'>' (62) 304
-'?' (63) 313 315
-'@' (64) 326
-'[' (91) 241 242 329 402 436 437 448 450 457 467 496 499
-']' (93) 241 242 329 402 436 437 448 450 457 467 496 499
-'^' (94) 285
-'`' (96) 330
-'{' (123) 13 15 35 81 90 99 101 103 129 130 178 195 213 333 335 458
- 461 468 471
-'|' (124) 283
-'}' (125) 13 15 35 81 90 99 101 103 129 130 178 195 213 333 335 458
- 461 468 471 498 499 500
-'~' (126) 297
+'!' (33) 306
+'"' (34) 432
+'$' (36) 187 188 483 494 495
+'%' (37) 301
+'&' (38) 104 127 164 165 168 169 180 183 265 267 294 360 362 508 509
+ 510 511
+'(' (40) 10 32 51 67 70 73 75 87 97 106 129 175 176 177 200 263 320
+ 344 346 354 358 396 421 445 446 500 526 527 528 531
+')' (41) 10 32 51 67 70 73 75 87 97 106 129 175 176 177 200 263 320
+ 344 346 354 358 396 421 445 446 500 526 527 528 531
+'*' (42) 299
+'+' (43) 297 304 419
+',' (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 438 439 440 496 504 505 508 509
+ 536
+'-' (45) 298 305 420
+'.' (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 422 458 459 470 472 479 489 518 521
+']' (93) 251 252 351 352 353 355 422 458 459 470 472 479 489 518 521
+'^' (94) 295
+'`' (96) 340
+'{' (123) 13 15 35 79 87 90 97 106 108 110 138 139 188 205 223 344
+ 346 480 483 490 493
+'|' (124) 293
+'}' (125) 13 15 35 79 87 90 97 106 108 110 138 139 188 205 223 344
+ 346 480 483 490 493 520 521 522
+'~' (126) 307
error (256)
-"require_once (T_REQUIRE_ONCE)" (258) 510
-"require (T_REQUIRE)" (259) 509
-"eval (T_EVAL)" (260) 508
-"include_once (T_INCLUDE_ONCE)" (261) 507
-"include (T_INCLUDE)" (262) 506
-"or (T_LOGICAL_OR)" (263) 279
-"xor (T_LOGICAL_XOR)" (264) 282
-"and (T_LOGICAL_AND)" (265) 281
-"print (T_PRINT)" (266) 331
-">>= (T_SR_EQUAL)" (267) 269
-"<<= (T_SL_EQUAL)" (268) 268
-"^= (T_XOR_EQUAL)" (269) 267
-"|= (T_OR_EQUAL)" (270) 266
-"&= (T_AND_EQUAL)" (271) 265
-"%= (T_MOD_EQUAL)" (272) 264
-".= (T_CONCAT_EQUAL)" (273) 263
-"/= (T_DIV_EQUAL)" (274) 262
-"*= (T_MUL_EQUAL)" (275) 261
-"-= (T_MINUS_EQUAL)" (276) 260
-"+= (T_PLUS_EQUAL)" (277) 259
-"|| (T_BOOLEAN_OR)" (278) 275
-"&& (T_BOOLEAN_AND)" (279) 277
-"!== (T_IS_NOT_IDENTICAL)" (280) 299
-"=== (T_IS_IDENTICAL)" (281) 298
-"!= (T_IS_NOT_EQUAL)" (282) 301
-"== (T_IS_EQUAL)" (283) 300
-">= (T_IS_GREATER_OR_EQUAL)" (284) 305
-"<= (T_IS_SMALLER_OR_EQUAL)" (285) 303
-">> (T_SR)" (286) 293
-"<< (T_SL)" (287) 292
-"instanceof (T_INSTANCEOF)" (288) 306
-"(unset) (T_UNSET_CAST)" (289) 323
-"(bool) (T_BOOL_CAST)" (290) 322
-"(object) (T_OBJECT_CAST)" (291) 321
-"(array) (T_ARRAY_CAST)" (292) 320
-"(string) (T_STRING_CAST)" (293) 319
-"(double) (T_DOUBLE_CAST)" (294) 318
-"(int) (T_INT_CAST)" (295) 317
-"-- (T_DEC)" (296) 272 273
-"++ (T_INC)" (297) 270 271
-"clone (T_CLONE)" (298) 258
-"new (T_NEW)" (299) 251 257
-"exit (T_EXIT)" (300) 324
-"if (T_IF)" (301) 38 41
-"elseif (T_ELSEIF)" (302) 144 147
-"else (T_ELSE)" (303) 149 151
-"endif (T_ENDIF)" (304) 41
-"integer number (T_LNUMBER)" (305) 383
-"floating-point number (T_DNUMBER)" (306) 384
-"identifier (T_STRING)" (307) 5 6 21 23 24 25 34 83 99 101 103 127
- 128 190 205 207 208 230 231 405 470 497 501 514 515
-"variable name (T_STRING_VARNAME)" (308) 406 499
-"variable (T_VARIABLE)" (309) 81 90 154 155 156 157 158 159 160 161
- 176 179 180 181 182 226 227 228 229 339 340 341 342 460 494 496
- 497 503
-"number (T_NUM_STRING)" (310) 502
-T_INLINE_HTML (311) 64
-T_CHARACTER (312)
-T_BAD_CHARACTER (313)
-"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- (314) 379 393 491 493
-"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (315) 385
-"echo (T_ECHO)" (316) 63
-"do (T_DO)" (317) 47
-"while (T_WHILE)" (318) 44 47
-"endwhile (T_ENDWHILE)" (319) 141
-"for (T_FOR)" (320) 51
-"endfor (T_ENDFOR)" (321) 122
-"foreach (T_FOREACH)" (322) 69 72
-"endforeach (T_ENDFOREACH)" (323) 124
-"declare (T_DECLARE)" (324) 74
-"enddeclare (T_ENDDECLARE)" (325) 126
-"as (T_AS)" (326) 21 23 69 72 208 209
-"switch (T_SWITCH)" (327) 53
-"endswitch (T_ENDSWITCH)" (328) 131 132
-"case (T_CASE)" (329) 135
-"default (T_DEFAULT)" (330) 137
-"break (T_BREAK)" (331) 54 55
-"continue (T_CONTINUE)" (332) 56 57
-"goto (T_GOTO)" (333) 83
-"function (T_FUNCTION)" (334) 336
-"const (T_CONST)" (335) 25 231
-"return (T_RETURN)" (336) 58 59 60
-"try (T_TRY)" (337) 81
-"catch (T_CATCH)" (338) 81 90
-"throw (T_THROW)" (339) 82
-"use (T_USE)" (340) 16 191 338
-"insteadof (T_INSTEADOF)" (341) 202
-"global (T_GLOBAL)" (342) 61
-"public (T_PUBLIC)" (343) 220
-"protected (T_PROTECTED)" (344) 221
-"private (T_PRIVATE)" (345) 222
-"final (T_FINAL)" (346) 107 225
-"abstract (T_ABSTRACT)" (347) 105 224
-"static (T_STATIC)" (348) 62 223 335 359
-"var (T_VAR)" (349) 215
-"unset (T_UNSET)" (350) 66
-"isset (T_ISSET)" (351) 504
-"empty (T_EMPTY)" (352) 505
-"__halt_compiler (T_HALT_COMPILER)" (353) 10 32
-"class (T_CLASS)" (354) 104 105 107
-"trait (T_TRAIT)" (355) 106
-"interface (T_INTERFACE)" (356) 110
-"extends (T_EXTENDS)" (357) 109 112
-"implements (T_IMPLEMENTS)" (358) 114
-"-> (T_OBJECT_OPERATOR)" (359) 370 374 430 435 497
-"=> (T_DOUBLE_ARROW)" (360) 118 419 421 482 484 486 488
-"list (T_LIST)" (361) 253 478
-"array (T_ARRAY)" (362) 163 328 401
-"callable (T_CALLABLE)" (363) 164
-"__CLASS__ (T_CLASS_C)" (364) 404 414
-"__TRAIT__ (T_TRAIT_C)" (365) 389
-"__METHOD__ (T_METHOD_C)" (366) 390
-"__FUNCTION__ (T_FUNC_C)" (367) 391
-"__LINE__ (T_LINE)" (368) 386
-"__FILE__ (T_FILE)" (369) 387
-"comment (T_COMMENT)" (370)
-"doc comment (T_DOC_COMMENT)" (371)
-"open tag (T_OPEN_TAG)" (372)
-"open tag with echo (T_OPEN_TAG_WITH_ECHO)" (373)
-"close tag (T_CLOSE_TAG)" (374)
-"whitespace (T_WHITESPACE)" (375)
-"heredoc start (T_START_HEREDOC)" (376) 393 394 413
-"heredoc end (T_END_HEREDOC)" (377) 393 394 413
-"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (378) 498 499
-"{$ (T_CURLY_OPEN)" (379) 500
-":: (T_PAAMAYIM_NEKUDOTAYIM)" (380) 207 350 352 354 356 405 445 446
- 514 515
-"namespace (T_NAMESPACE)" (381) 11 13 15 346 361 364 397 409
-"__NAMESPACE__ (T_NS_C)" (382) 392
-"__DIR__ (T_DIR)" (383) 388
-"\\ (T_NS_SEPARATOR)" (384) 6 22 23 346 348 361 362 364 365 397 398
- 409 410
+"require_once (T_REQUIRE_ONCE)" (258) 533
+"require (T_REQUIRE)" (259) 532
+"eval (T_EVAL)" (260) 531
+"include_once (T_INCLUDE_ONCE)" (261) 530
+"include (T_INCLUDE)" (262) 529
+"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 425 492 519 523 539 540
+"variable name (T_STRING_VARNAME)" (309) 426 521
+"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 482 516 518
+ 519 525
+"number (T_NUM_STRING)" (311) 524
+T_INLINE_HTML (312) 65
+T_CHARACTER (313)
+T_BAD_CHARACTER (314)
+"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" (315) 399
+ 413 513 515
+"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) 526
+"empty (T_EMPTY)" (354) 527 528
+"__halt_compiler (T_HALT_COMPILER)" (355) 10 32
+"class (T_CLASS)" (356) 111 112 114
+"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 452 457 519
+"=> (T_DOUBLE_ARROW)" (362) 125 349 350 439 441 504 506 508 510
+"list (T_LIST)" (363) 129 263 500
+"array (T_ARRAY)" (364) 172 354 421
+"callable (T_CALLABLE)" (365) 173
+"__CLASS__ (T_CLASS_C)" (366) 424 434
+"__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
+"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 433
+"heredoc end (T_END_HEREDOC)" (379) 413 414 433
+"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (380) 520 521
+"{$ (T_CURLY_OPEN)" (381) 522
+":: (T_PAAMAYIM_NEKUDOTAYIM)" (382) 217 370 372 374 376 425 467 468
+ 539 540
+"namespace (T_NAMESPACE)" (383) 11 13 15 366 381 384 417 429
+"__NAMESPACE__ (T_NS_C)" (384) 412
+"__DIR__ (T_DIR)" (385) 408
+"\\ (T_NS_SEPARATOR)" (386) 6 22 23 366 368 381 382 384 385 417 418
+ 429 430
Nonterminals, with rules where they appear
-$accept (158)
+$accept (160)
on left: 0
-start (159)
+start (161)
on left: 1, on right: 0
-top_statement_list (160)
+top_statement_list (162)
on left: 3 4, on right: 1 3 13 15
-@1 (161)
+$@1 (163)
on left: 2, on right: 3
-namespace_name (162)
- on left: 5 6, on right: 6 11 13 20 21 22 23 344 346 348 360 361
- 362 363 364 365 396 397 398 408 409 410
-top_statement (163)
+namespace_name (164)
+ on left: 5 6, on right: 6 11 13 20 21 22 23 364 366 368 380 381
+ 382 383 384 385 416 417 418 428 429 430
+top_statement (165)
on left: 7 8 9 10 11 13 15 16 17, on right: 3
-@2 (164)
+$@2 (166)
on left: 12, on right: 13
-@3 (165)
+$@3 (167)
on left: 14, on right: 15
-use_declarations (166)
+use_declarations (168)
on left: 18 19, on right: 16 18
-use_declaration (167)
+use_declaration (169)
on left: 20 21 22 23, on right: 18 19
-constant_declaration (168)
+constant_declaration (170)
on left: 24 25, on right: 17 24
-inner_statement_list (169)
- on left: 27 28, on right: 27 35 41 81 90 99 122 124 126 135 137
- 141 147 151 213 333 335
-@4 (170)
+inner_statement_list (171)
+ on left: 27 28, on right: 27 35 41 79 87 90 97 106 131 133 135
+ 144 146 150 156 160 223 344 346
+$@4 (172)
on left: 26, on right: 27
-inner_statement (171)
+inner_statement (173)
on left: 29 30 31 32, on right: 27
-statement (172)
- on left: 33 34, on right: 7 29 38 47 121 123 125 140 144 149
-unticked_statement (173)
+statement (174)
+ on left: 33 34, on right: 7 29 38 47 130 132 134 149 153 158
+unticked_statement (175)
on left: 35 38 41 44 47 51 53 54 55 56 57 58 59 60 61 62 63 64
- 65 66 69 72 74 75 81 82 83, on right: 33
-@5 (174)
+ 65 66 67 70 73 75 76 79 80 81, on right: 33
+$@5 (176)
on left: 36, on right: 38
-@6 (175)
+$@6 (177)
on left: 37, on right: 38
-@7 (176)
+$@7 (178)
on left: 39, on right: 41
-@8 (177)
+$@8 (179)
on left: 40, on right: 41
-@9 (178)
+$@9 (180)
on left: 42, on right: 44
-@10 (179)
+@10 (181)
on left: 43, on right: 44
-@11 (180)
+$@11 (182)
on left: 45, on right: 47
-@12 (181)
+$@12 (183)
on left: 46, on right: 47
-@13 (182)
+$@13 (184)
on left: 48, on right: 51
-@14 (183)
+$@14 (185)
on left: 49, on right: 51
-@15 (184)
+$@15 (186)
on left: 50, on right: 51
-@16 (185)
+$@16 (187)
on left: 52, on right: 53
-@17 (186)
- on left: 67, on right: 69
-@18 (187)
- on left: 68, on right: 69
-@19 (188)
- on left: 70, on right: 72
-@20 (189)
- on left: 71, on right: 72
-@21 (190)
- on left: 73, on right: 74
-@22 (191)
- on left: 76, on right: 81
-@23 (192)
- on left: 77, on right: 81
-@24 (193)
- on left: 78, on right: 81
-@25 (194)
- on left: 79, on right: 81
-@26 (195)
- on left: 80, on right: 81
-additional_catches (196)
- on left: 84 85, on right: 81
-non_empty_additional_catches (197)
- on left: 86 87, on right: 84 87
-additional_catch (198)
- on left: 90, on right: 86 87
-@27 (199)
- on left: 88, on right: 90
-@28 (200)
+$@17 (188)
+ on left: 68, on right: 70
+$@18 (189)
+ on left: 69, on right: 70
+$@19 (190)
+ on left: 71, on right: 73
+$@20 (191)
+ on left: 72, on right: 73
+$@21 (192)
+ on left: 74, on right: 75
+$@22 (193)
+ on left: 77, on right: 79
+$@23 (194)
+ on left: 78, on right: 79
+catch_statement (195)
+ on left: 82 87, on right: 79
+$@24 (196)
+ on left: 83, on right: 87
+$@25 (197)
+ on left: 84, on right: 87
+$@26 (198)
+ on left: 85, on right: 87
+$@27 (199)
+ on left: 86, on right: 87
+finally_statement (200)
+ on left: 88 90, on right: 79
+$@28 (201)
on left: 89, on right: 90
-unset_variables (201)
- on left: 91 92, on right: 66 92
-unset_variable (202)
- on left: 93, on right: 91 92
-function_declaration_statement (203)
- on left: 94, on right: 8 30
-class_declaration_statement (204)
- on left: 95, on right: 9 31
-is_reference (205)
- on left: 96 97, on right: 99 190 333 335
-unticked_function_declaration_statement (206)
- on left: 99, on right: 94
-@29 (207)
- on left: 98, on right: 99
-unticked_class_declaration_statement (208)
- on left: 101 103, on right: 95
-@30 (209)
- on left: 100, on right: 101
-@31 (210)
- on left: 102, on right: 103
-class_entry_type (211)
- on left: 104 105 106 107, on right: 101
-extends_from (212)
- on left: 108 109, on right: 101
-interface_entry (213)
- on left: 110, on right: 103
-interface_extends_list (214)
- on left: 111 112, on right: 103
-implements_list (215)
- on left: 113 114, on right: 101
-interface_list (216)
- on left: 115 116, on right: 112 114 116
-foreach_optional_arg (217)
- on left: 117 118, on right: 69 72
-foreach_variable (218)
- on left: 119 120, on right: 69 118
-for_statement (219)
- on left: 121 122, on right: 51
-foreach_statement (220)
- on left: 123 124, on right: 69 72
-declare_statement (221)
- on left: 125 126, on right: 74
-declare_list (222)
- on left: 127 128, on right: 74 128
-switch_case_list (223)
- on left: 129 130 131 132, on right: 53
-case_list (224)
- on left: 133 135 137, on right: 129 130 131 132 135 137
-@32 (225)
- on left: 134, on right: 135
-@33 (226)
- on left: 136, on right: 137
-case_separator (227)
- on left: 138 139, on right: 135 137
-while_statement (228)
- on left: 140 141, on right: 44
-elseif_list (229)
- on left: 142 144, on right: 38 144
-@34 (230)
+additional_catches (202)
+ on left: 91 92, on right: 87
+non_empty_additional_catches (203)
+ on left: 93 94, on right: 91 94
+additional_catch (204)
+ on left: 97, on right: 93 94
+@29 (205)
+ on left: 95, on right: 97
+$@30 (206)
+ on left: 96, on right: 97
+unset_variables (207)
+ on left: 98 99, on right: 67 99
+unset_variable (208)
+ on left: 100, on right: 98 99
+function_declaration_statement (209)
+ on left: 101, on right: 8 30
+class_declaration_statement (210)
+ on left: 102, on right: 9 31
+is_reference (211)
+ on left: 103 104, on right: 106 200 344 346
+unticked_function_declaration_statement (212)
+ on left: 106, on right: 101
+$@31 (213)
+ on left: 105, on right: 106
+unticked_class_declaration_statement (214)
+ on left: 108 110, on right: 102
+$@32 (215)
+ on left: 107, on right: 108
+$@33 (216)
+ on left: 109, on right: 110
+class_entry_type (217)
+ on left: 111 112 113 114, on right: 108
+extends_from (218)
+ on left: 115 116, on right: 108
+interface_entry (219)
+ on left: 117, on right: 110
+interface_extends_list (220)
+ on left: 118 119, on right: 110
+implements_list (221)
+ on left: 120 121, on right: 108
+interface_list (222)
+ on left: 122 123, on right: 119 121 123
+foreach_optional_arg (223)
+ on left: 124 125, on right: 70 73
+foreach_variable (224)
+ on left: 126 127 129, on right: 70 73 125
+$@34 (225)
+ on left: 128, on right: 129
+for_statement (226)
+ on left: 130 131, on right: 51
+foreach_statement (227)
+ on left: 132 133, on right: 70 73
+declare_statement (228)
+ on left: 134 135, on right: 75
+declare_list (229)
+ on left: 136 137, on right: 75 137
+switch_case_list (230)
+ on left: 138 139 140 141, on right: 53
+case_list (231)
+ on left: 142 144 146, on right: 138 139 140 141 144 146
+$@35 (232)
on left: 143, on right: 144
-new_elseif_list (231)
- on left: 145 147, on right: 41 147
-@35 (232)
- on left: 146, on right: 147
-else_single (233)
- on left: 148 149, on right: 38
-new_else_single (234)
- on left: 150 151, on right: 41
-parameter_list (235)
- on left: 152 153, on right: 99 190 333 335
-non_empty_parameter_list (236)
- on left: 154 155 156 157 158 159 160 161, on right: 152 158 159
- 160 161
-optional_class_type (237)
- on left: 162 163 164 165, on right: 154 155 156 157 158 159 160
- 161
-function_call_parameter_list (238)
- on left: 166 167, on right: 344 346 348 350 352 354 356 358 382
- 439
-non_empty_function_call_parameter_list (239)
- on left: 168 169 170 171 172 173, on right: 166 171 172 173
-global_var_list (240)
- on left: 174 175, on right: 61 174
-global_var (241)
- on left: 176 177 178, on right: 174 175
-static_var_list (242)
- on left: 179 180 181 182, on right: 62 179 180
-class_statement_list (243)
- on left: 183 184, on right: 101 103 183
-class_statement (244)
- on left: 186 187 188 190, on right: 183
-@36 (245)
- on left: 185, on right: 186
-@37 (246)
- on left: 189, on right: 190
-trait_use_statement (247)
- on left: 191, on right: 188
-trait_list (248)
- on left: 192 193, on right: 191 193
-trait_adaptations (249)
- on left: 194 195, on right: 191
-trait_adaptation_list (250)
- on left: 196 197, on right: 195
-non_empty_trait_adaptation_list (251)
- on left: 198 199, on right: 197 199
-trait_adaptation_statement (252)
- on left: 200 201, on right: 198 199
-trait_precedence (253)
- on left: 202, on right: 200
-trait_reference_list (254)
- on left: 203 204, on right: 202 204
-trait_method_reference (255)
- on left: 205 206, on right: 208 209
-trait_method_reference_fully_qualified (256)
- on left: 207, on right: 202 206
-trait_alias (257)
- on left: 208 209, on right: 201
-trait_modifiers (258)
- on left: 210 211, on right: 208
-method_body (259)
- on left: 212 213, on right: 190
-variable_modifiers (260)
- on left: 214 215, on right: 186
-method_modifiers (261)
- on left: 216 217, on right: 190
-non_empty_member_modifiers (262)
- on left: 218 219, on right: 214 217 219
-member_modifier (263)
- on left: 220 221 222 223 224 225, on right: 209 211 218 219
-class_variable_declaration (264)
- on left: 226 227 228 229, on right: 186 226 227
-class_constant_declaration (265)
- on left: 230 231, on right: 187 230
-echo_expr_list (266)
- on left: 232 233, on right: 63 232
-for_expr (267)
- on left: 234 235, on right: 51
-non_empty_for_expr (268)
- on left: 237 238, on right: 235 237
-@38 (269)
- on left: 236, on right: 237
-chaining_method_or_property (270)
- on left: 239 240, on right: 239 244 246
-chaining_dereference (271)
- on left: 241 242, on right: 241 244 245
-chaining_instance_call (272)
- on left: 244 245 246, on right: 249
-@39 (273)
- on left: 243, on right: 244
-instance_call (274)
- on left: 247 249, on right: 310
-@40 (275)
- on left: 248, on right: 249
-new_expr (276)
- on left: 251, on right: 308 310
-@41 (277)
- on left: 250, on right: 251
-expr_without_variable (278)
- on left: 253 254 255 257 258 259 260 261 262 263 264 265 266 267
- 268 269 270 271 272 273 275 277 279 281 282 283 284 285 286 287
- 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303
- 304 305 306 307 308 310 313 315 316 317 318 319 320 321 322 323
- 324 326 327 328 329 330 331 333 335, on right: 59 72 168 171 424
-@42 (279)
- on left: 252, on right: 253
-@43 (280)
- on left: 256, on right: 257
-@44 (281)
- on left: 274, on right: 275
-@45 (282)
- on left: 276, on right: 277
-@46 (283)
- on left: 278, on right: 279
-@47 (284)
- on left: 280, on right: 281
-@48 (285)
- on left: 309, on right: 310
-@49 (286)
- on left: 311, on right: 313
-@50 (287)
- on left: 312, on right: 313
-@51 (288)
- on left: 314, on right: 315
-@52 (289)
- on left: 325, on right: 326
-@53 (290)
- on left: 332, on right: 333
-@54 (291)
- on left: 334, on right: 335
-function (292)
- on left: 336, on right: 99 190 333 335
-lexical_vars (293)
- on left: 337 338, on right: 333 335
-lexical_var_list (294)
- on left: 339 340 341 342, on right: 338 339 340
-function_call (295)
- on left: 344 346 348 350 352 354 356 358, on right: 450 453
-@55 (296)
- on left: 343, on right: 344
+$@36 (233)
+ on left: 145, on right: 146
+case_separator (234)
+ on left: 147 148, on right: 144 146
+while_statement (235)
+ on left: 149 150, on right: 44
+elseif_list (236)
+ on left: 151 153, on right: 38 153
+$@37 (237)
+ on left: 152, on right: 153
+new_elseif_list (238)
+ on left: 154 156, on right: 41 156
+$@38 (239)
+ on left: 155, on right: 156
+else_single (240)
+ on left: 157 158, on right: 38
+new_else_single (241)
+ on left: 159 160, on right: 41
+parameter_list (242)
+ on left: 161 162, on right: 106 200 344 346
+non_empty_parameter_list (243)
+ on left: 163 164 165 166 167 168 169 170, on right: 161 167 168
+ 169 170
+optional_class_type (244)
+ on left: 171 172 173 174, on right: 163 164 165 166 167 168 169
+ 170
+function_call_parameter_list (245)
+ on left: 175 176 177, on right: 364 366 368 370 372 374 376 378
+ 402 461
+non_empty_function_call_parameter_list (246)
+ on left: 178 179 180 181 182 183, on right: 176 181 182 183
+global_var_list (247)
+ on left: 184 185, on right: 62 184
+global_var (248)
+ on left: 186 187 188, on right: 184 185
+static_var_list (249)
+ on left: 189 190 191 192, on right: 63 189 190
+class_statement_list (250)
+ on left: 193 194, on right: 108 110 193
+class_statement (251)
+ on left: 196 197 198 200, on right: 193
+$@39 (252)
+ on left: 195, on right: 196
+$@40 (253)
+ on left: 199, on right: 200
+trait_use_statement (254)
+ on left: 201, on right: 198
+trait_list (255)
+ on left: 202 203, on right: 201 203
+trait_adaptations (256)
+ on left: 204 205, on right: 201
+trait_adaptation_list (257)
+ on left: 206 207, on right: 205
+non_empty_trait_adaptation_list (258)
+ on left: 208 209, on right: 207 209
+trait_adaptation_statement (259)
+ on left: 210 211, on right: 208 209
+trait_precedence (260)
+ on left: 212, on right: 210
+trait_reference_list (261)
+ on left: 213 214, on right: 212 214
+trait_method_reference (262)
+ on left: 215 216, on right: 218 219
+trait_method_reference_fully_qualified (263)
+ on left: 217, on right: 212 216
+trait_alias (264)
+ on left: 218 219, on right: 211
+trait_modifiers (265)
+ on left: 220 221, on right: 218
+method_body (266)
+ on left: 222 223, on right: 200
+variable_modifiers (267)
+ on left: 224 225, on right: 196
+method_modifiers (268)
+ on left: 226 227, on right: 200
+non_empty_member_modifiers (269)
+ on left: 228 229, on right: 224 227 229
+member_modifier (270)
+ on left: 230 231 232 233 234 235, on right: 219 221 228 229
+class_variable_declaration (271)
+ on left: 236 237 238 239, on right: 196 236 237
+class_constant_declaration (272)
+ on left: 240 241, on right: 197 240
+echo_expr_list (273)
+ on left: 242 243, on right: 64 242
+for_expr (274)
+ on left: 244 245, on right: 51
+non_empty_for_expr (275)
+ on left: 247 248, on right: 245 247
+$@41 (276)
+ on left: 246, on right: 247
+chaining_method_or_property (277)
+ on left: 249 250, on right: 249 254 256
+chaining_dereference (278)
+ on left: 251 252, on right: 251 254 255
+chaining_instance_call (279)
+ on left: 254 255 256, on right: 259
+$@42 (280)
+ on left: 253, on right: 254
+instance_call (281)
+ on left: 257 259, on right: 320
+$@43 (282)
+ on left: 258, on right: 259
+new_expr (283)
+ on left: 261, on right: 318 320
+$@44 (284)
+ on left: 260, on right: 261
+expr_without_variable (285)
+ on left: 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, on right: 59 73 178 181
+ 347 349 444 528 538
+$@45 (286)
+ on left: 262, on right: 263
+$@46 (287)
+ on left: 266, on right: 267
+$@47 (288)
+ on left: 284, on right: 285
+$@48 (289)
+ on left: 286, on right: 287
+$@49 (290)
+ on left: 288, on right: 289
+$@50 (291)
+ on left: 290, on right: 291
+@51 (292)
+ on left: 319, on right: 320
+$@52 (293)
+ on left: 321, on right: 323
+$@53 (294)
+ on left: 322, on right: 323
+$@54 (295)
+ on left: 324, on right: 325
+$@55 (296)
+ on left: 335, on right: 336
@56 (297)
- on left: 345, on right: 346
+ on left: 343, on right: 344
@57 (298)
- on left: 347, on right: 348
-@58 (299)
- on left: 349, on right: 350
-@59 (300)
- on left: 351, on right: 352
-@60 (301)
- on left: 353, on right: 354
-@61 (302)
- on left: 355, on right: 356
-@62 (303)
- on left: 357, on right: 358
-class_name (304)
- on left: 359 360 361 362, on right: 350 352 366 405 445 514
-fully_qualified_class_name (305)
- on left: 363 364 365, on right: 81 90 109 115 116 165 192 193 203
- 204 207
-class_name_reference (306)
- on left: 366 367, on right: 251 257 306
-dynamic_class_name_reference (307)
- on left: 370 371, on right: 367
-@63 (308)
- on left: 368, on right: 370
-@64 (309)
+ on left: 345, on right: 346
+yield_expr (299)
+ on left: 347 348 349 350, on right: 61 177 446
+combined_scalar_offset (300)
+ on left: 351 352 353, on right: 338 352
+combined_scalar (301)
+ on left: 354 355, on right: 339 351
+function (302)
+ on left: 356, on right: 106 200 344 346
+lexical_vars (303)
+ on left: 357 358, on right: 344 346
+lexical_var_list (304)
+ on left: 359 360 361 362, on right: 358 359 360
+function_call (305)
+ on left: 364 366 368 370 372 374 376 378, on right: 472 475
+@58 (306)
+ on left: 363, on right: 364
+@59 (307)
+ on left: 365, on right: 366
+@60 (308)
+ on left: 367, on right: 368
+@61 (309)
on left: 369, on right: 370
-dynamic_class_name_variable_properties (310)
- on left: 372 373, on right: 370 372
-dynamic_class_name_variable_property (311)
- on left: 374, on right: 372
-exit_expr (312)
- on left: 375 376 377, on right: 324
-backticks_expr (313)
- on left: 378 379 380, on right: 330
-ctor_arguments (314)
- on left: 381 382, on right: 251 257
-common_scalar (315)
- on left: 383 384 385 386 387 388 389 390 391 392 393 394,
- on right: 395 411
-static_scalar (316)
- on left: 395 396 397 398 399 400 401 402 403 404,
- on right: 24 25 127 128 156 157 160 161 180 182 227 229 230 231
- 399 400 419 420 421 422
-static_class_constant (317)
- on left: 405, on right: 403
-scalar (318)
- on left: 406 407 408 409 410 411 412 413 414, on right: 327
-static_array_pair_list (319)
- on left: 415 416, on right: 401 402
-possible_comma (320)
- on left: 417 418, on right: 416 481
-non_empty_static_array_pair_list (321)
- on left: 419 420 421 422, on right: 416 419 420
-expr (322)
- on left: 423 424, on right: 38 41 44 47 53 55 57 65 82 135 144
- 147 178 232 233 237 238 253 254 258 259 260 261 262 263 264 265
- 266 267 268 269 275 277 279 281 282 283 284 285 286 287 288 289
- 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
- 306 307 313 315 317 318 319 320 321 322 323 326 331 377 458 461
- 463 468 471 482 483 484 485 486 488 498 499 506 507 508 509 510
-r_variable (323)
- on left: 425, on right: 177 423
-w_variable (324)
- on left: 426, on right: 170 173 486 487 488 489
-rw_variable (325)
- on left: 427, on right: 270 271 272 273
-variable (326)
- on left: 430 431, on right: 60 69 72 93 119 120 169 172 254 255
- 257 259 260 261 262 263 264 265 266 267 268 269 425 426 427 476
- 500 505 511 513
-@65 (327)
- on left: 428, on right: 430
-@66 (328)
- on left: 429, on right: 430
-variable_properties (329)
- on left: 432 433, on right: 430 432
-variable_property (330)
- on left: 435, on right: 239 240 432
-@67 (331)
- on left: 434, on right: 435
-array_method_dereference (332)
- on left: 436 437, on right: 436 441
-method (333)
- on left: 439, on right: 437 440
-@68 (334)
- on left: 438, on right: 439
-method_or_not (335)
- on left: 440 441 442, on right: 430 435
-variable_without_objects (336)
- on left: 443 444, on right: 352 356 358 445 446 466
-static_member (337)
- on left: 445 446, on right: 456
-variable_class_name (338)
- on left: 447, on right: 354 356 446 515
-array_function_dereference (339)
- on left: 448 450, on right: 448 452
-@69 (340)
- on left: 449, on right: 450
-base_variable_with_function_calls (341)
- on left: 451 452 453, on right: 430 431
-base_variable (342)
- on left: 454 455 456, on right: 370 371 451
-reference_variable (343)
- on left: 457 458 459, on right: 443 444 447 454 455 457 458
-compound_variable (344)
- on left: 460 461, on right: 459
-dim_offset (345)
- on left: 462 463, on right: 241 242 436 437 448 450 457 467
-object_property (346)
- on left: 464 466, on right: 370 374 430 435
-@70 (347)
- on left: 465, on right: 466
-object_dim_list (348)
- on left: 467 468 469, on right: 464 467 468
-variable_name (349)
- on left: 470 471, on right: 350 354 469
-simple_indirect_reference (350)
- on left: 472 473, on right: 444 455 473
-assignment_list (351)
- on left: 474 475, on right: 253 474 478
-assignment_list_element (352)
- on left: 476 478 479, on right: 474 475
-@71 (353)
- on left: 477, on right: 478
-array_pair_list (354)
- on left: 480 481, on right: 328 329
-non_empty_array_pair_list (355)
- on left: 482 483 484 485 486 487 488 489, on right: 481 482 483
- 486 487
-encaps_list (356)
- on left: 490 491 492 493, on right: 380 412 413 490 491
-encaps_var (357)
- on left: 494 496 497 498 499 500, on right: 490 492 493
-@72 (358)
- on left: 495, on right: 496
-encaps_var_offset (359)
- on left: 501 502 503, on right: 496
-internal_functions_in_yacc (360)
- on left: 504 505 506 507 508 509 510, on right: 316
-isset_variables (361)
- on left: 511 513, on right: 504 513
-@73 (362)
- on left: 512, on right: 513
-class_constant (363)
- on left: 514 515, on right: 407
+$@62 (310)
+ on left: 371, on right: 372
+$@63 (311)
+ on left: 373, on right: 374
+$@64 (312)
+ on left: 375, on right: 376
+$@65 (313)
+ on left: 377, on right: 378
+class_name (314)
+ on left: 379 380 381 382, on right: 370 372 386 425 467 539
+fully_qualified_class_name (315)
+ on left: 383 384 385, on right: 87 97 116 122 123 174 202 203 213
+ 214 217
+class_name_reference (316)
+ on left: 386 387, on right: 261 267 316
+dynamic_class_name_reference (317)
+ on left: 390 391, on right: 387
+$@66 (318)
+ on left: 388, on right: 390
+$@67 (319)
+ on left: 389, on right: 390
+dynamic_class_name_variable_properties (320)
+ on left: 392 393, on right: 390 392
+dynamic_class_name_variable_property (321)
+ on left: 394, on right: 392
+exit_expr (322)
+ on left: 395 396 397, on right: 334
+backticks_expr (323)
+ on left: 398 399 400, on right: 340
+ctor_arguments (324)
+ on left: 401 402, on right: 261 267
+common_scalar (325)
+ on left: 403 404 405 406 407 408 409 410 411 412 413 414, on right:
+ 415 431
+static_scalar (326)
+ on left: 415 416 417 418 419 420 421 422 423 424, on right: 24
+ 25 136 137 165 166 169 170 190 192 237 239 240 241 419 420 439
+ 440 441 442
+static_class_constant (327)
+ on left: 425, on right: 423
+scalar (328)
+ on left: 426 427 428 429 430 431 432 433 434, on right: 337
+static_array_pair_list (329)
+ on left: 435 436, on right: 421 422
+possible_comma (330)
+ on left: 437 438, on right: 436 503
+non_empty_static_array_pair_list (331)
+ on left: 439 440 441 442, on right: 436 439 440
+expr (332)
+ on left: 443 444, on right: 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 445 480 483 485 490 493 504 505
+ 506 507 508 510 520 521 529 530 531 532 533
+parenthesis_expr (333)
+ on left: 445 446, on right: 38 41 44 47 53 153 156 317 397
+r_variable (334)
+ on left: 447, on right: 187 443
+w_variable (335)
+ on left: 448, on right: 180 183 508 509 510 511
+rw_variable (336)
+ on left: 449, on right: 280 281 282 283
+variable (337)
+ on left: 452 453, on right: 60 70 100 126 127 179 182 264 265 267
+ 269 270 271 272 273 274 275 276 277 278 279 348 350 447 448 449
+ 498 522 527 537
+$@68 (338)
+ on left: 450, on right: 452
+$@69 (339)
+ on left: 451, on right: 452
+variable_properties (340)
+ on left: 454 455, on right: 452 454
+variable_property (341)
+ on left: 457, on right: 249 250 454
+$@70 (342)
+ on left: 456, on right: 457
+array_method_dereference (343)
+ on left: 458 459, on right: 458 463
+method (344)
+ on left: 461, on right: 459 462
+@71 (345)
+ on left: 460, on right: 461
+method_or_not (346)
+ on left: 462 463 464, on right: 452 457
+variable_without_objects (347)
+ on left: 465 466, on right: 372 376 378 467 468 488
+static_member (348)
+ on left: 467 468, on right: 478
+variable_class_name (349)
+ on left: 469, on right: 374 376 468 540
+array_function_dereference (350)
+ on left: 470 472, on right: 470 474
+$@72 (351)
+ on left: 471, on right: 472
+base_variable_with_function_calls (352)
+ on left: 473 474 475, on right: 452 453
+base_variable (353)
+ on left: 476 477 478, on right: 390 391 473
+reference_variable (354)
+ on left: 479 480 481, on right: 465 466 469 476 477 479 480
+compound_variable (355)
+ on left: 482 483, on right: 481
+dim_offset (356)
+ on left: 484 485, on right: 251 252 351 352 353 458 459 470 472
+ 479 489
+object_property (357)
+ on left: 486 488, on right: 390 394 452 457
+$@73 (358)
+ on left: 487, on right: 488
+object_dim_list (359)
+ on left: 489 490 491, on right: 486 489 490
+variable_name (360)
+ on left: 492 493, on right: 370 374 491
+simple_indirect_reference (361)
+ on left: 494 495, on right: 466 477 495
+assignment_list (362)
+ on left: 496 497, on right: 129 263 496 500
+assignment_list_element (363)
+ on left: 498 500 501, on right: 496 497
+$@74 (364)
+ on left: 499, on right: 500
+array_pair_list (365)
+ on left: 502 503, on right: 354 355
+non_empty_array_pair_list (366)
+ on left: 504 505 506 507 508 509 510 511, on right: 503 504 505
+ 508 509
+encaps_list (367)
+ on left: 512 513 514 515, on right: 400 432 433 512 513
+encaps_var (368)
+ on left: 516 518 519 520 521 522, on right: 512 514 515
+$@75 (369)
+ on left: 517, on right: 518
+encaps_var_offset (370)
+ on left: 523 524 525, on right: 518
+internal_functions_in_yacc (371)
+ on left: 526 527 528 529 530 531 532 533, on right: 326
+isset_variables (372)
+ on left: 534 536, on right: 526 536
+$@76 (373)
+ on left: 535, on right: 536
+isset_variable (374)
+ on left: 537 538, on right: 534 536
+class_constant (375)
+ on left: 539 540, on right: 427
state 0
@@ -1417,12 +1478,12 @@ state 1
state 2
1 start: top_statement_list .
- 3 top_statement_list: top_statement_list . @1 top_statement
+ 3 top_statement_list: top_statement_list . $@1 top_statement
"end of file" reduce using rule 1 (start)
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
state 3
@@ -1434,7 +1495,7 @@ state 3
state 4
- 3 top_statement_list: top_statement_list @1 . top_statement
+ 3 top_statement_list: top_statement_list $@1 . top_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -1442,117 +1503,122 @@ state 4
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "const (T_CONST)" shift, and go to state 48
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "use (T_USE)" shift, and go to state 52
- "global (T_GLOBAL)" shift, and go to state 53
- "final (T_FINAL)" shift, and go to state 54
- "abstract (T_ABSTRACT)" shift, and go to state 55
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 60
- "class (T_CLASS)" shift, and go to state 61
- "trait (T_TRAIT)" shift, and go to state 62
- "interface (T_INTERFACE)" shift, and go to state 63
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 73
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- top_statement go to state 84
- constant_declaration go to state 85
- statement go to state 86
- unticked_statement go to state 87
- function_declaration_statement go to state 88
- class_declaration_statement go to state 89
- unticked_function_declaration_statement go to state 90
- unticked_class_declaration_statement go to state 91
- class_entry_type go to state 92
- interface_entry go to state 93
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 96
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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
state 5
- 510 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr
+ 533 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
@@ -1560,80 +1626,84 @@ state 5
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 120
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 126
+ 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
state 6
- 509 internal_functions_in_yacc: "require (T_REQUIRE)" . expr
+ 532 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
@@ -1641,87 +1711,91 @@ state 6
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 121
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 7
- 508 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')'
+ 531 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')'
- '(' shift, and go to state 122
+ '(' shift, and go to state 128
state 8
- 507 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr
+ 530 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
@@ -1729,80 +1803,84 @@ state 8
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 123
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 129
+ 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
state 9
- 506 internal_functions_in_yacc: "include (T_INCLUDE)" . expr
+ 529 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
@@ -1810,80 +1888,84 @@ state 9
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 124
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 10
- 331 expr_without_variable: "print (T_PRINT)" . expr
+ 341 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
@@ -1891,80 +1973,88 @@ state 10
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 125
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 11
- 294 expr_without_variable: '+' . expr
+ 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)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -1972,80 +2062,86 @@ state 11
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 126
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 342 (expr_without_variable)
+
+ namespace_name go to state 84
+ new_expr go to state 95
+ expr_without_variable go to state 132
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 133
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 134
+ 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
state 12
- 295 expr_without_variable: '-' . expr
+ 304 expr_without_variable: '+' . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -2053,80 +2149,84 @@ state 12
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 127
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 135
+ 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
state 13
- 296 expr_without_variable: '!' . expr
+ 305 expr_without_variable: '-' . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -2134,80 +2234,84 @@ state 13
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 128
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 14
- 297 expr_without_variable: '~' . expr
+ 306 expr_without_variable: '!' . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -2215,89 +2319,84 @@ state 14
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 129
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 15
- 326 expr_without_variable: '@' . @52 expr
-
- $default reduce using rule 325 (@52)
-
- @52 go to state 130
-
-
-state 16
-
- 323 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr
+ 307 expr_without_variable: '~' . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -2305,80 +2404,93 @@ state 16
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 131
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
+
+
+state 16
+
+ 336 expr_without_variable: '@' . $@55 expr
+
+ $default reduce using rule 335 ($@55)
+
+ $@55 go to state 139
state 17
- 322 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr
+ 333 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
@@ -2386,80 +2498,84 @@ state 17
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 132
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 140
+ 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
state 18
- 321 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr
+ 332 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
@@ -2467,80 +2583,84 @@ state 18
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 133
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 19
- 320 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr
+ 331 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
@@ -2548,80 +2668,84 @@ state 19
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 134
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 20
- 319 expr_without_variable: "(string) (T_STRING_CAST)" . expr
+ 330 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
@@ -2629,80 +2753,84 @@ state 20
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 135
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 21
- 318 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr
+ 329 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
@@ -2710,80 +2838,84 @@ state 21
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 136
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 22
- 317 expr_without_variable: "(int) (T_INT_CAST)" . expr
+ 328 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
@@ -2791,134 +2923,223 @@ state 22
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 137
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 23
- 273 expr_without_variable: "-- (T_DEC)" . rw_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- rw_variable go to state 143
- variable go to state 144
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 327 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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
state 24
- 271 expr_without_variable: "++ (T_INC)" . rw_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- rw_variable go to state 146
- variable go to state 144
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 283 expr_without_variable: "-- (T_DEC)" . rw_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ rw_variable go to state 152
+ variable go to state 153
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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
- 329 expr_without_variable: '[' . array_pair_list ']'
+ 281 expr_without_variable: "++ (T_INC)" . rw_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ rw_variable go to state 155
+ variable go to state 153
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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
+
+ 355 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
@@ -2926,85 +3147,89 @@ state 25
"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
- '&' shift, and go to state 147
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 480 (array_pair_list)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 148
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- array_pair_list go to state 149
- non_empty_array_pair_list go to state 150
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 156
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 502 (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 125
+ 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 157
+ 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 158
+ non_empty_array_pair_list go to state 159
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 26
+state 27
- 258 expr_without_variable: "clone (T_CLONE)" . expr
+ 268 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
@@ -3012,174 +3237,184 @@ state 26
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 151
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 27
-
- 251 new_expr: "new (T_NEW)" . class_name_reference @41 ctor_arguments
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 152
- "\\ (T_NS_SEPARATOR)" shift, and go to state 153
- '$' shift, and go to state 80
-
- namespace_name go to state 154
- class_name go to state 155
- class_name_reference go to state 156
- dynamic_class_name_reference go to state 157
- static_member go to state 106
- variable_class_name go to state 158
- base_variable go to state 159
- reference_variable go to state 160
- compound_variable go to state 112
- simple_indirect_reference go to state 161
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 160
+ 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
state 28
- 324 expr_without_variable: "exit (T_EXIT)" . exit_expr
+ 261 new_expr: "new (T_NEW)" . class_name_reference $@44 ctor_arguments
- '(' shift, and go to state 162
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 161
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 162
+ '$' shift, and go to state 81
- $default reduce using rule 375 (exit_expr)
-
- exit_expr go to state 163
+ namespace_name go to state 163
+ class_name go to state 164
+ class_name_reference go to state 165
+ dynamic_class_name_reference go to state 166
+ static_member go to state 111
+ variable_class_name go to state 167
+ base_variable go to state 168
+ reference_variable go to state 169
+ compound_variable go to state 117
+ simple_indirect_reference go to state 170
state 29
- 38 unticked_statement: "if (T_IF)" . '(' expr ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" . '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 334 expr_without_variable: "exit (T_EXIT)" . exit_expr
+
+ '(' shift, and go to state 171
+
+ $default reduce using rule 395 (exit_expr)
- '(' shift, and go to state 164
+ exit_expr go to state 172
+ parenthesis_expr go to state 173
state 30
- 383 common_scalar: "integer number (T_LNUMBER)" .
+ 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)" ';'
- $default reduce using rule 383 (common_scalar)
+ '(' shift, and go to state 174
+
+ parenthesis_expr go to state 175
state 31
- 384 common_scalar: "floating-point number (T_DNUMBER)" .
+ 403 common_scalar: "integer number (T_LNUMBER)" .
- $default reduce using rule 384 (common_scalar)
+ $default reduce using rule 403 (common_scalar)
state 32
- 5 namespace_name: "identifier (T_STRING)" .
- 34 statement: "identifier (T_STRING)" . ':'
+ 404 common_scalar: "floating-point number (T_DNUMBER)" .
- ':' shift, and go to state 165
-
- $default reduce using rule 5 (namespace_name)
+ $default reduce using rule 404 (common_scalar)
state 33
- 406 scalar: "variable name (T_STRING_VARNAME)" .
+ 5 namespace_name: "identifier (T_STRING)" .
+ 34 statement: "identifier (T_STRING)" . ':'
- $default reduce using rule 406 (scalar)
+ ':' shift, and go to state 176
+
+ $default reduce using rule 5 (namespace_name)
state 34
- 460 compound_variable: "variable (T_VARIABLE)" .
+ 426 scalar: "variable name (T_STRING_VARNAME)" .
- $default reduce using rule 460 (compound_variable)
+ $default reduce using rule 426 (scalar)
state 35
- 64 unticked_statement: T_INLINE_HTML .
+ 482 compound_variable: "variable (T_VARIABLE)" .
- $default reduce using rule 64 (unticked_statement)
+ $default reduce using rule 482 (compound_variable)
state 36
- 385 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
+ 65 unticked_statement: T_INLINE_HTML .
- $default reduce using rule 385 (common_scalar)
+ $default reduce using rule 65 (unticked_statement)
state 37
- 63 unticked_statement: "echo (T_ECHO)" . echo_expr_list ';'
+ 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" . '[' dim_offset ']'
+ 405 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
+
+ '[' shift, and go to state 177
+
+ $default reduce using rule 405 (common_scalar)
+
+
+state 38
+
+ 64 unticked_statement: "echo (T_ECHO)" . echo_expr_list ';'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -3187,127 +3422,135 @@ state 37
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- echo_expr_list go to state 166
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 167
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 38
-
- 47 unticked_statement: "do (T_DO)" . @11 statement "while (T_WHILE)" '(' @12 expr ')' ';'
-
- $default reduce using rule 45 (@11)
-
- @11 go to state 168
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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
+ echo_expr_list go to state 178
+ 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 125
+ 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 179
+ 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
state 39
- 44 unticked_statement: "while (T_WHILE)" . '(' @9 expr ')' @10 while_statement
+ 47 unticked_statement: "do (T_DO)" . $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';'
+
+ $default reduce using rule 45 ($@11)
- '(' shift, and go to state 169
+ $@11 go to state 180
state 40
- 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 44 unticked_statement: "while (T_WHILE)" . $@9 parenthesis_expr @10 while_statement
- '(' shift, and go to state 170
+ $default reduce using rule 42 ($@9)
+
+ $@9 go to state 181
state 41
- 69 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- '(' shift, and go to state 171
+ '(' shift, and go to state 182
state 42
- 74 unticked_statement: "declare (T_DECLARE)" . @21 '(' declare_list ')' declare_statement
+ 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
- $default reduce using rule 73 (@21)
-
- @21 go to state 172
+ '(' shift, and go to state 183
state 43
- 53 unticked_statement: "switch (T_SWITCH)" . '(' expr ')' @16 switch_case_list
+ 75 unticked_statement: "declare (T_DECLARE)" . $@21 '(' declare_list ')' declare_statement
+
+ $default reduce using rule 74 ($@21)
- '(' shift, and go to state 173
+ $@21 go to state 184
state 44
+ 53 unticked_statement: "switch (T_SWITCH)" . parenthesis_expr $@16 switch_case_list
+
+ '(' shift, and go to state 174
+
+ parenthesis_expr go to state 185
+
+
+state 45
+
54 unticked_statement: "break (T_BREAK)" . ';'
55 | "break (T_BREAK)" . expr ';'
@@ -3317,79 +3560,83 @@ state 44
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- ';' shift, and go to state 174
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 175
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 186
+ '$' 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 125
+ 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 187
+ 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
-state 45
+state 46
56 unticked_statement: "continue (T_CONTINUE)" . ';'
57 | "continue (T_CONTINUE)" . expr ';'
@@ -3400,100 +3647,104 @@ state 45
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- ';' shift, and go to state 176
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 177
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 188
+ '$' 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 125
+ 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 189
+ 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
-state 46
+state 47
- 83 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';'
+ 81 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';'
- "identifier (T_STRING)" shift, and go to state 178
+ "identifier (T_STRING)" shift, and go to state 190
-state 47
+state 48
- 336 function: "function (T_FUNCTION)" .
+ 356 function: "function (T_FUNCTION)" .
- $default reduce using rule 336 (function)
+ $default reduce using rule 356 (function)
-state 48
+state 49
25 constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
- "identifier (T_STRING)" shift, and go to state 179
+ "identifier (T_STRING)" shift, and go to state 191
-state 49
+state 50
58 unticked_statement: "return (T_RETURN)" . ';'
59 | "return (T_RETURN)" . expr_without_variable ';'
@@ -3505,90 +3756,94 @@ state 49
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- ';' shift, and go to state 180
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 181
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 183
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 192
+ '$' 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 193
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 195
+ 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
-state 50
+state 51
- 81 unticked_statement: "try (T_TRY)" . @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 79 unticked_statement: "try (T_TRY)" . $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement
- $default reduce using rule 76 (@22)
+ $default reduce using rule 77 ($@22)
- @22 go to state 184
+ $@22 go to state 196
-state 51
+state 52
- 82 unticked_statement: "throw (T_THROW)" . expr ';'
+ 80 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
@@ -3596,295 +3851,301 @@ state 51
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 185
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 52
-
- 16 top_statement: "use (T_USE)" . use_declarations ';'
-
- "identifier (T_STRING)" shift, and go to state 116
- "\\ (T_NS_SEPARATOR)" shift, and go to state 186
-
- namespace_name go to state 187
- use_declarations go to state 188
- use_declaration go to state 189
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 197
+ 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
state 53
- 61 unticked_statement: "global (T_GLOBAL)" . global_var_list ';'
+ 16 top_statement: "use (T_USE)" . use_declarations ';'
- "variable (T_VARIABLE)" shift, and go to state 190
- '$' shift, and go to state 191
+ "identifier (T_STRING)" shift, and go to state 122
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 198
- global_var_list go to state 192
- global_var go to state 193
+ namespace_name go to state 199
+ use_declarations go to state 200
+ use_declaration go to state 201
state 54
- 107 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)"
+ 62 unticked_statement: "global (T_GLOBAL)" . global_var_list ';'
+
+ "variable (T_VARIABLE)" shift, and go to state 202
+ '$' shift, and go to state 203
- "class (T_CLASS)" shift, and go to state 194
+ global_var_list go to state 204
+ global_var go to state 205
state 55
- 105 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)"
+ 114 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)"
- "class (T_CLASS)" shift, and go to state 195
+ "class (T_CLASS)" shift, and go to state 206
state 56
- 62 unticked_statement: "static (T_STATIC)" . static_var_list ';'
- 335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 359 class_name: "static (T_STATIC)" .
+ 112 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)"
- "variable (T_VARIABLE)" shift, and go to state 196
- "function (T_FUNCTION)" shift, and go to state 47
+ "class (T_CLASS)" shift, and go to state 207
- $default reduce using rule 359 (class_name)
- static_var_list go to state 197
- function go to state 198
+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)" .
-state 57
+ "variable (T_VARIABLE)" shift, and go to state 208
+ "function (T_FUNCTION)" shift, and go to state 48
- 66 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';'
+ $default reduce using rule 379 (class_name)
- '(' shift, and go to state 199
+ static_var_list go to state 209
+ function go to state 210
state 58
- 504 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')'
+ 67 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';'
- '(' shift, and go to state 200
+ '(' shift, and go to state 211
state 59
- 505 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')'
+ 526 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')'
- '(' shift, and go to state 201
+ '(' shift, and go to state 212
state 60
- 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
+ 527 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')'
+ 528 | "empty (T_EMPTY)" . '(' expr_without_variable ')'
- '(' shift, and go to state 202
+ '(' shift, and go to state 213
state 61
- 104 class_entry_type: "class (T_CLASS)" .
+ 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
- $default reduce using rule 104 (class_entry_type)
+ '(' shift, and go to state 214
state 62
- 106 class_entry_type: "trait (T_TRAIT)" .
+ 111 class_entry_type: "class (T_CLASS)" .
- $default reduce using rule 106 (class_entry_type)
+ $default reduce using rule 111 (class_entry_type)
state 63
- 110 interface_entry: "interface (T_INTERFACE)" .
+ 113 class_entry_type: "trait (T_TRAIT)" .
- $default reduce using rule 110 (interface_entry)
+ $default reduce using rule 113 (class_entry_type)
state 64
- 253 expr_without_variable: "list (T_LIST)" . '(' @42 assignment_list ')' '=' expr
+ 117 interface_entry: "interface (T_INTERFACE)" .
- '(' shift, and go to state 203
+ $default reduce using rule 117 (interface_entry)
state 65
- 328 expr_without_variable: "array (T_ARRAY)" . '(' array_pair_list ')'
+ 263 expr_without_variable: "list (T_LIST)" . '(' $@45 assignment_list ')' '=' expr
- '(' shift, and go to state 204
+ '(' shift, and go to state 215
state 66
- 414 scalar: "__CLASS__ (T_CLASS_C)" .
+ 354 combined_scalar: "array (T_ARRAY)" . '(' array_pair_list ')'
- $default reduce using rule 414 (scalar)
+ '(' shift, and go to state 216
state 67
- 389 common_scalar: "__TRAIT__ (T_TRAIT_C)" .
+ 434 scalar: "__CLASS__ (T_CLASS_C)" .
- $default reduce using rule 389 (common_scalar)
+ $default reduce using rule 434 (scalar)
state 68
- 390 common_scalar: "__METHOD__ (T_METHOD_C)" .
+ 409 common_scalar: "__TRAIT__ (T_TRAIT_C)" .
- $default reduce using rule 390 (common_scalar)
+ $default reduce using rule 409 (common_scalar)
state 69
- 391 common_scalar: "__FUNCTION__ (T_FUNC_C)" .
+ 410 common_scalar: "__METHOD__ (T_METHOD_C)" .
- $default reduce using rule 391 (common_scalar)
+ $default reduce using rule 410 (common_scalar)
state 70
- 386 common_scalar: "__LINE__ (T_LINE)" .
+ 411 common_scalar: "__FUNCTION__ (T_FUNC_C)" .
- $default reduce using rule 386 (common_scalar)
+ $default reduce using rule 411 (common_scalar)
state 71
- 387 common_scalar: "__FILE__ (T_FILE)" .
+ 406 common_scalar: "__LINE__ (T_LINE)" .
- $default reduce using rule 387 (common_scalar)
+ $default reduce using rule 406 (common_scalar)
state 72
- 393 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 394 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
- 413 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)"
+ 407 common_scalar: "__FILE__ (T_FILE)" .
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 206
- "heredoc end (T_END_HEREDOC)" shift, and go to state 207
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
-
- encaps_list go to state 210
- encaps_var go to state 211
+ $default reduce using rule 407 (common_scalar)
state 73
- 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 '}'
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 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)"
+ 433 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)"
- "identifier (T_STRING)" shift, and go to state 116
- "\\ (T_NS_SEPARATOR)" shift, and go to state 212
- '{' shift, and go to state 213
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 218
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 219
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- namespace_name go to state 214
+ encaps_list go to state 222
+ encaps_var go to state 223
state 74
- 392 common_scalar: "__NAMESPACE__ (T_NS_C)" .
+ 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
+ 429 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 224
+ '{' shift, and go to state 225
- $default reduce using rule 392 (common_scalar)
+ namespace_name go to state 226
state 75
- 388 common_scalar: "__DIR__ (T_DIR)" .
+ 412 common_scalar: "__NAMESPACE__ (T_NS_C)" .
- $default reduce using rule 388 (common_scalar)
+ $default reduce using rule 412 (common_scalar)
state 76
- 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')'
- 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- 410 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 408 common_scalar: "__DIR__ (T_DIR)" .
- "identifier (T_STRING)" shift, and go to state 116
-
- namespace_name go to state 215
+ $default reduce using rule 408 (common_scalar)
state 77
- 307 expr_without_variable: '(' . expr ')'
- 310 | '(' . new_expr ')' @48 instance_call
+ 368 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
+ 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 430 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 122
+
+ namespace_name go to state 227
+
+
+state 78
+
+ 320 expr_without_variable: '(' . new_expr ')' @51 instance_call
+ 445 parenthesis_expr: '(' . expr ')'
+ 446 | '(' . yield_expr ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -3892,1694 +4153,1866 @@ state 77
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 216
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 217
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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 122
+ "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 123
+ "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 124
+ "__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 228
+ expr_without_variable go to state 96
+ yield_expr go to state 229
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 230
+ 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
-state 78
+state 79
- 75 unticked_statement: ';' .
+ 76 unticked_statement: ';' .
- $default reduce using rule 75 (unticked_statement)
+ $default reduce using rule 76 (unticked_statement)
-state 79
+state 80
35 unticked_statement: '{' . inner_statement_list '}'
$default reduce using rule 28 (inner_statement_list)
- inner_statement_list go to state 218
+ inner_statement_list go to state 231
-state 80
+state 81
- 461 compound_variable: '$' . '{' expr '}'
- 472 simple_indirect_reference: '$' .
+ 483 compound_variable: '$' . '{' expr '}'
+ 494 simple_indirect_reference: '$' .
- '{' shift, and go to state 219
+ '{' shift, and go to state 232
- $default reduce using rule 472 (simple_indirect_reference)
+ $default reduce using rule 494 (simple_indirect_reference)
-state 81
+state 82
- 330 expr_without_variable: '`' . backticks_expr '`'
+ 340 expr_without_variable: '`' . backticks_expr '`'
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 220
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 233
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- $default reduce using rule 378 (backticks_expr)
+ $default reduce using rule 398 (backticks_expr)
- backticks_expr go to state 221
- encaps_list go to state 222
- encaps_var go to state 211
+ backticks_expr go to state 234
+ encaps_list go to state 235
+ encaps_var go to state 223
-state 82
+state 83
- 412 scalar: '"' . encaps_list '"'
+ 432 scalar: '"' . encaps_list '"'
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 223
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 236
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- encaps_list go to state 224
- encaps_var go to state 211
+ encaps_list go to state 237
+ encaps_var go to state 223
-state 83
+state 84
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')'
- 360 class_name: namespace_name .
- 408 scalar: namespace_name .
+ 364 function_call: namespace_name . @58 function_call_parameter_list
+ 380 class_name: namespace_name .
+ 428 scalar: namespace_name .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 226
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 360 (class_name)
- $default reduce using rule 408 (scalar)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 380 (class_name)
+ '(' reduce using rule 363 (@58)
+ $default reduce using rule 428 (scalar)
+ @58 go to state 239
-state 84
- 3 top_statement_list: top_statement_list @1 top_statement .
+state 85
+
+ 3 top_statement_list: top_statement_list $@1 top_statement .
$default reduce using rule 3 (top_statement_list)
-state 85
+state 86
17 top_statement: constant_declaration . ';'
24 constant_declaration: constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
- ',' shift, and go to state 227
- ';' shift, and go to state 228
+ ',' shift, and go to state 240
+ ';' shift, and go to state 241
-state 86
+state 87
7 top_statement: statement .
$default reduce using rule 7 (top_statement)
-state 87
+state 88
33 statement: unticked_statement .
$default reduce using rule 33 (statement)
-state 88
+state 89
8 top_statement: function_declaration_statement .
$default reduce using rule 8 (top_statement)
-state 89
+state 90
9 top_statement: class_declaration_statement .
$default reduce using rule 9 (top_statement)
-state 90
-
- 94 function_declaration_statement: unticked_function_declaration_statement .
-
- $default reduce using rule 94 (function_declaration_statement)
-
-
state 91
- 95 class_declaration_statement: unticked_class_declaration_statement .
+ 101 function_declaration_statement: unticked_function_declaration_statement .
- $default reduce using rule 95 (class_declaration_statement)
+ $default reduce using rule 101 (function_declaration_statement)
state 92
- 101 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}'
+ 102 class_declaration_statement: unticked_class_declaration_statement .
- "identifier (T_STRING)" shift, and go to state 229
+ $default reduce using rule 102 (class_declaration_statement)
state 93
- 103 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}'
+ 108 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}'
- "identifier (T_STRING)" shift, and go to state 230
+ "identifier (T_STRING)" shift, and go to state 242
state 94
- 308 expr_without_variable: new_expr .
+ 110 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}'
- $default reduce using rule 308 (expr_without_variable)
+ "identifier (T_STRING)" shift, and go to state 243
state 95
- 424 expr: expr_without_variable .
+ 318 expr_without_variable: new_expr .
- $default reduce using rule 424 (expr)
+ $default reduce using rule 318 (expr_without_variable)
state 96
- 99 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
- 333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
-
- '&' shift, and go to state 231
+ 444 expr: expr_without_variable .
- $default reduce using rule 96 (is_reference)
-
- is_reference go to state 232
+ $default reduce using rule 444 (expr)
state 97
- 450 array_function_dereference: function_call . @69 '[' dim_offset ']'
- 453 base_variable_with_function_calls: function_call .
-
- '[' reduce using rule 449 (@69)
- $default reduce using rule 453 (base_variable_with_function_calls)
+ 61 unticked_statement: yield_expr . ';'
- @69 go to state 233
+ ';' shift, and go to state 244
state 98
- 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
- 445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 514 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 338 expr_without_variable: combined_scalar_offset .
+ 352 combined_scalar_offset: combined_scalar_offset . '[' dim_offset ']'
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 234
+ '[' shift, and go to state 245
+
+ $default reduce using rule 338 (expr_without_variable)
state 99
- 411 scalar: common_scalar .
+ 339 expr_without_variable: combined_scalar .
+ 351 combined_scalar_offset: combined_scalar . '[' dim_offset ']'
+
+ '[' shift, and go to state 246
- $default reduce using rule 411 (scalar)
+ $default reduce using rule 339 (expr_without_variable)
state 100
- 327 expr_without_variable: scalar .
+ 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 '}'
- $default reduce using rule 327 (expr_without_variable)
+ '&' shift, and go to state 247
+
+ $default reduce using rule 103 (is_reference)
+
+ is_reference go to state 248
state 101
- 65 unticked_statement: expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ';' shift, and go to state 261
+ 472 array_function_dereference: function_call . $@72 '[' dim_offset ']'
+ 475 base_variable_with_function_calls: function_call .
+
+ '[' reduce using rule 471 ($@72)
+ $default reduce using rule 475 (base_variable_with_function_calls)
+
+ $@72 go to state 249
state 102
- 423 expr: r_variable .
+ 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
+ 467 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 539 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- $default reduce using rule 423 (expr)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 250
state 103
- 270 expr_without_variable: rw_variable . "++ (T_INC)"
- 272 | rw_variable . "-- (T_DEC)"
+ 431 scalar: common_scalar .
- "-- (T_DEC)" shift, and go to state 262
- "++ (T_INC)" shift, and go to state 263
+ $default reduce using rule 431 (scalar)
state 104
- 254 expr_without_variable: variable . '=' expr
- 255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 259 | variable . "+= (T_PLUS_EQUAL)" expr
- 260 | variable . "-= (T_MINUS_EQUAL)" expr
- 261 | variable . "*= (T_MUL_EQUAL)" expr
- 262 | variable . "/= (T_DIV_EQUAL)" expr
- 263 | variable . ".= (T_CONCAT_EQUAL)" expr
- 264 | variable . "%= (T_MOD_EQUAL)" expr
- 265 | variable . "&= (T_AND_EQUAL)" expr
- 266 | variable . "|= (T_OR_EQUAL)" expr
- 267 | variable . "^= (T_XOR_EQUAL)" expr
- 268 | variable . "<<= (T_SL_EQUAL)" expr
- 269 | variable . ">>= (T_SR_EQUAL)" expr
- 425 r_variable: variable .
- 427 rw_variable: variable .
-
- '=' shift, and go to state 264
- ">>= (T_SR_EQUAL)" shift, and go to state 265
- "<<= (T_SL_EQUAL)" shift, and go to state 266
- "^= (T_XOR_EQUAL)" shift, and go to state 267
- "|= (T_OR_EQUAL)" shift, and go to state 268
- "&= (T_AND_EQUAL)" shift, and go to state 269
- "%= (T_MOD_EQUAL)" shift, and go to state 270
- ".= (T_CONCAT_EQUAL)" shift, and go to state 271
- "/= (T_DIV_EQUAL)" shift, and go to state 272
- "*= (T_MUL_EQUAL)" shift, and go to state 273
- "-= (T_MINUS_EQUAL)" shift, and go to state 274
- "+= (T_PLUS_EQUAL)" shift, and go to state 275
-
- "-- (T_DEC)" reduce using rule 427 (rw_variable)
- "++ (T_INC)" reduce using rule 427 (rw_variable)
- $default reduce using rule 425 (r_variable)
+ 337 expr_without_variable: scalar .
+ $default reduce using rule 337 (expr_without_variable)
-state 105
- 358 function_call: variable_without_objects . '(' @62 function_call_parameter_list ')'
+state 105
- '(' shift, and go to state 276
+ 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
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ';' shift, and go to state 277
state 106
- 456 base_variable: static_member .
+ 317 expr_without_variable: parenthesis_expr .
- $default reduce using rule 456 (base_variable)
+ $default reduce using rule 317 (expr_without_variable)
state 107
- 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
- 446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- 515 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 443 expr: r_variable .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 277
+ $default reduce using rule 443 (expr)
state 108
- 448 array_function_dereference: array_function_dereference . '[' dim_offset ']'
- 452 base_variable_with_function_calls: array_function_dereference .
+ 280 expr_without_variable: rw_variable . "++ (T_INC)"
+ 282 | rw_variable . "-- (T_DEC)"
- '[' shift, and go to state 278
-
- $default reduce using rule 452 (base_variable_with_function_calls)
+ "-- (T_DEC)" shift, and go to state 278
+ "++ (T_INC)" shift, and go to state 279
state 109
- 430 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties
- 431 | base_variable_with_function_calls .
-
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 279
-
- $default reduce using rule 431 (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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ $default reduce using rule 447 (r_variable)
state 110
- 451 base_variable_with_function_calls: base_variable .
+ 378 function_call: variable_without_objects . $@65 function_call_parameter_list
- $default reduce using rule 451 (base_variable_with_function_calls)
+ $default reduce using rule 377 ($@65)
+ $@65 go to state 292
-state 111
- 443 variable_without_objects: reference_variable .
- 447 variable_class_name: reference_variable .
- 454 base_variable: reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+state 111
- '[' shift, and go to state 280
- '{' shift, and go to state 281
+ 478 base_variable: static_member .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 447 (variable_class_name)
- '(' reduce using rule 443 (variable_without_objects)
- $default reduce using rule 454 (base_variable)
+ $default reduce using rule 478 (base_variable)
state 112
- 459 reference_variable: compound_variable .
+ 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
+ 468 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 540 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- $default reduce using rule 459 (reference_variable)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 293
state 113
- 444 variable_without_objects: simple_indirect_reference . reference_variable
- 455 base_variable: simple_indirect_reference . reference_variable
- 473 simple_indirect_reference: simple_indirect_reference . '$'
+ 470 array_function_dereference: array_function_dereference . '[' dim_offset ']'
+ 474 base_variable_with_function_calls: array_function_dereference .
- "variable (T_VARIABLE)" shift, and go to state 34
- '$' shift, and go to state 282
+ '[' shift, and go to state 294
- reference_variable go to state 283
- compound_variable go to state 112
+ $default reduce using rule 474 (base_variable_with_function_calls)
state 114
- 316 expr_without_variable: internal_functions_in_yacc .
+ 452 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties
+ 453 | base_variable_with_function_calls .
- $default reduce using rule 316 (expr_without_variable)
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 295
+
+ $default reduce using rule 453 (variable)
state 115
- 407 scalar: class_constant .
+ 473 base_variable_with_function_calls: base_variable .
- $default reduce using rule 407 (scalar)
+ $default reduce using rule 473 (base_variable_with_function_calls)
state 116
- 5 namespace_name: "identifier (T_STRING)" .
-
- $default reduce using rule 5 (namespace_name)
+ 465 variable_without_objects: reference_variable .
+ 469 variable_class_name: reference_variable .
+ 476 base_variable: reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
-state 117
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 469 (variable_class_name)
+ '(' reduce using rule 465 (variable_without_objects)
+ $default reduce using rule 476 (base_variable)
- 335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
- 359 class_name: "static (T_STATIC)" .
- "function (T_FUNCTION)" shift, and go to state 47
+state 117
- $default reduce using rule 359 (class_name)
+ 481 reference_variable: compound_variable .
- function go to state 198
+ $default reduce using rule 481 (reference_variable)
state 118
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 466 variable_without_objects: simple_indirect_reference . reference_variable
+ 477 base_variable: simple_indirect_reference . reference_variable
+ 495 simple_indirect_reference: simple_indirect_reference . '$'
- "\\ (T_NS_SEPARATOR)" shift, and go to state 212
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 298
+ reference_variable go to state 299
+ compound_variable go to state 117
-state 119
-
- 333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '&' shift, and go to state 231
+state 119
- $default reduce using rule 96 (is_reference)
+ 326 expr_without_variable: internal_functions_in_yacc .
- is_reference go to state 284
+ $default reduce using rule 326 (expr_without_variable)
state 120
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 510 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 510 (internal_functions_in_yacc)
+ 427 scalar: class_constant .
+
+ $default reduce using rule 427 (scalar)
state 121
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 509 internal_functions_in_yacc: "require (T_REQUIRE)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 509 (internal_functions_in_yacc)
+ 342 expr_without_variable: "yield (T_YIELD)" .
+
+ $default reduce using rule 342 (expr_without_variable)
state 122
- 508 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')'
+ 5 namespace_name: "identifier (T_STRING)" .
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 285
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 5 (namespace_name)
state 123
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 507 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 507 (internal_functions_in_yacc)
+ 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)" shift, and go to state 48
+
+ $default reduce using rule 379 (class_name)
+
+ function go to state 210
state 124
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 506 internal_functions_in_yacc: "include (T_INCLUDE)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 506 (internal_functions_in_yacc)
+ 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
+ 429 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 224
state 125
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 331 | "print (T_PRINT)" expr .
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 344 expr_without_variable: function . is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- $default reduce using rule 331 (expr_without_variable)
+ '&' shift, and go to state 247
+ $default reduce using rule 103 (is_reference)
-state 126
+ is_reference go to state 300
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 294 | '+' expr .
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- $default reduce using rule 294 (expr_without_variable)
+state 126
+
+ 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: "require_once (T_REQUIRE_ONCE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 533 (internal_functions_in_yacc)
state 127
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 295 | '-' expr .
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- $default reduce using rule 295 (expr_without_variable)
+ 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: "require (T_REQUIRE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 532 (internal_functions_in_yacc)
state 128
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 296 | '!' expr .
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 531 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')'
- $default reduce using rule 296 (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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 301
+ 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
state 129
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 297 | '~' expr .
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- $default reduce using rule 297 (expr_without_variable)
+ 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
+ 530 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 530 (internal_functions_in_yacc)
state 130
- 326 expr_without_variable: '@' @52 . 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 286
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ 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
+ 529 internal_functions_in_yacc: "include (T_INCLUDE)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 529 (internal_functions_in_yacc)
state 131
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 323 | "(unset) (T_UNSET_CAST)" expr .
-
- $default reduce using rule 323 (expr_without_variable)
+ 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 .
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 341 (expr_without_variable)
state 132
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 322 | "(bool) (T_BOOL_CAST)" expr .
-
- $default reduce using rule 322 (expr_without_variable)
+ 347 yield_expr: "yield (T_YIELD)" expr_without_variable .
+ 444 expr: expr_without_variable .
+
+ ')' reduce using rule 347 (yield_expr)
+ ';' reduce using rule 347 (yield_expr)
+ $default reduce using rule 444 (expr)
state 133
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 321 | "(object) (T_OBJECT_CAST)" expr .
-
- $default reduce using rule 321 (expr_without_variable)
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 302
state 134
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 320 | "(array) (T_ARRAY_CAST)" expr .
-
- $default reduce using rule 320 (expr_without_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
+ 348 yield_expr: "yield (T_YIELD)" variable .
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ ')' reduce using rule 348 (yield_expr)
+ ';' reduce using rule 348 (yield_expr)
+ $default reduce using rule 447 (r_variable)
state 135
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 319 | "(string) (T_STRING_CAST)" expr .
-
- $default reduce using rule 319 (expr_without_variable)
+ 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
+
+ $default reduce using rule 304 (expr_without_variable)
state 136
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 318 | "(double) (T_DOUBLE_CAST)" 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
+ 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
- $default reduce using rule 318 (expr_without_variable)
+ $default reduce using rule 305 (expr_without_variable)
state 137
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 317 | "(int) (T_INT_CAST)" 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
+ 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)" shift, and go to state 276
- $default reduce using rule 317 (expr_without_variable)
+ $default reduce using rule 306 (expr_without_variable)
state 138
- 359 class_name: "static (T_STATIC)" .
+ 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
- $default reduce using rule 359 (class_name)
+ $default reduce using rule 307 (expr_without_variable)
state 139
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 336 expr_without_variable: '@' $@55 . expr
- "\\ (T_NS_SEPARATOR)" shift, and go to state 287
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 303
+ 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
state 140
- 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')'
- 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_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
+ 333 | "(unset) (T_UNSET_CAST)" expr .
- "identifier (T_STRING)" shift, and go to state 116
-
- namespace_name go to state 288
+ $default reduce using rule 333 (expr_without_variable)
state 141
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')'
- 360 class_name: namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 226
-
- $default reduce using rule 360 (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
+ 332 | "(bool) (T_BOOL_CAST)" expr .
+
+ $default reduce using rule 332 (expr_without_variable)
state 142
- 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
- 445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 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 .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 289
+ $default reduce using rule 331 (expr_without_variable)
state 143
- 273 expr_without_variable: "-- (T_DEC)" rw_variable .
+ 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 .
- $default reduce using rule 273 (expr_without_variable)
+ $default reduce using rule 330 (expr_without_variable)
state 144
- 427 rw_variable: variable .
+ 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 .
- $default reduce using rule 427 (rw_variable)
+ $default reduce using rule 329 (expr_without_variable)
state 145
- 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
- 446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 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 .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 290
+ $default reduce using rule 328 (expr_without_variable)
state 146
- 271 expr_without_variable: "++ (T_INC)" rw_variable .
+ 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 .
- $default reduce using rule 271 (expr_without_variable)
+ $default reduce using rule 327 (expr_without_variable)
state 147
- 489 non_empty_array_pair_list: '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 291
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 379 class_name: "static (T_STATIC)" .
+
+ $default reduce using rule 379 (class_name)
state 148
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 484 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr
- 485 | expr .
- 488 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- "=> (T_DOUBLE_ARROW)" shift, and go to state 293
-
- $default reduce using rule 485 (non_empty_array_pair_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
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 304
state 149
- 329 expr_without_variable: '[' array_pair_list . ']'
+ 368 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name @60 function_call_parameter_list
+ 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 122
- ']' shift, and go to state 294
+ namespace_name go to state 305
state 150
- 481 array_pair_list: non_empty_array_pair_list . possible_comma
- 482 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr
- 483 | non_empty_array_pair_list . ',' expr
- 486 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 487 | non_empty_array_pair_list . ',' '&' w_variable
+ 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 .
- ',' shift, and go to state 295
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- $default reduce using rule 417 (possible_comma)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 380 (class_name)
+ $default reduce using rule 363 (@58)
- possible_comma go to state 296
+ @58 go to state 239
state 151
- 258 expr_without_variable: "clone (T_CLONE)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- $default reduce using rule 258 (expr_without_variable)
+ 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
+ 467 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 306
state 152
- 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 283 expr_without_variable: "-- (T_DEC)" rw_variable .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 297
+ $default reduce using rule 283 (expr_without_variable)
state 153
- 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" shift, and go to state 116
+ 449 rw_variable: variable .
- namespace_name go to state 298
+ $default reduce using rule 449 (rw_variable)
state 154
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 360 class_name: namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ 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
+ 468 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
- $default reduce using rule 360 (class_name)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 307
state 155
- 366 class_name_reference: class_name .
- 445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 281 expr_without_variable: "++ (T_INC)" rw_variable .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 299
-
- $default reduce using rule 366 (class_name_reference)
+ $default reduce using rule 281 (expr_without_variable)
state 156
- 251 new_expr: "new (T_NEW)" class_name_reference . @41 ctor_arguments
-
- $default reduce using rule 250 (@41)
-
- @41 go to state 300
+ 511 non_empty_array_pair_list: '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 308
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 157
- 367 class_name_reference: dynamic_class_name_reference .
-
- $default reduce using rule 367 (class_name_reference)
+ 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: expr . "=> (T_DOUBLE_ARROW)" expr
+ 507 | expr .
+ 510 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 310
+
+ $default reduce using rule 507 (non_empty_array_pair_list)
state 158
- 446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+ 355 combined_scalar: '[' array_pair_list . ']'
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 301
+ ']' shift, and go to state 311
state 159
- 370 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties
- 371 | base_variable .
+ 503 array_pair_list: non_empty_array_pair_list . possible_comma
+ 504 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr
+ 505 | non_empty_array_pair_list . ',' expr
+ 508 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 509 | non_empty_array_pair_list . ',' '&' w_variable
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 302
+ ',' shift, and go to state 312
- $default reduce using rule 371 (dynamic_class_name_reference)
+ $default reduce using rule 437 (possible_comma)
+ possible_comma go to state 313
-state 160
- 447 variable_class_name: reference_variable .
- 454 base_variable: reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+state 160
- '[' shift, and go to state 280
- '{' shift, and go to state 281
+ 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
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 447 (variable_class_name)
- $default reduce using rule 454 (base_variable)
+ $default reduce using rule 268 (expr_without_variable)
state 161
- 455 base_variable: simple_indirect_reference . reference_variable
- 473 simple_indirect_reference: simple_indirect_reference . '$'
+ 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- "variable (T_VARIABLE)" shift, and go to state 34
- '$' shift, and go to state 282
-
- reference_variable go to state 303
- compound_variable go to state 112
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 314
state 162
- 376 exit_expr: '(' . ')'
- 377 | '(' . expr ')'
+ 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 122
+
+ namespace_name go to state 315
+
+
+state 163
+
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 380 class_name: namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
+
+ $default reduce using rule 380 (class_name)
+
+
+state 164
+
+ 386 class_name_reference: class_name .
+ 467 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 316
+
+ $default reduce using rule 386 (class_name_reference)
+
+
+state 165
+
+ 261 new_expr: "new (T_NEW)" class_name_reference . $@44 ctor_arguments
+
+ $default reduce using rule 260 ($@44)
+
+ $@44 go to state 317
+
+
+state 166
+
+ 387 class_name_reference: dynamic_class_name_reference .
+
+ $default reduce using rule 387 (class_name_reference)
+
+
+state 167
+
+ 468 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 318
+
+
+state 168
+
+ 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 319
+
+ $default reduce using rule 391 (dynamic_class_name_reference)
+
+
+state 169
+
+ 469 variable_class_name: reference_variable .
+ 476 base_variable: reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
+
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
+
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 469 (variable_class_name)
+ $default reduce using rule 476 (base_variable)
+
+
+state 170
+
+ 477 base_variable: simple_indirect_reference . reference_variable
+ 495 simple_indirect_reference: simple_indirect_reference . '$'
+
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 298
+
+ reference_variable go to state 320
+ compound_variable go to state 117
+
+
+state 171
+
+ 396 exit_expr: '(' . ')'
+ 445 parenthesis_expr: '(' . expr ')'
+ 446 | '(' . yield_expr ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -5587,89 +6020,101 @@ state 162
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- ')' shift, and go to state 304
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 305
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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 122
+ "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 123
+ "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 124
+ "__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 321
+ '$' 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 229
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 230
+ 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
-state 163
+state 172
- 324 expr_without_variable: "exit (T_EXIT)" exit_expr .
+ 334 expr_without_variable: "exit (T_EXIT)" exit_expr .
- $default reduce using rule 324 (expr_without_variable)
+ $default reduce using rule 334 (expr_without_variable)
-state 164
+state 173
+
+ 397 exit_expr: parenthesis_expr .
+
+ $default reduce using rule 397 (exit_expr)
- 38 unticked_statement: "if (T_IF)" '(' . expr ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' . expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+
+state 174
+
+ 445 parenthesis_expr: '(' . expr ')'
+ 446 | '(' . yield_expr ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -5677,157 +6122,262 @@ state 164
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 306
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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 122
+ "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 123
+ "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 124
+ "__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 229
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 230
+ 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
-state 165
+state 175
+
+ 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)" ';'
+
+ ':' shift, and go to state 322
+
+ $default reduce using rule 36 ($@5)
+
+ $@5 go to state 323
+
+
+state 176
34 statement: "identifier (T_STRING)" ':' .
$default reduce using rule 34 (statement)
-state 166
+state 177
- 63 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';'
- 232 echo_expr_list: echo_expr_list . ',' expr
+ 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' . dim_offset ']'
- ',' shift, and go to state 307
- ';' shift, and go to state 308
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 325
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 167
+state 178
- 233 echo_expr_list: expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 233 (echo_expr_list)
+ 64 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';'
+ 242 echo_expr_list: echo_expr_list . ',' expr
+ ',' shift, and go to state 326
+ ';' shift, and go to state 327
-state 168
- 47 unticked_statement: "do (T_DO)" @11 . statement "while (T_WHILE)" '(' @12 expr ')' ';'
+state 179
+
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 243 (echo_expr_list)
+
+
+state 180
+
+ 47 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
@@ -5835,110 +6385,115 @@ state 168
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 309
- unticked_statement go to state 87
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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 124
+ "__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 328
+ 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 125
+ 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
-state 169
+state 181
- 44 unticked_statement: "while (T_WHILE)" '(' . @9 expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" $@9 . parenthesis_expr @10 while_statement
- $default reduce using rule 42 (@9)
+ '(' shift, and go to state 174
- @9 go to state 310
+ parenthesis_expr go to state 329
-state 170
+state 182
- 51 unticked_statement: "for (T_FOR)" '(' . for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 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
@@ -5946,85 +6501,89 @@ state 170
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 234 (for_expr)
-
- namespace_name go to state 83
- for_expr go to state 311
- non_empty_for_expr go to state 312
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 313
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 244 (for_expr)
+
+ namespace_name go to state 84
+ for_expr go to state 330
+ non_empty_for_expr go to state 331
+ 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 125
+ 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 332
+ 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
-state 171
+state 183
- 69 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 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)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -6032,729 +6591,781 @@ state 171
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 314
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 315
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 333
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 334
+ 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
-state 172
+state 184
- 74 unticked_statement: "declare (T_DECLARE)" @21 . '(' declare_list ')' declare_statement
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 . '(' declare_list ')' declare_statement
- '(' shift, and go to state 316
+ '(' shift, and go to state 335
-state 173
+state 185
- 53 unticked_statement: "switch (T_SWITCH)" '(' . expr ')' @16 switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr . $@16 switch_case_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 317
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 52 ($@16)
+ $@16 go to state 336
-state 174
+
+state 186
54 unticked_statement: "break (T_BREAK)" ';' .
$default reduce using rule 54 (unticked_statement)
-state 175
+state 187
55 unticked_statement: "break (T_BREAK)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ';' shift, and go to state 318
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ';' shift, and go to state 337
-state 176
+state 188
56 unticked_statement: "continue (T_CONTINUE)" ';' .
$default reduce using rule 56 (unticked_statement)
-state 177
+state 189
57 unticked_statement: "continue (T_CONTINUE)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ';' shift, and go to state 319
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ';' shift, and go to state 338
-state 178
+state 190
- 83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';'
+ 81 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';'
- ';' shift, and go to state 320
+ ';' shift, and go to state 339
-state 179
+state 191
25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
- '=' shift, and go to state 321
+ '=' shift, and go to state 340
-state 180
+state 192
58 unticked_statement: "return (T_RETURN)" ';' .
$default reduce using rule 58 (unticked_statement)
-state 181
+state 193
59 unticked_statement: "return (T_RETURN)" expr_without_variable . ';'
- 424 expr: expr_without_variable .
+ 444 expr: expr_without_variable .
- ';' shift, and go to state 322
+ ';' shift, and go to state 341
- $default reduce using rule 424 (expr)
+ $default reduce using rule 444 (expr)
-state 182
+state 194
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
-state 183
+state 195
60 unticked_statement: "return (T_RETURN)" variable . ';'
- 254 expr_without_variable: variable . '=' expr
- 255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 259 | variable . "+= (T_PLUS_EQUAL)" expr
- 260 | variable . "-= (T_MINUS_EQUAL)" expr
- 261 | variable . "*= (T_MUL_EQUAL)" expr
- 262 | variable . "/= (T_DIV_EQUAL)" expr
- 263 | variable . ".= (T_CONCAT_EQUAL)" expr
- 264 | variable . "%= (T_MOD_EQUAL)" expr
- 265 | variable . "&= (T_AND_EQUAL)" expr
- 266 | variable . "|= (T_OR_EQUAL)" expr
- 267 | variable . "^= (T_XOR_EQUAL)" expr
- 268 | variable . "<<= (T_SL_EQUAL)" expr
- 269 | variable . ">>= (T_SR_EQUAL)" expr
- 425 r_variable: variable .
- 427 rw_variable: variable .
-
- '=' shift, and go to state 264
- ">>= (T_SR_EQUAL)" shift, and go to state 265
- "<<= (T_SL_EQUAL)" shift, and go to state 266
- "^= (T_XOR_EQUAL)" shift, and go to state 267
- "|= (T_OR_EQUAL)" shift, and go to state 268
- "&= (T_AND_EQUAL)" shift, and go to state 269
- "%= (T_MOD_EQUAL)" shift, and go to state 270
- ".= (T_CONCAT_EQUAL)" shift, and go to state 271
- "/= (T_DIV_EQUAL)" shift, and go to state 272
- "*= (T_MUL_EQUAL)" shift, and go to state 273
- "-= (T_MINUS_EQUAL)" shift, and go to state 274
- "+= (T_PLUS_EQUAL)" shift, and go to state 275
- ';' shift, and go to state 323
-
- "-- (T_DEC)" reduce using rule 427 (rw_variable)
- "++ (T_INC)" reduce using rule 427 (rw_variable)
- $default reduce using rule 425 (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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+ ';' shift, and go to state 342
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ $default reduce using rule 447 (r_variable)
-state 184
+state 196
- 81 unticked_statement: "try (T_TRY)" @22 . '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 79 unticked_statement: "try (T_TRY)" $@22 . '{' inner_statement_list '}' catch_statement $@23 finally_statement
- '{' shift, and go to state 324
+ '{' shift, and go to state 343
-state 185
+state 197
- 82 unticked_statement: "throw (T_THROW)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ';' shift, and go to state 325
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ';' shift, and go to state 344
-state 186
+state 198
22 use_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
23 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 116
+ "identifier (T_STRING)" shift, and go to state 122
- namespace_name go to state 326
+ namespace_name go to state 345
-state 187
+state 199
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)"
- "as (T_AS)" shift, and go to state 327
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ "as (T_AS)" shift, and go to state 346
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
$default reduce using rule 20 (use_declaration)
-state 188
+state 200
16 top_statement: "use (T_USE)" use_declarations . ';'
18 use_declarations: use_declarations . ',' use_declaration
- ',' shift, and go to state 328
- ';' shift, and go to state 329
+ ',' shift, and go to state 347
+ ';' shift, and go to state 348
-state 189
+state 201
19 use_declarations: use_declaration .
$default reduce using rule 19 (use_declarations)
-state 190
+state 202
- 176 global_var: "variable (T_VARIABLE)" .
+ 186 global_var: "variable (T_VARIABLE)" .
- $default reduce using rule 176 (global_var)
+ $default reduce using rule 186 (global_var)
-state 191
+state 203
- 177 global_var: '$' . r_variable
- 178 | '$' . '{' expr '}'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '{' shift, and go to state 330
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- r_variable go to state 331
- variable go to state 332
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 187 global_var: '$' . r_variable
+ 188 | '$' . '{' expr '}'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '{' shift, and go to state 349
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ r_variable go to state 350
+ variable go to state 351
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 192
+state 204
- 61 unticked_statement: "global (T_GLOBAL)" global_var_list . ';'
- 174 global_var_list: global_var_list . ',' global_var
+ 62 unticked_statement: "global (T_GLOBAL)" global_var_list . ';'
+ 184 global_var_list: global_var_list . ',' global_var
- ',' shift, and go to state 333
- ';' shift, and go to state 334
+ ',' shift, and go to state 352
+ ';' shift, and go to state 353
-state 193
+state 205
- 175 global_var_list: global_var .
+ 185 global_var_list: global_var .
- $default reduce using rule 175 (global_var_list)
+ $default reduce using rule 185 (global_var_list)
-state 194
+state 206
- 107 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" .
+ 114 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" .
- $default reduce using rule 107 (class_entry_type)
+ $default reduce using rule 114 (class_entry_type)
-state 195
+state 207
- 105 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" .
+ 112 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" .
- $default reduce using rule 105 (class_entry_type)
+ $default reduce using rule 112 (class_entry_type)
-state 196
+state 208
- 181 static_var_list: "variable (T_VARIABLE)" .
- 182 | "variable (T_VARIABLE)" . '=' static_scalar
+ 191 static_var_list: "variable (T_VARIABLE)" .
+ 192 | "variable (T_VARIABLE)" . '=' static_scalar
- '=' shift, and go to state 335
+ '=' shift, and go to state 354
- $default reduce using rule 181 (static_var_list)
+ $default reduce using rule 191 (static_var_list)
-state 197
+state 209
- 62 unticked_statement: "static (T_STATIC)" static_var_list . ';'
- 179 static_var_list: static_var_list . ',' "variable (T_VARIABLE)"
- 180 | static_var_list . ',' "variable (T_VARIABLE)" '=' static_scalar
+ 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
- ',' shift, and go to state 336
- ';' shift, and go to state 337
+ ',' shift, and go to state 355
+ ';' shift, and go to state 356
-state 198
+state 210
- 335 expr_without_variable: "static (T_STATIC)" function . is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 346 expr_without_variable: "static (T_STATIC)" function . is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '&' shift, and go to state 231
+ '&' shift, and go to state 247
- $default reduce using rule 96 (is_reference)
+ $default reduce using rule 103 (is_reference)
- is_reference go to state 338
+ is_reference go to state 357
-state 199
+state 211
- 66 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- unset_variables go to state 339
- unset_variable go to state 340
- function_call go to state 97
- class_name go to state 142
- variable go to state 341
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 67 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ unset_variables go to state 358
+ unset_variable go to state 359
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 360
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 200
+state 212
- 504 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 342
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- isset_variables go to state 343
+ 526 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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 361
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 362
+ 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 363
+ isset_variable go to state 364
+ class_constant go to state 120
-state 201
- 505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 344
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+state 213
+ 527 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')'
+ 528 | "empty (T_EMPTY)" '(' . expr_without_variable ')'
-state 202
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 365
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 366
+ 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
+
+
+state 214
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
- ')' shift, and go to state 345
+ ')' shift, and go to state 367
-state 203
+state 215
- 253 expr_without_variable: "list (T_LIST)" '(' . @42 assignment_list ')' '=' expr
+ 263 expr_without_variable: "list (T_LIST)" '(' . $@45 assignment_list ')' '=' expr
- $default reduce using rule 252 (@42)
+ $default reduce using rule 262 ($@45)
- @42 go to state 346
+ $@45 go to state 368
-state 204
+state 216
- 328 expr_without_variable: "array (T_ARRAY)" '(' . array_pair_list ')'
+ 354 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
@@ -6762,118 +7373,122 @@ state 204
"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
- '&' shift, and go to state 147
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 480 (array_pair_list)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 148
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- array_pair_list go to state 347
- non_empty_array_pair_list go to state 150
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 156
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 502 (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 125
+ 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 157
+ 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 369
+ non_empty_array_pair_list go to state 159
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 205
+state 217
- 494 encaps_var: "variable (T_VARIABLE)" .
- 496 | "variable (T_VARIABLE)" . '[' @72 encaps_var_offset ']'
- 497 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
+ 516 encaps_var: "variable (T_VARIABLE)" .
+ 518 | "variable (T_VARIABLE)" . '[' $@75 encaps_var_offset ']'
+ 519 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
- '[' shift, and go to state 348
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 349
+ '[' shift, and go to state 370
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 371
- $default reduce using rule 494 (encaps_var)
+ $default reduce using rule 516 (encaps_var)
-state 206
+state 218
- 393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
- 493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+ 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
+ 515 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
- "variable (T_VARIABLE)" shift, and go to state 205
- "heredoc end (T_END_HEREDOC)" shift, and go to state 350
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 372
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- encaps_var go to state 351
+ encaps_var go to state 373
-state 207
+state 219
- 394 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" .
+ 414 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" .
- $default reduce using rule 394 (common_scalar)
+ $default reduce using rule 414 (common_scalar)
-state 208
+state 220
- 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}'
- 499 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
+ 520 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}'
+ 521 | "${ (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
@@ -6881,256 +7496,269 @@ state 208
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 352
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 353
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "variable name (T_STRING_VARNAME)" shift, and go to state 374
+ "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 123
+ "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 124
+ "__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 125
+ 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 375
+ 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
-state 209
+state 221
- 500 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 354
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 522 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 376
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 210
+state 222
- 413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)"
- 490 encaps_list: encaps_list . encaps_var
- 491 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 433 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)"
+ 512 encaps_list: encaps_list . encaps_var
+ 513 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355
- "heredoc end (T_END_HEREDOC)" shift, and go to state 356
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 377
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 378
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- encaps_var go to state 357
+ encaps_var go to state 379
-state 211
+state 223
- 492 encaps_list: encaps_var .
+ 514 encaps_list: encaps_var .
- $default reduce using rule 492 (encaps_list)
+ $default reduce using rule 514 (encaps_list)
-state 212
+state 224
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- 409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ 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
+ 429 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- "identifier (T_STRING)" shift, and go to state 116
+ "identifier (T_STRING)" shift, and go to state 122
- namespace_name go to state 358
+ namespace_name go to state 380
-state 213
+state 225
- 15 top_statement: "namespace (T_NAMESPACE)" '{' . @3 top_statement_list '}'
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' . $@3 top_statement_list '}'
- $default reduce using rule 14 (@3)
+ $default reduce using rule 14 ($@3)
- @3 go to state 359
+ $@3 go to state 381
-state 214
+state 226
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 '}'
+ 13 | "namespace (T_NAMESPACE)" namespace_name . '{' $@2 top_statement_list '}'
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- ';' shift, and go to state 360
- '{' shift, and go to state 361
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
+ ';' shift, and go to state 382
+ '{' shift, and go to state 383
-state 215
+state 227
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')'
- 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- 410 scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
+ 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 430 scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 362
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 362 (class_name)
- $default reduce using rule 410 (scalar)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 382 (class_name)
+ '(' reduce using rule 367 (@60)
+ $default reduce using rule 430 (scalar)
+ @60 go to state 384
-state 216
- 308 expr_without_variable: new_expr .
- 310 | '(' new_expr . ')' @48 instance_call
+state 228
- ')' shift, and go to state 363
+ 318 expr_without_variable: new_expr .
+ 320 | '(' new_expr . ')' @51 instance_call
- ')' [reduce using rule 308 (expr_without_variable)]
- $default reduce using rule 308 (expr_without_variable)
+ ')' shift, and go to state 385
+ ')' [reduce using rule 318 (expr_without_variable)]
+ $default reduce using rule 318 (expr_without_variable)
-state 217
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 307 | '(' expr . ')'
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 364
+state 229
+ 446 parenthesis_expr: '(' yield_expr . ')'
-state 218
+ ')' shift, and go to state 386
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+
+state 230
+
+ 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
+ 445 parenthesis_expr: '(' expr . ')'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ')' shift, and go to state 387
+
+
+state 231
+
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
35 unticked_statement: '{' inner_statement_list . '}'
- '}' shift, and go to state 365
+ '}' shift, and go to state 388
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 389
-state 219
+state 232
- 461 compound_variable: '$' '{' . expr '}'
+ 483 compound_variable: '$' '{' . expr '}'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -7138,244 +7766,434 @@ state 219
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 367
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 390
+ 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
-state 220
+state 233
- 379 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
- 493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+ 399 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
+ 515 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
- "variable (T_VARIABLE)" shift, and go to state 205
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- $default reduce using rule 379 (backticks_expr)
+ $default reduce using rule 399 (backticks_expr)
- encaps_var go to state 351
+ encaps_var go to state 373
-state 221
+state 234
- 330 expr_without_variable: '`' backticks_expr . '`'
+ 340 expr_without_variable: '`' backticks_expr . '`'
- '`' shift, and go to state 368
+ '`' shift, and go to state 391
-state 222
+state 235
- 380 backticks_expr: encaps_list .
- 490 encaps_list: encaps_list . encaps_var
- 491 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 400 backticks_expr: encaps_list .
+ 512 encaps_list: encaps_list . encaps_var
+ 513 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 377
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- $default reduce using rule 380 (backticks_expr)
+ $default reduce using rule 400 (backticks_expr)
- encaps_var go to state 357
+ encaps_var go to state 379
-state 223
+state 236
- 493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
+ 515 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
- "variable (T_VARIABLE)" shift, and go to state 205
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
- encaps_var go to state 351
+ encaps_var go to state 373
-state 224
+state 237
- 412 scalar: '"' encaps_list . '"'
- 490 encaps_list: encaps_list . encaps_var
- 491 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
+ 432 scalar: '"' encaps_list . '"'
+ 512 encaps_list: encaps_list . encaps_var
+ 513 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- "variable (T_VARIABLE)" shift, and go to state 205
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355
- "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208
- "{$ (T_CURLY_OPEN)" shift, and go to state 209
- '"' shift, and go to state 369
+ "variable (T_VARIABLE)" shift, and go to state 217
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 377
+ "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 220
+ "{$ (T_CURLY_OPEN)" shift, and go to state 221
+ '"' shift, and go to state 392
- encaps_var go to state 357
+ encaps_var go to state 379
-state 225
+state 238
6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" . "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 370
+ "identifier (T_STRING)" shift, and go to state 393
-state 226
+state 239
- 344 function_call: namespace_name '(' . @55 function_call_parameter_list ')'
+ 364 function_call: namespace_name @58 . function_call_parameter_list
- $default reduce using rule 343 (@55)
+ '(' shift, and go to state 394
- @55 go to state 371
+ function_call_parameter_list go to state 395
-state 227
+state 240
24 constant_declaration: constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
- "identifier (T_STRING)" shift, and go to state 372
+ "identifier (T_STRING)" shift, and go to state 396
-state 228
+state 241
17 top_statement: constant_declaration ';' .
$default reduce using rule 17 (top_statement)
-state 229
+state 242
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from @30 implements_list '{' class_statement_list '}'
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from $@32 implements_list '{' class_statement_list '}'
- "extends (T_EXTENDS)" shift, and go to state 373
+ "extends (T_EXTENDS)" shift, and go to state 397
- $default reduce using rule 108 (extends_from)
+ $default reduce using rule 115 (extends_from)
- extends_from go to state 374
+ extends_from go to state 398
-state 230
+state 243
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . @31 interface_extends_list '{' class_statement_list '}'
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . $@33 interface_extends_list '{' class_statement_list '}'
- $default reduce using rule 102 (@31)
+ $default reduce using rule 109 ($@33)
- @31 go to state 375
+ $@33 go to state 399
-state 231
+state 244
- 97 is_reference: '&' .
+ 61 unticked_statement: yield_expr ';' .
- $default reduce using rule 97 (is_reference)
+ $default reduce using rule 61 (unticked_statement)
-state 232
+state 245
+
+ 352 combined_scalar_offset: combined_scalar_offset '[' . 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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 400
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
- 99 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
- 333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
- "identifier (T_STRING)" shift, and go to state 376
- '(' shift, and go to state 377
+state 246
+ 351 combined_scalar_offset: combined_scalar '[' . dim_offset ']'
-state 233
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 401
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
- 450 array_function_dereference: function_call @69 . '[' dim_offset ']'
- '[' shift, and go to state 378
+state 247
+ 104 is_reference: '&' .
-state 234
+ $default reduce using rule 104 (is_reference)
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')'
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- 514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 379
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+state 248
- variable_without_objects go to state 381
- reference_variable go to state 382
- compound_variable go to state 112
- variable_name go to state 383
- simple_indirect_reference go to state 384
+ 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)" shift, and go to state 402
-state 235
+ $default reduce using rule 343 (@56)
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" . @46 expr
+ @56 go to state 403
- $default reduce using rule 278 (@46)
- @46 go to state 385
+state 249
+ 472 array_function_dereference: function_call $@72 . '[' dim_offset ']'
-state 236
+ '[' shift, and go to state 404
- 282 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr
+
+state 250
+
+ 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
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ 539 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+
+ "identifier (T_STRING)" shift, and go to state 405
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 407
+ reference_variable go to state 408
+ compound_variable go to state 117
+ variable_name go to state 409
+ simple_indirect_reference go to state 410
+
+
+state 251
+
+ 289 expr_without_variable: expr "or (T_LOGICAL_OR)" . $@49 expr
+
+ $default reduce using rule 288 ($@49)
+
+ $@49 go to state 411
+
+
+state 252
+
+ 292 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
@@ -7383,119 +8201,123 @@ state 236
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 386
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 412
+ 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
-state 237
+state 253
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" . @47 expr
+ 291 expr_without_variable: expr "and (T_LOGICAL_AND)" . $@50 expr
- $default reduce using rule 280 (@47)
+ $default reduce using rule 290 ($@50)
- @47 go to state 387
+ $@50 go to state 413
-state 238
+state 254
- 313 expr_without_variable: expr '?' . @49 expr ':' @50 expr
- 315 | expr '?' . ':' @51 expr
+ 323 expr_without_variable: expr '?' . $@52 expr ':' $@53 expr
+ 325 | expr '?' . ':' $@54 expr
- ':' shift, and go to state 388
+ ':' shift, and go to state 414
- $default reduce using rule 311 (@49)
+ $default reduce using rule 321 ($@52)
- @49 go to state 389
+ $@52 go to state 415
-state 239
+state 255
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . @44 expr
+ 285 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . $@47 expr
- $default reduce using rule 274 (@44)
+ $default reduce using rule 284 ($@47)
- @44 go to state 390
+ $@47 go to state 416
-state 240
+state 256
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . @45 expr
+ 287 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . $@48 expr
- $default reduce using rule 276 (@45)
+ $default reduce using rule 286 ($@48)
- @45 go to state 391
+ $@48 go to state 417
-state 241
+state 257
- 283 expr_without_variable: expr '|' . expr
+ 293 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
@@ -7503,80 +8325,84 @@ state 241
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 392
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 418
+ 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
-state 242
+state 258
- 285 expr_without_variable: expr '^' . expr
+ 295 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
@@ -7584,80 +8410,84 @@ state 242
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 393
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 419
+ 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
-state 243
+state 259
- 284 expr_without_variable: expr '&' . expr
+ 294 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
@@ -7665,80 +8495,84 @@ state 243
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 394
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 420
+ 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
-state 244
+state 260
- 299 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr
+ 309 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
@@ -7746,80 +8580,84 @@ state 244
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 395
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 421
+ 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
-state 245
+state 261
- 298 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr
+ 308 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
@@ -7827,80 +8665,84 @@ state 245
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 396
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 422
+ 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
-state 246
+state 262
- 301 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr
+ 311 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
@@ -7908,80 +8750,84 @@ state 246
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 397
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 423
+ 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
-state 247
+state 263
- 300 expr_without_variable: expr "== (T_IS_EQUAL)" . expr
+ 310 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
@@ -7989,80 +8835,84 @@ state 247
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 398
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 248
+state 264
- 302 expr_without_variable: expr '<' . expr
+ 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
@@ -8070,80 +8920,84 @@ state 248
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 399
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 425
+ 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
-state 249
+state 265
- 304 expr_without_variable: expr '>' . expr
+ 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
@@ -8151,80 +9005,84 @@ state 249
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 400
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 426
+ 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
-state 250
+state 266
- 305 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr
+ 315 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
@@ -8232,80 +9090,84 @@ state 250
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 401
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 427
+ 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
-state 251
+state 267
- 303 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr
+ 313 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
@@ -8313,80 +9175,84 @@ state 251
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 402
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 428
+ 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
-state 252
+state 268
- 293 expr_without_variable: expr ">> (T_SR)" . expr
+ 303 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
@@ -8394,80 +9260,84 @@ state 252
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 403
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 429
+ 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
-state 253
+state 269
- 292 expr_without_variable: expr "<< (T_SL)" . expr
+ 302 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
@@ -8475,80 +9345,84 @@ state 253
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 404
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 254
+state 270
- 287 expr_without_variable: expr '+' . expr
+ 297 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
@@ -8556,80 +9430,84 @@ state 254
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 405
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 255
+state 271
- 288 expr_without_variable: expr '-' . expr
+ 298 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
@@ -8637,80 +9515,84 @@ state 255
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 406
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 256
+state 272
- 286 expr_without_variable: expr '.' . expr
+ 296 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
@@ -8718,80 +9600,84 @@ state 256
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 407
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 257
+state 273
- 289 expr_without_variable: expr '*' . expr
+ 299 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
@@ -8799,80 +9685,84 @@ state 257
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 408
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 258
+state 274
- 290 expr_without_variable: expr '/' . expr
+ 300 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
@@ -8880,80 +9770,84 @@ state 258
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 409
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 259
+state 275
- 291 expr_without_variable: expr '%' . expr
+ 301 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
@@ -8961,126 +9855,130 @@ state 259
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 410
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 260
+state 276
- 306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference
+ 316 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 152
- "\\ (T_NS_SEPARATOR)" shift, and go to state 153
- '$' shift, and go to state 80
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 161
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 162
+ '$' shift, and go to state 81
- namespace_name go to state 154
- class_name go to state 155
- class_name_reference go to state 411
- dynamic_class_name_reference go to state 157
- static_member go to state 106
- variable_class_name go to state 158
- base_variable go to state 159
- reference_variable go to state 160
- compound_variable go to state 112
- simple_indirect_reference go to state 161
+ namespace_name go to state 163
+ class_name go to state 164
+ class_name_reference go to state 437
+ dynamic_class_name_reference go to state 166
+ static_member go to state 111
+ variable_class_name go to state 167
+ base_variable go to state 168
+ reference_variable go to state 169
+ compound_variable go to state 117
+ simple_indirect_reference go to state 170
-state 261
+state 277
- 65 unticked_statement: expr ';' .
+ 66 unticked_statement: expr ';' .
- $default reduce using rule 65 (unticked_statement)
+ $default reduce using rule 66 (unticked_statement)
-state 262
+state 278
- 272 expr_without_variable: rw_variable "-- (T_DEC)" .
+ 282 expr_without_variable: rw_variable "-- (T_DEC)" .
- $default reduce using rule 272 (expr_without_variable)
+ $default reduce using rule 282 (expr_without_variable)
-state 263
+state 279
- 270 expr_without_variable: rw_variable "++ (T_INC)" .
+ 280 expr_without_variable: rw_variable "++ (T_INC)" .
- $default reduce using rule 270 (expr_without_variable)
+ $default reduce using rule 280 (expr_without_variable)
-state 264
+state 280
- 254 expr_without_variable: variable '=' . expr
- 255 | variable '=' . '&' variable
- 257 | variable '=' . '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 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)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -9088,81 +9986,85 @@ state 264
"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
- '&' shift, and go to state 412
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 413
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 438
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 265
+state 281
- 269 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr
+ 279 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
@@ -9170,80 +10072,84 @@ state 265
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 414
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 266
+state 282
- 268 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr
+ 278 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
@@ -9251,80 +10157,84 @@ state 266
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 415
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 267
+state 283
- 267 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr
+ 277 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
@@ -9332,80 +10242,84 @@ state 267
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 416
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 268
+state 284
- 266 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr
+ 276 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
@@ -9413,80 +10327,84 @@ state 268
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 417
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 269
+state 285
- 265 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr
+ 275 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
@@ -9494,80 +10412,84 @@ state 269
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 418
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 270
+state 286
- 264 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr
+ 274 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
@@ -9575,80 +10497,84 @@ state 270
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 419
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 271
+state 287
- 263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr
+ 273 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
@@ -9656,80 +10582,84 @@ state 271
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 420
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 272
+state 288
- 262 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr
+ 272 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
@@ -9737,80 +10667,84 @@ state 272
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 421
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 273
+state 289
- 261 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr
+ 271 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
@@ -9818,80 +10752,84 @@ state 273
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 422
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 274
+state 290
- 260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr
+ 270 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
@@ -9899,80 +10837,84 @@ state 274
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 423
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 449
+ 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
-state 275
+state 291
- 259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr
+ 269 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
@@ -9980,108 +10922,112 @@ state 275
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 424
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 450
+ 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
-state 276
+state 292
- 358 function_call: variable_without_objects '(' . @62 function_call_parameter_list ')'
+ 378 function_call: variable_without_objects $@65 . function_call_parameter_list
- $default reduce using rule 357 (@62)
+ '(' shift, and go to state 394
- @62 go to state 425
+ function_call_parameter_list go to state 451
-state 277
+state 293
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')'
- 446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- 515 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+ 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
+ 468 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+ 540 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 426
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+ "identifier (T_STRING)" shift, and go to state 452
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
- variable_without_objects go to state 427
- reference_variable go to state 382
- compound_variable go to state 112
- variable_name go to state 428
- simple_indirect_reference go to state 384
+ variable_without_objects go to state 453
+ reference_variable go to state 408
+ compound_variable go to state 117
+ variable_name go to state 454
+ simple_indirect_reference go to state 410
-state 278
+state 294
- 448 array_function_dereference: array_function_dereference '[' . dim_offset ']'
+ 470 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
@@ -10089,92 +11035,96 @@ state 278
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 430
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 455
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 279
+state 295
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . @65 object_property @66 method_or_not variable_properties
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . $@68 object_property $@69 method_or_not variable_properties
- $default reduce using rule 428 (@65)
+ $default reduce using rule 450 ($@68)
- @65 go to state 431
+ $@68 go to state 456
-state 280
+state 296
- 457 reference_variable: reference_variable '[' . dim_offset ']'
+ 479 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
@@ -10182,83 +11132,87 @@ state 280
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 432
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 457
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 281
+state 297
- 458 reference_variable: reference_variable '{' . expr '}'
+ 480 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
@@ -10266,278 +11220,372 @@ state 281
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 433
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 282
+state 298
- 461 compound_variable: '$' . '{' expr '}'
- 473 simple_indirect_reference: simple_indirect_reference '$' .
+ 483 compound_variable: '$' . '{' expr '}'
+ 495 simple_indirect_reference: simple_indirect_reference '$' .
- '{' shift, and go to state 219
+ '{' shift, and go to state 232
- $default reduce using rule 473 (simple_indirect_reference)
+ $default reduce using rule 495 (simple_indirect_reference)
-state 283
+state 299
- 444 variable_without_objects: simple_indirect_reference reference_variable .
- 455 base_variable: simple_indirect_reference reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+ 466 variable_without_objects: simple_indirect_reference reference_variable .
+ 477 base_variable: simple_indirect_reference reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
- '[' shift, and go to state 280
- '{' shift, and go to state 281
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
- '(' reduce using rule 444 (variable_without_objects)
- $default reduce using rule 455 (base_variable)
+ '(' reduce using rule 466 (variable_without_objects)
+ $default reduce using rule 477 (base_variable)
-state 284
+state 300
- 333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 344 expr_without_variable: function is_reference . @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '(' shift, and go to state 377
+ $default reduce using rule 343 (@56)
+ @56 go to state 403
-state 285
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 508 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 434
+state 301
+ 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: "eval (T_EVAL)" '(' expr . ')'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ')' shift, and go to state 459
-state 286
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 326 | '@' @52 expr .
+state 302
- $default reduce using rule 326 (expr_without_variable)
+ 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)" 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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 460
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 461
+ 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
-state 287
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+state 303
- "identifier (T_STRING)" shift, and go to state 116
+ 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 .
+
+ $default reduce using rule 336 (expr_without_variable)
- namespace_name go to state 435
+state 304
-state 288
+ 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)" shift, and go to state 122
+
+ namespace_name go to state 462
+
+
+state 305
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')'
- 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . @60 function_call_parameter_list
+ 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 362
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- $default reduce using rule 362 (class_name)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 382 (class_name)
+ $default reduce using rule 367 (@60)
+ @60 go to state 384
-state 289
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')'
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+state 306
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+ 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
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- variable_without_objects go to state 381
- reference_variable go to state 382
- compound_variable go to state 112
- variable_name go to state 383
- simple_indirect_reference go to state 384
+ "identifier (T_STRING)" shift, and go to state 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
+ variable_without_objects go to state 407
+ reference_variable go to state 408
+ compound_variable go to state 117
+ variable_name go to state 409
+ simple_indirect_reference go to state 410
-state 290
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')'
- 446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+state 307
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+ 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
+ 468 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- variable_without_objects go to state 427
- reference_variable go to state 382
- compound_variable go to state 112
- variable_name go to state 428
- simple_indirect_reference go to state 384
+ "identifier (T_STRING)" shift, and go to state 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
+ variable_without_objects go to state 453
+ reference_variable go to state 408
+ compound_variable go to state 117
+ variable_name go to state 454
+ simple_indirect_reference go to state 410
-state 291
- 489 non_empty_array_pair_list: '&' w_variable .
+state 308
+
+ 511 non_empty_array_pair_list: '&' w_variable .
- $default reduce using rule 489 (non_empty_array_pair_list)
+ $default reduce using rule 511 (non_empty_array_pair_list)
-state 292
+state 309
- 426 w_variable: variable .
+ 448 w_variable: variable .
- $default reduce using rule 426 (w_variable)
+ $default reduce using rule 448 (w_variable)
-state 293
+state 310
- 484 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr
- 488 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
+ 506 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr
+ 510 | 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
@@ -10545,92 +11593,96 @@ state 293
"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
- '&' shift, and go to state 437
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 438
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 464
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 465
+ 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
-state 294
+state 311
- 329 expr_without_variable: '[' array_pair_list ']' .
+ 355 combined_scalar: '[' array_pair_list ']' .
- $default reduce using rule 329 (expr_without_variable)
+ $default reduce using rule 355 (combined_scalar)
-state 295
+state 312
- 418 possible_comma: ',' .
- 482 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr
- 483 | non_empty_array_pair_list ',' . expr
- 486 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable
- 487 | non_empty_array_pair_list ',' . '&' w_variable
+ 438 possible_comma: ',' .
+ 504 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr
+ 505 | non_empty_array_pair_list ',' . expr
+ 508 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable
+ 509 | 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
@@ -10638,295 +11690,188 @@ state 295
"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
- '&' shift, and go to state 439
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 418 (possible_comma)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 440
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 466
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 438 (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 125
+ 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 467
+ 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
-state 296
+state 313
- 481 array_pair_list: non_empty_array_pair_list possible_comma .
+ 503 array_pair_list: non_empty_array_pair_list possible_comma .
- $default reduce using rule 481 (array_pair_list)
+ $default reduce using rule 503 (array_pair_list)
-state 297
+state 314
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- "identifier (T_STRING)" shift, and go to state 116
+ "identifier (T_STRING)" shift, and go to state 122
- namespace_name go to state 441
+ namespace_name go to state 468
-state 298
+state 315
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- $default reduce using rule 362 (class_name)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
+ $default reduce using rule 382 (class_name)
-state 299
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+state 316
- "variable (T_VARIABLE)" shift, and go to state 34
- '$' shift, and go to state 80
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- variable_without_objects go to state 442
- reference_variable go to state 382
- compound_variable go to state 112
- simple_indirect_reference go to state 384
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 81
+ variable_without_objects go to state 469
+ reference_variable go to state 408
+ compound_variable go to state 117
+ simple_indirect_reference go to state 410
-state 300
- 251 new_expr: "new (T_NEW)" class_name_reference @41 . ctor_arguments
+state 317
- '(' shift, and go to state 443
+ 261 new_expr: "new (T_NEW)" class_name_reference $@44 . ctor_arguments
- $default reduce using rule 381 (ctor_arguments)
+ '(' shift, and go to state 394
- ctor_arguments go to state 444
+ $default reduce using rule 401 (ctor_arguments)
+ function_call_parameter_list go to state 470
+ ctor_arguments go to state 471
-state 301
- 446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
+state 318
- "variable (T_VARIABLE)" shift, and go to state 34
- '$' shift, and go to state 80
+ 468 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
- variable_without_objects go to state 445
- reference_variable go to state 382
- compound_variable go to state 112
- simple_indirect_reference go to state 384
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 81
+ variable_without_objects go to state 472
+ reference_variable go to state 408
+ compound_variable go to state 117
+ simple_indirect_reference go to state 410
-state 302
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . @63 object_property @64 dynamic_class_name_variable_properties
+state 319
- $default reduce using rule 368 (@63)
+ 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . $@66 object_property $@67 dynamic_class_name_variable_properties
- @63 go to state 446
+ $default reduce using rule 388 ($@66)
+ $@66 go to state 473
-state 303
- 455 base_variable: simple_indirect_reference reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+state 320
- '[' shift, and go to state 280
- '{' shift, and go to state 281
+ 477 base_variable: simple_indirect_reference reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
- $default reduce using rule 455 (base_variable)
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
+ $default reduce using rule 477 (base_variable)
-state 304
- 376 exit_expr: '(' ')' .
+state 321
- $default reduce using rule 376 (exit_expr)
+ 396 exit_expr: '(' ')' .
+ $default reduce using rule 396 (exit_expr)
-state 305
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 377 exit_expr: '(' expr . ')'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 447
+state 322
+ 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' . $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-state 306
+ $default reduce using rule 39 ($@7)
- 38 unticked_statement: "if (T_IF)" '(' expr . ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' expr . ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 448
+ $@7 go to state 474
-state 307
+state 323
- 232 echo_expr_list: echo_expr_list ',' . expr
+ 38 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
@@ -10934,94 +11879,174 @@ state 307
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 449
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
+ "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 124
+ "__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 475
+ 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 125
+ 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
-state 308
- 63 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' .
+state 324
- $default reduce using rule 63 (unticked_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
+ 485 dim_offset: expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 485 (dim_offset)
-state 309
+state 325
- 47 unticked_statement: "do (T_DO)" @11 statement . "while (T_WHILE)" '(' @12 expr ')' ';'
+ 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset . ']'
- "while (T_WHILE)" shift, and go to state 450
+ ']' shift, and go to state 476
-state 310
+state 326
- 44 unticked_statement: "while (T_WHILE)" '(' @9 . expr ')' @10 while_statement
+ 242 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
@@ -11029,396 +12054,373 @@ state 310
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 451
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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
-state 311
+state 327
- 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 64 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' .
- ';' shift, and go to state 452
+ $default reduce using rule 64 (unticked_statement)
-state 312
+state 328
- 235 for_expr: non_empty_for_expr .
- 237 non_empty_for_expr: non_empty_for_expr . ',' @38 expr
+ 47 unticked_statement: "do (T_DO)" $@11 statement . "while (T_WHILE)" $@12 parenthesis_expr ';'
- ',' shift, and go to state 453
+ "while (T_WHILE)" shift, and go to state 478
- $default reduce using rule 235 (for_expr)
+state 329
-state 313
+ 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr . @10 while_statement
- 238 non_empty_for_expr: expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 238 (non_empty_for_expr)
+ $default reduce using rule 43 (@10)
+ @10 go to state 479
-state 314
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
- 424 expr: expr_without_variable .
+state 330
- "as (T_AS)" shift, and go to state 454
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- $default reduce using rule 424 (expr)
+ ';' shift, and go to state 480
-state 315
+state 331
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 254 expr_without_variable: variable . '=' expr
- 255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 259 | variable . "+= (T_PLUS_EQUAL)" expr
- 260 | variable . "-= (T_MINUS_EQUAL)" expr
- 261 | variable . "*= (T_MUL_EQUAL)" expr
- 262 | variable . "/= (T_DIV_EQUAL)" expr
- 263 | variable . ".= (T_CONCAT_EQUAL)" expr
- 264 | variable . "%= (T_MOD_EQUAL)" expr
- 265 | variable . "&= (T_AND_EQUAL)" expr
- 266 | variable . "|= (T_OR_EQUAL)" expr
- 267 | variable . "^= (T_XOR_EQUAL)" expr
- 268 | variable . "<<= (T_SL_EQUAL)" expr
- 269 | variable . ">>= (T_SR_EQUAL)" expr
- 425 r_variable: variable .
- 427 rw_variable: variable .
-
- '=' shift, and go to state 264
- ">>= (T_SR_EQUAL)" shift, and go to state 265
- "<<= (T_SL_EQUAL)" shift, and go to state 266
- "^= (T_XOR_EQUAL)" shift, and go to state 267
- "|= (T_OR_EQUAL)" shift, and go to state 268
- "&= (T_AND_EQUAL)" shift, and go to state 269
- "%= (T_MOD_EQUAL)" shift, and go to state 270
- ".= (T_CONCAT_EQUAL)" shift, and go to state 271
- "/= (T_DIV_EQUAL)" shift, and go to state 272
- "*= (T_MUL_EQUAL)" shift, and go to state 273
- "-= (T_MINUS_EQUAL)" shift, and go to state 274
- "+= (T_PLUS_EQUAL)" shift, and go to state 275
- "as (T_AS)" shift, and go to state 455
-
- "-- (T_DEC)" reduce using rule 427 (rw_variable)
- "++ (T_INC)" reduce using rule 427 (rw_variable)
- $default reduce using rule 425 (r_variable)
+ 245 for_expr: non_empty_for_expr .
+ 247 non_empty_for_expr: non_empty_for_expr . ',' $@41 expr
+ ',' shift, and go to state 481
-state 316
+ $default reduce using rule 245 (for_expr)
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' . declare_list ')' declare_statement
- "identifier (T_STRING)" shift, and go to state 456
+state 332
- declare_list go to state 457
+ 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
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 248 (non_empty_for_expr)
-state 317
+state 333
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr . ')' @16 switch_case_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 458
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+ 444 expr: expr_without_variable .
+ "as (T_AS)" shift, and go to state 482
+
+ $default reduce using rule 444 (expr)
+
+
+state 334
+
+ 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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+ "as (T_AS)" shift, and go to state 483
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ $default reduce using rule 447 (r_variable)
+
+
+state 335
+
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' . declare_list ')' declare_statement
+
+ "identifier (T_STRING)" shift, and go to state 484
+
+ declare_list go to state 485
-state 318
+
+state 336
+
+ 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 . switch_case_list
+
+ ':' shift, and go to state 486
+ '{' shift, and go to state 487
+
+ switch_case_list go to state 488
+
+
+state 337
55 unticked_statement: "break (T_BREAK)" expr ';' .
$default reduce using rule 55 (unticked_statement)
-state 319
+state 338
57 unticked_statement: "continue (T_CONTINUE)" expr ';' .
$default reduce using rule 57 (unticked_statement)
-state 320
+state 339
- 83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' .
+ 81 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' .
- $default reduce using rule 83 (unticked_statement)
+ $default reduce using rule 81 (unticked_statement)
-state 321
+state 340
25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 470
- static_class_constant go to state 471
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 501
+ static_class_constant go to state 502
-state 322
+state 341
59 unticked_statement: "return (T_RETURN)" expr_without_variable ';' .
$default reduce using rule 59 (unticked_statement)
-state 323
+state 342
60 unticked_statement: "return (T_RETURN)" variable ';' .
$default reduce using rule 60 (unticked_statement)
-state 324
+state 343
- 81 unticked_statement: "try (T_TRY)" @22 '{' . inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 79 unticked_statement: "try (T_TRY)" $@22 '{' . inner_statement_list '}' catch_statement $@23 finally_statement
$default reduce using rule 28 (inner_statement_list)
- inner_statement_list go to state 472
+ inner_statement_list go to state 503
-state 325
+state 344
- 82 unticked_statement: "throw (T_THROW)" expr ';' .
+ 80 unticked_statement: "throw (T_THROW)" expr ';' .
- $default reduce using rule 82 (unticked_statement)
+ $default reduce using rule 80 (unticked_statement)
-state 326
+state 345
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)" shift, and go to state 473
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ "as (T_AS)" shift, and go to state 504
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
$default reduce using rule 22 (use_declaration)
-state 327
+state 346
21 use_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 474
+ "identifier (T_STRING)" shift, and go to state 505
-state 328
+state 347
18 use_declarations: use_declarations ',' . use_declaration
- "identifier (T_STRING)" shift, and go to state 116
- "\\ (T_NS_SEPARATOR)" shift, and go to state 186
+ "identifier (T_STRING)" shift, and go to state 122
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 198
- namespace_name go to state 187
- use_declaration go to state 475
+ namespace_name go to state 199
+ use_declaration go to state 506
-state 329
+state 348
16 top_statement: "use (T_USE)" use_declarations ';' .
$default reduce using rule 16 (top_statement)
-state 330
+state 349
- 178 global_var: '$' '{' . expr '}'
+ 188 global_var: '$' '{' . expr '}'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -11426,455 +12428,562 @@ state 330
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 476
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 507
+ 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
-state 331
+state 350
- 177 global_var: '$' r_variable .
+ 187 global_var: '$' r_variable .
- $default reduce using rule 177 (global_var)
+ $default reduce using rule 187 (global_var)
-state 332
+state 351
- 425 r_variable: variable .
+ 447 r_variable: variable .
- $default reduce using rule 425 (r_variable)
+ $default reduce using rule 447 (r_variable)
-state 333
+state 352
- 174 global_var_list: global_var_list ',' . global_var
+ 184 global_var_list: global_var_list ',' . global_var
- "variable (T_VARIABLE)" shift, and go to state 190
- '$' shift, and go to state 191
+ "variable (T_VARIABLE)" shift, and go to state 202
+ '$' shift, and go to state 203
- global_var go to state 477
+ global_var go to state 508
-state 334
+state 353
- 61 unticked_statement: "global (T_GLOBAL)" global_var_list ';' .
+ 62 unticked_statement: "global (T_GLOBAL)" global_var_list ';' .
- $default reduce using rule 61 (unticked_statement)
+ $default reduce using rule 62 (unticked_statement)
-state 335
+state 354
- 182 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 478
- static_class_constant go to state 471
+ 192 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 509
+ static_class_constant go to state 502
-state 336
+state 355
- 179 static_var_list: static_var_list ',' . "variable (T_VARIABLE)"
- 180 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar
+ 189 static_var_list: static_var_list ',' . "variable (T_VARIABLE)"
+ 190 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar
- "variable (T_VARIABLE)" shift, and go to state 479
+ "variable (T_VARIABLE)" shift, and go to state 510
-state 337
+state 356
- 62 unticked_statement: "static (T_STATIC)" static_var_list ';' .
+ 63 unticked_statement: "static (T_STATIC)" static_var_list ';' .
- $default reduce using rule 62 (unticked_statement)
+ $default reduce using rule 63 (unticked_statement)
-state 338
+state 357
- 335 expr_without_variable: "static (T_STATIC)" function is_reference . '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference . @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- '(' shift, and go to state 480
+ $default reduce using rule 345 (@57)
+ @57 go to state 511
-state 339
- 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';'
- 92 unset_variables: unset_variables . ',' unset_variable
+state 358
- ',' shift, and go to state 481
- ')' shift, and go to state 482
+ 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';'
+ 99 unset_variables: unset_variables . ',' unset_variable
+ ',' shift, and go to state 512
+ ')' shift, and go to state 513
-state 340
- 91 unset_variables: unset_variable .
+state 359
- $default reduce using rule 91 (unset_variables)
+ 98 unset_variables: unset_variable .
+ $default reduce using rule 98 (unset_variables)
-state 341
- 93 unset_variable: variable .
+state 360
- $default reduce using rule 93 (unset_variable)
+ 100 unset_variable: variable .
+ $default reduce using rule 100 (unset_variable)
-state 342
- 511 isset_variables: variable .
+state 361
- $default reduce using rule 511 (isset_variables)
+ 444 expr: expr_without_variable .
+ 538 isset_variable: expr_without_variable .
+ ',' reduce using rule 538 (isset_variable)
+ ')' reduce using rule 538 (isset_variable)
+ $default reduce using rule 444 (expr)
-state 343
- 504 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')'
- 513 isset_variables: isset_variables . ',' @73 variable
+state 362
- ',' shift, and go to state 483
- ')' shift, and go to state 484
+ 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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+ 537 isset_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ ',' reduce using rule 537 (isset_variable)
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ ')' reduce using rule 537 (isset_variable)
+ $default reduce using rule 447 (r_variable)
-state 344
+state 363
- 505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')'
+ 526 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')'
+ 536 isset_variables: isset_variables . ',' $@76 isset_variable
- ')' shift, and go to state 485
+ ',' shift, and go to state 514
+ ')' shift, and go to state 515
-state 345
+state 364
+
+ 534 isset_variables: isset_variable .
+
+ $default reduce using rule 534 (isset_variables)
+
+
+state 365
+
+ 444 expr: expr_without_variable .
+ 528 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable . ')'
+
+ ')' shift, and go to state 516
+
+ $default reduce using rule 444 (expr)
+
+
+state 366
+
+ 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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+ 527 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')'
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+ ')' shift, and go to state 517
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ $default reduce using rule 447 (r_variable)
+
+
+state 367
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
- ';' shift, and go to state 486
+ ';' shift, and go to state 518
-state 346
+state 368
- 253 expr_without_variable: "list (T_LIST)" '(' @42 . assignment_list ')' '=' expr
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "list (T_LIST)" shift, and go to state 487
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- $default reduce using rule 479 (assignment_list_element)
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 488
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- assignment_list go to state 489
- assignment_list_element go to state 490
+ 263 expr_without_variable: "list (T_LIST)" '(' $@45 . assignment_list ')' '=' expr
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 519
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ $default reduce using rule 501 (assignment_list_element)
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 520
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 521
+ assignment_list_element go to state 522
-state 347
+state 369
- 328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list . ')'
+ 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list . ')'
- ')' shift, and go to state 491
+ ')' shift, and go to state 523
-state 348
+state 370
- 496 encaps_var: "variable (T_VARIABLE)" '[' . @72 encaps_var_offset ']'
+ 518 encaps_var: "variable (T_VARIABLE)" '[' . $@75 encaps_var_offset ']'
- $default reduce using rule 495 (@72)
+ $default reduce using rule 517 ($@75)
- @72 go to state 492
+ $@75 go to state 524
-state 349
+state 371
- 497 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)"
+ 519 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)"
- "identifier (T_STRING)" shift, and go to state 493
+ "identifier (T_STRING)" shift, and go to state 525
-state 350
+state 372
- 393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" .
+ 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" .
- $default reduce using rule 393 (common_scalar)
+ $default reduce using rule 413 (common_scalar)
-state 351
+state 373
- 493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var .
+ 515 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var .
- $default reduce using rule 493 (encaps_list)
+ $default reduce using rule 515 (encaps_list)
-state 352
+state 374
- 406 scalar: "variable name (T_STRING_VARNAME)" .
- 499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}'
+ 426 scalar: "variable name (T_STRING_VARNAME)" .
+ 521 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}'
- '[' shift, and go to state 494
+ '[' shift, and go to state 526
- $default reduce using rule 406 (scalar)
+ $default reduce using rule 426 (scalar)
-state 353
+state 375
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 495
+ 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
+ 520 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 527
-state 354
+state 376
- 500 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}'
+ 522 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}'
- '}' shift, and go to state 496
+ '}' shift, and go to state 528
-state 355
+state 377
- 491 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
+ 513 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
- $default reduce using rule 491 (encaps_list)
+ $default reduce using rule 513 (encaps_list)
-state 356
+state 378
- 413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" .
+ 433 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" .
- $default reduce using rule 413 (scalar)
+ $default reduce using rule 433 (scalar)
-state 357
+state 379
- 490 encaps_list: encaps_list encaps_var .
+ 512 encaps_list: encaps_list encaps_var .
- $default reduce using rule 490 (encaps_list)
+ $default reduce using rule 512 (encaps_list)
-state 358
+state 380
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ 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 .
+ 429 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 497
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 361 (class_name)
- $default reduce using rule 409 (scalar)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 381 (class_name)
+ '(' reduce using rule 365 (@59)
+ $default reduce using rule 429 (scalar)
+ @59 go to state 529
-state 359
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 . top_statement_list '}'
+state 381
+
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 . top_statement_list '}'
$default reduce using rule 4 (top_statement_list)
- top_statement_list go to state 498
+ top_statement_list go to state 530
-state 360
+state 382
11 top_statement: "namespace (T_NAMESPACE)" namespace_name ';' .
$default reduce using rule 11 (top_statement)
-state 361
+state 383
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . @2 top_statement_list '}'
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . $@2 top_statement_list '}'
- $default reduce using rule 12 (@2)
+ $default reduce using rule 12 ($@2)
- @2 go to state 499
+ $@2 go to state 531
-state 362
+state 384
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' . @57 function_call_parameter_list ')'
+ 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 . function_call_parameter_list
- $default reduce using rule 347 (@57)
+ '(' shift, and go to state 394
- @57 go to state 500
+ function_call_parameter_list go to state 532
-state 363
+state 385
- 310 expr_without_variable: '(' new_expr ')' . @48 instance_call
+ 320 expr_without_variable: '(' new_expr ')' . @51 instance_call
- $default reduce using rule 309 (@48)
+ $default reduce using rule 319 (@51)
- @48 go to state 501
+ @51 go to state 533
-state 364
+state 386
- 307 expr_without_variable: '(' expr ')' .
+ 446 parenthesis_expr: '(' yield_expr ')' .
- $default reduce using rule 307 (expr_without_variable)
+ $default reduce using rule 446 (parenthesis_expr)
-state 365
+state 387
+
+ 445 parenthesis_expr: '(' expr ')' .
+
+ $default reduce using rule 445 (parenthesis_expr)
+
+
+state 388
35 unticked_statement: '{' inner_statement_list '}' .
$default reduce using rule 35 (unticked_statement)
-state 366
+state 389
- 27 inner_statement_list: inner_statement_list @4 . inner_statement
+ 27 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
@@ -11882,195 +12991,202 @@ state 366
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "final (T_FINAL)" shift, and go to state 54
- "abstract (T_ABSTRACT)" shift, and go to state 55
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 502
- "class (T_CLASS)" shift, and go to state 61
- "trait (T_TRAIT)" shift, and go to state 62
- "interface (T_INTERFACE)" shift, and go to state 63
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- inner_statement go to state 503
- statement go to state 504
- unticked_statement go to state 87
- function_declaration_statement go to state 505
- class_declaration_statement go to state 506
- unticked_function_declaration_statement go to state 90
- unticked_class_declaration_statement go to state 91
- class_entry_type go to state 92
- interface_entry go to state 93
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 96
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "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 534
+ "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 124
+ "__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 535
+ statement go to state 536
+ unticked_statement go to state 88
+ function_declaration_statement go to state 537
+ class_declaration_statement go to state 538
+ 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
-state 367
+state 390
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 461 compound_variable: '$' '{' expr . '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 507
+ 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
+ 483 compound_variable: '$' '{' expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 539
-state 368
+state 391
- 330 expr_without_variable: '`' backticks_expr '`' .
+ 340 expr_without_variable: '`' backticks_expr '`' .
- $default reduce using rule 330 (expr_without_variable)
+ $default reduce using rule 340 (expr_without_variable)
-state 369
+state 392
- 412 scalar: '"' encaps_list '"' .
+ 432 scalar: '"' encaps_list '"' .
- $default reduce using rule 412 (scalar)
+ $default reduce using rule 432 (scalar)
-state 370
+state 393
6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" .
$default reduce using rule 6 (namespace_name)
-state 371
+state 394
- 344 function_call: namespace_name '(' @55 . function_call_parameter_list ')'
+ 175 function_call_parameter_list: '(' . ')'
+ 176 | '(' . non_empty_function_call_parameter_list ')'
+ 177 | '(' . yield_expr ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12078,142 +13194,164 @@ state 371
"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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 509
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 11
+ '&' shift, and go to state 540
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 541
+ '$' shift, and go to state 81
+ '`' shift, and go to state 82
+ '"' shift, and go to state 83
+
+ namespace_name go to state 84
+ non_empty_function_call_parameter_list go to state 542
+ new_expr go to state 95
+ expr_without_variable go to state 543
+ yield_expr go to state 544
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 545
+ 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
-state 372
+state 395
+
+ 364 function_call: namespace_name @58 function_call_parameter_list .
+
+ $default reduce using rule 364 (function_call)
+
+
+state 396
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
- '=' shift, and go to state 513
+ '=' shift, and go to state 546
-state 373
+state 397
- 109 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name
+ 116 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- namespace_name go to state 516
- fully_qualified_class_name go to state 517
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 550
-state 374
+state 398
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . @30 implements_list '{' class_statement_list '}'
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . $@32 implements_list '{' class_statement_list '}'
- $default reduce using rule 100 (@30)
+ $default reduce using rule 107 ($@32)
- @30 go to state 518
+ $@32 go to state 551
-state 375
+state 399
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 . interface_extends_list '{' class_statement_list '}'
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 . interface_extends_list '{' class_statement_list '}'
- "extends (T_EXTENDS)" shift, and go to state 519
+ "extends (T_EXTENDS)" shift, and go to state 552
- $default reduce using rule 111 (interface_extends_list)
+ $default reduce using rule 118 (interface_extends_list)
- interface_extends_list go to state 520
+ interface_extends_list go to state 553
-state 376
+state 400
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 352 combined_scalar_offset: combined_scalar_offset '[' dim_offset . ']'
- $default reduce using rule 98 (@29)
+ ']' shift, and go to state 554
- @29 go to state 521
+state 401
-state 377
+ 351 combined_scalar_offset: combined_scalar '[' dim_offset . ']'
- 333 expr_without_variable: function is_reference '(' . @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ ']' shift, and go to state 555
- $default reduce using rule 332 (@53)
- @53 go to state 522
+state 402
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . $@31 '(' parameter_list ')' '{' inner_statement_list '}'
-state 378
+ $default reduce using rule 105 ($@31)
+
+ $@31 go to state 556
+
+
+state 403
+
+ 344 expr_without_variable: function is_reference @56 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
+
+ '(' shift, and go to state 557
- 450 array_function_dereference: function_call @69 '[' . dim_offset ']'
+
+state 404
+
+ 472 array_function_dereference: function_call $@72 '[' . dim_offset ']'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12221,92 +13359,96 @@ state 378
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 523
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 558
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
-state 379
+state 405
- 470 variable_name: "identifier (T_STRING)" .
- 514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+ 492 variable_name: "identifier (T_STRING)" .
+ 539 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
- '(' reduce using rule 470 (variable_name)
- $default reduce using rule 514 (class_constant)
+ '(' reduce using rule 492 (variable_name)
+ $default reduce using rule 539 (class_constant)
-state 380
+state 406
- 471 variable_name: '{' . expr '}'
+ 493 variable_name: '{' . expr '}'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12314,121 +13456,128 @@ state 380
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 524
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 559
+ 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
-state 381
+state 407
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @59 function_call_parameter_list ')'
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
+ 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@62 function_call_parameter_list
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- '(' shift, and go to state 525
+ '(' reduce using rule 371 ($@62)
+ $default reduce using rule 467 (static_member)
- $default reduce using rule 445 (static_member)
+ $@62 go to state 560
-state 382
+state 408
- 443 variable_without_objects: reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+ 465 variable_without_objects: reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
- '[' shift, and go to state 280
- '{' shift, and go to state 281
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
- $default reduce using rule 443 (variable_without_objects)
+ $default reduce using rule 465 (variable_without_objects)
-state 383
+state 409
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @58 function_call_parameter_list ')'
+ 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . @61 function_call_parameter_list
- '(' shift, and go to state 526
+ $default reduce using rule 369 (@61)
+ @61 go to state 561
-state 384
- 444 variable_without_objects: simple_indirect_reference . reference_variable
- 473 simple_indirect_reference: simple_indirect_reference . '$'
+state 410
- "variable (T_VARIABLE)" shift, and go to state 34
- '$' shift, and go to state 282
+ 466 variable_without_objects: simple_indirect_reference . reference_variable
+ 495 simple_indirect_reference: simple_indirect_reference . '$'
- reference_variable go to state 527
- compound_variable go to state 112
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '$' shift, and go to state 298
+ reference_variable go to state 562
+ compound_variable go to state 117
-state 385
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 . expr
+state 411
+
+ 289 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
@@ -12436,139 +13585,143 @@ state 385
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 528
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 563
+ 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
-state 386
+state 412
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 282 | expr "xor (T_LOGICAL_XOR)" expr .
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 282 (expr_without_variable)
+ $default reduce using rule 292 (expr_without_variable)
-state 387
+state 413
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 . expr
+ 291 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
@@ -12576,89 +13729,93 @@ state 387
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 529
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 564
+ 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
-state 388
+state 414
- 315 expr_without_variable: expr '?' ':' . @51 expr
+ 325 expr_without_variable: expr '?' ':' . $@54 expr
- $default reduce using rule 314 (@51)
+ $default reduce using rule 324 ($@54)
- @51 go to state 530
+ $@54 go to state 565
-state 389
+state 415
- 313 expr_without_variable: expr '?' @49 . expr ':' @50 expr
+ 323 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
@@ -12666,80 +13823,84 @@ state 389
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 531
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 566
+ 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
-state 390
+state 416
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 . expr
+ 285 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
@@ -12747,80 +13908,84 @@ state 390
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 532
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 567
+ 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
-state 391
+state 417
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 . expr
+ 287 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
@@ -12828,4968 +13993,4028 @@ state 391
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 533
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 568
+ 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
-state 392
+state 418
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 283 | expr '|' expr .
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 283 (expr_without_variable)
+ $default reduce using rule 293 (expr_without_variable)
-state 393
+state 419
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 285 | expr '^' expr .
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 285 (expr_without_variable)
+ $default reduce using rule 295 (expr_without_variable)
-state 394
+state 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
+ 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)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 284 | expr '&' expr .
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 284 (expr_without_variable)
+ $default reduce using rule 294 (expr_without_variable)
-state 395
+state 421
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 299 | expr "!== (T_IS_NOT_IDENTICAL)" expr .
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
"!== (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 299 (expr_without_variable)
+ $default reduce using rule 309 (expr_without_variable)
-state 396
+state 422
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 298 | expr "=== (T_IS_IDENTICAL)" expr .
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
"!== (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 298 (expr_without_variable)
+ $default reduce using rule 308 (expr_without_variable)
-state 397
+state 423
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 301 | expr "!= (T_IS_NOT_EQUAL)" expr .
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
"!== (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 301 (expr_without_variable)
+ $default reduce using rule 311 (expr_without_variable)
-state 398
+state 424
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 300 | expr "== (T_IS_EQUAL)" expr .
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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
+
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
"!== (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 300 (expr_without_variable)
+ $default reduce using rule 310 (expr_without_variable)
-state 399
+state 425
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 302 | expr '<' expr .
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
'<' error (nonassociative)
'>' error (nonassociative)
">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
"<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
- $default reduce using rule 302 (expr_without_variable)
+ $default reduce using rule 312 (expr_without_variable)
-state 400
+state 426
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 304 | expr '>' expr .
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
'<' error (nonassociative)
'>' error (nonassociative)
">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
"<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
- $default reduce using rule 304 (expr_without_variable)
+ $default reduce using rule 314 (expr_without_variable)
-state 401
+state 427
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 305 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr .
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
'<' error (nonassociative)
'>' error (nonassociative)
">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
"<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
- $default reduce using rule 305 (expr_without_variable)
+ $default reduce using rule 315 (expr_without_variable)
-state 402
+state 428
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 303 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr .
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 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)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
'<' error (nonassociative)
'>' error (nonassociative)
">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative)
"<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative)
- $default reduce using rule 303 (expr_without_variable)
-
-
-state 403
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 293 | expr ">> (T_SR)" expr .
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 293 (expr_without_variable)
-
-
-state 404
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 292 | expr "<< (T_SL)" expr .
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 292 (expr_without_variable)
-
-
-state 405
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 287 | expr '+' expr .
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 287 (expr_without_variable)
-
-
-state 406
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 288 | expr '-' expr .
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 288 (expr_without_variable)
-
-
-state 407
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 286 | expr '.' expr .
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 286 (expr_without_variable)
-
-
-state 408
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 289 | expr '*' expr .
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 289 (expr_without_variable)
-
-
-state 409
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 290 | expr '/' expr .
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 290 (expr_without_variable)
-
-
-state 410
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 291 | expr '%' expr .
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 291 (expr_without_variable)
-
-
-state 411
-
- 306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference .
-
- $default reduce using rule 306 (expr_without_variable)
-
-
-state 412
-
- 255 expr_without_variable: variable '=' '&' . variable
- 257 | variable '=' '&' . "new (T_NEW)" class_name_reference @43 ctor_arguments
-
- "new (T_NEW)" shift, and go to state 534
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 535
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
-
-
-state 413
-
- 254 expr_without_variable: variable '=' expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 254 (expr_without_variable)
-
-
-state 414
-
- 269 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 269 (expr_without_variable)
-
-
-state 415
-
- 268 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 268 (expr_without_variable)
-
-
-state 416
-
- 267 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 267 (expr_without_variable)
-
-
-state 417
-
- 266 expr_without_variable: variable "|= (T_OR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 266 (expr_without_variable)
-
-
-state 418
-
- 265 expr_without_variable: variable "&= (T_AND_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 265 (expr_without_variable)
-
-
-state 419
-
- 264 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 264 (expr_without_variable)
-
-
-state 420
-
- 263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 263 (expr_without_variable)
-
-
-state 421
-
- 262 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 262 (expr_without_variable)
-
-
-state 422
-
- 261 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 261 (expr_without_variable)
-
-
-state 423
-
- 260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 260 (expr_without_variable)
-
-
-state 424
-
- 259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 259 (expr_without_variable)
-
-
-state 425
-
- 358 function_call: variable_without_objects '(' @62 . function_call_parameter_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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 536
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 426
-
- 470 variable_name: "identifier (T_STRING)" .
- 515 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
-
- '(' reduce using rule 470 (variable_name)
- $default reduce using rule 515 (class_constant)
-
-
-state 427
-
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @61 function_call_parameter_list ')'
- 446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
-
- '(' shift, and go to state 537
-
- $default reduce using rule 446 (static_member)
-
-
-state 428
-
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @60 function_call_parameter_list ')'
-
- '(' shift, and go to state 538
+ $default reduce using rule 313 (expr_without_variable)
state 429
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 463 dim_offset: expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 463 (dim_offset)
+ 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
+
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 303 (expr_without_variable)
state 430
- 448 array_function_dereference: array_function_dereference '[' dim_offset . ']'
+ 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
+
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- ']' shift, and go to state 539
+ $default reduce using rule 302 (expr_without_variable)
state 431
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 . object_property @66 method_or_not variable_properties
+ 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
+
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
-
- variable_without_objects go to state 540
- reference_variable go to state 382
- compound_variable go to state 112
- object_property go to state 541
- object_dim_list go to state 542
- variable_name go to state 543
- simple_indirect_reference go to state 384
+ $default reduce using rule 297 (expr_without_variable)
state 432
- 457 reference_variable: reference_variable '[' dim_offset . ']'
+ 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
+
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- ']' shift, and go to state 544
+ $default reduce using rule 298 (expr_without_variable)
state 433
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 458 reference_variable: reference_variable '{' expr . '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 545
+ 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
+
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 296 (expr_without_variable)
state 434
- 508 internal_functions_in_yacc: "eval (T_EVAL)" '(' 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
+ 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)" shift, and go to state 276
- $default reduce using rule 508 (internal_functions_in_yacc)
+ $default reduce using rule 299 (expr_without_variable)
state 435
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')'
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_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
+ 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)" shift, and go to state 276
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- '(' shift, and go to state 497
-
- $default reduce using rule 361 (class_name)
+ $default reduce using rule 300 (expr_without_variable)
state 436
- 470 variable_name: "identifier (T_STRING)" .
+ 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)" shift, and go to state 276
- $default reduce using rule 470 (variable_name)
+ $default reduce using rule 301 (expr_without_variable)
state 437
- 488 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 546
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 316 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference .
+
+ $default reduce using rule 316 (expr_without_variable)
state 438
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 484 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 484 (non_empty_array_pair_list)
+ 265 expr_without_variable: variable '=' '&' . variable
+ 267 | variable '=' '&' . "new (T_NEW)" class_name_reference $@46 ctor_arguments
+
+ "new (T_NEW)" shift, and go to state 569
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 570
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 439
- 487 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 547
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ $default reduce using rule 264 (expr_without_variable)
-state 440
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr
- 483 | non_empty_array_pair_list ',' expr .
- 486 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- "=> (T_DOUBLE_ARROW)" shift, and go to state 548
-
- $default reduce using rule 483 (non_empty_array_pair_list)
+state 440
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
-state 441
+ $default reduce using rule 279 (expr_without_variable)
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+state 441
- $default reduce using rule 361 (class_name)
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 278 (expr_without_variable)
state 442
- 445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 445 (static_member)
+ $default reduce using rule 277 (expr_without_variable)
state 443
- 382 ctor_arguments: '(' . function_call_parameter_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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 549
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 276 (expr_without_variable)
state 444
- 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments .
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 251 (new_expr)
+ $default reduce using rule 275 (expr_without_variable)
state 445
- 446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
-
- $default reduce using rule 446 (static_member)
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 274 (expr_without_variable)
state 446
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 . object_property @64 dynamic_class_name_variable_properties
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
-
- variable_without_objects go to state 540
- reference_variable go to state 382
- compound_variable go to state 112
- object_property go to state 550
- object_dim_list go to state 542
- variable_name go to state 543
- simple_indirect_reference go to state 384
+ $default reduce using rule 273 (expr_without_variable)
state 447
- 377 exit_expr: '(' expr ')' .
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 377 (exit_expr)
+ $default reduce using rule 272 (expr_without_variable)
state 448
- 38 unticked_statement: "if (T_IF)" '(' expr ')' . @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' expr ')' . ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- ':' shift, and go to state 551
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 36 (@5)
-
- @5 go to state 552
+ $default reduce using rule 271 (expr_without_variable)
state 449
- 232 echo_expr_list: echo_expr_list ',' expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 232 (echo_expr_list)
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 270 (expr_without_variable)
state 450
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" . '(' @12 expr ')' ';'
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- '(' shift, and go to state 553
+ $default reduce using rule 269 (expr_without_variable)
state 451
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr . ')' @10 while_statement
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 554
+ 378 function_call: variable_without_objects $@65 function_call_parameter_list .
+ $default reduce using rule 378 (function_call)
-state 452
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . @13 for_expr ';' @14 for_expr ')' @15 for_statement
+state 452
- $default reduce using rule 48 (@13)
+ 492 variable_name: "identifier (T_STRING)" .
+ 540 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
- @13 go to state 555
+ '(' reduce using rule 492 (variable_name)
+ $default reduce using rule 540 (class_constant)
state 453
- 237 non_empty_for_expr: non_empty_for_expr ',' . @38 expr
+ 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . $@64 function_call_parameter_list
+ 468 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- $default reduce using rule 236 (@38)
+ '(' reduce using rule 375 ($@64)
+ $default reduce using rule 468 (static_member)
- @38 go to state 556
+ $@64 go to state 571
state 454
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . $@63 function_call_parameter_list
- $default reduce using rule 70 (@19)
+ $default reduce using rule 373 ($@63)
- @19 go to state 557
+ $@63 go to state 572
state 455
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 470 array_function_dereference: array_function_dereference '[' dim_offset . ']'
- $default reduce using rule 67 (@17)
-
- @17 go to state 558
+ ']' shift, and go to state 573
state 456
- 127 declare_list: "identifier (T_STRING)" . '=' static_scalar
+ 452 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 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
- '=' shift, and go to state 559
+ variable_without_objects go to state 574
+ reference_variable go to state 408
+ compound_variable go to state 117
+ object_property go to state 575
+ object_dim_list go to state 576
+ variable_name go to state 577
+ simple_indirect_reference go to state 410
state 457
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list . ')' declare_statement
- 128 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar
+ 479 reference_variable: reference_variable '[' dim_offset . ']'
- ',' shift, and go to state 560
- ')' shift, and go to state 561
+ ']' shift, and go to state 578
state 458
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' . @16 switch_case_list
-
- $default reduce using rule 52 (@16)
-
- @16 go to state 562
+ 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
+ 480 reference_variable: reference_variable '{' expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 579
state 459
- 399 static_scalar: '+' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 563
- static_class_constant go to state 471
+ 531 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' .
+
+ $default reduce using rule 531 (internal_functions_in_yacc)
state 460
- 400 static_scalar: '-' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 564
- static_class_constant go to state 471
+ 349 yield_expr: "yield (T_YIELD)" expr "=> (T_DOUBLE_ARROW)" expr_without_variable .
+ 444 expr: expr_without_variable .
+
+ ')' reduce using rule 349 (yield_expr)
+ ';' reduce using rule 349 (yield_expr)
+ $default reduce using rule 444 (expr)
state 461
- 402 static_scalar: '[' . static_array_pair_list ']'
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- $default reduce using rule 415 (static_array_pair_list)
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 565
- static_class_constant go to state 471
- static_array_pair_list go to state 566
- non_empty_static_array_pair_list go to state 567
+ 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 .
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ ')' reduce using rule 350 (yield_expr)
+ ';' reduce using rule 350 (yield_expr)
+ $default reduce using rule 447 (r_variable)
state 462
- 401 static_scalar: "array (T_ARRAY)" . '(' static_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 .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- '(' shift, and go to state 568
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 381 (class_name)
+ $default reduce using rule 365 (@59)
+
+ @59 go to state 529
state 463
- 404 static_scalar: "__CLASS__ (T_CLASS_C)" .
+ 492 variable_name: "identifier (T_STRING)" .
- $default reduce using rule 404 (static_scalar)
+ $default reduce using rule 492 (variable_name)
state 464
- 393 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
- 394 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
-
- "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 569
- "heredoc end (T_END_HEREDOC)" shift, and go to state 207
+ 510 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 580
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 465
- 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- 397 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 570
+ 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: expr "=> (T_DOUBLE_ARROW)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 506 (non_empty_array_pair_list)
state 466
- 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- 398 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
-
- "identifier (T_STRING)" shift, and go to state 116
-
- namespace_name go to state 571
+ 509 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 581
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 467
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 360 class_name: namespace_name .
- 396 static_scalar: namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
-
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 360 (class_name)
- $default reduce using rule 396 (static_scalar)
+ 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
+ 504 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr
+ 505 | non_empty_array_pair_list ',' expr .
+ 508 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 582
+
+ $default reduce using rule 505 (non_empty_array_pair_list)
state 468
- 405 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 572
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
+
+ $default reduce using rule 381 (class_name)
state 469
- 395 static_scalar: common_scalar .
+ 467 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- $default reduce using rule 395 (static_scalar)
+ $default reduce using rule 467 (static_member)
state 470
- 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
+ 402 ctor_arguments: function_call_parameter_list .
- $default reduce using rule 25 (constant_declaration)
+ $default reduce using rule 402 (ctor_arguments)
state 471
- 403 static_scalar: static_class_constant .
+ 261 new_expr: "new (T_NEW)" class_name_reference $@44 ctor_arguments .
- $default reduce using rule 403 (static_scalar)
+ $default reduce using rule 261 (new_expr)
state 472
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list . '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
-
- '}' shift, and go to state 573
+ 468 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
- $default reduce using rule 26 (@4)
-
- @4 go to state 366
+ $default reduce using rule 468 (static_member)
state 473
- 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
+ 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 . object_property $@67 dynamic_class_name_variable_properties
- "identifier (T_STRING)" shift, and go to state 574
+ "identifier (T_STRING)" shift, and go to state 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
+
+ variable_without_objects go to state 574
+ reference_variable go to state 408
+ compound_variable go to state 117
+ object_property go to state 583
+ object_dim_list go to state 576
+ variable_name go to state 577
+ simple_indirect_reference go to state 410
state 474
- 21 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
+ 41 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 21 (use_declaration)
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 584
state 475
- 18 use_declarations: use_declarations ',' use_declaration .
+ 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement . $@6 elseif_list else_single
- $default reduce using rule 18 (use_declarations)
+ $default reduce using rule 37 ($@6)
+
+ $@6 go to state 585
state 476
- 178 global_var: '$' '{' expr . '}'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 575
+ 353 combined_scalar_offset: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" '[' dim_offset ']' .
+ $default reduce using rule 353 (combined_scalar_offset)
-state 477
- 174 global_var_list: global_var_list ',' global_var .
+state 477
- $default reduce using rule 174 (global_var_list)
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 242 (echo_expr_list)
state 478
- 182 static_var_list: "variable (T_VARIABLE)" '=' static_scalar .
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" . $@12 parenthesis_expr ';'
- $default reduce using rule 182 (static_var_list)
+ $default reduce using rule 46 ($@12)
+ $@12 go to state 586
-state 479
- 179 static_var_list: static_var_list ',' "variable (T_VARIABLE)" .
- 180 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar
+state 479
- '=' shift, and go to state 576
+ 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 . while_statement
- $default reduce using rule 179 (static_var_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 11
+ ':' shift, and go to state 587
+ '+' 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 124
+ "__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 588
+ unticked_statement go to state 88
+ while_statement go to state 589
+ 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 125
+ 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
state 480
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' . @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- $default reduce using rule 334 (@54)
+ $default reduce using rule 48 ($@13)
- @54 go to state 577
+ $@13 go to state 590
state 481
- 92 unset_variables: unset_variables ',' . unset_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- unset_variable go to state 578
- function_call go to state 97
- class_name go to state 142
- variable go to state 341
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 247 non_empty_for_expr: non_empty_for_expr ',' . $@41 expr
+
+ $default reduce using rule 246 ($@41)
+
+ $@41 go to state 591
state 482
- 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';'
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement
+
+ $default reduce using rule 71 ($@19)
- ';' shift, and go to state 579
+ $@19 go to state 592
state 483
- 513 isset_variables: isset_variables ',' . @73 variable
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- $default reduce using rule 512 (@73)
+ $default reduce using rule 68 ($@17)
- @73 go to state 580
+ $@17 go to state 593
state 484
- 504 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' .
+ 136 declare_list: "identifier (T_STRING)" . '=' static_scalar
- $default reduce using rule 504 (internal_functions_in_yacc)
+ '=' shift, and go to state 594
state 485
- 505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' .
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list . ')' declare_statement
+ 137 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar
- $default reduce using rule 505 (internal_functions_in_yacc)
+ ',' shift, and go to state 595
+ ')' shift, and go to state 596
state 486
- 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
+ 140 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';'
+ 141 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';'
- $default reduce using rule 10 (top_statement)
+ ';' shift, and go to state 597
+
+ $default reduce using rule 142 (case_list)
+
+ case_list go to state 598
state 487
- 478 assignment_list_element: "list (T_LIST)" . '(' @71 assignment_list ')'
+ 138 switch_case_list: '{' . case_list '}'
+ 139 | '{' . ';' case_list '}'
- '(' shift, and go to state 581
+ ';' shift, and go to state 599
+
+ $default reduce using rule 142 (case_list)
+
+ case_list go to state 600
state 488
- 476 assignment_list_element: variable .
+ 53 unticked_statement: "switch (T_SWITCH)" parenthesis_expr $@16 switch_case_list .
- $default reduce using rule 476 (assignment_list_element)
+ $default reduce using rule 53 (unticked_statement)
state 489
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list . ')' '=' expr
- 474 assignment_list: assignment_list . ',' assignment_list_element
-
- ',' shift, and go to state 582
- ')' shift, and go to state 583
+ 419 static_scalar: '+' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 601
+ static_class_constant go to state 502
state 490
- 475 assignment_list: assignment_list_element .
-
- $default reduce using rule 475 (assignment_list)
+ 420 static_scalar: '-' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 602
+ static_class_constant go to state 502
state 491
- 328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list ')' .
-
- $default reduce using rule 328 (expr_without_variable)
+ 422 static_scalar: '[' . static_array_pair_list ']'
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ $default reduce using rule 435 (static_array_pair_list)
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 603
+ static_class_constant go to state 502
+ static_array_pair_list go to state 604
+ non_empty_static_array_pair_list go to state 605
state 492
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 . encaps_var_offset ']'
-
- "identifier (T_STRING)" shift, and go to state 584
- "variable (T_VARIABLE)" shift, and go to state 585
- "number (T_NUM_STRING)" shift, and go to state 586
+ 405 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
- encaps_var_offset go to state 587
+ $default reduce using rule 405 (common_scalar)
state 493
- 497 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" .
+ 421 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')'
- $default reduce using rule 497 (encaps_var)
+ '(' shift, and go to state 606
state 494
- 499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}'
+ 424 static_scalar: "__CLASS__ (T_CLASS_C)" .
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 588
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 424 (static_scalar)
state 495
- 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' .
+ 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 498 (encaps_var)
+ "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 607
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 219
state 496
- 500 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' .
+ 381 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 417 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- $default reduce using rule 500 (encaps_var)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 608
state 497
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' . @56 function_call_parameter_list ')'
+ 382 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+ 418 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
- $default reduce using rule 345 (@56)
+ "identifier (T_STRING)" shift, and go to state 122
- @56 go to state 589
+ namespace_name go to state 609
state 498
- 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 590
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 380 class_name: namespace_name .
+ 416 static_scalar: namespace_name .
- $default reduce using rule 2 (@1)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- @1 go to state 4
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 380 (class_name)
+ $default reduce using rule 416 (static_scalar)
state 499
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 . top_statement_list '}'
+ 425 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- $default reduce using rule 4 (top_statement_list)
-
- top_statement_list go to state 591
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 610
state 500
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 . function_call_parameter_list ')'
+ 415 static_scalar: common_scalar .
- "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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 592
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 415 (static_scalar)
state 501
- 310 expr_without_variable: '(' new_expr ')' @48 . instance_call
-
- '[' reduce using rule 248 (@40)
- "-> (T_OBJECT_OPERATOR)" reduce using rule 248 (@40)
- $default reduce using rule 247 (instance_call)
+ 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
- instance_call go to state 593
- @40 go to state 594
+ $default reduce using rule 25 (constant_declaration)
state 502
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
+ 423 static_scalar: static_class_constant .
- '(' shift, and go to state 595
+ $default reduce using rule 423 (static_scalar)
state 503
- 27 inner_statement_list: inner_statement_list @4 inner_statement .
+ 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
- $default reduce using rule 27 (inner_statement_list)
+ '}' shift, and go to state 611
+
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
state 504
- 29 inner_statement: statement .
+ 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
- $default reduce using rule 29 (inner_statement)
+ "identifier (T_STRING)" shift, and go to state 612
state 505
- 30 inner_statement: function_declaration_statement .
+ 21 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
- $default reduce using rule 30 (inner_statement)
+ $default reduce using rule 21 (use_declaration)
state 506
- 31 inner_statement: class_declaration_statement .
+ 18 use_declarations: use_declarations ',' use_declaration .
- $default reduce using rule 31 (inner_statement)
+ $default reduce using rule 18 (use_declarations)
state 507
- 461 compound_variable: '$' '{' expr '}' .
-
- $default reduce using rule 461 (compound_variable)
+ 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
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 613
state 508
- 170 non_empty_function_call_parameter_list: '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 596
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 184 global_var_list: global_var_list ',' global_var .
+
+ $default reduce using rule 184 (global_var_list)
state 509
- 344 function_call: namespace_name '(' @55 function_call_parameter_list . ')'
+ 192 static_var_list: "variable (T_VARIABLE)" '=' static_scalar .
- ')' shift, and go to state 597
+ $default reduce using rule 192 (static_var_list)
state 510
- 166 function_call_parameter_list: non_empty_function_call_parameter_list .
- 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
- 172 | non_empty_function_call_parameter_list . ',' variable
- 173 | non_empty_function_call_parameter_list . ',' '&' w_variable
+ 189 static_var_list: static_var_list ',' "variable (T_VARIABLE)" .
+ 190 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar
- ',' shift, and go to state 598
+ '=' shift, and go to state 614
- $default reduce using rule 166 (function_call_parameter_list)
+ $default reduce using rule 189 (static_var_list)
state 511
- 168 non_empty_function_call_parameter_list: expr_without_variable .
- 424 expr: expr_without_variable .
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'
- ',' reduce using rule 168 (non_empty_function_call_parameter_list)
- ')' reduce using rule 168 (non_empty_function_call_parameter_list)
- $default reduce using rule 424 (expr)
+ '(' shift, and go to state 615
state 512
- 169 non_empty_function_call_parameter_list: variable .
- 254 expr_without_variable: variable . '=' expr
- 255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 259 | variable . "+= (T_PLUS_EQUAL)" expr
- 260 | variable . "-= (T_MINUS_EQUAL)" expr
- 261 | variable . "*= (T_MUL_EQUAL)" expr
- 262 | variable . "/= (T_DIV_EQUAL)" expr
- 263 | variable . ".= (T_CONCAT_EQUAL)" expr
- 264 | variable . "%= (T_MOD_EQUAL)" expr
- 265 | variable . "&= (T_AND_EQUAL)" expr
- 266 | variable . "|= (T_OR_EQUAL)" expr
- 267 | variable . "^= (T_XOR_EQUAL)" expr
- 268 | variable . "<<= (T_SL_EQUAL)" expr
- 269 | variable . ">>= (T_SR_EQUAL)" expr
- 425 r_variable: variable .
- 427 rw_variable: variable .
-
- '=' shift, and go to state 264
- ">>= (T_SR_EQUAL)" shift, and go to state 265
- "<<= (T_SL_EQUAL)" shift, and go to state 266
- "^= (T_XOR_EQUAL)" shift, and go to state 267
- "|= (T_OR_EQUAL)" shift, and go to state 268
- "&= (T_AND_EQUAL)" shift, and go to state 269
- "%= (T_MOD_EQUAL)" shift, and go to state 270
- ".= (T_CONCAT_EQUAL)" shift, and go to state 271
- "/= (T_DIV_EQUAL)" shift, and go to state 272
- "*= (T_MUL_EQUAL)" shift, and go to state 273
- "-= (T_MINUS_EQUAL)" shift, and go to state 274
- "+= (T_PLUS_EQUAL)" shift, and go to state 275
-
- ',' reduce using rule 169 (non_empty_function_call_parameter_list)
- "-- (T_DEC)" reduce using rule 427 (rw_variable)
- "++ (T_INC)" reduce using rule 427 (rw_variable)
- ')' reduce using rule 169 (non_empty_function_call_parameter_list)
- $default reduce using rule 425 (r_variable)
+ 99 unset_variables: unset_variables ',' . unset_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ unset_variable go to state 616
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 360
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 513
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
+ 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';'
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 599
- static_class_constant go to state 471
+ ';' shift, and go to state 617
state 514
- 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
+ 536 isset_variables: isset_variables ',' . $@76 isset_variable
- "\\ (T_NS_SEPARATOR)" shift, and go to state 600
+ $default reduce using rule 535 ($@76)
+ $@76 go to state 618
-state 515
- 365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
+state 515
- "identifier (T_STRING)" shift, and go to state 116
+ 526 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' .
- namespace_name go to state 601
+ $default reduce using rule 526 (internal_functions_in_yacc)
state 516
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 363 fully_qualified_class_name: namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ 528 internal_functions_in_yacc: "empty (T_EMPTY)" '(' expr_without_variable ')' .
- $default reduce using rule 363 (fully_qualified_class_name)
+ $default reduce using rule 528 (internal_functions_in_yacc)
state 517
- 109 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name .
+ 527 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' .
- $default reduce using rule 109 (extends_from)
+ $default reduce using rule 527 (internal_functions_in_yacc)
state 518
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 . implements_list '{' class_statement_list '}'
-
- "implements (T_IMPLEMENTS)" shift, and go to state 602
-
- $default reduce using rule 113 (implements_list)
+ 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
- implements_list go to state 603
+ $default reduce using rule 10 (top_statement)
state 519
- 112 interface_extends_list: "extends (T_EXTENDS)" . interface_list
+ 500 assignment_list_element: "list (T_LIST)" . '(' $@74 assignment_list ')'
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
-
- namespace_name go to state 516
- interface_list go to state 604
- fully_qualified_class_name go to state 605
+ '(' shift, and go to state 619
state 520
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list . '{' class_statement_list '}'
+ 498 assignment_list_element: variable .
- '{' shift, and go to state 606
+ $default reduce using rule 498 (assignment_list_element)
state 521
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 . '(' parameter_list ')' '{' inner_statement_list '}'
+ 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list . ')' '=' expr
+ 496 assignment_list: assignment_list . ',' assignment_list_element
- '(' shift, and go to state 607
+ ',' shift, and go to state 620
+ ')' shift, and go to state 621
state 522
- 333 expr_without_variable: function is_reference '(' @53 . parameter_list ')' lexical_vars '{' inner_statement_list '}'
+ 497 assignment_list: assignment_list_element .
- "identifier (T_STRING)" shift, and go to state 116
- "array (T_ARRAY)" shift, and go to state 608
- "callable (T_CALLABLE)" shift, and go to state 609
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
-
- ')' reduce using rule 153 (parameter_list)
- $default reduce using rule 162 (optional_class_type)
-
- namespace_name go to state 516
- parameter_list go to state 610
- non_empty_parameter_list go to state 611
- optional_class_type go to state 612
- fully_qualified_class_name go to state 613
+ $default reduce using rule 497 (assignment_list)
state 523
- 450 array_function_dereference: function_call @69 '[' dim_offset . ']'
+ 354 combined_scalar: "array (T_ARRAY)" '(' array_pair_list ')' .
- ']' shift, and go to state 614
+ $default reduce using rule 354 (combined_scalar)
state 524
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 471 variable_name: '{' expr . '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 615
+ 518 encaps_var: "variable (T_VARIABLE)" '[' $@75 . encaps_var_offset ']'
+ "identifier (T_STRING)" shift, and go to state 622
+ "variable (T_VARIABLE)" shift, and go to state 623
+ "number (T_NUM_STRING)" shift, and go to state 624
-state 525
+ encaps_var_offset go to state 625
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @59 function_call_parameter_list ')'
- $default reduce using rule 351 (@59)
+state 525
- @59 go to state 616
+ 519 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" .
+ $default reduce using rule 519 (encaps_var)
-state 526
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @58 function_call_parameter_list ')'
+state 526
- $default reduce using rule 349 (@58)
+ 521 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}'
- @58 go to state 617
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 626
+ 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
state 527
- 444 variable_without_objects: simple_indirect_reference reference_variable .
- 457 reference_variable: reference_variable . '[' dim_offset ']'
- 458 | reference_variable . '{' expr '}'
+ 520 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' .
- '[' shift, and go to state 280
- '{' shift, and go to state 281
-
- $default reduce using rule 444 (variable_without_objects)
+ $default reduce using rule 520 (encaps_var)
state 528
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 279 | expr "or (T_LOGICAL_OR)" @46 expr .
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 522 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' .
- $default reduce using rule 279 (expr_without_variable)
+ $default reduce using rule 522 (encaps_var)
state 529
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 281 | expr "and (T_LOGICAL_AND)" @47 expr .
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 . function_call_parameter_list
- $default reduce using rule 281 (expr_without_variable)
+ '(' shift, and go to state 394
+
+ function_call_parameter_list go to state 627
state 530
- 315 expr_without_variable: expr '?' ':' @51 . expr
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 618
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '}' shift, and go to state 628
+
+ $default reduce using rule 2 ($@1)
+
+ $@1 go to state 4
state 531
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 313 | expr '?' @49 expr . ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- ':' shift, and go to state 619
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 . top_statement_list '}'
+
+ $default reduce using rule 4 (top_statement_list)
+
+ top_statement_list go to state 629
state 532
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 275 | expr "|| (T_BOOLEAN_OR)" @44 expr .
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 368 function_call: "\\ (T_NS_SEPARATOR)" namespace_name @60 function_call_parameter_list .
- $default reduce using rule 275 (expr_without_variable)
+ $default reduce using rule 368 (function_call)
state 533
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 277 | expr "&& (T_BOOLEAN_AND)" @45 expr .
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 320 expr_without_variable: '(' new_expr ')' @51 . instance_call
- $default reduce using rule 277 (expr_without_variable)
+ '[' reduce using rule 258 ($@43)
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 258 ($@43)
+ $default reduce using rule 257 (instance_call)
+ instance_call go to state 630
+ $@43 go to state 631
-state 534
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference @43 ctor_arguments
+state 534
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 152
- "\\ (T_NS_SEPARATOR)" shift, and go to state 153
- '$' shift, and go to state 80
+ 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
- namespace_name go to state 154
- class_name go to state 155
- class_name_reference go to state 620
- dynamic_class_name_reference go to state 157
- static_member go to state 106
- variable_class_name go to state 158
- base_variable go to state 159
- reference_variable go to state 160
- compound_variable go to state 112
- simple_indirect_reference go to state 161
+ '(' shift, and go to state 632
state 535
- 255 expr_without_variable: variable '=' '&' variable .
+ 27 inner_statement_list: inner_statement_list $@4 inner_statement .
- $default reduce using rule 255 (expr_without_variable)
+ $default reduce using rule 27 (inner_statement_list)
state 536
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list . ')'
+ 29 inner_statement: statement .
- ')' shift, and go to state 621
+ $default reduce using rule 29 (inner_statement)
state 537
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @61 function_call_parameter_list ')'
-
- $default reduce using rule 355 (@61)
+ 30 inner_statement: function_declaration_statement .
- @61 go to state 622
+ $default reduce using rule 30 (inner_statement)
state 538
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @60 function_call_parameter_list ')'
-
- $default reduce using rule 353 (@60)
+ 31 inner_statement: class_declaration_statement .
- @60 go to state 623
+ $default reduce using rule 31 (inner_statement)
state 539
- 448 array_function_dereference: array_function_dereference '[' dim_offset ']' .
+ 483 compound_variable: '$' '{' expr '}' .
- $default reduce using rule 448 (array_function_dereference)
+ $default reduce using rule 483 (compound_variable)
state 540
- 466 object_property: variable_without_objects . @70
-
- $default reduce using rule 465 (@70)
-
- @70 go to state 624
+ 180 non_empty_function_call_parameter_list: '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 633
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 541
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property . @66 method_or_not variable_properties
-
- $default reduce using rule 429 (@66)
+ 175 function_call_parameter_list: '(' ')' .
- @66 go to state 625
+ $default reduce using rule 175 (function_call_parameter_list)
state 542
- 464 object_property: object_dim_list .
- 467 object_dim_list: object_dim_list . '[' dim_offset ']'
- 468 | object_dim_list . '{' expr '}'
+ 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
- '[' shift, and go to state 626
- '{' shift, and go to state 627
-
- $default reduce using rule 464 (object_property)
+ ',' shift, and go to state 634
+ ')' shift, and go to state 635
state 543
- 469 object_dim_list: variable_name .
+ 178 non_empty_function_call_parameter_list: expr_without_variable .
+ 444 expr: expr_without_variable .
- $default reduce using rule 469 (object_dim_list)
+ ',' reduce using rule 178 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 178 (non_empty_function_call_parameter_list)
+ $default reduce using rule 444 (expr)
state 544
- 457 reference_variable: reference_variable '[' dim_offset ']' .
+ 177 function_call_parameter_list: '(' yield_expr . ')'
- $default reduce using rule 457 (reference_variable)
+ ')' shift, and go to state 636
state 545
- 458 reference_variable: reference_variable '{' expr '}' .
-
- $default reduce using rule 458 (reference_variable)
+ 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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ ',' reduce using rule 179 (non_empty_function_call_parameter_list)
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ ')' reduce using rule 179 (non_empty_function_call_parameter_list)
+ $default reduce using rule 447 (r_variable)
state 546
- 488 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+ 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
- $default reduce using rule 488 (non_empty_array_pair_list)
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 637
+ static_class_constant go to state 502
state 547
- 487 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
+ 384 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
- $default reduce using rule 487 (non_empty_array_pair_list)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 638
state 548
- 482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr
- 486 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
+ 385 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
- "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
- '&' shift, and go to state 628
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 629
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "identifier (T_STRING)" shift, and go to state 122
+
+ namespace_name go to state 639
state 549
- 382 ctor_arguments: '(' function_call_parameter_list . ')'
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 383 fully_qualified_class_name: namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- ')' shift, and go to state 630
+ $default reduce using rule 383 (fully_qualified_class_name)
state 550
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property . @64 dynamic_class_name_variable_properties
-
- $default reduce using rule 369 (@64)
+ 116 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name .
- @64 go to state 631
+ $default reduce using rule 116 (extends_from)
state 551
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' . @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 . implements_list '{' class_statement_list '}'
- $default reduce using rule 39 (@7)
+ "implements (T_IMPLEMENTS)" shift, and go to state 640
- @7 go to state 632
+ $default reduce using rule 120 (implements_list)
+
+ implements_list go to state 641
state 552
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 . statement @6 elseif_list else_single
+ 119 interface_extends_list: "extends (T_EXTENDS)" . interface_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 633
- unticked_statement go to state 87
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+ namespace_name go to state 549
+ interface_list go to state 642
+ fully_qualified_class_name go to state 643
-state 553
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' . @12 expr ')' ';'
+state 553
- $default reduce using rule 46 (@12)
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list . '{' class_statement_list '}'
- @12 go to state 634
+ '{' shift, and go to state 644
state 554
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' . @10 while_statement
+ 352 combined_scalar_offset: combined_scalar_offset '[' dim_offset ']' .
- $default reduce using rule 43 (@10)
-
- @10 go to state 635
+ $default reduce using rule 352 (combined_scalar_offset)
state 555
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 . for_expr ';' @14 for_expr ')' @15 for_statement
+ 351 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 234 (for_expr)
-
- namespace_name go to state 83
- for_expr go to state 636
- non_empty_for_expr go to state 312
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 313
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 351 (combined_scalar_offset)
state 556
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 . expr
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 . '(' parameter_list ')' '{' 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 637
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '(' shift, and go to state 645
state 557
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 . variable foreach_optional_arg ')' @20 foreach_statement
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 638
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 344 expr_without_variable: function is_reference @56 '(' . parameter_list ')' lexical_vars '{' inner_statement_list '}'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "array (T_ARRAY)" shift, and go to state 646
+ "callable (T_CALLABLE)" shift, and go to state 647
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ ')' reduce using rule 162 (parameter_list)
+ $default reduce using rule 171 (optional_class_type)
+
+ namespace_name go to state 549
+ parameter_list go to state 648
+ non_empty_parameter_list go to state 649
+ optional_class_type go to state 650
+ fully_qualified_class_name go to state 651
state 558
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 . foreach_variable foreach_optional_arg ')' @18 foreach_statement
-
- '&' shift, and go to state 639
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- foreach_variable go to state 640
- function_call go to state 97
- class_name go to state 142
- variable go to state 641
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 472 array_function_dereference: function_call $@72 '[' dim_offset . ']'
+
+ ']' shift, and go to state 652
state 559
- 127 declare_list: "identifier (T_STRING)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 642
- static_class_constant go to state 471
+ 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
+ 493 variable_name: '{' expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 653
state 560
- 128 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar
+ 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 . function_call_parameter_list
+
+ '(' shift, and go to state 394
- "identifier (T_STRING)" shift, and go to state 643
+ function_call_parameter_list go to state 654
state 561
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' . declare_statement
+ 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 . function_call_parameter_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
- ':' shift, and go to state 644
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 645
- unticked_statement go to state 87
- declare_statement go to state 646
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '(' shift, and go to state 394
+
+ function_call_parameter_list go to state 655
state 562
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 . switch_case_list
+ 466 variable_without_objects: simple_indirect_reference reference_variable .
+ 479 reference_variable: reference_variable . '[' dim_offset ']'
+ 480 | reference_variable . '{' expr '}'
- ':' shift, and go to state 647
- '{' shift, and go to state 648
+ '[' shift, and go to state 296
+ '{' shift, and go to state 297
- switch_case_list go to state 649
+ $default reduce using rule 466 (variable_without_objects)
state 563
- 399 static_scalar: '+' static_scalar .
+ 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)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 399 (static_scalar)
+ $default reduce using rule 289 (expr_without_variable)
state 564
- 400 static_scalar: '-' static_scalar .
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 400 (static_scalar)
+ $default reduce using rule 291 (expr_without_variable)
state 565
- 421 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
- 422 | static_scalar .
-
- "=> (T_DOUBLE_ARROW)" shift, and go to state 650
+ 325 expr_without_variable: expr '?' ':' $@54 . expr
- $default reduce using rule 422 (non_empty_static_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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 656
+ 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
state 566
- 402 static_scalar: '[' static_array_pair_list . ']'
-
- ']' shift, and go to state 651
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ ':' shift, and go to state 657
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
state 567
- 416 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 420 | non_empty_static_array_pair_list . ',' static_scalar
-
- ',' shift, and go to state 652
-
- $default reduce using rule 417 (possible_comma)
+ 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)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- possible_comma go to state 653
+ $default reduce using rule 285 (expr_without_variable)
state 568
- 401 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')'
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- $default reduce using rule 415 (static_array_pair_list)
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 565
- static_class_constant go to state 471
- static_array_pair_list go to state 654
- non_empty_static_array_pair_list go to state 567
+ 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
+
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 287 (expr_without_variable)
state 569
- 393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
+ 267 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference $@46 ctor_arguments
- "heredoc end (T_END_HEREDOC)" shift, and go to state 350
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 161
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 162
+ '$' shift, and go to state 81
+ namespace_name go to state 163
+ class_name go to state 164
+ class_name_reference go to state 658
+ dynamic_class_name_reference go to state 166
+ static_member go to state 111
+ variable_class_name go to state 167
+ base_variable go to state 168
+ reference_variable go to state 169
+ compound_variable go to state 117
+ simple_indirect_reference go to state 170
-state 570
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- 397 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+state 570
- "identifier (T_STRING)" shift, and go to state 116
+ 265 expr_without_variable: variable '=' '&' variable .
- namespace_name go to state 655
+ $default reduce using rule 265 (expr_without_variable)
state 571
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
- 398 static_scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 . function_call_parameter_list
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ '(' shift, and go to state 394
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 362 (class_name)
- $default reduce using rule 398 (static_scalar)
+ function_call_parameter_list go to state 659
state 572
- 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
+ 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 . function_call_parameter_list
+
+ '(' shift, and go to state 394
- "identifier (T_STRING)" shift, and go to state 656
+ function_call_parameter_list go to state 660
state 573
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' . "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 470 array_function_dereference: array_function_dereference '[' dim_offset ']' .
- "catch (T_CATCH)" shift, and go to state 657
+ $default reduce using rule 470 (array_function_dereference)
state 574
- 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
+ 488 object_property: variable_without_objects . $@73
- $default reduce using rule 23 (use_declaration)
+ $default reduce using rule 487 ($@73)
+
+ $@73 go to state 661
state 575
- 178 global_var: '$' '{' expr '}' .
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property . $@69 method_or_not variable_properties
- $default reduce using rule 178 (global_var)
+ $default reduce using rule 451 ($@69)
+
+ $@69 go to state 662
state 576
- 180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 658
- static_class_constant go to state 471
+ 486 object_property: object_dim_list .
+ 489 object_dim_list: object_dim_list . '[' dim_offset ']'
+ 490 | object_dim_list . '{' expr '}'
+ '[' shift, and go to state 663
+ '{' shift, and go to state 664
-state 577
+ $default reduce using rule 486 (object_property)
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 . parameter_list ')' lexical_vars '{' inner_statement_list '}'
- "identifier (T_STRING)" shift, and go to state 116
- "array (T_ARRAY)" shift, and go to state 608
- "callable (T_CALLABLE)" shift, and go to state 609
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+state 577
- ')' reduce using rule 153 (parameter_list)
- $default reduce using rule 162 (optional_class_type)
+ 491 object_dim_list: variable_name .
- namespace_name go to state 516
- parameter_list go to state 659
- non_empty_parameter_list go to state 611
- optional_class_type go to state 612
- fully_qualified_class_name go to state 613
+ $default reduce using rule 491 (object_dim_list)
state 578
- 92 unset_variables: unset_variables ',' unset_variable .
+ 479 reference_variable: reference_variable '[' dim_offset ']' .
- $default reduce using rule 92 (unset_variables)
+ $default reduce using rule 479 (reference_variable)
state 579
- 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' .
+ 480 reference_variable: reference_variable '{' expr '}' .
- $default reduce using rule 66 (unticked_statement)
+ $default reduce using rule 480 (reference_variable)
state 580
- 513 isset_variables: isset_variables ',' @73 . variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 660
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 510 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+ $default reduce using rule 510 (non_empty_array_pair_list)
-state 581
- 478 assignment_list_element: "list (T_LIST)" '(' . @71 assignment_list ')'
+state 581
- $default reduce using rule 477 (@71)
+ 509 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
- @71 go to state 661
+ $default reduce using rule 509 (non_empty_array_pair_list)
state 582
- 474 assignment_list: assignment_list ',' . assignment_list_element
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "list (T_LIST)" shift, and go to state 487
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- $default reduce using rule 479 (assignment_list_element)
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 488
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- assignment_list_element go to state 662
+ 504 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr
+ 508 | non_empty_array_pair_list ',' 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 121
+ '&' shift, and go to state 665
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 666
+ 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
state 583
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' . '=' expr
+ 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property . $@67 dynamic_class_name_variable_properties
+
+ $default reduce using rule 389 ($@67)
- '=' shift, and go to state 663
+ $@67 go to state 667
state 584
- 501 encaps_var_offset: "identifier (T_STRING)" .
+ 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)" ';'
- $default reduce using rule 501 (encaps_var_offset)
+ "elseif (T_ELSEIF)" reduce using rule 40 ($@8)
+ "else (T_ELSE)" reduce using rule 40 ($@8)
+ "endif (T_ENDIF)" reduce using rule 40 ($@8)
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
+ $@8 go to state 668
state 585
- 503 encaps_var_offset: "variable (T_VARIABLE)" .
+ 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 . elseif_list else_single
+
+ $default reduce using rule 151 (elseif_list)
- $default reduce using rule 503 (encaps_var_offset)
+ elseif_list go to state 669
state 586
- 502 encaps_var_offset: "number (T_NUM_STRING)" .
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 . parenthesis_expr ';'
+
+ '(' shift, and go to state 174
- $default reduce using rule 502 (encaps_var_offset)
+ parenthesis_expr go to state 670
state 587
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset . ']'
+ 150 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';'
+
+ $default reduce using rule 28 (inner_statement_list)
- ']' shift, and go to state 664
+ inner_statement_list go to state 671
state 588
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ']' shift, and go to state 665
+ 149 while_statement: statement .
+
+ $default reduce using rule 149 (while_statement)
state 589
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 . function_call_parameter_list ')'
+ 44 unticked_statement: "while (T_WHILE)" $@9 parenthesis_expr @10 while_statement .
+
+ $default reduce using rule 44 (unticked_statement)
+
+
+state 590
+
+ 51 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
@@ -17797,480 +18022,626 @@ state 589
"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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 666
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 590
-
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list '}' .
-
- $default reduce using rule 15 (top_statement)
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 244 (for_expr)
+
+ namespace_name go to state 84
+ for_expr go to state 672
+ non_empty_for_expr go to state 331
+ 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 125
+ 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 332
+ 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
state 591
- 3 top_statement_list: top_statement_list . @1 top_statement
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list . '}'
-
- '}' shift, and go to state 667
+ 247 non_empty_for_expr: non_empty_for_expr ',' $@41 . expr
- $default reduce using rule 2 (@1)
-
- @1 go to state 4
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 673
+ 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
state 592
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list . ')'
-
- ')' shift, and go to state 668
+ 73 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 674
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 675
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ foreach_variable go to state 676
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 677
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 593
- 310 expr_without_variable: '(' new_expr ')' @48 instance_call .
-
- $default reduce using rule 310 (expr_without_variable)
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 . foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+
+ '&' shift, and go to state 674
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 675
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ foreach_variable go to state 678
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 677
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 594
- 249 instance_call: @40 . chaining_instance_call
-
- '[' shift, and go to state 669
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 670
-
- chaining_method_or_property go to state 671
- chaining_dereference go to state 672
- chaining_instance_call go to state 673
- variable_property go to state 674
+ 136 declare_list: "identifier (T_STRING)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 679
+ static_class_constant go to state 502
state 595
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
+ 137 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar
- ')' shift, and go to state 675
+ "identifier (T_STRING)" shift, and go to state 680
state 596
- 170 non_empty_function_call_parameter_list: '&' w_variable .
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' . declare_statement
- $default reduce using rule 170 (non_empty_function_call_parameter_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 11
+ ':' shift, and go to state 681
+ '+' 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 124
+ "__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 682
+ unticked_statement go to state 88
+ declare_statement go to state 683
+ 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 125
+ 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
state 597
- 344 function_call: namespace_name '(' @55 function_call_parameter_list ')' .
+ 141 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';'
- $default reduce using rule 344 (function_call)
+ $default reduce using rule 142 (case_list)
+
+ case_list go to state 684
state 598
- 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
- 172 | non_empty_function_call_parameter_list ',' . variable
- 173 | non_empty_function_call_parameter_list ',' . '&' w_variable
+ 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
- "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
- '&' shift, and go to state 676
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 677
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 678
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "endswitch (T_ENDSWITCH)" shift, and go to state 685
+ "case (T_CASE)" shift, and go to state 686
+ "default (T_DEFAULT)" shift, and go to state 687
state 599
- 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
+ 139 switch_case_list: '{' ';' . case_list '}'
- $default reduce using rule 24 (constant_declaration)
+ $default reduce using rule 142 (case_list)
+ case_list go to state 688
-state 600
- 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+state 600
- "identifier (T_STRING)" shift, and go to state 116
+ 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
- namespace_name go to state 679
+ "case (T_CASE)" shift, and go to state 686
+ "default (T_DEFAULT)" shift, and go to state 687
+ '}' shift, and go to state 689
state 601
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ 419 static_scalar: '+' static_scalar .
- $default reduce using rule 365 (fully_qualified_class_name)
+ $default reduce using rule 419 (static_scalar)
state 602
- 114 implements_list: "implements (T_IMPLEMENTS)" . interface_list
-
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 420 static_scalar: '-' static_scalar .
- namespace_name go to state 516
- interface_list go to state 680
- fully_qualified_class_name go to state 605
+ $default reduce using rule 420 (static_scalar)
state 603
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list . '{' class_statement_list '}'
+ 441 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
+ 442 | static_scalar .
- '{' shift, and go to state 681
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 690
+ $default reduce using rule 442 (non_empty_static_array_pair_list)
-state 604
- 112 interface_extends_list: "extends (T_EXTENDS)" interface_list .
- 116 interface_list: interface_list . ',' fully_qualified_class_name
+state 604
- ',' shift, and go to state 682
+ 422 static_scalar: '[' static_array_pair_list . ']'
- $default reduce using rule 112 (interface_extends_list)
+ ']' shift, and go to state 691
state 605
- 115 interface_list: fully_qualified_class_name .
+ 436 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 440 | non_empty_static_array_pair_list . ',' static_scalar
- $default reduce using rule 115 (interface_list)
+ ',' shift, and go to state 692
+ $default reduce using rule 437 (possible_comma)
-state 606
+ possible_comma go to state 693
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' . class_statement_list '}'
- $default reduce using rule 184 (class_statement_list)
+state 606
- class_statement_list go to state 683
+ 421 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')'
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ $default reduce using rule 435 (static_array_pair_list)
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 603
+ static_class_constant go to state 502
+ static_array_pair_list go to state 694
+ non_empty_static_array_pair_list go to state 605
state 607
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' . parameter_list ')' '{' inner_statement_list '}'
-
- "identifier (T_STRING)" shift, and go to state 116
- "array (T_ARRAY)" shift, and go to state 608
- "callable (T_CALLABLE)" shift, and go to state 609
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 413 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
- ')' reduce using rule 153 (parameter_list)
- $default reduce using rule 162 (optional_class_type)
-
- namespace_name go to state 516
- parameter_list go to state 684
- non_empty_parameter_list go to state 611
- optional_class_type go to state 612
- fully_qualified_class_name go to state 613
+ "heredoc end (T_END_HEREDOC)" shift, and go to state 372
state 608
- 163 optional_class_type: "array (T_ARRAY)" .
+ 381 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+ 417 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
+
+ "identifier (T_STRING)" shift, and go to state 122
- $default reduce using rule 163 (optional_class_type)
+ namespace_name go to state 695
state 609
- 164 optional_class_type: "callable (T_CALLABLE)" .
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 382 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ 418 static_scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
+
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- $default reduce using rule 164 (optional_class_type)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 382 (class_name)
+ $default reduce using rule 418 (static_scalar)
state 610
- 333 expr_without_variable: function is_reference '(' @53 parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+ 425 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- ')' shift, and go to state 685
+ "identifier (T_STRING)" shift, and go to state 696
state 611
- 152 parameter_list: non_empty_parameter_list .
- 158 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)"
- 159 | non_empty_parameter_list . ',' optional_class_type '&' "variable (T_VARIABLE)"
- 160 | non_empty_parameter_list . ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 161 | non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar
+ 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' . catch_statement $@23 finally_statement
- ',' shift, and go to state 686
+ "catch (T_CATCH)" shift, and go to state 697
- $default reduce using rule 152 (parameter_list)
+ $default reduce using rule 82 (catch_statement)
+
+ catch_statement go to state 698
state 612
- 154 non_empty_parameter_list: optional_class_type . "variable (T_VARIABLE)"
- 155 | optional_class_type . '&' "variable (T_VARIABLE)"
- 156 | optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar
- 157 | optional_class_type . "variable (T_VARIABLE)" '=' static_scalar
+ 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
- '&' shift, and go to state 687
- "variable (T_VARIABLE)" shift, and go to state 688
+ $default reduce using rule 23 (use_declaration)
state 613
- 165 optional_class_type: fully_qualified_class_name .
+ 188 global_var: '$' '{' expr '}' .
- $default reduce using rule 165 (optional_class_type)
+ $default reduce using rule 188 (global_var)
state 614
- 450 array_function_dereference: function_call @69 '[' dim_offset ']' .
-
- $default reduce using rule 450 (array_function_dereference)
+ 190 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 699
+ static_class_constant go to state 502
state 615
- 471 variable_name: '{' expr '}' .
+ 346 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 122
+ "array (T_ARRAY)" shift, and go to state 646
+ "callable (T_CALLABLE)" shift, and go to state 647
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ ')' reduce using rule 162 (parameter_list)
+ $default reduce using rule 171 (optional_class_type)
- $default reduce using rule 471 (variable_name)
+ namespace_name go to state 549
+ parameter_list go to state 700
+ non_empty_parameter_list go to state 649
+ optional_class_type go to state 650
+ fully_qualified_class_name go to state 651
state 616
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 . function_call_parameter_list ')'
+ 99 unset_variables: unset_variables ',' unset_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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 689
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 99 (unset_variables)
state 617
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 . function_call_parameter_list ')'
+ 67 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' .
+
+ $default reduce using rule 67 (unticked_statement)
+
+
+state 618
+
+ 536 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
@@ -18278,646 +18649,281 @@ state 617
"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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 690
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
-
-
-state 618
-
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 315 | expr '?' ':' @51 expr .
-
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 315 (expr_without_variable)
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 361
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 362
+ 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 701
+ class_constant go to state 120
state 619
- 313 expr_without_variable: expr '?' @49 expr ':' . @50 expr
+ 500 assignment_list_element: "list (T_LIST)" '(' . $@74 assignment_list ')'
- $default reduce using rule 312 (@50)
+ $default reduce using rule 499 ($@74)
- @50 go to state 691
+ $@74 go to state 702
state 620
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . @43 ctor_arguments
-
- $default reduce using rule 256 (@43)
-
- @43 go to state 692
+ 496 assignment_list: assignment_list ',' . assignment_list_element
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 519
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ $default reduce using rule 501 (assignment_list_element)
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 520
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 703
state 621
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')' .
+ 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' . '=' expr
- $default reduce using rule 358 (function_call)
+ '=' shift, and go to state 704
state 622
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 . function_call_parameter_list ')'
+ 523 encaps_var_offset: "identifier (T_STRING)" .
- "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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 693
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 523 (encaps_var_offset)
state 623
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 . function_call_parameter_list ')'
+ 525 encaps_var_offset: "variable (T_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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 694
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 525 (encaps_var_offset)
state 624
- 466 object_property: variable_without_objects @70 .
+ 524 encaps_var_offset: "number (T_NUM_STRING)" .
- $default reduce using rule 466 (object_property)
+ $default reduce using rule 524 (encaps_var_offset)
state 625
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 . method_or_not variable_properties
-
- '(' shift, and go to state 695
-
- $default reduce using rule 442 (method_or_not)
+ 518 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset . ']'
- array_method_dereference go to state 696
- method go to state 697
- method_or_not go to state 698
+ ']' shift, and go to state 705
state 626
- 467 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 699
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ 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
+ 521 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ']' shift, and go to state 706
state 627
- 468 object_dim_list: object_dim_list '{' . expr '}'
+ 366 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name @59 function_call_parameter_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 700
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 366 (function_call)
state 628
- 486 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 701
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}' .
+
+ $default reduce using rule 15 (top_statement)
state 629
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr .
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 482 (non_empty_array_pair_list)
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list . '}'
+
+ '}' shift, and go to state 707
+
+ $default reduce using rule 2 ($@1)
+
+ $@1 go to state 4
state 630
- 382 ctor_arguments: '(' function_call_parameter_list ')' .
+ 320 expr_without_variable: '(' new_expr ')' @51 instance_call .
- $default reduce using rule 382 (ctor_arguments)
+ $default reduce using rule 320 (expr_without_variable)
state 631
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 . dynamic_class_name_variable_properties
+ 259 instance_call: $@43 . chaining_instance_call
- $default reduce using rule 373 (dynamic_class_name_variable_properties)
+ '[' shift, and go to state 708
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 709
- dynamic_class_name_variable_properties go to state 702
+ chaining_method_or_property go to state 710
+ chaining_dereference go to state 711
+ chaining_instance_call go to state 712
+ variable_property go to state 713
state 632
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 . inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- $default reduce using rule 28 (inner_statement_list)
+ 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
- inner_statement_list go to state 703
+ ')' shift, and go to state 714
state 633
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement . @6 elseif_list else_single
-
- $default reduce using rule 37 (@6)
+ 180 non_empty_function_call_parameter_list: '&' w_variable .
- @6 go to state 704
+ $default reduce using rule 180 (non_empty_function_call_parameter_list)
state 634
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 . expr ')' ';'
+ 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)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18925,549 +18931,380 @@ state 634
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 705
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '&' shift, and go to state 715
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 716
+ combined_scalar_offset go to state 98
+ combined_scalar go to state 99
+ function go to state 125
+ 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 194
+ parenthesis_expr go to state 106
+ r_variable go to state 107
+ rw_variable go to state 108
+ variable go to state 717
+ 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
state 635
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 . while_statement
+ 176 function_call_parameter_list: '(' non_empty_function_call_parameter_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
- ':' shift, and go to state 706
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 707
- unticked_statement go to state 87
- while_statement go to state 708
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 176 (function_call_parameter_list)
state 636
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr . ';' @14 for_expr ')' @15 for_statement
+ 177 function_call_parameter_list: '(' yield_expr ')' .
- ';' shift, and go to state 709
+ $default reduce using rule 177 (function_call_parameter_list)
state 637
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 237 (non_empty_for_expr)
+ 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
+
+ $default reduce using rule 24 (constant_declaration)
state 638
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable . foreach_optional_arg ')' @20 foreach_statement
-
- "=> (T_DOUBLE_ARROW)" shift, and go to state 710
+ 384 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
- $default reduce using rule 117 (foreach_optional_arg)
+ "identifier (T_STRING)" shift, and go to state 122
- foreach_optional_arg go to state 711
+ namespace_name go to state 718
state 639
- 120 foreach_variable: '&' . variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 712
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
+ 385 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
-state 640
+ $default reduce using rule 385 (fully_qualified_class_name)
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable . foreach_optional_arg ')' @18 foreach_statement
- "=> (T_DOUBLE_ARROW)" shift, and go to state 710
+state 640
- $default reduce using rule 117 (foreach_optional_arg)
+ 121 implements_list: "implements (T_IMPLEMENTS)" . interface_list
- foreach_optional_arg go to state 713
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ namespace_name go to state 549
+ interface_list go to state 719
+ fully_qualified_class_name go to state 643
state 641
- 119 foreach_variable: variable .
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list . '{' class_statement_list '}'
- $default reduce using rule 119 (foreach_variable)
+ '{' shift, and go to state 720
state 642
- 127 declare_list: "identifier (T_STRING)" '=' static_scalar .
+ 119 interface_extends_list: "extends (T_EXTENDS)" interface_list .
+ 123 interface_list: interface_list . ',' fully_qualified_class_name
+
+ ',' shift, and go to state 721
- $default reduce using rule 127 (declare_list)
+ $default reduce using rule 119 (interface_extends_list)
state 643
- 128 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar
+ 122 interface_list: fully_qualified_class_name .
- '=' shift, and go to state 714
+ $default reduce using rule 122 (interface_list)
state 644
- 126 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' . class_statement_list '}'
- $default reduce using rule 28 (inner_statement_list)
+ $default reduce using rule 194 (class_statement_list)
- inner_statement_list go to state 715
+ class_statement_list go to state 722
state 645
- 125 declare_statement: statement .
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' . parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 125 (declare_statement)
+ "identifier (T_STRING)" shift, and go to state 122
+ "array (T_ARRAY)" shift, and go to state 646
+ "callable (T_CALLABLE)" shift, and go to state 647
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+ ')' reduce using rule 162 (parameter_list)
+ $default reduce using rule 171 (optional_class_type)
-state 646
+ namespace_name go to state 549
+ parameter_list go to state 723
+ non_empty_parameter_list go to state 649
+ optional_class_type go to state 650
+ fully_qualified_class_name go to state 651
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' declare_statement .
- $default reduce using rule 74 (unticked_statement)
+state 646
+ 172 optional_class_type: "array (T_ARRAY)" .
-state 647
+ $default reduce using rule 172 (optional_class_type)
- 131 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';'
- 132 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';'
- ';' shift, and go to state 716
+state 647
- $default reduce using rule 133 (case_list)
+ 173 optional_class_type: "callable (T_CALLABLE)" .
- case_list go to state 717
+ $default reduce using rule 173 (optional_class_type)
state 648
- 129 switch_case_list: '{' . case_list '}'
- 130 | '{' . ';' case_list '}'
-
- ';' shift, and go to state 718
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
- $default reduce using rule 133 (case_list)
-
- case_list go to state 719
+ ')' shift, and go to state 724
state 649
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 switch_case_list .
+ 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
- $default reduce using rule 53 (unticked_statement)
+ ',' shift, and go to state 725
+
+ $default reduce using rule 161 (parameter_list)
state 650
- 421 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 720
- static_class_constant go to state 471
+ 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
+
+ '&' shift, and go to state 726
+ "variable (T_VARIABLE)" shift, and go to state 727
state 651
- 402 static_scalar: '[' static_array_pair_list ']' .
+ 174 optional_class_type: fully_qualified_class_name .
- $default reduce using rule 402 (static_scalar)
+ $default reduce using rule 174 (optional_class_type)
state 652
- 418 possible_comma: ',' .
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
- 420 | non_empty_static_array_pair_list ',' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- $default reduce using rule 418 (possible_comma)
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 721
- static_class_constant go to state 471
+ 472 array_function_dereference: function_call $@72 '[' dim_offset ']' .
+
+ $default reduce using rule 472 (array_function_dereference)
state 653
- 416 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
+ 493 variable_name: '{' expr '}' .
- $default reduce using rule 416 (static_array_pair_list)
+ $default reduce using rule 493 (variable_name)
state 654
- 401 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')'
+ 372 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@62 function_call_parameter_list .
- ')' shift, and go to state 722
+ $default reduce using rule 372 (function_call)
state 655
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- 397 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
-
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
+ 370 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name @61 function_call_parameter_list .
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 361 (class_name)
- $default reduce using rule 397 (static_scalar)
+ $default reduce using rule 370 (function_call)
state 656
- 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
-
- $default reduce using rule 405 (static_class_constant)
+ 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)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 325 (expr_without_variable)
state 657
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" . '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 323 expr_without_variable: expr '?' $@52 expr ':' . $@53 expr
+
+ $default reduce using rule 322 ($@53)
- '(' shift, and go to state 723
+ $@53 go to state 728
state 658
- 180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar .
+ 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . $@46 ctor_arguments
- $default reduce using rule 180 (static_var_list)
+ $default reduce using rule 266 ($@46)
+
+ $@46 go to state 729
state 659
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+ 376 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects $@64 function_call_parameter_list .
- ')' shift, and go to state 724
+ $default reduce using rule 376 (function_call)
state 660
- 513 isset_variables: isset_variables ',' @73 variable .
+ 374 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name $@63 function_call_parameter_list .
- $default reduce using rule 513 (isset_variables)
+ $default reduce using rule 374 (function_call)
state 661
- 478 assignment_list_element: "list (T_LIST)" '(' @71 . assignment_list ')'
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "list (T_LIST)" shift, and go to state 487
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- $default reduce using rule 479 (assignment_list_element)
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- variable go to state 488
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- assignment_list go to state 725
- assignment_list_element go to state 490
+ 488 object_property: variable_without_objects $@73 .
+
+ $default reduce using rule 488 (object_property)
state 662
- 474 assignment_list: assignment_list ',' assignment_list_element .
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 . method_or_not variable_properties
+
+ '(' reduce using rule 460 (@71)
+ $default reduce using rule 464 (method_or_not)
- $default reduce using rule 474 (assignment_list)
+ array_method_dereference go to state 730
+ method go to state 731
+ @71 go to state 732
+ method_or_not go to state 733
state 663
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' . expr
+ 489 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
@@ -19475,4747 +19312,4950 @@ state 663
"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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 726
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "yield (T_YIELD)" shift, and go to state 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 734
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
state 664
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']' .
+ 490 object_dim_list: object_dim_list '{' . expr '}'
- $default reduce using rule 496 (encaps_var)
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 735
+ 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
state 665
- 499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}'
-
- '}' shift, and go to state 727
+ 508 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 736
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 666
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list . ')'
-
- ')' shift, and go to state 728
+ 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
+ 504 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr .
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 504 (non_empty_array_pair_list)
state 667
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list '}' .
+ 390 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@66 object_property $@67 . dynamic_class_name_variable_properties
- $default reduce using rule 13 (top_statement)
+ $default reduce using rule 393 (dynamic_class_name_variable_properties)
+
+ dynamic_class_name_variable_properties go to state 737
state 668
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')' .
+ 41 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 154 (new_elseif_list)
- $default reduce using rule 348 (function_call)
+ new_elseif_list go to state 738
state 669
- 242 chaining_dereference: '[' . dim_offset ']'
+ 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
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 729
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "elseif (T_ELSEIF)" shift, and go to state 739
+ "else (T_ELSE)" shift, and go to state 740
+ "elseif (T_ELSEIF)" [reduce using rule 157 (else_single)]
+ "else (T_ELSE)" [reduce using rule 157 (else_single)]
+ $default reduce using rule 157 (else_single)
-state 670
+ else_single go to state 741
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property @67 method_or_not
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+state 670
+
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr . ';'
- variable_without_objects go to state 540
- reference_variable go to state 382
- compound_variable go to state 112
- object_property go to state 730
- object_dim_list go to state 542
- variable_name go to state 543
- simple_indirect_reference go to state 384
+ ';' shift, and go to state 742
state 671
- 239 chaining_method_or_property: chaining_method_or_property . variable_property
- 246 chaining_instance_call: chaining_method_or_property .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 150 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';'
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 670
+ "endwhile (T_ENDWHILE)" shift, and go to state 743
- $default reduce using rule 246 (chaining_instance_call)
+ $default reduce using rule 26 ($@4)
- variable_property go to state 731
+ $@4 go to state 389
state 672
- 241 chaining_dereference: chaining_dereference . '[' dim_offset ']'
- 244 chaining_instance_call: chaining_dereference . @39 chaining_method_or_property
- 245 | chaining_dereference .
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr . ';' $@14 for_expr ')' $@15 for_statement
- '[' shift, and go to state 732
-
- "-> (T_OBJECT_OPERATOR)" reduce using rule 243 (@39)
- $default reduce using rule 245 (chaining_instance_call)
-
- @39 go to state 733
+ ';' shift, and go to state 744
state 673
- 249 instance_call: @40 chaining_instance_call .
-
- $default reduce using rule 249 (instance_call)
+ 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)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+
+ $default reduce using rule 247 (non_empty_for_expr)
state 674
- 240 chaining_method_or_property: variable_property .
-
- $default reduce using rule 240 (chaining_method_or_property)
+ 127 foreach_variable: '&' . variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 745
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 675
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
+ 129 foreach_variable: "list (T_LIST)" . '(' $@34 assignment_list ')'
- ';' shift, and go to state 734
+ '(' shift, and go to state 746
state 676
- 173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
-
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- function_call go to state 97
- class_name go to state 142
- w_variable go to state 735
- variable go to state 292
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable . foreach_optional_arg ')' $@20 foreach_statement
+
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 747
+
+ $default reduce using rule 124 (foreach_optional_arg)
+
+ foreach_optional_arg go to state 748
state 677
- 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
- 424 expr: expr_without_variable .
+ 126 foreach_variable: variable .
- ',' reduce using rule 171 (non_empty_function_call_parameter_list)
- ')' reduce using rule 171 (non_empty_function_call_parameter_list)
- $default reduce using rule 424 (expr)
+ $default reduce using rule 126 (foreach_variable)
state 678
- 172 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
- 254 expr_without_variable: variable . '=' expr
- 255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
- 259 | variable . "+= (T_PLUS_EQUAL)" expr
- 260 | variable . "-= (T_MINUS_EQUAL)" expr
- 261 | variable . "*= (T_MUL_EQUAL)" expr
- 262 | variable . "/= (T_DIV_EQUAL)" expr
- 263 | variable . ".= (T_CONCAT_EQUAL)" expr
- 264 | variable . "%= (T_MOD_EQUAL)" expr
- 265 | variable . "&= (T_AND_EQUAL)" expr
- 266 | variable . "|= (T_OR_EQUAL)" expr
- 267 | variable . "^= (T_XOR_EQUAL)" expr
- 268 | variable . "<<= (T_SL_EQUAL)" expr
- 269 | variable . ">>= (T_SR_EQUAL)" expr
- 425 r_variable: variable .
- 427 rw_variable: variable .
-
- '=' shift, and go to state 264
- ">>= (T_SR_EQUAL)" shift, and go to state 265
- "<<= (T_SL_EQUAL)" shift, and go to state 266
- "^= (T_XOR_EQUAL)" shift, and go to state 267
- "|= (T_OR_EQUAL)" shift, and go to state 268
- "&= (T_AND_EQUAL)" shift, and go to state 269
- "%= (T_MOD_EQUAL)" shift, and go to state 270
- ".= (T_CONCAT_EQUAL)" shift, and go to state 271
- "/= (T_DIV_EQUAL)" shift, and go to state 272
- "*= (T_MUL_EQUAL)" shift, and go to state 273
- "-= (T_MINUS_EQUAL)" shift, and go to state 274
- "+= (T_PLUS_EQUAL)" shift, and go to state 275
-
- ',' reduce using rule 172 (non_empty_function_call_parameter_list)
- "-- (T_DEC)" reduce using rule 427 (rw_variable)
- "++ (T_INC)" reduce using rule 427 (rw_variable)
- ')' reduce using rule 172 (non_empty_function_call_parameter_list)
- $default reduce using rule 425 (r_variable)
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable . foreach_optional_arg ')' $@18 foreach_statement
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 747
-state 679
+ $default reduce using rule 124 (foreach_optional_arg)
- 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
+ foreach_optional_arg go to state 749
- "\\ (T_NS_SEPARATOR)" shift, and go to state 225
- $default reduce using rule 364 (fully_qualified_class_name)
+state 679
+ 136 declare_list: "identifier (T_STRING)" '=' static_scalar .
-state 680
+ $default reduce using rule 136 (declare_list)
- 114 implements_list: "implements (T_IMPLEMENTS)" interface_list .
- 116 interface_list: interface_list . ',' fully_qualified_class_name
- ',' shift, and go to state 682
+state 680
- $default reduce using rule 114 (implements_list)
+ 137 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar
+
+ '=' shift, and go to state 750
state 681
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' . class_statement_list '}'
+ 135 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
- $default reduce using rule 184 (class_statement_list)
+ $default reduce using rule 28 (inner_statement_list)
- class_statement_list go to state 736
+ inner_statement_list go to state 751
state 682
- 116 interface_list: interface_list ',' . fully_qualified_class_name
+ 134 declare_statement: statement .
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
-
- namespace_name go to state 516
- fully_qualified_class_name go to state 737
+ $default reduce using rule 134 (declare_statement)
state 683
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list . '}'
- 183 class_statement_list: class_statement_list . class_statement
-
- "const (T_CONST)" shift, and go to state 738
- "use (T_USE)" shift, and go to state 739
- "public (T_PUBLIC)" shift, and go to state 740
- "protected (T_PROTECTED)" shift, and go to state 741
- "private (T_PRIVATE)" shift, and go to state 742
- "final (T_FINAL)" shift, and go to state 743
- "abstract (T_ABSTRACT)" shift, and go to state 744
- "static (T_STATIC)" shift, and go to state 745
- "var (T_VAR)" shift, and go to state 746
- '}' shift, and go to state 747
+ 75 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement .
- $default reduce using rule 216 (method_modifiers)
-
- class_statement go to state 748
- trait_use_statement go to state 749
- variable_modifiers go to state 750
- method_modifiers go to state 751
- non_empty_member_modifiers go to state 752
- member_modifier go to state 753
- class_constant_declaration go to state 754
+ $default reduce using rule 75 (unticked_statement)
state 684
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list . ')' '{' inner_statement_list '}'
+ 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 755
+ "endswitch (T_ENDSWITCH)" shift, and go to state 752
+ "case (T_CASE)" shift, and go to state 686
+ "default (T_DEFAULT)" shift, and go to state 687
state 685
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' . lexical_vars '{' inner_statement_list '}'
-
- "use (T_USE)" shift, and go to state 756
-
- $default reduce using rule 337 (lexical_vars)
+ 140 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';'
- lexical_vars go to state 757
+ ';' shift, and go to state 753
state 686
- 158 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)"
- 159 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)"
- 160 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar
- 161 | non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)" '=' static_scalar
+ 144 case_list: case_list "case (T_CASE)" . expr case_separator $@35 inner_statement_list
- "identifier (T_STRING)" shift, and go to state 116
- "array (T_ARRAY)" shift, and go to state 608
- "callable (T_CALLABLE)" shift, and go to state 609
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
-
- $default reduce using rule 162 (optional_class_type)
-
- namespace_name go to state 516
- optional_class_type go to state 758
- fully_qualified_class_name go to state 613
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 754
+ 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
state 687
- 155 non_empty_parameter_list: optional_class_type '&' . "variable (T_VARIABLE)"
- 156 | optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
+ 146 case_list: case_list "default (T_DEFAULT)" . case_separator $@36 inner_statement_list
- "variable (T_VARIABLE)" shift, and go to state 759
+ ':' shift, and go to state 755
+ ';' shift, and go to state 756
+ case_separator go to state 757
-state 688
- 154 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" .
- 157 | optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
+state 688
- '=' shift, and go to state 760
+ 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
- $default reduce using rule 154 (non_empty_parameter_list)
+ "case (T_CASE)" shift, and go to state 686
+ "default (T_DEFAULT)" shift, and go to state 687
+ '}' shift, and go to state 758
state 689
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list . ')'
+ 138 switch_case_list: '{' case_list '}' .
- ')' shift, and go to state 761
+ $default reduce using rule 138 (switch_case_list)
state 690
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list . ')'
-
- ')' shift, and go to state 762
+ 441 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 759
+ static_class_constant go to state 502
state 691
- 313 expr_without_variable: expr '?' @49 expr ':' @50 . expr
+ 422 static_scalar: '[' static_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 763
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 422 (static_scalar)
state 692
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 . ctor_arguments
-
- '(' shift, and go to state 443
-
- $default reduce using rule 381 (ctor_arguments)
-
- ctor_arguments go to state 764
+ 438 possible_comma: ',' .
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
+ 440 | non_empty_static_array_pair_list ',' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ $default reduce using rule 438 (possible_comma)
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 760
+ static_class_constant go to state 502
state 693
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list . ')'
+ 436 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
- ')' shift, and go to state 765
+ $default reduce using rule 436 (static_array_pair_list)
state 694
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list . ')'
+ 421 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')'
- ')' shift, and go to state 766
+ ')' shift, and go to state 761
state 695
- 439 method: '(' . @68 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 .
+ 417 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
- $default reduce using rule 438 (@68)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- @68 go to state 767
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 381 (class_name)
+ $default reduce using rule 417 (static_scalar)
state 696
- 436 array_method_dereference: array_method_dereference . '[' dim_offset ']'
- 441 method_or_not: array_method_dereference .
-
- '[' shift, and go to state 768
+ 425 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
- $default reduce using rule 441 (method_or_not)
+ $default reduce using rule 425 (static_class_constant)
state 697
- 437 array_method_dereference: method . '[' dim_offset ']'
- 440 method_or_not: method .
+ 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 769
-
- $default reduce using rule 440 (method_or_not)
+ '(' shift, and go to state 762
state 698
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not . variable_properties
+ 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement . $@23 finally_statement
- $default reduce using rule 433 (variable_properties)
+ $default reduce using rule 78 ($@23)
- variable_properties go to state 770
+ $@23 go to state 763
state 699
- 467 object_dim_list: object_dim_list '[' dim_offset . ']'
+ 190 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar .
- ']' shift, and go to state 771
+ $default reduce using rule 190 (static_var_list)
state 700
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 468 object_dim_list: object_dim_list '{' expr . '}'
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- '}' shift, and go to state 772
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list . ')' lexical_vars '{' inner_statement_list '}'
+
+ ')' shift, and go to state 764
state 701
- 486 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
+ 536 isset_variables: isset_variables ',' $@76 isset_variable .
- $default reduce using rule 486 (non_empty_array_pair_list)
+ $default reduce using rule 536 (isset_variables)
state 702
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties .
- 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
-
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 773
-
- $default reduce using rule 370 (dynamic_class_name_reference)
-
- dynamic_class_name_variable_property go to state 774
+ 500 assignment_list_element: "list (T_LIST)" '(' $@74 . assignment_list ')'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 519
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ $default reduce using rule 501 (assignment_list_element)
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 520
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 765
+ assignment_list_element go to state 522
state 703
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list . @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- "elseif (T_ELSEIF)" reduce using rule 40 (@8)
- "else (T_ELSE)" reduce using rule 40 (@8)
- "endif (T_ENDIF)" reduce using rule 40 (@8)
- $default reduce using rule 26 (@4)
+ 496 assignment_list: assignment_list ',' assignment_list_element .
- @4 go to state 366
- @8 go to state 775
+ $default reduce using rule 496 (assignment_list)
state 704
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 . elseif_list else_single
+ 263 expr_without_variable: "list (T_LIST)" '(' $@45 assignment_list ')' '=' . expr
- $default reduce using rule 142 (elseif_list)
-
- elseif_list go to state 776
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 766
+ 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
state 705
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr . ')' ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 777
+ 518 encaps_var: "variable (T_VARIABLE)" '[' $@75 encaps_var_offset ']' .
+
+ $default reduce using rule 518 (encaps_var)
state 706
- 141 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';'
+ 521 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}'
- $default reduce using rule 28 (inner_statement_list)
-
- inner_statement_list go to state 778
+ '}' shift, and go to state 767
state 707
- 140 while_statement: statement .
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}' .
- $default reduce using rule 140 (while_statement)
+ $default reduce using rule 13 (top_statement)
state 708
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 while_statement .
+ 252 chaining_dereference: '[' . dim_offset ']'
- $default reduce using rule 44 (unticked_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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 768
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
state 709
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' . @14 for_expr ')' @15 for_statement
+ 457 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property $@70 method_or_not
- $default reduce using rule 49 (@14)
+ "identifier (T_STRING)" shift, and go to state 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
- @14 go to state 779
+ variable_without_objects go to state 574
+ reference_variable go to state 408
+ compound_variable go to state 117
+ object_property go to state 769
+ object_dim_list go to state 576
+ variable_name go to state 577
+ simple_indirect_reference go to state 410
state 710
- 118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable
-
- '&' shift, and go to state 639
- "identifier (T_STRING)" shift, and go to state 116
- "variable (T_VARIABLE)" shift, and go to state 34
- "static (T_STATIC)" shift, and go to state 138
- "namespace (T_NAMESPACE)" shift, and go to state 139
- "\\ (T_NS_SEPARATOR)" shift, and go to state 140
- '$' shift, and go to state 80
-
- namespace_name go to state 141
- foreach_variable go to state 780
- function_call go to state 97
- class_name go to state 142
- variable go to state 641
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 145
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
+ 249 chaining_method_or_property: chaining_method_or_property . variable_property
+ 256 chaining_instance_call: chaining_method_or_property .
+
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 709
+
+ $default reduce using rule 256 (chaining_instance_call)
+
+ variable_property go to state 770
state 711
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg . ')' @20 foreach_statement
+ 251 chaining_dereference: chaining_dereference . '[' dim_offset ']'
+ 254 chaining_instance_call: chaining_dereference . $@42 chaining_method_or_property
+ 255 | chaining_dereference .
- ')' shift, and go to state 781
+ '[' shift, and go to state 771
+
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 253 ($@42)
+ $default reduce using rule 255 (chaining_instance_call)
+
+ $@42 go to state 772
state 712
- 120 foreach_variable: '&' variable .
+ 259 instance_call: $@43 chaining_instance_call .
- $default reduce using rule 120 (foreach_variable)
+ $default reduce using rule 259 (instance_call)
state 713
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg . ')' @18 foreach_statement
+ 250 chaining_method_or_property: variable_property .
- ')' shift, and go to state 782
+ $default reduce using rule 250 (chaining_method_or_property)
state 714
- 128 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 783
- static_class_constant go to state 471
-
-
-state 715
+ 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 126 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';'
+ ';' shift, and go to state 773
- "enddeclare (T_ENDDECLARE)" shift, and go to state 784
- $default reduce using rule 26 (@4)
+state 715
- @4 go to state 366
+ 183 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ w_variable go to state 774
+ variable go to state 309
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 716
- 132 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';'
+ 181 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
+ 444 expr: expr_without_variable .
- $default reduce using rule 133 (case_list)
-
- case_list go to state 785
+ ',' reduce using rule 181 (non_empty_function_call_parameter_list)
+ ')' reduce using rule 181 (non_empty_function_call_parameter_list)
+ $default reduce using rule 444 (expr)
state 717
- 131 switch_case_list: ':' case_list . "endswitch (T_ENDSWITCH)" ';'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
-
- "endswitch (T_ENDSWITCH)" shift, and go to state 786
- "case (T_CASE)" shift, and go to state 787
- "default (T_DEFAULT)" shift, and go to state 788
+ 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
+ 447 r_variable: variable .
+ 449 rw_variable: variable .
+
+ '=' shift, and go to state 280
+ ">>= (T_SR_EQUAL)" shift, and go to state 281
+ "<<= (T_SL_EQUAL)" shift, and go to state 282
+ "^= (T_XOR_EQUAL)" shift, and go to state 283
+ "|= (T_OR_EQUAL)" shift, and go to state 284
+ "&= (T_AND_EQUAL)" shift, and go to state 285
+ "%= (T_MOD_EQUAL)" shift, and go to state 286
+ ".= (T_CONCAT_EQUAL)" shift, and go to state 287
+ "/= (T_DIV_EQUAL)" shift, and go to state 288
+ "*= (T_MUL_EQUAL)" shift, and go to state 289
+ "-= (T_MINUS_EQUAL)" shift, and go to state 290
+ "+= (T_PLUS_EQUAL)" shift, and go to state 291
+
+ ',' reduce using rule 182 (non_empty_function_call_parameter_list)
+ "-- (T_DEC)" reduce using rule 449 (rw_variable)
+ "++ (T_INC)" reduce using rule 449 (rw_variable)
+ ')' reduce using rule 182 (non_empty_function_call_parameter_list)
+ $default reduce using rule 447 (r_variable)
state 718
- 130 switch_case_list: '{' ';' . case_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 .
- $default reduce using rule 133 (case_list)
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 238
- case_list go to state 789
+ $default reduce using rule 384 (fully_qualified_class_name)
state 719
- 129 switch_case_list: '{' case_list . '}'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 121 implements_list: "implements (T_IMPLEMENTS)" interface_list .
+ 123 interface_list: interface_list . ',' fully_qualified_class_name
+
+ ',' shift, and go to state 721
- "case (T_CASE)" shift, and go to state 787
- "default (T_DEFAULT)" shift, and go to state 788
- '}' shift, and go to state 790
+ $default reduce using rule 121 (implements_list)
state 720
- 421 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' . class_statement_list '}'
- $default reduce using rule 421 (non_empty_static_array_pair_list)
+ $default reduce using rule 194 (class_statement_list)
+
+ class_statement_list go to state 775
state 721
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
- 420 | non_empty_static_array_pair_list ',' static_scalar .
+ 123 interface_list: interface_list ',' . fully_qualified_class_name
- "=> (T_DOUBLE_ARROW)" shift, and go to state 791
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- $default reduce using rule 420 (non_empty_static_array_pair_list)
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 776
state 722
- 401 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' .
+ 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
- $default reduce using rule 401 (static_scalar)
+ "const (T_CONST)" shift, and go to state 777
+ "use (T_USE)" shift, and go to state 778
+ "public (T_PUBLIC)" shift, and go to state 779
+ "protected (T_PROTECTED)" shift, and go to state 780
+ "private (T_PRIVATE)" shift, and go to state 781
+ "final (T_FINAL)" shift, and go to state 782
+ "abstract (T_ABSTRACT)" shift, and go to state 783
+ "static (T_STATIC)" shift, and go to state 784
+ "var (T_VAR)" shift, and go to state 785
+ '}' shift, and go to state 786
+ $default reduce using rule 226 (method_modifiers)
-state 723
+ class_statement go to state 787
+ trait_use_statement go to state 788
+ variable_modifiers go to state 789
+ method_modifiers go to state 790
+ non_empty_member_modifiers go to state 791
+ member_modifier go to state 792
+ class_constant_declaration go to state 793
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' . @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
- $default reduce using rule 77 (@23)
+state 723
+
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list . ')' '{' inner_statement_list '}'
- @23 go to state 792
+ ')' shift, and go to state 794
state 724
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' . lexical_vars '{' inner_statement_list '}'
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' . lexical_vars '{' inner_statement_list '}'
- "use (T_USE)" shift, and go to state 756
+ "use (T_USE)" shift, and go to state 795
- $default reduce using rule 337 (lexical_vars)
+ $default reduce using rule 357 (lexical_vars)
- lexical_vars go to state 793
+ lexical_vars go to state 796
state 725
- 474 assignment_list: assignment_list . ',' assignment_list_element
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_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
- ',' shift, and go to state 582
- ')' shift, and go to state 794
+ "identifier (T_STRING)" shift, and go to state 122
+ "array (T_ARRAY)" shift, and go to state 646
+ "callable (T_CALLABLE)" shift, and go to state 647
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ $default reduce using rule 171 (optional_class_type)
+
+ namespace_name go to state 549
+ optional_class_type go to state 797
+ fully_qualified_class_name go to state 651
state 726
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
-
- $default reduce using rule 253 (expr_without_variable)
+ 164 non_empty_parameter_list: optional_class_type '&' . "variable (T_VARIABLE)"
+ 165 | optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
+
+ "variable (T_VARIABLE)" shift, and go to state 798
state 727
- 499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' .
+ 163 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" .
+ 166 | optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
- $default reduce using rule 499 (encaps_var)
+ '=' shift, and go to state 799
+
+ $default reduce using rule 163 (non_empty_parameter_list)
state 728
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' .
+ 323 expr_without_variable: expr '?' $@52 expr ':' $@53 . expr
- $default reduce using rule 346 (function_call)
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 125
+ 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 800
+ 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
state 729
- 242 chaining_dereference: '[' dim_offset . ']'
+ 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 . ctor_arguments
+
+ '(' shift, and go to state 394
- ']' shift, and go to state 795
+ $default reduce using rule 401 (ctor_arguments)
+
+ function_call_parameter_list go to state 470
+ ctor_arguments go to state 801
state 730
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . @67 method_or_not
+ 458 array_method_dereference: array_method_dereference . '[' dim_offset ']'
+ 463 method_or_not: array_method_dereference .
- $default reduce using rule 434 (@67)
+ '[' shift, and go to state 802
- @67 go to state 796
+ $default reduce using rule 463 (method_or_not)
state 731
- 239 chaining_method_or_property: chaining_method_or_property variable_property .
+ 459 array_method_dereference: method . '[' dim_offset ']'
+ 462 method_or_not: method .
+
+ '[' shift, and go to state 803
- $default reduce using rule 239 (chaining_method_or_property)
+ $default reduce using rule 462 (method_or_not)
state 732
- 241 chaining_dereference: chaining_dereference '[' . dim_offset ']'
+ 461 method: @71 . function_call_parameter_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 797
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '(' shift, and go to state 394
+
+ function_call_parameter_list go to state 804
state 733
- 244 chaining_instance_call: chaining_dereference @39 . chaining_method_or_property
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not . variable_properties
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 670
+ $default reduce using rule 455 (variable_properties)
- chaining_method_or_property go to state 798
- variable_property go to state 674
+ variable_properties go to state 805
state 734
- 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
+ 489 object_dim_list: object_dim_list '[' dim_offset . ']'
- $default reduce using rule 32 (inner_statement)
+ ']' shift, and go to state 806
state 735
- 173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
-
- $default reduce using rule 173 (non_empty_function_call_parameter_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
+ 490 object_dim_list: object_dim_list '{' expr . '}'
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ '}' shift, and go to state 807
state 736
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list . '}'
- 183 class_statement_list: class_statement_list . class_statement
+ 508 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
- "const (T_CONST)" shift, and go to state 738
- "use (T_USE)" shift, and go to state 739
- "public (T_PUBLIC)" shift, and go to state 740
- "protected (T_PROTECTED)" shift, and go to state 741
- "private (T_PRIVATE)" shift, and go to state 742
- "final (T_FINAL)" shift, and go to state 743
- "abstract (T_ABSTRACT)" shift, and go to state 744
- "static (T_STATIC)" shift, and go to state 745
- "var (T_VAR)" shift, and go to state 746
- '}' shift, and go to state 799
+ $default reduce using rule 508 (non_empty_array_pair_list)
- $default reduce using rule 216 (method_modifiers)
- class_statement go to state 748
- trait_use_statement go to state 749
- variable_modifiers go to state 750
- method_modifiers go to state 751
- non_empty_member_modifiers go to state 752
- member_modifier go to state 753
- class_constant_declaration go to state 754
+state 737
+ 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
-state 737
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 808
- 116 interface_list: interface_list ',' fully_qualified_class_name .
+ $default reduce using rule 390 (dynamic_class_name_reference)
- $default reduce using rule 116 (interface_list)
+ dynamic_class_name_variable_property go to state 809
state 738
- 231 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
+ 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)" shift, and go to state 810
+ "else (T_ELSE)" shift, and go to state 811
- "identifier (T_STRING)" shift, and go to state 800
+ $default reduce using rule 159 (new_else_single)
+
+ new_else_single go to state 812
state 739
- 191 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations
+ 153 elseif_list: elseif_list "elseif (T_ELSEIF)" . parenthesis_expr $@37 statement
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ '(' shift, and go to state 174
- namespace_name go to state 516
- trait_list go to state 801
- fully_qualified_class_name go to state 802
+ parenthesis_expr go to state 813
state 740
- 220 member_modifier: "public (T_PUBLIC)" .
+ 158 else_single: "else (T_ELSE)" . statement
- $default reduce using rule 220 (member_modifier)
+ "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 124
+ "__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 814
+ 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 125
+ 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
state 741
- 221 member_modifier: "protected (T_PROTECTED)" .
+ 38 unticked_statement: "if (T_IF)" parenthesis_expr $@5 statement $@6 elseif_list else_single .
- $default reduce using rule 221 (member_modifier)
+ $default reduce using rule 38 (unticked_statement)
state 742
- 222 member_modifier: "private (T_PRIVATE)" .
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" $@12 parenthesis_expr ';' .
- $default reduce using rule 222 (member_modifier)
+ $default reduce using rule 47 (unticked_statement)
state 743
- 225 member_modifier: "final (T_FINAL)" .
+ 150 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';'
- $default reduce using rule 225 (member_modifier)
+ ';' shift, and go to state 815
state 744
- 224 member_modifier: "abstract (T_ABSTRACT)" .
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' . $@14 for_expr ')' $@15 for_statement
- $default reduce using rule 224 (member_modifier)
+ $default reduce using rule 49 ($@14)
+
+ $@14 go to state 816
state 745
- 223 member_modifier: "static (T_STATIC)" .
+ 127 foreach_variable: '&' variable .
- $default reduce using rule 223 (member_modifier)
+ $default reduce using rule 127 (foreach_variable)
state 746
- 215 variable_modifiers: "var (T_VAR)" .
+ 129 foreach_variable: "list (T_LIST)" '(' . $@34 assignment_list ')'
- $default reduce using rule 215 (variable_modifiers)
+ $default reduce using rule 128 ($@34)
+ $@34 go to state 817
-state 747
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}' .
+state 747
- $default reduce using rule 103 (unticked_class_declaration_statement)
+ 125 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable
+
+ '&' shift, and go to state 674
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 675
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ namespace_name go to state 150
+ foreach_variable go to state 818
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 677
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 748
- 183 class_statement_list: class_statement_list class_statement .
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg . ')' $@20 foreach_statement
- $default reduce using rule 183 (class_statement_list)
+ ')' shift, and go to state 819
state 749
- 188 class_statement: trait_use_statement .
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg . ')' $@18 foreach_statement
- $default reduce using rule 188 (class_statement)
+ ')' shift, and go to state 820
state 750
- 186 class_statement: variable_modifiers . @36 class_variable_declaration ';'
-
- $default reduce using rule 185 (@36)
-
- @36 go to state 803
+ 137 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 821
+ static_class_constant go to state 502
state 751
- 190 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 135 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';'
- "function (T_FUNCTION)" shift, and go to state 47
+ "enddeclare (T_ENDDECLARE)" shift, and go to state 822
- function go to state 804
+ $default reduce using rule 26 ($@4)
+ $@4 go to state 389
-state 752
- 214 variable_modifiers: non_empty_member_modifiers .
- 217 method_modifiers: non_empty_member_modifiers .
- 219 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier
-
- "public (T_PUBLIC)" shift, and go to state 740
- "protected (T_PROTECTED)" shift, and go to state 741
- "private (T_PRIVATE)" shift, and go to state 742
- "final (T_FINAL)" shift, and go to state 743
- "abstract (T_ABSTRACT)" shift, and go to state 744
- "static (T_STATIC)" shift, and go to state 745
+state 752
- "function (T_FUNCTION)" reduce using rule 217 (method_modifiers)
- $default reduce using rule 214 (variable_modifiers)
+ 141 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" . ';'
- member_modifier go to state 805
+ ';' shift, and go to state 823
state 753
- 218 non_empty_member_modifiers: member_modifier .
+ 140 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' .
- $default reduce using rule 218 (non_empty_member_modifiers)
+ $default reduce using rule 140 (switch_case_list)
state 754
- 187 class_statement: class_constant_declaration . ';'
- 230 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
-
- ',' shift, and go to state 806
- ';' shift, and go to state 807
+ 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
+
+ "or (T_LOGICAL_OR)" shift, and go to state 251
+ "xor (T_LOGICAL_XOR)" shift, and go to state 252
+ "and (T_LOGICAL_AND)" shift, and go to state 253
+ '?' shift, and go to state 254
+ ':' shift, and go to state 755
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
+ ';' shift, and go to state 756
+
+ case_separator go to state 824
state 755
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' . '{' inner_statement_list '}'
+ 147 case_separator: ':' .
- '{' shift, and go to state 808
+ $default reduce using rule 147 (case_separator)
state 756
- 338 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')'
+ 148 case_separator: ';' .
- '(' shift, and go to state 809
+ $default reduce using rule 148 (case_separator)
state 757
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars . '{' inner_statement_list '}'
+ 146 case_list: case_list "default (T_DEFAULT)" case_separator . $@36 inner_statement_list
+
+ $default reduce using rule 145 ($@36)
- '{' shift, and go to state 810
+ $@36 go to state 825
state 758
- 158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)"
- 159 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)"
- 160 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar
- 161 | non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)" '=' static_scalar
+ 139 switch_case_list: '{' ';' case_list '}' .
- '&' shift, and go to state 811
- "variable (T_VARIABLE)" shift, and go to state 812
+ $default reduce using rule 139 (switch_case_list)
state 759
- 155 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" .
- 156 | optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
+ 441 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
- '=' shift, and go to state 813
-
- $default reduce using rule 155 (non_empty_parameter_list)
+ $default reduce using rule 441 (non_empty_static_array_pair_list)
state 760
- 157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 814
- static_class_constant go to state 471
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
+ 440 | non_empty_static_array_pair_list ',' static_scalar .
+
+ "=> (T_DOUBLE_ARROW)" shift, and go to state 826
+
+ $default reduce using rule 440 (non_empty_static_array_pair_list)
state 761
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' .
+ 421 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' .
- $default reduce using rule 352 (function_call)
+ $default reduce using rule 421 (static_scalar)
state 762
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_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 83 ($@24)
- $default reduce using rule 350 (function_call)
+ $@24 go to state 827
state 763
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 313 | expr '?' @49 expr ':' @50 expr .
- 315 | expr . '?' ':' @51 expr
-
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
+ 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 . finally_statement
- $default reduce using rule 313 (expr_without_variable)
+ "finally (T_FINALLY)" shift, and go to state 828
+
+ $default reduce using rule 88 (finally_statement)
+
+ finally_statement go to state 829
state 764
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments .
+ 346 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 795
+
+ $default reduce using rule 357 (lexical_vars)
- $default reduce using rule 257 (expr_without_variable)
+ lexical_vars go to state 830
state 765
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' .
+ 496 assignment_list: assignment_list . ',' assignment_list_element
+ 500 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list . ')'
- $default reduce using rule 356 (function_call)
+ ',' shift, and go to state 620
+ ')' shift, and go to state 831
state 766
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' .
+ 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
+
+ '?' shift, and go to state 254
+ "|| (T_BOOLEAN_OR)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- $default reduce using rule 354 (function_call)
+ $default reduce using rule 263 (expr_without_variable)
state 767
- 439 method: '(' @68 . function_call_parameter_list ')'
+ 521 encaps_var: "${ (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
- '&' shift, and go to state 508
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 167 (function_call_parameter_list)
-
- namespace_name go to state 83
- function_call_parameter_list go to state 815
- non_empty_function_call_parameter_list go to state 510
- new_expr go to state 94
- expr_without_variable go to state 511
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 182
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 512
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 521 (encaps_var)
state 768
- 436 array_method_dereference: array_method_dereference '[' . dim_offset ']'
+ 252 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 816
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ ']' shift, and go to state 832
state 769
- 437 array_method_dereference: method '[' . dim_offset ']'
+ 457 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . $@70 method_or_not
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 462 (dim_offset)
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 429
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- dim_offset go to state 817
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 456 ($@70)
+ $@70 go to state 833
-state 770
-
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties .
- 432 variable_properties: variable_properties . variable_property
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 670
+state 770
- $default reduce using rule 430 (variable)
+ 249 chaining_method_or_property: chaining_method_or_property variable_property .
- variable_property go to state 818
+ $default reduce using rule 249 (chaining_method_or_property)
state 771
- 467 object_dim_list: object_dim_list '[' dim_offset ']' .
+ 251 chaining_dereference: chaining_dereference '[' . dim_offset ']'
- $default reduce using rule 467 (object_dim_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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 834
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
state 772
- 468 object_dim_list: object_dim_list '{' expr '}' .
+ 254 chaining_instance_call: chaining_dereference $@42 . chaining_method_or_property
- $default reduce using rule 468 (object_dim_list)
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 709
+ chaining_method_or_property go to state 835
+ variable_property go to state 713
-state 773
- 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property
+state 773
- "identifier (T_STRING)" shift, and go to state 436
- "variable (T_VARIABLE)" shift, and go to state 34
- '{' shift, and go to state 380
- '$' shift, and go to state 80
+ 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
- variable_without_objects go to state 540
- reference_variable go to state 382
- compound_variable go to state 112
- object_property go to state 819
- object_dim_list go to state 542
- variable_name go to state 543
- simple_indirect_reference go to state 384
+ $default reduce using rule 32 (inner_statement)
state 774
- 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
+ 183 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
- $default reduce using rule 372 (dynamic_class_name_variable_properties)
+ $default reduce using rule 183 (non_empty_function_call_parameter_list)
state 775
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';'
-
- $default reduce using rule 145 (new_elseif_list)
+ 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
- new_elseif_list go to state 820
+ "const (T_CONST)" shift, and go to state 777
+ "use (T_USE)" shift, and go to state 778
+ "public (T_PUBLIC)" shift, and go to state 779
+ "protected (T_PROTECTED)" shift, and go to state 780
+ "private (T_PRIVATE)" shift, and go to state 781
+ "final (T_FINAL)" shift, and go to state 782
+ "abstract (T_ABSTRACT)" shift, and go to state 783
+ "static (T_STATIC)" shift, and go to state 784
+ "var (T_VAR)" shift, and go to state 785
+ '}' shift, and go to state 836
+ $default reduce using rule 226 (method_modifiers)
-state 776
+ class_statement go to state 787
+ trait_use_statement go to state 788
+ variable_modifiers go to state 789
+ method_modifiers go to state 790
+ non_empty_member_modifiers go to state 791
+ member_modifier go to state 792
+ class_constant_declaration go to state 793
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list . else_single
- 144 elseif_list: elseif_list . "elseif (T_ELSEIF)" '(' expr ')' @34 statement
- "elseif (T_ELSEIF)" shift, and go to state 821
- "else (T_ELSE)" shift, and go to state 822
+state 776
- "elseif (T_ELSEIF)" [reduce using rule 148 (else_single)]
- "else (T_ELSE)" [reduce using rule 148 (else_single)]
- $default reduce using rule 148 (else_single)
+ 123 interface_list: interface_list ',' fully_qualified_class_name .
- else_single go to state 823
+ $default reduce using rule 123 (interface_list)
state 777
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' . ';'
+ 241 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
- ';' shift, and go to state 824
+ "identifier (T_STRING)" shift, and go to state 837
state 778
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 141 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';'
+ 201 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations
- "endwhile (T_ENDWHILE)" shift, and go to state 825
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- $default reduce using rule 26 (@4)
-
- @4 go to state 366
+ namespace_name go to state 549
+ trait_list go to state 838
+ fully_qualified_class_name go to state 839
state 779
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 . for_expr ')' @15 for_statement
+ 230 member_modifier: "public (T_PUBLIC)" .
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- $default reduce using rule 234 (for_expr)
-
- namespace_name go to state 83
- for_expr go to state 826
- non_empty_for_expr go to state 312
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 313
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 230 (member_modifier)
state 780
- 118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable .
+ 231 member_modifier: "protected (T_PROTECTED)" .
- $default reduce using rule 118 (foreach_optional_arg)
+ $default reduce using rule 231 (member_modifier)
state 781
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' . @20 foreach_statement
-
- $default reduce using rule 71 (@20)
+ 232 member_modifier: "private (T_PRIVATE)" .
- @20 go to state 827
+ $default reduce using rule 232 (member_modifier)
state 782
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' . @18 foreach_statement
+ 235 member_modifier: "final (T_FINAL)" .
- $default reduce using rule 68 (@18)
-
- @18 go to state 828
+ $default reduce using rule 235 (member_modifier)
state 783
- 128 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar .
+ 234 member_modifier: "abstract (T_ABSTRACT)" .
- $default reduce using rule 128 (declare_list)
+ $default reduce using rule 234 (member_modifier)
state 784
- 126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';'
+ 233 member_modifier: "static (T_STATIC)" .
- ';' shift, and go to state 829
+ $default reduce using rule 233 (member_modifier)
state 785
- 132 switch_case_list: ':' ';' case_list . "endswitch (T_ENDSWITCH)" ';'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 225 variable_modifiers: "var (T_VAR)" .
- "endswitch (T_ENDSWITCH)" shift, and go to state 830
- "case (T_CASE)" shift, and go to state 787
- "default (T_DEFAULT)" shift, and go to state 788
+ $default reduce using rule 225 (variable_modifiers)
state 786
- 131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';'
+ 110 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@33 interface_extends_list '{' class_statement_list '}' .
- ';' shift, and go to state 831
+ $default reduce using rule 110 (unticked_class_declaration_statement)
state 787
- 135 case_list: case_list "case (T_CASE)" . expr case_separator @32 inner_statement_list
+ 193 class_statement_list: class_statement_list class_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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 832
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 193 (class_statement_list)
state 788
- 137 case_list: case_list "default (T_DEFAULT)" . case_separator @33 inner_statement_list
+ 198 class_statement: trait_use_statement .
- ':' shift, and go to state 833
- ';' shift, and go to state 834
-
- case_separator go to state 835
+ $default reduce using rule 198 (class_statement)
state 789
- 130 switch_case_list: '{' ';' case_list . '}'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 196 class_statement: variable_modifiers . $@39 class_variable_declaration ';'
+
+ $default reduce using rule 195 ($@39)
- "case (T_CASE)" shift, and go to state 787
- "default (T_DEFAULT)" shift, and go to state 788
- '}' shift, and go to state 836
+ $@39 go to state 840
state 790
- 129 switch_case_list: '{' case_list '}' .
+ 200 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- $default reduce using rule 129 (switch_case_list)
+ "function (T_FUNCTION)" shift, and go to state 48
+
+ function go to state 841
state 791
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 837
- static_class_constant go to state 471
+ 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
+ "public (T_PUBLIC)" shift, and go to state 779
+ "protected (T_PROTECTED)" shift, and go to state 780
+ "private (T_PRIVATE)" shift, and go to state 781
+ "final (T_FINAL)" shift, and go to state 782
+ "abstract (T_ABSTRACT)" shift, and go to state 783
+ "static (T_STATIC)" shift, and go to state 784
+
+ "function (T_FUNCTION)" reduce using rule 227 (method_modifiers)
+ $default reduce using rule 224 (variable_modifiers)
+
+ member_modifier go to state 842
-state 792
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 . fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+state 792
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 228 non_empty_member_modifiers: member_modifier .
- namespace_name go to state 516
- fully_qualified_class_name go to state 838
+ $default reduce using rule 228 (non_empty_member_modifiers)
state 793
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars . '{' inner_statement_list '}'
+ 197 class_statement: class_constant_declaration . ';'
+ 240 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
- '{' shift, and go to state 839
+ ',' shift, and go to state 843
+ ';' shift, and go to state 844
state 794
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')' .
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' . '{' inner_statement_list '}'
- $default reduce using rule 478 (assignment_list_element)
+ '{' shift, and go to state 845
state 795
- 242 chaining_dereference: '[' dim_offset ']' .
+ 358 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')'
- $default reduce using rule 242 (chaining_dereference)
+ '(' shift, and go to state 846
state 796
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 . method_or_not
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars . '{' inner_statement_list '}'
- '(' shift, and go to state 695
-
- $default reduce using rule 442 (method_or_not)
-
- array_method_dereference go to state 696
- method go to state 697
- method_or_not go to state 840
+ '{' shift, and go to state 847
state 797
- 241 chaining_dereference: chaining_dereference '[' dim_offset . ']'
+ 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 841
+ '&' shift, and go to state 848
+ "variable (T_VARIABLE)" shift, and go to state 849
state 798
- 239 chaining_method_or_property: chaining_method_or_property . variable_property
- 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property .
-
- "-> (T_OBJECT_OPERATOR)" shift, and go to state 670
+ 164 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" .
+ 165 | optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
- $default reduce using rule 244 (chaining_instance_call)
+ '=' shift, and go to state 850
- variable_property go to state 731
+ $default reduce using rule 164 (non_empty_parameter_list)
state 799
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}' .
-
- $default reduce using rule 101 (unticked_class_declaration_statement)
+ 166 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 851
+ static_class_constant go to state 502
state 800
- 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
+ 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)" shift, and go to state 255
+ "&& (T_BOOLEAN_AND)" shift, and go to state 256
+ '|' shift, and go to state 257
+ '^' shift, and go to state 258
+ '&' shift, and go to state 259
+ "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 260
+ "=== (T_IS_IDENTICAL)" shift, and go to state 261
+ "!= (T_IS_NOT_EQUAL)" shift, and go to state 262
+ "== (T_IS_EQUAL)" shift, and go to state 263
+ '<' shift, and go to state 264
+ '>' shift, and go to state 265
+ ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 266
+ "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 267
+ ">> (T_SR)" shift, and go to state 268
+ "<< (T_SL)" shift, and go to state 269
+ '+' shift, and go to state 270
+ '-' shift, and go to state 271
+ '.' shift, and go to state 272
+ '*' shift, and go to state 273
+ '/' shift, and go to state 274
+ '%' shift, and go to state 275
+ "instanceof (T_INSTANCEOF)" shift, and go to state 276
- '=' shift, and go to state 842
+ $default reduce using rule 323 (expr_without_variable)
state 801
- 191 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations
- 193 trait_list: trait_list . ',' fully_qualified_class_name
-
- ',' shift, and go to state 843
- ';' shift, and go to state 844
- '{' shift, and go to state 845
+ 267 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@46 ctor_arguments .
- trait_adaptations go to state 846
+ $default reduce using rule 267 (expr_without_variable)
state 802
- 192 trait_list: fully_qualified_class_name .
+ 458 array_method_dereference: array_method_dereference '[' . dim_offset ']'
- $default reduce using rule 192 (trait_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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 852
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
state 803
- 186 class_statement: variable_modifiers @36 . class_variable_declaration ';'
-
- "variable (T_VARIABLE)" shift, and go to state 847
+ 459 array_method_dereference: method '[' . dim_offset ']'
- class_variable_declaration go to state 848
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 484 (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 125
+ 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 324
+ 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 853
+ simple_indirect_reference go to state 118
+ internal_functions_in_yacc go to state 119
+ class_constant go to state 120
state 804
- 190 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 461 method: @71 function_call_parameter_list .
- '&' shift, and go to state 231
+ $default reduce using rule 461 (method)
- $default reduce using rule 96 (is_reference)
- is_reference go to state 849
+state 805
+ 452 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@68 object_property $@69 method_or_not variable_properties .
+ 454 variable_properties: variable_properties . variable_property
-state 805
+ "-> (T_OBJECT_OPERATOR)" shift, and go to state 709
- 219 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
+ $default reduce using rule 452 (variable)
- $default reduce using rule 219 (non_empty_member_modifiers)
+ variable_property go to state 854
state 806
- 230 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
+ 489 object_dim_list: object_dim_list '[' dim_offset ']' .
- "identifier (T_STRING)" shift, and go to state 850
+ $default reduce using rule 489 (object_dim_list)
state 807
- 187 class_statement: class_constant_declaration ';' .
+ 490 object_dim_list: object_dim_list '{' expr '}' .
- $default reduce using rule 187 (class_statement)
+ $default reduce using rule 490 (object_dim_list)
state 808
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' . inner_statement_list '}'
+ 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property
- $default reduce using rule 28 (inner_statement_list)
+ "identifier (T_STRING)" shift, and go to state 463
+ "variable (T_VARIABLE)" shift, and go to state 35
+ '{' shift, and go to state 406
+ '$' shift, and go to state 81
- inner_statement_list go to state 851
+ variable_without_objects go to state 574
+ reference_variable go to state 408
+ compound_variable go to state 117
+ object_property go to state 855
+ object_dim_list go to state 576
+ variable_name go to state 577
+ simple_indirect_reference go to state 410
state 809
- 338 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')'
+ 392 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
- '&' shift, and go to state 852
- "variable (T_VARIABLE)" shift, and go to state 853
-
- lexical_var_list go to state 854
+ $default reduce using rule 392 (dynamic_class_name_variable_properties)
state 810
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' . inner_statement_list '}'
+ 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . parenthesis_expr ':' $@38 inner_statement_list
- $default reduce using rule 28 (inner_statement_list)
+ '(' shift, and go to state 174
- inner_statement_list go to state 855
+ parenthesis_expr go to state 856
state 811
- 159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)"
- 160 | non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
+ 160 new_else_single: "else (T_ELSE)" . ':' inner_statement_list
- "variable (T_VARIABLE)" shift, and go to state 856
+ ':' shift, and go to state 857
state 812
- 158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" .
- 161 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
+ 41 unticked_statement: "if (T_IF)" parenthesis_expr ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
- '=' shift, and go to state 857
-
- $default reduce using rule 158 (non_empty_parameter_list)
+ "endif (T_ENDIF)" shift, and go to state 858
state 813
- 156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 858
- static_class_constant go to state 471
+ 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr . $@37 statement
+
+ $default reduce using rule 152 ($@37)
+
+ $@37 go to state 859
state 814
- 157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
+ 158 else_single: "else (T_ELSE)" statement .
- $default reduce using rule 157 (non_empty_parameter_list)
+ $default reduce using rule 158 (else_single)
state 815
- 439 method: '(' @68 function_call_parameter_list . ')'
+ 150 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' .
- ')' shift, and go to state 859
+ $default reduce using rule 150 (while_statement)
state 816
- 436 array_method_dereference: array_method_dereference '[' dim_offset . ']'
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 . for_expr ')' $@15 for_statement
- ']' shift, and go to state 860
+ "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 121
+ '+' 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 122
+ "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 123
+ "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 124
+ "__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 244 (for_expr)
+
+ namespace_name go to state 84
+ for_expr go to state 860
+ non_empty_for_expr go to state 331
+ 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 125
+ 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 332
+ 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
state 817
- 437 array_method_dereference: method '[' dim_offset . ']'
-
- ']' shift, and go to state 861
+ 129 foreach_variable: "list (T_LIST)" '(' $@34 . assignment_list ')'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "variable (T_VARIABLE)" shift, and go to state 35
+ "static (T_STATIC)" shift, and go to state 147
+ "list (T_LIST)" shift, and go to state 519
+ "namespace (T_NAMESPACE)" shift, and go to state 148
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 149
+ '$' shift, and go to state 81
+
+ $default reduce using rule 501 (assignment_list_element)
+
+ namespace_name go to state 150
+ function_call go to state 101
+ class_name go to state 151
+ variable go to state 520
+ variable_without_objects go to state 110
+ static_member go to state 111
+ variable_class_name go to state 154
+ 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 861
+ assignment_list_element go to state 522
state 818
- 432 variable_properties: variable_properties variable_property .
+ 125 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable .
- $default reduce using rule 432 (variable_properties)
+ $default reduce using rule 125 (foreach_optional_arg)
state 819
- 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property .
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' . $@20 foreach_statement
- $default reduce using rule 374 (dynamic_class_name_variable_property)
+ $default reduce using rule 72 ($@20)
+ $@20 go to state 862
-state 820
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';'
- 147 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list
+state 820
- "elseif (T_ELSEIF)" shift, and go to state 862
- "else (T_ELSE)" shift, and go to state 863
+ 70 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' . $@18 foreach_statement
- $default reduce using rule 150 (new_else_single)
+ $default reduce using rule 69 ($@18)
- new_else_single go to state 864
+ $@18 go to state 863
state 821
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" . '(' expr ')' @34 statement
+ 137 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar .
- '(' shift, and go to state 865
+ $default reduce using rule 137 (declare_list)
state 822
- 149 else_single: "else (T_ELSE)" . statement
+ 135 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';'
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 866
- unticked_statement go to state 87
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ ';' shift, and go to state 864
state 823
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list else_single .
+ 141 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' .
- $default reduce using rule 38 (unticked_statement)
+ $default reduce using rule 141 (switch_case_list)
state 824
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' ';' .
+ 144 case_list: case_list "case (T_CASE)" expr case_separator . $@35 inner_statement_list
- $default reduce using rule 47 (unticked_statement)
+ $default reduce using rule 143 ($@35)
+
+ $@35 go to state 865
state 825
- 141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';'
+ 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 . inner_statement_list
- ';' shift, and go to state 867
+ $default reduce using rule 28 (inner_statement_list)
+ inner_statement_list go to state 866
-state 826
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr . ')' @15 for_statement
+state 826
- ')' shift, and go to state 868
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 867
+ static_class_constant go to state 502
state 827
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 . foreach_statement
+ 87 catch_statement: "catch (T_CATCH)" '(' $@24 . fully_qualified_class_name $@25 "variable (T_VARIABLE)" ')' $@26 '{' inner_statement_list '}' $@27 additional_catches
- "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
- ':' shift, and go to state 869
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 870
- unticked_statement go to state 87
- foreach_statement go to state 871
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 868
state 828
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 . foreach_statement
+ 90 finally_statement: "finally (T_FINALLY)" . $@28 '{' 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
- ':' shift, and go to state 869
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 870
- unticked_statement go to state 87
- foreach_statement go to state 872
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 89 ($@28)
+
+ $@28 go to state 869
state 829
- 126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' .
+ 79 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' catch_statement $@23 finally_statement .
- $default reduce using rule 126 (declare_statement)
+ $default reduce using rule 79 (unticked_statement)
state 830
- 132 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 873
+ '{' shift, and go to state 870
state 831
- 131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' .
+ 500 assignment_list_element: "list (T_LIST)" '(' $@74 assignment_list ')' .
- $default reduce using rule 131 (switch_case_list)
+ $default reduce using rule 500 (assignment_list_element)
state 832
- 135 case_list: case_list "case (T_CASE)" expr . case_separator @32 inner_statement_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- ':' shift, and go to state 833
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ';' shift, and go to state 834
-
- case_separator go to state 874
+ 252 chaining_dereference: '[' dim_offset ']' .
+
+ $default reduce using rule 252 (chaining_dereference)
state 833
- 138 case_separator: ':' .
+ 457 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 . method_or_not
- $default reduce using rule 138 (case_separator)
+ '(' reduce using rule 460 (@71)
+ $default reduce using rule 464 (method_or_not)
+
+ array_method_dereference go to state 730
+ method go to state 731
+ @71 go to state 732
+ method_or_not go to state 871
state 834
- 139 case_separator: ';' .
+ 251 chaining_dereference: chaining_dereference '[' dim_offset . ']'
- $default reduce using rule 139 (case_separator)
+ ']' shift, and go to state 872
state 835
- 137 case_list: case_list "default (T_DEFAULT)" case_separator . @33 inner_statement_list
+ 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)" shift, and go to state 709
- $default reduce using rule 136 (@33)
+ $default reduce using rule 254 (chaining_instance_call)
- @33 go to state 875
+ variable_property go to state 770
state 836
- 130 switch_case_list: '{' ';' case_list '}' .
+ 108 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@32 implements_list '{' class_statement_list '}' .
- $default reduce using rule 130 (switch_case_list)
+ $default reduce using rule 108 (unticked_class_declaration_statement)
state 837
- 419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
+ 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
- $default reduce using rule 419 (non_empty_static_array_pair_list)
+ '=' shift, and go to state 873
state 838
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name . @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 201 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations
+ 203 trait_list: trait_list . ',' fully_qualified_class_name
- $default reduce using rule 78 (@24)
+ ',' shift, and go to state 874
+ ';' shift, and go to state 875
+ '{' shift, and go to state 876
- @24 go to state 876
+ trait_adaptations go to state 877
state 839
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' . inner_statement_list '}'
+ 202 trait_list: fully_qualified_class_name .
- $default reduce using rule 28 (inner_statement_list)
-
- inner_statement_list go to state 877
+ $default reduce using rule 202 (trait_list)
state 840
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not .
+ 196 class_statement: variable_modifiers $@39 . class_variable_declaration ';'
+
+ "variable (T_VARIABLE)" shift, and go to state 878
- $default reduce using rule 435 (variable_property)
+ class_variable_declaration go to state 879
state 841
- 241 chaining_dereference: chaining_dereference '[' dim_offset ']' .
+ 200 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- $default reduce using rule 241 (chaining_dereference)
+ '&' shift, and go to state 247
+
+ $default reduce using rule 103 (is_reference)
+
+ is_reference go to state 880
state 842
- 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 878
- static_class_constant go to state 471
+ 229 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
+ $default reduce using rule 229 (non_empty_member_modifiers)
-state 843
- 193 trait_list: trait_list ',' . fully_qualified_class_name
+state 843
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 240 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
- namespace_name go to state 516
- fully_qualified_class_name go to state 879
+ "identifier (T_STRING)" shift, and go to state 881
state 844
- 194 trait_adaptations: ';' .
+ 197 class_statement: class_constant_declaration ';' .
- $default reduce using rule 194 (trait_adaptations)
+ $default reduce using rule 197 (class_statement)
state 845
- 195 trait_adaptations: '{' . trait_adaptation_list '}'
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' . inner_statement_list '}'
- "identifier (T_STRING)" shift, and go to state 880
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
-
- $default reduce using rule 196 (trait_adaptation_list)
+ $default reduce using rule 28 (inner_statement_list)
- namespace_name go to state 516
- trait_adaptation_list go to state 881
- non_empty_trait_adaptation_list go to state 882
- trait_adaptation_statement go to state 883
- trait_precedence go to state 884
- trait_method_reference go to state 885
- trait_method_reference_fully_qualified go to state 886
- trait_alias go to state 887
- fully_qualified_class_name go to state 888
+ inner_statement_list go to state 882
state 846
- 191 trait_use_statement: "use (T_USE)" trait_list trait_adaptations .
+ 358 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')'
- $default reduce using rule 191 (trait_use_statement)
+ '&' shift, and go to state 883
+ "variable (T_VARIABLE)" shift, and go to state 884
+
+ lexical_var_list go to state 885
state 847
- 228 class_variable_declaration: "variable (T_VARIABLE)" .
- 229 | "variable (T_VARIABLE)" . '=' static_scalar
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
- '=' shift, and go to state 889
+ $default reduce using rule 28 (inner_statement_list)
- $default reduce using rule 228 (class_variable_declaration)
+ inner_statement_list go to state 886
state 848
- 186 class_statement: variable_modifiers @36 class_variable_declaration . ';'
- 226 class_variable_declaration: class_variable_declaration . ',' "variable (T_VARIABLE)"
- 227 | class_variable_declaration . ',' "variable (T_VARIABLE)" '=' static_scalar
+ 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 890
- ';' shift, and go to state 891
+ "variable (T_VARIABLE)" shift, and go to state 887
state 849
- 190 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 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
- "identifier (T_STRING)" shift, and go to state 892
+ '=' shift, and go to state 888
+ $default reduce using rule 167 (non_empty_parameter_list)
-state 850
- 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
+state 850
- '=' shift, and go to state 893
+ 165 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 889
+ static_class_constant go to state 502
state 851
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list . '}'
-
- '}' shift, and go to state 894
-
- $default reduce using rule 26 (@4)
+ 166 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
- @4 go to state 366
+ $default reduce using rule 166 (non_empty_parameter_list)
state 852
- 342 lexical_var_list: '&' . "variable (T_VARIABLE)"
+ 458 array_method_dereference: array_method_dereference '[' dim_offset . ']'
- "variable (T_VARIABLE)" shift, and go to state 895
+ ']' shift, and go to state 890
state 853
- 341 lexical_var_list: "variable (T_VARIABLE)" .
+ 459 array_method_dereference: method '[' dim_offset . ']'
- $default reduce using rule 341 (lexical_var_list)
+ ']' shift, and go to state 891
state 854
- 338 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')'
- 339 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)"
- 340 | lexical_var_list . ',' '&' "variable (T_VARIABLE)"
+ 454 variable_properties: variable_properties variable_property .
- ',' shift, and go to state 896
- ')' shift, and go to state 897
+ $default reduce using rule 454 (variable_properties)
state 855
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list . '}'
-
- '}' shift, and go to state 898
-
- $default reduce using rule 26 (@4)
+ 394 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property .
- @4 go to state 366
+ $default reduce using rule 394 (dynamic_class_name_variable_property)
state 856
- 159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" .
- 160 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
+ 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr . ':' $@38 inner_statement_list
- '=' shift, and go to state 899
-
- $default reduce using rule 159 (non_empty_parameter_list)
+ ':' shift, and go to state 892
state 857
- 161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 900
- static_class_constant go to state 471
+ 160 new_else_single: "else (T_ELSE)" ':' . inner_statement_list
+
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 893
state 858
- 156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
+ 41 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 156 (non_empty_parameter_list)
+ ';' shift, and go to state 894
state 859
- 439 method: '(' @68 function_call_parameter_list ')' .
+ 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 . statement
- $default reduce using rule 439 (method)
+ "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 124
+ "__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 895
+ 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 125
+ 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
state 860
- 436 array_method_dereference: array_method_dereference '[' dim_offset ']' .
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr . ')' $@15 for_statement
- $default reduce using rule 436 (array_method_dereference)
+ ')' shift, and go to state 896
state 861
- 437 array_method_dereference: method '[' dim_offset ']' .
+ 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list . ')'
+ 496 assignment_list: assignment_list . ',' assignment_list_element
- $default reduce using rule 437 (array_method_dereference)
+ ',' shift, and go to state 620
+ ')' shift, and go to state 897
state 862
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . '(' expr ')' ':' @35 inner_statement_list
+ 73 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 901
+ "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 898
+ '+' 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 124
+ "__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 899
+ unticked_statement go to state 88
+ foreach_statement go to state 900
+ 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 125
+ 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
state 863
- 151 new_else_single: "else (T_ELSE)" . ':' 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 902
+ "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 898
+ '+' 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 124
+ "__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 899
+ unticked_statement go to state 88
+ foreach_statement go to state 901
+ 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 125
+ 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
state 864
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
+ 135 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' .
- "endif (T_ENDIF)" shift, and go to state 903
+ $default reduce using rule 135 (declare_statement)
state 865
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' . expr ')' @34 statement
+ 144 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 904
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 902
state 866
- 149 else_single: "else (T_ELSE)" statement .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 146 case_list: case_list "default (T_DEFAULT)" case_separator $@36 inner_statement_list .
+
+ "endswitch (T_ENDSWITCH)" reduce using rule 146 (case_list)
+ "case (T_CASE)" reduce using rule 146 (case_list)
+ "default (T_DEFAULT)" reduce using rule 146 (case_list)
+ '}' reduce using rule 146 (case_list)
+ $default reduce using rule 26 ($@4)
- $default reduce using rule 149 (else_single)
+ $@4 go to state 389
state 867
- 141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' .
+ 439 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
- $default reduce using rule 141 (while_statement)
+ $default reduce using rule 439 (non_empty_static_array_pair_list)
state 868
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' . @15 for_statement
+ 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 50 (@15)
+ $default reduce using rule 84 ($@25)
- @15 go to state 905
+ $@25 go to state 903
state 869
- 124 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';'
+ 90 finally_statement: "finally (T_FINALLY)" $@28 . '{' inner_statement_list '}'
- $default reduce using rule 28 (inner_statement_list)
-
- inner_statement_list go to state 906
+ '{' shift, and go to state 904
state 870
- 123 foreach_statement: statement .
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' . inner_statement_list '}'
- $default reduce using rule 123 (foreach_statement)
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 905
state 871
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement .
+ 457 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@70 method_or_not .
- $default reduce using rule 72 (unticked_statement)
+ $default reduce using rule 457 (variable_property)
state 872
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement .
+ 251 chaining_dereference: chaining_dereference '[' dim_offset ']' .
- $default reduce using rule 69 (unticked_statement)
+ $default reduce using rule 251 (chaining_dereference)
state 873
- 132 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' .
-
- $default reduce using rule 132 (switch_case_list)
+ 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 906
+ static_class_constant go to state 502
state 874
- 135 case_list: case_list "case (T_CASE)" expr case_separator . @32 inner_statement_list
+ 203 trait_list: trait_list ',' . fully_qualified_class_name
- $default reduce using rule 134 (@32)
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- @32 go to state 907
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 907
state 875
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 . inner_statement_list
-
- $default reduce using rule 28 (inner_statement_list)
+ 204 trait_adaptations: ';' .
- inner_statement_list go to state 908
+ $default reduce using rule 204 (trait_adaptations)
state 876
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 . "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 205 trait_adaptations: '{' . trait_adaptation_list '}'
- "variable (T_VARIABLE)" shift, and go to state 909
+ "identifier (T_STRING)" shift, and go to state 908
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+ $default reduce using rule 206 (trait_adaptation_list)
-state 877
+ namespace_name go to state 549
+ trait_adaptation_list go to state 909
+ non_empty_trait_adaptation_list go to state 910
+ trait_adaptation_statement go to state 911
+ trait_precedence go to state 912
+ trait_method_reference go to state 913
+ trait_method_reference_fully_qualified go to state 914
+ trait_alias go to state 915
+ fully_qualified_class_name go to state 916
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list . '}'
- '}' shift, and go to state 910
+state 877
- $default reduce using rule 26 (@4)
+ 201 trait_use_statement: "use (T_USE)" trait_list trait_adaptations .
- @4 go to state 366
+ $default reduce using rule 201 (trait_use_statement)
state 878
- 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
+ 238 class_variable_declaration: "variable (T_VARIABLE)" .
+ 239 | "variable (T_VARIABLE)" . '=' static_scalar
- $default reduce using rule 231 (class_constant_declaration)
+ '=' shift, and go to state 917
+
+ $default reduce using rule 238 (class_variable_declaration)
state 879
- 193 trait_list: trait_list ',' fully_qualified_class_name .
+ 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
- $default reduce using rule 193 (trait_list)
+ ',' shift, and go to state 918
+ ';' shift, and go to state 919
state 880
- 5 namespace_name: "identifier (T_STRING)" .
- 205 trait_method_reference: "identifier (T_STRING)" .
+ 200 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body
- "as (T_AS)" reduce using rule 205 (trait_method_reference)
- $default reduce using rule 5 (namespace_name)
+ "identifier (T_STRING)" shift, and go to state 920
state 881
- 195 trait_adaptations: '{' trait_adaptation_list . '}'
+ 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
- '}' shift, and go to state 911
+ '=' shift, and go to state 921
state 882
- 197 trait_adaptation_list: non_empty_trait_adaptation_list .
- 199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement
+ 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 . '}'
- "identifier (T_STRING)" shift, and go to state 880
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ '}' shift, and go to state 922
- $default reduce using rule 197 (trait_adaptation_list)
+ $default reduce using rule 26 ($@4)
- namespace_name go to state 516
- trait_adaptation_statement go to state 912
- trait_precedence go to state 884
- trait_method_reference go to state 885
- trait_method_reference_fully_qualified go to state 886
- trait_alias go to state 887
- fully_qualified_class_name go to state 888
+ $@4 go to state 389
state 883
- 198 non_empty_trait_adaptation_list: trait_adaptation_statement .
+ 362 lexical_var_list: '&' . "variable (T_VARIABLE)"
- $default reduce using rule 198 (non_empty_trait_adaptation_list)
+ "variable (T_VARIABLE)" shift, and go to state 923
state 884
- 200 trait_adaptation_statement: trait_precedence . ';'
+ 361 lexical_var_list: "variable (T_VARIABLE)" .
- ';' shift, and go to state 913
+ $default reduce using rule 361 (lexical_var_list)
state 885
- 208 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)"
- 209 | trait_method_reference . "as (T_AS)" member_modifier
+ 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)"
- "as (T_AS)" shift, and go to state 914
+ ',' shift, and go to state 924
+ ')' shift, and go to state 925
state 886
- 202 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list
- 206 trait_method_reference: trait_method_reference_fully_qualified .
+ 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 . '}'
- "insteadof (T_INSTEADOF)" shift, and go to state 915
+ '}' shift, and go to state 926
- $default reduce using rule 206 (trait_method_reference)
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
state 887
- 201 trait_adaptation_statement: trait_alias . ';'
+ 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 916
+ '=' shift, and go to state 927
+ $default reduce using rule 168 (non_empty_parameter_list)
-state 888
- 207 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
+state 888
- ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 917
+ 170 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 928
+ static_class_constant go to state 502
state 889
- 229 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 918
- static_class_constant go to state 471
+ 165 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
+
+ $default reduce using rule 165 (non_empty_parameter_list)
state 890
- 226 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)"
- 227 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar
+ 458 array_method_dereference: array_method_dereference '[' dim_offset ']' .
- "variable (T_VARIABLE)" shift, and go to state 919
+ $default reduce using rule 458 (array_method_dereference)
state 891
- 186 class_statement: variable_modifiers @36 class_variable_declaration ';' .
+ 459 array_method_dereference: method '[' dim_offset ']' .
- $default reduce using rule 186 (class_statement)
+ $default reduce using rule 459 (array_method_dereference)
state 892
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . @37 '(' parameter_list ')' method_body
+ 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' . $@38 inner_statement_list
- $default reduce using rule 189 (@37)
+ $default reduce using rule 155 ($@38)
- @37 go to state 920
+ $@38 go to state 929
state 893
- 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 921
- static_class_constant go to state 471
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 160 new_else_single: "else (T_ELSE)" ':' inner_statement_list .
+
+ "endif (T_ENDIF)" reduce using rule 160 (new_else_single)
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
state 894
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' .
+ 41 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 99 (unticked_function_declaration_statement)
+ $default reduce using rule 41 (unticked_statement)
state 895
- 342 lexical_var_list: '&' "variable (T_VARIABLE)" .
+ 153 elseif_list: elseif_list "elseif (T_ELSEIF)" parenthesis_expr $@37 statement .
- $default reduce using rule 342 (lexical_var_list)
+ $default reduce using rule 153 (elseif_list)
state 896
- 339 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)"
- 340 | lexical_var_list ',' . '&' "variable (T_VARIABLE)"
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' . $@15 for_statement
- '&' shift, and go to state 922
- "variable (T_VARIABLE)" shift, and go to state 923
+ $default reduce using rule 50 ($@15)
+
+ $@15 go to state 930
state 897
- 338 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' .
+ 129 foreach_variable: "list (T_LIST)" '(' $@34 assignment_list ')' .
- $default reduce using rule 338 (lexical_vars)
+ $default reduce using rule 129 (foreach_variable)
state 898
- 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' .
+ 133 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';'
- $default reduce using rule 333 (expr_without_variable)
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 931
state 899
- 160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 924
- static_class_constant go to state 471
+ 132 foreach_statement: statement .
+
+ $default reduce using rule 132 (foreach_statement)
state 900
- 161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
+ 73 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 foreach_variable foreach_optional_arg ')' $@20 foreach_statement .
- $default reduce using rule 161 (non_empty_parameter_list)
+ $default reduce using rule 73 (unticked_statement)
state 901
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' . expr ')' ':' @35 inner_statement_list
+ 70 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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "function (T_FUNCTION)" shift, and go to state 47
- "static (T_STATIC)" shift, and go to state 117
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' shift, and go to state 77
- '$' shift, and go to state 80
- '`' shift, and go to state 81
- '"' shift, and go to state 82
-
- namespace_name go to state 83
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 925
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ $default reduce using rule 70 (unticked_statement)
state 902
- 151 new_else_single: "else (T_ELSE)" ':' . inner_statement_list
+ 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 .
- $default reduce using rule 28 (inner_statement_list)
+ "endswitch (T_ENDSWITCH)" reduce using rule 144 (case_list)
+ "case (T_CASE)" reduce using rule 144 (case_list)
+ "default (T_DEFAULT)" reduce using rule 144 (case_list)
+ '}' reduce using rule 144 (case_list)
+ $default reduce using rule 26 ($@4)
- inner_statement_list go to state 926
+ $@4 go to state 389
state 903
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';'
+ 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 927
+ "variable (T_VARIABLE)" shift, and go to state 932
state 904
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr . ')' @34 statement
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 928
+ 90 finally_statement: "finally (T_FINALLY)" $@28 '{' . inner_statement_list '}'
+
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 933
state 905
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 . for_statement
+ 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 . '}'
- "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
- ':' shift, and go to state 929
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 930
- unticked_statement go to state 87
- for_statement go to state 931
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '}' shift, and go to state 934
+ $default reduce using rule 26 ($@4)
-state 906
+ $@4 go to state 389
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 124 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';'
- "endforeach (T_ENDFOREACH)" shift, and go to state 932
+state 906
- $default reduce using rule 26 (@4)
+ 241 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
- @4 go to state 366
+ $default reduce using rule 241 (class_constant_declaration)
state 907
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 . inner_statement_list
+ 203 trait_list: trait_list ',' fully_qualified_class_name .
- $default reduce using rule 28 (inner_statement_list)
-
- inner_statement_list go to state 933
+ $default reduce using rule 203 (trait_list)
state 908
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 inner_statement_list .
-
- "endswitch (T_ENDSWITCH)" reduce using rule 137 (case_list)
- "case (T_CASE)" reduce using rule 137 (case_list)
- "default (T_DEFAULT)" reduce using rule 137 (case_list)
- '}' reduce using rule 137 (case_list)
- $default reduce using rule 26 (@4)
+ 5 namespace_name: "identifier (T_STRING)" .
+ 215 trait_method_reference: "identifier (T_STRING)" .
- @4 go to state 366
+ "as (T_AS)" reduce using rule 215 (trait_method_reference)
+ $default reduce using rule 5 (namespace_name)
state 909
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" . ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 205 trait_adaptations: '{' trait_adaptation_list . '}'
- ')' shift, and go to state 934
+ '}' shift, and go to state 935
state 910
- 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' .
+ 207 trait_adaptation_list: non_empty_trait_adaptation_list .
+ 209 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement
+
+ "identifier (T_STRING)" shift, and go to state 908
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ $default reduce using rule 207 (trait_adaptation_list)
- $default reduce using rule 335 (expr_without_variable)
+ namespace_name go to state 549
+ trait_adaptation_statement go to state 936
+ trait_precedence go to state 912
+ trait_method_reference go to state 913
+ trait_method_reference_fully_qualified go to state 914
+ trait_alias go to state 915
+ fully_qualified_class_name go to state 916
state 911
- 195 trait_adaptations: '{' trait_adaptation_list '}' .
+ 208 non_empty_trait_adaptation_list: trait_adaptation_statement .
- $default reduce using rule 195 (trait_adaptations)
+ $default reduce using rule 208 (non_empty_trait_adaptation_list)
state 912
- 199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement .
+ 210 trait_adaptation_statement: trait_precedence . ';'
- $default reduce using rule 199 (non_empty_trait_adaptation_list)
+ ';' shift, and go to state 937
state 913
- 200 trait_adaptation_statement: trait_precedence ';' .
+ 218 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)"
+ 219 | trait_method_reference . "as (T_AS)" member_modifier
- $default reduce using rule 200 (trait_adaptation_statement)
+ "as (T_AS)" shift, and go to state 938
state 914
- 208 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)"
- 209 | trait_method_reference "as (T_AS)" . member_modifier
+ 212 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list
+ 216 trait_method_reference: trait_method_reference_fully_qualified .
- "public (T_PUBLIC)" shift, and go to state 740
- "protected (T_PROTECTED)" shift, and go to state 741
- "private (T_PRIVATE)" shift, and go to state 742
- "final (T_FINAL)" shift, and go to state 743
- "abstract (T_ABSTRACT)" shift, and go to state 744
- "static (T_STATIC)" shift, and go to state 745
+ "insteadof (T_INSTEADOF)" shift, and go to state 939
- $default reduce using rule 210 (trait_modifiers)
-
- trait_modifiers go to state 935
- member_modifier go to state 936
+ $default reduce using rule 216 (trait_method_reference)
state 915
- 202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list
-
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 211 trait_adaptation_statement: trait_alias . ';'
- namespace_name go to state 516
- trait_reference_list go to state 937
- fully_qualified_class_name go to state 938
+ ';' shift, and go to state 940
state 916
- 201 trait_adaptation_statement: trait_alias ';' .
+ 217 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
- $default reduce using rule 201 (trait_adaptation_statement)
+ ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 941
state 917
- 207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
-
- "identifier (T_STRING)" shift, and go to state 939
+ 239 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 942
+ static_class_constant go to state 502
state 918
- 229 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar .
+ 236 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)"
+ 237 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar
- $default reduce using rule 229 (class_variable_declaration)
+ "variable (T_VARIABLE)" shift, and go to state 943
state 919
- 226 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" .
- 227 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar
-
- '=' shift, and go to state 940
+ 196 class_statement: variable_modifiers $@39 class_variable_declaration ';' .
- $default reduce using rule 226 (class_variable_declaration)
+ $default reduce using rule 196 (class_statement)
state 920
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 . '(' parameter_list ')' method_body
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . $@40 '(' parameter_list ')' method_body
- '(' shift, and go to state 941
+ $default reduce using rule 199 ($@40)
+ $@40 go to state 944
-state 921
- 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
+state 921
- $default reduce using rule 230 (class_constant_declaration)
+ 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 945
+ static_class_constant go to state 502
state 922
- 340 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)"
+ 106 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@31 '(' parameter_list ')' '{' inner_statement_list '}' .
- "variable (T_VARIABLE)" shift, and go to state 942
+ $default reduce using rule 106 (unticked_function_declaration_statement)
state 923
- 339 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" .
+ 362 lexical_var_list: '&' "variable (T_VARIABLE)" .
- $default reduce using rule 339 (lexical_var_list)
+ $default reduce using rule 362 (lexical_var_list)
state 924
- 160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
+ 359 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)"
+ 360 | lexical_var_list ',' . '&' "variable (T_VARIABLE)"
- $default reduce using rule 160 (non_empty_parameter_list)
+ '&' shift, and go to state 946
+ "variable (T_VARIABLE)" shift, and go to state 947
state 925
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr . ')' ':' @35 inner_statement_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 282 | expr . "xor (T_LOGICAL_XOR)" expr
- 283 | expr . '|' expr
- 284 | expr . '&' expr
- 285 | expr . '^' expr
- 286 | expr . '.' expr
- 287 | expr . '+' expr
- 288 | expr . '-' expr
- 289 | expr . '*' expr
- 290 | expr . '/' expr
- 291 | expr . '%' expr
- 292 | expr . "<< (T_SL)" expr
- 293 | expr . ">> (T_SR)" expr
- 298 | expr . "=== (T_IS_IDENTICAL)" expr
- 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr
- 300 | expr . "== (T_IS_EQUAL)" expr
- 301 | expr . "!= (T_IS_NOT_EQUAL)" expr
- 302 | expr . '<' expr
- 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr
- 304 | expr . '>' expr
- 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
- 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
-
- "or (T_LOGICAL_OR)" shift, and go to state 235
- "xor (T_LOGICAL_XOR)" shift, and go to state 236
- "and (T_LOGICAL_AND)" shift, and go to state 237
- '?' shift, and go to state 238
- "|| (T_BOOLEAN_OR)" shift, and go to state 239
- "&& (T_BOOLEAN_AND)" shift, and go to state 240
- '|' shift, and go to state 241
- '^' shift, and go to state 242
- '&' shift, and go to state 243
- "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
- "=== (T_IS_IDENTICAL)" shift, and go to state 245
- "!= (T_IS_NOT_EQUAL)" shift, and go to state 246
- "== (T_IS_EQUAL)" shift, and go to state 247
- '<' shift, and go to state 248
- '>' shift, and go to state 249
- ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250
- "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251
- ">> (T_SR)" shift, and go to state 252
- "<< (T_SL)" shift, and go to state 253
- '+' shift, and go to state 254
- '-' shift, and go to state 255
- '.' shift, and go to state 256
- '*' shift, and go to state 257
- '/' shift, and go to state 258
- '%' shift, and go to state 259
- "instanceof (T_INSTANCEOF)" shift, and go to state 260
- ')' shift, and go to state 943
+ 358 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' .
+ $default reduce using rule 358 (lexical_vars)
-state 926
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 151 new_else_single: "else (T_ELSE)" ':' inner_statement_list .
+state 926
- "endif (T_ENDIF)" reduce using rule 151 (new_else_single)
- $default reduce using rule 26 (@4)
+ 344 expr_without_variable: function is_reference @56 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
- @4 go to state 366
+ $default reduce using rule 344 (expr_without_variable)
state 927
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' .
-
- $default reduce using rule 41 (unticked_statement)
+ 169 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 948
+ static_class_constant go to state 502
state 928
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' . @34 statement
+ 170 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
- $default reduce using rule 143 (@34)
-
- @34 go to state 944
+ $default reduce using rule 170 (non_empty_parameter_list)
state 929
- 122 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';'
+ 156 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" parenthesis_expr ':' $@38 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
- inner_statement_list go to state 945
+ inner_statement_list go to state 949
state 930
- 121 for_statement: statement .
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 . for_statement
- $default reduce using rule 121 (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 950
+ '+' 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 124
+ "__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 951
+ unticked_statement go to state 88
+ for_statement go to state 952
+ 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 125
+ 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
state 931
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 133 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';'
- $default reduce using rule 51 (unticked_statement)
+ "endforeach (T_ENDFOREACH)" shift, and go to state 953
+
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
state 932
- 124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';'
+ 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 946
+ ')' shift, and go to state 954
state 933
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list . '}'
- "endswitch (T_ENDSWITCH)" reduce using rule 135 (case_list)
- "case (T_CASE)" reduce using rule 135 (case_list)
- "default (T_DEFAULT)" reduce using rule 135 (case_list)
- '}' reduce using rule 135 (case_list)
- $default reduce using rule 26 (@4)
+ '}' shift, and go to state 955
- @4 go to state 366
+ $default reduce using rule 26 ($@4)
+ $@4 go to state 389
-state 934
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' . @25 '{' inner_statement_list '}' @26 additional_catches
+state 934
- $default reduce using rule 79 (@25)
+ 346 expr_without_variable: "static (T_STATIC)" function is_reference @57 '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' .
- @25 go to state 947
+ $default reduce using rule 346 (expr_without_variable)
state 935
- 208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)"
+ 205 trait_adaptations: '{' trait_adaptation_list '}' .
- "identifier (T_STRING)" shift, and go to state 948
+ $default reduce using rule 205 (trait_adaptations)
state 936
- 209 trait_alias: trait_method_reference "as (T_AS)" member_modifier .
- 211 trait_modifiers: member_modifier .
+ 209 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement .
- "identifier (T_STRING)" reduce using rule 211 (trait_modifiers)
- $default reduce using rule 209 (trait_alias)
+ $default reduce using rule 209 (non_empty_trait_adaptation_list)
state 937
- 202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list .
- 204 trait_reference_list: trait_reference_list . ',' fully_qualified_class_name
-
- ',' shift, and go to state 949
+ 210 trait_adaptation_statement: trait_precedence ';' .
- $default reduce using rule 202 (trait_precedence)
+ $default reduce using rule 210 (trait_adaptation_statement)
state 938
- 203 trait_reference_list: fully_qualified_class_name .
+ 218 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)"
+ 219 | trait_method_reference "as (T_AS)" . member_modifier
+
+ "public (T_PUBLIC)" shift, and go to state 779
+ "protected (T_PROTECTED)" shift, and go to state 780
+ "private (T_PRIVATE)" shift, and go to state 781
+ "final (T_FINAL)" shift, and go to state 782
+ "abstract (T_ABSTRACT)" shift, and go to state 783
+ "static (T_STATIC)" shift, and go to state 784
+
+ $default reduce using rule 220 (trait_modifiers)
- $default reduce using rule 203 (trait_reference_list)
+ trait_modifiers go to state 956
+ member_modifier go to state 957
state 939
- 207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
+ 212 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list
- $default reduce using rule 207 (trait_method_reference_fully_qualified)
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+ namespace_name go to state 549
+ trait_reference_list go to state 958
+ fully_qualified_class_name go to state 959
-state 940
- 227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar
-
- '+' shift, and go to state 459
- '-' shift, and go to state 460
- '[' shift, and go to state 461
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 116
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "static (T_STATIC)" shift, and go to state 138
- "array (T_ARRAY)" shift, and go to state 462
- "__CLASS__ (T_CLASS_C)" shift, and go to state 463
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 464
- "namespace (T_NAMESPACE)" shift, and go to state 465
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 466
-
- namespace_name go to state 467
- class_name go to state 468
- common_scalar go to state 469
- static_scalar go to state 950
- static_class_constant go to state 471
+state 940
+ 211 trait_adaptation_statement: trait_alias ';' .
-state 941
+ $default reduce using rule 211 (trait_adaptation_statement)
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' . parameter_list ')' method_body
- "identifier (T_STRING)" shift, and go to state 116
- "array (T_ARRAY)" shift, and go to state 608
- "callable (T_CALLABLE)" shift, and go to state 609
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+state 941
- ')' reduce using rule 153 (parameter_list)
- $default reduce using rule 162 (optional_class_type)
+ 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
- namespace_name go to state 516
- parameter_list go to state 951
- non_empty_parameter_list go to state 611
- optional_class_type go to state 612
- fully_qualified_class_name go to state 613
+ "identifier (T_STRING)" shift, and go to state 960
state 942
- 340 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" .
+ 239 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar .
- $default reduce using rule 340 (lexical_var_list)
+ $default reduce using rule 239 (class_variable_declaration)
state 943
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' . ':' @35 inner_statement_list
+ 236 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" .
+ 237 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar
- ':' shift, and go to state 952
+ '=' shift, and go to state 961
+
+ $default reduce using rule 236 (class_variable_declaration)
state 944
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 . statement
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 . '(' parameter_list ')' method_body
- "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
- '+' 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
- "(unset) (T_UNSET_CAST)" shift, and go to state 16
- "(bool) (T_BOOL_CAST)" shift, and go to state 17
- "(object) (T_OBJECT_CAST)" shift, and go to state 18
- "(array) (T_ARRAY_CAST)" shift, and go to state 19
- "(string) (T_STRING_CAST)" shift, and go to state 20
- "(double) (T_DOUBLE_CAST)" shift, and go to state 21
- "(int) (T_INT_CAST)" shift, and go to state 22
- "-- (T_DEC)" shift, and go to state 23
- "++ (T_INC)" shift, and go to state 24
- '[' shift, and go to state 25
- "clone (T_CLONE)" shift, and go to state 26
- "new (T_NEW)" shift, and go to state 27
- "exit (T_EXIT)" shift, and go to state 28
- "if (T_IF)" shift, and go to state 29
- "integer number (T_LNUMBER)" shift, and go to state 30
- "floating-point number (T_DNUMBER)" shift, and go to state 31
- "identifier (T_STRING)" shift, and go to state 32
- "variable name (T_STRING_VARNAME)" shift, and go to state 33
- "variable (T_VARIABLE)" shift, and go to state 34
- T_INLINE_HTML shift, and go to state 35
- "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36
- "echo (T_ECHO)" shift, and go to state 37
- "do (T_DO)" shift, and go to state 38
- "while (T_WHILE)" shift, and go to state 39
- "for (T_FOR)" shift, and go to state 40
- "foreach (T_FOREACH)" shift, and go to state 41
- "declare (T_DECLARE)" shift, and go to state 42
- "switch (T_SWITCH)" shift, and go to state 43
- "break (T_BREAK)" shift, and go to state 44
- "continue (T_CONTINUE)" shift, and go to state 45
- "goto (T_GOTO)" shift, and go to state 46
- "function (T_FUNCTION)" shift, and go to state 47
- "return (T_RETURN)" shift, and go to state 49
- "try (T_TRY)" shift, and go to state 50
- "throw (T_THROW)" shift, and go to state 51
- "global (T_GLOBAL)" shift, and go to state 53
- "static (T_STATIC)" shift, and go to state 56
- "unset (T_UNSET)" shift, and go to state 57
- "isset (T_ISSET)" shift, and go to state 58
- "empty (T_EMPTY)" shift, and go to state 59
- "list (T_LIST)" shift, and go to state 64
- "array (T_ARRAY)" shift, and go to state 65
- "__CLASS__ (T_CLASS_C)" shift, and go to state 66
- "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67
- "__METHOD__ (T_METHOD_C)" shift, and go to state 68
- "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69
- "__LINE__ (T_LINE)" shift, and go to state 70
- "__FILE__ (T_FILE)" shift, and go to state 71
- "heredoc start (T_START_HEREDOC)" shift, and go to state 72
- "namespace (T_NAMESPACE)" shift, and go to state 118
- "__NAMESPACE__ (T_NS_C)" shift, and go to state 74
- "__DIR__ (T_DIR)" shift, and go to state 75
- "\\ (T_NS_SEPARATOR)" shift, and go to state 76
- '(' 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
-
- namespace_name go to state 83
- statement go to state 953
- unticked_statement go to state 87
- new_expr go to state 94
- expr_without_variable go to state 95
- function go to state 119
- function_call go to state 97
- class_name go to state 98
- common_scalar go to state 99
- scalar go to state 100
- expr go to state 101
- r_variable go to state 102
- rw_variable go to state 103
- variable go to state 104
- variable_without_objects go to state 105
- static_member go to state 106
- variable_class_name go to state 107
- array_function_dereference go to state 108
- base_variable_with_function_calls go to state 109
- base_variable go to state 110
- reference_variable go to state 111
- compound_variable go to state 112
- simple_indirect_reference go to state 113
- internal_functions_in_yacc go to state 114
- class_constant go to state 115
+ '(' shift, and go to state 962
state 945
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 122 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';'
-
- "endfor (T_ENDFOR)" shift, and go to state 954
-
- $default reduce using rule 26 (@4)
+ 240 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
- @4 go to state 366
+ $default reduce using rule 240 (class_constant_declaration)
state 946
- 124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' .
+ 360 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)"
- $default reduce using rule 124 (foreach_statement)
+ "variable (T_VARIABLE)" shift, and go to state 963
state 947
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 . '{' inner_statement_list '}' @26 additional_catches
+ 359 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" .
- '{' shift, and go to state 955
+ $default reduce using rule 359 (lexical_var_list)
state 948
- 208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" .
+ 169 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
- $default reduce using rule 208 (trait_alias)
+ $default reduce using rule 169 (non_empty_parameter_list)
state 949
- 204 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name
+ 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 .
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ "elseif (T_ELSEIF)" reduce using rule 156 (new_elseif_list)
+ "else (T_ELSE)" reduce using rule 156 (new_elseif_list)
+ "endif (T_ENDIF)" reduce using rule 156 (new_elseif_list)
+ $default reduce using rule 26 ($@4)
- namespace_name go to state 516
- fully_qualified_class_name go to state 956
+ $@4 go to state 389
state 950
- 227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar .
+ 131 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';'
- $default reduce using rule 227 (class_variable_declaration)
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 964
state 951
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list . ')' method_body
+ 130 for_statement: statement .
- ')' shift, and go to state 957
+ $default reduce using rule 130 (for_statement)
state 952
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' . @35 inner_statement_list
-
- $default reduce using rule 146 (@35)
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement .
- @35 go to state 958
+ $default reduce using rule 51 (unticked_statement)
state 953
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 statement .
+ 133 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';'
- $default reduce using rule 144 (elseif_list)
+ ';' shift, and go to state 965
state 954
- 122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';'
+ 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 959
+ $default reduce using rule 85 ($@26)
+ $@26 go to state 966
-state 955
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' . inner_statement_list '}' @26 additional_catches
+state 955
- $default reduce using rule 28 (inner_statement_list)
+ 90 finally_statement: "finally (T_FINALLY)" $@28 '{' inner_statement_list '}' .
- inner_statement_list go to state 960
+ $default reduce using rule 90 (finally_statement)
state 956
- 204 trait_reference_list: trait_reference_list ',' fully_qualified_class_name .
+ 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)"
- $default reduce using rule 204 (trait_reference_list)
+ "identifier (T_STRING)" shift, and go to state 967
state 957
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' . method_body
+ 219 trait_alias: trait_method_reference "as (T_AS)" member_modifier .
+ 221 trait_modifiers: member_modifier .
- ';' shift, and go to state 961
- '{' shift, and go to state 962
-
- method_body go to state 963
+ "identifier (T_STRING)" reduce using rule 221 (trait_modifiers)
+ $default reduce using rule 219 (trait_alias)
state 958
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 . inner_statement_list
+ 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
- $default reduce using rule 28 (inner_statement_list)
+ ',' shift, and go to state 968
- inner_statement_list go to state 964
+ $default reduce using rule 212 (trait_precedence)
state 959
- 122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' .
+ 213 trait_reference_list: fully_qualified_class_name .
- $default reduce using rule 122 (for_statement)
+ $default reduce using rule 213 (trait_reference_list)
state 960
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list . '}' @26 additional_catches
-
- '}' shift, and go to state 965
-
- $default reduce using rule 26 (@4)
+ 217 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
- @4 go to state 366
+ $default reduce using rule 217 (trait_method_reference_fully_qualified)
state 961
- 212 method_body: ';' .
-
- $default reduce using rule 212 (method_body)
+ 237 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar
+
+ '+' shift, and go to state 489
+ '-' shift, and go to state 490
+ '[' shift, and go to state 491
+ "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 122
+ "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 492
+ "static (T_STATIC)" shift, and go to state 147
+ "array (T_ARRAY)" shift, and go to state 493
+ "__CLASS__ (T_CLASS_C)" shift, and go to state 494
+ "__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 495
+ "namespace (T_NAMESPACE)" shift, and go to state 496
+ "__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 497
+
+ namespace_name go to state 498
+ class_name go to state 499
+ common_scalar go to state 500
+ static_scalar go to state 969
+ static_class_constant go to state 502
state 962
- 213 method_body: '{' . inner_statement_list '}'
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' . parameter_list ')' method_body
- $default reduce using rule 28 (inner_statement_list)
+ "identifier (T_STRING)" shift, and go to state 122
+ "array (T_ARRAY)" shift, and go to state 646
+ "callable (T_CALLABLE)" shift, and go to state 647
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- inner_statement_list go to state 966
+ ')' reduce using rule 162 (parameter_list)
+ $default reduce using rule 171 (optional_class_type)
+
+ namespace_name go to state 549
+ parameter_list go to state 970
+ non_empty_parameter_list go to state 649
+ optional_class_type go to state 650
+ fully_qualified_class_name go to state 651
state 963
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body .
+ 360 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" .
- $default reduce using rule 190 (class_statement)
+ $default reduce using rule 360 (lexical_var_list)
state 964
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 131 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';'
- "elseif (T_ELSEIF)" reduce using rule 147 (new_elseif_list)
- "else (T_ELSE)" reduce using rule 147 (new_elseif_list)
- "endif (T_ENDIF)" reduce using rule 147 (new_elseif_list)
- $default reduce using rule 26 (@4)
+ "endfor (T_ENDFOR)" shift, and go to state 971
- @4 go to state 366
+ $default reduce using rule 26 ($@4)
+ $@4 go to state 389
-state 965
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' . @26 additional_catches
+state 965
- $default reduce using rule 80 (@26)
+ 133 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' .
- @26 go to state 967
+ $default reduce using rule 133 (foreach_statement)
state 966
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 213 method_body: '{' inner_statement_list . '}'
-
- '}' shift, and go to state 968
+ 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 26 (@4)
-
- @4 go to state 366
+ '{' shift, and go to state 972
state 967
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 . additional_catches
-
- "catch (T_CATCH)" shift, and go to state 969
+ 218 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" .
- $default reduce using rule 85 (additional_catches)
-
- additional_catches go to state 970
- non_empty_additional_catches go to state 971
- additional_catch go to state 972
+ $default reduce using rule 218 (trait_alias)
state 968
- 213 method_body: '{' inner_statement_list '}' .
+ 214 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
- $default reduce using rule 213 (method_body)
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 973
state 969
- 90 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 237 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar .
- '(' shift, and go to state 973
+ $default reduce using rule 237 (class_variable_declaration)
state 970
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches .
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list . ')' method_body
- $default reduce using rule 81 (unticked_statement)
+ ')' shift, and go to state 974
state 971
- 84 additional_catches: non_empty_additional_catches .
- 87 non_empty_additional_catches: non_empty_additional_catches . additional_catch
-
- "catch (T_CATCH)" shift, and go to state 969
+ 131 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';'
- $default reduce using rule 84 (additional_catches)
-
- additional_catch go to state 974
+ ';' shift, and go to state 975
state 972
- 86 non_empty_additional_catches: additional_catch .
+ 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 28 (inner_statement_list)
- $default reduce using rule 86 (non_empty_additional_catches)
+ inner_statement_list go to state 976
state 973
- 90 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
-
- "identifier (T_STRING)" shift, and go to state 116
- "namespace (T_NAMESPACE)" shift, and go to state 514
- "\\ (T_NS_SEPARATOR)" shift, and go to state 515
+ 214 trait_reference_list: trait_reference_list ',' fully_qualified_class_name .
- namespace_name go to state 516
- fully_qualified_class_name go to state 975
+ $default reduce using rule 214 (trait_reference_list)
state 974
- 87 non_empty_additional_catches: non_empty_additional_catches additional_catch .
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' . method_body
- $default reduce using rule 87 (non_empty_additional_catches)
+ ';' shift, and go to state 977
+ '{' shift, and go to state 978
+ method_body go to state 979
-state 975
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+state 975
- $default reduce using rule 88 (@27)
+ 131 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' .
- @27 go to state 976
+ $default reduce using rule 131 (for_statement)
state 976
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 . "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 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
+
+ '}' shift, and go to state 980
+
+ $default reduce using rule 26 ($@4)
- "variable (T_VARIABLE)" shift, and go to state 977
+ $@4 go to state 389
state 977
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" . ')' @28 '{' inner_statement_list '}'
+ 222 method_body: ';' .
- ')' shift, and go to state 978
+ $default reduce using rule 222 (method_body)
state 978
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' . @28 '{' inner_statement_list '}'
+ 223 method_body: '{' . inner_statement_list '}'
- $default reduce using rule 89 (@28)
+ $default reduce using rule 28 (inner_statement_list)
- @28 go to state 979
+ inner_statement_list go to state 981
state 979
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 . '{' inner_statement_list '}'
+ 200 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@40 '(' parameter_list ')' method_body .
- '{' shift, and go to state 980
+ $default reduce using rule 200 (class_statement)
state 980
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' . 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 28 (inner_statement_list)
+ $default reduce using rule 86 ($@27)
- inner_statement_list go to state 981
+ $@27 go to state 982
state 981
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list . '}'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 223 method_body: '{' inner_statement_list . '}'
- '}' shift, and go to state 982
+ '}' shift, and go to state 983
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 389
state 982
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' 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
+
+ "catch (T_CATCH)" shift, and go to state 984
+
+ $default reduce using rule 92 (additional_catches)
+
+ additional_catches go to state 985
+ non_empty_additional_catches go to state 986
+ additional_catch go to state 987
+
+
+state 983
+
+ 223 method_body: '{' inner_statement_list '}' .
+
+ $default reduce using rule 223 (method_body)
+
+
+state 984
+
+ 97 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+
+ '(' shift, and go to state 988
+
+
+state 985
+
+ 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 87 (catch_statement)
+
+
+state 986
+
+ 91 additional_catches: non_empty_additional_catches .
+ 94 non_empty_additional_catches: non_empty_additional_catches . additional_catch
+
+ "catch (T_CATCH)" shift, and go to state 984
+
+ $default reduce using rule 91 (additional_catches)
+
+ additional_catch go to state 989
+
+
+state 987
+
+ 93 non_empty_additional_catches: additional_catch .
+
+ $default reduce using rule 93 (non_empty_additional_catches)
+
+
+state 988
+
+ 97 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+
+ "identifier (T_STRING)" shift, and go to state 122
+ "namespace (T_NAMESPACE)" shift, and go to state 547
+ "\\ (T_NS_SEPARATOR)" shift, and go to state 548
+
+ namespace_name go to state 549
+ fully_qualified_class_name go to state 990
+
+
+state 989
+
+ 94 non_empty_additional_catches: non_empty_additional_catches additional_catch .
+
+ $default reduce using rule 94 (non_empty_additional_catches)
+
+
+state 990
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+
+ $default reduce using rule 95 (@29)
+
+ @29 go to state 991
+
+
+state 991
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 . "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}'
+
+ "variable (T_VARIABLE)" shift, and go to state 992
+
+
+state 992
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" . ')' $@30 '{' inner_statement_list '}'
+
+ ')' shift, and go to state 993
+
+
+state 993
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' . $@30 '{' inner_statement_list '}'
+
+ $default reduce using rule 96 ($@30)
+
+ $@30 go to state 994
+
+
+state 994
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 . '{' inner_statement_list '}'
+
+ '{' shift, and go to state 995
+
+
+state 995
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' . inner_statement_list '}'
+
+ $default reduce using rule 28 (inner_statement_list)
+
+ inner_statement_list go to state 996
+
+
+state 996
+
+ 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 . '}'
+
+ '}' shift, and go to state 997
+
+ $default reduce using rule 26 ($@4)
+
+ $@4 go to state 389
+
+
+state 997
+
+ 97 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @29 "variable (T_VARIABLE)" ')' $@30 '{' inner_statement_list '}' .
- $default reduce using rule 90 (additional_catch)
+ $default reduce using rule 97 (additional_catch)
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 9a0b3209e..c1514c5d7 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -68,6 +68,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_LOGICAL_AND "and (T_LOGICAL_AND)"
%right T_PRINT
%token T_PRINT "print (T_PRINT)"
+%right T_YIELD
+%token T_YIELD "yield (T_YIELD)"
%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL
%token T_PLUS_EQUAL "+= (T_PLUS_EQUAL)"
%token T_MINUS_EQUAL "-= (T_MINUS_EQUAL)"
@@ -160,6 +162,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_RETURN "return (T_RETURN)"
%token T_TRY "try (T_TRY)"
%token T_CATCH "catch (T_CATCH)"
+%token T_FINALLY "finally (T_FINALLY)"
%token T_THROW "throw (T_THROW)"
%token T_USE "use (T_USE)"
%token T_INSTEADOF "insteadof (T_INSTEADOF)"
@@ -276,10 +279,10 @@ statement:
unticked_statement:
'{' inner_statement_list '}'
- | T_IF '(' expr ')' { zend_do_if_cond(&$3, &$4 TSRMLS_CC); } statement { zend_do_if_after_statement(&$4, 1 TSRMLS_CC); } elseif_list else_single { zend_do_if_end(TSRMLS_C); }
- | T_IF '(' expr ')' ':' { zend_do_if_cond(&$3, &$4 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$4, 1 TSRMLS_CC); } new_elseif_list new_else_single T_ENDIF ';' { zend_do_if_end(TSRMLS_C); }
- | T_WHILE '(' { $1.u.op.opline_num = get_next_op_number(CG(active_op_array)); } expr ')' { zend_do_while_cond(&$4, &$5 TSRMLS_CC); } while_statement { zend_do_while_end(&$1, &$5 TSRMLS_CC); }
- | T_DO { $1.u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); } statement T_WHILE '(' { $5.u.op.opline_num = get_next_op_number(CG(active_op_array)); } expr ')' ';' { zend_do_do_while_end(&$1, &$5, &$7 TSRMLS_CC); }
+ | T_IF parenthesis_expr { zend_do_if_cond(&$2, &$1 TSRMLS_CC); } statement { zend_do_if_after_statement(&$1, 1 TSRMLS_CC); } elseif_list else_single { zend_do_if_end(TSRMLS_C); }
+ | T_IF parenthesis_expr ':' { zend_do_if_cond(&$2, &$1 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$1, 1 TSRMLS_CC); } new_elseif_list new_else_single T_ENDIF ';' { zend_do_if_end(TSRMLS_C); }
+ | T_WHILE { $1.u.op.opline_num = get_next_op_number(CG(active_op_array)); } parenthesis_expr { zend_do_while_cond(&$3, &$$ TSRMLS_CC); } while_statement { zend_do_while_end(&$1, &$4 TSRMLS_CC); }
+ | T_DO { $1.u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); } statement T_WHILE { $4.u.op.opline_num = get_next_op_number(CG(active_op_array)); } parenthesis_expr ';' { zend_do_do_while_end(&$1, &$4, &$6 TSRMLS_CC); }
| T_FOR
'('
for_expr
@@ -289,7 +292,7 @@ unticked_statement:
for_expr
')' { zend_do_free(&$9 TSRMLS_CC); zend_do_for_before_statement(&$4, &$7 TSRMLS_CC); }
for_statement { zend_do_for_end(&$7 TSRMLS_CC); }
- | T_SWITCH '(' expr ')' { zend_do_switch_cond(&$3 TSRMLS_CC); } switch_case_list { zend_do_switch_end(&$6 TSRMLS_CC); }
+ | T_SWITCH parenthesis_expr { zend_do_switch_cond(&$2 TSRMLS_CC); } switch_case_list { zend_do_switch_end(&$4 TSRMLS_CC); }
| T_BREAK ';' { zend_do_brk_cont(ZEND_BRK, NULL TSRMLS_CC); }
| T_BREAK expr ';' { zend_do_brk_cont(ZEND_BRK, &$2 TSRMLS_CC); }
| T_CONTINUE ';' { zend_do_brk_cont(ZEND_CONT, NULL TSRMLS_CC); }
@@ -297,6 +300,7 @@ unticked_statement:
| T_RETURN ';' { zend_do_return(NULL, 0 TSRMLS_CC); }
| T_RETURN expr_without_variable ';' { zend_do_return(&$2, 0 TSRMLS_CC); }
| T_RETURN variable ';' { zend_do_return(&$2, 1 TSRMLS_CC); }
+ | yield_expr ';' { $$ = $1; }
| T_GLOBAL global_var_list ';'
| T_STATIC static_var_list ';'
| T_ECHO echo_expr_list ';'
@@ -309,20 +313,29 @@ unticked_statement:
foreach_statement { zend_do_foreach_end(&$1, &$4 TSRMLS_CC); }
| T_FOREACH '(' expr_without_variable T_AS
{ zend_do_foreach_begin(&$1, &$2, &$3, &$4, 0 TSRMLS_CC); }
- variable foreach_optional_arg ')' { zend_check_writable_variable(&$6); zend_do_foreach_cont(&$1, &$2, &$4, &$6, &$7 TSRMLS_CC); }
+ foreach_variable foreach_optional_arg ')' { zend_do_foreach_cont(&$1, &$2, &$4, &$6, &$7 TSRMLS_CC); }
foreach_statement { zend_do_foreach_end(&$1, &$4 TSRMLS_CC); }
| T_DECLARE { $1.u.op.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); } '(' declare_list ')' declare_statement { zend_do_declare_end(&$1 TSRMLS_CC); }
| ';' /* empty statement */
| T_TRY { zend_do_try(&$1 TSRMLS_CC); } '{' inner_statement_list '}'
- T_CATCH '(' { zend_initialize_try_catch_element(&$1 TSRMLS_CC); }
- fully_qualified_class_name { zend_do_first_catch(&$7 TSRMLS_CC); }
- T_VARIABLE ')' { zend_do_begin_catch(&$1, &$9, &$11, &$7 TSRMLS_CC); }
- '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
- additional_catches { zend_do_mark_last_catch(&$7, &$18 TSRMLS_CC); }
+ catch_statement { zend_do_bind_catch(&$1, &$6 TSRMLS_CC); }
+ finally_statement { zend_do_end_finally(&$1, &$6, &$8 TSRMLS_CC); }
| T_THROW expr ';' { zend_do_throw(&$2 TSRMLS_CC); }
| T_GOTO T_STRING ';' { zend_do_goto(&$2 TSRMLS_CC); }
;
+catch_statement:
+ /* empty */ { $$.op_type = IS_UNUSED; }
+ | T_CATCH '(' { zend_initialize_try_catch_element(&$1 TSRMLS_CC); }
+ fully_qualified_class_name { zend_do_first_catch(&$2 TSRMLS_CC); }
+ T_VARIABLE ')' { zend_do_begin_catch(&$1, &$4, &$6, &$2 TSRMLS_CC); }
+ '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
+ additional_catches { zend_do_mark_last_catch(&$2, &$13 TSRMLS_CC); $$ = $1;}
+
+finally_statement:
+ /* empty */ { $$.op_type = IS_UNUSED; }
+ | T_FINALLY { zend_do_finally(&$1 TSRMLS_CC); } '{' inner_statement_list '}' { $$ = $1; }
+;
additional_catches:
non_empty_additional_catches { $$ = $1; }
@@ -334,12 +347,10 @@ non_empty_additional_catches:
| non_empty_additional_catches additional_catch { $$ = $2; }
;
-
additional_catch:
T_CATCH '(' fully_qualified_class_name { $$.u.op.opline_num = get_next_op_number(CG(active_op_array)); } T_VARIABLE ')' { zend_do_begin_catch(&$1, &$3, &$5, NULL TSRMLS_CC); } '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
;
-
unset_variables:
unset_variable
| unset_variables ',' unset_variable
@@ -357,7 +368,6 @@ class_declaration_statement:
unticked_class_declaration_statement { DO_TICKS(); }
;
-
is_reference:
/* empty */ { $$.op_type = ZEND_RETURN_VAL; }
| '&' { $$.op_type = ZEND_RETURN_REF; }
@@ -366,7 +376,8 @@ is_reference:
unticked_function_declaration_statement:
function is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$3, 0, $2.op_type, NULL TSRMLS_CC); }
- '(' parameter_list ')' '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
+ '(' parameter_list ')'
+ '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
;
unticked_class_declaration_statement:
@@ -421,10 +432,10 @@ foreach_optional_arg:
| T_DOUBLE_ARROW foreach_variable { $$ = $2; }
;
-
foreach_variable:
variable { zend_check_writable_variable(&$1); $$ = $1; }
| '&' variable { zend_check_writable_variable(&$2); $$ = $2; $$.EA |= ZEND_PARSED_REFERENCE_VARIABLE; }
+ | T_LIST '(' { zend_do_list_init(TSRMLS_C); } assignment_list ')' { $$ = $1; $$.EA = ZEND_PARSED_LIST_EXPR; }
;
for_statement:
@@ -481,13 +492,13 @@ while_statement:
elseif_list:
/* empty */
- | elseif_list T_ELSEIF '(' expr ')' { zend_do_if_cond(&$4, &$5 TSRMLS_CC); } statement { zend_do_if_after_statement(&$5, 0 TSRMLS_CC); }
+ | elseif_list T_ELSEIF parenthesis_expr { zend_do_if_cond(&$3, &$2 TSRMLS_CC); } statement { zend_do_if_after_statement(&$2, 0 TSRMLS_CC); }
;
new_elseif_list:
/* empty */
- | new_elseif_list T_ELSEIF '(' expr ')' ':' { zend_do_if_cond(&$4, &$5 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$5, 0 TSRMLS_CC); }
+ | new_elseif_list T_ELSEIF parenthesis_expr ':' { zend_do_if_cond(&$3, &$2 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$2, 0 TSRMLS_CC); }
;
@@ -530,8 +541,9 @@ optional_class_type:
function_call_parameter_list:
- non_empty_function_call_parameter_list { $$ = $1; }
- | /* empty */ { Z_LVAL($$.u.constant) = 0; }
+ '(' ')' { Z_LVAL($$.u.constant) = 0; }
+ | '(' non_empty_function_call_parameter_list ')' { $$ = $2; }
+ | '(' yield_expr ')' { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$2, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
;
@@ -576,8 +588,9 @@ class_statement:
variable_modifiers { CG(access_type) = Z_LVAL($1.u.constant); } class_variable_declaration ';'
| class_constant_declaration ';'
| trait_use_statement
- | method_modifiers function is_reference T_STRING { zend_do_begin_function_declaration(&$2, &$4, 1, $3.op_type, &$1 TSRMLS_CC); } '('
- parameter_list ')' method_body { zend_do_abstract_method(&$4, &$1, &$9 TSRMLS_CC); zend_do_end_function_declaration(&$2 TSRMLS_CC); }
+ | method_modifiers function is_reference T_STRING { zend_do_begin_function_declaration(&$2, &$4, 1, $3.op_type, &$1 TSRMLS_CC); }
+ '(' parameter_list ')'
+ method_body { zend_do_abstract_method(&$4, &$1, &$9 TSRMLS_CC); zend_do_end_function_declaration(&$2 TSRMLS_CC); }
;
trait_use_statement:
@@ -770,7 +783,7 @@ expr_without_variable:
| expr '>' expr { zend_do_binary_op(ZEND_IS_SMALLER, &$$, &$3, &$1 TSRMLS_CC); }
| expr T_IS_GREATER_OR_EQUAL expr { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &$$, &$3, &$1 TSRMLS_CC); }
| expr T_INSTANCEOF class_name_reference { zend_do_instanceof(&$$, &$1, &$3, 0 TSRMLS_CC); }
- | '(' expr ')' { $$ = $2; }
+ | parenthesis_expr { $$ = $1; }
| new_expr { $$ = $1; }
| '(' new_expr ')' { $$ = $2; } instance_call { $$ = $5; }
| expr '?' { zend_do_begin_qm_op(&$1, &$2 TSRMLS_CC); }
@@ -789,16 +802,35 @@ expr_without_variable:
| T_EXIT exit_expr { zend_do_exit(&$$, &$2 TSRMLS_CC); }
| '@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; }
| scalar { $$ = $1; }
- | T_ARRAY '(' array_pair_list ')' { $$ = $3; }
- | '[' array_pair_list ']' { $$ = $2; }
+ | combined_scalar_offset { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); }
+ | combined_scalar { $$ = $1; }
| '`' backticks_expr '`' { zend_do_shell_exec(&$$, &$2 TSRMLS_CC); }
| T_PRINT expr { zend_do_print(&$$, &$2 TSRMLS_CC); }
- | function is_reference '(' { zend_do_begin_lambda_function_declaration(&$$, &$1, $2.op_type, 0 TSRMLS_CC); }
- parameter_list ')' lexical_vars '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); $$ = $4; }
- | T_STATIC function is_reference '(' { zend_do_begin_lambda_function_declaration(&$$, &$2, $3.op_type, 1 TSRMLS_CC); }
- parameter_list ')' lexical_vars '{' inner_statement_list '}' { zend_do_end_function_declaration(&$2 TSRMLS_CC); $$ = $5; }
+ | T_YIELD { zend_do_yield(&$$, NULL, NULL, 0 TSRMLS_CC); }
+ | function is_reference { zend_do_begin_lambda_function_declaration(&$$, &$1, $2.op_type, 0 TSRMLS_CC); }
+ '(' parameter_list ')' lexical_vars
+ '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); $$ = $3; }
+ | T_STATIC function is_reference { zend_do_begin_lambda_function_declaration(&$$, &$2, $3.op_type, 1 TSRMLS_CC); }
+ '(' parameter_list ')' lexical_vars
+ '{' inner_statement_list '}' { zend_do_end_function_declaration(&$2 TSRMLS_CC); $$ = $4; }
;
+yield_expr:
+ T_YIELD expr_without_variable { zend_do_yield(&$$, &$2, NULL, 0 TSRMLS_CC); }
+ | T_YIELD variable { zend_do_yield(&$$, &$2, NULL, 1 TSRMLS_CC); }
+ | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { zend_do_yield(&$$, &$4, &$2, 0 TSRMLS_CC); }
+ | T_YIELD expr T_DOUBLE_ARROW variable { zend_do_yield(&$$, &$4, &$2, 1 TSRMLS_CC); }
+;
+
+combined_scalar_offset:
+ combined_scalar '[' dim_offset ']' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
+ | combined_scalar_offset '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
+ | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $1.EA = 0; zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
+
+combined_scalar:
+ T_ARRAY '(' array_pair_list ')' { $$ = $3; }
+ | '[' array_pair_list ']' { $$ = $2; }
+
function:
T_FUNCTION { $$.u.op.opline_num = CG(zend_lineno); }
;
@@ -816,30 +848,22 @@ lexical_var_list:
;
function_call:
- namespace_name '(' { $2.u.op.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(&$1, &$$, &$4, 0, $2.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
- | T_NAMESPACE T_NS_SEPARATOR namespace_name '(' { $1.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$1.u.constant); zend_do_build_namespace_name(&$1, &$1, &$3 TSRMLS_CC); $4.u.op.opline_num = zend_do_begin_function_call(&$1, 0 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(&$1, &$$, &$6, 0, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
- | T_NS_SEPARATOR namespace_name '(' { $3.u.op.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(&$2, &$$, &$5, 0, $3.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
- | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name '(' { $4.u.op.opline_num = zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call($4.u.op.opline_num?NULL:&$3, &$$, &$6, $4.u.op.opline_num, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
- | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(NULL, &$$, &$6, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name '(' { zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(NULL, &$$, &$6, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list
- ')' { zend_do_end_function_call(NULL, &$$, &$6, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
- | variable_without_objects '(' { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&$1, 0 TSRMLS_CC); }
- function_call_parameter_list ')'
- { zend_do_end_function_call(&$1, &$$, &$4, 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ namespace_name { $$.u.op.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$3, 0, $2.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ | T_NAMESPACE T_NS_SEPARATOR namespace_name { $1.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$1.u.constant); zend_do_build_namespace_name(&$1, &$1, &$3 TSRMLS_CC); $$.u.op.opline_num = zend_do_begin_function_call(&$1, 0 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$5, 0, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ | T_NS_SEPARATOR namespace_name { $$.u.op.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(&$2, &$$, &$4, 0, $3.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { $$.u.op.opline_num = zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call($4.u.op.opline_num?NULL:&$3, &$$, &$5, $4.u.op.opline_num, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ | variable_without_objects { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&$1, 0 TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$3, 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
;
class_name:
@@ -884,7 +908,7 @@ dynamic_class_name_variable_property:
exit_expr:
/* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
| '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
- | '(' expr ')' { $$ = $2; }
+ | parenthesis_expr { $$ = $1; }
;
backticks_expr:
@@ -895,8 +919,8 @@ backticks_expr:
ctor_arguments:
- /* empty */ { Z_LVAL($$.u.constant)=0; }
- | '(' function_call_parameter_list ')' { $$ = $2; }
+ /* empty */ { Z_LVAL($$.u.constant) = 0; }
+ | function_call_parameter_list { $$ = $1; }
;
@@ -911,8 +935,8 @@ common_scalar:
| T_METHOD_C { $$ = $1; }
| T_FUNC_C { $$ = $1; }
| T_NS_C { $$ = $1; }
- | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = $2; CG(heredoc) = Z_STRVAL($1.u.constant); CG(heredoc_len) = Z_STRLEN($1.u.constant); }
- | T_START_HEREDOC T_END_HEREDOC { ZVAL_EMPTY_STRING(&$$.u.constant); INIT_PZVAL(&$$.u.constant); $$.op_type = IS_CONST; CG(heredoc) = Z_STRVAL($1.u.constant); CG(heredoc_len) = Z_STRLEN($1.u.constant); }
+ | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = $2; }
+ | T_START_HEREDOC T_END_HEREDOC { ZVAL_EMPTY_STRING(&$$.u.constant); INIT_PZVAL(&$$.u.constant); $$.op_type = IS_CONST; }
;
@@ -941,7 +965,7 @@ scalar:
| 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_RT, 0 TSRMLS_CC); }
| common_scalar { $$ = $1; }
| '"' encaps_list '"' { $$ = $2; }
- | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; CG(heredoc) = Z_STRVAL($1.u.constant); CG(heredoc_len) = Z_STRLEN($1.u.constant); }
+ | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; }
| T_CLASS_C { if (Z_TYPE($1.u.constant) == IS_CONSTANT) {zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC);} else {$$ = $1;} }
;
@@ -968,6 +992,11 @@ expr:
| expr_without_variable { $$ = $1; }
;
+parenthesis_expr:
+ '(' expr ')' { $$ = $2; }
+ | '(' yield_expr ')' { $$ = $2; }
+;
+
r_variable:
variable { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); $$ = $1; }
@@ -1007,9 +1036,8 @@ array_method_dereference:
;
method:
- '(' { zend_do_pop_object(&$1 TSRMLS_CC); zend_do_begin_method_call(&$1 TSRMLS_CC); }
- function_call_parameter_list ')'
- { zend_do_end_function_call(&$1, &$$, &$3, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { zend_do_pop_object(&$$ TSRMLS_CC); zend_do_begin_method_call(&$$ TSRMLS_CC); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$2, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
;
method_or_not:
@@ -1149,6 +1177,7 @@ encaps_var_offset:
internal_functions_in_yacc:
T_ISSET '(' isset_variables ')' { $$ = $3; }
| T_EMPTY '(' variable ')' { zend_do_isset_or_isempty(ZEND_ISEMPTY, &$$, &$3 TSRMLS_CC); }
+ | T_EMPTY '(' expr_without_variable ')' { zend_do_unary_op(ZEND_BOOL_NOT, &$$, &$3 TSRMLS_CC); }
| T_INCLUDE expr { zend_do_include_or_eval(ZEND_INCLUDE, &$$, &$2 TSRMLS_CC); }
| T_INCLUDE_ONCE expr { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &$$, &$2 TSRMLS_CC); }
| T_EVAL '(' expr ')' { zend_do_include_or_eval(ZEND_EVAL, &$$, &$3 TSRMLS_CC); }
@@ -1157,8 +1186,13 @@ internal_functions_in_yacc:
;
isset_variables:
- variable { zend_do_isset_or_isempty(ZEND_ISSET, &$$, &$1 TSRMLS_CC); }
- | isset_variables ',' { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); } variable { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &$4 TSRMLS_CC); zend_do_boolean_and_end(&$$, &$1, &tmp, &$2 TSRMLS_CC); }
+ isset_variable { $$ = $1; }
+ | isset_variables ',' { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); } isset_variable { zend_do_boolean_and_end(&$$, &$1, &$4, &$2 TSRMLS_CC); }
+;
+
+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)"); }
;
class_constant:
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index e3d3de283..07ccb5d75 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Mon Apr 30 15:55:05 2012 */
+/* Generated by re2c 0.13.5 on Mon Aug 20 13:34:50 2012 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -180,22 +180,23 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
void startup_scanner(TSRMLS_D)
{
CG(parse_error) = 0;
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
CG(doc_comment) = NULL;
CG(doc_comment_len) = 0;
zend_stack_init(&SCNG(state_stack));
+ zend_ptr_stack_init(&SCNG(heredoc_label_stack));
+}
+
+static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
+ efree(heredoc_label->label);
}
void shutdown_scanner(TSRMLS_D)
{
- if (CG(heredoc)) {
- efree(CG(heredoc));
- CG(heredoc_len)=0;
- }
CG(parse_error) = 0;
- zend_stack_destroy(&SCNG(state_stack));
RESET_DOC_COMMENT();
+ zend_stack_destroy(&SCNG(state_stack));
+ zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
+ zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
}
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
@@ -210,6 +211,9 @@ ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
lex_state->state_stack = SCNG(state_stack);
zend_stack_init(&SCNG(state_stack));
+ lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
+ zend_ptr_stack_init(&SCNG(heredoc_label_stack));
+
lex_state->in = SCNG(yy_in);
lex_state->yy_state = YYSTATE;
lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
@@ -236,6 +240,10 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
zend_stack_destroy(&SCNG(state_stack));
SCNG(state_stack) = lex_state->state_stack;
+ zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
+ zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
+ SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
+
SCNG(yy_in) = lex_state->in;
YYSETCONDITION(lex_state->yy_state);
CG(zend_lineno) = lex_state->lineno;
@@ -252,12 +260,6 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
SCNG(input_filter) = lex_state->input_filter;
SCNG(output_filter) = lex_state->output_filter;
SCNG(script_encoding) = lex_state->script_encoding;
-
- if (CG(heredoc)) {
- efree(CG(heredoc));
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
- }
}
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
@@ -998,7 +1000,7 @@ restart:
yymore_restart:
-#line 1002 "Zend/zend_language_scanner.c"
+#line 1004 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1097,7 +1099,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1790 "Zend/zend_language_scanner.l"
+#line 1801 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1157,7 +1159,7 @@ inline_html:
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
-#line 1161 "Zend/zend_language_scanner.c"
+#line 1163 "Zend/zend_language_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1175,7 +1177,7 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1778 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1187,14 +1189,14 @@ yy6:
goto inline_char_handler;
}
}
-#line 1191 "Zend/zend_language_scanner.c"
+#line 1193 "Zend/zend_language_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1766 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1206,7 +1208,7 @@ yy7:
goto inline_char_handler;
}
}
-#line 1210 "Zend/zend_language_scanner.c"
+#line 1212 "Zend/zend_language_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1392,7 +1394,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1726 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
@@ -1409,7 +1411,7 @@ yy35:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1413 "Zend/zend_language_scanner.c"
+#line 1415 "Zend/zend_language_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1436,7 +1438,7 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1733 "Zend/zend_language_scanner.l"
+#line 1744 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1448,13 +1450,13 @@ yy43:
goto inline_char_handler;
}
}
-#line 1452 "Zend/zend_language_scanner.c"
+#line 1454 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1746 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1462,7 +1464,7 @@ yy45:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
}
-#line 1466 "Zend/zend_language_scanner.c"
+#line 1468 "Zend/zend_language_scanner.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1489,7 +1491,7 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1768 "Zend/zend_language_scanner.l"
+#line 1779 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1498,7 +1500,7 @@ yy51:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1502 "Zend/zend_language_scanner.c"
+#line 1504 "Zend/zend_language_scanner.c"
yy52:
YYDEBUG(52, *YYCURSOR);
++YYCURSOR;
@@ -1569,7 +1571,7 @@ yyc_ST_BACKQUOTE:
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2241 "Zend/zend_language_scanner.l"
+#line 2252 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1610,7 +1612,7 @@ yy56:
zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1614 "Zend/zend_language_scanner.c"
+#line 1616 "Zend/zend_language_scanner.c"
yy57:
YYDEBUG(57, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1621,12 +1623,12 @@ yy58:
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2185 "Zend/zend_language_scanner.l"
+#line 2196 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
-#line 1630 "Zend/zend_language_scanner.c"
+#line 1632 "Zend/zend_language_scanner.c"
yy60:
YYDEBUG(60, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1636,14 +1638,14 @@ yy61:
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2172 "Zend/zend_language_scanner.l"
+#line 2183 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1647 "Zend/zend_language_scanner.c"
+#line 1649 "Zend/zend_language_scanner.c"
yy63:
YYDEBUG(63, *YYCURSOR);
yyaccept = 0;
@@ -1659,24 +1661,24 @@ yy63:
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1669 "Zend/zend_language_scanner.c"
+#line 1671 "Zend/zend_language_scanner.c"
yy66:
YYDEBUG(66, *YYCURSOR);
++YYCURSOR;
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1680 "Zend/zend_language_scanner.c"
+#line 1682 "Zend/zend_language_scanner.c"
yy68:
YYDEBUG(68, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1690,7 +1692,7 @@ yy70:
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1864 "Zend/zend_language_scanner.l"
+#line 1875 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1698,7 +1700,7 @@ yy70:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1702 "Zend/zend_language_scanner.c"
+#line 1704 "Zend/zend_language_scanner.c"
yy72:
YYDEBUG(72, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1716,7 +1718,7 @@ yy73:
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1854 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1724,7 +1726,7 @@ yy73:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1728 "Zend/zend_language_scanner.c"
+#line 1730 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -1792,7 +1794,7 @@ yy77:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2202 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1841,7 +1843,7 @@ double_quotes_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1845 "Zend/zend_language_scanner.c"
+#line 1847 "Zend/zend_language_scanner.c"
yy79:
YYDEBUG(79, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1852,12 +1854,12 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2180 "Zend/zend_language_scanner.l"
+#line 2191 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
}
-#line 1861 "Zend/zend_language_scanner.c"
+#line 1863 "Zend/zend_language_scanner.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1867,14 +1869,14 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2172 "Zend/zend_language_scanner.l"
+#line 2183 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1878 "Zend/zend_language_scanner.c"
+#line 1880 "Zend/zend_language_scanner.c"
yy85:
YYDEBUG(85, *YYCURSOR);
yyaccept = 0;
@@ -1890,24 +1892,24 @@ yy85:
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1900 "Zend/zend_language_scanner.c"
+#line 1902 "Zend/zend_language_scanner.c"
yy88:
YYDEBUG(88, *YYCURSOR);
++YYCURSOR;
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1911 "Zend/zend_language_scanner.c"
+#line 1913 "Zend/zend_language_scanner.c"
yy90:
YYDEBUG(90, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1921,7 +1923,7 @@ yy92:
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1864 "Zend/zend_language_scanner.l"
+#line 1875 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1929,7 +1931,7 @@ yy92:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1933 "Zend/zend_language_scanner.c"
+#line 1935 "Zend/zend_language_scanner.c"
yy94:
YYDEBUG(94, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1947,7 +1949,7 @@ yy95:
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1854 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1955,7 +1957,7 @@ yy95:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1959 "Zend/zend_language_scanner.c"
+#line 1961 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
@@ -1966,19 +1968,20 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2159 "Zend/zend_language_scanner.l"
+#line 2169 "Zend/zend_language_scanner.l"
{
- YYCURSOR += CG(heredoc_len) - 1;
- yyleng = CG(heredoc_len);
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
+
+ YYCURSOR += heredoc_label->length - 1;
+ yyleng = heredoc_label->length;
+
+ heredoc_label_dtor(heredoc_label);
+ efree(heredoc_label);
- Z_STRVAL_P(zendlval) = CG(heredoc);
- Z_STRLEN_P(zendlval) = CG(heredoc_len);
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
-#line 1982 "Zend/zend_language_scanner.c"
+#line 1985 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
@@ -2040,10 +2043,12 @@ yy103:
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2283 "Zend/zend_language_scanner.l"
+#line 2294 "Zend/zend_language_scanner.l"
{
int newline = 0;
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+
if (YYCURSOR > YYLIMIT) {
return 0;
}
@@ -2059,8 +2064,8 @@ yy104:
/* fall through */
case '\n':
/* Check for ending label on the next line */
- if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
@@ -2111,7 +2116,7 @@ heredoc_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 2115 "Zend/zend_language_scanner.c"
+#line 2120 "Zend/zend_language_scanner.c"
yy105:
YYDEBUG(105, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2126,14 +2131,14 @@ yy107:
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2172 "Zend/zend_language_scanner.l"
+#line 2183 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 2137 "Zend/zend_language_scanner.c"
+#line 2142 "Zend/zend_language_scanner.c"
yy109:
YYDEBUG(109, *YYCURSOR);
yyaccept = 0;
@@ -2149,24 +2154,24 @@ yy109:
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2159 "Zend/zend_language_scanner.c"
+#line 2164 "Zend/zend_language_scanner.c"
yy112:
YYDEBUG(112, *YYCURSOR);
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2170 "Zend/zend_language_scanner.c"
+#line 2175 "Zend/zend_language_scanner.c"
yy114:
YYDEBUG(114, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2180,7 +2185,7 @@ yy116:
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1864 "Zend/zend_language_scanner.l"
+#line 1875 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2188,7 +2193,7 @@ yy116:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2192 "Zend/zend_language_scanner.c"
+#line 2197 "Zend/zend_language_scanner.c"
yy118:
YYDEBUG(118, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2206,7 +2211,7 @@ yy119:
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1854 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2214,7 +2219,7 @@ yy119:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2218 "Zend/zend_language_scanner.c"
+#line 2223 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
@@ -2286,32 +2291,32 @@ yyc_ST_IN_SCRIPTING:
case 0x1C:
case 0x1D:
case 0x1E:
- case 0x1F: goto yy183;
+ case 0x1F: goto yy184;
case '\t':
case '\n':
case '\r':
- case ' ': goto yy139;
- case '!': goto yy152;
- case '"': goto yy179;
- case '#': goto yy175;
- case '$': goto yy164;
- case '%': goto yy158;
- case '&': goto yy159;
- case '\'': goto yy177;
- case '(': goto yy146;
+ case ' ': goto yy140;
+ case '!': goto yy153;
+ case '"': goto yy180;
+ case '#': goto yy176;
+ case '$': goto yy165;
+ case '%': goto yy159;
+ case '&': goto yy160;
+ case '\'': goto yy178;
+ case '(': goto yy147;
case ')':
case ',':
case ';':
case '@':
case '[':
case ']':
- case '~': goto yy165;
- case '*': goto yy155;
- case '+': goto yy151;
- case '-': goto yy137;
- case '.': goto yy157;
- case '/': goto yy156;
- case '0': goto yy171;
+ case '~': goto yy166;
+ case '*': goto yy156;
+ case '+': goto yy152;
+ case '-': goto yy138;
+ case '.': goto yy158;
+ case '/': goto yy157;
+ case '0': goto yy172;
case '1':
case '2':
case '3':
@@ -2320,16 +2325,16 @@ yyc_ST_IN_SCRIPTING:
case '6':
case '7':
case '8':
- case '9': goto yy173;
- case ':': goto yy141;
- case '<': goto yy153;
- case '=': goto yy149;
- case '>': goto yy154;
- case '?': goto yy166;
+ case '9': goto yy174;
+ case ':': goto yy142;
+ case '<': goto yy154;
+ case '=': goto yy150;
+ case '>': goto yy155;
+ case '?': goto yy167;
case 'A':
- case 'a': goto yy132;
+ case 'a': goto yy133;
case 'B':
- case 'b': goto yy134;
+ case 'b': goto yy135;
case 'C':
case 'c': goto yy127;
case 'D':
@@ -2339,39 +2344,41 @@ yyc_ST_IN_SCRIPTING:
case 'F':
case 'f': goto yy126;
case 'G':
- case 'g': goto yy135;
+ case 'g': goto yy136;
case 'I':
- case 'i': goto yy130;
+ case 'i': goto yy131;
case 'L':
- case 'l': goto yy150;
+ case 'l': goto yy151;
case 'N':
- case 'n': goto yy144;
+ case 'n': goto yy145;
case 'O':
- case 'o': goto yy162;
+ case 'o': goto yy163;
case 'P':
- case 'p': goto yy136;
+ case 'p': goto yy137;
case 'R':
case 'r': goto yy128;
case 'S':
- case 's': goto yy133;
+ case 's': goto yy134;
case 'T':
- case 't': goto yy129;
+ case 't': goto yy130;
case 'U':
- case 'u': goto yy147;
+ case 'u': goto yy148;
case 'V':
- case 'v': goto yy145;
+ case 'v': goto yy146;
case 'W':
- case 'w': goto yy131;
+ case 'w': goto yy132;
case 'X':
- case 'x': goto yy163;
- case '\\': goto yy142;
- case '^': goto yy161;
- case '_': goto yy148;
- case '`': goto yy181;
- case '{': goto yy167;
- case '|': goto yy160;
- case '}': goto yy169;
- default: goto yy174;
+ case 'x': goto yy164;
+ case 'Y':
+ case 'y': goto yy129;
+ case '\\': goto yy143;
+ case '^': goto yy162;
+ case '_': goto yy149;
+ case '`': goto yy182;
+ case '{': goto yy168;
+ case '|': goto yy161;
+ case '}': goto yy170;
+ default: goto yy175;
}
yy123:
YYDEBUG(123, *YYCURSOR);
@@ -2379,49 +2386,49 @@ yy123:
YYDEBUG(-1, yych);
switch ((yych = *YYCURSOR)) {
case 'C':
- case 'c': goto yy726;
+ case 'c': goto yy735;
case 'L':
- case 'l': goto yy727;
+ case 'l': goto yy736;
case 'M':
- case 'm': goto yy728;
+ case 'm': goto yy737;
case 'N':
- case 'n': goto yy729;
+ case 'n': goto yy738;
case 'V':
- case 'v': goto yy730;
+ case 'v': goto yy739;
case 'X':
- case 'x': goto yy731;
- default: goto yy186;
+ case 'x': goto yy740;
+ default: goto yy187;
}
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1906 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 2405 "Zend/zend_language_scanner.c"
+#line 2412 "Zend/zend_language_scanner.c"
yy125:
YYDEBUG(125, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'H') {
- if (yych == 'E') goto yy708;
- goto yy186;
+ if (yych == 'E') goto yy717;
+ goto yy187;
} else {
- if (yych <= 'I') goto yy709;
- if (yych <= 'N') goto yy186;
- goto yy710;
+ if (yych <= 'I') goto yy718;
+ if (yych <= 'N') goto yy187;
+ goto yy719;
}
} else {
if (yych <= 'h') {
- if (yych == 'e') goto yy708;
- goto yy186;
+ if (yych == 'e') goto yy717;
+ goto yy187;
} else {
- if (yych <= 'i') goto yy709;
- if (yych == 'o') goto yy710;
- goto yy186;
+ if (yych <= 'i') goto yy718;
+ if (yych == 'o') goto yy719;
+ goto yy187;
}
}
yy126:
@@ -2429,21 +2436,21 @@ yy126:
yych = *++YYCURSOR;
if (yych <= 'U') {
if (yych <= 'N') {
- if (yych == 'I') goto yy687;
- goto yy186;
+ if (yych == 'I') goto yy693;
+ goto yy187;
} else {
- if (yych <= 'O') goto yy688;
- if (yych <= 'T') goto yy186;
- goto yy689;
+ if (yych <= 'O') goto yy694;
+ if (yych <= 'T') goto yy187;
+ goto yy695;
}
} else {
if (yych <= 'n') {
- if (yych == 'i') goto yy687;
- goto yy186;
+ if (yych == 'i') goto yy693;
+ goto yy187;
} else {
- if (yych <= 'o') goto yy688;
- if (yych == 'u') goto yy689;
- goto yy186;
+ if (yych <= 'o') goto yy694;
+ if (yych == 'u') goto yy695;
+ goto yy187;
}
}
yy127:
@@ -2451,196 +2458,202 @@ yy127:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'K') {
- if (yych == 'A') goto yy652;
- goto yy186;
+ if (yych == 'A') goto yy658;
+ goto yy187;
} else {
- if (yych <= 'L') goto yy653;
- if (yych <= 'N') goto yy186;
- goto yy654;
+ if (yych <= 'L') goto yy659;
+ if (yych <= 'N') goto yy187;
+ goto yy660;
}
} else {
if (yych <= 'k') {
- if (yych == 'a') goto yy652;
- goto yy186;
+ if (yych == 'a') goto yy658;
+ goto yy187;
} else {
- if (yych <= 'l') goto yy653;
- if (yych == 'o') goto yy654;
- goto yy186;
+ if (yych <= 'l') goto yy659;
+ if (yych == 'o') goto yy660;
+ goto yy187;
}
}
yy128:
YYDEBUG(128, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy634;
- if (yych == 'e') goto yy634;
- goto yy186;
+ if (yych == 'E') goto yy640;
+ if (yych == 'e') goto yy640;
+ goto yy187;
yy129:
YYDEBUG(129, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'I') goto yy635;
+ if (yych == 'i') goto yy635;
+ goto yy187;
+yy130:
+ YYDEBUG(130, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'R') {
- if (yych == 'H') goto yy622;
- if (yych <= 'Q') goto yy186;
- goto yy623;
+ if (yych == 'H') goto yy623;
+ if (yych <= 'Q') goto yy187;
+ goto yy624;
} else {
if (yych <= 'h') {
- if (yych <= 'g') goto yy186;
- goto yy622;
+ if (yych <= 'g') goto yy187;
+ goto yy623;
} else {
- if (yych == 'r') goto yy623;
- goto yy186;
+ if (yych == 'r') goto yy624;
+ goto yy187;
}
}
-yy130:
- YYDEBUG(130, *YYCURSOR);
+yy131:
+ YYDEBUG(131, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'L') {
- if (yych == 'F') goto yy569;
- goto yy186;
+ if (yych == 'F') goto yy570;
+ goto yy187;
} else {
- if (yych <= 'M') goto yy571;
- if (yych <= 'N') goto yy572;
- if (yych <= 'R') goto yy186;
- goto yy573;
+ if (yych <= 'M') goto yy572;
+ if (yych <= 'N') goto yy573;
+ if (yych <= 'R') goto yy187;
+ goto yy574;
}
} else {
if (yych <= 'm') {
- if (yych == 'f') goto yy569;
- if (yych <= 'l') goto yy186;
- goto yy571;
+ if (yych == 'f') goto yy570;
+ if (yych <= 'l') goto yy187;
+ goto yy572;
} else {
- if (yych <= 'n') goto yy572;
- if (yych == 's') goto yy573;
- goto yy186;
+ if (yych <= 'n') goto yy573;
+ if (yych == 's') goto yy574;
+ goto yy187;
}
}
-yy131:
- YYDEBUG(131, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy564;
- if (yych == 'h') goto yy564;
- goto yy186;
yy132:
YYDEBUG(132, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'H') goto yy565;
+ if (yych == 'h') goto yy565;
+ goto yy187;
+yy133:
+ YYDEBUG(133, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'M') {
- if (yych == 'B') goto yy546;
- goto yy186;
+ if (yych == 'B') goto yy547;
+ goto yy187;
} else {
- if (yych <= 'N') goto yy547;
- if (yych <= 'Q') goto yy186;
- if (yych <= 'R') goto yy548;
- goto yy549;
+ if (yych <= 'N') goto yy548;
+ if (yych <= 'Q') goto yy187;
+ if (yych <= 'R') goto yy549;
+ goto yy550;
}
} else {
if (yych <= 'n') {
- if (yych == 'b') goto yy546;
- if (yych <= 'm') goto yy186;
- goto yy547;
+ if (yych == 'b') goto yy547;
+ if (yych <= 'm') goto yy187;
+ goto yy548;
} else {
- if (yych <= 'q') goto yy186;
- if (yych <= 'r') goto yy548;
- if (yych <= 's') goto yy549;
- goto yy186;
+ if (yych <= 'q') goto yy187;
+ if (yych <= 'r') goto yy549;
+ if (yych <= 's') goto yy550;
+ goto yy187;
}
}
-yy133:
- YYDEBUG(133, *YYCURSOR);
+yy134:
+ YYDEBUG(134, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'W') {
- if (yych == 'T') goto yy534;
- if (yych <= 'V') goto yy186;
- goto yy535;
+ if (yych == 'T') goto yy535;
+ if (yych <= 'V') goto yy187;
+ goto yy536;
} else {
if (yych <= 't') {
- if (yych <= 's') goto yy186;
- goto yy534;
+ if (yych <= 's') goto yy187;
+ goto yy535;
} else {
- if (yych == 'w') goto yy535;
- goto yy186;
+ if (yych == 'w') goto yy536;
+ goto yy187;
}
}
-yy134:
- YYDEBUG(134, *YYCURSOR);
+yy135:
+ YYDEBUG(135, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= ';') {
if (yych <= '"') {
- if (yych <= '!') goto yy186;
- goto yy526;
+ if (yych <= '!') goto yy187;
+ goto yy527;
} else {
- if (yych == '\'') goto yy527;
- goto yy186;
+ if (yych == '\'') goto yy528;
+ goto yy187;
}
} else {
if (yych <= 'R') {
- if (yych <= '<') goto yy525;
- if (yych <= 'Q') goto yy186;
- goto yy528;
+ if (yych <= '<') goto yy526;
+ if (yych <= 'Q') goto yy187;
+ goto yy529;
} else {
- if (yych == 'r') goto yy528;
- goto yy186;
+ if (yych == 'r') goto yy529;
+ goto yy187;
}
}
-yy135:
- YYDEBUG(135, *YYCURSOR);
+yy136:
+ YYDEBUG(136, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'L') goto yy515;
- if (yych <= 'N') goto yy186;
- goto yy516;
+ if (yych == 'L') goto yy516;
+ if (yych <= 'N') goto yy187;
+ goto yy517;
} else {
if (yych <= 'l') {
- if (yych <= 'k') goto yy186;
- goto yy515;
+ if (yych <= 'k') goto yy187;
+ goto yy516;
} else {
- if (yych == 'o') goto yy516;
- goto yy186;
+ if (yych == 'o') goto yy517;
+ goto yy187;
}
}
-yy136:
- YYDEBUG(136, *YYCURSOR);
+yy137:
+ YYDEBUG(137, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'R') goto yy491;
- if (yych <= 'T') goto yy186;
- goto yy492;
+ if (yych == 'R') goto yy492;
+ if (yych <= 'T') goto yy187;
+ goto yy493;
} else {
if (yych <= 'r') {
- if (yych <= 'q') goto yy186;
- goto yy491;
+ if (yych <= 'q') goto yy187;
+ goto yy492;
} else {
- if (yych == 'u') goto yy492;
- goto yy186;
+ if (yych == 'u') goto yy493;
+ goto yy187;
}
}
-yy137:
- YYDEBUG(137, *YYCURSOR);
+yy138:
+ YYDEBUG(138, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy487;
+ if (yych == '-') goto yy488;
} else {
- if (yych <= '=') goto yy485;
- if (yych <= '>') goto yy489;
+ if (yych <= '=') goto yy486;
+ if (yych <= '>') goto yy490;
}
-yy138:
- YYDEBUG(138, *YYCURSOR);
+yy139:
+ YYDEBUG(139, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1438 "Zend/zend_language_scanner.l"
+#line 1448 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
-#line 2635 "Zend/zend_language_scanner.c"
-yy139:
- YYDEBUG(139, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy484;
+#line 2648 "Zend/zend_language_scanner.c"
yy140:
YYDEBUG(140, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy485;
+yy141:
+ YYDEBUG(141, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1169 "Zend/zend_language_scanner.l"
+#line 1179 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -2648,261 +2661,261 @@ yy140:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 2652 "Zend/zend_language_scanner.c"
-yy141:
- YYDEBUG(141, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == ':') goto yy481;
- goto yy138;
+#line 2665 "Zend/zend_language_scanner.c"
yy142:
YYDEBUG(142, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy482;
+ goto yy139;
+yy143:
YYDEBUG(143, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(144, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1198 "Zend/zend_language_scanner.l"
+#line 1208 "Zend/zend_language_scanner.l"
{
return T_NS_SEPARATOR;
}
-#line 2667 "Zend/zend_language_scanner.c"
-yy144:
- YYDEBUG(144, *YYCURSOR);
+#line 2680 "Zend/zend_language_scanner.c"
+yy145:
+ YYDEBUG(145, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy469;
- if (yych <= 'D') goto yy186;
- goto yy470;
+ if (yych == 'A') goto yy470;
+ if (yych <= 'D') goto yy187;
+ goto yy471;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy186;
- goto yy469;
+ if (yych <= '`') goto yy187;
+ goto yy470;
} else {
- if (yych == 'e') goto yy470;
- goto yy186;
+ if (yych == 'e') goto yy471;
+ goto yy187;
}
}
-yy145:
- YYDEBUG(145, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy466;
- if (yych == 'a') goto yy466;
- goto yy186;
yy146:
YYDEBUG(146, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy467;
+ if (yych == 'a') goto yy467;
+ goto yy187;
+yy147:
+ YYDEBUG(147, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy391;
- if (yych <= 0x1F) goto yy138;
- goto yy391;
+ if (yych == '\t') goto yy392;
+ if (yych <= 0x1F) goto yy139;
+ goto yy392;
} else {
- if (yych <= '@') goto yy138;
- if (yych == 'C') goto yy138;
- goto yy391;
+ if (yych <= '@') goto yy139;
+ if (yych == 'C') goto yy139;
+ goto yy392;
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy391;
- if (yych <= 'H') goto yy138;
- goto yy391;
+ if (yych == 'F') goto yy392;
+ if (yych <= 'H') goto yy139;
+ goto yy392;
} else {
- if (yych == 'O') goto yy391;
- if (yych <= 'Q') goto yy138;
- goto yy391;
+ if (yych == 'O') goto yy392;
+ if (yych <= 'Q') goto yy139;
+ goto yy392;
}
}
} else {
if (yych <= 'f') {
if (yych <= 'b') {
- if (yych == 'U') goto yy391;
- if (yych <= '`') goto yy138;
- goto yy391;
+ if (yych == 'U') goto yy392;
+ if (yych <= '`') goto yy139;
+ goto yy392;
} else {
- if (yych == 'd') goto yy391;
- if (yych <= 'e') goto yy138;
- goto yy391;
+ if (yych == 'd') goto yy392;
+ if (yych <= 'e') goto yy139;
+ goto yy392;
}
} else {
if (yych <= 'o') {
- if (yych == 'i') goto yy391;
- if (yych <= 'n') goto yy138;
- goto yy391;
+ if (yych == 'i') goto yy392;
+ if (yych <= 'n') goto yy139;
+ goto yy392;
} else {
if (yych <= 's') {
- if (yych <= 'q') goto yy138;
- goto yy391;
+ if (yych <= 'q') goto yy139;
+ goto yy392;
} else {
- if (yych == 'u') goto yy391;
- goto yy138;
+ if (yych == 'u') goto yy392;
+ goto yy139;
}
}
}
}
-yy147:
- YYDEBUG(147, *YYCURSOR);
+yy148:
+ YYDEBUG(148, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
- if (yych == 'N') goto yy382;
- if (yych <= 'R') goto yy186;
- goto yy383;
+ if (yych == 'N') goto yy383;
+ if (yych <= 'R') goto yy187;
+ goto yy384;
} else {
if (yych <= 'n') {
- if (yych <= 'm') goto yy186;
- goto yy382;
+ if (yych <= 'm') goto yy187;
+ goto yy383;
} else {
- if (yych == 's') goto yy383;
- goto yy186;
+ if (yych == 's') goto yy384;
+ goto yy187;
}
}
-yy148:
- YYDEBUG(148, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '_') goto yy300;
- goto yy186;
yy149:
YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '<') goto yy138;
- if (yych <= '=') goto yy294;
- if (yych <= '>') goto yy296;
- goto yy138;
+ if (yych == '_') goto yy301;
+ goto yy187;
yy150:
YYDEBUG(150, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy290;
- if (yych == 'i') goto yy290;
- goto yy186;
+ if (yych <= '<') goto yy139;
+ if (yych <= '=') goto yy295;
+ if (yych <= '>') goto yy297;
+ goto yy139;
yy151:
YYDEBUG(151, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '+') goto yy288;
- if (yych == '=') goto yy286;
- goto yy138;
+ if (yych == 'I') goto yy291;
+ if (yych == 'i') goto yy291;
+ goto yy187;
yy152:
YYDEBUG(152, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy283;
- goto yy138;
+ if (yych == '+') goto yy289;
+ if (yych == '=') goto yy287;
+ goto yy139;
yy153:
YYDEBUG(153, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy284;
+ goto yy139;
+yy154:
+ YYDEBUG(154, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= ';') {
- if (yych == '/') goto yy255;
- goto yy138;
+ if (yych == '/') goto yy256;
+ goto yy139;
} else {
- if (yych <= '<') goto yy253;
- if (yych <= '=') goto yy256;
- if (yych <= '>') goto yy258;
- goto yy138;
+ if (yych <= '<') goto yy254;
+ if (yych <= '=') goto yy257;
+ if (yych <= '>') goto yy259;
+ goto yy139;
}
-yy154:
- YYDEBUG(154, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '<') goto yy138;
- if (yych <= '=') goto yy249;
- if (yych <= '>') goto yy247;
- goto yy138;
yy155:
YYDEBUG(155, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy245;
- goto yy138;
+ if (yych <= '<') goto yy139;
+ if (yych <= '=') goto yy250;
+ if (yych <= '>') goto yy248;
+ goto yy139;
yy156:
YYDEBUG(156, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '.') {
- if (yych == '*') goto yy237;
- goto yy138;
- } else {
- if (yych <= '/') goto yy239;
- if (yych == '=') goto yy240;
- goto yy138;
- }
+ if (yych == '=') goto yy246;
+ goto yy139;
yy157:
YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '/') goto yy138;
- if (yych <= '9') goto yy233;
- if (yych == '=') goto yy235;
- goto yy138;
+ if (yych <= '.') {
+ if (yych == '*') goto yy238;
+ goto yy139;
+ } else {
+ if (yych <= '/') goto yy240;
+ if (yych == '=') goto yy241;
+ goto yy139;
+ }
yy158:
YYDEBUG(158, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '<') goto yy138;
- if (yych <= '=') goto yy229;
- if (yych <= '>') goto yy227;
- goto yy138;
+ if (yych <= '/') goto yy139;
+ if (yych <= '9') goto yy234;
+ if (yych == '=') goto yy236;
+ goto yy139;
yy159:
YYDEBUG(159, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '&') goto yy223;
- if (yych == '=') goto yy225;
- goto yy138;
+ if (yych <= '<') goto yy139;
+ if (yych <= '=') goto yy230;
+ if (yych <= '>') goto yy228;
+ goto yy139;
yy160:
YYDEBUG(160, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy221;
- if (yych == '|') goto yy219;
- goto yy138;
+ if (yych == '&') goto yy224;
+ if (yych == '=') goto yy226;
+ goto yy139;
yy161:
YYDEBUG(161, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy217;
- goto yy138;
+ if (yych == '=') goto yy222;
+ if (yych == '|') goto yy220;
+ goto yy139;
yy162:
YYDEBUG(162, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy215;
- if (yych == 'r') goto yy215;
- goto yy186;
+ if (yych == '=') goto yy218;
+ goto yy139;
yy163:
YYDEBUG(163, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy212;
- if (yych == 'o') goto yy212;
- goto yy186;
+ if (yych == 'R') goto yy216;
+ if (yych == 'r') goto yy216;
+ goto yy187;
yy164:
YYDEBUG(164, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '_') {
- if (yych <= '@') goto yy138;
- if (yych <= 'Z') goto yy209;
- if (yych <= '^') goto yy138;
- goto yy209;
- } else {
- if (yych <= '`') goto yy138;
- if (yych <= 'z') goto yy209;
- if (yych <= '~') goto yy138;
- goto yy209;
- }
+ if (yych == 'O') goto yy213;
+ if (yych == 'o') goto yy213;
+ goto yy187;
yy165:
YYDEBUG(165, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy138;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy139;
+ if (yych <= 'Z') goto yy210;
+ if (yych <= '^') goto yy139;
+ goto yy210;
+ } else {
+ if (yych <= '`') goto yy139;
+ if (yych <= 'z') goto yy210;
+ if (yych <= '~') goto yy139;
+ goto yy210;
+ }
yy166:
YYDEBUG(166, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '>') goto yy205;
- goto yy138;
+ goto yy139;
yy167:
YYDEBUG(167, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy206;
+ goto yy139;
+yy168:
YYDEBUG(168, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(169, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1453 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 2900 "Zend/zend_language_scanner.c"
-yy169:
- YYDEBUG(169, *YYCURSOR);
- ++YYCURSOR;
+#line 2913 "Zend/zend_language_scanner.c"
+yy170:
YYDEBUG(170, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(171, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1455 "Zend/zend_language_scanner.l"
+#line 1465 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2910,35 +2923,35 @@ yy169:
}
return '}';
}
-#line 2914 "Zend/zend_language_scanner.c"
-yy171:
- YYDEBUG(171, *YYCURSOR);
+#line 2927 "Zend/zend_language_scanner.c"
+yy172:
+ YYDEBUG(172, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'E') {
if (yych <= '9') {
- if (yych == '.') goto yy187;
- if (yych >= '0') goto yy190;
+ if (yych == '.') goto yy188;
+ if (yych >= '0') goto yy191;
} else {
- if (yych == 'B') goto yy198;
- if (yych >= 'E') goto yy192;
+ if (yych == 'B') goto yy199;
+ if (yych >= 'E') goto yy193;
}
} else {
if (yych <= 'b') {
- if (yych == 'X') goto yy197;
- if (yych >= 'b') goto yy198;
+ if (yych == 'X') goto yy198;
+ if (yych >= 'b') goto yy199;
} else {
if (yych <= 'e') {
- if (yych >= 'e') goto yy192;
+ if (yych >= 'e') goto yy193;
} else {
- if (yych == 'x') goto yy197;
+ if (yych == 'x') goto yy198;
}
}
}
-yy172:
- YYDEBUG(172, *YYCURSOR);
+yy173:
+ YYDEBUG(173, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1516 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -2959,35 +2972,35 @@ yy172:
zendlval->type = IS_LONG;
return T_LNUMBER;
}
-#line 2963 "Zend/zend_language_scanner.c"
-yy173:
- YYDEBUG(173, *YYCURSOR);
+#line 2976 "Zend/zend_language_scanner.c"
+yy174:
+ YYDEBUG(174, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '9') {
- if (yych == '.') goto yy187;
- if (yych <= '/') goto yy172;
- goto yy190;
+ if (yych == '.') goto yy188;
+ if (yych <= '/') goto yy173;
+ goto yy191;
} else {
if (yych <= 'E') {
- if (yych <= 'D') goto yy172;
- goto yy192;
+ if (yych <= 'D') goto yy173;
+ goto yy193;
} else {
- if (yych == 'e') goto yy192;
- goto yy172;
+ if (yych == 'e') goto yy193;
+ goto yy173;
}
}
-yy174:
- YYDEBUG(174, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy186;
yy175:
YYDEBUG(175, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ goto yy187;
yy176:
YYDEBUG(176, *YYCURSOR);
+ ++YYCURSOR;
+yy177:
+ YYDEBUG(177, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1902 "Zend/zend_language_scanner.l"
+#line 1913 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
@@ -3021,14 +3034,14 @@ yy176:
return T_COMMENT;
}
-#line 3025 "Zend/zend_language_scanner.c"
-yy177:
- YYDEBUG(177, *YYCURSOR);
- ++YYCURSOR;
+#line 3038 "Zend/zend_language_scanner.c"
yy178:
YYDEBUG(178, *YYCURSOR);
+ ++YYCURSOR;
+yy179:
+ YYDEBUG(179, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1993 "Zend/zend_language_scanner.l"
+#line 2004 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
@@ -3096,14 +3109,14 @@ yy178:
}
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 3100 "Zend/zend_language_scanner.c"
-yy179:
- YYDEBUG(179, *YYCURSOR);
- ++YYCURSOR;
+#line 3113 "Zend/zend_language_scanner.c"
yy180:
YYDEBUG(180, *YYCURSOR);
+ ++YYCURSOR;
+yy181:
+ YYDEBUG(181, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2062 "Zend/zend_language_scanner.l"
+#line 2073 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
@@ -3144,24 +3157,24 @@ yy180:
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3148 "Zend/zend_language_scanner.c"
-yy181:
- YYDEBUG(181, *YYCURSOR);
- ++YYCURSOR;
+#line 3161 "Zend/zend_language_scanner.c"
+yy182:
YYDEBUG(182, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(183, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2153 "Zend/zend_language_scanner.l"
+#line 2163 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 3159 "Zend/zend_language_scanner.c"
-yy183:
- YYDEBUG(183, *YYCURSOR);
- ++YYCURSOR;
+#line 3172 "Zend/zend_language_scanner.c"
+yy184:
YYDEBUG(184, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2411 "Zend/zend_language_scanner.l"
+#line 2426 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -3170,132 +3183,132 @@ yy183:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 3174 "Zend/zend_language_scanner.c"
-yy185:
- YYDEBUG(185, *YYCURSOR);
+#line 3187 "Zend/zend_language_scanner.c"
+yy186:
+ YYDEBUG(186, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy186:
- YYDEBUG(186, *YYCURSOR);
+yy187:
+ YYDEBUG(187, *YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy185;
+ goto yy186;
}
goto yy124;
-yy187:
- YYDEBUG(187, *YYCURSOR);
+yy188:
+ YYDEBUG(188, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(188, *YYCURSOR);
+ YYDEBUG(189, *YYCURSOR);
if (yybm[0+yych] & 8) {
- goto yy187;
+ goto yy188;
}
- if (yych == 'E') goto yy192;
- if (yych == 'e') goto yy192;
-yy189:
- YYDEBUG(189, *YYCURSOR);
+ if (yych == 'E') goto yy193;
+ if (yych == 'e') goto yy193;
+yy190:
+ YYDEBUG(190, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1570 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
{
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
-#line 3207 "Zend/zend_language_scanner.c"
-yy190:
- YYDEBUG(190, *YYCURSOR);
+#line 3220 "Zend/zend_language_scanner.c"
+yy191:
+ YYDEBUG(191, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(191, *YYCURSOR);
+ YYDEBUG(192, *YYCURSOR);
if (yych <= '9') {
- if (yych == '.') goto yy187;
- if (yych <= '/') goto yy172;
- goto yy190;
+ if (yych == '.') goto yy188;
+ if (yych <= '/') goto yy173;
+ goto yy191;
} else {
if (yych <= 'E') {
- if (yych <= 'D') goto yy172;
+ if (yych <= 'D') goto yy173;
} else {
- if (yych != 'e') goto yy172;
+ if (yych != 'e') goto yy173;
}
}
-yy192:
- YYDEBUG(192, *YYCURSOR);
+yy193:
+ YYDEBUG(193, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= ',') {
- if (yych == '+') goto yy194;
+ if (yych == '+') goto yy195;
} else {
- if (yych <= '-') goto yy194;
- if (yych <= '/') goto yy193;
- if (yych <= '9') goto yy195;
+ if (yych <= '-') goto yy195;
+ if (yych <= '/') goto yy194;
+ if (yych <= '9') goto yy196;
}
-yy193:
- YYDEBUG(193, *YYCURSOR);
+yy194:
+ YYDEBUG(194, *YYCURSOR);
YYCURSOR = YYMARKER;
if (yyaccept <= 2) {
if (yyaccept <= 1) {
if (yyaccept <= 0) {
goto yy124;
} else {
- goto yy138;
+ goto yy139;
}
} else {
- goto yy172;
+ goto yy173;
}
} else {
if (yyaccept <= 4) {
if (yyaccept <= 3) {
- goto yy189;
+ goto yy190;
} else {
- goto yy238;
+ goto yy239;
}
} else {
- goto yy254;
+ goto yy255;
}
}
-yy194:
- YYDEBUG(194, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy193;
- if (yych >= ':') goto yy193;
yy195:
YYDEBUG(195, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy194;
+ if (yych >= ':') goto yy194;
+yy196:
+ YYDEBUG(196, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(196, *YYCURSOR);
- if (yych <= '/') goto yy189;
- if (yych <= '9') goto yy195;
- goto yy189;
-yy197:
YYDEBUG(197, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 32) {
- goto yy202;
- }
- goto yy193;
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy196;
+ goto yy190;
yy198:
YYDEBUG(198, *YYCURSOR);
yych = *++YYCURSOR;
- if (yybm[0+yych] & 16) {
- goto yy199;
+ if (yybm[0+yych] & 32) {
+ goto yy203;
}
- goto yy193;
+ goto yy194;
yy199:
YYDEBUG(199, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy200;
+ }
+ goto yy194;
+yy200:
+ YYDEBUG(200, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(200, *YYCURSOR);
+ YYDEBUG(201, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy199;
+ goto yy200;
}
- YYDEBUG(201, *YYCURSOR);
+ YYDEBUG(202, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
{
char *bin = yytext + 2; /* Skip "0b" */
int len = yyleng - 2;
@@ -3320,19 +3333,19 @@ yy199:
return T_DNUMBER;
}
}
-#line 3324 "Zend/zend_language_scanner.c"
-yy202:
- YYDEBUG(202, *YYCURSOR);
+#line 3337 "Zend/zend_language_scanner.c"
+yy203:
+ YYDEBUG(203, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(203, *YYCURSOR);
+ YYDEBUG(204, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy202;
+ goto yy203;
}
- YYDEBUG(204, *YYCURSOR);
+ YYDEBUG(205, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1526 "Zend/zend_language_scanner.l"
+#line 1537 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -3357,16 +3370,16 @@ yy202:
return T_DNUMBER;
}
}
-#line 3361 "Zend/zend_language_scanner.c"
-yy205:
- YYDEBUG(205, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy207;
- if (yych == '\r') goto yy208;
+#line 3374 "Zend/zend_language_scanner.c"
yy206:
YYDEBUG(206, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy208;
+ if (yych == '\r') goto yy209;
+yy207:
+ YYDEBUG(207, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1970 "Zend/zend_language_scanner.l"
+#line 1981 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -3374,137 +3387,137 @@ yy206:
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3378 "Zend/zend_language_scanner.c"
-yy207:
- YYDEBUG(207, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy206;
+#line 3391 "Zend/zend_language_scanner.c"
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy207;
- goto yy206;
+ goto yy207;
yy209:
YYDEBUG(209, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy208;
+ goto yy207;
+yy210:
+ YYDEBUG(210, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(210, *YYCURSOR);
+ YYDEBUG(211, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy209;
+ if (yych >= '0') goto yy210;
} else {
- if (yych <= '@') goto yy211;
- if (yych <= 'Z') goto yy209;
+ if (yych <= '@') goto yy212;
+ if (yych <= 'Z') goto yy210;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy209;
+ if (yych <= '_') goto yy210;
} else {
- if (yych <= 'z') goto yy209;
- if (yych >= 0x7F) goto yy209;
+ if (yych <= 'z') goto yy210;
+ if (yych >= 0x7F) goto yy210;
}
}
-yy211:
- YYDEBUG(211, *YYCURSOR);
+yy212:
+ YYDEBUG(212, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 3418 "Zend/zend_language_scanner.c"
-yy212:
- YYDEBUG(212, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy213;
- if (yych != 'r') goto yy186;
+#line 3431 "Zend/zend_language_scanner.c"
yy213:
YYDEBUG(213, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy214;
+ if (yych != 'r') goto yy187;
+yy214:
+ YYDEBUG(214, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(214, *YYCURSOR);
+ YYDEBUG(215, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
+#line 1436 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_XOR;
}
-#line 3436 "Zend/zend_language_scanner.c"
-yy215:
- YYDEBUG(215, *YYCURSOR);
+#line 3449 "Zend/zend_language_scanner.c"
+yy216:
+ YYDEBUG(216, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(216, *YYCURSOR);
+ YYDEBUG(217, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1418 "Zend/zend_language_scanner.l"
+#line 1428 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_OR;
}
-#line 3449 "Zend/zend_language_scanner.c"
-yy217:
- YYDEBUG(217, *YYCURSOR);
- ++YYCURSOR;
+#line 3462 "Zend/zend_language_scanner.c"
+yy218:
YYDEBUG(218, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1406 "Zend/zend_language_scanner.l"
+#line 1416 "Zend/zend_language_scanner.l"
{
return T_XOR_EQUAL;
}
-#line 3459 "Zend/zend_language_scanner.c"
-yy219:
- YYDEBUG(219, *YYCURSOR);
- ++YYCURSOR;
+#line 3472 "Zend/zend_language_scanner.c"
+yy220:
YYDEBUG(220, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(221, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1410 "Zend/zend_language_scanner.l"
+#line 1420 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_OR;
}
-#line 3469 "Zend/zend_language_scanner.c"
-yy221:
- YYDEBUG(221, *YYCURSOR);
- ++YYCURSOR;
+#line 3482 "Zend/zend_language_scanner.c"
+yy222:
YYDEBUG(222, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(223, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1402 "Zend/zend_language_scanner.l"
+#line 1412 "Zend/zend_language_scanner.l"
{
return T_OR_EQUAL;
}
-#line 3479 "Zend/zend_language_scanner.c"
-yy223:
- YYDEBUG(223, *YYCURSOR);
- ++YYCURSOR;
+#line 3492 "Zend/zend_language_scanner.c"
+yy224:
YYDEBUG(224, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(225, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1414 "Zend/zend_language_scanner.l"
+#line 1424 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_AND;
}
-#line 3489 "Zend/zend_language_scanner.c"
-yy225:
- YYDEBUG(225, *YYCURSOR);
- ++YYCURSOR;
+#line 3502 "Zend/zend_language_scanner.c"
+yy226:
YYDEBUG(226, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(227, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1398 "Zend/zend_language_scanner.l"
+#line 1408 "Zend/zend_language_scanner.l"
{
return T_AND_EQUAL;
}
-#line 3499 "Zend/zend_language_scanner.c"
-yy227:
- YYDEBUG(227, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy231;
- if (yych == '\r') goto yy232;
+#line 3512 "Zend/zend_language_scanner.c"
yy228:
YYDEBUG(228, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy232;
+ if (yych == '\r') goto yy233;
+yy229:
+ YYDEBUG(229, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1979 "Zend/zend_language_scanner.l"
+#line 1990 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
@@ -3517,61 +3530,61 @@ yy228:
return yytext[0];
}
}
-#line 3521 "Zend/zend_language_scanner.c"
-yy229:
- YYDEBUG(229, *YYCURSOR);
- ++YYCURSOR;
+#line 3534 "Zend/zend_language_scanner.c"
+yy230:
YYDEBUG(230, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(231, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1386 "Zend/zend_language_scanner.l"
+#line 1396 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 3531 "Zend/zend_language_scanner.c"
-yy231:
- YYDEBUG(231, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy228;
+#line 3544 "Zend/zend_language_scanner.c"
yy232:
YYDEBUG(232, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy231;
- goto yy228;
+ goto yy229;
yy233:
YYDEBUG(233, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy232;
+ goto yy229;
+yy234:
+ YYDEBUG(234, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(234, *YYCURSOR);
+ YYDEBUG(235, *YYCURSOR);
if (yych <= 'D') {
- if (yych <= '/') goto yy189;
- if (yych <= '9') goto yy233;
- goto yy189;
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy234;
+ goto yy190;
} else {
- if (yych <= 'E') goto yy192;
- if (yych == 'e') goto yy192;
- goto yy189;
+ if (yych <= 'E') goto yy193;
+ if (yych == 'e') goto yy193;
+ goto yy190;
}
-yy235:
- YYDEBUG(235, *YYCURSOR);
- ++YYCURSOR;
+yy236:
YYDEBUG(236, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(237, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1382 "Zend/zend_language_scanner.l"
+#line 1392 "Zend/zend_language_scanner.l"
{
return T_CONCAT_EQUAL;
}
-#line 3566 "Zend/zend_language_scanner.c"
-yy237:
- YYDEBUG(237, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '*') goto yy242;
+#line 3579 "Zend/zend_language_scanner.c"
yy238:
YYDEBUG(238, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '*') goto yy243;
+yy239:
+ YYDEBUG(239, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1936 "Zend/zend_language_scanner.l"
+#line 1947 "Zend/zend_language_scanner.l"
{
int doc_com;
@@ -3605,316 +3618,313 @@ yy238:
return T_COMMENT;
}
-#line 3609 "Zend/zend_language_scanner.c"
-yy239:
- YYDEBUG(239, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy176;
+#line 3622 "Zend/zend_language_scanner.c"
yy240:
YYDEBUG(240, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ goto yy177;
+yy241:
YYDEBUG(241, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(242, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1378 "Zend/zend_language_scanner.l"
+#line 1388 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 3623 "Zend/zend_language_scanner.c"
-yy242:
- YYDEBUG(242, *YYCURSOR);
+#line 3636 "Zend/zend_language_scanner.c"
+yy243:
+ YYDEBUG(243, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy243;
+ goto yy244;
}
- goto yy193;
-yy243:
- YYDEBUG(243, *YYCURSOR);
+ goto yy194;
+yy244:
+ YYDEBUG(244, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(244, *YYCURSOR);
+ YYDEBUG(245, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy243;
+ goto yy244;
}
- goto yy238;
-yy245:
- YYDEBUG(245, *YYCURSOR);
- ++YYCURSOR;
+ goto yy239;
+yy246:
YYDEBUG(246, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(247, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1374 "Zend/zend_language_scanner.l"
+#line 1384 "Zend/zend_language_scanner.l"
{
return T_MUL_EQUAL;
}
-#line 3650 "Zend/zend_language_scanner.c"
-yy247:
- YYDEBUG(247, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy251;
+#line 3663 "Zend/zend_language_scanner.c"
+yy248:
YYDEBUG(248, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy252;
+ YYDEBUG(249, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
+#line 1444 "Zend/zend_language_scanner.l"
{
return T_SR;
}
-#line 3661 "Zend/zend_language_scanner.c"
-yy249:
- YYDEBUG(249, *YYCURSOR);
- ++YYCURSOR;
+#line 3674 "Zend/zend_language_scanner.c"
+yy250:
YYDEBUG(250, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(251, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1362 "Zend/zend_language_scanner.l"
+#line 1372 "Zend/zend_language_scanner.l"
{
return T_IS_GREATER_OR_EQUAL;
}
-#line 3671 "Zend/zend_language_scanner.c"
-yy251:
- YYDEBUG(251, *YYCURSOR);
- ++YYCURSOR;
+#line 3684 "Zend/zend_language_scanner.c"
+yy252:
YYDEBUG(252, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(253, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1394 "Zend/zend_language_scanner.l"
+#line 1404 "Zend/zend_language_scanner.l"
{
return T_SR_EQUAL;
}
-#line 3681 "Zend/zend_language_scanner.c"
-yy253:
- YYDEBUG(253, *YYCURSOR);
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ';') goto yy254;
- if (yych <= '<') goto yy269;
- if (yych <= '=') goto yy267;
+#line 3694 "Zend/zend_language_scanner.c"
yy254:
YYDEBUG(254, *YYCURSOR);
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ';') goto yy255;
+ if (yych <= '<') goto yy270;
+ if (yych <= '=') goto yy268;
+yy255:
+ YYDEBUG(255, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1440 "Zend/zend_language_scanner.l"
{
return T_SL;
}
-#line 3696 "Zend/zend_language_scanner.c"
-yy255:
- YYDEBUG(255, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy260;
- if (yych == 's') goto yy260;
- goto yy193;
+#line 3709 "Zend/zend_language_scanner.c"
yy256:
YYDEBUG(256, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy261;
+ if (yych == 's') goto yy261;
+ goto yy194;
+yy257:
YYDEBUG(257, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(258, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1358 "Zend/zend_language_scanner.l"
+#line 1368 "Zend/zend_language_scanner.l"
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3712 "Zend/zend_language_scanner.c"
-yy258:
- YYDEBUG(258, *YYCURSOR);
- ++YYCURSOR;
+#line 3725 "Zend/zend_language_scanner.c"
yy259:
YYDEBUG(259, *YYCURSOR);
+ ++YYCURSOR;
+yy260:
+ YYDEBUG(260, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1354 "Zend/zend_language_scanner.l"
+#line 1364 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_EQUAL;
}
-#line 3723 "Zend/zend_language_scanner.c"
-yy260:
- YYDEBUG(260, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy261;
- if (yych != 'c') goto yy193;
+#line 3736 "Zend/zend_language_scanner.c"
yy261:
YYDEBUG(261, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy262;
- if (yych != 'r') goto yy193;
+ if (yych == 'C') goto yy262;
+ if (yych != 'c') goto yy194;
yy262:
YYDEBUG(262, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy263;
- if (yych != 'i') goto yy193;
+ if (yych == 'R') goto yy263;
+ if (yych != 'r') goto yy194;
yy263:
YYDEBUG(263, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy264;
- if (yych != 'p') goto yy193;
+ if (yych == 'I') goto yy264;
+ if (yych != 'i') goto yy194;
yy264:
YYDEBUG(264, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy265;
- if (yych != 't') goto yy193;
+ if (yych == 'P') goto yy265;
+ if (yych != 'p') goto yy194;
yy265:
YYDEBUG(265, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy266;
+ if (yych != 't') goto yy194;
+yy266:
+ YYDEBUG(266, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(266, *YYCURSOR);
+ YYDEBUG(267, *YYCURSOR);
if (yych <= '\r') {
- if (yych <= 0x08) goto yy193;
- if (yych <= '\n') goto yy265;
- if (yych <= '\f') goto yy193;
- goto yy265;
+ if (yych <= 0x08) goto yy194;
+ if (yych <= '\n') goto yy266;
+ if (yych <= '\f') goto yy194;
+ goto yy266;
} else {
if (yych <= ' ') {
- if (yych <= 0x1F) goto yy193;
- goto yy265;
+ if (yych <= 0x1F) goto yy194;
+ goto yy266;
} else {
- if (yych == '>') goto yy205;
- goto yy193;
+ if (yych == '>') goto yy206;
+ goto yy194;
}
}
-yy267:
- YYDEBUG(267, *YYCURSOR);
- ++YYCURSOR;
+yy268:
YYDEBUG(268, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(269, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1390 "Zend/zend_language_scanner.l"
+#line 1400 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 3778 "Zend/zend_language_scanner.c"
-yy269:
- YYDEBUG(269, *YYCURSOR);
+#line 3791 "Zend/zend_language_scanner.c"
+yy270:
+ YYDEBUG(270, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(270, *YYCURSOR);
+ YYDEBUG(271, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy269;
+ goto yy270;
}
if (yych <= 'Z') {
if (yych <= '&') {
- if (yych == '"') goto yy274;
- goto yy193;
+ if (yych == '"') goto yy275;
+ goto yy194;
} else {
- if (yych <= '\'') goto yy273;
- if (yych <= '@') goto yy193;
+ if (yych <= '\'') goto yy274;
+ if (yych <= '@') goto yy194;
}
} else {
if (yych <= '`') {
- if (yych != '_') goto yy193;
+ if (yych != '_') goto yy194;
} else {
- if (yych <= 'z') goto yy271;
- if (yych <= '~') goto yy193;
+ if (yych <= 'z') goto yy272;
+ if (yych <= '~') goto yy194;
}
}
-yy271:
- YYDEBUG(271, *YYCURSOR);
+yy272:
+ YYDEBUG(272, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(272, *YYCURSOR);
+ YYDEBUG(273, *YYCURSOR);
if (yych <= '@') {
if (yych <= '\f') {
- if (yych == '\n') goto yy278;
- goto yy193;
+ if (yych == '\n') goto yy279;
+ goto yy194;
} else {
- if (yych <= '\r') goto yy280;
- if (yych <= '/') goto yy193;
- if (yych <= '9') goto yy271;
- goto yy193;
+ if (yych <= '\r') goto yy281;
+ if (yych <= '/') goto yy194;
+ if (yych <= '9') goto yy272;
+ goto yy194;
}
} else {
if (yych <= '_') {
- if (yych <= 'Z') goto yy271;
- if (yych <= '^') goto yy193;
- goto yy271;
+ if (yych <= 'Z') goto yy272;
+ if (yych <= '^') goto yy194;
+ goto yy272;
} else {
- if (yych <= '`') goto yy193;
- if (yych <= 'z') goto yy271;
- if (yych <= '~') goto yy193;
- goto yy271;
+ if (yych <= '`') goto yy194;
+ if (yych <= 'z') goto yy272;
+ if (yych <= '~') goto yy194;
+ goto yy272;
}
}
-yy273:
- YYDEBUG(273, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\'') goto yy193;
- if (yych <= '/') goto yy282;
- if (yych <= '9') goto yy193;
- goto yy282;
yy274:
YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '"') goto yy193;
- if (yych <= '/') goto yy276;
- if (yych <= '9') goto yy193;
- goto yy276;
+ if (yych == '\'') goto yy194;
+ if (yych <= '/') goto yy283;
+ if (yych <= '9') goto yy194;
+ goto yy283;
yy275:
YYDEBUG(275, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '"') goto yy194;
+ if (yych <= '/') goto yy277;
+ if (yych <= '9') goto yy194;
+ goto yy277;
+yy276:
+ YYDEBUG(276, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy276:
- YYDEBUG(276, *YYCURSOR);
+yy277:
+ YYDEBUG(277, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
- if (yych != '"') goto yy193;
+ if (yych != '"') goto yy194;
} else {
- if (yych <= '9') goto yy275;
- if (yych <= '@') goto yy193;
- goto yy275;
+ if (yych <= '9') goto yy276;
+ if (yych <= '@') goto yy194;
+ goto yy276;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy275;
- goto yy193;
+ if (yych == '_') goto yy276;
+ goto yy194;
} else {
- if (yych <= 'z') goto yy275;
- if (yych <= '~') goto yy193;
- goto yy275;
+ if (yych <= 'z') goto yy276;
+ if (yych <= '~') goto yy194;
+ goto yy276;
}
}
-yy277:
- YYDEBUG(277, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy278;
- if (yych == '\r') goto yy280;
- goto yy193;
yy278:
YYDEBUG(278, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy279;
+ if (yych == '\r') goto yy281;
+ goto yy194;
yy279:
YYDEBUG(279, *YYCURSOR);
+ ++YYCURSOR;
+yy280:
+ YYDEBUG(280, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2115 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
-
- /* save old heredoc label */
- Z_STRVAL_P(zendlval) = CG(heredoc);
- Z_STRLEN_P(zendlval) = CG(heredoc_len);
+ zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
CG(zend_lineno)++;
- CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+ heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
s = yytext+bprefix+3;
while ((*s == ' ') || (*s == '\t')) {
s++;
- CG(heredoc_len)--;
+ heredoc_label->length--;
}
if (*s == '\'') {
s++;
- CG(heredoc_len) -= 2;
+ heredoc_label->length -= 2;
BEGIN(ST_NOWDOC);
} else {
if (*s == '"') {
s++;
- CG(heredoc_len) -= 2;
+ heredoc_label->length -= 2;
}
BEGIN(ST_HEREDOC);
}
- CG(heredoc) = estrndup(s, CG(heredoc_len));
+ heredoc_label->label = estrndup(s, heredoc_label->length);
/* Check for ending label on the next line */
- if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
@@ -3925,257 +3935,259 @@ yy279:
}
}
+ zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
+
return T_START_HEREDOC;
}
-#line 3931 "Zend/zend_language_scanner.c"
-yy280:
- YYDEBUG(280, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy278;
- goto yy279;
+#line 3943 "Zend/zend_language_scanner.c"
yy281:
YYDEBUG(281, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy279;
+ goto yy280;
+yy282:
+ YYDEBUG(282, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy282:
- YYDEBUG(282, *YYCURSOR);
+yy283:
+ YYDEBUG(283, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
- if (yych == '\'') goto yy277;
- goto yy193;
+ if (yych == '\'') goto yy278;
+ goto yy194;
} else {
- if (yych <= '9') goto yy281;
- if (yych <= '@') goto yy193;
- goto yy281;
+ if (yych <= '9') goto yy282;
+ if (yych <= '@') goto yy194;
+ goto yy282;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy281;
- goto yy193;
+ if (yych == '_') goto yy282;
+ goto yy194;
} else {
- if (yych <= 'z') goto yy281;
- if (yych <= '~') goto yy193;
- goto yy281;
+ if (yych <= 'z') goto yy282;
+ if (yych <= '~') goto yy194;
+ goto yy282;
}
}
-yy283:
- YYDEBUG(283, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '=') goto yy259;
+yy284:
YYDEBUG(284, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych != '=') goto yy260;
YYDEBUG(285, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(286, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1346 "Zend/zend_language_scanner.l"
+#line 1356 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_IDENTICAL;
}
-#line 3975 "Zend/zend_language_scanner.c"
-yy286:
- YYDEBUG(286, *YYCURSOR);
- ++YYCURSOR;
+#line 3987 "Zend/zend_language_scanner.c"
+yy287:
YYDEBUG(287, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(288, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1366 "Zend/zend_language_scanner.l"
+#line 1376 "Zend/zend_language_scanner.l"
{
return T_PLUS_EQUAL;
}
-#line 3985 "Zend/zend_language_scanner.c"
-yy288:
- YYDEBUG(288, *YYCURSOR);
- ++YYCURSOR;
+#line 3997 "Zend/zend_language_scanner.c"
+yy289:
YYDEBUG(289, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(290, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1334 "Zend/zend_language_scanner.l"
+#line 1344 "Zend/zend_language_scanner.l"
{
return T_INC;
}
-#line 3995 "Zend/zend_language_scanner.c"
-yy290:
- YYDEBUG(290, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy291;
- if (yych != 's') goto yy186;
+#line 4007 "Zend/zend_language_scanner.c"
yy291:
YYDEBUG(291, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy292;
- if (yych != 't') goto yy186;
+ if (yych == 'S') goto yy292;
+ if (yych != 's') goto yy187;
yy292:
YYDEBUG(292, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy293;
+ if (yych != 't') goto yy187;
+yy293:
+ YYDEBUG(293, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(293, *YYCURSOR);
+ YYDEBUG(294, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1322 "Zend/zend_language_scanner.l"
+#line 1332 "Zend/zend_language_scanner.l"
{
return T_LIST;
}
-#line 4018 "Zend/zend_language_scanner.c"
-yy294:
- YYDEBUG(294, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy298;
+#line 4030 "Zend/zend_language_scanner.c"
+yy295:
YYDEBUG(295, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy299;
+ YYDEBUG(296, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1350 "Zend/zend_language_scanner.l"
+#line 1360 "Zend/zend_language_scanner.l"
{
return T_IS_EQUAL;
}
-#line 4029 "Zend/zend_language_scanner.c"
-yy296:
- YYDEBUG(296, *YYCURSOR);
- ++YYCURSOR;
+#line 4041 "Zend/zend_language_scanner.c"
+yy297:
YYDEBUG(297, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(298, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1318 "Zend/zend_language_scanner.l"
+#line 1328 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_ARROW;
}
-#line 4039 "Zend/zend_language_scanner.c"
-yy298:
- YYDEBUG(298, *YYCURSOR);
- ++YYCURSOR;
+#line 4051 "Zend/zend_language_scanner.c"
+yy299:
YYDEBUG(299, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(300, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1342 "Zend/zend_language_scanner.l"
+#line 1352 "Zend/zend_language_scanner.l"
{
return T_IS_IDENTICAL;
}
-#line 4049 "Zend/zend_language_scanner.c"
-yy300:
- YYDEBUG(300, *YYCURSOR);
+#line 4061 "Zend/zend_language_scanner.c"
+yy301:
+ YYDEBUG(301, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'C':
- case 'c': goto yy302;
+ case 'c': goto yy303;
case 'D':
- case 'd': goto yy307;
+ case 'd': goto yy308;
case 'F':
- case 'f': goto yy304;
+ case 'f': goto yy305;
case 'H':
- case 'h': goto yy301;
+ case 'h': goto yy302;
case 'L':
- case 'l': goto yy306;
+ case 'l': goto yy307;
case 'M':
- case 'm': goto yy305;
+ case 'm': goto yy306;
case 'N':
- case 'n': goto yy308;
+ case 'n': goto yy309;
case 'T':
- case 't': goto yy303;
- default: goto yy186;
+ case 't': goto yy304;
+ default: goto yy187;
}
-yy301:
- YYDEBUG(301, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy369;
- if (yych == 'a') goto yy369;
- goto yy186;
yy302:
YYDEBUG(302, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy362;
- if (yych == 'l') goto yy362;
- goto yy186;
+ if (yych == 'A') goto yy370;
+ if (yych == 'a') goto yy370;
+ goto yy187;
yy303:
YYDEBUG(303, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy355;
- if (yych == 'r') goto yy355;
- goto yy186;
+ if (yych == 'L') goto yy363;
+ if (yych == 'l') goto yy363;
+ goto yy187;
yy304:
YYDEBUG(304, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'R') goto yy356;
+ if (yych == 'r') goto yy356;
+ goto yy187;
+yy305:
+ YYDEBUG(305, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'I') goto yy339;
- if (yych <= 'T') goto yy186;
- goto yy340;
+ if (yych == 'I') goto yy340;
+ if (yych <= 'T') goto yy187;
+ goto yy341;
} else {
if (yych <= 'i') {
- if (yych <= 'h') goto yy186;
- goto yy339;
+ if (yych <= 'h') goto yy187;
+ goto yy340;
} else {
- if (yych == 'u') goto yy340;
- goto yy186;
+ if (yych == 'u') goto yy341;
+ goto yy187;
}
}
-yy305:
- YYDEBUG(305, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy331;
- if (yych == 'e') goto yy331;
- goto yy186;
yy306:
YYDEBUG(306, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy325;
- if (yych == 'i') goto yy325;
- goto yy186;
+ if (yych == 'E') goto yy332;
+ if (yych == 'e') goto yy332;
+ goto yy187;
yy307:
YYDEBUG(307, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy320;
- if (yych == 'i') goto yy320;
- goto yy186;
+ if (yych == 'I') goto yy326;
+ if (yych == 'i') goto yy326;
+ goto yy187;
yy308:
YYDEBUG(308, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy309;
- if (yych != 'a') goto yy186;
+ if (yych == 'I') goto yy321;
+ if (yych == 'i') goto yy321;
+ goto yy187;
yy309:
YYDEBUG(309, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy310;
- if (yych != 'm') goto yy186;
+ if (yych == 'A') goto yy310;
+ if (yych != 'a') goto yy187;
yy310:
YYDEBUG(310, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy311;
- if (yych != 'e') goto yy186;
+ if (yych == 'M') goto yy311;
+ if (yych != 'm') goto yy187;
yy311:
YYDEBUG(311, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy312;
- if (yych != 's') goto yy186;
+ if (yych == 'E') goto yy312;
+ if (yych != 'e') goto yy187;
yy312:
YYDEBUG(312, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy313;
- if (yych != 'p') goto yy186;
+ if (yych == 'S') goto yy313;
+ if (yych != 's') goto yy187;
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy314;
- if (yych != 'a') goto yy186;
+ if (yych == 'P') goto yy314;
+ if (yych != 'p') goto yy187;
yy314:
YYDEBUG(314, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy315;
- if (yych != 'c') goto yy186;
+ if (yych == 'A') goto yy315;
+ if (yych != 'a') goto yy187;
yy315:
YYDEBUG(315, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy316;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy316;
+ if (yych != 'c') goto yy187;
yy316:
YYDEBUG(316, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'E') goto yy317;
+ if (yych != 'e') goto yy187;
+yy317:
YYDEBUG(317, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(318, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(319, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(319, *YYCURSOR);
+ YYDEBUG(320, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1705 "Zend/zend_language_scanner.l"
+#line 1716 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
@@ -4185,27 +4197,27 @@ yy316:
}
return T_NS_C;
}
-#line 4189 "Zend/zend_language_scanner.c"
-yy320:
- YYDEBUG(320, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy321;
- if (yych != 'r') goto yy186;
+#line 4201 "Zend/zend_language_scanner.c"
yy321:
YYDEBUG(321, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'R') goto yy322;
+ if (yych != 'r') goto yy187;
+yy322:
YYDEBUG(322, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(323, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(324, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(324, *YYCURSOR);
+ YYDEBUG(325, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1678 "Zend/zend_language_scanner.l"
+#line 1689 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
@@ -4232,73 +4244,73 @@ yy321:
zendlval->type = IS_STRING;
return T_DIR;
}
-#line 4236 "Zend/zend_language_scanner.c"
-yy325:
- YYDEBUG(325, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy326;
- if (yych != 'n') goto yy186;
+#line 4248 "Zend/zend_language_scanner.c"
yy326:
YYDEBUG(326, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy327;
- if (yych != 'e') goto yy186;
+ if (yych == 'N') goto yy327;
+ if (yych != 'n') goto yy187;
yy327:
YYDEBUG(327, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'E') goto yy328;
+ if (yych != 'e') goto yy187;
+yy328:
YYDEBUG(328, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(329, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(330, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(330, *YYCURSOR);
+ YYDEBUG(331, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1660 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;
return T_LINE;
}
-#line 4267 "Zend/zend_language_scanner.c"
-yy331:
- YYDEBUG(331, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy332;
- if (yych != 't') goto yy186;
+#line 4279 "Zend/zend_language_scanner.c"
yy332:
YYDEBUG(332, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy333;
- if (yych != 'h') goto yy186;
+ if (yych == 'T') goto yy333;
+ if (yych != 't') goto yy187;
yy333:
YYDEBUG(333, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy334;
- if (yych != 'o') goto yy186;
+ if (yych == 'H') goto yy334;
+ if (yych != 'h') goto yy187;
yy334:
YYDEBUG(334, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy335;
- if (yych != 'd') goto yy186;
+ if (yych == 'O') goto yy335;
+ if (yych != 'o') goto yy187;
yy335:
YYDEBUG(335, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'D') goto yy336;
+ if (yych != 'd') goto yy187;
+yy336:
YYDEBUG(336, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(337, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(338, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(338, *YYCURSOR);
+ YYDEBUG(339, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1639 "Zend/zend_language_scanner.l"
+#line 1650 "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;
@@ -4319,58 +4331,58 @@ yy335:
zendlval->type = IS_STRING;
return T_METHOD_C;
}
-#line 4323 "Zend/zend_language_scanner.c"
-yy339:
- YYDEBUG(339, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy350;
- if (yych == 'l') goto yy350;
- goto yy186;
+#line 4335 "Zend/zend_language_scanner.c"
yy340:
YYDEBUG(340, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy341;
- if (yych != 'n') goto yy186;
+ if (yych == 'L') goto yy351;
+ if (yych == 'l') goto yy351;
+ goto yy187;
yy341:
YYDEBUG(341, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy342;
- if (yych != 'c') goto yy186;
+ if (yych == 'N') goto yy342;
+ if (yych != 'n') goto yy187;
yy342:
YYDEBUG(342, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy343;
- if (yych != 't') goto yy186;
+ if (yych == 'C') goto yy343;
+ if (yych != 'c') goto yy187;
yy343:
YYDEBUG(343, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy344;
- if (yych != 'i') goto yy186;
+ if (yych == 'T') goto yy344;
+ if (yych != 't') goto yy187;
yy344:
YYDEBUG(344, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy345;
- if (yych != 'o') goto yy186;
+ if (yych == 'I') goto yy345;
+ if (yych != 'i') goto yy187;
yy345:
YYDEBUG(345, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy346;
- if (yych != 'n') goto yy186;
+ if (yych == 'O') goto yy346;
+ if (yych != 'o') goto yy187;
yy346:
YYDEBUG(346, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'N') goto yy347;
+ if (yych != 'n') goto yy187;
+yy347:
YYDEBUG(347, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(348, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(349, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(349, *YYCURSOR);
+ YYDEBUG(350, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1623 "Zend/zend_language_scanner.l"
+#line 1634 "Zend/zend_language_scanner.l"
{
const char *func_name = NULL;
@@ -4386,27 +4398,27 @@ yy346:
zendlval->type = IS_STRING;
return T_FUNC_C;
}
-#line 4390 "Zend/zend_language_scanner.c"
-yy350:
- YYDEBUG(350, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy351;
- if (yych != 'e') goto yy186;
+#line 4402 "Zend/zend_language_scanner.c"
yy351:
YYDEBUG(351, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'E') goto yy352;
+ if (yych != 'e') goto yy187;
+yy352:
YYDEBUG(352, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(353, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(354, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(354, *YYCURSOR);
+ YYDEBUG(355, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1666 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -4418,37 +4430,37 @@ yy351:
zendlval->type = IS_STRING;
return T_FILE;
}
-#line 4422 "Zend/zend_language_scanner.c"
-yy355:
- YYDEBUG(355, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy356;
- if (yych != 'a') goto yy186;
+#line 4434 "Zend/zend_language_scanner.c"
yy356:
YYDEBUG(356, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy357;
- if (yych != 'i') goto yy186;
+ if (yych == 'A') goto yy357;
+ if (yych != 'a') goto yy187;
yy357:
YYDEBUG(357, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy358;
- if (yych != 't') goto yy186;
+ if (yych == 'I') goto yy358;
+ if (yych != 'i') goto yy187;
yy358:
YYDEBUG(358, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'T') goto yy359;
+ if (yych != 't') goto yy187;
+yy359:
YYDEBUG(359, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(360, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(361, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(361, *YYCURSOR);
+ YYDEBUG(362, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1603 "Zend/zend_language_scanner.l"
+#line 1614 "Zend/zend_language_scanner.l"
{
const char *trait_name = NULL;
@@ -4468,37 +4480,37 @@ yy358:
return T_TRAIT_C;
}
-#line 4472 "Zend/zend_language_scanner.c"
-yy362:
- YYDEBUG(362, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy363;
- if (yych != 'a') goto yy186;
+#line 4484 "Zend/zend_language_scanner.c"
yy363:
YYDEBUG(363, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy364;
- if (yych != 's') goto yy186;
+ if (yych == 'A') goto yy364;
+ if (yych != 'a') goto yy187;
yy364:
YYDEBUG(364, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == 'S') goto yy365;
- if (yych != 's') goto yy186;
+ if (yych != 's') goto yy187;
yy365:
YYDEBUG(365, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'S') goto yy366;
+ if (yych != 's') goto yy187;
+yy366:
YYDEBUG(366, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych != '_') goto yy187;
YYDEBUG(367, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(368, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(368, *YYCURSOR);
+ YYDEBUG(369, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1576 "Zend/zend_language_scanner.l"
+#line 1587 "Zend/zend_language_scanner.l"
{
const char *class_name = NULL;
@@ -4525,2648 +4537,2709 @@ yy365:
}
return T_CLASS_C;
}
-#line 4529 "Zend/zend_language_scanner.c"
-yy369:
- YYDEBUG(369, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy370;
- if (yych != 'l') goto yy186;
+#line 4541 "Zend/zend_language_scanner.c"
yy370:
YYDEBUG(370, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy371;
- if (yych != 't') goto yy186;
+ if (yych == 'L') goto yy371;
+ if (yych != 'l') goto yy187;
yy371:
YYDEBUG(371, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy186;
+ if (yych == 'T') goto yy372;
+ if (yych != 't') goto yy187;
+yy372:
YYDEBUG(372, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy373;
- if (yych != 'c') goto yy186;
-yy373:
+ if (yych != '_') goto yy187;
YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy374;
- if (yych != 'o') goto yy186;
+ if (yych == 'C') goto yy374;
+ if (yych != 'c') goto yy187;
yy374:
YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy375;
- if (yych != 'm') goto yy186;
+ if (yych == 'O') goto yy375;
+ if (yych != 'o') goto yy187;
yy375:
YYDEBUG(375, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy376;
- if (yych != 'p') goto yy186;
+ if (yych == 'M') goto yy376;
+ if (yych != 'm') goto yy187;
yy376:
YYDEBUG(376, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy377;
- if (yych != 'i') goto yy186;
+ if (yych == 'P') goto yy377;
+ if (yych != 'p') goto yy187;
yy377:
YYDEBUG(377, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy378;
- if (yych != 'l') goto yy186;
+ if (yych == 'I') goto yy378;
+ if (yych != 'i') goto yy187;
yy378:
YYDEBUG(378, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy379;
- if (yych != 'e') goto yy186;
+ if (yych == 'L') goto yy379;
+ if (yych != 'l') goto yy187;
yy379:
YYDEBUG(379, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy380;
- if (yych != 'r') goto yy186;
+ if (yych == 'E') goto yy380;
+ if (yych != 'e') goto yy187;
yy380:
YYDEBUG(380, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy381;
+ if (yych != 'r') goto yy187;
+yy381:
+ YYDEBUG(381, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(381, *YYCURSOR);
+ YYDEBUG(382, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
+#line 1296 "Zend/zend_language_scanner.l"
{
return T_HALT_COMPILER;
}
-#line 4595 "Zend/zend_language_scanner.c"
-yy382:
- YYDEBUG(382, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy386;
- if (yych == 's') goto yy386;
- goto yy186;
+#line 4607 "Zend/zend_language_scanner.c"
yy383:
YYDEBUG(383, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy384;
- if (yych != 'e') goto yy186;
+ if (yych == 'S') goto yy387;
+ if (yych == 's') goto yy387;
+ goto yy187;
yy384:
YYDEBUG(384, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy385;
+ if (yych != 'e') goto yy187;
+yy385:
+ YYDEBUG(385, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(385, *YYCURSOR);
+ YYDEBUG(386, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
+#line 1276 "Zend/zend_language_scanner.l"
{
return T_USE;
}
-#line 4619 "Zend/zend_language_scanner.c"
-yy386:
- YYDEBUG(386, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy387;
- if (yych != 'e') goto yy186;
+#line 4631 "Zend/zend_language_scanner.c"
yy387:
YYDEBUG(387, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy388;
- if (yych != 't') goto yy186;
+ 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 yy185;
+ goto yy186;
}
- YYDEBUG(389, *YYCURSOR);
+ YYDEBUG(390, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1314 "Zend/zend_language_scanner.l"
+#line 1324 "Zend/zend_language_scanner.l"
{
return T_UNSET;
}
-#line 4642 "Zend/zend_language_scanner.c"
-yy390:
- YYDEBUG(390, *YYCURSOR);
+#line 4654 "Zend/zend_language_scanner.c"
+yy391:
+ YYDEBUG(391, *YYCURSOR);
++YYCURSOR;
YYFILL(7);
yych = *YYCURSOR;
-yy391:
- YYDEBUG(391, *YYCURSOR);
+yy392:
+ YYDEBUG(392, *YYCURSOR);
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy390;
- if (yych <= 0x1F) goto yy193;
- goto yy390;
+ if (yych == '\t') goto yy391;
+ if (yych <= 0x1F) goto yy194;
+ goto yy391;
} else {
if (yych <= 'A') {
- if (yych <= '@') goto yy193;
- goto yy395;
+ if (yych <= '@') goto yy194;
+ goto yy396;
} else {
- if (yych <= 'B') goto yy393;
- if (yych <= 'C') goto yy193;
- goto yy398;
+ if (yych <= 'B') goto yy394;
+ if (yych <= 'C') goto yy194;
+ goto yy399;
}
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy399;
- if (yych <= 'H') goto yy193;
- goto yy400;
+ if (yych == 'F') goto yy400;
+ if (yych <= 'H') goto yy194;
+ goto yy401;
} else {
if (yych <= 'O') {
- if (yych <= 'N') goto yy193;
- goto yy394;
+ if (yych <= 'N') goto yy194;
+ goto yy395;
} else {
- if (yych <= 'Q') goto yy193;
- if (yych <= 'R') goto yy397;
- goto yy396;
+ if (yych <= 'Q') goto yy194;
+ if (yych <= 'R') goto yy398;
+ goto yy397;
}
}
}
} else {
if (yych <= 'f') {
if (yych <= 'a') {
- if (yych == 'U') goto yy392;
- if (yych <= '`') goto yy193;
- goto yy395;
+ if (yych == 'U') goto yy393;
+ if (yych <= '`') goto yy194;
+ goto yy396;
} else {
if (yych <= 'c') {
- if (yych <= 'b') goto yy393;
- goto yy193;
+ if (yych <= 'b') goto yy394;
+ goto yy194;
} else {
- if (yych <= 'd') goto yy398;
- if (yych <= 'e') goto yy193;
- goto yy399;
+ if (yych <= 'd') goto yy399;
+ if (yych <= 'e') goto yy194;
+ goto yy400;
}
}
} else {
if (yych <= 'q') {
if (yych <= 'i') {
- if (yych <= 'h') goto yy193;
- goto yy400;
+ if (yych <= 'h') goto yy194;
+ goto yy401;
} else {
- if (yych == 'o') goto yy394;
- goto yy193;
+ if (yych == 'o') goto yy395;
+ goto yy194;
}
} else {
if (yych <= 's') {
- if (yych <= 'r') goto yy397;
- goto yy396;
+ if (yych <= 'r') goto yy398;
+ goto yy397;
} else {
- if (yych != 'u') goto yy193;
+ if (yych != 'u') goto yy194;
}
}
}
}
-yy392:
- YYDEBUG(392, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy459;
- if (yych == 'n') goto yy459;
- goto yy193;
yy393:
YYDEBUG(393, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'N') goto yy460;
+ if (yych == 'n') goto yy460;
+ goto yy194;
+yy394:
+ YYDEBUG(394, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy446;
- if (yych <= 'N') goto yy193;
- goto yy447;
+ if (yych == 'I') goto yy447;
+ if (yych <= 'N') goto yy194;
+ goto yy448;
} else {
if (yych <= 'i') {
- if (yych <= 'h') goto yy193;
- goto yy446;
+ if (yych <= 'h') goto yy194;
+ goto yy447;
} else {
- if (yych == 'o') goto yy447;
- goto yy193;
+ if (yych == 'o') goto yy448;
+ goto yy194;
}
}
-yy394:
- YYDEBUG(394, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy438;
- if (yych == 'b') goto yy438;
- goto yy193;
yy395:
YYDEBUG(395, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy431;
- if (yych == 'r') goto yy431;
- goto yy193;
+ if (yych == 'B') goto yy439;
+ if (yych == 'b') goto yy439;
+ goto yy194;
yy396:
YYDEBUG(396, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy423;
- if (yych == 't') goto yy423;
- goto yy193;
+ if (yych == 'R') goto yy432;
+ if (yych == 'r') goto yy432;
+ goto yy194;
yy397:
YYDEBUG(397, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy421;
- if (yych == 'e') goto yy421;
- goto yy193;
+ if (yych == 'T') goto yy424;
+ if (yych == 't') goto yy424;
+ goto yy194;
yy398:
YYDEBUG(398, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy417;
- if (yych == 'o') goto yy417;
- goto yy193;
+ if (yych == 'E') goto yy422;
+ if (yych == 'e') goto yy422;
+ goto yy194;
yy399:
YYDEBUG(399, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy410;
- if (yych == 'l') goto yy410;
- goto yy193;
+ if (yych == 'O') goto yy418;
+ if (yych == 'o') goto yy418;
+ goto yy194;
yy400:
YYDEBUG(400, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy401;
- if (yych != 'n') goto yy193;
+ if (yych == 'L') goto yy411;
+ if (yych == 'l') goto yy411;
+ goto yy194;
yy401:
YYDEBUG(401, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy402;
- if (yych != 't') goto yy193;
+ if (yych == 'N') goto yy402;
+ if (yych != 'n') goto yy194;
yy402:
YYDEBUG(402, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy403;
- if (yych != 'e') goto yy405;
+ if (yych == 'T') goto yy403;
+ if (yych != 't') goto yy194;
yy403:
YYDEBUG(403, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy408;
- if (yych == 'g') goto yy408;
- goto yy193;
+ 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;
-yy405:
- YYDEBUG(405, *YYCURSOR);
+yy406:
+ YYDEBUG(406, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy404;
- goto yy193;
+ if (yych == '\t') goto yy405;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy404;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy405;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(406, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(407, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(408, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1224 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 4818 "Zend/zend_language_scanner.c"
-yy408:
- YYDEBUG(408, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy409;
- if (yych != 'e') goto yy193;
+#line 4830 "Zend/zend_language_scanner.c"
yy409:
YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy404;
- if (yych == 'r') goto yy404;
- goto yy193;
+ if (yych == 'E') goto yy410;
+ if (yych != 'e') goto yy194;
yy410:
YYDEBUG(410, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy411;
- if (yych != 'o') goto yy193;
+ if (yych == 'R') goto yy405;
+ if (yych == 'r') goto yy405;
+ goto yy194;
yy411:
YYDEBUG(411, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy412;
- if (yych != 'a') goto yy193;
+ if (yych == 'O') goto yy412;
+ if (yych != 'o') goto yy194;
yy412:
YYDEBUG(412, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy413;
- if (yych != 't') goto yy193;
+ if (yych == 'A') goto yy413;
+ if (yych != 'a') goto yy194;
yy413:
YYDEBUG(413, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy414;
+ if (yych != 't') goto yy194;
+yy414:
+ YYDEBUG(414, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(414, *YYCURSOR);
+ YYDEBUG(415, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy413;
- goto yy193;
+ if (yych == '\t') goto yy414;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy413;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy414;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(415, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(416, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(417, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1228 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 4866 "Zend/zend_language_scanner.c"
-yy417:
- YYDEBUG(417, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy418;
- if (yych != 'u') goto yy193;
+#line 4878 "Zend/zend_language_scanner.c"
yy418:
YYDEBUG(418, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy419;
- if (yych != 'b') goto yy193;
+ if (yych == 'U') goto yy419;
+ if (yych != 'u') goto yy194;
yy419:
YYDEBUG(419, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy420;
- if (yych != 'l') goto yy193;
+ if (yych == 'B') goto yy420;
+ if (yych != 'b') goto yy194;
yy420:
YYDEBUG(420, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy413;
- if (yych == 'e') goto yy413;
- goto yy193;
+ if (yych == 'L') goto yy421;
+ if (yych != 'l') goto yy194;
yy421:
YYDEBUG(421, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy422;
- if (yych != 'a') goto yy193;
+ if (yych == 'E') goto yy414;
+ if (yych == 'e') goto yy414;
+ goto yy194;
yy422:
YYDEBUG(422, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy413;
- if (yych == 'l') goto yy413;
- goto yy193;
+ if (yych == 'A') goto yy423;
+ if (yych != 'a') goto yy194;
yy423:
YYDEBUG(423, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy424;
- if (yych != 'r') goto yy193;
+ if (yych == 'L') goto yy414;
+ if (yych == 'l') goto yy414;
+ goto yy194;
yy424:
YYDEBUG(424, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy425;
- if (yych != 'i') goto yy193;
+ if (yych == 'R') goto yy425;
+ if (yych != 'r') goto yy194;
yy425:
YYDEBUG(425, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy426;
- if (yych != 'n') goto yy193;
+ if (yych == 'I') goto yy426;
+ if (yych != 'i') goto yy194;
yy426:
YYDEBUG(426, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy427;
- if (yych != 'g') goto yy193;
+ if (yych == 'N') goto yy427;
+ if (yych != 'n') goto yy194;
yy427:
YYDEBUG(427, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'G') goto yy428;
+ if (yych != 'g') goto yy194;
+yy428:
+ YYDEBUG(428, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(428, *YYCURSOR);
+ YYDEBUG(429, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy427;
- goto yy193;
+ if (yych == '\t') goto yy428;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy427;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy428;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(429, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(430, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(431, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1232 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 4940 "Zend/zend_language_scanner.c"
-yy431:
- YYDEBUG(431, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy432;
- if (yych != 'r') goto yy193;
+#line 4952 "Zend/zend_language_scanner.c"
yy432:
YYDEBUG(432, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy433;
- if (yych != 'a') goto yy193;
+ if (yych == 'R') goto yy433;
+ if (yych != 'r') goto yy194;
yy433:
YYDEBUG(433, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy434;
- if (yych != 'y') goto yy193;
+ if (yych == 'A') goto yy434;
+ if (yych != 'a') goto yy194;
yy434:
YYDEBUG(434, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy435;
+ if (yych != 'y') goto yy194;
+yy435:
+ YYDEBUG(435, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(435, *YYCURSOR);
+ YYDEBUG(436, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy434;
- goto yy193;
+ if (yych == '\t') goto yy435;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy434;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy435;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(436, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(437, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(438, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1236 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 4977 "Zend/zend_language_scanner.c"
-yy438:
- YYDEBUG(438, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'J') goto yy439;
- if (yych != 'j') goto yy193;
+#line 4989 "Zend/zend_language_scanner.c"
yy439:
YYDEBUG(439, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy440;
- if (yych != 'e') goto yy193;
+ if (yych == 'J') goto yy440;
+ if (yych != 'j') goto yy194;
yy440:
YYDEBUG(440, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy441;
- if (yych != 'c') goto yy193;
+ if (yych == 'E') goto yy441;
+ if (yych != 'e') goto yy194;
yy441:
YYDEBUG(441, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy442;
- if (yych != 't') goto yy193;
+ if (yych == 'C') goto yy442;
+ if (yych != 'c') goto yy194;
yy442:
YYDEBUG(442, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy443;
+ if (yych != 't') goto yy194;
+yy443:
+ YYDEBUG(443, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(443, *YYCURSOR);
+ YYDEBUG(444, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy442;
- goto yy193;
+ if (yych == '\t') goto yy443;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy442;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy443;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(444, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(445, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(446, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1240 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 5019 "Zend/zend_language_scanner.c"
-yy446:
- YYDEBUG(446, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy456;
- if (yych == 'n') goto yy456;
- goto yy193;
+#line 5031 "Zend/zend_language_scanner.c"
yy447:
YYDEBUG(447, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy448;
- if (yych != 'o') goto yy193;
+ if (yych == 'N') goto yy457;
+ if (yych == 'n') goto yy457;
+ goto yy194;
yy448:
YYDEBUG(448, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy449;
- if (yych != 'l') goto yy193;
+ if (yych == 'O') goto yy449;
+ if (yych != 'o') goto yy194;
yy449:
YYDEBUG(449, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy454;
- if (yych == 'e') goto yy454;
- goto yy451;
+ if (yych == 'L') goto yy450;
+ if (yych != 'l') goto yy194;
yy450:
YYDEBUG(450, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy455;
+ if (yych == 'e') goto yy455;
+ goto yy452;
+yy451:
+ YYDEBUG(451, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy451:
- YYDEBUG(451, *YYCURSOR);
+yy452:
+ YYDEBUG(452, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy450;
- goto yy193;
+ if (yych == '\t') goto yy451;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy450;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy451;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(452, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(453, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(454, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1244 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 5064 "Zend/zend_language_scanner.c"
-yy454:
- YYDEBUG(454, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy455;
- if (yych != 'a') goto yy193;
+#line 5076 "Zend/zend_language_scanner.c"
yy455:
YYDEBUG(455, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy450;
- if (yych == 'n') goto yy450;
- goto yy193;
+ if (yych == 'A') goto yy456;
+ if (yych != 'a') goto yy194;
yy456:
YYDEBUG(456, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy457;
- if (yych != 'a') goto yy193;
+ if (yych == 'N') goto yy451;
+ if (yych == 'n') goto yy451;
+ goto yy194;
yy457:
YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy458;
- if (yych != 'r') goto yy193;
+ if (yych == 'A') goto yy458;
+ if (yych != 'a') goto yy194;
yy458:
YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy427;
- if (yych == 'y') goto yy427;
- goto yy193;
+ if (yych == 'R') goto yy459;
+ if (yych != 'r') goto yy194;
yy459:
YYDEBUG(459, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy460;
- if (yych != 's') goto yy193;
+ if (yych == 'Y') goto yy428;
+ if (yych == 'y') goto yy428;
+ goto yy194;
yy460:
YYDEBUG(460, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy461;
- if (yych != 'e') goto yy193;
+ if (yych == 'S') goto yy461;
+ if (yych != 's') goto yy194;
yy461:
YYDEBUG(461, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy462;
- if (yych != 't') goto yy193;
+ if (yych == 'E') goto yy462;
+ if (yych != 'e') goto yy194;
yy462:
YYDEBUG(462, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy463;
+ if (yych != 't') goto yy194;
+yy463:
+ YYDEBUG(463, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(463, *YYCURSOR);
+ YYDEBUG(464, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy462;
- goto yy193;
+ if (yych == '\t') goto yy463;
+ goto yy194;
} else {
- if (yych <= ' ') goto yy462;
- if (yych != ')') goto yy193;
+ if (yych <= ' ') goto yy463;
+ if (yych != ')') goto yy194;
}
- YYDEBUG(464, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(465, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(466, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 5128 "Zend/zend_language_scanner.c"
-yy466:
- YYDEBUG(466, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy467;
- if (yych != 'r') goto yy186;
+#line 5140 "Zend/zend_language_scanner.c"
yy467:
YYDEBUG(467, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy468;
+ if (yych != 'r') goto yy187;
+yy468:
+ YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(468, *YYCURSOR);
+ YYDEBUG(469, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1220 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 5146 "Zend/zend_language_scanner.c"
-yy469:
- YYDEBUG(469, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'M') goto yy473;
- if (yych == 'm') goto yy473;
- goto yy186;
+#line 5158 "Zend/zend_language_scanner.c"
yy470:
YYDEBUG(470, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy471;
- if (yych != 'w') goto yy186;
+ if (yych == 'M') goto yy474;
+ if (yych == 'm') goto yy474;
+ goto yy187;
yy471:
YYDEBUG(471, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy472;
+ if (yych != 'w') goto yy187;
+yy472:
+ YYDEBUG(472, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(472, *YYCURSOR);
+ YYDEBUG(473, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1202 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 5170 "Zend/zend_language_scanner.c"
-yy473:
- YYDEBUG(473, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy474;
- if (yych != 'e') goto yy186;
+#line 5182 "Zend/zend_language_scanner.c"
yy474:
YYDEBUG(474, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy475;
- if (yych != 's') goto yy186;
+ if (yych == 'E') goto yy475;
+ if (yych != 'e') goto yy187;
yy475:
YYDEBUG(475, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy476;
- if (yych != 'p') goto yy186;
+ if (yych == 'S') goto yy476;
+ if (yych != 's') goto yy187;
yy476:
YYDEBUG(476, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy477;
- if (yych != 'a') goto yy186;
+ if (yych == 'P') goto yy477;
+ if (yych != 'p') goto yy187;
yy477:
YYDEBUG(477, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy478;
- if (yych != 'c') goto yy186;
+ if (yych == 'A') goto yy478;
+ if (yych != 'a') goto yy187;
yy478:
YYDEBUG(478, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy479;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy479;
+ if (yych != 'c') goto yy187;
yy479:
YYDEBUG(479, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy480;
+ if (yych != 'e') goto yy187;
+yy480:
+ YYDEBUG(480, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(480, *YYCURSOR);
+ YYDEBUG(481, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
+#line 1272 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 5213 "Zend/zend_language_scanner.c"
-yy481:
- YYDEBUG(481, *YYCURSOR);
- ++YYCURSOR;
+#line 5225 "Zend/zend_language_scanner.c"
+yy482:
YYDEBUG(482, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(483, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1194 "Zend/zend_language_scanner.l"
+#line 1204 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5223 "Zend/zend_language_scanner.c"
-yy483:
- YYDEBUG(483, *YYCURSOR);
+#line 5235 "Zend/zend_language_scanner.c"
+yy484:
+ YYDEBUG(484, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy484:
- YYDEBUG(484, *YYCURSOR);
+yy485:
+ YYDEBUG(485, *YYCURSOR);
if (yych <= '\f') {
- if (yych <= 0x08) goto yy140;
- if (yych <= '\n') goto yy483;
- goto yy140;
+ if (yych <= 0x08) goto yy141;
+ if (yych <= '\n') goto yy484;
+ goto yy141;
} else {
- if (yych <= '\r') goto yy483;
- if (yych == ' ') goto yy483;
- goto yy140;
+ if (yych <= '\r') goto yy484;
+ if (yych == ' ') goto yy484;
+ goto yy141;
}
-yy485:
- YYDEBUG(485, *YYCURSOR);
- ++YYCURSOR;
+yy486:
YYDEBUG(486, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(487, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1370 "Zend/zend_language_scanner.l"
+#line 1380 "Zend/zend_language_scanner.l"
{
return T_MINUS_EQUAL;
}
-#line 5249 "Zend/zend_language_scanner.c"
-yy487:
- YYDEBUG(487, *YYCURSOR);
- ++YYCURSOR;
+#line 5261 "Zend/zend_language_scanner.c"
+yy488:
YYDEBUG(488, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(489, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1338 "Zend/zend_language_scanner.l"
+#line 1348 "Zend/zend_language_scanner.l"
{
return T_DEC;
}
-#line 5259 "Zend/zend_language_scanner.c"
-yy489:
- YYDEBUG(489, *YYCURSOR);
- ++YYCURSOR;
+#line 5271 "Zend/zend_language_scanner.c"
+yy490:
YYDEBUG(490, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(491, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1164 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5270 "Zend/zend_language_scanner.c"
-yy491:
- YYDEBUG(491, *YYCURSOR);
+#line 5282 "Zend/zend_language_scanner.c"
+yy492:
+ YYDEBUG(492, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy498;
- if (yych <= 'N') goto yy186;
- goto yy499;
+ if (yych == 'I') goto yy499;
+ if (yych <= 'N') goto yy187;
+ goto yy500;
} else {
if (yych <= 'i') {
- if (yych <= 'h') goto yy186;
- goto yy498;
+ if (yych <= 'h') goto yy187;
+ goto yy499;
} else {
- if (yych == 'o') goto yy499;
- goto yy186;
+ if (yych == 'o') goto yy500;
+ goto yy187;
}
}
-yy492:
- YYDEBUG(492, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy493;
- if (yych != 'b') goto yy186;
yy493:
YYDEBUG(493, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy494;
- if (yych != 'l') goto yy186;
+ if (yych == 'B') goto yy494;
+ if (yych != 'b') goto yy187;
yy494:
YYDEBUG(494, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy495;
- if (yych != 'i') goto yy186;
+ if (yych == 'L') goto yy495;
+ if (yych != 'l') goto yy187;
yy495:
YYDEBUG(495, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy496;
- if (yych != 'c') goto yy186;
+ if (yych == 'I') goto yy496;
+ if (yych != 'i') goto yy187;
yy496:
YYDEBUG(496, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy497;
+ if (yych != 'c') goto yy187;
+yy497:
+ YYDEBUG(497, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(497, *YYCURSOR);
+ YYDEBUG(498, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1310 "Zend/zend_language_scanner.l"
+#line 1320 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 5319 "Zend/zend_language_scanner.c"
-yy498:
- YYDEBUG(498, *YYCURSOR);
+#line 5331 "Zend/zend_language_scanner.c"
+yy499:
+ YYDEBUG(499, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'V') {
- if (yych == 'N') goto yy507;
- if (yych <= 'U') goto yy186;
- goto yy508;
+ if (yych == 'N') goto yy508;
+ if (yych <= 'U') goto yy187;
+ goto yy509;
} else {
if (yych <= 'n') {
- if (yych <= 'm') goto yy186;
- goto yy507;
+ if (yych <= 'm') goto yy187;
+ goto yy508;
} else {
- if (yych == 'v') goto yy508;
- goto yy186;
+ if (yych == 'v') goto yy509;
+ goto yy187;
}
}
-yy499:
- YYDEBUG(499, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy500;
- if (yych != 't') goto yy186;
yy500:
YYDEBUG(500, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy501;
- if (yych != 'e') goto yy186;
+ if (yych == 'T') goto yy501;
+ if (yych != 't') goto yy187;
yy501:
YYDEBUG(501, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy502;
- if (yych != 'c') goto yy186;
+ if (yych == 'E') goto yy502;
+ if (yych != 'e') goto yy187;
yy502:
YYDEBUG(502, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy503;
- if (yych != 't') goto yy186;
+ if (yych == 'C') goto yy503;
+ if (yych != 'c') goto yy187;
yy503:
YYDEBUG(503, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy504;
- if (yych != 'e') goto yy186;
+ if (yych == 'T') goto yy504;
+ if (yych != 't') goto yy187;
yy504:
YYDEBUG(504, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy505;
- if (yych != 'd') goto yy186;
+ if (yych == 'E') goto yy505;
+ if (yych != 'e') goto yy187;
yy505:
YYDEBUG(505, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy506;
+ if (yych != 'd') goto yy187;
+yy506:
+ YYDEBUG(506, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(506, *YYCURSOR);
+ YYDEBUG(507, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1306 "Zend/zend_language_scanner.l"
+#line 1316 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 5378 "Zend/zend_language_scanner.c"
-yy507:
- YYDEBUG(507, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy513;
- if (yych == 't') goto yy513;
- goto yy186;
+#line 5390 "Zend/zend_language_scanner.c"
yy508:
YYDEBUG(508, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy509;
- if (yych != 'a') goto yy186;
+ if (yych == 'T') goto yy514;
+ if (yych == 't') goto yy514;
+ goto yy187;
yy509:
YYDEBUG(509, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy510;
- if (yych != 't') goto yy186;
+ if (yych == 'A') goto yy510;
+ if (yych != 'a') goto yy187;
yy510:
YYDEBUG(510, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy511;
- if (yych != 'e') goto yy186;
+ if (yych == 'T') goto yy511;
+ if (yych != 't') goto yy187;
yy511:
YYDEBUG(511, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy512;
+ if (yych != 'e') goto yy187;
+yy512:
+ YYDEBUG(512, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(512, *YYCURSOR);
+ YYDEBUG(513, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1302 "Zend/zend_language_scanner.l"
+#line 1312 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 5412 "Zend/zend_language_scanner.c"
-yy513:
- YYDEBUG(513, *YYCURSOR);
+#line 5424 "Zend/zend_language_scanner.c"
+yy514:
+ YYDEBUG(514, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(514, *YYCURSOR);
+ YYDEBUG(515, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1140 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 5425 "Zend/zend_language_scanner.c"
-yy515:
- YYDEBUG(515, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy520;
- if (yych == 'o') goto yy520;
- goto yy186;
+#line 5437 "Zend/zend_language_scanner.c"
yy516:
YYDEBUG(516, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy517;
- if (yych != 't') goto yy186;
+ if (yych == 'O') goto yy521;
+ if (yych == 'o') goto yy521;
+ goto yy187;
yy517:
YYDEBUG(517, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy518;
- if (yych != 'o') goto yy186;
+ if (yych == 'T') goto yy518;
+ if (yych != 't') goto yy187;
yy518:
YYDEBUG(518, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy519;
+ if (yych != 'o') goto yy187;
+yy519:
+ YYDEBUG(519, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(519, *YYCURSOR);
+ YYDEBUG(520, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1132 "Zend/zend_language_scanner.l"
+#line 1142 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 5454 "Zend/zend_language_scanner.c"
-yy520:
- YYDEBUG(520, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy521;
- if (yych != 'b') goto yy186;
+#line 5466 "Zend/zend_language_scanner.c"
yy521:
YYDEBUG(521, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy522;
- if (yych != 'a') goto yy186;
+ if (yych == 'B') goto yy522;
+ if (yych != 'b') goto yy187;
yy522:
YYDEBUG(522, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy523;
- if (yych != 'l') goto yy186;
+ if (yych == 'A') goto yy523;
+ if (yych != 'a') goto yy187;
yy523:
YYDEBUG(523, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy524;
+ if (yych != 'l') goto yy187;
+yy524:
+ YYDEBUG(524, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(524, *YYCURSOR);
+ YYDEBUG(525, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
+#line 1284 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 5482 "Zend/zend_language_scanner.c"
-yy525:
- YYDEBUG(525, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '<') goto yy533;
- goto yy193;
+#line 5494 "Zend/zend_language_scanner.c"
yy526:
YYDEBUG(526, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy180;
+ if (yych == '<') goto yy534;
+ goto yy194;
yy527:
YYDEBUG(527, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy178;
+ goto yy181;
yy528:
YYDEBUG(528, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy529;
- if (yych != 'e') goto yy186;
+ goto yy179;
yy529:
YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy530;
- if (yych != 'a') goto yy186;
+ if (yych == 'E') goto yy530;
+ if (yych != 'e') goto yy187;
yy530:
YYDEBUG(530, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'K') goto yy531;
- if (yych != 'k') goto yy186;
+ if (yych == 'A') goto yy531;
+ if (yych != 'a') goto yy187;
yy531:
YYDEBUG(531, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'K') goto yy532;
+ if (yych != 'k') goto yy187;
+yy532:
+ YYDEBUG(532, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(532, *YYCURSOR);
+ YYDEBUG(533, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1124 "Zend/zend_language_scanner.l"
+#line 1134 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 5523 "Zend/zend_language_scanner.c"
-yy533:
- YYDEBUG(533, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '<') goto yy269;
- goto yy193;
+#line 5535 "Zend/zend_language_scanner.c"
yy534:
YYDEBUG(534, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy541;
- if (yych == 'a') goto yy541;
- goto yy186;
+ if (yych == '<') goto yy270;
+ goto yy194;
yy535:
YYDEBUG(535, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy536;
- if (yych != 'i') goto yy186;
+ if (yych == 'A') goto yy542;
+ if (yych == 'a') goto yy542;
+ goto yy187;
yy536:
YYDEBUG(536, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy537;
- if (yych != 't') goto yy186;
+ if (yych == 'I') goto yy537;
+ if (yych != 'i') goto yy187;
yy537:
YYDEBUG(537, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy538;
- if (yych != 'c') goto yy186;
+ if (yych == 'T') goto yy538;
+ if (yych != 't') goto yy187;
yy538:
YYDEBUG(538, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy539;
- if (yych != 'h') goto yy186;
+ if (yych == 'C') goto yy539;
+ if (yych != 'c') goto yy187;
yy539:
YYDEBUG(539, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy540;
+ if (yych != 'h') goto yy187;
+yy540:
+ YYDEBUG(540, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(540, *YYCURSOR);
+ YYDEBUG(541, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1108 "Zend/zend_language_scanner.l"
+#line 1118 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 5567 "Zend/zend_language_scanner.c"
-yy541:
- YYDEBUG(541, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy542;
- if (yych != 't') goto yy186;
+#line 5579 "Zend/zend_language_scanner.c"
yy542:
YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy543;
- if (yych != 'i') goto yy186;
+ if (yych == 'T') goto yy543;
+ if (yych != 't') goto yy187;
yy543:
YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy544;
- if (yych != 'c') goto yy186;
+ if (yych == 'I') goto yy544;
+ if (yych != 'i') goto yy187;
yy544:
YYDEBUG(544, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy545;
+ if (yych != 'c') goto yy187;
+yy545:
+ YYDEBUG(545, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(545, *YYCURSOR);
+ YYDEBUG(546, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1300 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 5595 "Zend/zend_language_scanner.c"
-yy546:
- YYDEBUG(546, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy557;
- if (yych == 's') goto yy557;
- goto yy186;
+#line 5607 "Zend/zend_language_scanner.c"
yy547:
YYDEBUG(547, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy555;
- if (yych == 'd') goto yy555;
- goto yy186;
+ if (yych == 'S') goto yy558;
+ if (yych == 's') goto yy558;
+ goto yy187;
yy548:
YYDEBUG(548, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy551;
- if (yych == 'r') goto yy551;
- goto yy186;
+ if (yych == 'D') goto yy556;
+ if (yych == 'd') goto yy556;
+ goto yy187;
yy549:
YYDEBUG(549, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy552;
+ if (yych == 'r') goto yy552;
+ goto yy187;
+yy550:
+ YYDEBUG(550, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(550, *YYCURSOR);
+ YYDEBUG(551, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1104 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 5626 "Zend/zend_language_scanner.c"
-yy551:
- YYDEBUG(551, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy552;
- if (yych != 'a') goto yy186;
+#line 5638 "Zend/zend_language_scanner.c"
yy552:
YYDEBUG(552, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy553;
- if (yych != 'y') goto yy186;
+ if (yych == 'A') goto yy553;
+ if (yych != 'a') goto yy187;
yy553:
YYDEBUG(553, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy554;
+ if (yych != 'y') goto yy187;
+yy554:
+ YYDEBUG(554, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(554, *YYCURSOR);
+ YYDEBUG(555, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1326 "Zend/zend_language_scanner.l"
+#line 1336 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 5649 "Zend/zend_language_scanner.c"
-yy555:
- YYDEBUG(555, *YYCURSOR);
+#line 5661 "Zend/zend_language_scanner.c"
+yy556:
+ YYDEBUG(556, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(556, *YYCURSOR);
+ YYDEBUG(557, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 5662 "Zend/zend_language_scanner.c"
-yy557:
- YYDEBUG(557, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy558;
- if (yych != 't') goto yy186;
+#line 5674 "Zend/zend_language_scanner.c"
yy558:
YYDEBUG(558, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy559;
- if (yych != 'r') goto yy186;
+ if (yych == 'T') goto yy559;
+ if (yych != 't') goto yy187;
yy559:
YYDEBUG(559, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy560;
- if (yych != 'a') goto yy186;
+ if (yych == 'R') goto yy560;
+ if (yych != 'r') goto yy187;
yy560:
YYDEBUG(560, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy561;
- if (yych != 'c') goto yy186;
+ if (yych == 'A') goto yy561;
+ if (yych != 'a') goto yy187;
yy561:
YYDEBUG(561, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy562;
- if (yych != 't') goto yy186;
+ if (yych == 'C') goto yy562;
+ if (yych != 'c') goto yy187;
yy562:
YYDEBUG(562, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy563;
+ if (yych != 't') goto yy187;
+yy563:
+ YYDEBUG(563, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(563, *YYCURSOR);
+ YYDEBUG(564, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1294 "Zend/zend_language_scanner.l"
+#line 1304 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 5700 "Zend/zend_language_scanner.c"
-yy564:
- YYDEBUG(564, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy565;
- if (yych != 'i') goto yy186;
+#line 5712 "Zend/zend_language_scanner.c"
yy565:
YYDEBUG(565, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy566;
- if (yych != 'l') goto yy186;
+ if (yych == 'I') goto yy566;
+ if (yych != 'i') goto yy187;
yy566:
YYDEBUG(566, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy567;
- if (yych != 'e') goto yy186;
+ if (yych == 'L') goto yy567;
+ if (yych != 'l') goto yy187;
yy567:
YYDEBUG(567, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy568;
+ if (yych != 'e') goto yy187;
+yy568:
+ YYDEBUG(568, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(568, *YYCURSOR);
+ YYDEBUG(569, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1064 "Zend/zend_language_scanner.l"
+#line 1074 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 5728 "Zend/zend_language_scanner.c"
-yy569:
- YYDEBUG(569, *YYCURSOR);
+#line 5740 "Zend/zend_language_scanner.c"
+yy570:
+ YYDEBUG(570, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(570, *YYCURSOR);
+ YYDEBUG(571, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
+#line 1058 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 5741 "Zend/zend_language_scanner.c"
-yy571:
- YYDEBUG(571, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'P') goto yy613;
- if (yych == 'p') goto yy613;
- goto yy186;
+#line 5753 "Zend/zend_language_scanner.c"
yy572:
YYDEBUG(572, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'P') goto yy614;
+ if (yych == 'p') goto yy614;
+ goto yy187;
+yy573:
+ YYDEBUG(573, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'C') {
- if (yych <= 'B') goto yy186;
- goto yy580;
+ if (yych <= 'B') goto yy187;
+ goto yy581;
} else {
- if (yych <= 'R') goto yy186;
- if (yych <= 'S') goto yy578;
- goto yy579;
+ if (yych <= 'R') goto yy187;
+ if (yych <= 'S') goto yy579;
+ goto yy580;
}
} else {
if (yych <= 'r') {
- if (yych == 'c') goto yy580;
- goto yy186;
+ if (yych == 'c') goto yy581;
+ goto yy187;
} else {
- if (yych <= 's') goto yy578;
- if (yych <= 't') goto yy579;
- goto yy186;
+ if (yych <= 's') goto yy579;
+ if (yych <= 't') goto yy580;
+ goto yy187;
}
}
-yy573:
- YYDEBUG(573, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy574;
- if (yych != 's') goto yy186;
yy574:
YYDEBUG(574, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy575;
- if (yych != 'e') goto yy186;
+ if (yych == 'S') goto yy575;
+ if (yych != 's') goto yy187;
yy575:
YYDEBUG(575, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy576;
- if (yych != 't') goto yy186;
+ if (yych == 'E') goto yy576;
+ if (yych != 'e') goto yy187;
yy576:
YYDEBUG(576, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy577;
+ if (yych != 't') goto yy187;
+yy577:
+ YYDEBUG(577, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(577, *YYCURSOR);
+ YYDEBUG(578, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
+#line 1288 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 5797 "Zend/zend_language_scanner.c"
-yy578:
- YYDEBUG(578, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy599;
- if (yych == 't') goto yy599;
- goto yy186;
+#line 5809 "Zend/zend_language_scanner.c"
yy579:
YYDEBUG(579, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy592;
- if (yych == 'e') goto yy592;
- goto yy186;
+ if (yych == 'T') goto yy600;
+ if (yych == 't') goto yy600;
+ goto yy187;
yy580:
YYDEBUG(580, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy581;
- if (yych != 'l') goto yy186;
+ if (yych == 'E') goto yy593;
+ if (yych == 'e') goto yy593;
+ goto yy187;
yy581:
YYDEBUG(581, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy582;
- if (yych != 'u') goto yy186;
+ if (yych == 'L') goto yy582;
+ if (yych != 'l') goto yy187;
yy582:
YYDEBUG(582, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy583;
- if (yych != 'd') goto yy186;
+ if (yych == 'U') goto yy583;
+ if (yych != 'u') goto yy187;
yy583:
YYDEBUG(583, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy584;
- if (yych != 'e') goto yy186;
+ if (yych == 'D') goto yy584;
+ if (yych != 'd') goto yy187;
yy584:
YYDEBUG(584, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy585;
+ if (yych != 'e') goto yy187;
+yy585:
+ YYDEBUG(585, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy185;
+ if (yych >= '0') goto yy186;
} else {
- if (yych <= '@') goto yy585;
- if (yych <= 'Z') goto yy185;
+ if (yych <= '@') goto yy586;
+ if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy586;
+ if (yych <= '_') goto yy587;
} else {
- if (yych <= 'z') goto yy185;
- if (yych >= 0x7F) goto yy185;
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
}
}
-yy585:
- YYDEBUG(585, *YYCURSOR);
+yy586:
+ YYDEBUG(586, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1256 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 5855 "Zend/zend_language_scanner.c"
-yy586:
- YYDEBUG(586, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy587;
- if (yych != 'o') goto yy186;
+#line 5867 "Zend/zend_language_scanner.c"
yy587:
YYDEBUG(587, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy588;
- if (yych != 'n') goto yy186;
+ if (yych == 'O') goto yy588;
+ if (yych != 'o') goto yy187;
yy588:
YYDEBUG(588, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy589;
- if (yych != 'c') goto yy186;
+ if (yych == 'N') goto yy589;
+ if (yych != 'n') goto yy187;
yy589:
YYDEBUG(589, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy590;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy590;
+ if (yych != 'c') goto yy187;
yy590:
YYDEBUG(590, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy591;
+ if (yych != 'e') goto yy187;
+yy591:
+ YYDEBUG(591, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(591, *YYCURSOR);
+ YYDEBUG(592, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
+#line 1260 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 5888 "Zend/zend_language_scanner.c"
-yy592:
- YYDEBUG(592, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy593;
- if (yych != 'r') goto yy186;
+#line 5900 "Zend/zend_language_scanner.c"
yy593:
YYDEBUG(593, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy594;
- if (yych != 'f') goto yy186;
+ if (yych == 'R') goto yy594;
+ if (yych != 'r') goto yy187;
yy594:
YYDEBUG(594, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy595;
- if (yych != 'a') goto yy186;
+ if (yych == 'F') goto yy595;
+ if (yych != 'f') goto yy187;
yy595:
YYDEBUG(595, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy596;
- if (yych != 'c') goto yy186;
+ if (yych == 'A') goto yy596;
+ if (yych != 'a') goto yy187;
yy596:
YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy597;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy597;
+ if (yych != 'c') goto yy187;
yy597:
YYDEBUG(597, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy598;
+ if (yych != 'e') goto yy187;
+yy598:
+ YYDEBUG(598, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(598, *YYCURSOR);
+ YYDEBUG(599, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1148 "Zend/zend_language_scanner.l"
+#line 1158 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 5926 "Zend/zend_language_scanner.c"
-yy599:
- YYDEBUG(599, *YYCURSOR);
+#line 5938 "Zend/zend_language_scanner.c"
+yy600:
+ YYDEBUG(600, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy600;
- if (yych <= 'D') goto yy186;
- goto yy601;
+ if (yych == 'A') goto yy601;
+ if (yych <= 'D') goto yy187;
+ goto yy602;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy186;
+ if (yych <= '`') goto yy187;
} else {
- if (yych == 'e') goto yy601;
- goto yy186;
+ if (yych == 'e') goto yy602;
+ goto yy187;
}
}
-yy600:
- YYDEBUG(600, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy607;
- if (yych == 'n') goto yy607;
- goto yy186;
yy601:
YYDEBUG(601, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy602;
- if (yych != 'a') goto yy186;
+ if (yych == 'N') goto yy608;
+ if (yych == 'n') goto yy608;
+ goto yy187;
yy602:
YYDEBUG(602, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy603;
- if (yych != 'd') goto yy186;
+ if (yych == 'A') goto yy603;
+ if (yych != 'a') goto yy187;
yy603:
YYDEBUG(603, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy604;
- if (yych != 'o') goto yy186;
+ if (yych == 'D') goto yy604;
+ if (yych != 'd') goto yy187;
yy604:
YYDEBUG(604, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy605;
- if (yych != 'f') goto yy186;
+ if (yych == 'O') goto yy605;
+ if (yych != 'o') goto yy187;
yy605:
YYDEBUG(605, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy606;
+ if (yych != 'f') goto yy187;
+yy606:
+ YYDEBUG(606, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(606, *YYCURSOR);
+ YYDEBUG(607, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
+#line 1280 "Zend/zend_language_scanner.l"
{
return T_INSTEADOF;
}
-#line 5980 "Zend/zend_language_scanner.c"
-yy607:
- YYDEBUG(607, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy608;
- if (yych != 'c') goto yy186;
+#line 5992 "Zend/zend_language_scanner.c"
yy608:
YYDEBUG(608, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy609;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy609;
+ if (yych != 'c') goto yy187;
yy609:
YYDEBUG(609, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy610;
- if (yych != 'o') goto yy186;
+ if (yych == 'E') goto yy610;
+ if (yych != 'e') goto yy187;
yy610:
YYDEBUG(610, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy611;
- if (yych != 'f') goto yy186;
+ if (yych == 'O') goto yy611;
+ if (yych != 'o') goto yy187;
yy611:
YYDEBUG(611, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy612;
+ if (yych != 'f') goto yy187;
+yy612:
+ YYDEBUG(612, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(612, *YYCURSOR);
+ YYDEBUG(613, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1100 "Zend/zend_language_scanner.l"
+#line 1110 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 6013 "Zend/zend_language_scanner.c"
-yy613:
- YYDEBUG(613, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy614;
- if (yych != 'l') goto yy186;
+#line 6025 "Zend/zend_language_scanner.c"
yy614:
YYDEBUG(614, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy615;
- if (yych != 'e') goto yy186;
+ if (yych == 'L') goto yy615;
+ if (yych != 'l') goto yy187;
yy615:
YYDEBUG(615, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy616;
- if (yych != 'm') goto yy186;
+ if (yych == 'E') goto yy616;
+ if (yych != 'e') goto yy187;
yy616:
YYDEBUG(616, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy617;
- if (yych != 'e') goto yy186;
+ if (yych == 'M') goto yy617;
+ if (yych != 'm') goto yy187;
yy617:
YYDEBUG(617, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy618;
- if (yych != 'n') goto yy186;
+ if (yych == 'E') goto yy618;
+ if (yych != 'e') goto yy187;
yy618:
YYDEBUG(618, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy619;
- if (yych != 't') goto yy186;
+ if (yych == 'N') goto yy619;
+ if (yych != 'n') goto yy187;
yy619:
YYDEBUG(619, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy620;
- if (yych != 's') goto yy186;
+ if (yych == 'T') goto yy620;
+ if (yych != 't') goto yy187;
yy620:
YYDEBUG(620, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy621;
+ if (yych != 's') goto yy187;
+yy621:
+ YYDEBUG(621, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(621, *YYCURSOR);
+ YYDEBUG(622, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1160 "Zend/zend_language_scanner.l"
+#line 1170 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 6061 "Zend/zend_language_scanner.c"
-yy622:
- YYDEBUG(622, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy630;
- if (yych == 'r') goto yy630;
- goto yy186;
+#line 6073 "Zend/zend_language_scanner.c"
yy623:
YYDEBUG(623, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'R') goto yy631;
+ if (yych == 'r') goto yy631;
+ goto yy187;
+yy624:
+ YYDEBUG(624, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'Y') {
- if (yych == 'A') goto yy626;
- if (yych <= 'X') goto yy186;
+ if (yych == 'A') goto yy627;
+ if (yych <= 'X') goto yy187;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy186;
- goto yy626;
+ if (yych <= '`') goto yy187;
+ goto yy627;
} else {
- if (yych != 'y') goto yy186;
+ if (yych != 'y') goto yy187;
}
}
- YYDEBUG(624, *YYCURSOR);
+ YYDEBUG(625, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(625, *YYCURSOR);
+ YYDEBUG(626, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
+#line 1042 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 6093 "Zend/zend_language_scanner.c"
-yy626:
- YYDEBUG(626, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy627;
- if (yych != 'i') goto yy186;
+#line 6105 "Zend/zend_language_scanner.c"
yy627:
YYDEBUG(627, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy628;
- if (yych != 't') goto yy186;
+ if (yych == 'I') goto yy628;
+ if (yych != 'i') goto yy187;
yy628:
YYDEBUG(628, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy629;
+ if (yych != 't') goto yy187;
+yy629:
+ YYDEBUG(629, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(629, *YYCURSOR);
+ YYDEBUG(630, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1152 "Zend/zend_language_scanner.l"
+#line 1162 "Zend/zend_language_scanner.l"
{
return T_TRAIT;
}
-#line 6116 "Zend/zend_language_scanner.c"
-yy630:
- YYDEBUG(630, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy631;
- if (yych != 'o') goto yy186;
+#line 6128 "Zend/zend_language_scanner.c"
yy631:
YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy632;
- if (yych != 'w') goto yy186;
+ if (yych == 'O') goto yy632;
+ if (yych != 'o') goto yy187;
yy632:
YYDEBUG(632, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy633;
+ if (yych != 'w') goto yy187;
+yy633:
+ YYDEBUG(633, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(633, *YYCURSOR);
+ YYDEBUG(634, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
+#line 1054 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 6139 "Zend/zend_language_scanner.c"
-yy634:
- YYDEBUG(634, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych == 'Q') goto yy636;
- if (yych <= 'S') goto yy186;
- } else {
- if (yych <= 'q') {
- if (yych <= 'p') goto yy186;
- goto yy636;
- } else {
- if (yych != 't') goto yy186;
- }
- }
+#line 6151 "Zend/zend_language_scanner.c"
+yy635:
YYDEBUG(635, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy648;
- if (yych == 'u') goto yy648;
- goto yy186;
+ if (yych == 'E') goto yy636;
+ if (yych != 'e') goto yy187;
yy636:
YYDEBUG(636, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy637;
- if (yych != 'u') goto yy186;
+ if (yych == 'L') goto yy637;
+ if (yych != 'l') goto yy187;
yy637:
YYDEBUG(637, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy638;
- if (yych != 'i') goto yy186;
+ if (yych == 'D') goto yy638;
+ if (yych != 'd') goto yy187;
yy638:
YYDEBUG(638, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy639;
- if (yych != 'r') goto yy186;
-yy639:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(639, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy640;
- if (yych != 'e') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1038 "Zend/zend_language_scanner.l"
+ {
+ return T_YIELD;
+}
+#line 6179 "Zend/zend_language_scanner.c"
yy640:
YYDEBUG(640, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '9') {
- if (yych >= '0') goto yy185;
- } else {
- if (yych <= '@') goto yy641;
- if (yych <= 'Z') goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych == 'Q') goto yy642;
+ if (yych <= 'S') goto yy187;
} else {
- if (yych <= '`') {
- if (yych <= '_') goto yy642;
+ if (yych <= 'q') {
+ if (yych <= 'p') goto yy187;
+ goto yy642;
} else {
- if (yych <= 'z') goto yy185;
- if (yych >= 0x7F) goto yy185;
+ if (yych != 't') goto yy187;
}
}
-yy641:
YYDEBUG(641, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
- {
- return T_REQUIRE;
-}
-#line 6204 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy654;
+ if (yych == 'u') goto yy654;
+ goto yy187;
yy642:
YYDEBUG(642, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy643;
- if (yych != 'o') goto yy186;
+ if (yych == 'U') goto yy643;
+ if (yych != 'u') goto yy187;
yy643:
YYDEBUG(643, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy644;
- if (yych != 'n') goto yy186;
+ if (yych == 'I') goto yy644;
+ if (yych != 'i') goto yy187;
yy644:
YYDEBUG(644, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy645;
- if (yych != 'c') goto yy186;
+ if (yych == 'R') goto yy645;
+ if (yych != 'r') goto yy187;
yy645:
YYDEBUG(645, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == 'E') goto yy646;
- if (yych != 'e') goto yy186;
+ if (yych != 'e') goto yy187;
yy646:
YYDEBUG(646, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '9') {
+ if (yych >= '0') goto yy186;
+ } else {
+ if (yych <= '@') goto yy647;
+ if (yych <= 'Z') goto yy186;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '_') goto yy648;
+ } else {
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
+ }
}
+yy647:
YYDEBUG(647, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
+#line 1264 "Zend/zend_language_scanner.l"
{
- return T_REQUIRE_ONCE;
+ return T_REQUIRE;
}
-#line 6237 "Zend/zend_language_scanner.c"
+#line 6244 "Zend/zend_language_scanner.c"
yy648:
YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy649;
- if (yych != 'r') goto yy186;
+ if (yych == 'O') goto yy649;
+ if (yych != 'o') goto yy187;
yy649:
YYDEBUG(649, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == 'N') goto yy650;
- if (yych != 'n') goto yy186;
+ if (yych != 'n') goto yy187;
yy650:
YYDEBUG(650, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy651;
+ if (yych != 'c') goto yy187;
+yy651:
+ YYDEBUG(651, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy652;
+ if (yych != 'e') goto yy187;
+yy652:
+ YYDEBUG(652, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(651, *YYCURSOR);
+ YYDEBUG(653, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1268 "Zend/zend_language_scanner.l"
+ {
+ return T_REQUIRE_ONCE;
+}
+#line 6277 "Zend/zend_language_scanner.c"
+yy654:
+ YYDEBUG(654, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy655;
+ if (yych != 'r') goto yy187;
+yy655:
+ YYDEBUG(655, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy656;
+ if (yych != 'n') goto yy187;
+yy656:
+ YYDEBUG(656, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
+ YYDEBUG(657, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
+#line 1034 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 6260 "Zend/zend_language_scanner.c"
-yy652:
- YYDEBUG(652, *YYCURSOR);
+#line 6300 "Zend/zend_language_scanner.c"
+yy658:
+ YYDEBUG(658, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'L') {
- if (yych <= 'K') goto yy186;
- goto yy675;
+ if (yych <= 'K') goto yy187;
+ goto yy681;
} else {
- if (yych <= 'R') goto yy186;
- if (yych <= 'S') goto yy674;
- goto yy673;
+ if (yych <= 'R') goto yy187;
+ if (yych <= 'S') goto yy680;
+ goto yy679;
}
} else {
if (yych <= 'r') {
- if (yych == 'l') goto yy675;
- goto yy186;
+ if (yych == 'l') goto yy681;
+ goto yy187;
} else {
- if (yych <= 's') goto yy674;
- if (yych <= 't') goto yy673;
- goto yy186;
+ if (yych <= 's') goto yy680;
+ if (yych <= 't') goto yy679;
+ goto yy187;
}
}
-yy653:
- YYDEBUG(653, *YYCURSOR);
+yy659:
+ YYDEBUG(659, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'A') goto yy665;
- if (yych <= 'N') goto yy186;
- goto yy666;
+ if (yych == 'A') goto yy671;
+ if (yych <= 'N') goto yy187;
+ goto yy672;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy186;
- goto yy665;
+ if (yych <= '`') goto yy187;
+ goto yy671;
} else {
- if (yych == 'o') goto yy666;
- goto yy186;
+ if (yych == 'o') goto yy672;
+ goto yy187;
}
}
-yy654:
- YYDEBUG(654, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy655;
- if (yych != 'n') goto yy186;
-yy655:
- YYDEBUG(655, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych <= 'R') goto yy186;
- if (yych >= 'T') goto yy657;
- } else {
- if (yych <= 'r') goto yy186;
- if (yych <= 's') goto yy656;
- if (yych <= 't') goto yy657;
- goto yy186;
- }
-yy656:
- YYDEBUG(656, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy663;
- if (yych == 't') goto yy663;
- goto yy186;
-yy657:
- YYDEBUG(657, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy658;
- if (yych != 'i') goto yy186;
-yy658:
- YYDEBUG(658, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy659;
- if (yych != 'n') goto yy186;
-yy659:
- YYDEBUG(659, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy660;
- if (yych != 'u') goto yy186;
yy660:
YYDEBUG(660, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy661;
- if (yych != 'e') goto yy186;
+ if (yych == 'N') goto yy661;
+ if (yych != 'n') goto yy187;
yy661:
YYDEBUG(661, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= 'R') goto yy187;
+ if (yych >= 'T') goto yy663;
+ } else {
+ if (yych <= 'r') goto yy187;
+ if (yych <= 's') goto yy662;
+ if (yych <= 't') goto yy663;
+ goto yy187;
}
+yy662:
YYDEBUG(662, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1128 "Zend/zend_language_scanner.l"
- {
- return T_CONTINUE;
-}
-#line 6354 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy669;
+ if (yych == 't') goto yy669;
+ goto yy187;
yy663:
YYDEBUG(663, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy664;
+ if (yych != 'i') goto yy187;
+yy664:
YYDEBUG(664, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
- {
- return T_CONST;
-}
-#line 6367 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy665;
+ if (yych != 'n') goto yy187;
yy665:
YYDEBUG(665, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy670;
- if (yych == 's') goto yy670;
- goto yy186;
+ if (yych == 'U') goto yy666;
+ if (yych != 'u') goto yy187;
yy666:
YYDEBUG(666, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy667;
- if (yych != 'n') goto yy186;
+ if (yych == 'E') goto yy667;
+ if (yych != 'e') goto yy187;
yy667:
YYDEBUG(667, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy668;
- if (yych != 'e') goto yy186;
-yy668:
- YYDEBUG(668, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(669, *YYCURSOR);
+ YYDEBUG(668, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
+#line 1138 "Zend/zend_language_scanner.l"
{
- return T_CLONE;
+ return T_CONTINUE;
}
-#line 6396 "Zend/zend_language_scanner.c"
-yy670:
- YYDEBUG(670, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy671;
- if (yych != 's') goto yy186;
-yy671:
- YYDEBUG(671, *YYCURSOR);
+#line 6394 "Zend/zend_language_scanner.c"
+yy669:
+ YYDEBUG(669, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(672, *YYCURSOR);
+ YYDEBUG(670, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1144 "Zend/zend_language_scanner.l"
+#line 1030 "Zend/zend_language_scanner.l"
{
- return T_CLASS;
+ return T_CONST;
}
-#line 6414 "Zend/zend_language_scanner.c"
+#line 6407 "Zend/zend_language_scanner.c"
+yy671:
+ YYDEBUG(671, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy676;
+ if (yych == 's') goto yy676;
+ goto yy187;
+yy672:
+ YYDEBUG(672, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy673;
+ if (yych != 'n') goto yy187;
yy673:
YYDEBUG(673, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy684;
- if (yych == 'c') goto yy684;
- goto yy186;
+ if (yych == 'E') goto yy674;
+ if (yych != 'e') goto yy187;
yy674:
YYDEBUG(674, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy682;
- if (yych == 'e') goto yy682;
- goto yy186;
-yy675:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(675, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy676;
- if (yych != 'l') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1216 "Zend/zend_language_scanner.l"
+ {
+ return T_CLONE;
+}
+#line 6436 "Zend/zend_language_scanner.c"
yy676:
YYDEBUG(676, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy677;
- if (yych != 'a') goto yy186;
+ if (yych == 'S') goto yy677;
+ if (yych != 's') goto yy187;
yy677:
YYDEBUG(677, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy678;
- if (yych != 'b') goto yy186;
-yy678:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(678, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy679;
- if (yych != 'l') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1154 "Zend/zend_language_scanner.l"
+ {
+ return T_CLASS;
+}
+#line 6454 "Zend/zend_language_scanner.c"
yy679:
YYDEBUG(679, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy680;
- if (yych != 'e') goto yy186;
+ if (yych == 'C') goto yy690;
+ if (yych == 'c') goto yy690;
+ goto yy187;
yy680:
YYDEBUG(680, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy688;
+ if (yych == 'e') goto yy688;
+ goto yy187;
+yy681:
YYDEBUG(681, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1330 "Zend/zend_language_scanner.l"
- {
- return T_CALLABLE;
-}
-#line 6464 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy682;
+ if (yych != 'l') goto yy187;
yy682:
YYDEBUG(682, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy683;
+ if (yych != 'a') goto yy187;
+yy683:
YYDEBUG(683, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1116 "Zend/zend_language_scanner.l"
- {
- return T_CASE;
-}
-#line 6477 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'B') goto yy684;
+ if (yych != 'b') goto yy187;
yy684:
YYDEBUG(684, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy685;
- if (yych != 'h') goto yy186;
+ if (yych == 'L') goto yy685;
+ if (yych != 'l') goto yy187;
yy685:
YYDEBUG(685, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy686;
+ if (yych != 'e') goto yy187;
+yy686:
+ YYDEBUG(686, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(686, *YYCURSOR);
+ YYDEBUG(687, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
+#line 1340 "Zend/zend_language_scanner.l"
{
- return T_CATCH;
+ return T_CALLABLE;
}
-#line 6495 "Zend/zend_language_scanner.c"
-yy687:
- YYDEBUG(687, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy704;
- if (yych == 'n') goto yy704;
- goto yy186;
+#line 6504 "Zend/zend_language_scanner.c"
yy688:
YYDEBUG(688, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy697;
- if (yych == 'r') goto yy697;
- goto yy186;
-yy689:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(689, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy690;
- if (yych != 'n') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1126 "Zend/zend_language_scanner.l"
+ {
+ return T_CASE;
+}
+#line 6517 "Zend/zend_language_scanner.c"
yy690:
YYDEBUG(690, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy691;
- if (yych != 'c') goto yy186;
+ if (yych == 'H') goto yy691;
+ if (yych != 'h') goto yy187;
yy691:
YYDEBUG(691, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy692;
- if (yych != 't') goto yy186;
-yy692:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(692, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy693;
- if (yych != 'i') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1046 "Zend/zend_language_scanner.l"
+ {
+ return T_CATCH;
+}
+#line 6535 "Zend/zend_language_scanner.c"
yy693:
YYDEBUG(693, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy694;
- if (yych != 'o') goto yy186;
+ if (yych == 'N') goto yy710;
+ if (yych == 'n') goto yy710;
+ goto yy187;
yy694:
YYDEBUG(694, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy695;
- if (yych != 'n') goto yy186;
+ if (yych == 'R') goto yy703;
+ if (yych == 'r') goto yy703;
+ goto yy187;
yy695:
YYDEBUG(695, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy696;
+ if (yych != 'n') goto yy187;
+yy696:
YYDEBUG(696, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
- {
- return T_FUNCTION;
-}
-#line 6550 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy697;
+ if (yych != 'c') goto yy187;
yy697:
YYDEBUG(697, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '@') {
- if (yych <= '/') goto yy698;
- if (yych <= '9') goto yy185;
- } else {
- if (yych == 'E') goto yy699;
- if (yych <= 'Z') goto yy185;
- }
- } else {
- if (yych <= 'd') {
- if (yych != '`') goto yy185;
- } else {
- if (yych <= 'e') goto yy699;
- if (yych <= 'z') goto yy185;
- if (yych >= 0x7F) goto yy185;
- }
- }
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy698;
+ if (yych != 't') goto yy187;
yy698:
YYDEBUG(698, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1076 "Zend/zend_language_scanner.l"
- {
- return T_FOR;
-}
-#line 6578 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy699;
+ if (yych != 'i') goto yy187;
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy700;
- if (yych != 'a') goto yy186;
+ if (yych == 'O') goto yy700;
+ if (yych != 'o') goto yy187;
yy700:
YYDEBUG(700, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy701;
- if (yych != 'c') goto yy186;
+ if (yych == 'N') goto yy701;
+ if (yych != 'n') goto yy187;
yy701:
YYDEBUG(701, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy702;
- if (yych != 'h') goto yy186;
-yy702:
- YYDEBUG(702, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(703, *YYCURSOR);
+ YYDEBUG(702, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1084 "Zend/zend_language_scanner.l"
+#line 1026 "Zend/zend_language_scanner.l"
{
- return T_FOREACH;
+ return T_FUNCTION;
}
-#line 6606 "Zend/zend_language_scanner.c"
+#line 6590 "Zend/zend_language_scanner.c"
+yy703:
+ YYDEBUG(703, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy704;
+ if (yych <= '9') goto yy186;
+ } else {
+ if (yych == 'E') goto yy705;
+ if (yych <= 'Z') goto yy186;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych != '`') goto yy186;
+ } else {
+ if (yych <= 'e') goto yy705;
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
+ }
+ }
yy704:
YYDEBUG(704, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy705;
- if (yych != 'a') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1086 "Zend/zend_language_scanner.l"
+ {
+ return T_FOR;
+}
+#line 6618 "Zend/zend_language_scanner.c"
yy705:
YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy706;
- if (yych != 'l') goto yy186;
+ if (yych == 'A') goto yy706;
+ if (yych != 'a') goto yy187;
yy706:
YYDEBUG(706, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy707;
+ if (yych != 'c') goto yy187;
+yy707:
YYDEBUG(707, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1298 "Zend/zend_language_scanner.l"
- {
- return T_FINAL;
-}
-#line 6629 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy708;
+ if (yych != 'h') goto yy187;
yy708:
YYDEBUG(708, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'F') {
- if (yych == 'C') goto yy714;
- if (yych <= 'E') goto yy186;
- goto yy715;
- } else {
- if (yych <= 'c') {
- if (yych <= 'b') goto yy186;
- goto yy714;
- } else {
- if (yych == 'f') goto yy715;
- goto yy186;
- }
- }
-yy709:
- YYDEBUG(709, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy712;
- if (yych == 'e') goto yy712;
- goto yy186;
-yy710:
- YYDEBUG(710, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(711, *YYCURSOR);
+ YYDEBUG(709, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1072 "Zend/zend_language_scanner.l"
+#line 1094 "Zend/zend_language_scanner.l"
{
- return T_DO;
+ return T_FOREACH;
}
-#line 6664 "Zend/zend_language_scanner.c"
+#line 6646 "Zend/zend_language_scanner.c"
+yy710:
+ YYDEBUG(710, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy711;
+ if (yych != 'a') goto yy187;
+yy711:
+ YYDEBUG(711, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy712;
+ if (yych != 'l') goto yy187;
yy712:
YYDEBUG(712, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy713;
+ if (yych <= '9') goto yy186;
+ } else {
+ if (yych == 'L') goto yy714;
+ if (yych <= 'Z') goto yy186;
+ }
+ } else {
+ if (yych <= 'k') {
+ if (yych != '`') goto yy186;
+ } else {
+ if (yych <= 'l') goto yy714;
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
+ }
}
+yy713:
YYDEBUG(713, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1020 "Zend/zend_language_scanner.l"
+#line 1308 "Zend/zend_language_scanner.l"
{
- return T_EXIT;
+ return T_FINAL;
}
-#line 6677 "Zend/zend_language_scanner.c"
+#line 6684 "Zend/zend_language_scanner.c"
yy714:
YYDEBUG(714, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy721;
- if (yych == 'l') goto yy721;
- goto yy186;
+ if (yych == 'Y') goto yy715;
+ if (yych != 'y') goto yy187;
yy715:
YYDEBUG(715, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy716;
- if (yych != 'a') goto yy186;
-yy716:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(716, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy717;
- if (yych != 'u') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1050 "Zend/zend_language_scanner.l"
+ {
+ return T_FINALLY;
+}
+#line 6702 "Zend/zend_language_scanner.c"
yy717:
YYDEBUG(717, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy718;
- if (yych != 'l') goto yy186;
+ if (yych <= 'F') {
+ if (yych == 'C') goto yy723;
+ if (yych <= 'E') goto yy187;
+ goto yy724;
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy187;
+ goto yy723;
+ } else {
+ if (yych == 'f') goto yy724;
+ goto yy187;
+ }
+ }
yy718:
YYDEBUG(718, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy719;
- if (yych != 't') goto yy186;
+ if (yych == 'E') goto yy721;
+ if (yych == 'e') goto yy721;
+ goto yy187;
yy719:
YYDEBUG(719, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
YYDEBUG(720, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1120 "Zend/zend_language_scanner.l"
+#line 1082 "Zend/zend_language_scanner.l"
{
- return T_DEFAULT;
+ return T_DO;
}
-#line 6716 "Zend/zend_language_scanner.c"
+#line 6737 "Zend/zend_language_scanner.c"
yy721:
YYDEBUG(721, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy722;
- if (yych != 'a') goto yy186;
-yy722:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(722, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy723;
- if (yych != 'r') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1022 "Zend/zend_language_scanner.l"
+ {
+ return T_EXIT;
+}
+#line 6750 "Zend/zend_language_scanner.c"
yy723:
YYDEBUG(723, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy724;
- if (yych != 'e') goto yy186;
+ if (yych == 'L') goto yy730;
+ if (yych == 'l') goto yy730;
+ goto yy187;
yy724:
YYDEBUG(724, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy725;
+ if (yych != 'a') goto yy187;
+yy725:
YYDEBUG(725, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1092 "Zend/zend_language_scanner.l"
- {
- return T_DECLARE;
-}
-#line 6744 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy726;
+ if (yych != 'u') goto yy187;
yy726:
YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy788;
- if (yych == 'h') goto yy788;
- goto yy186;
+ if (yych == 'L') goto yy727;
+ if (yych != 'l') goto yy187;
yy727:
YYDEBUG(727, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy782;
- if (yych == 's') goto yy782;
- goto yy186;
+ if (yych == 'T') goto yy728;
+ if (yych != 't') goto yy187;
yy728:
YYDEBUG(728, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'P') goto yy778;
- if (yych == 'p') goto yy778;
- goto yy186;
-yy729:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(729, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy744;
- if (yych == 'd') goto yy744;
- goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1130 "Zend/zend_language_scanner.l"
+ {
+ return T_DEFAULT;
+}
+#line 6789 "Zend/zend_language_scanner.c"
yy730:
YYDEBUG(730, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy741;
- if (yych == 'a') goto yy741;
- goto yy186;
+ if (yych == 'A') goto yy731;
+ if (yych != 'a') goto yy187;
yy731:
YYDEBUG(731, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych == 'I') goto yy732;
- if (yych <= 'S') goto yy186;
- goto yy733;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy186;
- } else {
- if (yych == 't') goto yy733;
- goto yy186;
- }
- }
+ if (yych == 'R') goto yy732;
+ if (yych != 'r') goto yy187;
yy732:
YYDEBUG(732, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy739;
- if (yych == 't') goto yy739;
- goto yy186;
+ if (yych == 'E') goto yy733;
+ if (yych != 'e') goto yy187;
yy733:
YYDEBUG(733, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy734;
- if (yych != 'e') goto yy186;
-yy734:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
YYDEBUG(734, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy735;
- if (yych != 'n') goto yy186;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1102 "Zend/zend_language_scanner.l"
+ {
+ return T_DECLARE;
+}
+#line 6817 "Zend/zend_language_scanner.c"
yy735:
YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy736;
- if (yych != 'd') goto yy186;
+ if (yych == 'H') goto yy797;
+ if (yych == 'h') goto yy797;
+ goto yy187;
yy736:
YYDEBUG(736, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy737;
- if (yych != 's') goto yy186;
+ 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;
+yy738:
+ YYDEBUG(738, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy753;
+ if (yych == 'd') goto yy753;
+ goto yy187;
+yy739:
+ YYDEBUG(739, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy750;
+ if (yych == 'a') goto yy750;
+ goto yy187;
+yy740:
+ YYDEBUG(740, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych == 'I') goto yy741;
+ if (yych <= 'S') goto yy187;
+ goto yy742;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy187;
+ } else {
+ if (yych == 't') goto yy742;
+ goto yy187;
+ }
+ }
+yy741:
+ YYDEBUG(741, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy748;
+ if (yych == 't') goto yy748;
+ goto yy187;
+yy742:
+ YYDEBUG(742, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy743;
+ if (yych != 'e') goto yy187;
+yy743:
+ YYDEBUG(743, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy744;
+ if (yych != 'n') goto yy187;
+yy744:
+ YYDEBUG(744, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy745;
+ if (yych != 'd') goto yy187;
+yy745:
+ YYDEBUG(745, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy746;
+ if (yych != 's') goto yy187;
+yy746:
+ YYDEBUG(746, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(738, *YYCURSOR);
+ YYDEBUG(747, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1156 "Zend/zend_language_scanner.l"
+#line 1166 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 6828 "Zend/zend_language_scanner.c"
-yy739:
- YYDEBUG(739, *YYCURSOR);
+#line 6901 "Zend/zend_language_scanner.c"
+yy748:
+ YYDEBUG(748, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(740, *YYCURSOR);
+ YYDEBUG(749, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1016 "Zend/zend_language_scanner.l"
+#line 1018 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6841 "Zend/zend_language_scanner.c"
-yy741:
- YYDEBUG(741, *YYCURSOR);
+#line 6914 "Zend/zend_language_scanner.c"
+yy750:
+ YYDEBUG(750, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy742;
- if (yych != 'l') goto yy186;
-yy742:
- YYDEBUG(742, *YYCURSOR);
+ if (yych == 'L') goto yy751;
+ if (yych != 'l') goto yy187;
+yy751:
+ YYDEBUG(751, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(743, *YYCURSOR);
+ YYDEBUG(752, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1252 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 6859 "Zend/zend_language_scanner.c"
-yy744:
- YYDEBUG(744, *YYCURSOR);
+#line 6932 "Zend/zend_language_scanner.c"
+yy753:
+ YYDEBUG(753, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'D':
- case 'd': goto yy745;
+ case 'd': goto yy754;
case 'F':
- case 'f': goto yy746;
+ case 'f': goto yy755;
case 'I':
- case 'i': goto yy747;
+ case 'i': goto yy756;
case 'S':
- case 's': goto yy748;
+ case 's': goto yy757;
case 'W':
- case 'w': goto yy749;
- default: goto yy186;
+ case 'w': goto yy758;
+ default: goto yy187;
}
-yy745:
- YYDEBUG(745, *YYCURSOR);
+yy754:
+ YYDEBUG(754, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy771;
- if (yych == 'e') goto yy771;
- goto yy186;
-yy746:
- YYDEBUG(746, *YYCURSOR);
+ if (yych == 'E') goto yy780;
+ if (yych == 'e') goto yy780;
+ goto yy187;
+yy755:
+ YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy763;
- if (yych == 'o') goto yy763;
- goto yy186;
-yy747:
- YYDEBUG(747, *YYCURSOR);
+ if (yych == 'O') goto yy772;
+ if (yych == 'o') goto yy772;
+ goto yy187;
+yy756:
+ YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy761;
- if (yych == 'f') goto yy761;
- goto yy186;
-yy748:
- YYDEBUG(748, *YYCURSOR);
+ if (yych == 'F') goto yy770;
+ if (yych == 'f') goto yy770;
+ goto yy187;
+yy757:
+ YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy755;
- if (yych == 'w') goto yy755;
- goto yy186;
-yy749:
- YYDEBUG(749, *YYCURSOR);
+ if (yych == 'W') goto yy764;
+ if (yych == 'w') goto yy764;
+ goto yy187;
+yy758:
+ YYDEBUG(758, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy750;
- if (yych != 'h') goto yy186;
-yy750:
- YYDEBUG(750, *YYCURSOR);
+ if (yych == 'H') goto yy759;
+ if (yych != 'h') goto yy187;
+yy759:
+ YYDEBUG(759, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy751;
- if (yych != 'i') goto yy186;
-yy751:
- YYDEBUG(751, *YYCURSOR);
+ if (yych == 'I') goto yy760;
+ if (yych != 'i') goto yy187;
+yy760:
+ YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy752;
- if (yych != 'l') goto yy186;
-yy752:
- YYDEBUG(752, *YYCURSOR);
+ if (yych == 'L') goto yy761;
+ if (yych != 'l') goto yy187;
+yy761:
+ YYDEBUG(761, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy753;
- if (yych != 'e') goto yy186;
-yy753:
- YYDEBUG(753, *YYCURSOR);
+ if (yych == 'E') goto yy762;
+ if (yych != 'e') goto yy187;
+yy762:
+ YYDEBUG(762, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(754, *YYCURSOR);
+ YYDEBUG(763, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1068 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 6933 "Zend/zend_language_scanner.c"
-yy755:
- YYDEBUG(755, *YYCURSOR);
+#line 7006 "Zend/zend_language_scanner.c"
+yy764:
+ YYDEBUG(764, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy756;
- if (yych != 'i') goto yy186;
-yy756:
- YYDEBUG(756, *YYCURSOR);
+ if (yych == 'I') goto yy765;
+ if (yych != 'i') goto yy187;
+yy765:
+ YYDEBUG(765, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy757;
- if (yych != 't') goto yy186;
-yy757:
- YYDEBUG(757, *YYCURSOR);
+ if (yych == 'T') goto yy766;
+ if (yych != 't') goto yy187;
+yy766:
+ YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy758;
- if (yych != 'c') goto yy186;
-yy758:
- YYDEBUG(758, *YYCURSOR);
+ if (yych == 'C') goto yy767;
+ if (yych != 'c') goto yy187;
+yy767:
+ YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy759;
- if (yych != 'h') goto yy186;
-yy759:
- YYDEBUG(759, *YYCURSOR);
+ if (yych == 'H') goto yy768;
+ if (yych != 'h') goto yy187;
+yy768:
+ YYDEBUG(768, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(760, *YYCURSOR);
+ YYDEBUG(769, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1112 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 6966 "Zend/zend_language_scanner.c"
-yy761:
- YYDEBUG(761, *YYCURSOR);
+#line 7039 "Zend/zend_language_scanner.c"
+yy770:
+ YYDEBUG(770, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(762, *YYCURSOR);
+ YYDEBUG(771, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1056 "Zend/zend_language_scanner.l"
+#line 1066 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 6979 "Zend/zend_language_scanner.c"
-yy763:
- YYDEBUG(763, *YYCURSOR);
+#line 7052 "Zend/zend_language_scanner.c"
+yy772:
+ YYDEBUG(772, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy764;
- if (yych != 'r') goto yy186;
-yy764:
- YYDEBUG(764, *YYCURSOR);
+ if (yych == 'R') goto yy773;
+ if (yych != 'r') goto yy187;
+yy773:
+ YYDEBUG(773, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy765;
- if (yych <= '9') goto yy185;
+ if (yych <= '/') goto yy774;
+ if (yych <= '9') goto yy186;
} else {
- if (yych == 'E') goto yy766;
- if (yych <= 'Z') goto yy185;
+ if (yych == 'E') goto yy775;
+ if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'd') {
- if (yych != '`') goto yy185;
+ if (yych != '`') goto yy186;
} else {
- if (yych <= 'e') goto yy766;
- if (yych <= 'z') goto yy185;
- if (yych >= 0x7F) goto yy185;
+ if (yych <= 'e') goto yy775;
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
}
}
-yy765:
- YYDEBUG(765, *YYCURSOR);
+yy774:
+ YYDEBUG(774, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1080 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 7012 "Zend/zend_language_scanner.c"
-yy766:
- YYDEBUG(766, *YYCURSOR);
+#line 7085 "Zend/zend_language_scanner.c"
+yy775:
+ YYDEBUG(775, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy767;
- if (yych != 'a') goto yy186;
-yy767:
- YYDEBUG(767, *YYCURSOR);
+ if (yych == 'A') goto yy776;
+ if (yych != 'a') goto yy187;
+yy776:
+ YYDEBUG(776, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy768;
- if (yych != 'c') goto yy186;
-yy768:
- YYDEBUG(768, *YYCURSOR);
+ if (yych == 'C') goto yy777;
+ if (yych != 'c') goto yy187;
+yy777:
+ YYDEBUG(777, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy769;
- if (yych != 'h') goto yy186;
-yy769:
- YYDEBUG(769, *YYCURSOR);
+ if (yych == 'H') goto yy778;
+ if (yych != 'h') goto yy187;
+yy778:
+ YYDEBUG(778, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(770, *YYCURSOR);
+ YYDEBUG(779, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1088 "Zend/zend_language_scanner.l"
+#line 1098 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 7040 "Zend/zend_language_scanner.c"
-yy771:
- YYDEBUG(771, *YYCURSOR);
+#line 7113 "Zend/zend_language_scanner.c"
+yy780:
+ YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy772;
- if (yych != 'c') goto yy186;
-yy772:
- YYDEBUG(772, *YYCURSOR);
+ if (yych == 'C') goto yy781;
+ if (yych != 'c') goto yy187;
+yy781:
+ YYDEBUG(781, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy773;
- if (yych != 'l') goto yy186;
-yy773:
- YYDEBUG(773, *YYCURSOR);
+ if (yych == 'L') goto yy782;
+ if (yych != 'l') goto yy187;
+yy782:
+ YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy774;
- if (yych != 'a') goto yy186;
-yy774:
- YYDEBUG(774, *YYCURSOR);
+ if (yych == 'A') goto yy783;
+ if (yych != 'a') goto yy187;
+yy783:
+ YYDEBUG(783, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy775;
- if (yych != 'r') goto yy186;
-yy775:
- YYDEBUG(775, *YYCURSOR);
+ if (yych == 'R') goto yy784;
+ if (yych != 'r') goto yy187;
+yy784:
+ YYDEBUG(784, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy776;
- if (yych != 'e') goto yy186;
-yy776:
- YYDEBUG(776, *YYCURSOR);
+ if (yych == 'E') goto yy785;
+ if (yych != 'e') goto yy187;
+yy785:
+ YYDEBUG(785, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(777, *YYCURSOR);
+ YYDEBUG(786, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1096 "Zend/zend_language_scanner.l"
+#line 1106 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 7078 "Zend/zend_language_scanner.c"
-yy778:
- YYDEBUG(778, *YYCURSOR);
+#line 7151 "Zend/zend_language_scanner.c"
+yy787:
+ YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy779;
- if (yych != 't') goto yy186;
-yy779:
- YYDEBUG(779, *YYCURSOR);
+ if (yych == 'T') goto yy788;
+ if (yych != 't') goto yy187;
+yy788:
+ YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy780;
- if (yych != 'y') goto yy186;
-yy780:
- YYDEBUG(780, *YYCURSOR);
+ if (yych == 'Y') goto yy789;
+ if (yych != 'y') goto yy187;
+yy789:
+ YYDEBUG(789, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(781, *YYCURSOR);
+ YYDEBUG(790, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
+#line 1292 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 7101 "Zend/zend_language_scanner.c"
-yy782:
- YYDEBUG(782, *YYCURSOR);
+#line 7174 "Zend/zend_language_scanner.c"
+yy791:
+ YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy783;
- if (yych != 'e') goto yy186;
-yy783:
- YYDEBUG(783, *YYCURSOR);
+ if (yych == 'E') goto yy792;
+ if (yych != 'e') goto yy187;
+yy792:
+ YYDEBUG(792, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy784;
- if (yych <= '9') goto yy185;
+ if (yych <= '/') goto yy793;
+ if (yych <= '9') goto yy186;
} else {
- if (yych == 'I') goto yy785;
- if (yych <= 'Z') goto yy185;
+ if (yych == 'I') goto yy794;
+ if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'h') {
- if (yych != '`') goto yy185;
+ if (yych != '`') goto yy186;
} else {
- if (yych <= 'i') goto yy785;
- if (yych <= 'z') goto yy185;
- if (yych >= 0x7F) goto yy185;
+ if (yych <= 'i') goto yy794;
+ if (yych <= 'z') goto yy186;
+ if (yych >= 0x7F) goto yy186;
}
}
-yy784:
- YYDEBUG(784, *YYCURSOR);
+yy793:
+ YYDEBUG(793, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1060 "Zend/zend_language_scanner.l"
+#line 1070 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 7134 "Zend/zend_language_scanner.c"
-yy785:
- YYDEBUG(785, *YYCURSOR);
+#line 7207 "Zend/zend_language_scanner.c"
+yy794:
+ YYDEBUG(794, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy786;
- if (yych != 'f') goto yy186;
-yy786:
- YYDEBUG(786, *YYCURSOR);
+ if (yych == 'F') goto yy795;
+ if (yych != 'f') goto yy187;
+yy795:
+ YYDEBUG(795, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(787, *YYCURSOR);
+ YYDEBUG(796, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
+#line 1062 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 7152 "Zend/zend_language_scanner.c"
-yy788:
- YYDEBUG(788, *YYCURSOR);
+#line 7225 "Zend/zend_language_scanner.c"
+yy797:
+ YYDEBUG(797, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy789;
- if (yych != 'o') goto yy186;
-yy789:
- YYDEBUG(789, *YYCURSOR);
+ if (yych == 'O') goto yy798;
+ if (yych != 'o') goto yy187;
+yy798:
+ YYDEBUG(798, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy185;
+ goto yy186;
}
- YYDEBUG(790, *YYCURSOR);
+ YYDEBUG(799, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1136 "Zend/zend_language_scanner.l"
+#line 1146 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 7170 "Zend/zend_language_scanner.c"
+#line 7243 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7205,41 +7278,41 @@ yyc_ST_LOOKING_FOR_PROPERTY:
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
};
- YYDEBUG(791, *YYCURSOR);
+ YYDEBUG(800, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= '\r') {
- if (yych <= 0x08) goto yy799;
- if (yych <= '\n') goto yy793;
- if (yych <= '\f') goto yy799;
+ if (yych <= 0x08) goto yy808;
+ if (yych <= '\n') goto yy802;
+ if (yych <= '\f') goto yy808;
} else {
- if (yych == ' ') goto yy793;
- if (yych <= ',') goto yy799;
- goto yy795;
+ if (yych == ' ') goto yy802;
+ if (yych <= ',') goto yy808;
+ goto yy804;
}
} else {
if (yych <= '_') {
- if (yych <= '@') goto yy799;
- if (yych <= 'Z') goto yy797;
- if (yych <= '^') goto yy799;
- goto yy797;
+ if (yych <= '@') goto yy808;
+ if (yych <= 'Z') goto yy806;
+ if (yych <= '^') goto yy808;
+ goto yy806;
} else {
- if (yych <= '`') goto yy799;
- if (yych <= 'z') goto yy797;
- if (yych <= '~') goto yy799;
- goto yy797;
+ if (yych <= '`') goto yy808;
+ if (yych <= 'z') goto yy806;
+ if (yych <= '~') goto yy808;
+ goto yy806;
}
}
-yy793:
- YYDEBUG(793, *YYCURSOR);
+yy802:
+ YYDEBUG(802, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy805;
-yy794:
- YYDEBUG(794, *YYCURSOR);
+ goto yy814;
+yy803:
+ YYDEBUG(803, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1169 "Zend/zend_language_scanner.l"
+#line 1179 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -7247,73 +7320,73 @@ yy794:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 7251 "Zend/zend_language_scanner.c"
-yy795:
- YYDEBUG(795, *YYCURSOR);
+#line 7324 "Zend/zend_language_scanner.c"
+yy804:
+ YYDEBUG(804, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy802;
-yy796:
- YYDEBUG(796, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '>') goto yy811;
+yy805:
+ YYDEBUG(805, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1188 "Zend/zend_language_scanner.l"
+#line 1198 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 7265 "Zend/zend_language_scanner.c"
-yy797:
- YYDEBUG(797, *YYCURSOR);
+#line 7338 "Zend/zend_language_scanner.c"
+yy806:
+ YYDEBUG(806, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy801;
-yy798:
- YYDEBUG(798, *YYCURSOR);
+ goto yy810;
+yy807:
+ YYDEBUG(807, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1181 "Zend/zend_language_scanner.l"
+#line 1191 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7281 "Zend/zend_language_scanner.c"
-yy799:
- YYDEBUG(799, *YYCURSOR);
+#line 7354 "Zend/zend_language_scanner.c"
+yy808:
+ YYDEBUG(808, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy796;
-yy800:
- YYDEBUG(800, *YYCURSOR);
+ goto yy805;
+yy809:
+ YYDEBUG(809, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy801:
- YYDEBUG(801, *YYCURSOR);
+yy810:
+ YYDEBUG(810, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy800;
+ goto yy809;
}
- goto yy798;
-yy802:
- YYDEBUG(802, *YYCURSOR);
+ goto yy807;
+yy811:
+ YYDEBUG(811, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(803, *YYCURSOR);
+ YYDEBUG(812, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1177 "Zend/zend_language_scanner.l"
+#line 1187 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 7306 "Zend/zend_language_scanner.c"
-yy804:
- YYDEBUG(804, *YYCURSOR);
+#line 7379 "Zend/zend_language_scanner.c"
+yy813:
+ YYDEBUG(813, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy805:
- YYDEBUG(805, *YYCURSOR);
+yy814:
+ YYDEBUG(814, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy804;
+ goto yy813;
}
- goto yy794;
+ goto yy803;
}
/* *********************************** */
yyc_ST_LOOKING_FOR_VARNAME:
@@ -7352,73 +7425,99 @@ yyc_ST_LOOKING_FOR_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(806, *YYCURSOR);
+ YYDEBUG(815, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy810;
- if (yych <= 'Z') goto yy808;
- if (yych <= '^') goto yy810;
+ if (yych <= '@') goto yy819;
+ if (yych <= 'Z') goto yy817;
+ if (yych <= '^') goto yy819;
} else {
- if (yych <= '`') goto yy810;
- if (yych <= 'z') goto yy808;
- if (yych <= '~') goto yy810;
+ if (yych <= '`') goto yy819;
+ if (yych <= 'z') goto yy817;
+ if (yych <= '~') goto yy819;
}
-yy808:
- YYDEBUG(808, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy813;
-yy809:
- YYDEBUG(809, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
- {
- zend_copy_value(zendlval, yytext, yyleng);
- zendlval->type = IS_STRING;
- yy_pop_state(TSRMLS_C);
- yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
- return T_STRING_VARNAME;
-}
-#line 7384 "Zend/zend_language_scanner.c"
-yy810:
- YYDEBUG(810, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(811, *YYCURSOR);
+yy817:
+ YYDEBUG(817, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '_') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy818;
+ if (yych <= '9') goto yy821;
+ } else {
+ if (yych <= '[') goto yy821;
+ if (yych >= '_') goto yy821;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych <= '`') goto yy818;
+ if (yych <= 'z') goto yy821;
+ } else {
+ if (yych != '~') goto yy821;
+ }
+ }
+yy818:
+ YYDEBUG(818, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1484 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 7397 "Zend/zend_language_scanner.c"
-yy812:
- YYDEBUG(812, *YYCURSOR);
+#line 7471 "Zend/zend_language_scanner.c"
+yy819:
+ YYDEBUG(819, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy818;
+yy820:
+ YYDEBUG(820, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy813:
- YYDEBUG(813, *YYCURSOR);
+yy821:
+ YYDEBUG(821, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy812;
+ goto yy820;
}
- goto yy809;
+ if (yych == '[') goto yy823;
+ if (yych == '}') goto yy823;
+ YYDEBUG(822, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ goto yy818;
+yy823:
+ YYDEBUG(823, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(824, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1474 "Zend/zend_language_scanner.l"
+ {
+ yyless(yyleng - 1);
+ zend_copy_value(zendlval, yytext, yyleng);
+ zendlval->type = IS_STRING;
+ yy_pop_state(TSRMLS_C);
+ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ return T_STRING_VARNAME;
+}
+#line 7505 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_NOWDOC:
- YYDEBUG(814, *YYCURSOR);
+ YYDEBUG(825, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(816, *YYCURSOR);
+ YYDEBUG(827, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(817, *YYCURSOR);
+ YYDEBUG(828, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2355 "Zend/zend_language_scanner.l"
+#line 2368 "Zend/zend_language_scanner.l"
{
int newline = 0;
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+
if (YYCURSOR > YYLIMIT) {
return 0;
}
@@ -7434,8 +7533,8 @@ yyc_ST_NOWDOC:
/* fall through */
case '\n':
/* Check for ending label on the next line */
- if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
@@ -7470,7 +7569,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7474 "Zend/zend_language_scanner.c"
+#line 7573 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7508,76 +7607,76 @@ yyc_ST_VAR_OFFSET:
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
};
- YYDEBUG(818, *YYCURSOR);
+ YYDEBUG(829, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy832;
- if (yych <= '\n') goto yy828;
- goto yy832;
+ if (yych <= 0x08) goto yy843;
+ if (yych <= '\n') goto yy839;
+ goto yy843;
} else {
- if (yych <= '\r') goto yy828;
- if (yych <= 0x1F) goto yy832;
- goto yy828;
+ if (yych <= '\r') goto yy839;
+ if (yych <= 0x1F) goto yy843;
+ goto yy839;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy827;
- if (yych <= '#') goto yy828;
- goto yy823;
+ if (yych <= '"') goto yy838;
+ if (yych <= '#') goto yy839;
+ goto yy834;
} else {
- if (yych == '\'') goto yy828;
- goto yy827;
+ if (yych == '\'') goto yy839;
+ goto yy838;
}
}
} else {
if (yych <= '\\') {
if (yych <= '@') {
- if (yych <= '0') goto yy820;
- if (yych <= '9') goto yy822;
- goto yy827;
+ if (yych <= '0') goto yy831;
+ if (yych <= '9') goto yy833;
+ goto yy838;
} else {
- if (yych <= 'Z') goto yy830;
- if (yych <= '[') goto yy827;
- goto yy828;
+ if (yych <= 'Z') goto yy841;
+ if (yych <= '[') goto yy838;
+ goto yy839;
}
} else {
if (yych <= '_') {
- if (yych <= ']') goto yy825;
- if (yych <= '^') goto yy827;
- goto yy830;
+ if (yych <= ']') goto yy836;
+ if (yych <= '^') goto yy838;
+ goto yy841;
} else {
- if (yych <= '`') goto yy827;
- if (yych <= 'z') goto yy830;
- if (yych <= '~') goto yy827;
- goto yy830;
+ if (yych <= '`') goto yy838;
+ if (yych <= 'z') goto yy841;
+ if (yych <= '~') goto yy838;
+ goto yy841;
}
}
}
-yy820:
- YYDEBUG(820, *YYCURSOR);
+yy831:
+ YYDEBUG(831, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
if (yych <= '9') {
- if (yych >= '0') goto yy844;
+ if (yych >= '0') goto yy855;
} else {
- if (yych == 'B') goto yy841;
+ if (yych == 'B') goto yy852;
}
} else {
if (yych <= 'b') {
- if (yych <= 'X') goto yy843;
- if (yych >= 'b') goto yy841;
+ if (yych <= 'X') goto yy854;
+ if (yych >= 'b') goto yy852;
} else {
- if (yych == 'x') goto yy843;
+ if (yych == 'x') goto yy854;
}
}
-yy821:
- YYDEBUG(821, *YYCURSOR);
+yy832:
+ YYDEBUG(832, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1551 "Zend/zend_language_scanner.l"
+#line 1562 "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);
@@ -7589,81 +7688,81 @@ yy821:
}
return T_NUM_STRING;
}
-#line 7593 "Zend/zend_language_scanner.c"
-yy822:
- YYDEBUG(822, *YYCURSOR);
+#line 7692 "Zend/zend_language_scanner.c"
+yy833:
+ YYDEBUG(833, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy840;
-yy823:
- YYDEBUG(823, *YYCURSOR);
+ goto yy851;
+yy834:
+ YYDEBUG(834, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy824;
- if (yych <= 'Z') goto yy836;
- if (yych >= '_') goto yy836;
+ if (yych <= '@') goto yy835;
+ if (yych <= 'Z') goto yy847;
+ if (yych >= '_') goto yy847;
} else {
- if (yych <= '`') goto yy824;
- if (yych <= 'z') goto yy836;
- if (yych >= 0x7F) goto yy836;
+ if (yych <= '`') goto yy835;
+ if (yych <= 'z') goto yy847;
+ if (yych >= 0x7F) goto yy847;
}
-yy824:
- YYDEBUG(824, *YYCURSOR);
+yy835:
+ YYDEBUG(835, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1883 "Zend/zend_language_scanner.l"
+#line 1894 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 7618 "Zend/zend_language_scanner.c"
-yy825:
- YYDEBUG(825, *YYCURSOR);
+#line 7717 "Zend/zend_language_scanner.c"
+yy836:
+ YYDEBUG(836, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(826, *YYCURSOR);
+ YYDEBUG(837, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1878 "Zend/zend_language_scanner.l"
+#line 1889 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 7629 "Zend/zend_language_scanner.c"
-yy827:
- YYDEBUG(827, *YYCURSOR);
+#line 7728 "Zend/zend_language_scanner.c"
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy824;
-yy828:
- YYDEBUG(828, *YYCURSOR);
+ goto yy835;
+yy839:
+ YYDEBUG(839, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(829, *YYCURSOR);
+ YYDEBUG(840, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1888 "Zend/zend_language_scanner.l"
+#line 1899 "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 7646 "Zend/zend_language_scanner.c"
-yy830:
- YYDEBUG(830, *YYCURSOR);
+#line 7745 "Zend/zend_language_scanner.c"
+yy841:
+ YYDEBUG(841, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy835;
-yy831:
- YYDEBUG(831, *YYCURSOR);
+ goto yy846;
+yy842:
+ YYDEBUG(842, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1906 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7661 "Zend/zend_language_scanner.c"
-yy832:
- YYDEBUG(832, *YYCURSOR);
+#line 7760 "Zend/zend_language_scanner.c"
+yy843:
+ YYDEBUG(843, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(833, *YYCURSOR);
+ YYDEBUG(844, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2411 "Zend/zend_language_scanner.l"
+#line 2426 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -7672,118 +7771,118 @@ yy832:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 7676 "Zend/zend_language_scanner.c"
-yy834:
- YYDEBUG(834, *YYCURSOR);
+#line 7775 "Zend/zend_language_scanner.c"
+yy845:
+ YYDEBUG(845, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy835:
- YYDEBUG(835, *YYCURSOR);
+yy846:
+ YYDEBUG(846, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy834;
+ goto yy845;
}
- goto yy831;
-yy836:
- YYDEBUG(836, *YYCURSOR);
+ goto yy842;
+yy847:
+ YYDEBUG(847, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(837, *YYCURSOR);
+ YYDEBUG(848, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy836;
+ if (yych >= '0') goto yy847;
} else {
- if (yych <= '@') goto yy838;
- if (yych <= 'Z') goto yy836;
+ if (yych <= '@') goto yy849;
+ if (yych <= 'Z') goto yy847;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy836;
+ if (yych <= '_') goto yy847;
} else {
- if (yych <= 'z') goto yy836;
- if (yych >= 0x7F) goto yy836;
+ if (yych <= 'z') goto yy847;
+ if (yych >= 0x7F) goto yy847;
}
}
-yy838:
- YYDEBUG(838, *YYCURSOR);
+yy849:
+ YYDEBUG(849, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 7718 "Zend/zend_language_scanner.c"
-yy839:
- YYDEBUG(839, *YYCURSOR);
+#line 7817 "Zend/zend_language_scanner.c"
+yy850:
+ YYDEBUG(850, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy840:
- YYDEBUG(840, *YYCURSOR);
+yy851:
+ YYDEBUG(851, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy839;
+ goto yy850;
}
- goto yy821;
-yy841:
- YYDEBUG(841, *YYCURSOR);
+ goto yy832;
+yy852:
+ YYDEBUG(852, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy849;
+ goto yy860;
}
-yy842:
- YYDEBUG(842, *YYCURSOR);
+yy853:
+ YYDEBUG(853, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy821;
-yy843:
- YYDEBUG(843, *YYCURSOR);
+ goto yy832;
+yy854:
+ YYDEBUG(854, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy847;
+ goto yy858;
}
- goto yy842;
-yy844:
- YYDEBUG(844, *YYCURSOR);
+ goto yy853;
+yy855:
+ YYDEBUG(855, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(845, *YYCURSOR);
- if (yych <= '/') goto yy846;
- if (yych <= '9') goto yy844;
-yy846:
- YYDEBUG(846, *YYCURSOR);
+ YYDEBUG(856, *YYCURSOR);
+ if (yych <= '/') goto yy857;
+ if (yych <= '9') goto yy855;
+yy857:
+ YYDEBUG(857, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1574 "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;
return T_NUM_STRING;
}
-#line 7765 "Zend/zend_language_scanner.c"
-yy847:
- YYDEBUG(847, *YYCURSOR);
+#line 7864 "Zend/zend_language_scanner.c"
+yy858:
+ YYDEBUG(858, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(848, *YYCURSOR);
+ YYDEBUG(859, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy847;
+ goto yy858;
}
- goto yy846;
-yy849:
- YYDEBUG(849, *YYCURSOR);
+ goto yy857;
+yy860:
+ YYDEBUG(860, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(850, *YYCURSOR);
+ YYDEBUG(861, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy849;
+ goto yy860;
}
- goto yy846;
+ goto yy857;
}
}
-#line 2420 "Zend/zend_language_scanner.l"
+#line 2435 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h
index a1a84b3bc..c1a2313b2 100644
--- a/Zend/zend_language_scanner.h
+++ b/Zend/zend_language_scanner.h
@@ -31,6 +31,7 @@ typedef struct _zend_lex_state {
unsigned char *yy_limit;
int yy_state;
zend_stack state_stack;
+ zend_ptr_stack heredoc_label_stack;
zend_file_handle *in;
uint lineno;
@@ -50,6 +51,10 @@ typedef struct _zend_lex_state {
const zend_encoding *script_encoding;
} zend_lex_state;
+typedef struct _zend_heredoc_label {
+ char *label;
+ int length;
+} zend_heredoc_label;
BEGIN_EXTERN_C()
int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2);
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 703ca968e..dbf43977f 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -178,22 +178,23 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
void startup_scanner(TSRMLS_D)
{
CG(parse_error) = 0;
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
CG(doc_comment) = NULL;
CG(doc_comment_len) = 0;
zend_stack_init(&SCNG(state_stack));
+ zend_ptr_stack_init(&SCNG(heredoc_label_stack));
+}
+
+static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
+ efree(heredoc_label->label);
}
void shutdown_scanner(TSRMLS_D)
{
- if (CG(heredoc)) {
- efree(CG(heredoc));
- CG(heredoc_len)=0;
- }
CG(parse_error) = 0;
- zend_stack_destroy(&SCNG(state_stack));
RESET_DOC_COMMENT();
+ zend_stack_destroy(&SCNG(state_stack));
+ zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
+ zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
}
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
@@ -208,6 +209,9 @@ ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
lex_state->state_stack = SCNG(state_stack);
zend_stack_init(&SCNG(state_stack));
+ lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
+ zend_ptr_stack_init(&SCNG(heredoc_label_stack));
+
lex_state->in = SCNG(yy_in);
lex_state->yy_state = YYSTATE;
lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
@@ -234,6 +238,10 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
zend_stack_destroy(&SCNG(state_stack));
SCNG(state_stack) = lex_state->state_stack;
+ zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
+ zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
+ SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
+
SCNG(yy_in) = lex_state->in;
YYSETCONDITION(lex_state->yy_state);
CG(zend_lineno) = lex_state->lineno;
@@ -250,12 +258,6 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
SCNG(input_filter) = lex_state->input_filter;
SCNG(output_filter) = lex_state->output_filter;
SCNG(script_encoding) = lex_state->script_encoding;
-
- if (CG(heredoc)) {
- efree(CG(heredoc));
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
- }
}
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
@@ -1033,6 +1035,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_RETURN;
}
+<ST_IN_SCRIPTING>"yield" {
+ return T_YIELD;
+}
+
<ST_IN_SCRIPTING>"try" {
return T_TRY;
}
@@ -1041,6 +1047,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_CATCH;
}
+<ST_IN_SCRIPTING>"finally" {
+ return T_FINALLY;
+}
+
<ST_IN_SCRIPTING>"throw" {
return T_THROW;
}
@@ -1461,7 +1471,8 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_LOOKING_FOR_VARNAME>{LABEL} {
+<ST_LOOKING_FOR_VARNAME>{LABEL}[[}] {
+ yyless(yyleng - 1);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
yy_pop_state(TSRMLS_C);
@@ -2104,38 +2115,35 @@ inline_html:
<ST_IN_SCRIPTING>b?"<<<"{TABS_AND_SPACES}({LABEL}|([']{LABEL}['])|(["]{LABEL}["])){NEWLINE} {
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
-
- /* save old heredoc label */
- Z_STRVAL_P(zendlval) = CG(heredoc);
- Z_STRLEN_P(zendlval) = CG(heredoc_len);
+ zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
CG(zend_lineno)++;
- CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+ heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
s = yytext+bprefix+3;
while ((*s == ' ') || (*s == '\t')) {
s++;
- CG(heredoc_len)--;
+ heredoc_label->length--;
}
if (*s == '\'') {
s++;
- CG(heredoc_len) -= 2;
+ heredoc_label->length -= 2;
BEGIN(ST_NOWDOC);
} else {
if (*s == '"') {
s++;
- CG(heredoc_len) -= 2;
+ heredoc_label->length -= 2;
}
BEGIN(ST_HEREDOC);
}
- CG(heredoc) = estrndup(s, CG(heredoc_len));
+ heredoc_label->label = estrndup(s, heredoc_label->length);
/* Check for ending label on the next line */
- if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
@@ -2146,6 +2154,8 @@ inline_html:
}
}
+ zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
+
return T_START_HEREDOC;
}
@@ -2157,13 +2167,14 @@ inline_html:
<ST_END_HEREDOC>{ANY_CHAR} {
- YYCURSOR += CG(heredoc_len) - 1;
- yyleng = CG(heredoc_len);
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
+
+ YYCURSOR += heredoc_label->length - 1;
+ yyleng = heredoc_label->length;
+
+ heredoc_label_dtor(heredoc_label);
+ efree(heredoc_label);
- Z_STRVAL_P(zendlval) = CG(heredoc);
- Z_STRLEN_P(zendlval) = CG(heredoc_len);
- CG(heredoc) = NULL;
- CG(heredoc_len) = 0;
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
@@ -2283,6 +2294,8 @@ double_quotes_scan_done:
<ST_HEREDOC>{ANY_CHAR} {
int newline = 0;
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+
if (YYCURSOR > YYLIMIT) {
return 0;
}
@@ -2298,8 +2311,8 @@ double_quotes_scan_done:
/* fall through */
case '\n':
/* Check for ending label on the next line */
- if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
@@ -2355,6 +2368,8 @@ heredoc_scan_done:
<ST_NOWDOC>{ANY_CHAR} {
int newline = 0;
+ zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
+
if (YYCURSOR > YYLIMIT) {
return 0;
}
@@ -2370,8 +2385,8 @@ heredoc_scan_done:
/* fall through */
case '\n':
/* Check for ending label on the next line */
- if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
- YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+ if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
if (*end == ';') {
end++;
diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h
index dbf867404..47df7e92d 100644
--- a/Zend/zend_language_scanner_defs.h
+++ b/Zend/zend_language_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Mon Apr 30 15:55:05 2012 */
+/* Generated by re2c 0.13.5 on Mon Aug 20 13:34:50 2012 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {
diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h
index ad15a9662..442535bc6 100644
--- a/Zend/zend_modules.h
+++ b/Zend/zend_modules.h
@@ -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 20100525
+#define ZEND_MODULE_API_NO 20121113
#ifdef ZTS
#define USING_ZTS 1
#else
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 4c6a784a8..224c7a209 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -87,6 +87,7 @@ void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_siz
op_array->static_variables = NULL;
op_array->last_try_catch = 0;
+ op_array->has_finally_block = 0;
op_array->this_var = -1;
@@ -498,6 +499,24 @@ static void zend_extension_op_array_handler(zend_extension *extension, zend_op_a
}
}
+static void zend_check_finally_breakout(zend_op_array *op_array, zend_op *opline, zend_uint dst_num TSRMLS_DC) {
+ zend_uint i, op_num = opline - op_array->opcodes;
+ for (i=0; i < op_array->last_try_catch; i++) {
+ if (op_array->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if ((op_num >= op_array->try_catch_array[i].finally_op
+ && op_num < op_array->try_catch_array[i].finally_end)
+ && (dst_num >= op_array->try_catch_array[i].finally_end
+ || dst_num < op_array->try_catch_array[i].finally_op)) {
+ CG(in_compilation) = 1;
+ CG(active_op_array) = op_array;
+ CG(zend_lineno) = opline->lineno;
+ zend_error(E_COMPILE_ERROR, "jump out of a finally block is disallowed");
+ }
+ }
+}
+
ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC)
{
zend_op *opline, *end;
@@ -541,8 +560,30 @@ ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC)
}
/* break omitted intentionally */
case ZEND_JMP:
+ if (op_array->last_try_catch) {
+ zend_check_finally_breakout(op_array, opline, opline->op1.opline_num TSRMLS_CC);
+ }
opline->op1.jmp_addr = &op_array->opcodes[opline->op1.opline_num];
break;
+ case ZEND_BRK:
+ case ZEND_CONT:
+ if (op_array->last_try_catch) {
+ int nest_levels, array_offset;
+ zend_brk_cont_element *jmp_to;
+
+ nest_levels = Z_LVAL_P(opline->op2.zv);
+ array_offset = opline->op1.opline_num;
+ do {
+ jmp_to = &op_array->brk_cont_array[array_offset];
+ if (nest_levels > 1) {
+ array_offset = jmp_to->parent;
+ }
+ } while (--nest_levels > 0);
+ if (op_array->last_try_catch) {
+ zend_check_finally_breakout(op_array, opline, jmp_to->brk TSRMLS_CC);
+ }
+ }
+ break;
case ZEND_JMPZ:
case ZEND_JMPNZ:
case ZEND_JMPZ_EX:
@@ -551,6 +592,17 @@ ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC)
case ZEND_JMP_SET_VAR:
opline->op2.jmp_addr = &op_array->opcodes[opline->op2.opline_num];
break;
+ case ZEND_RETURN:
+ case ZEND_RETURN_BY_REF:
+ 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\"");
+ }
+
+ opline->opcode = ZEND_GENERATOR_RETURN;
+ }
+ break;
}
ZEND_VM_SET_OPCODE_HANDLER(opline);
opline++;
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 9b01e5fbc..cf3a908ad 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -42,6 +42,43 @@ static _locale_t current_locale = NULL;
#define TYPE_PAIR(t1,t2) (((t1) << 4) | (t2))
+static const unsigned char tolower_map[256] = {
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
+0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
+0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
+0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
+0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
+0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
+};
+
+#define zend_tolower_ascii(c) (tolower_map[(unsigned char)(c)])
+
+/**
+ * Functions using locale lowercase:
+ zend_binary_strncasecmp_l
+ zend_binary_strcasecmp_l
+ zend_binary_zval_strcasecmp
+ zend_binary_zval_strncasecmp
+ string_compare_function_ex
+ string_case_compare_function
+ * Functions using ascii lowercase:
+ zend_str_tolower_copy
+ zend_str_tolower_dup
+ zend_str_tolower
+ zend_binary_strcasecmp
+ zend_binary_strncasecmp
+ */
+
ZEND_API int zend_atoi(const char *str, int str_len) /* {{{ */
{
int retval;
@@ -1911,7 +1948,7 @@ ZEND_API char *zend_str_tolower_copy(char *dest, const char *source, unsigned in
register unsigned char *end = str + length;
while (str < end) {
- *result++ = zend_tolower((int)*str++);
+ *result++ = zend_tolower_ascii(*str++);
}
*result = '\0';
@@ -1931,7 +1968,7 @@ ZEND_API void zend_str_tolower(char *str, unsigned int length) /* {{{ */
register unsigned char *end = p + length;
while (p < end) {
- *p = zend_tolower((int)*p);
+ *p = zend_tolower_ascii(*p);
p++;
}
}
@@ -1980,6 +2017,49 @@ ZEND_API int zend_binary_strcasecmp(const char *s1, uint len1, const char *s2, u
len = MIN(len1, len2);
while (len--) {
+ c1 = zend_tolower_ascii(*(unsigned char *)s1++);
+ c2 = zend_tolower_ascii(*(unsigned char *)s2++);
+ if (c1 != c2) {
+ return c1 - c2;
+ }
+ }
+
+ return len1 - len2;
+}
+/* }}} */
+
+ZEND_API int zend_binary_strncasecmp(const char *s1, uint len1, const char *s2, uint len2, uint length) /* {{{ */
+{
+ int len;
+ int c1, c2;
+
+ if (s1 == s2) {
+ return 0;
+ }
+ len = MIN(length, MIN(len1, len2));
+ while (len--) {
+ c1 = zend_tolower_ascii(*(unsigned char *)s1++);
+ c2 = zend_tolower_ascii(*(unsigned char *)s2++);
+ if (c1 != c2) {
+ return c1 - c2;
+ }
+ }
+
+ return MIN(length, len1) - MIN(length, len2);
+}
+/* }}} */
+
+ZEND_API int zend_binary_strcasecmp_l(const char *s1, uint len1, const char *s2, uint len2) /* {{{ */
+{
+ int len;
+ int c1, c2;
+
+ if (s1 == s2) {
+ return 0;
+ }
+
+ len = MIN(len1, len2);
+ while (len--) {
c1 = zend_tolower((int)*(unsigned char *)s1++);
c2 = zend_tolower((int)*(unsigned char *)s2++);
if (c1 != c2) {
@@ -1991,7 +2071,7 @@ ZEND_API int zend_binary_strcasecmp(const char *s1, uint len1, const char *s2, u
}
/* }}} */
-ZEND_API int zend_binary_strncasecmp(const char *s1, uint len1, const char *s2, uint len2, uint length) /* {{{ */
+ZEND_API int zend_binary_strncasecmp_l(const char *s1, uint len1, const char *s2, uint len2, uint length) /* {{{ */
{
int len;
int c1, c2;
@@ -2026,13 +2106,13 @@ ZEND_API int zend_binary_zval_strncmp(zval *s1, zval *s2, zval *s3) /* {{{ */
ZEND_API int zend_binary_zval_strcasecmp(zval *s1, zval *s2) /* {{{ */
{
- return zend_binary_strcasecmp(Z_STRVAL_P(s1), Z_STRLEN_P(s1), Z_STRVAL_P(s2), Z_STRLEN_P(s2));
+ return zend_binary_strcasecmp_l(Z_STRVAL_P(s1), Z_STRLEN_P(s1), Z_STRVAL_P(s2), Z_STRLEN_P(s2));
}
/* }}} */
ZEND_API int zend_binary_zval_strncasecmp(zval *s1, zval *s2, zval *s3) /* {{{ */
{
- return zend_binary_strncasecmp(Z_STRVAL_P(s1), Z_STRLEN_P(s1), Z_STRVAL_P(s2), Z_STRLEN_P(s2), Z_LVAL_P(s3));
+ return zend_binary_strncasecmp_l(Z_STRVAL_P(s1), Z_STRLEN_P(s1), Z_STRVAL_P(s2), Z_STRLEN_P(s2), Z_LVAL_P(s3));
}
/* }}} */
@@ -2067,7 +2147,7 @@ ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2) /* {{{ */
} else if (ret2!=IS_DOUBLE) {
if (oflow1) {
ZVAL_LONG(result, oflow1);
- return;
+ return;
}
dval2 = (double) lval2;
} else if (dval1 == dval2 && !zend_finite(dval1)) {
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index d28140e9e..08a6b19bd 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -340,6 +340,7 @@ ZEND_API int zend_binary_strcmp(const char *s1, uint len1, const char *s2, uint
ZEND_API int zend_binary_strncmp(const char *s1, uint len1, const char *s2, uint len2, uint length);
ZEND_API int zend_binary_strcasecmp(const char *s1, uint len1, const char *s2, uint len2);
ZEND_API int zend_binary_strncasecmp(const char *s1, uint len1, const char *s2, uint len2, uint length);
+ZEND_API int zend_binary_strncasecmp_l(const char *s1, uint len1, const char *s2, uint len2, uint length);
ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2);
ZEND_API void zend_compare_symbol_tables(zval *result, HashTable *ht1, HashTable *ht2 TSRMLS_DC);
diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c
index aefa91f73..d178cc018 100644
--- a/Zend/zend_ptr_stack.c
+++ b/Zend/zend_ptr_stack.c
@@ -111,6 +111,22 @@ ZEND_API int zend_ptr_stack_num_elements(zend_ptr_stack *stack)
return stack->top;
}
+ZEND_API void zend_ptr_stack_push_from_memory(zend_ptr_stack *stack, int count, void **pointers)
+{
+ ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count);
+
+ memcpy(stack->top_element, pointers, count * sizeof(void *));
+ stack->top_element += count;
+ stack->top += count;
+}
+
+ZEND_API void zend_ptr_stack_pop_into_memory(zend_ptr_stack *stack, int count, void **pointers)
+{
+ memcpy(pointers, stack->top_element - count, count * sizeof(void *));
+ stack->top_element -= count;
+ stack->top -= count;
+}
+
/*
* Local variables:
* tab-width: 4
diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h
index cc062de87..fe93e93b5 100644
--- a/Zend/zend_ptr_stack.h
+++ b/Zend/zend_ptr_stack.h
@@ -41,6 +41,8 @@ ZEND_API void zend_ptr_stack_destroy(zend_ptr_stack *stack);
ZEND_API void zend_ptr_stack_apply(zend_ptr_stack *stack, void (*func)(void *));
ZEND_API void zend_ptr_stack_clean(zend_ptr_stack *stack, void (*func)(void *), zend_bool free_elements);
ZEND_API int zend_ptr_stack_num_elements(zend_ptr_stack *stack);
+ZEND_API void zend_ptr_stack_push_from_memory(zend_ptr_stack *stack, int count, void **pointers);
+ZEND_API void zend_ptr_stack_pop_into_memory(zend_ptr_stack *stack, int count, void **pointers);
END_EXTERN_C()
#define ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count) \
@@ -111,6 +113,11 @@ static zend_always_inline void *zend_ptr_stack_pop(zend_ptr_stack *stack)
return *(--stack->top_element);
}
+static inline void *zend_ptr_stack_top(zend_ptr_stack *stack)
+{
+ return stack->elements[stack->top - 1];
+}
+
#endif /* ZEND_PTR_STACK_H */
/*
diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c
index f61ae0b17..6105fb111 100644
--- a/Zend/zend_signal.c
+++ b/Zend/zend_signal.c
@@ -215,7 +215,7 @@ ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigac
sa.sa_mask = global_sigmask;
if (sigaction(signo, &sa, NULL) < 0) {
- zend_error(E_WARNING, "Error installing signal handler for %d", signo);
+ zend_error(E_ERROR, "Error installing signal handler for %d", signo);
}
/* unsure this signal is not blocked */
@@ -267,7 +267,7 @@ static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void
sa.sa_mask = global_sigmask;
if (sigaction(signo, &sa, NULL) < 0) {
- zend_error(E_WARNING, "Error installing signal handler for %d", signo);
+ zend_error(E_ERROR, "Error installing signal handler for %d", signo);
}
return SUCCESS;
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c
index 70e61122a..25a66a197 100644
--- a/Zend/zend_variables.c
+++ b/Zend/zend_variables.c
@@ -40,6 +40,8 @@ ZEND_API void _zval_dtor_func(zval *zvalue ZEND_FILE_LINE_DC)
TSRMLS_FETCH();
if (zvalue->value.ht && (zvalue->value.ht != &EG(symbol_table))) {
+ /* break possible cycles */
+ Z_TYPE_P(zvalue) = IS_NULL;
zend_hash_destroy(zvalue->value.ht);
FREE_HASHTABLE(zvalue->value.ht);
}
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 9d475a688..b06c09f48 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1174,7 +1174,7 @@ ZEND_VM_HANDLER(89, ZEND_FETCH_IS, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
ZEND_VM_DISPATCH_TO_HELPER_EX(zend_fetch_var_address_helper, type, BP_VAR_IS);
}
-ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, VAR|CV, CONST|TMP|VAR|CV)
+ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
@@ -1187,10 +1187,19 @@ ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, VAR|CV, CONST|TMP|VAR|CV)
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = GET_OP1_ZVAL_PTR_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_VAR_PTR();
+
+ if (OP1_TYPE == IS_TMP_VAR || OP1_TYPE == IS_CONST) {
+ zval *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();
+ } else {
+ container = GET_OP1_ZVAL_PTR_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_VAR_PTR();
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -1831,6 +1840,386 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
ZEND_VM_NEXT_OPCODE();
}
+ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
+{
+ zend_bool nested;
+ zend_op_array *op_array = EX(op_array);
+
+ /* Generators go throw a different cleanup process */
+ if (EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ /* Close the generator to free up resources */
+ zend_generator_close(generator, 1 TSRMLS_CC);
+
+ /* Pass execution back to handling code */
+ ZEND_VM_RETURN();
+ }
+
+ EG(current_execute_data) = EX(prev_execute_data);
+ EG(opline_ptr) = NULL;
+ if (!EG(active_symbol_table)) {
+ zend_free_compiled_variables(EX_CVs(), op_array->last_var);
+ }
+
+ if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
+ zval_ptr_dtor((zval**)&op_array->prototype);
+ }
+
+ nested = EX(nested);
+
+ zend_vm_stack_free(execute_data TSRMLS_CC);
+
+ if (nested) {
+ execute_data = EG(current_execute_data);
+ }
+ if (nested) {
+ USE_OPLINE
+
+ LOAD_REGS();
+ LOAD_OPLINE();
+ if (UNEXPECTED(opline->opcode == ZEND_INCLUDE_OR_EVAL)) {
+
+ EX(function_state).function = (zend_function *) EX(op_array);
+ EX(function_state).arguments = NULL;
+ EX(object) = EX(current_object);
+
+ EG(opline_ptr) = &EX(opline);
+ EG(active_op_array) = EX(op_array);
+ EG(return_value_ptr_ptr) = EX(original_return_value);
+ destroy_op_array(op_array TSRMLS_CC);
+ efree(op_array);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ zend_throw_exception_internal(NULL TSRMLS_CC);
+ HANDLE_EXCEPTION_LEAVE();
+ } else if (RETURN_VALUE_USED(opline)) {
+ if (!EX_T(opline->result.var).var.ptr) { /* there was no return statement */
+ zval *retval;
+
+ ALLOC_ZVAL(retval);
+ ZVAL_BOOL(retval, 1);
+ INIT_PZVAL(retval);
+ EX_T(opline->result.var).var.ptr = retval;
+ }
+ }
+
+ ZEND_VM_INC_OPCODE();
+ ZEND_VM_LEAVE();
+ } else {
+ EG(opline_ptr) = &EX(opline);
+ EG(active_op_array) = EX(op_array);
+ EG(return_value_ptr_ptr) = EX(original_return_value);
+ if (EG(active_symbol_table)) {
+ zend_clean_and_cache_symbol_table(EG(active_symbol_table) TSRMLS_CC);
+ }
+ EG(active_symbol_table) = EX(symbol_table);
+
+ EX(function_state).function = (zend_function *) EX(op_array);
+ EX(function_state).arguments = NULL;
+
+ if (EG(This)) {
+ if (UNEXPECTED(EG(exception) != NULL) && IS_CTOR_CALL(EX(called_scope))) {
+ if (IS_CTOR_USED(EX(called_scope))) {
+ Z_DELREF_P(EG(This));
+ }
+ if (Z_REFCOUNT_P(EG(This)) == 1) {
+ zend_object_store_ctor_failed(EG(This) TSRMLS_CC);
+ }
+ }
+ zval_ptr_dtor(&EG(This));
+ }
+ EG(This) = EX(current_this);
+ EG(scope) = EX(current_scope);
+ EG(called_scope) = EX(current_called_scope);
+
+ EX(object) = EX(current_object);
+ EX(called_scope) = DECODE_CTOR(EX(called_scope));
+
+ zend_vm_stack_clear_multiple(TSRMLS_C);
+
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ zend_throw_exception_internal(NULL TSRMLS_CC);
+ if (RETURN_VALUE_USED(opline) && EX_T(opline->result.var).var.ptr) {
+ zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
+ }
+ HANDLE_EXCEPTION_LEAVE();
+ }
+
+ ZEND_VM_INC_OPCODE();
+ ZEND_VM_LEAVE();
+ }
+ }
+ ZEND_VM_RETURN();
+}
+
+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;
+
+ SAVE_OPLINE();
+ 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 (fbc->common.scope &&
+ !(fbc->common.fn_flags & ZEND_ACC_STATIC) &&
+ !EX(object)) {
+
+ 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);
+ } 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. */
+ zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically", fbc->common.scope->name, fbc->common.function_name);
+ }
+ }
+
+ if (fbc->type == ZEND_USER_FUNCTION || fbc->common.scope) {
+ should_change_scope = 1;
+ EX(current_this) = EG(This);
+ EX(current_scope) = EG(scope);
+ EX(current_called_scope) = EG(called_scope);
+ EG(This) = EX(object);
+ EG(scope) = (fbc->type == ZEND_USER_FUNCTION || !EX(object)) ? fbc->common.scope : NULL;
+ EG(called_scope) = EX(called_scope);
+ }
+
+ zend_arg_types_stack_3_pop(&EG(arg_types_stack), &EX(called_scope), &EX(current_object), &EX(fbc));
+ EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC);
+ LOAD_OPLINE();
+
+ if (fbc->type == ZEND_INTERNAL_FUNCTION) {
+ temp_variable *ret = &EX_T(opline->result.var);
+
+ MAKE_STD_ZVAL(ret->var.ptr);
+ ZVAL_NULL(ret->var.ptr);
+ ret->var.ptr_ptr = &ret->var.ptr;
+ ret->var.fcall_returned_reference = (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
+
+ 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 (!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);
+ } else {
+ zend_execute_internal(EXECUTE_DATA, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
+ }
+
+ if (!RETURN_VALUE_USED(opline)) {
+ zval_ptr_dtor(&ret->var.ptr);
+ }
+ } else if (fbc->type == ZEND_USER_FUNCTION) {
+ EX(original_return_value) = EG(return_value_ptr_ptr);
+ EG(active_symbol_table) = NULL;
+ EG(active_op_array) = &fbc->op_array;
+ EG(return_value_ptr_ptr) = NULL;
+ if (RETURN_VALUE_USED(opline)) {
+ temp_variable *ret = &EX_T(opline->result.var);
+
+ ret->var.ptr = NULL;
+ EG(return_value_ptr_ptr) = &ret->var.ptr;
+ ret->var.ptr_ptr = &ret->var.ptr;
+ ret->var.fcall_returned_reference = (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
+ }
+
+ if (EG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ if (RETURN_VALUE_USED(opline)) {
+ EX_T(opline->result.var).var.ptr = zend_generator_create_zval(EG(active_op_array) TSRMLS_CC);
+ }
+ } else if (EXPECTED(zend_execute == execute)) {
+ if (EXPECTED(EG(exception) == NULL)) {
+ ZEND_VM_ENTER();
+ }
+ } else {
+ zend_execute(EG(active_op_array) TSRMLS_CC);
+ }
+
+ EG(opline_ptr) = &EX(opline);
+ EG(active_op_array) = EX(op_array);
+ EG(return_value_ptr_ptr) = EX(original_return_value);
+ if (EG(active_symbol_table)) {
+ zend_clean_and_cache_symbol_table(EG(active_symbol_table) TSRMLS_CC);
+ }
+ EG(active_symbol_table) = EX(symbol_table);
+ } else { /* ZEND_OVERLOADED_FUNCTION */
+ MAKE_STD_ZVAL(EX_T(opline->result.var).var.ptr);
+ ZVAL_NULL(EX_T(opline->result.var).var.ptr);
+
+ /* 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);
+ } else {
+ zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object");
+ }
+
+ if (fbc->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY) {
+ efree((char*)fbc->common.function_name);
+ }
+ efree(fbc);
+
+ if (!RETURN_VALUE_USED(opline)) {
+ zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
+ } else {
+ Z_UNSET_ISREF_P(EX_T(opline->result.var).var.ptr);
+ Z_SET_REFCOUNT_P(EX_T(opline->result.var).var.ptr, 1);
+ EX_T(opline->result.var).var.fcall_returned_reference = 0;
+ EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
+ }
+ }
+
+ EX(function_state).function = (zend_function *) EX(op_array);
+ EX(function_state).arguments = NULL;
+
+ if (should_change_scope) {
+ if (EG(This)) {
+ if (UNEXPECTED(EG(exception) != NULL) && IS_CTOR_CALL(EX(called_scope))) {
+ if (IS_CTOR_USED(EX(called_scope))) {
+ Z_DELREF_P(EG(This));
+ }
+ if (Z_REFCOUNT_P(EG(This)) == 1) {
+ zend_object_store_ctor_failed(EG(This) TSRMLS_CC);
+ }
+ }
+ zval_ptr_dtor(&EG(This));
+ }
+ EG(This) = EX(current_this);
+ EG(scope) = EX(current_scope);
+ EG(called_scope) = EX(current_called_scope);
+ }
+
+ EX(object) = EX(current_object);
+ EX(called_scope) = DECODE_CTOR(EX(called_scope));
+
+ zend_vm_stack_clear_multiple(TSRMLS_C);
+
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ zend_throw_exception_internal(NULL TSRMLS_CC);
+ if (RETURN_VALUE_USED(opline) && EX_T(opline->result.var).var.ptr) {
+ zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
+ }
+ HANDLE_EXCEPTION();
+ }
+
+ ZEND_VM_NEXT_OPCODE();
+}
+
+ZEND_VM_HELPER_EX(zend_finally_handler_leaving, ANY, ANY, int type)
+{
+ USE_OPLINE
+ zend_uint i, op_num = opline - EX(op_array)->opcodes;
+ zend_uint catch_op_num = 0, finally_op_num = 0;
+
+ SAVE_OPLINE();
+
+ switch (type) {
+ case ZEND_THROW:
+ case ZEND_RETURN:
+ case ZEND_RETURN_BY_REF:
+ case ZEND_LEAVE:
+ {
+ if (EG(prev_exception) || (type == ZEND_LEAVE && EG(exception))) {
+ for (i=0; i<EX(op_array)->last_try_catch; i++) {
+ if (EX(op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].finally_op) {
+ finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].catch_op) {
+ catch_op_num = EX(op_array)->try_catch_array[i].catch_op;
+ }
+ }
+ } else {
+ for (i=0; i<EX(op_array)->last_try_catch; i++) {
+ if (EX(op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].finally_op) {
+ finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
+ }
+ }
+ }
+
+ if (catch_op_num && finally_op_num) {
+ /* EG(exception) || EG(prev_exception) */
+ if (catch_op_num > finally_op_num) {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ }
+ } else if (catch_op_num) {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ } else if (finally_op_num) {
+ zend_exception_save(TSRMLS_C);
+ if (type != ZEND_LEAVE) {
+ EX(leaving) = type;
+ }
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else if (EX(leaving) && type != ZEND_LEAVE) {
+ /* leave it to ZEND_LEAVE */
+ EX(leaving) = type;
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ }
+ }
+ break;
+ case ZEND_JMP:
+ case ZEND_BRK:
+ case ZEND_CONT:
+ case ZEND_GOTO:
+ {
+ /* these can not occurred in exception context */
+ for (i=0; i<EG(active_op_array)->last_try_catch; i++) {
+ if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EG(active_op_array)->try_catch_array[i].finally_op
+ && (EX(leaving_dest) < EG(active_op_array)->try_catch_array[i].try_op
+ || EX(leaving_dest) >= EG(active_op_array)->try_catch_array[i].finally_end)) {
+ finally_op_num = EG(active_op_array)->try_catch_array[i].finally_op;
+ }
+ }
+
+ if (finally_op_num) {
+ EX(leaving) = type;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[EX(leaving_dest)]);
+ }
+ }
+ break;
+ }
+ ZEND_VM_CONTINUE();
+}
+
ZEND_VM_HANDLER(42, ZEND_JMP, ANY, ANY)
{
USE_OPLINE
@@ -1838,8 +2227,12 @@ ZEND_VM_HANDLER(42, ZEND_JMP, ANY, ANY)
#if DEBUG_ZEND>=2
printf("Jumping to %d\n", opline->op1.opline_num);
#endif
- ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
- ZEND_VM_CONTINUE(); /* CHECK_ME */
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
+ ZEND_VM_CONTINUE(); /* CHECK_ME */
+ }
+ EX(leaving_dest) = opline->op1.jmp_addr - EX(op_array)->opcodes;
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_JMP);
}
ZEND_VM_HANDLER(43, ZEND_JMPZ, CONST|TMP|VAR|CV, ANY)
@@ -2124,7 +2517,9 @@ ZEND_VM_HANDLER(109, ZEND_FETCH_CLASS, ANY, CONST|TMP|VAR|UNUSED|CV)
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (OP2_TYPE == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -2501,299 +2896,6 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
ZEND_VM_NEXT_OPCODE();
}
-ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
-{
- zend_bool nested;
- zend_op_array *op_array = EX(op_array);
-
- EG(current_execute_data) = EX(prev_execute_data);
- EG(opline_ptr) = NULL;
- if (!EG(active_symbol_table)) {
- zval ***cv = EX_CVs();
- zval ***end = cv + op_array->last_var;
- while (cv != end) {
- if (*cv) {
- zval_ptr_dtor(*cv);
- }
- cv++;
- }
- }
-
- if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
- zval_ptr_dtor((zval**)&op_array->prototype);
- }
-
- nested = EX(nested);
-
- zend_vm_stack_free(execute_data TSRMLS_CC);
-
- if (nested) {
- execute_data = EG(current_execute_data);
- }
- if (nested) {
- USE_OPLINE
-
- LOAD_REGS();
- LOAD_OPLINE();
- if (UNEXPECTED(opline->opcode == ZEND_INCLUDE_OR_EVAL)) {
-
- EX(function_state).function = (zend_function *) EX(op_array);
- EX(function_state).arguments = NULL;
- EX(object) = EX(current_object);
-
- EG(opline_ptr) = &EX(opline);
- EG(active_op_array) = EX(op_array);
- EG(return_value_ptr_ptr) = EX(original_return_value);
- destroy_op_array(op_array TSRMLS_CC);
- efree(op_array);
- if (UNEXPECTED(EG(exception) != NULL)) {
- zend_throw_exception_internal(NULL TSRMLS_CC);
- HANDLE_EXCEPTION_LEAVE();
- } else if (RETURN_VALUE_USED(opline)) {
- if (!EX_T(opline->result.var).var.ptr) { /* there was no return statement */
- zval *retval;
-
- ALLOC_ZVAL(retval);
- ZVAL_BOOL(retval, 1);
- INIT_PZVAL(retval);
- EX_T(opline->result.var).var.ptr = retval;
- }
- }
-
- ZEND_VM_INC_OPCODE();
- ZEND_VM_LEAVE();
- } else {
-
- EG(opline_ptr) = &EX(opline);
- EG(active_op_array) = EX(op_array);
- EG(return_value_ptr_ptr) = EX(original_return_value);
- if (EG(active_symbol_table)) {
- if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) {
- zend_hash_destroy(EG(active_symbol_table));
- FREE_HASHTABLE(EG(active_symbol_table));
- } else {
- /* clean before putting into the cache, since clean
- could call dtors, which could use cached hash */
- zend_hash_clean(EG(active_symbol_table));
- *(++EG(symtable_cache_ptr)) = EG(active_symbol_table);
- }
- }
- EG(active_symbol_table) = EX(symbol_table);
-
- EX(function_state).function = (zend_function *) EX(op_array);
- EX(function_state).arguments = NULL;
-
- if (EG(This)) {
- if (UNEXPECTED(EG(exception) != NULL) && IS_CTOR_CALL(EX(called_scope))) {
- if (IS_CTOR_USED(EX(called_scope))) {
- Z_DELREF_P(EG(This));
- }
- if (Z_REFCOUNT_P(EG(This)) == 1) {
- zend_object_store_ctor_failed(EG(This) TSRMLS_CC);
- }
- }
- zval_ptr_dtor(&EG(This));
- }
- EG(This) = EX(current_this);
- EG(scope) = EX(current_scope);
- EG(called_scope) = EX(current_called_scope);
-
- EX(object) = EX(current_object);
- EX(called_scope) = DECODE_CTOR(EX(called_scope));
-
- zend_vm_stack_clear_multiple(TSRMLS_C);
-
- if (UNEXPECTED(EG(exception) != NULL)) {
- zend_throw_exception_internal(NULL TSRMLS_CC);
- if (RETURN_VALUE_USED(opline) && EX_T(opline->result.var).var.ptr) {
- zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
- }
- HANDLE_EXCEPTION_LEAVE();
- }
-
- ZEND_VM_INC_OPCODE();
- ZEND_VM_LEAVE();
- }
- }
- ZEND_VM_RETURN();
-}
-
-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;
-
- SAVE_OPLINE();
- 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 (fbc->common.scope &&
- !(fbc->common.fn_flags & ZEND_ACC_STATIC) &&
- !EX(object)) {
-
- 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);
- } 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. */
- zend_error_noreturn(E_ERROR, "Non-static method %s::%s() cannot be called statically", fbc->common.scope->name, fbc->common.function_name);
- }
- }
-
- if (fbc->type == ZEND_USER_FUNCTION || fbc->common.scope) {
- should_change_scope = 1;
- EX(current_this) = EG(This);
- EX(current_scope) = EG(scope);
- EX(current_called_scope) = EG(called_scope);
- EG(This) = EX(object);
- EG(scope) = (fbc->type == ZEND_USER_FUNCTION || !EX(object)) ? fbc->common.scope : NULL;
- EG(called_scope) = EX(called_scope);
- }
-
- zend_arg_types_stack_3_pop(&EG(arg_types_stack), &EX(called_scope), &EX(current_object), &EX(fbc));
- EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC);
- LOAD_OPLINE();
-
- if (fbc->type == ZEND_INTERNAL_FUNCTION) {
- temp_variable *ret = &EX_T(opline->result.var);
-
- MAKE_STD_ZVAL(ret->var.ptr);
- ZVAL_NULL(ret->var.ptr);
- ret->var.ptr_ptr = &ret->var.ptr;
- ret->var.fcall_returned_reference = (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
-
- 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 (!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);
- } else {
- zend_execute_internal(EXECUTE_DATA, RETURN_VALUE_USED(opline) TSRMLS_CC);
- }
-
- if (!RETURN_VALUE_USED(opline)) {
- zval_ptr_dtor(&ret->var.ptr);
- }
- } else if (fbc->type == ZEND_USER_FUNCTION) {
- EX(original_return_value) = EG(return_value_ptr_ptr);
- EG(active_symbol_table) = NULL;
- EG(active_op_array) = &fbc->op_array;
- EG(return_value_ptr_ptr) = NULL;
- if (RETURN_VALUE_USED(opline)) {
- temp_variable *ret = &EX_T(opline->result.var);
-
- ret->var.ptr = NULL;
- EG(return_value_ptr_ptr) = &ret->var.ptr;
- ret->var.ptr_ptr = &ret->var.ptr;
- ret->var.fcall_returned_reference = (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
- }
-
- if (EXPECTED(zend_execute == execute)) {
- if (EXPECTED(EG(exception) == NULL)) {
- ZEND_VM_ENTER();
- }
- } else {
- zend_execute(EG(active_op_array) TSRMLS_CC);
- }
-
- EG(opline_ptr) = &EX(opline);
- EG(active_op_array) = EX(op_array);
- EG(return_value_ptr_ptr) = EX(original_return_value);
- if (EG(active_symbol_table)) {
- if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) {
- zend_hash_destroy(EG(active_symbol_table));
- FREE_HASHTABLE(EG(active_symbol_table));
- } else {
- /* clean before putting into the cache, since clean
- could call dtors, which could use cached hash */
- zend_hash_clean(EG(active_symbol_table));
- *(++EG(symtable_cache_ptr)) = EG(active_symbol_table);
- }
- }
- EG(active_symbol_table) = EX(symbol_table);
- } else { /* ZEND_OVERLOADED_FUNCTION */
- MAKE_STD_ZVAL(EX_T(opline->result.var).var.ptr);
- ZVAL_NULL(EX_T(opline->result.var).var.ptr);
-
- /* 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);
- } else {
- zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object");
- }
-
- if (fbc->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY) {
- efree((char*)fbc->common.function_name);
- }
- efree(fbc);
-
- if (!RETURN_VALUE_USED(opline)) {
- zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
- } else {
- Z_UNSET_ISREF_P(EX_T(opline->result.var).var.ptr);
- Z_SET_REFCOUNT_P(EX_T(opline->result.var).var.ptr, 1);
- EX_T(opline->result.var).var.fcall_returned_reference = 0;
- EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
- }
- }
-
- EX(function_state).function = (zend_function *) EX(op_array);
- EX(function_state).arguments = NULL;
-
- if (should_change_scope) {
- if (EG(This)) {
- if (UNEXPECTED(EG(exception) != NULL) && IS_CTOR_CALL(EX(called_scope))) {
- if (IS_CTOR_USED(EX(called_scope))) {
- Z_DELREF_P(EG(This));
- }
- if (Z_REFCOUNT_P(EG(This)) == 1) {
- zend_object_store_ctor_failed(EG(This) TSRMLS_CC);
- }
- }
- zval_ptr_dtor(&EG(This));
- }
- EG(This) = EX(current_this);
- EG(scope) = EX(current_scope);
- EG(called_scope) = EX(current_called_scope);
- }
-
- EX(object) = EX(current_object);
- EX(called_scope) = DECODE_CTOR(EX(called_scope));
-
- zend_vm_stack_clear_multiple(TSRMLS_C);
-
- if (UNEXPECTED(EG(exception) != NULL)) {
- zend_throw_exception_internal(NULL TSRMLS_CC);
- if (RETURN_VALUE_USED(opline) && EX_T(opline->result.var).var.ptr) {
- zval_ptr_dtor(&EX_T(opline->result.var).var.ptr);
- }
- HANDLE_EXCEPTION();
- }
-
- ZEND_VM_NEXT_OPCODE();
-}
-
ZEND_VM_HANDLER(61, ZEND_DO_FCALL_BY_NAME, ANY, ANY)
{
EX(function_state).function = EX(fbc);
@@ -2837,6 +2939,9 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
FREE_OP1();
}
} else if (!IS_OP1_TMP_FREE()) { /* Not a temp var */
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
if (OP1_TYPE == IS_CONST ||
(PZVAL_IS_REF(retval_ptr) && Z_REFCOUNT_P(retval_ptr) > 0)) {
zval *ret;
@@ -2858,12 +2963,20 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
} else {
zval *ret;
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
ALLOC_ZVAL(ret);
INIT_PZVAL_COPY(ret, retval_ptr);
*EG(return_value_ptr_ptr) = ret;
}
FREE_OP1_IF_VAR();
- ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ }
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_RETURN);
}
ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
@@ -2876,6 +2989,10 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
SAVE_OPLINE();
do {
+ if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -2931,6 +3048,18 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
} while (0);
FREE_OP1_IF_VAR();
+
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ }
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_RETURN_BY_REF);
+}
+
+ZEND_VM_HANDLER(161, ZEND_GENERATOR_RETURN, ANY, ANY)
+{
+ if (EX(op_array)->has_finally_block) {
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_RETURN);
+ }
ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
}
@@ -3275,7 +3404,11 @@ ZEND_VM_HANDLER(50, ZEND_BRK, ANY, CONST)
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
FREE_OP2();
- ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
+ }
+ EX(leaving_dest) = el->brk;
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_BRK);
}
ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
@@ -3287,7 +3420,11 @@ ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
FREE_OP2();
- ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
+ }
+ EX(leaving_dest) = el->cont;
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_CONT);
}
ZEND_VM_HANDLER(100, ZEND_GOTO, ANY, CONST)
@@ -3314,7 +3451,11 @@ ZEND_VM_HANDLER(100, ZEND_GOTO, ANY, CONST)
}
break;
}
- ZEND_VM_JMP(opline->op1.jmp_addr);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(opline->op1.jmp_addr);
+ }
+ EX(leaving_dest) = opline->op1.jmp_addr - EX(op_array)->opcodes;
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, ZEND_GOTO);
}
ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
@@ -3712,7 +3853,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
zend_op_array *new_op_array=NULL;
zend_free_op free_op1;
zval *inc_filename;
- zval *tmp_inc_filename = NULL;
+ zval *tmp_inc_filename = NULL;
zend_bool failure_retval=0;
SAVE_OPLINE();
@@ -4992,13 +5133,28 @@ 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;
- int catched = 0;
- zval restored_error_reporting;
-
- void **stack_frame = (void**)(((char*)EX_Ts()) +
- (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T));
+ zend_uint catch_op_num = 0, finally_op_num = 0;
+ int catched = 0, finally = 0;
+ void **stack_frame;
+
+ /* Figure out where the next stack frame (which maybe contains pushed
+ * arguments that have to be dtor'ed) starts */
+ if (EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ /* For generators the next stack frame is conveniently stored in the
+ * generator object. */
+ stack_frame = generator->original_stack_top;
+ } else {
+ /* In all other cases the next stack frame starts after the temporary
+ * variables section of the current execution context */
+ stack_frame = (void **) ((char *) EX_Ts() +
+ ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T);
+ }
+ /* If the exception was thrown during a function call there might be
+ * arguments pushed to the stack that have to be dtor'ed. */
while (zend_vm_stack_top(TSRMLS_C) != stack_frame) {
zval *stack_zval_p = zend_vm_stack_pop(TSRMLS_C);
zval_ptr_dtor(&stack_zval_p);
@@ -5008,9 +5164,14 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
/* further blocks will not be relevant... */
break;
- } else if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
+ }
+ if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
catch_op_num = EX(op_array)->try_catch_array[i].catch_op;
- catched = 1;
+ catched = i + 1;
+ }
+ 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;
+ finally = i + 1;
}
}
@@ -5060,6 +5221,8 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
/* restore previous error_reporting value */
if (!EG(error_reporting) && EX(old_error_reporting) != NULL && Z_LVAL_P(EX(old_error_reporting)) != 0) {
+ zval restored_error_reporting;
+
Z_TYPE(restored_error_reporting) = IS_LONG;
Z_LVAL(restored_error_reporting) = Z_LVAL_P(EX(old_error_reporting));
convert_to_string(&restored_error_reporting);
@@ -5068,12 +5231,29 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
}
EX(old_error_reporting) = NULL;
- if (!catched) {
- ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
- } else {
+ if (catched && finally) {
+ if (finally_op_num > catch_op_num) {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ ZEND_VM_CONTINUE();
+ } else {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ ZEND_VM_CONTINUE();
+ }
+ } else if (catched) {
+ EX(leaving) = 0;
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
- ZEND_VM_CONTINUE();
- }
+ ZEND_VM_CONTINUE();
+ } else if (finally) {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ ZEND_VM_CONTINUE();
+ } else {
+ ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+ }
}
ZEND_VM_HANDLER(146, ZEND_VERIFY_ABSTRACT_CLASS, ANY, ANY)
@@ -5164,7 +5344,7 @@ ZEND_VM_HANDLER(153, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED)
zend_error_noreturn(E_ERROR, "Base lambda function for closure not found");
}
- zend_create_closure(&EX_T(opline->result.var).tmp_var, op_array, EG(scope), EG(This) TSRMLS_CC);
+ zend_create_closure(&EX_T(opline->result.var).tmp_var, (zend_function *) op_array, EG(scope), EG(This) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -5178,8 +5358,8 @@ ZEND_VM_HANDLER(156, ZEND_SEPARATE, VAR, UNUSED)
SAVE_OPLINE();
var_ptr = EX_T(opline->op1.var).var.ptr;
if (Z_TYPE_P(var_ptr) != IS_OBJECT &&
- !PZVAL_IS_REF(var_ptr) &&
- Z_REFCOUNT_P(var_ptr) > 1) {
+ !PZVAL_IS_REF(var_ptr) &&
+ Z_REFCOUNT_P(var_ptr) > 1) {
Z_DELREF_P(var_ptr);
ALLOC_ZVAL(new_zv);
@@ -5191,4 +5371,185 @@ ZEND_VM_HANDLER(156, ZEND_SEPARATE, VAR, UNUSED)
ZEND_VM_NEXT_OPCODE();
}
+ZEND_VM_HANDLER(159, ZEND_LEAVE, ANY, ANY)
+{
+ zend_exception_restore(TSRMLS_C);
+ if (!EX(leaving)) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ zend_uint leaving = EX(leaving);
+ switch (leaving) {
+ case ZEND_RETURN:
+ case ZEND_RETURN_BY_REF:
+ case ZEND_THROW:
+ leaving = ZEND_LEAVE;
+ case ZEND_JMP:
+ case ZEND_BRK:
+ case ZEND_CONT:
+ case ZEND_GOTO:
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_finally_handler_leaving, type, leaving);
+ break;
+ }
+ }
+
+ ZEND_VM_CONTINUE();
+}
+
+ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSED)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (OP1_TYPE != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!IS_OP1_TMP_FREE()) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
+
+ if (OP1_TYPE == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (OP1_TYPE == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ FREE_OP1_IF_VAR();
+ }
+ } 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!IS_OP1_TMP_FREE()) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ FREE_OP1_IF_VAR();
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (OP2_TYPE != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = GET_OP2_ZVAL_PTR(BP_VAR_R);
+
+ /* Consts, temporary variables and references need copying */
+ if (OP2_TYPE == IS_CONST || OP2_TYPE == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!IS_OP2_TMP_FREE()) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ FREE_OP2_IF_VAR();
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
ZEND_VM_EXPORT_HELPER(zend_do_fcall, zend_do_fcall_common_helper)
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 4abe6503c..7a2cfc88d 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -339,30 +339,43 @@ static opcode_handler_t zend_vm_get_opcode_handler(zend_uchar opcode, zend_op* o
#define EX_Ts() EX(Ts)
-ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
-{
- DCL_OPLINE
+zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC) {
zend_execute_data *execute_data;
- zend_bool nested = 0;
- zend_bool original_in_execution = EG(in_execution);
-
- if (EG(exception)) {
- return;
+ /*
+ * When allocating the execute_data, memory for compiled variables and
+ * temporary variables is also allocated after the actual zend_execute_data
+ * struct. op_array->last_var specifies the number of compiled variables and
+ * op_array->T is the number of temporary variables. If there is no symbol
+ * table, then twice as much memory is allocated for compiled variables.
+ * In that case the first half contains zval**s and the second half the
+ * actual zval*s (which would otherwise be in the symbol table).
+ */
+ size_t execute_data_size = ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data));
+ size_t CVs_size = ZEND_MM_ALIGNED_SIZE(sizeof(zval **) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2));
+ size_t Ts_size = ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T;
+ size_t total_size = execute_data_size + CVs_size + Ts_size;
+
+ /*
+ * Normally the execute_data is allocated on the VM stack (because it does
+ * not actually do any allocation and thus is faster). For generators
+ * though this behavior would be suboptimal, because the (rather large)
+ * structure would have to be copied back and forth every time execution is
+ * suspended or resumed. That's why for generators the execution context
+ * is allocated using emalloc, thus allowing to save and restore it simply
+ * by replacing a pointer.
+ */
+ if (op_array->fn_flags & ZEND_ACC_GENERATOR) {
+ execute_data = emalloc(total_size);
+ } else {
+ execute_data = zend_vm_stack_alloc(total_size TSRMLS_CC);
}
- EG(in_execution) = 1;
+ EX(CVs) = (zval ***) ((char *) execute_data + execute_data_size);
+ memset(EX(CVs), 0, sizeof(zval **) * op_array->last_var);
-zend_vm_enter:
- /* Initialize execute_data */
- execute_data = (zend_execute_data *)zend_vm_stack_alloc(
- ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) +
- ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)) +
- ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T TSRMLS_CC);
+ EX(Ts) = (temp_variable *) ((char *) EX(CVs) + CVs_size);
- EX(CVs) = (zval***)((char*)execute_data + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)));
- memset(EX(CVs), 0, sizeof(zval**) * op_array->last_var);
- EX(Ts) = (temp_variable *)(((char*)EX(CVs)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)));
EX(fbc) = NULL;
EX(called_scope) = NULL;
EX(object) = NULL;
@@ -372,9 +385,7 @@ zend_vm_enter:
EX(prev_execute_data) = EG(current_execute_data);
EG(current_execute_data) = execute_data;
EX(nested) = nested;
- nested = 1;
-
- LOAD_REGS();
+ EX(leaving) = 0;
if (!op_array->run_time_cache && op_array->last_cache_slot) {
op_array->run_time_cache = ecalloc(op_array->last_cache_slot, sizeof(void*));
@@ -383,10 +394,10 @@ zend_vm_enter:
if (op_array->this_var != -1 && EG(This)) {
Z_ADDREF_P(EG(This)); /* For $this pointer */
if (!EG(active_symbol_table)) {
- EX_CV(op_array->this_var) = (zval**)EX_CVs() + (op_array->last_var + op_array->this_var);
- *EX_CV(op_array->this_var) = EG(This);
+ EX(CVs)[op_array->this_var] = (zval **) EX(CVs) + op_array->last_var + op_array->this_var;
+ *EX(CVs)[op_array->this_var] = EG(This);
} else {
- if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void**)&EX_CV(op_array->this_var))==FAILURE) {
+ if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void **) &EX(CVs)[op_array->this_var])==FAILURE) {
Z_DELREF_P(EG(This));
}
}
@@ -394,11 +405,26 @@ zend_vm_enter:
EX(opline) = UNEXPECTED((op_array->fn_flags & ZEND_ACC_INTERACTIVE) != 0) && EG(start_op) ? EG(start_op) : op_array->opcodes;
EG(opline_ptr) = &EX(opline);
- LOAD_OPLINE();
EX(function_state).function = (zend_function *) op_array;
EX(function_state).arguments = NULL;
+ return execute_data;
+}
+
+ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC)
+{
+ DCL_OPLINE
+ zend_bool original_in_execution;
+
+
+
+ original_in_execution = EG(in_execution);
+ EG(in_execution) = 1;
+
+ LOAD_REGS();
+ LOAD_OPLINE();
+
while (1) {
int ret;
#ifdef ZEND_WIN32
@@ -413,10 +439,11 @@ zend_vm_enter:
EG(in_execution) = original_in_execution;
return;
case 2:
- op_array = EG(active_op_array);
- goto zend_vm_enter;
+ execute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC);
+ break;
case 3:
execute_data = EG(current_execute_data);
+ break;
default:
break;
}
@@ -426,31 +453,12 @@ zend_vm_enter:
zend_error_noreturn(E_ERROR, "Arrived at end of main loop which shouldn't happen");
}
-static int ZEND_FASTCALL ZEND_JMP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
-#if DEBUG_ZEND>=2
- printf("Jumping to %d\n", opline->op1.opline_num);
-#endif
- ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
- ZEND_VM_CONTINUE(); /* CHECK_ME */
-}
-
-static int ZEND_FASTCALL ZEND_INIT_STRING_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
{
- USE_OPLINE
- zval *tmp = &EX_T(opline->result.var).tmp_var;
-
- SAVE_OPLINE();
- tmp->value.str.val = emalloc(1);
- tmp->value.str.val[0] = 0;
- tmp->value.str.len = 0;
- Z_SET_REFCOUNT_P(tmp, 1);
- tmp->type = IS_STRING;
- Z_UNSET_ISREF_P(tmp);
- /*CHECK_EXCEPTION();*/
- ZEND_VM_NEXT_OPCODE();
+ if (EG(exception)) {
+ return;
+ }
+ execute_ex(zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC);
}
static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
@@ -458,17 +466,22 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
zend_bool nested;
zend_op_array *op_array = EX(op_array);
+ /* Generators go throw a different cleanup process */
+ if (EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ /* Close the generator to free up resources */
+ zend_generator_close(generator, 1 TSRMLS_CC);
+
+ /* Pass execution back to handling code */
+ ZEND_VM_RETURN();
+ }
+
EG(current_execute_data) = EX(prev_execute_data);
EG(opline_ptr) = NULL;
if (!EG(active_symbol_table)) {
- zval ***cv = EX_CVs();
- zval ***end = cv + op_array->last_var;
- while (cv != end) {
- if (*cv) {
- zval_ptr_dtor(*cv);
- }
- cv++;
- }
+ zend_free_compiled_variables(EX_CVs(), op_array->last_var);
}
if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
@@ -515,20 +528,11 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
ZEND_VM_INC_OPCODE();
ZEND_VM_LEAVE();
} else {
-
EG(opline_ptr) = &EX(opline);
EG(active_op_array) = EX(op_array);
EG(return_value_ptr_ptr) = EX(original_return_value);
if (EG(active_symbol_table)) {
- if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) {
- zend_hash_destroy(EG(active_symbol_table));
- FREE_HASHTABLE(EG(active_symbol_table));
- } else {
- /* clean before putting into the cache, since clean
- could call dtors, which could use cached hash */
- zend_hash_clean(EG(active_symbol_table));
- *(++EG(symtable_cache_ptr)) = EG(active_symbol_table);
- }
+ zend_clean_and_cache_symbol_table(EG(active_symbol_table) TSRMLS_CC);
}
EG(active_symbol_table) = EX(symbol_table);
@@ -641,7 +645,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
/* 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);
} else {
- zend_execute_internal(execute_data, RETURN_VALUE_USED(opline) TSRMLS_CC);
+ zend_execute_internal(execute_data, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
}
if (!RETURN_VALUE_USED(opline)) {
@@ -661,7 +665,11 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
ret->var.fcall_returned_reference = (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0;
}
- if (EXPECTED(zend_execute == execute)) {
+ if (EG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ if (RETURN_VALUE_USED(opline)) {
+ EX_T(opline->result.var).var.ptr = zend_generator_create_zval(EG(active_op_array) TSRMLS_CC);
+ }
+ } else if (EXPECTED(zend_execute == execute)) {
if (EXPECTED(EG(exception) == NULL)) {
ZEND_VM_ENTER();
}
@@ -673,22 +681,14 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
EG(active_op_array) = EX(op_array);
EG(return_value_ptr_ptr) = EX(original_return_value);
if (EG(active_symbol_table)) {
- if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) {
- zend_hash_destroy(EG(active_symbol_table));
- FREE_HASHTABLE(EG(active_symbol_table));
- } else {
- /* clean before putting into the cache, since clean
- could call dtors, which could use cached hash */
- zend_hash_clean(EG(active_symbol_table));
- *(++EG(symtable_cache_ptr)) = EG(active_symbol_table);
- }
+ zend_clean_and_cache_symbol_table(EG(active_symbol_table) TSRMLS_CC);
}
EG(active_symbol_table) = EX(symbol_table);
} else { /* ZEND_OVERLOADED_FUNCTION */
MAKE_STD_ZVAL(EX_T(opline->result.var).var.ptr);
ZVAL_NULL(EX_T(opline->result.var).var.ptr);
- /* Not sure what should be done here if it's a static method */
+ /* 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);
} else {
@@ -746,12 +746,146 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL zend_finally_handler_leaving_SPEC(int type, ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_uint i, op_num = opline - EX(op_array)->opcodes;
+ zend_uint catch_op_num = 0, finally_op_num = 0;
+
+ SAVE_OPLINE();
+
+ switch (type) {
+ case ZEND_THROW:
+ case ZEND_RETURN:
+ case ZEND_RETURN_BY_REF:
+ case ZEND_LEAVE:
+ {
+ if (EG(prev_exception) || (type == ZEND_LEAVE && EG(exception))) {
+ for (i=0; i<EX(op_array)->last_try_catch; i++) {
+ if (EX(op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].finally_op) {
+ finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].catch_op) {
+ catch_op_num = EX(op_array)->try_catch_array[i].catch_op;
+ }
+ }
+ } else {
+ for (i=0; i<EX(op_array)->last_try_catch; i++) {
+ if (EX(op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EX(op_array)->try_catch_array[i].finally_op) {
+ finally_op_num = EX(op_array)->try_catch_array[i].finally_op;
+ }
+ }
+ }
+
+ if (catch_op_num && finally_op_num) {
+ /* EG(exception) || EG(prev_exception) */
+ if (catch_op_num > finally_op_num) {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ }
+ } else if (catch_op_num) {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ } else if (finally_op_num) {
+ zend_exception_save(TSRMLS_C);
+ if (type != ZEND_LEAVE) {
+ EX(leaving) = type;
+ }
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else if (EX(leaving) && type != ZEND_LEAVE) {
+ /* leave it to ZEND_LEAVE */
+ EX(leaving) = type;
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ }
+ break;
+ case ZEND_JMP:
+ case ZEND_BRK:
+ case ZEND_CONT:
+ case ZEND_GOTO:
+ {
+ /* these can not occurred in exception context */
+ for (i=0; i<EG(active_op_array)->last_try_catch; i++) {
+ if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
+ break;
+ }
+ if (op_num < EG(active_op_array)->try_catch_array[i].finally_op
+ && (EX(leaving_dest) < EG(active_op_array)->try_catch_array[i].try_op
+ || EX(leaving_dest) >= EG(active_op_array)->try_catch_array[i].finally_end)) {
+ finally_op_num = EG(active_op_array)->try_catch_array[i].finally_op;
+ }
+ }
+
+ if (finally_op_num) {
+ EX(leaving) = type;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ } else {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[EX(leaving_dest)]);
+ }
+ }
+ break;
+ }
+ ZEND_VM_CONTINUE();
+}
+
+static int ZEND_FASTCALL ZEND_JMP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+#if DEBUG_ZEND>=2
+ printf("Jumping to %d\n", opline->op1.opline_num);
+#endif
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_SET_OPCODE(opline->op1.jmp_addr);
+ ZEND_VM_CONTINUE(); /* CHECK_ME */
+ }
+ EX(leaving_dest) = opline->op1.jmp_addr - EX(op_array)->opcodes;
+ return zend_finally_handler_leaving_SPEC(ZEND_JMP, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
+static int ZEND_FASTCALL ZEND_INIT_STRING_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zval *tmp = &EX_T(opline->result.var).tmp_var;
+
+ SAVE_OPLINE();
+ tmp->value.str.val = emalloc(1);
+ tmp->value.str.val[0] = 0;
+ tmp->value.str.len = 0;
+ Z_SET_REFCOUNT_P(tmp, 1);
+ tmp->type = IS_STRING;
+ Z_UNSET_ISREF_P(tmp);
+ /*CHECK_EXCEPTION();*/
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
EX(function_state).function = EX(fbc);
return zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ if (EX(op_array)->has_finally_block) {
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -1033,13 +1167,28 @@ 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;
- int catched = 0;
- zval restored_error_reporting;
+ zend_uint catch_op_num = 0, finally_op_num = 0;
+ int catched = 0, finally = 0;
+ void **stack_frame;
- void **stack_frame = (void**)(((char*)EX_Ts()) +
- (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T));
+ /* Figure out where the next stack frame (which maybe contains pushed
+ * arguments that have to be dtor'ed) starts */
+ if (EX(op_array)->fn_flags & ZEND_ACC_GENERATOR) {
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+ /* For generators the next stack frame is conveniently stored in the
+ * generator object. */
+ stack_frame = generator->original_stack_top;
+ } else {
+ /* In all other cases the next stack frame starts after the temporary
+ * variables section of the current execution context */
+ stack_frame = (void **) ((char *) EX_Ts() +
+ ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T);
+ }
+
+ /* If the exception was thrown during a function call there might be
+ * arguments pushed to the stack that have to be dtor'ed. */
while (zend_vm_stack_top(TSRMLS_C) != stack_frame) {
zval *stack_zval_p = zend_vm_stack_pop(TSRMLS_C);
zval_ptr_dtor(&stack_zval_p);
@@ -1049,9 +1198,14 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
/* further blocks will not be relevant... */
break;
- } else if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
+ }
+ if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
catch_op_num = EX(op_array)->try_catch_array[i].catch_op;
- catched = 1;
+ catched = i + 1;
+ }
+ 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;
+ finally = i + 1;
}
}
@@ -1101,6 +1255,8 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
/* restore previous error_reporting value */
if (!EG(error_reporting) && EX(old_error_reporting) != NULL && Z_LVAL_P(EX(old_error_reporting)) != 0) {
+ zval restored_error_reporting;
+
Z_TYPE(restored_error_reporting) = IS_LONG;
Z_LVAL(restored_error_reporting) = Z_LVAL_P(EX(old_error_reporting));
convert_to_string(&restored_error_reporting);
@@ -1109,12 +1265,29 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
}
EX(old_error_reporting) = NULL;
- if (!catched) {
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- } else {
+ if (catched && finally) {
+ if (finally_op_num > catch_op_num) {
+ EX(leaving) = 0;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+ ZEND_VM_CONTINUE();
+ } else {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ ZEND_VM_CONTINUE();
+ }
+ } else if (catched) {
+ EX(leaving) = 0;
ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
- ZEND_VM_CONTINUE();
- }
+ ZEND_VM_CONTINUE();
+ } else if (finally) {
+ zend_exception_save(TSRMLS_C);
+ EX(leaving) = ZEND_THROW;
+ ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+ ZEND_VM_CONTINUE();
+ } else {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
}
static int ZEND_FASTCALL ZEND_VERIFY_ABSTRACT_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1152,12 +1325,38 @@ static int ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
}
+static int ZEND_FASTCALL ZEND_LEAVE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ zend_exception_restore(TSRMLS_C);
+ if (!EX(leaving)) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ zend_uint leaving = EX(leaving);
+ switch (leaving) {
+ case ZEND_RETURN:
+ case ZEND_RETURN_BY_REF:
+ case ZEND_THROW:
+ leaving = ZEND_LEAVE;
+ case ZEND_JMP:
+ case ZEND_BRK:
+ case ZEND_CONT:
+ case ZEND_GOTO:
+ return zend_finally_handler_leaving_SPEC(leaving, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ break;
+ }
+ }
+
+ ZEND_VM_CONTINUE();
+}
+
static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (IS_CONST == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -1388,7 +1587,11 @@ static int ZEND_FASTCALL ZEND_BRK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
- ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
+ }
+ EX(leaving_dest) = el->brk;
+ return zend_finally_handler_leaving_SPEC(ZEND_BRK, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_CONT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1400,7 +1603,11 @@ static int ZEND_FASTCALL ZEND_CONT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
- ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
+ }
+ EX(leaving_dest) = el->cont;
+ return zend_finally_handler_leaving_SPEC(ZEND_CONT, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_GOTO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1427,7 +1634,11 @@ static int ZEND_FASTCALL ZEND_GOTO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
break;
}
- ZEND_VM_JMP(opline->op1.jmp_addr);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ ZEND_VM_JMP(opline->op1.jmp_addr);
+ }
+ EX(leaving_dest) = opline->op1.jmp_addr - EX(op_array)->opcodes;
+ return zend_finally_handler_leaving_SPEC(ZEND_GOTO, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1462,7 +1673,9 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (IS_TMP_VAR == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -1630,7 +1843,9 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (IS_VAR == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -1798,7 +2013,9 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDL
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (IS_UNUSED == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -1832,7 +2049,9 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_A
USE_OPLINE
SAVE_OPLINE();
- EG(exception) = NULL;
+ if (EG(exception)) {
+ zend_exception_save(TSRMLS_C);
+ }
if (IS_CV == IS_UNUSED) {
EX_T(opline->result.var).class_entry = zend_fetch_class(NULL, 0, opline->extended_value TSRMLS_CC);
CHECK_EXCEPTION();
@@ -2249,6 +2468,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
} else if (!0) { /* Not a temp var */
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
if (IS_CONST == IS_CONST ||
(PZVAL_IS_REF(retval_ptr) && Z_REFCOUNT_P(retval_ptr) > 0)) {
zval *ret;
@@ -2270,12 +2492,19 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
} else {
zval *ret;
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
ALLOC_ZVAL(ret);
INIT_PZVAL_COPY(ret, retval_ptr);
*EG(return_value_ptr_ptr) = ret;
}
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2288,6 +2517,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
SAVE_OPLINE();
do {
+ if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -2342,7 +2575,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
}
} while (0);
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN_BY_REF, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_THROW_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2542,7 +2778,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
zend_op_array *new_op_array=NULL;
zval *inc_filename;
- zval *tmp_inc_filename = NULL;
+ zval *tmp_inc_filename = NULL;
zend_bool failure_retval=0;
SAVE_OPLINE();
@@ -3390,6 +3626,36 @@ static int ZEND_FASTCALL ZEND_FETCH_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HAN
return zend_fetch_var_address_helper_SPEC_CONST_CONST(BP_VAR_IS, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_CONST != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
+ zval *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);
+
+
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -3940,6 +4206,160 @@ static int ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCOD
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CONST != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = opline->op1.zv;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CONST == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = opline->op1.zv;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CONST != IS_UNUSED) {
+
+ zval *key = opline->op2.zv;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -4216,6 +4636,36 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDL
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_CONST != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
+ zval *container = opline->op1.zv;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -4450,6 +4900,160 @@ static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HAN
}
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CONST != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = opline->op1.zv;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CONST == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = opline->op1.zv;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -4890,6 +5494,36 @@ static int ZEND_FASTCALL ZEND_FETCH_IS_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
return zend_fetch_var_address_helper_SPEC_CONST_VAR(BP_VAR_IS, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_CONST != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
+ zval *container = opline->op1.zv;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -5285,6 +5919,161 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPC
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CONST != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = opline->op1.zv;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CONST == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = opline->op1.zv;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -5838,12 +6627,166 @@ static int ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER
zend_error_noreturn(E_ERROR, "Base lambda function for closure not found");
}
- zend_create_closure(&EX_T(opline->result.var).tmp_var, op_array, EG(scope), EG(This) TSRMLS_CC);
+ zend_create_closure(&EX_T(opline->result.var).tmp_var, (zend_function *) op_array, EG(scope), EG(This) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CONST != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = opline->op1.zv;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CONST == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = opline->op1.zv;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_UNUSED != IS_UNUSED) {
+
+ zval *key = NULL;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6120,6 +7063,36 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLE
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_CONST != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
+ zval *container = opline->op1.zv;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6413,6 +7386,160 @@ static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HAND
}
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CONST != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = opline->op1.zv;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CONST == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = opline->op1.zv;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CV != IS_UNUSED) {
+
+ zval *key = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6662,6 +7789,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval_dtor(free_op1.var);
}
} else if (!1) { /* Not a temp var */
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
if (IS_TMP_VAR == IS_CONST ||
(PZVAL_IS_REF(retval_ptr) && Z_REFCOUNT_P(retval_ptr) > 0)) {
zval *ret;
@@ -6683,12 +7813,19 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zval *ret;
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
ALLOC_ZVAL(ret);
INIT_PZVAL_COPY(ret, retval_ptr);
*EG(return_value_ptr_ptr) = ret;
}
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6701,6 +7838,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
SAVE_OPLINE();
do {
+ if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -6755,7 +7896,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
}
} while (0);
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN_BY_REF, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6956,7 +8100,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
zend_op_array *new_op_array=NULL;
zend_free_op free_op1;
zval *inc_filename;
- zval *tmp_inc_filename = NULL;
+ zval *tmp_inc_filename = NULL;
zend_bool failure_retval=0;
SAVE_OPLINE();
@@ -7856,6 +9000,36 @@ static int ZEND_FASTCALL ZEND_FETCH_IS_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDL
return zend_fetch_var_address_helper_SPEC_TMP_CONST(BP_VAR_IS, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_TMP_VAR != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &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);
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -8274,6 +9448,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_TMP_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CONST != IS_UNUSED) {
+
+ zval *key = opline->op2.zv;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -8550,6 +9878,36 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_TMP_VAR != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+ zval_dtor(free_op1.var);
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -8784,6 +10142,160 @@ static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDL
}
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_TMP_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -9224,6 +10736,36 @@ static int ZEND_FASTCALL ZEND_FETCH_IS_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
return zend_fetch_var_address_helper_SPEC_TMP_VAR(BP_VAR_IS, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_TMP_VAR != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &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);
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -9619,6 +11161,161 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_TMP_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10044,6 +11741,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_TMP_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_UNUSED != IS_UNUSED) {
+
+ zval *key = NULL;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10320,6 +12171,36 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+ zval **container;
+
+ SAVE_OPLINE();
+
+ if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) &&
+ IS_TMP_VAR != IS_CV &&
+ EX_T(opline->op1.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
+ }
+
+ if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+ zval_dtor(free_op1.var);
+ } else {
+ container = NULL;
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+
+ }
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10551,6 +12432,160 @@ static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLE
}
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_TMP_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CV != IS_UNUSED) {
+
+ zval *key = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10980,6 +13015,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
}
} else if (!0) { /* Not a temp var */
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
if (IS_VAR == IS_CONST ||
(PZVAL_IS_REF(retval_ptr) && Z_REFCOUNT_P(retval_ptr) > 0)) {
zval *ret;
@@ -11001,12 +13039,20 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zval *ret;
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
ALLOC_ZVAL(ret);
INIT_PZVAL_COPY(ret, retval_ptr);
*EG(return_value_ptr_ptr) = ret;
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11019,6 +13065,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
SAVE_OPLINE();
do {
+ if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -11074,7 +13124,11 @@ 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);};
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN_BY_REF, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11384,7 +13438,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
zend_op_array *new_op_array=NULL;
zend_free_op free_op1;
zval *inc_filename;
- zval *tmp_inc_filename = NULL;
+ zval *tmp_inc_filename = NULL;
zend_bool failure_retval=0;
SAVE_OPLINE();
@@ -12874,10 +14928,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &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_TMP_VAR || IS_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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);};
+ } else {
+ container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &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);};
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14290,6 +16353,162 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_VAR_CONST_HANDLER(ZEN
return zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+ } else {
+ zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ 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 */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CONST != IS_UNUSED) {
+
+ zval *key = opline->op2.zv;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -15042,10 +17261,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &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_TMP_VAR || IS_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &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);};
+ } else {
+ container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &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);};
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -16208,6 +18436,162 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_
return zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+ } else {
+ zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ 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 */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -17124,10 +19508,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &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);};
+
+ if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &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);};
+ } else {
+ container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &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);};
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18506,6 +20899,163 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_
return zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+ } else {
+ zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ 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 */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -19477,8 +22027,8 @@ static int ZEND_FASTCALL ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAND
SAVE_OPLINE();
var_ptr = EX_T(opline->op1.var).var.ptr;
if (Z_TYPE_P(var_ptr) != IS_OBJECT &&
- !PZVAL_IS_REF(var_ptr) &&
- Z_REFCOUNT_P(var_ptr) > 1) {
+ !PZVAL_IS_REF(var_ptr) &&
+ Z_REFCOUNT_P(var_ptr) > 1) {
Z_DELREF_P(var_ptr);
ALLOC_ZVAL(new_zv);
@@ -19490,6 +22040,162 @@ static int ZEND_FASTCALL ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAND
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+ } else {
+ zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ 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 */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_UNUSED != IS_UNUSED) {
+
+ zval *key = NULL;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -20241,10 +22947,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), 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_TMP_VAR || IS_VAR == IS_CONST) {
+ zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ } else {
+ container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21457,6 +24172,162 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_VAR_CV_HANDLER(ZEND_O
return zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op1;
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
+
+ if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_VAR == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ }
+ } else {
+ zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ 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 */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CV != IS_UNUSED) {
+
+ zval *key = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -22792,6 +25663,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_HANDLER(
return zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CONST(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_UNUSED != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = NULL;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_UNUSED == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = NULL;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CONST != IS_UNUSED) {
+
+ zval *key = opline->op2.zv;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -23951,6 +26976,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMP_HANDLER(ZE
return zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_UNUSED != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = NULL;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_UNUSED == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = NULL;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -25110,6 +28289,161 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_VAR_HANDLER(ZE
return zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_UNUSED != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = NULL;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_UNUSED == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = NULL;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -25379,6 +28713,160 @@ static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE
}
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_UNUSED != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = NULL;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_UNUSED == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = NULL;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_UNUSED != IS_UNUSED) {
+
+ zval *key = NULL;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -26535,6 +30023,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_HANDLER(ZEN
return zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_UNUSED != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = NULL;
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = NULL;
+
+ if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_UNUSED == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = NULL;
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CV != IS_UNUSED) {
+
+ zval *key = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -26945,6 +30587,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
} else if (!0) { /* Not a temp var */
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
if (IS_CV == IS_CONST ||
(PZVAL_IS_REF(retval_ptr) && Z_REFCOUNT_P(retval_ptr) > 0)) {
zval *ret;
@@ -26966,12 +30611,19 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zval *ret;
+ if (*EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
ALLOC_ZVAL(ret);
INIT_PZVAL_COPY(ret, retval_ptr);
*EG(return_value_ptr_ptr) = ret;
}
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26984,6 +30636,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
SAVE_OPLINE();
do {
+ if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
+ zval_ptr_dtor(EG(return_value_ptr_ptr));
+ }
+
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
/* Not supposed to happen, but we'll allow it */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
@@ -27038,7 +30694,10 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
}
} while (0);
- return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ if (EXPECTED(!EX(op_array)->has_finally_block)) {
+ return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ }
+ return zend_finally_handler_leaving_SPEC(ZEND_RETURN_BY_REF, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_THROW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27336,7 +30995,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
zend_op_array *new_op_array=NULL;
zval *inc_filename;
- zval *tmp_inc_filename = NULL;
+ zval *tmp_inc_filename = NULL;
zend_bool failure_retval=0;
SAVE_OPLINE();
@@ -28679,10 +32338,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), 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_TMP_VAR || IS_CV == IS_CONST) {
+ zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), 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);
+
+
+ } else {
+ container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), 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);
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -29875,6 +33543,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_HANDLER(ZEND
return zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CV != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CV == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CONST != IS_UNUSED) {
+
+ zval *key = opline->op2.zv;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -30626,9 +34448,18 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
- zval_dtor(free_op2.var);
+
+ if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
+ zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+
+ } else {
+ container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zval_dtor(free_op2.var);
+
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -31664,6 +35495,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMP_HANDLER(ZEND_O
return zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CV != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CV == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_TMP_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!1) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -32579,9 +36564,18 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
+ zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ } else {
+ container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -33832,6 +37826,161 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_VAR_HANDLER(ZEND_O
return zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CV != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CV == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_VAR != IS_UNUSED) {
+ zend_free_op free_op2;
+ zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -34677,6 +38826,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CV != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CV == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_UNUSED != IS_UNUSED) {
+
+ zval *key = NULL;
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -35427,10 +39730,19 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
EX_T(opline->op1.var).var.ptr_ptr) {
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
- container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+ if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
+ zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+ } else {
+ container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+
+
+ }
+
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -36514,6 +40826,160 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_HANDLER(ZEND_OP
return zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(1, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
+static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ /* The generator object is stored in return_value_ptr_ptr */
+ zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
+
+ if (generator->flags & ZEND_GENERATOR_FORCED_CLOSE) {
+ zend_error_noreturn(E_ERROR, "Cannot yield from finally in a force-closed generator");
+ }
+
+ /* Destroy the previously yielded value */
+ if (generator->value) {
+ zval_ptr_dtor(&generator->value);
+ }
+
+ /* Destroy the previously yielded key */
+ if (generator->key) {
+ zval_ptr_dtor(&generator->key);
+ }
+
+ /* Set the new yielded value */
+ if (IS_CV != IS_UNUSED) {
+
+
+ if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ /* Constants and temporary variables aren't yieldable by reference,
+ * but we still allow them with a notice. */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
+ zval *value, *copy;
+
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ zval **value_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
+ zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
+ }
+
+ /* If a function call result is yielded and the function did
+ * not return by reference we throw a notice. */
+ if (IS_CV == IS_VAR && !Z_ISREF_PP(value_ptr)
+ && !(opline->extended_value == ZEND_RETURNS_FUNCTION
+ && EX_T(opline->op1.var).var.fcall_returned_reference)
+ && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
+ zend_error(E_NOTICE, "Only variable references should be yielded by reference");
+
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
+ Z_ADDREF_PP(value_ptr);
+ generator->value = *value_ptr;
+ }
+
+ }
+ } else {
+ zval *value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
+
+ /* 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)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, value);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->value = copy;
+ } else {
+ Z_ADDREF_P(value);
+ generator->value = value;
+ }
+
+ }
+ } else {
+ /* If no value was specified yield null */
+ Z_ADDREF(EG(uninitialized_zval));
+ generator->value = &EG(uninitialized_zval);
+ }
+
+ /* Set the new yielded key */
+ if (IS_CV != IS_UNUSED) {
+
+ zval *key = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
+
+ /* Consts, temporary variables and references need copying */
+ if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR
+ || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
+ ) {
+ zval *copy;
+
+ ALLOC_ZVAL(copy);
+ INIT_PZVAL_COPY(copy, key);
+
+ /* Temporary variables don't need ctor copying */
+ if (!0) {
+ zval_copy_ctor(copy);
+ }
+
+ generator->key = copy;
+ } else {
+ Z_ADDREF_P(key);
+ generator->key = key;
+ }
+
+ if (Z_TYPE_P(generator->key) == IS_LONG
+ && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
+ ) {
+ generator->largest_used_integer_key = Z_LVAL_P(generator->key);
+ }
+
+ } else {
+ /* If no key was specified we use auto-increment keys */
+ generator->largest_used_integer_key++;
+
+ ALLOC_INIT_ZVAL(generator->key);
+ ZVAL_LONG(generator->key, generator->largest_used_integer_key);
+ }
+
+ /* If a value is sent it should go into the result var */
+ generator->send_target = &EX_T(opline->result.var);
+
+ /* Initialize the sent value to NULL */
+ Z_ADDREF(EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
+
+ /* We increment to the next op, so we are at the correct position when the
+ * generator is resumed. */
+ ZEND_VM_INC_OPCODE();
+
+ /* The GOTO VM uses a local opline variable. We need to set the opline
+ * variable in execute_data so we don't resume at an old position. */
+ SAVE_OPLINE();
+
+ ZEND_VM_RETURN();
+}
+
static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);
@@ -38548,16 +43014,16 @@ void zend_init_opcodes_handlers(void)
ZEND_FETCH_R_SPEC_CV_VAR_HANDLER,
ZEND_FETCH_R_SPEC_CV_UNUSED_HANDLER,
ZEND_NULL_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_CONST_TMP_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER,
ZEND_NULL_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_TMP_CONST_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_TMP_TMP_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
+ ZEND_FETCH_DIM_R_SPEC_TMP_CV_HANDLER,
ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER,
ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER,
ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER,
@@ -40498,6 +44964,81 @@ void zend_init_opcodes_handlers(void)
ZEND_JMP_SET_VAR_SPEC_CV_HANDLER,
ZEND_JMP_SET_VAR_SPEC_CV_HANDLER,
ZEND_JMP_SET_VAR_SPEC_CV_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_LEAVE_SPEC_HANDLER,
+ ZEND_YIELD_SPEC_CONST_CONST_HANDLER,
+ ZEND_YIELD_SPEC_CONST_TMP_HANDLER,
+ ZEND_YIELD_SPEC_CONST_VAR_HANDLER,
+ ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER,
+ ZEND_YIELD_SPEC_CONST_CV_HANDLER,
+ ZEND_YIELD_SPEC_TMP_CONST_HANDLER,
+ ZEND_YIELD_SPEC_TMP_TMP_HANDLER,
+ ZEND_YIELD_SPEC_TMP_VAR_HANDLER,
+ ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER,
+ ZEND_YIELD_SPEC_TMP_CV_HANDLER,
+ ZEND_YIELD_SPEC_VAR_CONST_HANDLER,
+ ZEND_YIELD_SPEC_VAR_TMP_HANDLER,
+ ZEND_YIELD_SPEC_VAR_VAR_HANDLER,
+ ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER,
+ ZEND_YIELD_SPEC_VAR_CV_HANDLER,
+ ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER,
+ ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER,
+ ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER,
+ ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER,
+ ZEND_YIELD_SPEC_UNUSED_CV_HANDLER,
+ ZEND_YIELD_SPEC_CV_CONST_HANDLER,
+ ZEND_YIELD_SPEC_CV_TMP_HANDLER,
+ ZEND_YIELD_SPEC_CV_VAR_HANDLER,
+ ZEND_YIELD_SPEC_CV_UNUSED_HANDLER,
+ ZEND_YIELD_SPEC_CV_CV_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
+ ZEND_GENERATOR_RETURN_SPEC_HANDLER,
ZEND_NULL_HANDLER
};
zend_opcode_handlers = (opcode_handler_t*)labels;
diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl
index 6d1b2e70e..2a6fd71ec 100644
--- a/Zend/zend_vm_execute.skl
+++ b/Zend/zend_vm_execute.skl
@@ -1,31 +1,42 @@
{%DEFINES%}
-ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
-{
- DCL_OPLINE
+zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_array, zend_bool nested TSRMLS_DC) {
zend_execute_data *execute_data;
- zend_bool nested = 0;
- {%HELPER_VARS%}
- {%EXECUTION_STATUS%}
- {%INTERNAL_LABELS%}
-
- if (EG(exception)) {
- return;
+ /*
+ * When allocating the execute_data, memory for compiled variables and
+ * temporary variables is also allocated after the actual zend_execute_data
+ * struct. op_array->last_var specifies the number of compiled variables and
+ * op_array->T is the number of temporary variables. If there is no symbol
+ * table, then twice as much memory is allocated for compiled variables.
+ * In that case the first half contains zval**s and the second half the
+ * actual zval*s (which would otherwise be in the symbol table).
+ */
+ size_t execute_data_size = ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data));
+ size_t CVs_size = ZEND_MM_ALIGNED_SIZE(sizeof(zval **) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2));
+ size_t Ts_size = ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T;
+ size_t total_size = execute_data_size + CVs_size + Ts_size;
+
+ /*
+ * Normally the execute_data is allocated on the VM stack (because it does
+ * not actually do any allocation and thus is faster). For generators
+ * though this behavior would be suboptimal, because the (rather large)
+ * structure would have to be copied back and forth every time execution is
+ * suspended or resumed. That's why for generators the execution context
+ * is allocated using emalloc, thus allowing to save and restore it simply
+ * by replacing a pointer.
+ */
+ if (op_array->fn_flags & ZEND_ACC_GENERATOR) {
+ execute_data = emalloc(total_size);
+ } else {
+ execute_data = zend_vm_stack_alloc(total_size TSRMLS_CC);
}
- EG(in_execution) = 1;
+ EX(CVs) = (zval ***) ((char *) execute_data + execute_data_size);
+ memset(EX(CVs), 0, sizeof(zval **) * op_array->last_var);
-zend_vm_enter:
- /* Initialize execute_data */
- execute_data = (zend_execute_data *)zend_vm_stack_alloc(
- ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) +
- ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)) +
- ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T TSRMLS_CC);
+ EX(Ts) = (temp_variable *) ((char *) EX(CVs) + CVs_size);
- EX(CVs) = (zval***)((char*)execute_data + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)));
- memset(EX(CVs), 0, sizeof(zval**) * op_array->last_var);
- EX(Ts) = (temp_variable *)(((char*)EX(CVs)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)));
EX(fbc) = NULL;
EX(called_scope) = NULL;
EX(object) = NULL;
@@ -35,9 +46,7 @@ zend_vm_enter:
EX(prev_execute_data) = EG(current_execute_data);
EG(current_execute_data) = execute_data;
EX(nested) = nested;
- nested = 1;
-
- LOAD_REGS();
+ EX(leaving) = 0;
if (!op_array->run_time_cache && op_array->last_cache_slot) {
op_array->run_time_cache = ecalloc(op_array->last_cache_slot, sizeof(void*));
@@ -46,10 +55,10 @@ zend_vm_enter:
if (op_array->this_var != -1 && EG(This)) {
Z_ADDREF_P(EG(This)); /* For $this pointer */
if (!EG(active_symbol_table)) {
- EX_CV(op_array->this_var) = (zval**)EX_CVs() + (op_array->last_var + op_array->this_var);
- *EX_CV(op_array->this_var) = EG(This);
+ EX(CVs)[op_array->this_var] = (zval **) EX(CVs) + op_array->last_var + op_array->this_var;
+ *EX(CVs)[op_array->this_var] = EG(This);
} else {
- if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void**)&EX_CV(op_array->this_var))==FAILURE) {
+ if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void **) &EX(CVs)[op_array->this_var])==FAILURE) {
Z_DELREF_P(EG(This));
}
}
@@ -57,11 +66,28 @@ zend_vm_enter:
EX(opline) = UNEXPECTED((op_array->fn_flags & ZEND_ACC_INTERACTIVE) != 0) && EG(start_op) ? EG(start_op) : op_array->opcodes;
EG(opline_ptr) = &EX(opline);
- LOAD_OPLINE();
EX(function_state).function = (zend_function *) op_array;
EX(function_state).arguments = NULL;
+ return execute_data;
+}
+
+ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *execute_data TSRMLS_DC)
+{
+ DCL_OPLINE
+ zend_bool original_in_execution;
+
+ {%HELPER_VARS%}
+
+ {%INTERNAL_LABELS%}
+
+ original_in_execution = EG(in_execution);
+ EG(in_execution) = 1;
+
+ LOAD_REGS();
+ LOAD_OPLINE();
+
while (1) {
{%ZEND_VM_CONTINUE_LABEL%}
#ifdef ZEND_WIN32
@@ -78,6 +104,14 @@ zend_vm_enter:
zend_error_noreturn(E_ERROR, "Arrived at end of main loop which shouldn't happen");
}
+ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
+{
+ if (EG(exception)) {
+ return;
+ }
+ {%EXECUTOR_NAME%}_ex(zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC);
+}
+
{%EXTERNAL_EXECUTOR%}
void {%INITIALIZER_NAME%}(void)
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index fde1baf90..bd5f2dede 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -387,52 +387,67 @@ function gen_code($f, $spec, $kind, $export, $code, $op1, $op2, $name) {
// Updating code according to selected threading model
switch($kind) {
case ZEND_VM_KIND_CALL:
- $code = preg_replace(
+ $code = preg_replace_callback(
array(
"/EXECUTE_DATA/m",
"/ZEND_VM_DISPATCH_TO_HANDLER\(\s*([A-Z_]*)\s*\)/m",
- "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/me",
- "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*[A-Za-z_]*\s*,\s*(.*)\s*\);/me",
- ),
- array(
- "execute_data",
- "return \\1".($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2]."_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)",
- "'return '.helper_name('\\1',$spec,'$op1','$op2').'(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)'",
- "'return '.helper_name('\\1',$spec,'$op1','$op2').'(\\2, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);'",
+ "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/m",
+ "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*[A-Za-z_]*\s*,\s*(.*)\s*\);/m",
),
+ function($matches) use ($spec, $prefix, $op1, $op2) {
+ if (strncasecmp($matches[0], "EXECUTE_DATA", strlen("EXECUTE_DATA")) == 0) {
+ return "execute_data";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HANDLER", strlen("ZEND_VM_DISPATCH_TO_HANDLER")) == 0) {
+ return "return " . $matches[1] . ($spec?"_SPEC":"") . $prefix[$op1] . $prefix[$op2] . "_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HELPER_EX", strlen("ZEND_VM_DISPATCH_TO_HELPER_EX")) == 0) {
+ return "return " . helper_name($matches[1], $spec, $op1, $op2) . "(" . $matches[2]. ", ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);";
+ } else {
+ return "return " . helper_name($matches[1], $spec, $op1, $op2) . "(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)";
+ }
+ },
$code);
break;
case ZEND_VM_KIND_SWITCH:
- $code = preg_replace(
+ $code = preg_replace_callback(
array(
"/EXECUTE_DATA/m",
"/ZEND_VM_DISPATCH_TO_HANDLER\(\s*([A-Z_]*)\s*\)/m",
- "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/me",
- "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*([A-Za-z_]*)\s*,\s*(.*)\s*\);/me",
+ "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/m",
+ "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*([A-Za-z_]*)\s*,\s*(.*)\s*\);/m",
),
- array(
- "execute_data",
- "goto \\1".($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2]."_LABEL",
- "'goto '.helper_name('\\1',$spec,'$op1','$op2')",
- "'\\2 = \\3; goto '.helper_name('\\1',$spec,'$op1','$op2').';'",
- ),
- $code);
+ function($matches) use ($spec, $prefix, $op1, $op2) {
+ if (strncasecmp($matches[0], "EXECUTE_DATA", strlen("EXECUTE_DATA")) == 0) {
+ return "execute_data";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HANDLER", strlen("ZEND_VM_DISPATCH_TO_HANDLER")) == 0) {
+ return "goto " . $matches[1] . ($spec?"_SPEC":"") . $prefix[$op1] . $prefix[$op2] . "_LABEL";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HELPER_EX", strlen("ZEND_VM_DISPATCH_TO_HELPER_EX")) == 0) {
+ return $matches[2] . " = " . $matches[3] . "; goto " . helper_name($matches[1], $spec, $op1, $op2) . ";";
+ } else {
+ return "goto " . helper_name($matches[1], $spec, $op1, $op2);
+ }
+ },
+ $code);
break;
case ZEND_VM_KIND_GOTO:
- $code = preg_replace(
+ $code = preg_replace_callback(
array(
"/EXECUTE_DATA/m",
"/ZEND_VM_DISPATCH_TO_HANDLER\(\s*([A-Z_]*)\s*\)/m",
- "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/me",
- "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*([A-Za-z_]*)\s*,\s*(.*)\s*\);/me",
+ "/ZEND_VM_DISPATCH_TO_HELPER\(\s*([A-Za-z_]*)\s*\)/m",
+ "/ZEND_VM_DISPATCH_TO_HELPER_EX\(\s*([A-Za-z_]*)\s*,\s*([A-Za-z_]*)\s*,\s*(.*)\s*\);/m",
),
- array(
- "execute_data",
- "goto \\1".($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2]."_HANDLER",
- "'goto '.helper_name('\\1',$spec,'$op1','$op2')",
- "'\\2 = \\3; goto '.helper_name('\\1',$spec,'$op1','$op2').';'",
- ),
- $code);
+ function($matches) use ($spec, $prefix, $op1, $op2) {
+ if (strncasecmp($matches[0], "EXECUTE_DATA", strlen("EXECUTE_DATA")) == 0) {
+ return "execute_data";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HANDLER", strlen("ZEND_VM_DISPATCH_TO_HANDLER")) == 0) {
+ return "goto " . $matches[1] . ($spec?"_SPEC":"") . $prefix[$op1] . $prefix[$op2] . "_HANDLER";
+ } else if (strncasecmp($matches[0], "ZEND_VM_DISPATCH_TO_HELPER_EX", strlen("ZEND_VM_DISPATCH_TO_HELPER_EX")) == 0) {
+ return $matches[2] . " = " . $matches[3] . "; goto " . helper_name($matches[1], $spec, $op1, $op2) . ";";
+ } else {
+ return "goto " . helper_name($matches[1], $spec, $op1, $op2);
+ }
+ },
+ $code);
break;
}
@@ -856,7 +871,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
out($f,"#define LOAD_REGS() do {Ts = EX(Ts); CVs = EX(CVs);} while (0)\n");
out($f,"#define ZEND_VM_CONTINUE() goto zend_vm_continue\n");
out($f,"#define ZEND_VM_RETURN() EG(in_execution) = original_in_execution; return\n");
- out($f,"#define ZEND_VM_ENTER() op_array = EG(active_op_array); goto zend_vm_enter\n");
+ out($f,"#define ZEND_VM_ENTER() execute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC); LOAD_REGS(); LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
out($f,"#define ZEND_VM_LEAVE() ZEND_VM_CONTINUE()\n");
out($f,"#define ZEND_VM_DISPATCH(opcode, opline) dispatch_handler = zend_vm_get_opcode_handler(opcode, opline); goto zend_vm_dispatch;\n\n");
out($f,"#define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_INTERNAL execute_data TSRMLS_CC\n");
@@ -892,7 +907,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
out($f,"#define LOAD_REGS() do {Ts = EX(Ts); CVs = EX(CVs);} while (0)\n");
out($f,"#define ZEND_VM_CONTINUE() goto *(void**)(OPLINE->handler)\n");
out($f,"#define ZEND_VM_RETURN() EG(in_execution) = original_in_execution; return\n");
- out($f,"#define ZEND_VM_ENTER() op_array = EG(active_op_array); goto zend_vm_enter\n");
+ out($f,"#define ZEND_VM_ENTER() execute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC); LOAD_REGS(); LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
out($f,"#define ZEND_VM_LEAVE() ZEND_VM_CONTINUE()\n");
out($f,"#define ZEND_VM_DISPATCH(opcode, opline) goto *(void**)(zend_vm_get_opcode_handler(opcode, opline));\n\n");
out($f,"#define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_INTERNAL execute_data TSRMLS_CC\n");
@@ -927,19 +942,12 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
skip_blanks($f, $m[1], $m[3]."\n");
}
break;
- case "EXECUTION_STATUS":
- if ($kind != ZEND_VM_KIND_GOTO) {
- out($f, $m[1] . "zend_bool original_in_execution = EG(in_execution);\n");
- } else {
- out($f, $m[1] . "zend_bool original_in_execution = op_array? EG(in_execution) : 0;\n");
- }
- break;
case "INTERNAL_LABELS":
if ($kind == ZEND_VM_KIND_GOTO) {
// Emit array of labels of opcode handlers and code for
// zend_opcode_handlers initialization
$prolog = $m[1];
- out($f,$prolog."if (op_array == NULL) {\n");
+ out($f,$prolog."if (execute_data == NULL) {\n");
out($f,$prolog."\tstatic const opcode_handler_t labels[] = {\n");
gen_labels($f, $spec, $kind, $prolog."\t\t");
out($f,$prolog."\t};\n");
@@ -983,10 +991,11 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
$m[1]."\t\tEG(in_execution) = original_in_execution;\n".
$m[1]."\t\treturn;\n".
$m[1]."\tcase 2:\n" .
- $m[1]."\t\top_array = EG(active_op_array);\n".
- $m[1]."\t\tgoto zend_vm_enter;\n".
+ $m[1]."\t\texecute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC);\n".
+ $m[1]."\t\tbreak;\n" .
$m[1]."\tcase 3:\n" .
$m[1]."\t\texecute_data = EG(current_execute_data);\n".
+ $m[1]."\t\tbreak;\n" .
$m[1]."\tdefault:\n".
$m[1]."\t\tbreak;\n".
$m[1]."}".$m[3]."\n");
@@ -1013,9 +1022,9 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
$prolog = $m[1];
if ($kind == ZEND_VM_KIND_GOTO) {
// Labels are defined in the executor itself, so we call it
- // with op_array NULL and it sets zend_opcode_handlers array
+ // with execute_data NULL and it sets zend_opcode_handlers array
out($f,$prolog."TSRMLS_FETCH();\n");
- out($f,$prolog."zend_execute(NULL TSRMLS_CC);\n");
+ out($f,$prolog.$executor_name."_ex(NULL TSRMLS_CC);\n");
} else {
if ($old) {
// Reserving space for user-defined opcodes
@@ -1189,7 +1198,7 @@ function gen_vm($def, $skel) {
// Generate opcode #defines (zend_vm_opcodes.h)
$code_len = strlen((string)$max_opcode);
- $f = fopen("zend_vm_opcodes.h", "w+") or die("ERROR: Cannot create zend_vm_opcodes.h\n");
+ $f = fopen(__DIR__ . "/zend_vm_opcodes.h", "w+") or die("ERROR: Cannot create zend_vm_opcodes.h\n");
// Insert header
out($f, $GLOBALS['header_text']);
@@ -1203,8 +1212,8 @@ function gen_vm($def, $skel) {
echo "zend_vm_opcodes.h generated successfully.\n";
// Generate zend_vm_execute.h
- $f = fopen("zend_vm_execute.h", "w+") or die("ERROR: Cannot create zend_vm_execute.h\n");
- $executor_file = realpath("zend_vm_execute.h");
+ $f = fopen(__DIR__ . "/zend_vm_execute.h", "w+") or die("ERROR: Cannot create zend_vm_execute.h\n");
+ $executor_file = realpath(__DIR__ . "/zend_vm_execute.h");
// Insert header
out($f, $GLOBALS['header_text']);
@@ -1447,6 +1456,6 @@ if (!defined("ZEND_VM_LINES")) {
define("ZEND_VM_LINES", 0);
}
-gen_vm("zend_vm_def.h", "zend_vm_execute.skl");
+gen_vm(__DIR__ . "/zend_vm_def.h", __DIR__ . "/zend_vm_execute.skl");
?>
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 680778c2a..7f9434995 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -159,3 +159,6 @@
#define ZEND_SEPARATE 156
#define ZEND_QM_ASSIGN_VAR 157
#define ZEND_JMP_SET_VAR 158
+#define ZEND_LEAVE 159
+#define ZEND_YIELD 160
+#define ZEND_GENERATOR_RETURN 161