private function processSingleOperator($atom, $finals, $link, $separator = '')
{
$current = $this->id;
$operatorId = $this->addAtom($atom);
$this->nestContext();
// Do while, so that AT least one loop is done.
do {
$this->processNext();
} while (!in_array($this->tokens[$this->id + 1][0], $finals));
$this->exitContext();
$operandId = $this->popExpression();
$this->addLink($operatorId, $operandId, $link);
$x = array('code' => $this->tokens[$current][1], 'fullcode' => $this->tokens[$current][1] . $separator . $this->atoms[$operandId]['fullcode'], 'line' => $this->tokens[$current][2], 'token' => $this->getToken($this->tokens[$current][0]));
$this->setAtom($operatorId, $x);
$this->pushExpression($operatorId);
if (!$this->isContext(self::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === T_CLOSE_TAG) {
$this->processSemicolon();
}
return $operatorId;
}