Skip to content

Commit a6ecc89

Browse files
simplify
1 parent bbdde9c commit a6ecc89

File tree

1 file changed

+12
-25
lines changed

1 file changed

+12
-25
lines changed

pixie/vm/reader.py

+12-25
Original file line numberDiff line numberDiff line change
@@ -305,21 +305,6 @@ def invoke(self, rdr, ch):
305305
return cons(symbol(u"quote"), cons(itm))
306306

307307
class KeywordReader(ReaderHandler):
308-
def read(self, rdr):
309-
acc = []
310-
311-
try:
312-
while True:
313-
ch = rdr.read()
314-
if is_whitespace(ch) or is_terminating_macro(ch):
315-
rdr.unread()
316-
break
317-
acc.append(ch)
318-
except EOFError:
319-
pass
320-
sym_str = u"".join(acc)
321-
return symbol(sym_str)
322-
323308
def fqd(self, itm):
324309
ns_alias = rt.namespace(itm)
325310
current_nms = rt.ns.deref()
@@ -333,11 +318,11 @@ def fqd(self, itm):
333318
def invoke(self, rdr, ch):
334319
ch = rdr.read()
335320
if ch == u":":
336-
itm = self.read(rdr)
321+
ch = rdr.read()
322+
itm = read_symbol(rdr, ch, False)
337323
return self.fqd(itm)
338324
else:
339-
rdr.unread()
340-
itm = self.read(rdr)
325+
itm = read_symbol(rdr, ch, False)
341326

342327
return keyword(rt.name(itm), rt.namespace(itm))
343328

@@ -754,7 +739,7 @@ def read_number(rdr, ch):
754739
return parsed
755740
return Symbol(joined)
756741

757-
def read_symbol(rdr, ch):
742+
def read_symbol(rdr, ch, convert_primitives=True):
758743
acc = [ch]
759744
try:
760745
while True:
@@ -767,12 +752,14 @@ def read_symbol(rdr, ch):
767752
pass
768753

769754
sym_str = u"".join(acc)
770-
if sym_str == u"true":
771-
return true
772-
if sym_str == u"false":
773-
return false
774-
if sym_str == u"nil":
775-
return nil
755+
756+
if convert_primitives:
757+
if sym_str == u"true":
758+
return true
759+
if sym_str == u"false":
760+
return false
761+
if sym_str == u"nil":
762+
return nil
776763
return symbol(sym_str)
777764

778765
class EOF(object.Object):

0 commit comments

Comments
 (0)