History log of /PHP-Parser/lib/PhpParser/ParserAbstract.php (Results 101 – 125 of 131)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v3.0.2, v3.0.1, v3.0.0
# 27281e91 23-Nov-2016 Nikita Popov

Fix attribute assignment for Error nodes


# c5cdd5ad 21-Nov-2016 Nikita Popov

Support recovery from free-standing $


Revision tags: v3.0.0beta2
# f99a96e0 09-Oct-2016 Nikita Popov

Introduce ErrorHandler

Add ErrorHandler interface, as well as ErrorHandler\Throwing
and ErrorHandler\Collecting. The error handler is passed to
Parser::parse(). This supersedes the t

Introduce ErrorHandler

Add ErrorHandler interface, as well as ErrorHandler\Throwing
and ErrorHandler\Collecting. The error handler is passed to
Parser::parse(). This supersedes the throwOnError option.

NameResolver now accepts an ErrorHandler in the ctor.

show more ...


# caa5c0cc 08-Oct-2016 Nikita Popov

Graceful handling for "special" errors

Nearly all special errors are now handled gracefully, i.e. the
parser will be able to continue after encountering them. In some
cases the assoc

Graceful handling for "special" errors

Nearly all special errors are now handled gracefully, i.e. the
parser will be able to continue after encountering them. In some
cases the associated error range has been improved using the new
end attribute stack.

To achieve this the error handling code has been moved out of the
node constructors and into special methods in the parser.

show more ...


# f6eb341b 08-Oct-2016 Nikita Popov

Fix GroupUse prefix attribute assignment


# c79ea6d1 30-Sep-2016 Nikita Popov

Support recovery from lexer errors

Lexer::startLexing() no longer throws, instead errors can be fetched
using Lexer::getErrors().

Lexer errors now also contain full line and pos

Support recovery from lexer errors

Lexer::startLexing() no longer throws, instead errors can be fetched
using Lexer::getErrors().

Lexer errors now also contain full line and position information.

show more ...


# c5e0c3d7 30-Sep-2016 Nikita Popov

Catch lexer errors in throwOnError=0 mode


Revision tags: v3.0.0beta1, v2.1.1
# 977cbab8 25-Jul-2016 Nikita Popov

Decrement errorState when recovering from -> error

It's likely that an error after -> will trigger another one due to
missing semicolon without shifting a single token. We prevent an

Decrement errorState when recovering from -> error

It's likely that an error after -> will trigger another one due to
missing semicolon without shifting a single token. We prevent an
immediate failure in this case by manually setting errorState to 2,
which will suppress the duplicate error message, but allow error
recovery.

show more ...


Revision tags: v3.0.0alpha1
# 81f7da3b 06-Jul-2016 Nikita Popov

Fix computation of expected tokens in parse errors


# 5044fce1 05-Jul-2016 Nikita Popov

PHP 7.1: Add void+iterable support

In PHP 7 mode, these will now be represented as strings 'void'
and 'iterable'.


Revision tags: v2.1.0
# 4c7ad7e1 16-Apr-2016 Nikita Popov

Allow nop statements before namespace declaration


# 14de7189 05-Apr-2016 Nikita Popov

Fix nop statement comment assignment

Keep around the start attributes on the lookahead token around in
a separate parser property.


Revision tags: v2.0.1
# eb734410 15-Jan-2016 Nikita Popov

Support hashbang before namespace declaration

Fixes issue #243.


Revision tags: v2.0.0, v2.0.0beta1, v1.4.1, v2.0.0alpha1, v1.4.0
# f2b7a315 20-Jun-2015 Nikita Popov

Rename ParserInterface to Parser

And drop the alias of Parser to Parser\Php5.


# 0da72fad 13-Jun-2015 Nikita Popov

Support scalar type declarations


# ca3b44bf 13-Jun-2015 Nikita Popov

Fork separate PHP 7 parser

Also add ParserInterface


Revision tags: v1.3.0
# 9caa51b3 01-May-2015 Nikita Popov

Add some more tests


# 3b7d8e8b 30-Apr-2015 Nikita Popov

Enable basic error recovery

Adding only a single recovery rule for now.

The API is now:
* throwOnError parser option must be disabled.
* List of Errors is available throug

Enable basic error recovery

Adding only a single recovery rule for now.

The API is now:
* throwOnError parser option must be disabled.
* List of Errors is available through $parser->getErrors(). This
method is available either way.
* If no recovery is possible $parser->parse() will return null.
(Obviously only if throwOnError is disabled).

show more ...


# 66896dbd 26-Apr-2015 Nikita Popov

Poison attribute initializations in parser

Those should error if they end up being used.


# a6d2cd69 23-Apr-2015 Nikita Popov

Clarify attribute assignment code

* Don't assign to attribute stack on reduce - why was that there
in the first place?
* Assign attributes to the position in the stack where the firs

Clarify attribute assignment code

* Don't assign to attribute stack on reduce - why was that there
in the first place?
* Assign attributes to the position in the stack where the first
token of the production is, instead of one position earlier.
* Add a comment to clarify why we also assign attributes on read,
instead of just on shift.

show more ...


# 6996db1e 22-Apr-2015 Nikita Popov

Build node attributes inside semantic action methods

Minor performance improvement for parsing, also allows to access
attributes with higher granulity in the parser, though this is not

Build node attributes inside semantic action methods

Minor performance improvement for parsing, also allows to access
attributes with higher granulity in the parser, though this is not
currently done.

* #n can now be used to access the stack position of a token. $n
is the same as $this->semStack[#n]. (Post-translate $n will
actually be the stack position.)
* $attributeStack is now $this->startAttributeStack and
$endAttributes is now $this->endAttributes.
* Attributes for a node are now computed inside the individual
reduction methods, instead of being passed as a parameter.
Accessible through the attributes() macro.

show more ...


Revision tags: v1.2.2, v1.2.1, v1.2.0
# 65f1adbe 02-Feb-2015 Nikita Popov

Merge primary error recovery code

The grammar does not yet actually implement error recovery.


# 611fa5c7 18-Apr-2015 Nikita Popov

Test parser position information (syntax errors)


# 4defbc21 18-Apr-2015 Nikita Popov

Make Error column info attribute based


# 33a39fae 14-Apr-2015 Gerrit Addiks

added column-numbers to syntax errors


123456