History log of /PHP-8.3/Zend/zend_language_scanner.l (Results 51 – 75 of 540)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
Revision tags: php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1
# 9bf11983 24-May-2020 Ilija Tovilo

Implement nullsafe ?-> operator

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

Closes GH-5619.

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

# 7a3dcc3e 15-Jun-2020 Nikita Popov

Treat namespaced names as single token

Namespace names are now lexed as single tokens of type
T_NAME_QUALIFIED, T_NAME_FULLY_QUALIFIED or T_NAME_RELATIVE.

RFC: https://wiki.php.

Treat namespaced names as single token

Namespace names are now lexed as single tokens of type
T_NAME_QUALIFIED, T_NAME_FULLY_QUALIFIED or T_NAME_RELATIVE.

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

Closes GH-5827.

show more ...

Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17
# 9fa1d133 09-Apr-2020 Ilija Tovilo

Implement match expression

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

Closes GH-5371.

Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28
# 47cf18ba 15-Feb-2020 Nikita Popov

Don't include trailing newline in comment token

Don't include a trailing newline in T_COMMENT tokens, instead leave
it for a following T_WHITESPACE token. The newline does not belong

Don't include trailing newline in comment token

Don't include a trailing newline in T_COMMENT tokens, instead leave
it for a following T_WHITESPACE token. The newline does not belong
to the comment logically, and this makes for an ugly special case,
as other tokens do not include trailing newlines.

Whitespace-sensitive tooling will want to either forward or backward
emulate this change.

Closes GH-5182.

show more ...

# 55717656 19-Jun-2020 Nikita Popov

Forbid use of <?= as a semi-reserved identifier

One of the weirdest pieces of PHP code I've ever seen. In terms
of tokens, this gets internally translated to

use x as y; ech

Forbid use of <?= as a semi-reserved identifier

One of the weirdest pieces of PHP code I've ever seen. In terms
of tokens, this gets internally translated to

use x as y; echo as my_echo;

On master it crashes because this "echo" does not have attached
identifier metadata. Make sure it is added and then reject the
use of "<?=" as an identifier inside zend_lex_tstring.

Fixes oss-fuzz #23547.

show more ...

# c7ad8a87 12-Jun-2020 Nikita Popov

Initialize indentation_uses_spaces field

This avoids reading a trap representation from _Bool,
but shouldn't matter as far as behavior is concerned.

# b03cafd1 05-Jun-2020 Nikita Popov

Fix bug #77966: Cannot alias a method named "namespace"

This is a bit tricky: In this cases we have "namespace as", which
means that we will only recognize "namespace" as an identifier w

Fix bug #77966: Cannot alias a method named "namespace"

This is a bit tricky: In this cases we have "namespace as", which
means that we will only recognize "namespace" as an identifier when
the lookahead token is already at the "as". This means that
zend_lex_tstring picks up the wrong identifier.

We solve this by actually assigning the identifier as the semantic
value on the parser stack -- as in almost all cases we will not
actually need the identifier, this is just an (offset, size)
reference, not a copy of the string.

Additionally, we need to teach the lexer feedback mechanism used
by tokenizer TOKEN_PARSE mode to apply feedback to something
other than the very last token. To that purpose we pass through
the token text and check the tokens in reverse order to find the
right one.

Closes GH-5668.

show more ...

# 80598f12 08-Apr-2020 Alex Dowad

Syntax errors caused by unclosed {, [, ( mention specific location

Aside from a few very specific syntax errors for which detailed exceptions are
thrown, generally PHP just emits the def

Syntax errors caused by unclosed {, [, ( mention specific location

Aside from a few very specific syntax errors for which detailed exceptions are
thrown, generally PHP just emits the default error messages generated by bison on syntax
error. These messages are very uninformative; they just say "Unexpected ... at line ...".

This is most problematic with constructs which can span an arbitrary number of lines, such
as blocks of code delimited by { }, 'if' conditions delimited by ( ), and so on. If a closing
delimiter is missed, the block will run for the entire remainder of the source file (which
could be thousands of lines), and then at the end, a parse error will be thrown with the
dreaded words: "Unexpected end of file".

Therefore, track the positions of opening and closing delimiters and ensure that they match
up correctly. If any mismatch or missing delimiter is detected, immediately throw a parse
error which points the user to the offending line. This is best done in the *lexer* and not
in the parser.

Thanks to Nikita Popov and George Peter Banyard for suggesting improvements.

Fixes bug #79368.
Closes GH-5364.

show more ...

# 3709e74b 06-Apr-2020 Máté Kocsis

Store default parameter values of internal functions in arg info

Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal function

Store default parameter values of internal functions in arg info

Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

show more ...

# 4565a7f2 16-Mar-2020 Nikita Popov

Fix assertion when (real) is used

And bring back a test for it...

# c9db3227 28-Feb-2020 George Peter Banyard

Remove deprecated (real) cast

Closes GH-5220

# 30c23887 28-Feb-2020 Nikita Popov

Merge branch 'PHP-7.4'

* PHP-7.4:
Fixed bug #79062


# 375191aa 28-Feb-2020 Nikita Popov

Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
Fixed bug #79062


# 6c48da9a 28-Feb-2020 Nikita Popov

Fixed bug #79062

Back up the doc comment when performing heredoc scanahead.

Revision tags: php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1
# d5c886ab 30-Dec-2019 Nikita Popov

Merge branch 'PHP-7.4'

* PHP-7.4:
Properly propagate url_stat exceptions during include


# f77747b0 30-Dec-2019 Nikita Popov

Properly propagate url_stat exceptions during include

Make sure we abort operations early, and that we don't emit
additional warnings or errors if an exception has been thrown.

Revision tags: php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1
# e0a40133 30-Oct-2019 Nikita Popov

Make "unterminated comment" into a parse error

Revision tags: php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4
# 4e563e6c 14-Oct-2019 Nikita Popov

Merge branch 'PHP-7.4'

* PHP-7.4:
Fix handling of overflowing invalid octal in tokenizer


# 641f9615 12-Oct-2019 Nikita Popov

Fix handling of overflowing invalid octal in tokenizer

If token_get_all() is used, we still need to correctly distinguish
LNUMBER vs DNUMBER here for backwards compatibility.

# 595e8c67 10-Oct-2019 Nikita Popov

Merge branch 'PHP-7.4'


# 6878c583 10-Oct-2019 Nikita Popov

Report error if stream_read is not implemented

We need to return -1 in this case. Slightly restructure the code
to avoid unnecessary conditions.

Revision tags: php-7.3.11RC1, php-7.2.24RC1
# e9f4676b 07-Oct-2019 Nikita Popov

Merge branch 'PHP-7.4'


# 2f648444 07-Oct-2019 Nikita Popov

Fix leak when include fails in a read operation

Usually it will already fail when opening, but reads can also
fail since PHP 7.4, in which case we still need to place the
file handle

Fix leak when include fails in a read operation

Usually it will already fail when opening, but reads can also
fail since PHP 7.4, in which case we still need to place the
file handle in open_files to make sure the destructor will run
on it.

show more ...

# 50505072 04-Oct-2019 Nikita Popov

Merge branch 'PHP-7.4'


# b078ae6c 04-Oct-2019 Nikita Popov

Merge branch 'PHP-7.3' into PHP-7.4


12345678910>>...22