Refactor eval::Parser