Great blog post! I did something very similar when I was working on an implementation of the Mustache templating language. If you haven't built a simple recursive descent parser already, I highly recommend doing so — it helped me get a lot better at programming.