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); }
/** * @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); }