private function DocParser::ArrayEntry

ArrayEntry ::= Value | KeyValuePair KeyValuePair ::= Key ("=" | ":") PlainValue | Constant Key ::= string | integer | Constant

Return value

array

1 call to DocParser::ArrayEntry()
DocParser::Arrayx in drupal/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/DocParser.php
Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}"

File

drupal/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/DocParser.php, line 967

Class

DocParser
A parser for docblock annotations.

Namespace

Doctrine\Common\Annotations

Code

private function ArrayEntry() {
  $peek = $this->lexer
    ->glimpse();
  if (DocLexer::T_EQUALS === $peek['type'] || DocLexer::T_COLON === $peek['type']) {
    if ($this->lexer
      ->isNextToken(DocLexer::T_IDENTIFIER)) {
      $key = $this
        ->Constant();
    }
    else {
      $this
        ->matchAny(array(
        DocLexer::T_INTEGER,
        DocLexer::T_STRING,
      ));
      $key = $this->lexer->token['value'];
    }
    $this
      ->matchAny(array(
      DocLexer::T_EQUALS,
      DocLexer::T_COLON,
    ));
    return array(
      $key,
      $this
        ->PlainValue(),
    );
  }
  return array(
    null,
    $this
      ->Value(),
  );
}