Doctrine\Common\Annotations\DocParser::Annotations PHP Method

Annotations() private method

Annotations ::= Annotation {[ "*" ]* [Annotation]}*
private Annotations ( ) : array
return array
    private function Annotations()
    {
        $annotations = array();
        while (null !== $this->lexer->lookahead) {
            if (DocLexer::T_AT !== $this->lexer->lookahead['type']) {
                $this->lexer->moveNext();
                continue;
            }
            // make sure the @ is preceded by non-catchable pattern
            if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) {
                $this->lexer->moveNext();
                continue;
            }
            // make sure the @ is followed by either a namespace separator, or
            // an identifier token
            if (null === ($peek = $this->lexer->glimpse()) || DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true) || $peek['position'] !== $this->lexer->lookahead['position'] + 1) {
                $this->lexer->moveNext();
                continue;
            }
            $this->isNestedAnnotation = false;
            if (false !== ($annot = $this->Annotation())) {
                $annotations[] = $annot;
            }
        }
        return $annotations;
    }