Generate AST of a PHP source file

Dogbert picture Dogbert · May 27, 2011 · Viewed 8.6k times · Source

I want to parse a PHP source file, into an AST (preferably as a nested array of instructions).

I basically want to convert things like

f($a, $b + 1)

into something like

array( 'function_call',
    array(
        array( 'var', '$a' ),
        array( 'expression',
            array(
                array( 'binary_operation',
                    '+',
                    array ('var', '$b'),
                    array( 'int', '1' )
                )
            )
        )
    )
)

Are there any inbuilt PHP library or third party libraries (preferably in PHP) that would let me do this?

Answer

NikiC picture NikiC · May 27, 2011

I have implemented a PHP Parser after I figured out that there was no existing parser. It parses the PHP code into a node tree.