protected function characterData() {
        if ($this->scanner->current() === false) {
            return false;
        }
        switch ($this->textMode) {
            case HTML5_Elements::TEXT_RAW:
                return $this->rawText();
            case HTML5_Elements::TEXT_RCDATA:
                return $this->rcdata();
            default:
                $tok = $this->scanner->current();
                if (strspn($tok, "<&")) {
                    return false;
                }
                return $this->text();
        }
    }