Rewrote much of the parser; for example, now a->b[3] === (a->b)[3]