php-extended/php-parser-lexer

This library is an implementation of the php-extended/php-parser-interface based on a lexer for handling its data

4.0.0 2022-05-31 07:41 UTC

This package is auto-updated.

Last update: 2022-07-31 00:29:45 UTC


README

This library is an implementation of the php-extended/php-parser-interface based on a lexer for handling its data.

coverage build status

Installation

The installation of this library is made via composer. Download composer.phar from their website. Then add to your composer.json :

	"require": {
		...
		"php-extended/php-parser-lexer": "^3"
		...
	}

Then run php composer.phar update to install this library. The autoloading of all classes of this library is made through composer's autoloader.

Basic Usage

This library provide a single class, the AbstractParserLexer which is made to be implemented. Its parseLexer method must return a single object from the whole string that its given, and throw a ParseException if it is impossible to do so.

It is advised that the parseLexer method use a combination of :


public function parseLexer(LexerInterface $lexer)
{
	$lexer->rewind(); // do not forget !
	$token = $this->expectOneOf($lexer, [<tokenids>]);
	$this->expectEof($lexer, $token);
	
	return MyObject($token->getData());
}

As the LexerInterface is an \Iterable, you may as well use it into a foreach loop.

License

MIT (See license file).