Working on improving the parser to give fine-grained errors

and not cause the rest of the file to be broken if one line of
code is incorrect.

Don't build this commit, it's buggy, will finish this work soon.