implementation of http://www.flownet.com/ron/papers/lisp-java/ in c++