private function DocParser::Annotations in Plug 7
Annotations ::= Annotation {[ "*" ]* [Annotation]}*
Return value
array
1 call to DocParser::Annotations()
- DocParser::parse in lib/
doctrine/ annotations/ lib/ Doctrine/ Common/ Annotations/ DocParser.php - Parses the given docblock string for annotations.
File
- lib/
doctrine/ annotations/ lib/ Doctrine/ Common/ Annotations/ DocParser.php, line 615
Class
- DocParser
- A parser for docblock annotations.
Namespace
Doctrine\Common\AnnotationsCode
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;
}