[walker] Fix broken handling of node predicates
[loose parser] Fix bug where peeked tokens persist across parses