Saturday, February 28, 2009

Squawk

After a light January, rphp saw quite a few improvements in February.

We've switched the lexer from the beta Boost::Spirit2 to Ben Hanson's Boost::Lexer submission (lexertl). They are actually related, as Spirit2 uses lexertl itself, but as we weren't using the parse functionality of Spirit (we're using lemon), there was no reason to endure the extra compile time overhead (it's heavily template based) and complexity.

Speaking of the lexer, it now properly tokenizes (nearly) all PHP tokens, in any charset. Proper double quote string parsing is yet to be completed, however.

Literal array support was added to the parser and code generator, which means all the basic types (null, int, float, bool, string, unicode string, array) have some support.

Some other miscellaneous advances include implementing var_dump and initial support for if blocks and function declarations in the parser.