a lisp interpreter in C