News Feed
Sections




News Archive
feed this:

Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Wez Furlong's Blog:
parser and lexer generators for PHP
November 27, 2006 @ 09:34:00

When finding he was in need of a parser and lexer, Wez Furlong decided to work up one that was PHP-based and a take off of the popular lemon parser and JLex lexer.

From time to time, I find that I need to put a parser together. Most of the time I find that I need to do this in C for performance, but other times I just want something convenient, like PHP, and have been out of luck.

His result is two new packages - lemon-php and JLexPHP (under a BSDish license) you can download and compile on your own system.

Also, if you'll remember a while back, Greg Beaver had wanted something similar (as mentioned in the comments) and created his own lexer/generator as well.

0 comments voice your opinion now!
parser lexer jlex lemon port download compile java parser lexer jlex lemon port download compile java


Greg Beaver's Blog:
PHP_ParserGenerator and PHP_LexerGenerator
June 25, 2006 @ 17:00:41

Greg Beaver has blogged today with more about the port he's been wokring on of the Lemon parser generator to PHP5, this time discussion the creation of two packages - PHP_ParserGenerator and PHP_LexerGenerator.

Last week, I blogged about completing a port of the Lemon parser generator to PHP 5, which I thought was pretty cool. However, in an email, Alex Merz pointed out that without a lexer generator to accompany lemon, it's pretty difficult to write a decent parser.

After Alex's email, I started thinking about what it would take to write a lexer generator. Basically, a lexer generator requires parsing and compiling regular expressions, then scanning the source one character at a time to find matches. So, it occurred to me that perhaps simply combining regular expressions with sub-patterns could accomplish this task quite easily.

He goes on to explain this process, showing how a simple regular expresion call (and a look at its return arguments) could create a simple, easy solution. Since the re2c format is still unsupported in PHP (without a goto to go to), he opts to stick with the regular expressions and creates a "lex2php" format instead.

He's packaged up both halves of this setup and has already posted proposals for them to the PEAR site:

0 comments voice your opinion now!
pear lexer generator parser package lemon port php5 pear lexer generator parser package lemon port php5


Greg Beaver's Blog:
A parser generator for PHP - *finally*
June 17, 2006 @ 07:19:38

Greg Beaver has a new post today with mentions of a few things, but mainly the work that he's done to create a parser generator in PHP.

About three weeks ago, I looked at the state of the parser generator world out there for PHP, and it is pretty dismal. Antlr3 will theoretically support PHP 5 generation, but it's impossible to find any source in spite of several fruitless hours of googling.

I finally decided that if this is ever going to happen, I'll have to get off my butt and do it. So, two weeks ago, I grabbed the source of the Lemon parser generator from its website

He follows the path he took, using the code from the Lemon parser, translating it into a PHP version, and correcting a few bugs along the way.

In the process, I have a fully working PGN file parser that will make its way into a PEAR proposal as soon as I get around to integrating it with Games_Chess to do full validation of the contents of the PGN file. However, the parser works 100% even with some of the weirdest PGN things I could throw at it.

He finishes off the post with some example code, including a method for using it on the command line. You can grab the code for the project and related files here

Sebastian Bergmann also comments in his blog about the work Greg's done.

0 comments voice your opinion now!
parser generator lemon port pp_parser parser generator lemon port pp_parser



Community Events





Don't see your event here?
Let us know!


podcast api list bugfix community release voicesoftheelephpant framework deployment opinion laravel library introduction interview symfony install language package series tips

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework