def scan_simple_string(self):
        self.skip_whitespace()
        if not self.char:
            return None
        elif self.char in TOKEN_CHARS and self.char not in DIGITS:
            return self.scan_token()
        elif self.char in DIGITS or self.char in b"\"#|:":
            if self.char in DIGITS:
                length = self.scan_decimal()
            else:
                length = None
            if self.char == b"\"":
                return self.scan_quoted_string(length)
            elif self.char == b"#":
                return self.scan_hex_string(length)
            elif self.char == b"|":
                return self.scan_base64_string(length)
            elif self.char == b":":
                return self.scan_verbatim_string(length)
            else:
                raise ValueError("illegal char %r at %d" % (self.char, self.pos))
        else:
            raise ValueError("illegal char %r at %d" % (self.char, self.pos))
dataset/ETHPy150Open grawity/hacks/lib/python/nullroute/sexp.py/SexpParser.scan_simple_string/original