a lisp interpreter in c