protected function read() {
        while ($this->currentPosition < $this->codeLength) {
            $startPosition = $this->currentPosition;
            $currentChar = $this->code{$this->currentPosition};
            if (in_array($currentChar, $this->whitespaces)) {
                $this->readWhitespace();
            } else {
                switch ($currentChar) {
                    case '/': {
                        $this->readSlash();
                        break;
                    }
                    case '#': {
                        $this->readDirective();
                        break;
                    }
                    case '"': {
                        $this->readString();
                        break;
                    }
                }
            }

            // Force any progress in the loop
            if ($this->currentPosition === $startPosition) {
                $this->compressedCode .= $currentChar;
                ++$this->currentPosition;
            }
        }
    }