History log of /PHP-Parser/grammar/parser.template (Results 1 – 13 of 13)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# af14fdb2 21-Feb-2024 Nikita Popov

Avoid cyclic reference in parser

Pass $this as an explicit $self argument to the reduce callbacks,
so we can make them static. This avoids a circular reference in
the parser, so that

Avoid cyclic reference in parser

Pass $this as an explicit $self argument to the reduce callbacks,
so we can make them static. This avoids a circular reference in
the parser, so that it can be immediately destroyed when it goes
out of scope.

Fixes #980.

show more ...


# d8e80653 23-Sep-2023 Nikita Popov

Don't parse unicode escapes for PHP < 7.0

We still had the option for this but were hardcoding it to true.
Make it conditional on the PHP version instead.


# b20267c5 09-Jul-2023 Nikita Popov

Make use of default actions

For the default action $$ = $1, save the closure invocation.


# 48f470ea 11-Sep-2022 Nikita Popov

Add missing return types


# f62b2bfd 28-Aug-2022 Nikita Popov

Introduce separate Modifiers class

Use PhpParser\Modifiers::PUBLIC instead of
PhpParser\Node\Stmt\Class_::MODIFIER_PUBLIC, etc. Old constants
of course remain available.

Fix

Introduce separate Modifiers class

Use PhpParser\Modifiers::PUBLIC instead of
PhpParser\Node\Stmt\Class_::MODIFIER_PUBLIC, etc. Old constants
of course remain available.

Fixes #476.

show more ...


# 050342b5 04-Jul-2022 MathiasReker

Add visibility modifiers to constants

Closes GH-848.


# 0ea134a5 19-Jun-2022 Nikita Popov

Add PHP 8 parser with correct concatenation precedence

The PHP 7 and PHP 8 parsers use the same grammar file and only
differ in token precedence.


# a38a60b7 19-Jun-2022 Nikita Popov

Move Tokens::T_* to Php7::T_*

Drop the separate tokens class, move them into the parser.


# bdd131d3 05-Jun-2022 Nikita Popov

Add missing strict_types=1 directive to parser


Revision tags: v4.3.0, v4.2.5, v4.2.4, v4.2.3, v4.2.2, v4.2.1, v4.2.0, v4.1.1, v4.1.0, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v3.1.5, v4.0.0beta1, v3.1.4, v4.0.0alpha3, v3.1.3
# a75164c7 12-Nov-2017 Nikita Popov

Rename YYNLSTATES to numNonLeafStates


Revision tags: v4.0.0alpha2, v3.1.2, v4.0.0alpha1, v3.1.1, v3.1.0, v3.0.6, v3.0.5, v3.0.4
# 8f623fb2 05-Feb-2017 Nikita Popov

Use closures instead of methods for semantic actions

The dispatch using $this->{'reduceRule' . $rule}() is very expensive
because it involves
* One allocation when converting $rule

Use closures instead of methods for semantic actions

The dispatch using $this->{'reduceRule' . $rule}() is very expensive
because it involves
* One allocation when converting $rule to a string
* Another allocation when concatenating the two strings
* Lowercasing during the method call
* Various uncached method checks, e.g. visibility.

Using an array of closures for semantic action dispatch is
significantly more efficient.

show more ...


# 3bbf8d8f 04-Feb-2017 Nikita Popov

Use local var for $stackPos

We're accessing $this->stackPos a lot, and property accesses are
much more expensive than local variable acesses. Its cheaper to
use a local var and pass

Use local var for $stackPos

We're accessing $this->stackPos a lot, and property accesses are
much more expensive than local variable acesses. Its cheaper to
use a local var and pass it as an argument to semantic actions.

show more ...


Revision tags: v3.0.3, v3.0.2, v3.0.1, v3.0.0, v3.0.0beta2, v3.0.0beta1, v2.1.1, v3.0.0alpha1, v2.1.0, v2.0.1, v2.0.0, v2.0.0beta1, v1.4.1, v2.0.0alpha1, v1.4.0
# bc21514e 13-Jun-2015 Nikita Popov

Move token constants into separate class

As these are shared between Php5 and Php7 parsers they should be
in some common place, otherwise we'd have to always reference either
one or

Move token constants into separate class

As these are shared between Php5 and Php7 parsers they should be
in some common place, otherwise we'd have to always reference either
one or the other.

show more ...