Exakat\Tasks\Load::processString PHP Method

processString() private method

private processString ( $fullnspath = true )
    private function processString($fullnspath = true)
    {
        if (strtolower($this->tokens[$this->id][1]) === 'null') {
            $id = $this->addAtom('Null');
        } elseif (in_array(strtolower($this->tokens[$this->id][1]), array('true', 'false'))) {
            $id = $this->addAtom('Boolean');
        } else {
            $id = $this->addAtom('Identifier');
        }
        $this->setAtom($id, 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]), 'absolute' => false));
        // when this is not already done, we prepare the fullnspath as a constant
        $fullnspath = $this->getFullnspath($id, 'const');
        $this->setAtom($id, array('fullnspath' => $fullnspath));
        $this->addCall('const', $fullnspath, $id);
        if ($this->tokens[$this->id + 1][0] === T_NS_SEPARATOR) {
            $this->pushExpression($id);
            ++$this->id;
            $this->processNsname();
            $id = $this->popExpression();
        } elseif ($this->tokens[$this->id + 1][0] === T_COLON && !in_array($this->tokens[$this->id - 1][0], array(T_DOUBLE_COLON, T_OBJECT_OPERATOR, T_QUESTION, T_CASE))) {
            $labelId = $this->addAtom('Label');
            $this->addLink($labelId, $id, 'LABEL');
            $this->setAtom($labelId, array('code' => ':', 'fullcode' => $this->atoms[$id]['fullcode'] . ' :', 'line' => $this->tokens[$this->id][2], 'token' => $this->getToken($this->tokens[$this->id][0])));
            $this->pushExpression($labelId);
            $this->processSemicolon();
            return $labelId;
        }
        $this->pushExpression($id);
        if (!$this->isContext(self::CONTEXT_NOSEQUENCE) && $this->tokens[$this->id + 1][0] === T_CLOSE_TAG) {
            $this->processSemicolon();
        } else {
            // For functions and constants
            $id = $this->processFCOA($id);
        }
        return $id;
    }
Load