private function parseParameterList(Func $func, array $params)
{
if (empty($params)) {
return [];
}
$result = [];
foreach ($params as $param) {
if ($param->default) {
$tmp = $this->block;
$this->block = $defaultBlock = new Block();
$defaultVar = $this->parseExprNode($param->default);
$this->block = $tmp;
} else {
$defaultVar = null;
$defaultBlock = null;
}
$result[] = $p = new Op\Expr\Param($this->parseExprNode($param->name), $this->parseExprNode($param->type), $param->byRef, $param->variadic, $defaultVar, $defaultBlock, $this->mapAttributes($param));
$p->result->original = new Operand\Variable(new Operand\Literal($p->name->value));
$p->function = $func;
}
return $result;
}