nqp: refactor parser with OO