parser error message needs to be more specific
rewrite full parser to put together the 5 steps of parsing:
 1. scanning
 2. ditching whitespace/comments
 3. cleaning up tokens (classifying unquoted, etc.)
 4. CST
 5. AST