Exemple #1
0
 private function tryParse(Parser $parser, $code)
 {
     $stmts = null;
     $error = null;
     try {
         $stmts = $parser->parse($code);
     } catch (Error $error) {
     }
     $errors = $parser->getErrors();
     return [$stmts, $errors, $error];
 }
 private function getParseOutput(Parser $parser, $code)
 {
     $stmts = $parser->parse($code);
     $errors = $parser->getErrors();
     $output = '';
     foreach ($errors as $error) {
         $output .= $this->formatErrorMessage($error, $code) . "\n";
     }
     if (null !== $stmts) {
         $dumper = new NodeDumper();
         $output .= $dumper->dump($stmts);
     }
     return canonicalize($output);
 }
Exemple #3
0
 /**
  * @dataProvider provideTestParse
  */
 public function testParse($name, $code, $expected)
 {
     $lexer = new Lexer\Emulative(array('usedAttributes' => array('startLine', 'endLine', 'startFilePos', 'endFilePos')));
     $parser = new Parser($lexer, array('throwOnError' => false));
     $stmts = $parser->parse($code);
     $errors = $parser->getErrors();
     $output = '';
     foreach ($errors as $error) {
         $output .= $this->formatErrorMessage($error, $code) . "\n";
     }
     if (null !== $stmts) {
         $dumper = new NodeDumper();
         $output .= $dumper->dump($stmts);
     }
     $this->assertSame($this->canonicalize($expected), $this->canonicalize($output), $name);
 }