ArrayEntry ::= Value | KeyValuePair KeyValuePair ::= Key ("=" | ":") PlainValue | Constant Key ::= string | integer | Constant
array
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(),
);
}