Tidy up hand built lexers somewhat, rethink syntax.