Switched to alphabet centric approach with realtime parsing.

This makes this project pretty much useable now. There some slight
things which still need ironing out and the code is looking pretty
nasty, so a refactor would be good.