much better basic lisp parser