Parser rewrite

* Preliminary literal handling
* Tighter whitespace parsing
* Better error messages