Exemplo n.º 1
0
 /**
  *
  * @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);
     }
 }
Exemplo n.º 2
0
 /**
  *
  * @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);
     }
 }