This is a PHP parser written in PHP.

This project is work in progress, but it basically works and was tested on a large code base.

Usage:

    $parser = new Parser();
    $stmts = $parser->yyparse(
        new Lexer('<?php // some code'),
        function($msg) {
            // this is the error callback, which is fired in case of
            // a parse error. It is passed the error message.
            echo $msg, "\n";
        }
    );

    // the return value of Parser->yyparse will either be false (which
    // signifies that an error occured) or an array of statements (Nodes)
    if (false !== $stmts) {
        // dump the AST
        foreach ($stmts as $stmt) {
            echo $stmt, "\n";
        }
    }
Description
A PHP parser written in PHP
Readme BSD-3-Clause 10 MiB
Languages
PHP 95.3%
Yacc 4.7%