private function parseFormalParameterOrTypeHintOrByReference()
{
$this->consumeComments();
$tokenType = $this->tokenizer->peek();
$this->tokenStack->push();
switch ($tokenType) {
case Tokens::T_ARRAY:
$parameter = $this->parseFormalParameterAndArrayTypeHint();
break;
case $this->isTypeHint($tokenType):
$parameter = $this->parseFormalParameterAndTypeHint();
break;
case Tokens::T_SELF:
$parameter = $this->parseFormalParameterAndSelfTypeHint();
break;
case Tokens::T_PARENT:
$parameter = $this->parseFormalParameterAndParentTypeHint();
break;
case Tokens::T_BITWISE_AND:
$parameter = $this->parseFormalParameterAndByReference();
break;
default:
$parameter = $this->parseFormalParameter();
break;
}
return $this->setNodePositionsAndReturn($parameter);
}