ircmaxell / php-c-parser
在PHP中使用时解析C代码
v0.1.0
2019-10-24 15:56 UTC
Requires
- php: >=7.4
Requires (Dev)
- ircmaxell/php-yacc: dev-master
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-14 18:09:50 UTC
README
这是一个将C代码解析成抽象语法树(AST)的库。使用PHP。
是的,这是一个非常糟糕的主意...
示例
$parser = new PHPCParser\CParser; $ast = $parser->parse('path/to/file');
请注意,所有预处理器指令都正确解析。
如果您需要设置预处理器定义,可以使用上下文;
$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);
这就是全部内容(直到它工作为止...)...
从Clang生成AST
$ clang -cc1 -ast-dump test.c