The hardest part was cutting it down from 6000 to 4000 words, but I did it once I finally managed to stop procrastinating and actually did some work.
So now I'm going to spend the rest of the evening munching cheesecake and writing a parser engine - I got this idea for an assembly like language that would make it trivial to write a push parser based more or less straight from BNF (automated transformation from BNF would be easy too, but I'm not going to deal with that yet). I'll write more about it and perhaps put up some code later this weekend.