Add functionalities to parser, replace `error_engine` with `exception_ptr`.