1
0
mirror of https://github.com/danog/PHP-Parser.git synced 2024-12-02 09:17:58 +01:00

Add php-parse --with-positions

To invoke NodeDumper in dumpPositions mode
This commit is contained in:
Nikita Popov 2016-12-09 22:41:46 +01:00
parent 70319e27ee
commit d5eebf7214

View File

@ -33,7 +33,10 @@ $parser = (new PhpParser\ParserFactory)->create(
PhpParser\ParserFactory::PREFER_PHP7, PhpParser\ParserFactory::PREFER_PHP7,
$lexer $lexer
); );
$dumper = new PhpParser\NodeDumper(['dumpComments' => true]); $dumper = new PhpParser\NodeDumper([
'dumpComments' => true,
'dumpPositions' => $attributes['with-positions'],
]);
$prettyPrinter = new PhpParser\PrettyPrinter\Standard; $prettyPrinter = new PhpParser\PrettyPrinter\Standard;
$serializer = new PhpParser\Serializer\XML; $serializer = new PhpParser\Serializer\XML;
@ -75,7 +78,7 @@ foreach ($files as $file) {
foreach ($operations as $operation) { foreach ($operations as $operation) {
if ('dump' === $operation) { if ('dump' === $operation) {
echo "==> Node dump:\n"; echo "==> Node dump:\n";
echo $dumper->dump($stmts), "\n"; echo $dumper->dump($stmts, $code), "\n";
} elseif ('pretty-print' === $operation) { } elseif ('pretty-print' === $operation) {
echo "==> Pretty print:\n"; echo "==> Pretty print:\n";
echo $prettyPrinter->prettyPrintFile($stmts), "\n"; echo $prettyPrinter->prettyPrintFile($stmts), "\n";
@ -117,6 +120,7 @@ Operations is a list of the following options (--dump by default):
--var-dump var_dump() nodes (for exact structure) --var-dump var_dump() nodes (for exact structure)
-N, --resolve-names Resolve names using NodeVisitor\NameResolver -N, --resolve-names Resolve names using NodeVisitor\NameResolver
-c, --with-column-info Show column-numbers for errors (if available) -c, --with-column-info Show column-numbers for errors (if available)
-P, --with-positions Show positions in node dumps
-r, --with-recovery Use parsing with error recovery -r, --with-recovery Use parsing with error recovery
-h, --help Display this page -h, --help Display this page
@ -134,7 +138,8 @@ function parseArgs($args) {
$operations = array(); $operations = array();
$files = array(); $files = array();
$attributes = array( $attributes = array(
'with-column-info' => false, 'with-column-info' => false,
'with-posititions' => false,
'with-recovery' => false, 'with-recovery' => false,
); );
@ -169,6 +174,10 @@ function parseArgs($args) {
case '-c'; case '-c';
$attributes['with-column-info'] = true; $attributes['with-column-info'] = true;
break; break;
case '--with-positions':
case '-P':
$attributes['with-positions'] = true;
break;
case '--with-recovery': case '--with-recovery':
case '-r': case '-r':
$attributes['with-recovery'] = true; $attributes['with-recovery'] = true;