/** * @dataProvider provideTestParse */ public function testParse($name, $code, $dump) { $parser = new Parser(new Lexer\Emulative()); $dumper = new NodeDumper(); $stmts = $parser->parse($code); $this->assertEquals($this->canonicalize($dump), $this->canonicalize($dumper->dump($stmts)), $name); }
private function getParseOutput(Parser $parser, $code, $dumpPositions) { $errors = new ErrorHandler\Collecting(); $stmts = $parser->parse($code, $errors); $output = ''; foreach ($errors->getErrors() as $error) { $output .= $this->formatErrorMessage($error, $code) . "\n"; } if (null !== $stmts) { $dumper = new NodeDumper(['dumpComments' => true, 'dumpPositions' => $dumpPositions]); $output .= $dumper->dump($stmts, $code); } return canonicalize($output); }
/** * @expectedException \InvalidArgumentException * @expectedExceptionMessage Can only dump nodes and arrays. */ public function testError() { $dumper = new NodeDumper(); $dumper->dump(new \stdClass()); }