private function processExit()
{
if (in_array($this->tokens[$this->id + 1][0], array(T_CLOSE_PARENTHESIS, T_SEMICOLON, T_CLOSE_TAG, T_CLOSE_BRACKET, T_COLON))) {
$nameId = $this->addAtom('Identifier');
$this->setAtom($nameId, array('code' => $this->tokens[$this->id][1], 'fullcode' => $this->tokens[$this->id][1], 'variadic' => false, 'line' => $this->tokens[$this->id][2], 'token' => $this->getToken($this->tokens[$this->id][0]), 'fullnspath' => '\\' . strtolower($this->tokens[$this->id][1])));
$voidId = $this->addAtomVoid();
$argumentsId = $this->addAtom('Arguments');
$this->addLink($argumentsId, $voidId, 'ARGUMENT');
$this->setAtom($argumentsId, array('code' => $this->atoms[$voidId]['code'], 'fullcode' => $this->atoms[$voidId]['fullcode'], 'line' => $this->tokens[$this->id][2], 'token' => $this->getToken($this->tokens[$this->id][0])));
$functioncallId = $this->addAtom('Functioncall');
$this->setAtom($functioncallId, array('code' => $this->atoms[$nameId]['code'], 'fullcode' => $this->atoms[$nameId]['fullcode'] . ' ' . ($this->atoms[$argumentsId]['atom'] === 'Void' ? self::FULLCODE_VOID : $this->atoms[$argumentsId]['fullcode']), 'line' => $this->tokens[$this->id][2], 'variadic' => false, 'token' => $this->getToken($this->tokens[$this->id][0]), 'fullnspath' => '\\' . strtolower($this->atoms[$nameId]['code'])));
$this->addLink($functioncallId, $argumentsId, 'ARGUMENTS');
$this->addLink($functioncallId, $nameId, 'NAME');
$this->pushExpression($functioncallId);
if (!$this->isContext(self::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === T_CLOSE_TAG) {
$this->processSemicolon();
}
return $functioncallId;
} else {
--$this->id;
$nameId = $this->processNextAsIdentifier();
$this->pushExpression($nameId);
if (!$this->isContext(self::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === T_CLOSE_TAG) {
$this->processSemicolon();
} else {
$nameId = $this->processFCOA($nameId);
}
return $nameId;
}
}