def read_term(self, reader): if not reader.has_more(): return None while reader.current() in _whitespace: reader.next() if not reader.has_more(): return None cur = reader.current() if cur == '"': return self.read_string(reader, '"') if self.is_number(cur) or cur == '-': return self.read_number(reader) if cur == '(': return self.read_list('(', reader, ')') if cur == ')': return StrObj(cur) chrs = [] while (not reader.current() in _whitespace) \ and (reader.current() != ')') \ and (reader.current() != '(') \ and reader.has_more(): chrs.append(reader.current()) reader.next() sym = "".join(chrs) #if sym.strip(_whitespace) == "": # return None return Symbol.intern(StrObj(sym))