Beispiel #1
0
 /**
  * Parses a trait adaptation precedence statement.
  *
  * @param  array $reference Parsed method reference array.
  * @return \PDepend\Source\AST\ASTTraitAdaptationPrecedence
  * @throws \PDepend\Source\Parser\InvalidStateException
  * @since  1.0.0
  */
 private function parseTraitAdaptationPrecedenceStatement(array $reference)
 {
     if (count($reference) < 2) {
         throw new InvalidStateException($this->tokenizer->next()->startLine, $this->compilationUnit->getFileName(), 'Expecting full qualified trait method name.');
     }
     $stmt = $this->builder->buildAstTraitAdaptationPrecedence($reference[0]);
     $stmt->addChild($reference[1]);
     $this->consumeToken(Tokens::T_INSTEADOF);
     $this->consumeComments();
     $stmt->addChild($this->parseTraitReference());
     $this->consumeComments();
     while (Tokens::T_COMMA === $this->tokenizer->peek()) {
         $this->consumeToken(Tokens::T_COMMA);
         $stmt->addChild($this->parseTraitReference());
         $this->consumeComments();
     }
     return $stmt;
 }