History log of /PHP-8.3/Zend/zend_language_parser.y (Results 351 – 375 of 611)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-5.4.5, php-5.3.15, php-5.3.15RC1, php-5.4.5RC1
# a44a1dc1 26-Jun-2012 Xinchen Hui

Fixed bug #62357 (compile failure: (S) Arguments missing for built-in function __memcmp).

Any C library function may be a macro, We should avoid using ZEND_STRS(L) as their arguments


Revision tags: php-5.3.14, php-5.4.4
# d939d2de 11-Jun-2012 Nikita Popov

Add sceleton for yield* expression

This does not yet actually implement any delegation.


Revision tags: php-5.3.14RC2, php-5.4.4RC2
# bc08c2cf 30-May-2012 Nikita Popov

Add support for yielding keys

Keys are yielded using the

yield $key => $value

syntax. Currently this is implemented as a statement only and not as an
expression, be

Add support for yielding keys

Keys are yielded using the

yield $key => $value

syntax. Currently this is implemented as a statement only and not as an
expression, because conflicts arise considering nesting and use in arrays:

yield yield $a => $b;
// could be either
yield (yield $a) => $b;
// or
yield (yield $a => $b);

Once I find some way to resolve these conflicts this should be available
as an expression too.

Also the key yielding code is rather copy-and-past-y for the value yielding
code, so that should be factored out.

show more ...


# ad525c28 29-May-2012 Nikita Popov

Allow to use yield without value

If the generator is used as a coroutine it often doesn't make sense to yield
anything. In this case one can simply receive values using

$val

Allow to use yield without value

If the generator is used as a coroutine it often doesn't make sense to yield
anything. In this case one can simply receive values using

$value = yield;

The yield here will simply yield NULL.

show more ...


# 3600914c 29-May-2012 Nikita Popov

Add support for $generator->send()

Yield now is an expression and the return value is the value passed to
$generator->send(). By default (i.e. if ->next() is called) the value is
NUL

Add support for $generator->send()

Yield now is an expression and the return value is the value passed to
$generator->send(). By default (i.e. if ->next() is called) the value is
NULL.

Unlike in Python ->send() can be run without priming the generator with a
->next() call first.

show more ...


# e14cfafc 19-May-2012 Nikita Popov

Add zend_do_suspend_if_generator calls

The execution of generator functions will be suspended right after the
arguments were RECVed. This will be done in zend_do_suspend_if_generator.


# 252f6234 19-May-2012 Nikita Popov

Add flag for generator functions

Generator functions have to specify the * (asterix) modifier after the
function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to
the fn

Add flag for generator functions

Generator functions have to specify the * (asterix) modifier after the
function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to
the fn_flags.

show more ...


Revision tags: php-5.3.14RC1, php-5.4.4RC1
# 9b101ac8 15-May-2012 Nikita Popov

Add T_YIELD "yield" keyword


Revision tags: php-5.3.13, php-5.4.3, php-5.4.2, php-5.3.12, php-5.3.11, php-5.4.1
# ec061a93 12-Apr-2012 Nikita Popov

Allow arbitrary expressions for empty()

This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

The change allows passing the result of function calls and other
ex

Allow arbitrary expressions for empty()

This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

The change allows passing the result of function calls and other
expressions to the empty() language construct. This is accomplished by
simply rewriting empty(expr) to !expr.

The change does not affect the suppression of errors when using empty()
on variables. empty($undefinedVar) will continue not to throw errors.
When an expression is used inside empty() on the other hand, errors will
not be suppressed. Thus empty($undefinedVar + $somethingElse) *will*
throw a notice.

The change also does not make empty() into a real function, so using
'empty' as a callback is still not possible.

In addition to the empty() changes the commit adds nicer error messages
when isset() is used on function call results or other expressions.

show more ...


# 565892d4 15-Apr-2012 Xinchen Hui

Implement const array/string dereference

RFC:https://wiki.php.net/rfc/constdereference


Revision tags: php-5.3.11RC2, php-5.4.1RC2
# 4cf90e06 30-Mar-2012 Nikita Popov

Fix lexing of nested heredoc strings in token_get_all()

This fixes bug #60097.

Before two global variables CG(heredoc) and CG(heredoc_len) were used to
track the current heredoc

Fix lexing of nested heredoc strings in token_get_all()

This fixes bug #60097.

Before two global variables CG(heredoc) and CG(heredoc_len) were used to
track the current heredoc label. In order to support nested heredoc
strings the *previous* heredoc label was assigned as the token value of
T_START_HEREDOC and the language_parser.y assigned that to CG(heredoc).

This created a dependency of the lexer on the parser. Thus the
token_get_all() function, which accesses the lexer directly without
also running the parser, was not able to tokenize nested heredoc strings
(and leaked memory). Same applies for the source-code highlighting
functions.

The new approach is to maintain a heredoc_label_stack in the lexer, which
contains all active heredoc labels.

As it is no longer required, T_START_HEREDOC and T_END_HEREDOC now don't
carry a token value anymore.

In order to make the work with zend_ptr_stack in this context more
convenient I added a new function zend_ptr_stack_top(), which retrieves the
top element of the stack (similar to zend_stack_top()).

show more ...


Revision tags: php-5.3.11RC1, php-5.4.1RC1, PHP-5.4.1-RC1, php-5.4.0, php-5.4.0RC8, php-5.3.10, php-5.4.0RC7, php-5.4.0RC6
# b515bfbd 17-Jan-2012 Dmitry Stogov

Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants i

Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.

show more ...


# 032d140f 17-Jan-2012 Dmitry Stogov

Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants i

Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.

show more ...


Revision tags: php-5.3.9, php-5.4.0RC5
# e4ca0ed0 01-Jan-2012 Felipe Pena

- Year++


# 8775a375 01-Jan-2012 Felipe Pena

- Year++


# 4e198252 01-Jan-2012 Felipe Pena

- Year++


Revision tags: php-5.3.9RC4, php-5.4.0RC4, php-5.3.9RC3, php-5.4.0RC3, php-5.3.9RC2, php-5.4.0RC2, php-5.4.0RC1
# eebaaf42 06-Nov-2011 Felipe Pena

- Added class member access on instantiation (e.g. (new foo)->bar()) support


# ff48763f 06-Nov-2011 Felipe Pena

- Added class member access on instantiation (e.g. (new foo)->bar()) support


Revision tags: php-5.3.9RC1, php-5.4.0beta2, php-5.4.0beta1, yaf-2.1.0, php-5.3.8, php-5.3.7
# 8db63e88 16-Aug-2011 Felipe Pena

- Drop T_SCALAR_CAST


# 17abf879 16-Aug-2011 Felipe Pena

- Drop T_SCALAR_CAST


# 306c4202 16-Aug-2011 Hannes Magnusson

Callable typehint following the rules of is_callable($arg, false);


# 550980cf 16-Aug-2011 Hannes Magnusson

Callable typehint following the rules of is_callable($arg, false);


Revision tags: php-5.3.7RC5, php-5.4.0alpha3
# ad4d6d1c 01-Aug-2011 Dmitry Stogov

Added support for Class::{expr}() syntax (Pierrick)


# 74f68932 01-Aug-2011 Dmitry Stogov

Added support for Class::{expr}() syntax (Pierrick)


# 0158804a 31-Jul-2011 Stefan Marr

Added __TRAIT__ magic constant [TRAITS] [DOC]
# __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits.
# Since traits are not types, there are not many valid use cases, an

Added __TRAIT__ magic constant [TRAITS] [DOC]
# __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits.
# Since traits are not types, there are not many valid use cases, and trying
# to use __TRAIT__ to make traits more like classes is discouraged.

show more ...


1...<<11121314151617181920>>...25