Made the parser completely stateless, tracking context as part of the state. Removed extra arrangements for recursive grammars: it is grammar responsibility now