Skip to content
A C parser built in and for PHP (yes, it's a bad idea)...
PHP Yacc C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
grammar
lib
test
.gitignore
LICENSE
README.md
composer.json
composer.lock
phpunit.xml.dist

README.md

PHPCParser

This is a library to parse C code into an AST. Using PHP.

Yes, this is an extraordinarily bad idea...

Example

$parser = new PHPCParser\CParser;

$ast = $parser->parse('path/to/file');

Note that pre-processor directives are all correctly resolved.

If you need to set a pre-processor define, you can use a context;

$parser = new PHPCParser\CParser;

$context = new PHPCParser\Context;
// #define A 42
$context->defineInt('A', 42);
// #define B "testing"
$context->defineString('B', "testing");
// #define C testing
$context->defineIdentifier('C', 'testing');
// etc... 

$ast = $parser->parse('path/to/file', $context);

And that's all there is to it (until it is workting that is...)...

Generating AST from clang

$ clang -cc1 -ast-dump test.c
You can’t perform that action at this time.