def read2(): expr = "" while expr != "quit": expr = raw_input("Lisp> ") print parse(expr) read2()
^^^^^^^^^^^^^^^^^
print "Good session!"
You shouldn't call read2() inside read2()... just remove that line and retry... Each time you call read2() recursively, a new expr is initialized to "", so the condition never becomes true -- http://mail.python.org/mailman/listinfo/python-list