Nikita Popov
b83c70416b
Compile class const refs to CONST zval
2014-06-26 16:35:30 +02:00
Nikita Popov
9c169d5a4d
Remove static_scalar_base
2014-06-26 14:03:31 +02:00
Nikita Popov
31687ed5c7
Handle trait __CLASS__ in parser
2014-06-26 14:00:20 +02:00
Nikita Popov
7f01b6fcec
Bring static scalar arrays in line
2014-06-26 13:20:39 +02:00
Nikita Popov
0237954778
Bring static scalar AST more in line with normal AST
2014-06-26 13:06:39 +02:00
Nikita Popov
1b84b87e78
Const eval unary pm (as previously)
2014-06-26 12:43:20 +02:00
Nikita Popov
508d146cd3
Move T_STRING_VARNAME handling
2014-06-21 20:11:31 +02:00
Nikita Popov
90d36554e2
Support string interpolation
2014-06-21 20:06:46 +02:00
Nikita Popov
b6789b1dd6
zend_ast_dynamic_ast returns new node
2014-06-21 19:31:08 +02:00
Nikita Popov
657762ee2b
AST stage 2.4
2014-06-21 18:54:13 +02:00
Nikita Popov
232a922618
Support yield without parens
...
for now => is lowest-prec right-assoc
2014-06-19 13:48:49 +02:00
Nikita Popov
0ec49bba22
AST stage 1.9
...
Expressions (mostly) use the AST
2014-06-19 13:48:35 +02:00
Nikita Popov
258a733ed2
AST-based compiler: Stage 1
2014-06-14 15:22:18 +02:00
Nikita Popov
c8aa51f825
Accept static member fetch in new variable (BC)
2014-06-06 17:05:14 +02:00
Nikita Popov
e4e42df4e6
Allow only simple variables with global keyword
2014-06-04 17:15:16 +02:00
Nikita Popov
f4a11b66cc
Merge and rename to member_name
2014-05-31 21:00:11 +02:00
Nikita Popov
8d7f5a403a
Remove duplication
2014-05-31 20:58:44 +02:00
Nikita Popov
5c2120b6cf
Forbid writing to temporary expressions
2014-05-31 19:41:39 +02:00
Nikita Popov
64e4c9eff1
Support directly calling closure
2014-05-31 17:18:37 +02:00
Nikita Popov
fd85f77857
Fix previous commit
2014-05-31 17:02:48 +02:00
Nikita Popov
64f80b3835
Introduce dereferencable_scalar to simplify future additions
2014-05-31 16:44:53 +02:00
Nikita Popov
f48241f734
Generalize static access syntax
2014-05-31 16:27:03 +02:00
Nikita Popov
ff475e9e76
Allow arrays + object access for new expressions
2014-05-31 00:37:03 +02:00
Nikita Popov
75c0db1119
Integrate combined scalar as dereferencable
2014-05-31 00:18:50 +02:00
Nikita Popov
46a2ca8324
Generalize expression dereferencing
2014-05-31 00:09:11 +02:00
Nikita Popov
5712f0e9bd
Minor cleanup
2014-05-31 00:02:51 +02:00
Nikita Popov
87f8e758c8
Cleanup old grammar rules
2014-05-30 23:51:54 +02:00
Nikita Popov
295d07e373
Reintroduce new expression dereferencing
2014-05-30 23:44:30 +02:00
Nikita Popov
067fca0e89
Remove reference_variable indirection
2014-05-30 23:36:30 +02:00
Nikita Popov
e89958a634
Make function calls directly callable
2014-05-30 23:30:37 +02:00
Nikita Popov
667f8409c5
Recursive definition for object proprety fetches
2014-05-30 23:25:43 +02:00
Nikita Popov
a8c1595012
LTR static member access
2014-05-30 22:33:03 +02:00
Nikita Popov
b8b3b355be
Use recursion for property fetches
2014-05-30 22:04:39 +02:00
Nikita Popov
46e35e3d5d
Get rid of base_variable_with_function_calls
2014-05-30 21:14:18 +02:00
Nikita Popov
e2be2cee97
Temporarily disable complex variables in new expressions
2014-05-30 21:11:25 +02:00
Nikita Popov
95a3a12657
Change precedence of $ operator
...
$$foo['bar'] is now interpreted as ${$foo}['bar'] rather than
${$foo['bar']}.
2014-05-30 16:31:10 +02:00
Dmitry Stogov
0c6a6f0fba
Re-applyed Bob's patch with minor fixes
2014-05-07 15:03:56 +04:00
Dmitry Stogov
4ecc527976
Reverted Bob's patch (it breaks many tests when run with opcache and needs to be fixed first).
2014-05-07 03:26:13 +04:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +04:00
Dmitry Stogov
f9927a6c97
Merge mainstream 'master' branch into refactoring
...
During merge I had to revert:
Nikita's patch for php_splice() (it probably needs to be applyed again)
Bob Weinand's patches related to constant expression handling (we need to review them carefully)
I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway)
Conflicts:
Zend/zend.h
Zend/zend_API.c
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c
Zend/zend_hash.c
Zend/zend_highlight.c
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_variables.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/date/php_date.c
ext/dom/documenttype.c
ext/hash/hash.c
ext/iconv/iconv.c
ext/mbstring/tests/zend_multibyte-10.phpt
ext/mbstring/tests/zend_multibyte-11.phpt
ext/mbstring/tests/zend_multibyte-12.phpt
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/mysqlnd/mysqlnd_reverse_api.c
ext/mysqlnd/php_mysqlnd.c
ext/opcache/ZendAccelerator.c
ext/opcache/zend_accelerator_util_funcs.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/pcre/php_pcre.c
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c
ext/pdo_pgsql/pgsql_driver.c
ext/pgsql/pgsql.c
ext/reflection/php_reflection.c
ext/session/session.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
ext/standard/array.c
ext/standard/basic_functions.c
ext/standard/html.c
ext/standard/mail.c
ext/standard/php_array.h
ext/standard/proc_open.c
ext/standard/streamsfuncs.c
ext/standard/user_filters.c
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re
main/php_variables.c
sapi/phpdbg/phpdbg.c
sapi/phpdbg/phpdbg_bp.c
sapi/phpdbg/phpdbg_frame.c
sapi/phpdbg/phpdbg_help.c
sapi/phpdbg/phpdbg_list.c
sapi/phpdbg/phpdbg_print.c
sapi/phpdbg/phpdbg_prompt.c
2014-04-26 00:32:51 +04:00
Nikita Popov
4912bec514
Fix zts
2014-04-22 19:39:13 +02:00
Nikita Popov
3d3a55cbcb
Pass expected array size hint in INIT_ARRAY
...
To avoid unnecessary rehashes
2014-04-22 18:57:03 +02:00
Bob Weinand
ee2a7c7d41
Fixed disallowal of array usage in constants at run-time
...
Added at the same time the possibility of array dereferencing
to complete the set of features (useful application of arrays in constants)
2014-04-11 18:21:46 +02:00
Bob Weinand
f614fc6898
Fix bug #66015 by reverting "Removed operations on constant arrays."
2014-04-11 10:08:44 +02:00
Nikita Popov
20f2e5986e
Fix ZTS build
...
This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.
2014-04-09 23:41:16 +02:00
Dmitry Stogov
76cc99fe60
Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)
2014-04-03 15:26:23 +04:00
Tjerk Meesters
3d1fa4cb17
Allow T_POW in constant expressions
2014-03-07 09:14:27 +08:00
Nikita Popov
2eae187949
Store arg_num in fcall entry
...
Instead of storing the argument number in the znode of the parameter
list, store it in fcall->arg_num. This mainly cleans up the parameter
parsing code, which previously had to duplicate all rules (this
becomes more excessive as more features are added, e.g. named params
would already require a minimum of 14 rules...)
2014-02-26 16:40:25 +01:00
Dmitry Stogov
ff162410f0
Fixed traits support
2014-02-25 01:18:06 +04:00