This is a simple lex and parser written in Scheme and Prolog respectively.  It's accompanied by a Java swing app which allows the two to communicate.