simplified error handling, reducing memory consumption as a side effect
fixed a lot of grammar bugs; started an experimental breadth first parser