private function processStatic()
{
if ($this->tokens[$this->id + 1][0] === T_DOUBLE_COLON || $this->tokens[$this->id - 1][0] === T_INSTANCEOF) {
$id = $this->processSingle('Identifier');
$this->setAtom($id, array('fullnspath' => '\\static', 'variadic' => false));
return $id;
} elseif ($this->tokens[$this->id + 1][0] === T_OPEN_PARENTHESIS) {
$nameId = $this->addAtom('Identifier');
$this->setAtom($nameId, array('code' => $this->tokens[$this->id][1], 'fullcode' => $this->tokens[$this->id][1], 'line' => $this->tokens[$this->id][2], 'variadic' => false, 'token' => $this->getToken($this->tokens[$this->id][0]), 'fullnspath' => '\\static'));
$this->pushExpression($nameId);
return $this->processFunctioncall();
} elseif ($this->tokens[$this->id + 1][0] === T_VARIABLE) {
if (($this->isContext(self::CONTEXT_CLASS) || $this->isContext(self::CONTEXT_TRAIT)) && !$this->isContext(self::CONTEXT_FUNCTION)) {
// something like public static
$this->processOptions('Static');
return $this->processSGVariable('Ppp');
} else {
return $this->processStaticVariable();
}
} elseif ($this->isContext(self::CONTEXT_NEW)) {
// new static; (no parenthesis, as tested above)
$nameId = $this->processExit();
return $nameId;
} else {
return $this->processOptions('Static');
}
}