예제 #1
0
 /**
  * @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);
 }
예제 #2
0
 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);
 }
예제 #3
0
 /**
  * @expectedException        \InvalidArgumentException
  * @expectedExceptionMessage Can only dump nodes and arrays.
  */
 public function testError()
 {
     $dumper = new NodeDumper();
     $dumper->dump(new \stdClass());
 }