/** * * @param SourceFile $sourceFile * * @throws ParseErrorException * @return ParseResult */ public function parse(SourceFile $sourceFile) { try { $result = new ParseResult($sourceFile->getFileInfo()); $parser = $this->getParserInstance(); $nodes = $parser->parse($sourceFile->getSource()); $this->getTraverserInstance($result)->traverse($nodes); return $result; } catch (\Exception $e) { throw new ParseErrorException('Something went wrwong', ParseErrorException::GeneralParseError, $e); } }
/** * * @param SourceFile $sourceFile * * @throws ParseErrorException * @return ParseResult */ public function parse(SourceFile $sourceFile) { try { $result = new ParseResult($sourceFile); $parser = $this->getParserInstance(); $nodes = $parser->parse($sourceFile->getSource()); if (!$nodes) { throw new ParseErrorException("Parser didn't return any nodes", ParseErrorException::GeneralParseError); } $this->getTraverserInstance($result)->traverse($nodes); return $result; } catch (\Exception $e) { $this->errorHandler->clearLastError(); throw new ParseErrorException('Internal Error during parsing', ParseErrorException::GeneralParseError, $e); } }