protected function map(&$out)
{
$s = $this->seek();
if (!$this->literal('(')) {
return false;
}
$keys = [];
$values = [];
while ($this->genericList($key, 'expression') && $this->literal(':') && $this->genericList($value, 'expression')) {
$keys[] = $key;
$values[] = $value;
if (!$this->literal(',')) {
break;
}
}
if (!count($keys) || !$this->literal(')')) {
$this->seek($s);
return false;
}
$out = [Type::T_MAP, $keys, $values];
return true;
}