private function DocParser::Arrayx in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Component/Annotation/Doctrine/DocParser.php \Drupal\Component\Annotation\Doctrine\DocParser::Arrayx()
Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}"
Return value
array
1 call to DocParser::Arrayx()
- DocParser::PlainValue in core/
lib/ Drupal/ Component/ Annotation/ Doctrine/ DocParser.php - PlainValue ::= integer | string | float | boolean | Array | Annotation
File
- core/
lib/ Drupal/ Component/ Annotation/ Doctrine/ DocParser.php, line 1073 - This class is a near-copy of Doctrine\Common\Annotations\DocParser, which is part of the Doctrine project: <http://www.doctrine-project.org>. It was copied from version 1.2.7.
Class
- DocParser
- A parser for docblock annotations.
Namespace
Drupal\Component\Annotation\DoctrineCode
private function Arrayx() {
$array = $values = array();
$this
->match(DocLexer::T_OPEN_CURLY_BRACES);
// If the array is empty, stop parsing and return.
if ($this->lexer
->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
$this
->match(DocLexer::T_CLOSE_CURLY_BRACES);
return $array;
}
$values[] = $this
->ArrayEntry();
while ($this->lexer
->isNextToken(DocLexer::T_COMMA)) {
$this
->match(DocLexer::T_COMMA);
// optional trailing comma
if ($this->lexer
->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
break;
}
$values[] = $this
->ArrayEntry();
}
$this
->match(DocLexer::T_CLOSE_CURLY_BRACES);
foreach ($values as $value) {
list($key, $val) = $value;
if ($key !== null) {
$array[$key] = $val;
}
else {
$array[] = $val;
}
}
return $array;
}